diff --git a/.codeclimate.yml b/.codeclimate.yml index 4fe69490ce191..2da3213875942 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -5,6 +5,11 @@ engines: enabled: false eslint: enabled: true + checks: + import/extensions: + enabled: false + import/no-extraneous-dependencies: + enabled: false config: config: superset/assets/.eslintrc pep8: diff --git a/.gitignore b/.gitignore index 1a89206e2c5a6..2ad30456bcad3 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,8 @@ app.db *.bak .idea *.sqllite +.vscode +.python-version # Node.js, webpack artifacts *.entry.js @@ -32,3 +34,4 @@ node_modules npm-debug.log yarn.lock superset/assets/version_info.json + diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000000000..27b41d7b42e0c --- /dev/null +++ b/.pylintrc @@ -0,0 +1,407 @@ +[MASTER] + +# Specify a configuration file. +#rcfile= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Pickle collected data for later comparisons. +persistent=yes + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Use multiple processes to speed up Pylint. +jobs=1 + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-whitelist= + +# Allow optimization of some AST trees. This will activate a peephole AST +# optimizer, which will apply various small optimizations. For instance, it can +# be used to obtain the result of joining multiple strings with the addition +# operator. Joining a lot of strings can lead to a maximum recursion error in +# Pylint and this flag can prevent that. It has one side effect, the resulting +# AST will be different than the one from reality. This option is deprecated +# and it will be removed in Pylint 2.0. +optimize-ast=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=standarderror-builtin,long-builtin,dict-view-method,intern-builtin,suppressed-message,no-absolute-import,unpacking-in-except,apply-builtin,delslice-method,indexing-exception,old-raise-syntax,print-statement,cmp-builtin,reduce-builtin,useless-suppression,coerce-method,input-builtin,cmp-method,raw_input-builtin,nonzero-method,backtick,basestring-builtin,setslice-method,reload-builtin,oct-method,map-builtin-not-iterating,execfile-builtin,old-octal-literal,zip-builtin-not-iterating,buffer-builtin,getslice-method,metaclass-assignment,xrange-builtin,long-suffix,round-builtin,range-builtin-not-iterating,next-method-called,dict-iter-method,parameter-unpacking,unicode-builtin,unichr-builtin,import-star-module-level,raising-string,filter-builtin-not-iterating,old-ne-operator,using-cmp-argument,coerce-builtin,file-builtin,old-division,hex-method,invalid-unary-operand-type + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". This option is deprecated +# and it will be removed in Pylint 2.0. +files-output=no + +# Tells whether to display a full report or only the messages +reports=yes + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= + + +[BASIC] + +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_,d,e,v,o,l,x,ts + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +property-classes=abc.abstractproperty + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for argument names +argument-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for method names +method-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{1,30}$ + +# Naming hint for variable names +variable-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming hint for inline iteration names +inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$ + +# Regular expression matching correct constant names +const-rgx=(([A-Za-z_][A-Za-z0-9_]*)|(__.*__))$ + +# Naming hint for constant names +const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Naming hint for class names +class-name-hint=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming hint for class attribute names +class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Naming hint for module names +module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for attribute names +attr-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for function names +function-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=10 + + +[ELIF] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=90 + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma,dict-separator + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + + +[SPELLING] + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules=numpy,pandas,alembic.op,sqlalchemy,alembic.context,flask_appbuilder.security.sqla.PermissionView.role,flask_appbuilder.Model.metadata,flask_appbuilder.Base.metadata + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_,_cb + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,future.builtins + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.* + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branches=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of boolean expressions in a if statement +max-bool-expr=5 + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=optparse + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "Exception" +overgeneral-exceptions=Exception diff --git a/.travis.yml b/.travis.yml index 336659866c025..a0a1b03f313c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,26 +3,22 @@ language: python addons: code_climate: repo_token: 5f3a06c425eef7be4b43627d7d07a3e46c45bdc07155217825ff7c49cb6a470c - apt: - sources: - - deadsnakes - packages: - - python3.5 cache: directories: - $HOME/.wheelhouse/ env: global: - TRAVIS_CACHE=$HOME/.travis_cache/ - - TRAVIS_NODE_VERSION="5.11" + - TRAVIS_NODE_VERSION="6.10.2" matrix: - TOX_ENV=javascript + - TOX_ENV=pylint - TOX_ENV=py34-postgres - TOX_ENV=py34-sqlite - TOX_ENV=py27-mysql - TOX_ENV=py27-sqlite before_install: - - npm install -g npm@'>=3.9.5' + - npm install -g npm@'>=4.5.0' before_script: - mysql -e 'drop database if exists superset; create database superset DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci' -u root - mysql -u root -e "CREATE USER 'mysqluser'@'localhost' IDENTIFIED BY 'mysqluserpassword';" @@ -34,5 +30,4 @@ install: - pip install --upgrade pip - pip install tox tox-travis - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION - - npm install script: tox -e $TOX_ENV diff --git a/CHANGELOG.md b/CHANGELOG.md index c359309d6d645..23e083a5e3739 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,546 @@ ## Change Log +## Change Log + +### 0.18.3 (2017/06/02 15:27 +00:00) +- [d90044c](https://github.com/airbnb/superset/commit/d90044cd523253aa01b5cdf6509b43abeef34079) 0.18.3 (@mistercrunch) +- [62bd4eb](https://github.com/airbnb/superset/commit/62bd4eb2118e4f1e771b58cd455b928be002a461) Converting filter argument to number if column is number (#2891) (@fabianmenges) +- [677c427](https://github.com/airbnb/superset/commit/677c427b1615a2a9b9054932b5e07868d7d63e42) delete DataPreviewModal, it doesn't get used anywhere (#2882) (@ascott) +- [52b0716](https://github.com/airbnb/superset/commit/52b0716571c5b68f65d08719e54343e0a6ec8c8e) [bugfix] allow database macro to work when CSRF is diabled (#2884) (@justinr1234) +- [04b662e](https://github.com/airbnb/superset/commit/04b662ea1154b75e2c362aed97e33946251d1bed) Fix a type error in rst' sub list. (#2881) (@xiaohanyu) +- [db052b1](https://github.com/airbnb/superset/commit/db052b17ea1782c472687095e1365d071e592dd0) Add visualize advise for long query (#2879) (@graceguo-supercat) +- [e300273](https://github.com/airbnb/superset/commit/e300273e71f0b6ca8b63ae974cc13534d94c56de) [explore] adding y_axis_bounds to force Y axis bounds (#2878) (@mistercrunch) +- [c5f2eaf](https://github.com/airbnb/superset/commit/c5f2eafc906bebf1d238e62ff5a8821cf549220c) [explore] 'Save as' -> 'Save' as it can be used to overwrite (#2875) (@mistercrunch) +- [90e4d64](https://github.com/airbnb/superset/commit/90e4d6469d3d420cf839a4c9f3a2408ab0ff0a42) [js-testing] more tests for SelectControl (#2877) (@ascott) +- [1e7773e](https://github.com/airbnb/superset/commit/1e7773eb169d29607991d0c4619ee930104e18de) Improve visualize modal test coverage (#2811) (@graceguo-supercat) +- [3c89c8c](https://github.com/airbnb/superset/commit/3c89c8cc4613d938e4e8726c30142fa32b1249f7) 0.18.3-alpha.3 (@mistercrunch) +- [74086da](https://github.com/airbnb/superset/commit/74086dae2ba66029917a7ed640cfcfc7555c0520) [bars] fix sort numeric bar on x axis (#2812) (@mistercrunch) +- [66403f1](https://github.com/airbnb/superset/commit/66403f1876bb7bcf31eb8187517c116a2d5b6b96) [explore] viz type selector as modal (#2787) (@mistercrunch) +- [3a4cd3a](https://github.com/airbnb/superset/commit/3a4cd3ae24c811e21fb76c5f9efecb2a6c4a6da2) Applying specified limit in bubble plot (#2815) (@mistercrunch) +- [4ffc1f6](https://github.com/airbnb/superset/commit/4ffc1f613e1d2bf012dc5eb66751fea8c698804e) Fix filter values populating for views (#2816) (@mistercrunch) +- [dfbba84](https://github.com/airbnb/superset/commit/dfbba84400986451f5068354a7626537e7b377a4) 0.18.3-alpha.2 (@mistercrunch) +- [77864e6](https://github.com/airbnb/superset/commit/77864e6cf4d5394a5080300097ae21cf9abfcc53) reduce clientside timeout limit (#2820) (@graceguo-supercat) +- [4d12251](https://github.com/airbnb/superset/commit/4d1225180618b4c4f05c67f6534bf273692a9243) [explore] include ControlHeader as part of Control interface (#2809) (@mistercrunch) +- [0c9f9b6](https://github.com/airbnb/superset/commit/0c9f9b695b921c7e17cec83e1d51e4aa3cae7cc9) [clarity/consistency] rename /explorev2/ -> /explore/ (#2802) (@ascott) +- [a4a2bf7](https://github.com/airbnb/superset/commit/a4a2bf7ae9cc1075a38cc980bb696d6512125f2b) filter_box: allow creatable entries (#2804) (@vavrusa) +- [d0a04cd](https://github.com/airbnb/superset/commit/d0a04cde49c86185b779b16f1da05450b1ccf571) apply redux for VisualizeModal (#2795) (@graceguo-supercat) +- [69685b9](https://github.com/airbnb/superset/commit/69685b9dcc0c26f819ff7edeedc10ee302e97f83) Fixing country maps (#2801) (@mistercrunch) +- [b308a3e](https://github.com/airbnb/superset/commit/b308a3eb4eb08de39edbff6490c06a6bef7b7ce1) Added Country Map : New Visualization tools (#2708) (@ymatagne) +- [bfa40bd](https://github.com/airbnb/superset/commit/bfa40bd360021874628477ee3eb2272033cd2d54) [hotfix] 'filter box from and to date filter #2649' (#2785) (@yamdraco) +- [b0e2904](https://github.com/airbnb/superset/commit/b0e2904c245e5569473f425af2806271e33a5176) Updating permission when refreshing druid datasource (#2655) (@ShengyaoQian) +- [ce506bd](https://github.com/airbnb/superset/commit/ce506bdf65b46f5bccee84ca8254417f63b124a5) Logging a few more actions (#2783) (@mistercrunch) +- [922cc03](https://github.com/airbnb/superset/commit/922cc037bf859c935cc5eacbcd96bf6fa004c5fe) 0.18.3-alpha.1 (@mistercrunch) +- [8252ada](https://github.com/airbnb/superset/commit/8252ada1f9ac94866b91eac55b77ed6d0ef7d02f) [docs] more details on how filters are applied (#2778) (@mistercrunch) +- [a2d2f8b](https://github.com/airbnb/superset/commit/a2d2f8bb8c006adcf80bb2ac18b82f3b486f366a) Enable filter value autocomplete in examples (#2781) (@mistercrunch) +- [7c5f61d](https://github.com/airbnb/superset/commit/7c5f61d6a61e1a3cb6d20d0918610abafa2cd326) Adding some STATSD logging (#2715) (@mistercrunch) +- [841e18a](https://github.com/airbnb/superset/commit/841e18a08c4b375fdff5b846f5d9f108903a3eb6) [sql lab] make database ordering alphabetical in left panel (#2769) (@mistercrunch) +- [dbc7fef](https://github.com/airbnb/superset/commit/dbc7fef7f501cd59ebd99524fa171d9e4dee0325) [sql lab] fix user timestamp is off (#2774) (@mistercrunch) + +### 0.18.2 (2017/05/17 06:08 +00:00) +- [cbfe3cb](https://github.com/airbnb/superset/commit/cbfe3cb2dcadedeedfcf55f2bb4883b76a484b36) 0.18.2 (@mistercrunch) +- [5fcd25d](https://github.com/airbnb/superset/commit/5fcd25def15b5990c10b5045cb89b88f94ba8716) 0.18.1-alpha.2 (@mistercrunch) +- [fe3f5f6](https://github.com/airbnb/superset/commit/fe3f5f69ae83eaf96415926661b272ebb460a4e0) [hotfix] 'No numeric types to aggregate' (@mistercrunch) +- [2395fbb](https://github.com/airbnb/superset/commit/2395fbbdaaa5c81c3559f17cedf2e998b8341cb9) Adding `end_result_backend_time` to Query model (#2766) (@mistercrunch) +- [960b26c](https://github.com/airbnb/superset/commit/960b26c7a2cad58b39c359f44c385980434dacb8) Show clear and actionable query timeout error message (#2763) (@graceguo-supercat) +- [28ac350](https://github.com/airbnb/superset/commit/28ac3504d67f76c31aac23435dd15d76e0ca75bf) 0.18.1-alpha.1 (@mistercrunch) +- [ecc00bd](https://github.com/airbnb/superset/commit/ecc00bdd26517a832a35529f0fdd7d17972e6f8f) [explore] a bit less margin in left panel (#2758) (@mistercrunch) +- [e794645](https://github.com/airbnb/superset/commit/e7946451d6aa84229d0c70b7a683b29b784ca1a1) fixed 500 error when export dashboard (#2760) (@eeve) +- [9b34600](https://github.com/airbnb/superset/commit/9b34600c8e8df72ecbdfaaf94bdf023c08e26701) Remove duplicate text (#2761) (@awbush) +- [8846108](https://github.com/airbnb/superset/commit/884610861b8d39da91e4c1bce7934172d2486da9) 0.18.0 (@mistercrunch) +- [d9bd3d6](https://github.com/airbnb/superset/commit/d9bd3d646006d9e6ddf2ccded21d7984935c98c8) fix percentage change viz (#2757) (@yileic) +- [38375be](https://github.com/airbnb/superset/commit/38375be5c3062caf9f6cd4d6ac62109e1940bd10) Fix issues around % signs and Presto (#2755) (@mistercrunch) +- [91d951a](https://github.com/airbnb/superset/commit/91d951ac422a6411e59b2ec195011ea4dc44b0b1) Change hardcoded references to 'User' security model to allow custom class override (#2728) (@RichRadics) + +### 0.18.0 (2017/05/12 03:36 +00:00) +- [d79a45f](https://github.com/airbnb/superset/commit/d79a45ff32ff8e2b5d601601507680dccf693bbc) add number format to pivot table (#2703) (@yileic) +- [818251f](https://github.com/airbnb/superset/commit/818251fc8519167be7e0730083c4a694972fb06b) make margin consistent (#2753) (@yileic) +- [75abd1f](https://github.com/airbnb/superset/commit/75abd1f44a12208fd54f28a1185d40ea8639396a) 0.18.0-alpha.4 (@mistercrunch) +- [f55df3b](https://github.com/airbnb/superset/commit/f55df3b18b67ff58d5ad3f6f12f7fe76e9697084) [sql lab] fix responsivity of grid (#2742) (@mistercrunch) +- [5dbfdef](https://github.com/airbnb/superset/commit/5dbfdefae82674d71ab1f1464622d199a6f72f30) [sql lab] fix partitionned table has no partitions (#2740) (@mistercrunch) +- [e558444](https://github.com/airbnb/superset/commit/e5584440cecdb0d9a79ba6c4ff1050e73e774035) Speed up all CRUD list views (#2747) (@mistercrunch) +- [d5e9d5d](https://github.com/airbnb/superset/commit/d5e9d5d045d342ef203c7d7cd480011626b6d7a1) fix auto select override pre-selected value bug (#2745) (@graceguo-supercat) +- [3208a01](https://github.com/airbnb/superset/commit/3208a014ffccfe44238fb5982f6e391a1764d4b3) fix dual line chart margin (#2737) (@yileic) +- [874c12a](https://github.com/airbnb/superset/commit/874c12ad2d99059b2f8f979bdd05e77d8768db03) 0.18.0-alpha.3 (@mistercrunch) +- [22d8075](https://github.com/airbnb/superset/commit/22d8075c536bdfc1790b23381e0017720cc921a5) Making the stop button instantaneous (#2738) (@mistercrunch) +- [baebba1](https://github.com/airbnb/superset/commit/baebba115930e95076e9252987fb4e107ddd23d5) 0.18.0-alpha.2 (@mistercrunch) +- [04748b4](https://github.com/airbnb/superset/commit/04748b4cdac7a4fd53f5d7716a36ceebea7bf7ca) [SQL Lab] fix gamma metadata access (#2702) (@mistercrunch) +- [a471afe](https://github.com/airbnb/superset/commit/a471afe206ca3357ea4c27c1accf94d44c8f5122) [sql lab] improvements to the left panel (#2709) (@mistercrunch) +- [5d0a01d](https://github.com/airbnb/superset/commit/5d0a01d0d099a9d73ba04fded7cad223a10e86f2) Decimal is a valid numeric type (#2720) (@hajdbo) +- [9e1272e](https://github.com/airbnb/superset/commit/9e1272e97c88a3ce2e8dfd15fa819de52e331342) 0.18.0-alpha.1 (@mistercrunch) +- [aeebd88](https://github.com/airbnb/superset/commit/aeebd8840d0551a7cd9a2d43039dcd07648d66ed) [table] fixing CSS glitches on table view (#2725) (@mistercrunch) +- [55d3b01](https://github.com/airbnb/superset/commit/55d3b012e504f788732488bf11a1ec7ef223a821) refactor: recentActions ajax call is redundant (#2722) (@S-YOU) +- [a6e1e18](https://github.com/airbnb/superset/commit/a6e1e18244951b5bf68ac76e897a16713c7d279b) [sql lab] fix CREATE TABLE AS (#2719) (@mistercrunch) +- [46d7a92](https://github.com/airbnb/superset/commit/46d7a925bb4be8891c89ac05d2f447e5ec750bf5) chore: remove unused methods with invalid models.Query usage (#2721) (@S-YOU) +- [5929ab7](https://github.com/airbnb/superset/commit/5929ab76890232068bef5412f23a54226dbed0ec) [dashboard] fix missing datasource issue (#2718) (@mistercrunch) +- [fffb7b5](https://github.com/airbnb/superset/commit/fffb7b500a313b9f9d76eecab18241bf0406c933) [sql lab]Add autoSelect (#2713) (@graceguo-supercat) +- [cb14640](https://github.com/airbnb/superset/commit/cb14640a823c3c6cc768169391779064c2469a68) Removing uneeded results_backends.py (#2717) (@mistercrunch) +- [d65054e](https://github.com/airbnb/superset/commit/d65054e01533f62e63e1c8788da4b97309f65cee) [sql lab] fix csv export where `%` in query (#2711) (@mistercrunch) +- [5d5060e](https://github.com/airbnb/superset/commit/5d5060eca61ad1a7f6baf7adced2985088c82d95) Remove unecessary handling of %% (#2714) (@mistercrunch) +- [9ff3515](https://github.com/airbnb/superset/commit/9ff351532ada993afc4da5060b9a942216e2a74b) Basic integration with ClickHouse (#1844) (@vavrusa) +- [59a6f44](https://github.com/airbnb/superset/commit/59a6f447ec1e92a0319a617ecdf4e22847bf5d95) Fix missing curUserId from SliderAdder.jsx (#2705) (@songyanho) + +### 0.17.6 (2017/05/01 20:13 +00:00) +- [1887b5e](https://github.com/airbnb/superset/commit/1887b5e934b17864850a46d6e88a606b594e0634) 0.17.6 (@mistercrunch) +- [33758bf](https://github.com/airbnb/superset/commit/33758bfff59b9cdc86b58973244ef0613942dc80) 0.17.6-alpha.2 (@mistercrunch) +- [2d5beb1](https://github.com/airbnb/superset/commit/2d5beb1f91c304df948e943100cbfb66345a00e9) improve csrf expiration error handling (#2695) (@ascott) +- [5fd0e7d](https://github.com/airbnb/superset/commit/5fd0e7d02828df4bb02b6a3b34779517fe637123) [vis] bar values should match y axis format (#2701) (@justinpark) +- [ef0c4be](https://github.com/airbnb/superset/commit/ef0c4be06743083da5c33ed9ffbda7ff77b43e74) Fix for referring specific svg (#2612) (@songyanho) +- [ac3aba7](https://github.com/airbnb/superset/commit/ac3aba7c7da905f0f4bfeb0f80efb87136812b90) [sql lab] visualization flow: fixing the groupby parameter (#2681) (@mistercrunch) +- [0fdb57a](https://github.com/airbnb/superset/commit/0fdb57a18153912c2675b54a2c4e5e00691c7cc0) fix (#2696) (@yileic) +- [3e7b5df](https://github.com/airbnb/superset/commit/3e7b5df2876d1014a8411a57cdd7bb18ce64e5d9) [explore] fix empty chart when changing viz type (#2698) (@mistercrunch) +- [3cd16cf](https://github.com/airbnb/superset/commit/3cd16cf3680169dd17a542d83c84f94ca8220805) Fix test's warnings (#2697) (@dennybiasiolli) +- [a58adc8](https://github.com/airbnb/superset/commit/a58adc862ec28842a3ac7f9f1f205fa1c173015e) Fix orm query in HiveEngineSpec.handle_cursor (#2699) (@xrmx) +- [7d88f80](https://github.com/airbnb/superset/commit/7d88f80a9b2003f4529560160aea41c444283a9e) hack to dynamically adjust y axis left margin (#2689) (@yileic) +- [09be02f](https://github.com/airbnb/superset/commit/09be02f70a716819332629144160360e21c8920b) fix x axis label (#2691) (@yileic) +- [50fcdd3](https://github.com/airbnb/superset/commit/50fcdd3a34f3efe58435760ba0bf321d6767a3a5) Adding tails.com to inthewild (#2685) (@alanmcruickshank) +- [dee3649](https://github.com/airbnb/superset/commit/dee36491c5e9394c19dfbc00def353675079aa83) Fix js warnings (#2693) (@dennybiasiolli) +- [903612a](https://github.com/airbnb/superset/commit/903612ac6c802dd042417c1fa8a742812a2094bb) fix (#2692) (@yileic) +- [ce70505](https://github.com/airbnb/superset/commit/ce705054fa2e738612d746c8f07b577f6941a6e3) fix a bug in 'getMaxLabelSize' and x axis label not shown problem (#2694) (@yileic) +- [c589616](https://github.com/airbnb/superset/commit/c5896168830c0901a6488817d970a92ce3fa8f9a) [sql lab] Update event handler name (#2680) (@graceguo-supercat) +- [58309f2](https://github.com/airbnb/superset/commit/58309f275f3b9d123f75e795fe3e42b918a66aab) Mark a few more string for translation (#2651) (@xrmx) +- [edf4e4f](https://github.com/airbnb/superset/commit/edf4e4f24e9eeceb44e2b9a98d2cb02d8cefa6dd) Update README.md (#2676) (@aioue) +- [b3e0b5b](https://github.com/airbnb/superset/commit/b3e0b5b586d530cdd1def10ef38550f680f1922b) Specifying cryptography version in install docs (@mistercrunch) +- [6880298](https://github.com/airbnb/superset/commit/68802989bc8a13f76988eed004dc07fa06208733) Pinning cryptography lib to 1.7.2 (@mistercrunch) +- [70887d7](https://github.com/airbnb/superset/commit/70887d72e2a54fdae2ba58ad8f408528bd694878) 0.17.6-alpha.1 (@ascott) +- [1922225](https://github.com/airbnb/superset/commit/192222504292aed3ffa7368f85ca6cdc7f92aab5) Alternate fix for #2665 (#2671) (@mistercrunch) +- [0bdc301](https://github.com/airbnb/superset/commit/0bdc3010d8da0789df99d588105d6e62cc6b3280) [vis] fix pivot table scrolling when using more than 1 groupy col (#2674) (@ascott) +- [1df37e6](https://github.com/airbnb/superset/commit/1df37e6e4d609f7c0751faf2360a98a896e30f46) add option for pulling favourited dashboards by username (#2661) (@robert-digit) +- [e9ed416](https://github.com/airbnb/superset/commit/e9ed4166549cb515f5c15357b2395c3858736df1) fix csrf error on import_dashboards (#2672) (@ascott) +- [03c42b5](https://github.com/airbnb/superset/commit/03c42b5b87429f2a29ce1b5ef8c13e9a004b907e) Showing slices on datasource edit form (#2645) (@mistercrunch) +- [e055e6d](https://github.com/airbnb/superset/commit/e055e6d2c22e6087bf7c906174c08d543617a514) Fixing PropTypes warning messages (#2670) (@mistercrunch) +- [2978082](https://github.com/airbnb/superset/commit/29780821e8797fee3fbcbcfacbe3e0871750d19b) [druid] fixing the having clause in the explore view (#2648) (@mistercrunch) +- [f10ee13](https://github.com/airbnb/superset/commit/f10ee139011767fd72e20ff0fb6a6411f6b06d6b) [druid] fix FilterBox viz gets timestamps as values if granularity != all (#2647) (@mistercrunch) +- [cdfc4a3](https://github.com/airbnb/superset/commit/cdfc4a35b22e8b07bf2b0503214074761143e7d9) Optimizing the standalone view (#2663) (@mistercrunch) +- [eb762c8](https://github.com/airbnb/superset/commit/eb762c8bfec56a0da664c4aa71baf2197f58042f) add the missing right bracket (#2662) (@yileic) +- [83abfef](https://github.com/airbnb/superset/commit/83abfef8304a8fe83248d959136e7421ba0e04a8) superset: fix argument swap for SqliteEngineSpec.get_table_names (#2664) (@xrmx) +- [54137ad](https://github.com/airbnb/superset/commit/54137ad023f046780bd0e2089ccc57620787f118) Updating CHANGELOG (@mistercrunch) + +### 0.17.5 (2017/04/21 20:56 +00:00) +- [4be6bfa](https://github.com/airbnb/superset/commit/4be6bfafaa07695cf47a9a27977855ab30ff87e4) 0.17.5 (@mistercrunch) +- [9ba6d48](https://github.com/airbnb/superset/commit/9ba6d489f31d2aba38594dac3cb7d75fbabcdc78) v0.17.5-alpha.10 (#2654) (@ascott) +- [af4bd40](https://github.com/airbnb/superset/commit/af4bd40853d477e5104d62c81931b65be0026b50) fix scrolling on markup vis (#2644) (@ascott) +- [84fa0d1](https://github.com/airbnb/superset/commit/84fa0d19407d7fe662ea1945bb0f9e2570945e50) don't default sort by to first column (#2653) (@ascott) +- [938e13a](https://github.com/airbnb/superset/commit/938e13a4297f13354ae7a989de1268cddbf042c4) [hotfix] Presto's latest_sub_partion rendering fail (@mistercrunch) +- [dc364da](https://github.com/airbnb/superset/commit/dc364daffddd740bd827aaaa71d07c13a928c7ef) [query-search] fix scrolling on query search and pagination styling (#2646) (@ascott) +- [1cadfec](https://github.com/airbnb/superset/commit/1cadfecd4bc0c69e0c66ddce12727fd5607b4364) update core.py label and zh po file (#2642) (@RoganW) +- [5b26667](https://github.com/airbnb/superset/commit/5b26667fd520ccf2b668f9d3f7b1a928a1bdaba7) 0.17.5-alpha.9 (@ascott) +- [899caf9](https://github.com/airbnb/superset/commit/899caf94497e22ab8d6a59f695d3805999ab2e4c) [sql-lab] fix scrolling in left hand panel for table meta data (#2641) (@ascott) +- [e6063f2](https://github.com/airbnb/superset/commit/e6063f2ddf14ae9ddb8c9fd8b5ebd548e272e7d5) 0.17.5-alpha.8 (@mistercrunch) +- [46486f8](https://github.com/airbnb/superset/commit/46486f82d9352cd7d340e4dfb6bd9ba2676b2c6c) Moving the warning message to the navbar (#2640) (@mistercrunch) +- [0089762](https://github.com/airbnb/superset/commit/00897629558a4d89c5a500b173b345d8136f52fa) 0.17.5-alpha.7 (@ascott) +- [2bd60c0](https://github.com/airbnb/superset/commit/2bd60c074716faf57a8a10e3a9c73b9fe500080f) [vis] fix line chart when slice is really narrow (#2620) (@ascott) +- [db6cd21](https://github.com/airbnb/superset/commit/db6cd215040220f3cf3636f1decb25139f395cad) [sqllab] table refactor (#2587) (@ascott) +- [f40499e](https://github.com/airbnb/superset/commit/f40499e550ae3ed7fea534b8c657c2c76d9f6070) [dashboard] improve error handling on dashboard (#2624) (@mistercrunch) +- [67a85b9](https://github.com/airbnb/superset/commit/67a85b9831f86a78fe987037000c8f2e6bd9c7d7) Fix dashboard edit button is disabled (#2634) (@mistercrunch) +- [cb3384b](https://github.com/airbnb/superset/commit/cb3384b3b225c1c392453616ce09c1c9e7136baa) Improving Presto error message in explore/dashboard (#2633) (@mistercrunch) +- [ac51a30](https://github.com/airbnb/superset/commit/ac51a30f98019d8cc593f03cd0f542aa35646889) Remove metrics control non-null validator in Table context (#2635) (@mistercrunch) +- [91fe02c](https://github.com/airbnb/superset/commit/91fe02cdc879097d517cddc06a8492536bc3b6ea) Setting adjust_database_uri for HiveEngineSpec (#2636) (@mistercrunch) +- [76042be](https://github.com/airbnb/superset/commit/76042be7c3b52c5019114b372dc841137205e14f) [hotfix/sqllab] setting up the connection in the try: block (@mistercrunch) +- [d3f55a0](https://github.com/airbnb/superset/commit/d3f55a0905e4aa7a2da22113ea8e25c174903c9f) 0.17.5-alpha.6 (@mistercrunch) +- [efaef8f](https://github.com/airbnb/superset/commit/efaef8fe0924ff39e77edbe8fe5e2ed337adccf3) [hotfix] fix endpoint (@mistercrunch) +- [8757a24](https://github.com/airbnb/superset/commit/8757a24d89e44c13b44b8ae84be9ae12a50b8d48) 0.17.5-alpha.5 (@mistercrunch) +- [63785f0](https://github.com/airbnb/superset/commit/63785f039c0f7763c410c9e7a40a0d477b9bf23a) [hotfix] using UTC for caching timestamps (@mistercrunch) +- [d6689ee](https://github.com/airbnb/superset/commit/d6689ee700102926ebd7efa352cb3c66d970445f) 0.17.5-alpha.4 (@mistercrunch) +- [787daf6](https://github.com/airbnb/superset/commit/787daf6005d325b68a52644804d802a1168cf314) A nice CacheLabel React component (#2628) (@mistercrunch) +- [23aeee5](https://github.com/airbnb/superset/commit/23aeee5a9c1c17ef486fa5106da964acc0b4bd43) Slice level cache_timeout isn't taken into consideration (#2631) (@mistercrunch) +- [70c6cad](https://github.com/airbnb/superset/commit/70c6cad0e3b5e276158c1d9057de40b6fd9498eb) Add UNIX socket option to runserver (#2627) (@scaba) +- [6b1bf3b](https://github.com/airbnb/superset/commit/6b1bf3b395a61a8549b9f3297c8411bb41db52fa) [hotfix] missing explore's main.css (@mistercrunch) +- [f5216f6](https://github.com/airbnb/superset/commit/f5216f60479a2580b5a5532ec8c1b0882905d7a0) Adding owner(s) to dashboard makes them own underlying slices (#2610) (@mistercrunch) +- [15654a3](https://github.com/airbnb/superset/commit/15654a3082f4d6030fafd38d671299670443374e) fix filters on dashboard (#2619) (@ascott) +- [baff0cb](https://github.com/airbnb/superset/commit/baff0cba38554ae28e1024f2114ee5765648c45b) Fix separator widget CSS (#2623) (@mistercrunch) +- [c4ee098](https://github.com/airbnb/superset/commit/c4ee098bb7ffc0db970eba608bfe464ee7b3e60b) 0.17.5-alpha.3 (@mistercrunch) +- [612b8ca](https://github.com/airbnb/superset/commit/612b8ca3d7de9988f22b8f7f81c583ff0b8b19bc) [hotfix] legacy url not handled properly (@mistercrunch) +- [c43a9fd](https://github.com/airbnb/superset/commit/c43a9fd5541d5de0987607d913eddd899ee84e75) [hotfix] fixing the build (@mistercrunch) +- [6c68a21](https://github.com/airbnb/superset/commit/6c68a21e4f77757df57042eedbb91a96b21fa040) [sql lab] fix alt-enter runs out-of-date SQL (#2603) (@mistercrunch) +- [db02b33](https://github.com/airbnb/superset/commit/db02b33e09dd6391fb1d8f777b19d5c16a511abe) [explore] fix query text modal while loading (#2596) (@mistercrunch) +- [2df6baa](https://github.com/airbnb/superset/commit/2df6baa7a741a4bfff786b0f675f1165b122aaac) [sql lab] sorting database names in dropdowns (#2611) (@mistercrunch) +- [fc7bd63](https://github.com/airbnb/superset/commit/fc7bd630399c9f4f936b59be347d5d4d0e516744) [sql lab] fixes issues specific to Sqlite (#2606) (@mistercrunch) +- [959a09c](https://github.com/airbnb/superset/commit/959a09cc92682854e0051fae302bd866d9d5b8b5) [dashboard] fix css padding for markup viz (#2602) (@mistercrunch) +- [366ecef](https://github.com/airbnb/superset/commit/366ecefbaaf4cc31234cc981ebab7eb420efe019) Bumping the JS libs to fix the build (#2616) (@mistercrunch) +- [a2b30f3](https://github.com/airbnb/superset/commit/a2b30f35fcc3c081448d55df31ad445d4d9cec6c) 0.17.5-alpha.2 (@mistercrunch) +- [8bceda8](https://github.com/airbnb/superset/commit/8bceda8134c6e53f62b5b30910ec0eeb02f051e7) [hotfix] fix iframe viz (@mistercrunch) +- [bae1067](https://github.com/airbnb/superset/commit/bae1067015a4b8041d39b806062a45c1950e3f7c) 0.17.5-alpha.1 (@mistercrunch) +- [116dca3](https://github.com/airbnb/superset/commit/116dca3e6fc78ef109f0385b6c4dbf2650dda080) validationErrors is undedfined (@mistercrunch) +- [b448394](https://github.com/airbnb/superset/commit/b448394077eef18b9ed01c9703c58cf05f14d34c) 0.17.5-alpha.0 (@mistercrunch) +- [09f407f](https://github.com/airbnb/superset/commit/09f407f553eb8bca90f6da79cf60c742296488c7) add tooltips to big number vis (#2599) (@ascott) +- [0479118](https://github.com/airbnb/superset/commit/0479118efc0069da2b62c20dc631ebbd00493758) 0.17.5.dev0 (@mistercrunch) +- [c93411b](https://github.com/airbnb/superset/commit/c93411b1e75bc59b174d1256f3108d783eea3264) Fix for merge string as array (#2597) (@songyanho) +- [31283f1](https://github.com/airbnb/superset/commit/31283f14246ccd9f7cac4df238bd65cdd68c840b) Fix metric formating in Dashboard view + some refactoring (#2598) (@mistercrunch) +- [93c6597](https://github.com/airbnb/superset/commit/93c6597cf4f2c47869f9cf4f62cfdbe80cd37760) Adding docs/ to .eslintignore (@mistercrunch) +- [4446c74](https://github.com/airbnb/superset/commit/4446c745a88d4b31de8a30ccb45b4cd6dcc49dae) Fix backend-sync 2 (@mistercrunch) +- [38e90fe](https://github.com/airbnb/superset/commit/38e90fe3098018655a8e2206a053c60c8d7e64aa) Fix backend-sync (@mistercrunch) +- [f548946](https://github.com/airbnb/superset/commit/f5489467e534f3625079843cad82ae12de6cbf3a) Use correct dialect for escaping functions. (#2593) (@steveniemitz) +- [ab0bc5a](https://github.com/airbnb/superset/commit/ab0bc5a3fa81f3951b50828400de6bfc54235860) handle percentage case for tooltips (#2570) (@ascott) +- [412634c](https://github.com/airbnb/superset/commit/412634cb57f6094bbba168d252b8b5dbd56da954) Add missing flask-wtf dependency (#2586) (@xrmx) +- [a0ddbb9](https://github.com/airbnb/superset/commit/a0ddbb9ec954a65a77350bc054b83e35bc4dffeb) Make form_data dict a macro (#2585) (@mistercrunch) +- [a803705](https://github.com/airbnb/superset/commit/a803705ddca1c869ccd50977d033faa5c8a0464b) [bugfix] clarifying how to create a slice (#2565) (@mistercrunch) +- [75a358c](https://github.com/airbnb/superset/commit/75a358c616bf30e15dc752da59de1c3cd333a89c) [explore] force control validation before runQuery (#2544) (@mistercrunch) +- [493ba18](https://github.com/airbnb/superset/commit/493ba1836241146502d5dfa4d5c9ea57f4d8ad6c) Adding macros current_user_id & current_username (#2582) (@mistercrunch) +- [5e4fca4](https://github.com/airbnb/superset/commit/5e4fca4ea4b896a9c427032f30a30b59efbcec63) Bumping a set of Python libraries to the latest release (#2575) (@mistercrunch) +- [d289783](https://github.com/airbnb/superset/commit/d289783b67ef6503f58a330bcd729e3301c20393) Adding Vertica to installation docs (#2581) (@mistercrunch) +- [ac84fc2](https://github.com/airbnb/superset/commit/ac84fc2b65976c1473488e2ed47979d880df34f5) Fixing confusion when selecting schema across engines (#2572) (@mistercrunch) +- [40b3d3b](https://github.com/airbnb/superset/commit/40b3d3b3ef61124ec38d49130b57d751b98a1a67) [hotfix] add csrf_token api endpoint (@mistercrunch) +- [50a9e13](https://github.com/airbnb/superset/commit/50a9e13f9bb9bf0c10ca3b748e1989a15c97ee8a) [hotfix] add csrf_token api endpoint (@mistercrunch) +- [66bff01](https://github.com/airbnb/superset/commit/66bff01b45658547d9853e0d0c22e788550d8267) Changelog for 0.17.4 (@mistercrunch) +- [9691234](https://github.com/airbnb/superset/commit/9691234b7e33d8162253a6971f6eb298c037b748) [hotfix] casting db_id to int (@mistercrunch) + +### 0.17.4 (2017/04/07 17:57 +00:00) +- [ddeabdd](https://github.com/airbnb/superset/commit/ddeabdd048296732c24bb7ca2317e5d3683fa17d) Fixing CSRF issues (#2569) (@mistercrunch) +- [3ed45ab](https://github.com/airbnb/superset/commit/3ed45ab98c2e351ced9520bcfce222dd34d45a94) [bugfix] saved query restore wouldn't pick the db (#2568) (@mistercrunch) +- [ca08e70](https://github.com/airbnb/superset/commit/ca08e7051ef47b5a8693dc5088c3af23b582b267) 0.17.4rc5 (@mistercrunch) +- [1fb21b8](https://github.com/airbnb/superset/commit/1fb21b8b45f1bdde4e89386ec791cfa7620986c4) [revert] reverting big num changes (#2567) (@ascott) +- [c581ea8](https://github.com/airbnb/superset/commit/c581ea8661dd229f42d5959a6745a26ce8f03289) Alternative PR for: Some bytes/str issues in py3 w/ zlib and json (#2558) (@rumbin) +- [f19d195](https://github.com/airbnb/superset/commit/f19d1958c51212ae19cef98cfa135b8898cb6bea) INTHEWILD: added Endress+Hauser (#2562) (@rumbin) +- [9c99be5](https://github.com/airbnb/superset/commit/9c99be510b3aaeb4329e1a33413129e1aaacebdd) [hotfix] iframe viz is broken (@mistercrunch) +- [7a08cdc](https://github.com/airbnb/superset/commit/7a08cdcb1c4378986cb1dc6934143a684ab49502) 0.17.4rc3 (@ascott) +- [f24ddfd](https://github.com/airbnb/superset/commit/f24ddfd467731d82206b5cf8185ac0c576a8a6f9) [big num] make sure scatterplot dots align properly (#2559) (@ascott) +- [23a8ea5](https://github.com/airbnb/superset/commit/23a8ea563693bd10635e0dadd97403958ca9d891) v0.17.4rc2 (@mistercrunch) +- [2c04d3c](https://github.com/airbnb/superset/commit/2c04d3c25098d15c9cc6f30a70f787eae6899c74) [bugfix] save dash fails with CSRF related error (#2552) (@mistercrunch) +- [337454b](https://github.com/airbnb/superset/commit/337454b646c71bc313714b849dec49b4d7459a4d) [hotfix] slice with missing datasource related (@mistercrunch) +- [b7f46eb](https://github.com/airbnb/superset/commit/b7f46ebe75b23d5a26d3c17fd219e1b05bff9327) [hotfix] dashboard fails when a slice is missing its datasource (@mistercrunch) +- [10773f9](https://github.com/airbnb/superset/commit/10773f96a7197197bcd5d6dea6d959c081d23156) URL Params macro (#2537) (@mistercrunch) +- [b97a827](https://github.com/airbnb/superset/commit/b97a8275d48c40beaff0a6fb7cf56257dd281fe6) Clarify docs on Redis package required for caching (#2557) (@rhunwicks) +- [081bdca](https://github.com/airbnb/superset/commit/081bdca71ef4979b77e0b7d5f9ab5cc8e6cde2dc) [hotfix] [sql lab] fix sqlite errors when schema is selected (@mistercrunch) +- [62959ca](https://github.com/airbnb/superset/commit/62959ca38ba31e5cc5a1d2b7b9e16bf981f97300) Db2 Grain Correct Data Format (#2545) (@openmax) +- [fe68bc3](https://github.com/airbnb/superset/commit/fe68bc31c334e553131cf6e7f6da7d2359646f6c) Revert "measure x axis labels too and use the longest to determine margins" (#2550) (@ascott) +- [3d2c791](https://github.com/airbnb/superset/commit/3d2c791ff1279af4c19108ee220a37c24710686a) [bug num vis] fix sizing for single digits (#2548) (@ascott) +- [d40ce52](https://github.com/airbnb/superset/commit/d40ce52139d7b9319ac8b86e5d77d3f4998b5926) v0.17.4rc1 (@mistercrunch) +- [122891c](https://github.com/airbnb/superset/commit/122891c29b8f46c986207d4903ae584b0ac44a8e) [sql lab] allow users to save their queries (#2528) (@mistercrunch) +- [c1d9918](https://github.com/airbnb/superset/commit/c1d9918abeb3bca33721fc5af9be59e89fffccbf) [vis] bug num improvements (#2523) (@ascott) +- [d93b1fc](https://github.com/airbnb/superset/commit/d93b1fc686e0f0518b04203e1b65967f6b84d441) [sql-lab] make query history scrollable (#2499) (@ascott) +- [02c5cac](https://github.com/airbnb/superset/commit/02c5cac26f853634bb0d244579c366abcb400c77) [hotfix] adding filterable to DruidColumnInlineView.edit_columns (@mistercrunch) +- [6566377](https://github.com/airbnb/superset/commit/65663777402c6770b796ca3f65fedc59d756da82) [sql lab] fix table dropdown with large schema make UI unresponsive (#2547) (@mistercrunch) +- [db6b2f3](https://github.com/airbnb/superset/commit/db6b2f3ae19740c86a537f031ec7fbee4b341742) pylint errors will now break the build (#2543) (@mistercrunch) +- [c31210b](https://github.com/airbnb/superset/commit/c31210b96d0b3aa96e826657da6e6754c87e59a0) Some column description clarifications (#2536) (@mistercrunch) +- [dcc6f2a](https://github.com/airbnb/superset/commit/dcc6f2a18fadda5ddb1a507508cf049b9932f02b) serve roboto font locally (#2519) (@ascott) +- [0c0666c](https://github.com/airbnb/superset/commit/0c0666caa0e7ce5725416115389fe797113b731c) druid: use six.string_types instead of basestring (#2541) (@xrmx) +- [243eead](https://github.com/airbnb/superset/commit/243eeadfd6994c6ac93467a334601fb23278888f) installation instructions for AWS Athena (#2538) (@dwa) +- [9ba5b49](https://github.com/airbnb/superset/commit/9ba5b49d8ac197a5ba908b229bd9061ce98c5fca) WIP: Initial commit to support the athena DB (#2531) (@dwa) + +### 0.17.3 (2017/04/01 23:55 +00:00) +- [c870bd4](https://github.com/airbnb/superset/commit/c870bd414ecafe9b83f223dd5894544dc34fba0f) 0.17.3 (@mistercrunch) +- [4b01e92](https://github.com/airbnb/superset/commit/4b01e92509a903bcc25260749ee055be12e5949c) [dashboard] allow bar charts to scroll on x axis (#2513) (@mistercrunch) +- [513a090](https://github.com/airbnb/superset/commit/513a090cdc852c287c62c5d4dc47d6168974251c) [sql lab] address lingering spinner in schema select (#2512) (@mistercrunch) +- [abe79d1](https://github.com/airbnb/superset/commit/abe79d1427b94fb126bd3aec5511bbe2c905d94c) Deprecate is_featured as a datasource attribute (#2485) (@mistercrunch) +- [b81968d](https://github.com/airbnb/superset/commit/b81968dc2051d0cef22da1633fb315f076c7d94c) Redirect to explore view when saving a table (#2479) (@mistercrunch) +- [66cc546](https://github.com/airbnb/superset/commit/66cc546a300d63dd06385a0c35e2268453f70fd6) [hotfix] fixing the (one js lint err in the) build (@mistercrunch) +- [6e899ac](https://github.com/airbnb/superset/commit/6e899ac55f5fe093a9081c4001e28b945bc0f8f6) added tobii (#2526) (@dwa) +- [6b52384](https://github.com/airbnb/superset/commit/6b523840244ae55519641e621d83aac1342fc51b) [hotfix] fix pending queries race condition (@mistercrunch) +- [0a1d8db](https://github.com/airbnb/superset/commit/0a1d8db35783d37c2eea774f2e0c3b4d6a064fde) v0.17.3rc3 (@mistercrunch) +- [6f68ddb](https://github.com/airbnb/superset/commit/6f68ddb50516efff1525f6aebc28f67dbad8c38b) Adding to polling states (@mistercrunch) +- [4f59abf](https://github.com/airbnb/superset/commit/4f59abf189f9b34654854607c5f943e774fbccbe) v0.17.3rc2 (@mistercrunch) +- [5c441f4](https://github.com/airbnb/superset/commit/5c441f4ddb84a58080b577497760ea65b7537f53) [hotfix] queries trigger polling (#2517) (@mistercrunch) +- [be023ab](https://github.com/airbnb/superset/commit/be023aba8d972ad5460beed07f768f10398621c4) 0.17.3rc1 (@mistercrunch) +- [5399020](https://github.com/airbnb/superset/commit/53990201bc97ad2035e10500eda0d4c935f3bfb1) forgotten query_datasources_by_name function (#2497) (@wyndhblb) +- [37783d6](https://github.com/airbnb/superset/commit/37783d685fe7c7b52a3188ace5f1504f8e2eb367) Updating CHANGELOG (@mistercrunch) + +### 0.17.2 (2017/03/29 14:46 +00:00) +- [25fdcac](https://github.com/airbnb/superset/commit/25fdcaca8b1dd32c05ecd7fd57d4cf32e8f72447) v0.17.2 (@mistercrunch) +- [ce6e7c1](https://github.com/airbnb/superset/commit/ce6e7c135943130fb104b10d284aca93e4f2d4dc) [hotfix] missing logging import in db_engined_specs (@mistercrunch) +- [9116766](https://github.com/airbnb/superset/commit/91167665b19ca094fd51dadf9538c12fd61bc55a) Track both query start time and button push time to track delay (#2502) (@mistercrunch) +- [f374345](https://github.com/airbnb/superset/commit/f374345860f4a3e307ea1772b099ce038868aa71) Adding a .pylintrc file and a bit of linting (#2507) (@mistercrunch) +- [d3b50cb](https://github.com/airbnb/superset/commit/d3b50cb92e046de316725f0e02fdd816573b6234) [explore] remove grey background in standalone mode (#2503) (@mistercrunch) +- [a58194b](https://github.com/airbnb/superset/commit/a58194bdb06a966c6d642bdfa7c80195cc9cf996) 0.17.2rc4 (@mistercrunch) +- [5f3484a](https://github.com/airbnb/superset/commit/5f3484ac5981f2dd6aa447cbc2e4f2a9afe4518c) Handle errors when the MQ is down (#2494) (@mistercrunch) +- [e14b74f](https://github.com/airbnb/superset/commit/e14b74fdbf876aeeeea7baa125926dcf719a0098) [explore] fixing bugs in controls (#2496) (@mistercrunch) +- [56f2885](https://github.com/airbnb/superset/commit/56f28859b7315767d3e312aa3777b777156a658d) Fixing filter_box css padding (#2498) (@mistercrunch) +- [f3cdb3b](https://github.com/airbnb/superset/commit/f3cdb3b787b804071a8f183569027169e432cb46) Add ibm_db_sa TimeStamp and Datatime Grain Spec. (#2500) (@openmax) +- [b35f6b0](https://github.com/airbnb/superset/commit/b35f6b0a94df2017b3bd908c6589d786f9feec6b) 0.17.2rc3 (@mistercrunch) +- [5574cfe](https://github.com/airbnb/superset/commit/5574cfef59a7326487f7cebf9a575070ab19a3c2) Fixing out-of-sync security (#2493) (@mistercrunch) +- [c301558](https://github.com/airbnb/superset/commit/c3015583ce09f259bf36e018ebd0820f9c0cb92f) Stabilizing master (#2478) (@mistercrunch) +- [7cc2c93](https://github.com/airbnb/superset/commit/7cc2c930ede176242cc9066baf16c00fccd23e01) [docs] adding notes on the Public role (#2486) (@mistercrunch) +- [2662bf1](https://github.com/airbnb/superset/commit/2662bf19df690c0a133318406a6935a27245a82f) v0.17.2rc2 (@mistercrunch) +- [62e3fe2](https://github.com/airbnb/superset/commit/62e3fe2345afa6fa8b8cb0da7f20bb44b48a0e54) [hotfix] SqlaTable has no attribute column_cls (@mistercrunch) +- [7d25d17](https://github.com/airbnb/superset/commit/7d25d171e29dce859c455a03d33cc4c3054775c7) [release] update to 0.17.2rc1 (#2492) (@ascott) +- [c5859c7](https://github.com/airbnb/superset/commit/c5859c7254448d2cdbc877b00580bd95fa6e7e2e) [hotfix] druid queries 'There was no query executed' issue (@mistercrunch) +- [dd7b4b8](https://github.com/airbnb/superset/commit/dd7b4b8310e27310f80a0415a2bd877f3098127b) Revert "[sql-lab] revert react-virtualized-select (#2489)" (#2491) (@ascott) +- [93551a6](https://github.com/airbnb/superset/commit/93551a65b845f430aaefaa50f75a40857f1b6ed6) only fetch tables if we have a schema, otherwise reset options. (#2490) (@ascott) +- [7eafbab](https://github.com/airbnb/superset/commit/7eafbabe65b430a2347ed6bba3e08d1f4d8c1946) [sql-lab] revert react-virtualized-select (#2489) (@ascott) +- [43dd948](https://github.com/airbnb/superset/commit/43dd948476190cf75649164f57a9b73687ca3d99) [sql-lab] performance updates - make ui more responsive (#2469) (@ascott) +- [75e7f2d](https://github.com/airbnb/superset/commit/75e7f2d22c7185f2a6393b7ded7a2b5d0558cfca) [hotfix] bumping QUERY_UPDATE_FREQ from 1000 to 2000ms (@mistercrunch) +- [26662ee](https://github.com/airbnb/superset/commit/26662eed9e08475a4c41d715f5a3608876a1afd1) Fixed CSS syntax for background linear-gradient (#2482) (@songyanho) +- [121b1d0](https://github.com/airbnb/superset/commit/121b1d0951049ac30ab35a225269c03451d14bbc) Refactoring more in the connector base classes (#2431) (@mistercrunch) +- [398036d](https://github.com/airbnb/superset/commit/398036d77e0c817796e3735797eae56e80dce437) [hotfix] 'NoneType' object has no attribute 'upper' (@mistercrunch) +- [59d5fcf](https://github.com/airbnb/superset/commit/59d5fcf88c0f484a189c7f02968982b2d39512ad) [hotfix] fixing checkboxes in Tables->Columns (@mistercrunch) +- [1f8e48b](https://github.com/airbnb/superset/commit/1f8e48b374adb091bf41e60634e99b132a37bf62) [sqllab] assign types for visualize flow (#2458) (@mistercrunch) +- [7bf19b1](https://github.com/airbnb/superset/commit/7bf19b12327504aec2be2c2fd36404efb1faec05) [WiP] making doubling '%' not required (#2459) (@mistercrunch) +- [1590b8c](https://github.com/airbnb/superset/commit/1590b8c7e5a070183a3c0e3153aec63992e3c60f) Speeding up polling by not checking access (#2466) (@mistercrunch) +- [22522fc](https://github.com/airbnb/superset/commit/22522fc05f8859b94299576f4a8b07bd42eaba00) [sql-lab] improve table select performance (#2457) (@ascott) +- [c9b59fa](https://github.com/airbnb/superset/commit/c9b59fab1fded7fa08fc9d44a8c18427865e11dd) Update INTHEWILD.md (#2455) (@jakubczaplicki) +- [69152e0](https://github.com/airbnb/superset/commit/69152e087a2b9900e53a8a97ed318c271f725649) [explore] remove 'SQL Clauses' section when using Druid (#2449) (@mistercrunch) +- [652e572](https://github.com/airbnb/superset/commit/652e572b56054cefdfe83403db2125a9d85f5a6a) [sql-lab] make results table scroll in static container (#2426) (@ascott) +- [65c89f5](https://github.com/airbnb/superset/commit/65c89f54dc845ee4f77b230fb334eba225bb14e6) [hotfix] merging db migration scripts (#2448) (@mistercrunch) +- [edf5c0e](https://github.com/airbnb/superset/commit/edf5c0e83b2c9023ef3ad9cabc7ce19d32551d84) [dist_bar] fix x scroll when overflowing (#2440) (@mistercrunch) +- [a4abbfe](https://github.com/airbnb/superset/commit/a4abbfe1266ab1593ba82ef23d6e733b3d8e8e33) Fix formatting in README.md (#2441) (@imagejan) +- [7b28bce](https://github.com/airbnb/superset/commit/7b28bcef15cd37284780e605f5076ede2864afb4) Fix documentation for adding a Redshift database (#2447) (@alexdebrie) +- [8042ac8](https://github.com/airbnb/superset/commit/8042ac876e80c08d72489287777cb1e9672b177a) [explore] improved filters (#2330) (@mistercrunch) +- [82bc907](https://github.com/airbnb/superset/commit/82bc907088be26206a7c8d1c84311ca399eb73b9) fix a bug in pie chart (#2423) (@yileic) +- [e2b572d](https://github.com/airbnb/superset/commit/e2b572d9e229fee503128cab8d7bff02a9cd881b) Prevent alarming users with stacktrace when using sqlite (@mistercrunch) +- [e71596d](https://github.com/airbnb/superset/commit/e71596dc45f96e6a3fdfb09f5ee6b00a9cdd018c) make dualline thumbnail have consistent size as other thumbnails (#2434) (@yileic) +- [c3be58d](https://github.com/airbnb/superset/commit/c3be58db437746c168e706e8a5710e2a1d363d0d) Add verbose name to db and druid cluster (#2429) (@bkyryliuk) +- [3d77a12](https://github.com/airbnb/superset/commit/3d77a12aa9b27375a02f7092c16a2883bd171913) Display the first partition. (#2425) (@bkyryliuk) +- [36deb8d](https://github.com/airbnb/superset/commit/36deb8da7157893d08d01148ab538f963aacf140) Allow users to alter column types (#2424) (@mistercrunch) + +### 0.17.1 (2017/03/16 15:44 +00:00) +- [05ee8c0](https://github.com/airbnb/superset/commit/05ee8c0e3675b0ab88cf85d061971177ed871144) v0.17.1 (@mistercrunch) +- [5ca55a5](https://github.com/airbnb/superset/commit/5ca55a55858a59f6340284cfe4081fd26d2be489) [hotfix on dist_bar] bringing back overwritten handling of ints and tuples (@mistercrunch) +- [1b330a8](https://github.com/airbnb/superset/commit/1b330a8c55f0ec114970855c6682627434216ab5) Use connector registry for metrics (#2420) (@bkyryliuk) +- [696678c](https://github.com/airbnb/superset/commit/696678c9816d934c10243395e12e8483e2a42df0) Replace query once query response returned (#2415) (@vera-liu) +- [20aec3c](https://github.com/airbnb/superset/commit/20aec3cfcad082f921cdfc347382b2d0d4a4fd54) Use connector registry to fetch the table column class. (#2419) (@bkyryliuk) +- [4ded37e](https://github.com/airbnb/superset/commit/4ded37e71edf1306ee9652cf32324b5dc14a1328) [hotfix] handle missing or empty column type (@mistercrunch) +- [0674ed8](https://github.com/airbnb/superset/commit/0674ed846c478bd97e7b6953c375b5a3ab26802b) Use list instead of numpy array (#2412) (@bkyryliuk) +- [3107152](https://github.com/airbnb/superset/commit/3107152f5bb973b8b1a9c5cf3bc2bee1d7f47e0d) Revert "Preprocess the where clauses." (#2411) (@bkyryliuk) +- [5b19528](https://github.com/airbnb/superset/commit/5b19528662f5ea645ead5b066144d69469ecbf7c) Display full name. (#2378) (@bkyryliuk) +- [357773c](https://github.com/airbnb/superset/commit/357773c631ad39260109ec45d9c313d6d45cea89) Preprocess the where clauses. (#2405) (@bkyryliuk) +- [5e43d07](https://github.com/airbnb/superset/commit/5e43d074c3be9b909fe0b473f00e743b4ba9d56e) [explore ] templating can now reference query elements (#2388) (@mistercrunch) +- [08bdcd5](https://github.com/airbnb/superset/commit/08bdcd52b856f5ed6c91ab9c3805cf259223da0a) Fix bad d3.format metric setting and/or value === Infinity (#2399) (@mistercrunch) +- [0b8522b](https://github.com/airbnb/superset/commit/0b8522be502988d8b9bf64a8ea203068adf5957d) [filter_box] fix time filter and inverted instantFilter (#2402) (@mistercrunch) +- [c02a7fe](https://github.com/airbnb/superset/commit/c02a7fe7634b311c6f42968a9f7bafef147092e1) Add more tests to Save Modal specs (#2313) (@vera-liu) +- [dcd5bde](https://github.com/airbnb/superset/commit/dcd5bdeb00b8333d67234bde79397b5195fbb8f9) fix unicode issues (#2308 #2282) (#2401) (@asdf2014) +- [562b4f0](https://github.com/airbnb/superset/commit/562b4f04156f20a2aeec8d2c27758571d0aaa514) Do not silence error message for query. (#2396) (@bkyryliuk) +- [6160a3f](https://github.com/airbnb/superset/commit/6160a3fdffdcebe618191462633414c0dff7de30) Implement stop query functionality. (#2387) (@bkyryliuk) +- [0779da6](https://github.com/airbnb/superset/commit/0779da6d244c5686f6ab5faf2ef5067019266460) Keep column order in .csv (#2377) (@bkyryliuk) +- [740624b](https://github.com/airbnb/superset/commit/740624ba01edcfa305d6ff0a2676d413e59377f4) Fix monthly time grain in sqllite (#2380) (@bkyryliuk) +- [2969cc9](https://github.com/airbnb/superset/commit/2969cc9993325acc730b794f9d0d0b07fe1a60ec) Refactoring Druid & SQLa into a proper "Connector" interface (#2362) (@mistercrunch) +- [9a8c3a0](https://github.com/airbnb/superset/commit/9a8c3a044710bcfc578b77b498af1f15685f2bca) [table] metric ordering is wrong in some cases (#2373) (@mistercrunch) +- [e817382](https://github.com/airbnb/superset/commit/e817382efd5f18e09534a70f95cc47332288356e) Add more tests to Filter spec (#2315) (@vera-liu) +- [422d1fe](https://github.com/airbnb/superset/commit/422d1feb3e2ac964b77cd9756ed0fc1293056373) 0.17.1rc2 (@mistercrunch) +- [2b0cb2b](https://github.com/airbnb/superset/commit/2b0cb2b0a56d033cd59c13ae3326c3d922d53b22) Fix partition query (#2353) (@bkyryliuk) +- [705d09d](https://github.com/airbnb/superset/commit/705d09d3d07e05e3a5e070d25a348a45288d7721) Remove duplicate (#2351) (@bkyryliuk) +- [9114d86](https://github.com/airbnb/superset/commit/9114d86ecd0dbd0ad20c24d56f1fd29604de2047) Add hive to superset + monkey patch the pyhive (#2134) (@bkyryliuk) +- [ad4a950](https://github.com/airbnb/superset/commit/ad4a950b5646abef823357274298014292af091f) Fixes filters emitted from table viz (#2335) (@mistercrunch) +- [bd480e0](https://github.com/airbnb/superset/commit/bd480e0c6b9d5127d96d8c18fd53ebe6193aec70) Fix duplicate property DruidDatasource.database (#2348) (@mistercrunch) +- [af3415b](https://github.com/airbnb/superset/commit/af3415b0406399ba41c1592d31440b722556f90b) [filter_box] option to delay filtering with apply button (#2338) (@mistercrunch) +- [b4a96bd](https://github.com/airbnb/superset/commit/b4a96bd8409d38462ea14d2fbafa2f975defd741) Fix for RuntimeError: dictionary changed size during iteration (#2320) (@moranrf) +- [9d8d421](https://github.com/airbnb/superset/commit/9d8d4213840cc07d95ac971437632aeae4ff58b5) [hotfix] fix world map (@mistercrunch) +- [f6ffc00](https://github.com/airbnb/superset/commit/f6ffc007481c658293ae209982dfc369c0f82f95) Allow running Flask Blueprints alongside Superset (#2337) (@mistercrunch) +- [e35016f](https://github.com/airbnb/superset/commit/e35016f07d3880cd557f48c72c617e68d61b125d) remove unneeded tooltip/description text (#2303) (@ascott) +- [af8e252](https://github.com/airbnb/superset/commit/af8e2523a820080e06aaf3e50ff309ada1422bc6) fix version (#2336) (@ascott) +- [492df94](https://github.com/airbnb/superset/commit/492df94b2a3a4767af40edfb5ab074632baaea4d) [sqllab] reserved words should be upper case (#2316) (@mistercrunch) +- [b62f7e2](https://github.com/airbnb/superset/commit/b62f7e2820fc140a318b69b84c54a8a5fe965ed0) [version] use rc for production only releases (#2334) (@ascott) +- [5cc2fc1](https://github.com/airbnb/superset/commit/5cc2fc157cfc2dc14363424533eade67e1f48543) v0.17.1 (#2333) (@ascott) +- [266c049](https://github.com/airbnb/superset/commit/266c049f2df96bb7c815c91dd9f650fbefd6b513) Fix bug with breakdown (#2312) (@vera-liu) +- [4e848c8](https://github.com/airbnb/superset/commit/4e848c8cb55be50c5c5ddbb58694b20d4223a2a3) Updating CHANGELOG (@mistercrunch) +- [efff1ac](https://github.com/airbnb/superset/commit/efff1ac4a1d2b26ef932ac6937be0456fb901c09) Temp hack to make druid filters work in dashboard (#2300) (@vera-liu) +- [fc64a75](https://github.com/airbnb/superset/commit/fc64a75fbd5a3aed7a62b741a9a057acb2b9dca8) v0.17.0 (#2298) (@vera-liu) + +### 0.17.0 (2017/02/28 19:47 +00:00) +0.17.0 introduces major changes that **YOU CANNOT ROLLBACK FROM**, take +a backup of your app's database before starting the upgrade progress. + +* **bookmarks:** the URL scheme for the explore view changed, but previous +URLs are still supported, though there may be some edge cases there +* **translations**: 0.17.0 has a major regression around translations as +much of the logic in the explore view moved from the backend to the frontend +where we currently do not have a translation framework setup. If +translations are important to you, you should skip 0.17.* and get involved +in getting translations to work well in future versions. `1.0` will have +translations + +- [dd9f431](https://github.com/airbnb/superset/commit/dd9f431b6fe6179ebdae015a375640adccb388c0) v0.17.0 (@mistercrunch) +- [c894c54](https://github.com/airbnb/superset/commit/c894c54d00af8b6981c8aafcde02be7195973a38) [table] Allowing to show the time grain in table view (#2294) (@mistercrunch) +- [4d349c7](https://github.com/airbnb/superset/commit/4d349c788559ee3fd7de6792d0e153b98d799487) [hotfix] Fix filter for sqlalchemy and druid (#2293) (@vera-liu) +- [675b819](https://github.com/airbnb/superset/commit/675b819e0a2601b23e21b37aedf0b49757e218f4) Revert "[hotfix] Fix druid filters" (#2292) (@vera-liu) +- [09f1083](https://github.com/airbnb/superset/commit/09f1083c509a690c1f5fcf68f9823fea661ba80f) [table viz] allow showing time granularity in table (#2284) (#2291) (@vera-liu) +- [47be3ef](https://github.com/airbnb/superset/commit/47be3ef3ea385925b5ef67cdecb0ba36adc2b3db) Fixing bugs in Sankey diagrams (#2290) (@mistercrunch) +- [9dd7778](https://github.com/airbnb/superset/commit/9dd7778597e3429c7bb93788172a2850dd33656e) [table viz] allow showing time granularity in table (#2284) (@mistercrunch) +- [efffa92](https://github.com/airbnb/superset/commit/efffa925edf3f54f76acb03660a5b85728133004) rc7 (@mistercrunch) +- [fa9bc92](https://github.com/airbnb/superset/commit/fa9bc92c9551669d5dc1fb99f06e8d49052938d1) [hotfix] filters broken on multi-datasource dashboards (@mistercrunch) +- [227c66c](https://github.com/airbnb/superset/commit/227c66c2c50dd88bdc1ae4eb81dcd2f8189aea98) [hotfix] add regex for druid filters (#2288) (@vera-liu) +- [e91bc9d](https://github.com/airbnb/superset/commit/e91bc9dfcceeb22b88efd57e6defe80d520079f0) added gcc-c++ for RHEL OS dependencies (#2286) (@soccerties) +- [bc29035](https://github.com/airbnb/superset/commit/bc29035bdadad7c2df6d430661314a02d1bafea4) 0.16.1rc6 (@mistercrunch) +- [f10e453](https://github.com/airbnb/superset/commit/f10e453c9bf0a0988769e7a5f126e94e40b50a49) Fixing bar charts x_axis labels (#2280) (@mistercrunch) +- [d4b59b3](https://github.com/airbnb/superset/commit/d4b59b36a801e0f50cde85c15da0538848a5a202) Fixed a bug when querying with schema path to Redshift/Postgresql (#1789) (@sungjuly) +- [4f644cd](https://github.com/airbnb/superset/commit/4f644cd0cae02af685cb12e42edc2875cb32acca) 0.16.1rc5 (@mistercrunch) +- [ed2935e](https://github.com/airbnb/superset/commit/ed2935ec69d72765d66d8c9afe45e0a0b070cc6a) Fixing multi value parsing on old URL (#2277) (@mistercrunch) +- [ea72c6b](https://github.com/airbnb/superset/commit/ea72c6b0188e9c5a662358e89c95801b319296f8) [bugfix] css editor dooesn't pop up (#2243) (@mistercrunch) +- [2df6ab3](https://github.com/airbnb/superset/commit/2df6ab36bf5dab7366ff76fc8d9454cb62a49046) Add Udemy to INTHEWILD (#2275) (@sungjuly) +- [10ea635](https://github.com/airbnb/superset/commit/10ea63557a29859e09cbc5bf93a539a9b9f3ea55) [hotfix] not grouped by -2 (@mistercrunch) +- [55e462d](https://github.com/airbnb/superset/commit/55e462d90b0d01baca8d5c5f2877220b039524ce) 0.16.1rc3 (@mistercrunch) +- [7339392](https://github.com/airbnb/superset/commit/73393925c0482007e498afa745be6d20d8c49b83) [hotfix] Table view doesn't allow SELECT (no group by) (#2274) (@mistercrunch) +- [f9852bc](https://github.com/airbnb/superset/commit/f9852bc807f5335987d0d3d46c665b975a5fb0c1) v0.16.1rc2 (#2272) (@ascott) +- [6e1901e](https://github.com/airbnb/superset/commit/6e1901e8e83d9e2a6e5fc20e3f8e3e996e1ea712) d is not defined, fix (#2270) (@ascott) +- [8758296](https://github.com/airbnb/superset/commit/87582962d98424050ff6f61794fd42fe1f5c0c2f) [Hotfix] access slice_id when slice exists (#2268) (@vera-liu) +- [3de2698](https://github.com/airbnb/superset/commit/3de2698657b389476a9778754fcbc6fb5acc6853) Introducing support for pre-depercate_v1 URL scheme (#2267) (@mistercrunch) +- [ec1f022](https://github.com/airbnb/superset/commit/ec1f0221cd48bb168d0280f55082832d73583f04) Parse filter values for possible integers and floats (#2263) (@vera-liu) +- [4d900c9](https://github.com/airbnb/superset/commit/4d900c9ee1e2ab2db0bf42a2c14268cf4ce91186) Do not add slice_name when slice doesn't exist (#2265) (@vera-liu) +- [3a75890](https://github.com/airbnb/superset/commit/3a758900eb295039c52be89ecfc13e1260c9b1da) [hotfix] separator renders markdown (@mistercrunch) +- [1ea7178](https://github.com/airbnb/superset/commit/1ea7178d17c5b2459e36d213611abcaac0b05620) v0.16.1rc1 (#2260) (@ascott) +- [c85c998](https://github.com/airbnb/superset/commit/c85c9988df3d4bba2a9bce36ebfa681225400e42) fix index error for bar charts (#2258) (@ascott) +- [34f6807](https://github.com/airbnb/superset/commit/34f68073a28d3dacc4162df7c0e2421cb527afe1) Default action to overwrite for users with overwrite permissions (#2257) (@vera-liu) + +### 0.16.1 (2017/02/24 18:56 +00:00) +- [acc880c](https://github.com/airbnb/superset/commit/acc880c4dfc2a02b8d46249895259961e2574c42) [v0.16.1] bump version for prod release (#2250) (@ascott) +- [557b557](https://github.com/airbnb/superset/commit/557b557503b1835412337a4d0d4a574535133ec1) [bugfix] avoid caching errors (#2244) (@mistercrunch) +- [3018356](https://github.com/airbnb/superset/commit/301835658838fc0d9cb2d807ee8fa06b0ed44550) Support more druid postaggregations. (#2235) (@bkyryliuk) +- [ede4dff](https://github.com/airbnb/superset/commit/ede4dffcb71f6d31f9c062af4bcdeeaa9d4ca252) Add trailing slash (#2236) (@bkyryliuk) +- [cad392e](https://github.com/airbnb/superset/commit/cad392eb768e65f11b664ad1e2aeffa9741e1bd4) Fetch schemas separately. (#2227) (@bkyryliuk) +- [0296158](https://github.com/airbnb/superset/commit/02961581005ddb3abea89b38b1cce6af9247b8db) [docs] more specific about python versions (@mistercrunch) +- [b2a4692](https://github.com/airbnb/superset/commit/b2a4692a02a2e6864aa1a8c66f7f63502be3e40e) 0.16.0rc3 (@mistercrunch) +- [2fbadea](https://github.com/airbnb/superset/commit/2fbadea9e328554312742d7a8259d7f773ad314a) Fixing exploring a table (#2233) (@mistercrunch) +- [dc05be3](https://github.com/airbnb/superset/commit/dc05be36a60237c930ca60184bbbc054182eeab1) Check if the query is in state first. (#2226) (@bkyryliuk) +- [dac0d1d](https://github.com/airbnb/superset/commit/dac0d1d0dce2f5ab0c1d5b43814773688ef033c3) 0.16.0rc2 (@mistercrunch) +- [459f716](https://github.com/airbnb/superset/commit/459f7160ac7587f92c8213b496fb64518329c1be) Fixing filtering issues (#2223) (@mistercrunch) +- [aff524d](https://github.com/airbnb/superset/commit/aff524d84389b605e2f390350f4608f12ed67241) **Allow user to put dbname in url (#2209) (@vera-liu) +- [3a91667](https://github.com/airbnb/superset/commit/3a91667e92e0b3bbadd0df4d35d03558268fb6d3) Update cache for the command line command. (#2213) (@bkyryliuk) +- [3e0d358](https://github.com/airbnb/superset/commit/3e0d3584f77b2f493687c1c61af63fb4f321bd36) v0.16.0rc1 (@mistercrunch) +- [1e47d6f](https://github.com/airbnb/superset/commit/1e47d6fb41b8095e2ab24704c8340c16cf8c13e6) Renaming field to control (#2210) (@mistercrunch) +- [d5ba88b](https://github.com/airbnb/superset/commit/d5ba88b4072d45efbb82cc6492645627560794c1) Fixing the CACHING (#2203) (@mistercrunch) +- [#2202](https://github.com/airbnb/superset/pull/2202) Merge pull request #2202 from mistercrunch/clean_cli (@mistercrunch) +- [ec84aa7](https://github.com/airbnb/superset/commit/ec84aa75770b8a6c8f40f6519596571a5dfb48b5) Fixing typo (@mistercrunch) +- [8b4d72c](https://github.com/airbnb/superset/commit/8b4d72cf32fbaa05a196995246090907e197bf7f) Reverting react-select to rc2 (@mistercrunch) +- [85e6e65](https://github.com/airbnb/superset/commit/85e6e65a47e5d419b181876f2659038461b24974) Fixing the build (@mistercrunch) +- [7cad365](https://github.com/airbnb/superset/commit/7cad3655f5f0638acc76e2a0396baeb28702906a) Bumping react-select to 1.0.0-rc.3 (@mistercrunch) +- [b9e7f29](https://github.com/airbnb/superset/commit/b9e7f292c38610a23b75b57cf2ba04d1722fa94f) Cleaning up CLI stdout on startup (@mistercrunch) +- [fc85034](https://github.com/airbnb/superset/commit/fc85034c60422d3b504e039e6af87dfd2608d12a) Better error handling for presto (#2161) (@vera-liu) +- [f5e3d0c](https://github.com/airbnb/superset/commit/f5e3d0cc02628a51178001eecb65eaa6f04ec667) [hotfix] incompatible diamond flask-sqlalchemy version (@mistercrunch) +- [fe377e8](https://github.com/airbnb/superset/commit/fe377e8b9472cc6d16cb2034c2876c758df7ba34) [hotfix] dashboard won't load, error in fields.js (@mistercrunch) +- [5bb8713](https://github.com/airbnb/superset/commit/5bb87138e95a07f604e5b82dbac460b6ece06a40) [hotfix] Trends example slice is broken (@mistercrunch) +- [579e582](https://github.com/airbnb/superset/commit/579e58206e16b53e49fc736569d6d4ab4e234f70) Bumping up some of the python lib deps (@mistercrunch) + +### 0.16.0 (2017/02/17 01:48 +00:00) +- [172b6ce](https://github.com/airbnb/superset/commit/172b6ce8920f79a78e19d49197864ac72ea6647a) v0.16.0 (@mistercrunch) +- [0cc8eff](https://github.com/airbnb/superset/commit/0cc8eff1c3f4296bccf495c9deba01eb73b72b83) [WiP] Deprecate Explore v1 (#2064) (@mistercrunch) +- [3b023e5](https://github.com/airbnb/superset/commit/3b023e5eaa7e5a4be7957a2a48a90672d2c65e71) add css to the data object to be saved (#2188) (@ascott) +- [615d8f1](https://github.com/airbnb/superset/commit/615d8f1624d890f6ce0d5bfe7469394a9245759b) Moving branding assets to folder (@mistercrunch) +- [b4409ac](https://github.com/airbnb/superset/commit/b4409ace2171158350ac6243e6b72bce6f89a864) Adding branding assets in the repo (@mistercrunch) +- [dbee6ac](https://github.com/airbnb/superset/commit/dbee6aca1fbe2d48c685b3976acbb8dfff3f0624) use pre-wrap for long lines (#2181) (@ascott) +- [acfe62e](https://github.com/airbnb/superset/commit/acfe62eaf793da4711a90cdb69aa6ec1ea292447) Add command to refresh datasources (#2180) (@bkyryliuk) +- [527a8af](https://github.com/airbnb/superset/commit/527a8af060798c014cde0f9b32d31a2e6540dd57) Return original state for query if query was stopped (#2164) (@vera-liu) +- [a5a931a](https://github.com/airbnb/superset/commit/a5a931a670871a9d6f1db9310512c5a064f005a0) Fix werkzeug instance was created twice in Debug Mode (#2135) (#2136) (@asdf2014) +- [2f05efa](https://github.com/airbnb/superset/commit/2f05efaf121f6bbcd091f88630115a7e006717c4) Set default time range of query search to the past month (#2162) (@vera-liu) +- [83ef8a2](https://github.com/airbnb/superset/commit/83ef8a2e1274ba57f1a64e5e71c94b021da4d933) Add parsing for nested json objects in resultset (#2163) (@vera-liu) +- [c564881](https://github.com/airbnb/superset/commit/c564881867abcda7b8dc354e6e2205371ab0a97c) Implement caching and dynamic data fetching. (#1466) (@bkyryliuk) +- [b16930f](https://github.com/airbnb/superset/commit/b16930f35dbba1a7d5e3a625dfb4a181cc3aa182) Keep order of axis data when storing df (#2092) (@vera-liu) +- [2d910e3](https://github.com/airbnb/superset/commit/2d910e3f07b1e86efba69c6d8e07dbdb5f63ce37) [vis] render line breaks in TableViz (#2118) (@ascott) +- [daa1420](https://github.com/airbnb/superset/commit/daa1420c8ec31a813d836474e3e2b04c4db54ab7) adding tests for #1131 (#1902) (@SalehHindi) +- [cea310e](https://github.com/airbnb/superset/commit/cea310e50b61f3c8c37d86207dd982d35ba19e28) Using the time zone with specific name for querying Druid (#2143) (@asdf2014) +- [fcdd5c6](https://github.com/airbnb/superset/commit/fcdd5c67523a81ffc6db68dbe27d13deb00b6084) [slices axis] fix axis spacing on dashboard and explore slices (#2145) (@ascott) +- [2ace73e](https://github.com/airbnb/superset/commit/2ace73e9a1f1cf1a20eff632d08ea440f5f88607) [sql-lab] make datasource name in visualize flow more descriptive (#2103) (@ascott) +- [80cfb08](https://github.com/airbnb/superset/commit/80cfb08794d3c8d91514f9b7731b057664628cf3) only call drawGraph once (#2132) (@ascott) +- [1edc2b9](https://github.com/airbnb/superset/commit/1edc2b91cf15f669097939c36c6bc8acef5b5913) Fix ExtDeprecationWarning (#2137) (#2138) (@asdf2014) +- [1f58e18](https://github.com/airbnb/superset/commit/1f58e18b6f134e2ad4c6865c6b63b40135889ebc) Some code refactoring (#2139) (@asdf2014) +- [f2bf316](https://github.com/airbnb/superset/commit/f2bf3160583533bd0dc5004f248f81251aa8c57e) Add NUMERIC num_type (#2127) (@auxsvr) +- [9cd38fa](https://github.com/airbnb/superset/commit/9cd38fa1eda63152c27b76c29dd948f29444b686) little code refactor in models.py (#2124) (@asdf2014) +- [edb0111](https://github.com/airbnb/superset/commit/edb0111775a05ed164019246ee3d7764a9fdba67) Increase query limit to 1M, add separate display limit. (#2111) (@bkyryliuk) +- [#2113](https://github.com/airbnb/superset/pull/2113) Merge pull request #2113 from airbnb/byolken/s3_cache_implementation (@airbnb) +- [461e41c](https://github.com/airbnb/superset/commit/461e41cd610d1bff33ac10c6ea5879b498a16f41) Use BytesIO instead of StringIO for python2/3 compatibility +- [7164061](https://github.com/airbnb/superset/commit/716406198e50b04d2f6600c518b01f65ad690748) Clean up imports of cPickle and StringIO +- [68592ae](https://github.com/airbnb/superset/commit/68592aeddfdd88a2cb291533a9e595cff9b5d6d2) Fix StringIO import in results_backends module +- [b927ff6](https://github.com/airbnb/superset/commit/b927ff6eef7e948be1f2a7e828f0d7de9458d2c2) Fix indentation errors in results_backends module +- [ce50e6e](https://github.com/airbnb/superset/commit/ce50e6e4fe2147cdf61288d687d49e174f3b7b1d) Fix python3 cPickle import errors +- [167ed33](https://github.com/airbnb/superset/commit/167ed33bba160f091e613bc2a351ca5ddc7c8189) Fix name of test in results_backends_tests module +- [0ee1abf](https://github.com/airbnb/superset/commit/0ee1abf31a021d2c9e40d9b3c321fce14d4d7179) Misc. fixes in response to code review feedback +- [6a0a1af](https://github.com/airbnb/superset/commit/6a0a1af67ebfc11fde51eb3d77db7b9ac6569c3c) Fix misc. style issues +- [f85481d](https://github.com/airbnb/superset/commit/f85481d51b3481d7e0ee7f9b73991fb5e2b219ef) Fix long lines in superset/results_backends.py +- [00b6b0a](https://github.com/airbnb/superset/commit/00b6b0ac68571df1a7c8e16fd0e79c64cbfe0a60) Misc. style tweaks to S3Cache changes and tests +- [1546b1a](https://github.com/airbnb/superset/commit/1546b1ae716d47dad7c583100dbf73665d88aa3b) Add tests for S3Cache +- [1e94498](https://github.com/airbnb/superset/commit/1e94498d9d548cbea6466a45dafa3b919c65bd1f) Add initial implementation of S3Cache +- [0f7189b](https://github.com/airbnb/superset/commit/0f7189b859f4a782fd43af694012029645f81b44) Do not fail is the filter cannot be parsed. (#2105) (@bkyryliuk) +- [a6e0f1b](https://github.com/airbnb/superset/commit/a6e0f1b75a5b60dbb81288b22d78d9686c3b565c) Add an option to configure celery workers size. (#2085) (@bkyryliuk) +- [543c22b](https://github.com/airbnb/superset/commit/543c22bb508a90741ff770e50670b412a45e1871) [dashboard] fix nvd3 tooltips (#2096) (@ascott) +- [07e067c](https://github.com/airbnb/superset/commit/07e067cf0b8fae39e5e7093914f0fc1795b15f41) Revert "Bump version to 0.15.4.1" (#2095) (@bkyryliuk) +- [6c256a3](https://github.com/airbnb/superset/commit/6c256a34a98a9323f1044b138c458d5c60e0e01f) Bump version to 0.15.4.1 (#2094) (@bkyryliuk) +- [6b2eb04](https://github.com/airbnb/superset/commit/6b2eb04a73a475b1d597076b15bc39c5e0156842) Put back a default count * metric (#2091) (@bkyryliuk) +- [898d80b](https://github.com/airbnb/superset/commit/898d80ba3837b44c00092f9339fc0ba25efc3162) Viz the compiled query rather than user input. (#2086) (@bkyryliuk) +- [ea8e4ad](https://github.com/airbnb/superset/commit/ea8e4ad05b7298db023c3cfb5079dff92a5da1d3) Display all columns if none are specified. (#2077) (@bkyryliuk) +- [27aeac6](https://github.com/airbnb/superset/commit/27aeac6859da39fea0aebc4920c1fce08fde61e5) Remove fetch results button for async queries (#2084) (@vera-liu) +- [8da371e](https://github.com/airbnb/superset/commit/8da371e324e490bec74d80eb84ca040c86dd6765) Make show query button work for v1 (#2080) (@vera-liu) +- [0c59fe9](https://github.com/airbnb/superset/commit/0c59fe933d0012eb63acfa02bb51273327b4e218) Only call topn when having_filters don't exist (#2075) (@vera-liu) +- [e169c67](https://github.com/airbnb/superset/commit/e169c67760b8ef3b0cafa3eebaf17ea662589ea4) [vis] fix axis labels display (#2066) (@ascott) +- [3a5a927](https://github.com/airbnb/superset/commit/3a5a927dc6e43fe095a0b5592505cea09c42f5e4) check if tempTable exists for ctas queries (#2073) (@vera-liu) +- [2d419e4](https://github.com/airbnb/superset/commit/2d419e4253c8a8874c1a913b4193402c3a4e0187) Return alert instead of fetch button when async results has no data (#2072) (@vera-liu) +- [87869a2](https://github.com/airbnb/superset/commit/87869a29c98b3fadbe1d6879437530f5623d774f) Customize tooltip with axis format (#2068) (@vera-liu) +- [544211f](https://github.com/airbnb/superset/commit/544211f5ecbe63958de72bcc014bc4de23f30bb7) Revert "Display no data alert when async result has zero rows" (#2069) (@vera-liu) +- [f6ac95e](https://github.com/airbnb/superset/commit/f6ac95e2dd14eff2ba6c86cc1512a88992e18538) Convert objects to json (#2050) (@bkyryliuk) +- [63bef2f](https://github.com/airbnb/superset/commit/63bef2f8440620407b6dfe9ebadf8305450fce28) [bugfix] only pop slice_id when it exists in url (#2065) (@vera-liu) +- [4a8cd04](https://github.com/airbnb/superset/commit/4a8cd04de6f1fd6aea060ee62968903dc3892fb8) Display no data when async result has zero rows (#2055) (@vera-liu) +- [8580662](https://github.com/airbnb/superset/commit/85806624db3d4651bc9d1b15e32b34c9d644cfdd) Use a key-value store model for sharing long queries (#1951) (@vera-liu) +- [1ac2273](https://github.com/airbnb/superset/commit/1ac22739848fef09b663ca3fbad9bf84eb706211) Reimplement has_access. (#2028) (@bkyryliuk) +- [a8c29c4](https://github.com/airbnb/superset/commit/a8c29c4ffec1bcf631cea0afbb40e95a4817cf07) Change validator of timeshift to allow for strings (#2051) (@vera-liu) +- [31af01c](https://github.com/airbnb/superset/commit/31af01c4f2b54c05a0f4bc66c7fcaaa9fe0b0681) Splitting dev-reqs.txt into requirements for development and docs (dev-reqs-for-docs.txt). Updating CONTRIBUTING.md accordingly (#2049) (@dylburger) +- [b1bba96](https://github.com/airbnb/superset/commit/b1bba96d04b636d77d557ca066e22d3f2bd3289b) Fix csv download. (#2036) (@bkyryliuk) +- [c5c7302](https://github.com/airbnb/superset/commit/c5c730224e6ab89cfbffb26f1c9a1fc0429e2299) Check datasource level perms for downloading csv and fetching results (#2032) (@bkyryliuk) +- [7441cf7](https://github.com/airbnb/superset/commit/7441cf7d39ffcdab4def1c9b098203610a067794) Fix inner query labels for Vertica (#2041) (@0x0ece) +- [45c72d2](https://github.com/airbnb/superset/commit/45c72d25df68dfceb1bcf5d305700c0972d48407) New administrator tutorial (#2046) (@dylburger) +- [3fff631](https://github.com/airbnb/superset/commit/3fff631b32579ed1d3fa5b50349542b83dc62fda) Expanded on documentation section, running through an example of committing a change to the docs end-to-end and describing the process for adding static assets (#2047) (@dylburger) +- [bfa2891](https://github.com/airbnb/superset/commit/bfa2891b23426740836226be31e160f0d6e132ae) models: add real to numeric types (#2044) (@xrmx) +- [5715f52](https://github.com/airbnb/superset/commit/5715f52fef633473d5e7e1d554a7be97c0840fa8) [hotfix] delete DAR when datasource requested does not exist anymore (#2040) (@vera-liu) +- [1f2126f](https://github.com/airbnb/superset/commit/1f2126f4637d6099bb1591f4c7715bd3c4385878) Fix Druid granularity timeZone (#2037) (@0x0ece) +- [27ed0b3](https://github.com/airbnb/superset/commit/27ed0b37bf3291a688124be5687738ecb37fa8b3) Cleanup fulfilled requests after approve (#1953) (@vera-liu) +- [cdbd2f8](https://github.com/airbnb/superset/commit/cdbd2f850706825f16a08afc40682237d6f6d54f) Guess the filter value type (#1978) (@bkyryliuk) +- [e46ba2b](https://github.com/airbnb/superset/commit/e46ba2b4a4f5ccc9f584db0a3c7c1fbaf2b7fdf0) Simplifying the viz interface (#2005) (@mistercrunch) +- [1c338ba](https://github.com/airbnb/superset/commit/1c338ba742108139c3fe5885765633f298734be5) [WIP] [explorev2] Refactor filter into FieldSet (#1981) (@vera-liu) +- [2b7673a](https://github.com/airbnb/superset/commit/2b7673ad5d95f63b3e251f08f6141f82447d0e23) Fixing pypi_push.sh (@mistercrunch) + +### 0.15.4 (2017/01/24 19:33 +00:00) +- [2f27353](https://github.com/airbnb/superset/commit/2f27353015e18a1eab8ca415131023e91adf5399) v0.15.4 (@mistercrunch) +- [1b8c3f4](https://github.com/airbnb/superset/commit/1b8c3f420a6f74fa8dd6e5a0762e14d9ba5f7426) avoid py3 error in setup.py (#2030) (@wyndhblb) +- [a3a0708](https://github.com/airbnb/superset/commit/a3a070855ccea84e75f89389c835772bbde66d10) Use dist instead of src in mapbox (#2027) (@0x0ece) +- [e84c639](https://github.com/airbnb/superset/commit/e84c6393b8658c7e8d9b321c08f0dea33335aa28) Correcting docs to `run npm build` instead of prod (@mistercrunch) + +### 0.15.3 (2017/01/24 16:10 +00:00) +- [7413dd9](https://github.com/airbnb/superset/commit/7413dd9f4b99752d064024e764284beabb82a3cc) v0.15.3 (@mistercrunch) +- [9cbd667](https://github.com/airbnb/superset/commit/9cbd667eb7af96cb2cafaf05778906110cf50520) [explore-v2] Fix edit datasource link for druid datasources (#1982) (@ascott) +- [37fb56c](https://github.com/airbnb/superset/commit/37fb56c61ceb339079ff117971fc91bdd678db80) Week beginning Monday time grain for MySQL (#2014) (@alanmcruickshank) +- [404a94c](https://github.com/airbnb/superset/commit/404a94cadbe44a463bda2201b22f268201a7474c) [hotfix] fixing the hotfix (@mistercrunch) +- [0807a8d](https://github.com/airbnb/superset/commit/0807a8d0162ff824151df70e7d045f9179668ac0) [hotfix] load selectors in render (@mistercrunch) +- [4a98881](https://github.com/airbnb/superset/commit/4a9888157ebcd8513c083f381fdb417fc5f700de) Update INTHEWILD.md (#2000) (@silashundt) +- [83fbdcc](https://github.com/airbnb/superset/commit/83fbdcceac0c5ee836345ff6b0fe03b1c2c6d69f) Add Qunar to INTHEWILD (#2001) (@flametest) +- [b070ef5](https://github.com/airbnb/superset/commit/b070ef5fdb2ce61b288362878cfd7622d6e1270c) added Digit to inthewild (#1997) (@robert-digit) +- [7d380dc](https://github.com/airbnb/superset/commit/7d380dcd14939f8100405f9f1551a3e2a74054ce) Adding Clark.de and Yahoo to INTHEWILD (@mistercrunch) +- [a15dbd9](https://github.com/airbnb/superset/commit/a15dbd992d53870280700e6dd15f604bd76aa4fc) Adding Clark.de to INTHEWILD (@mistercrunch) +- [52c5d23](https://github.com/airbnb/superset/commit/52c5d235af43f659a36ddd0baeece95756395f1b) Add analysisTypes to refresh druid (#1983) (@noppanit) +- [495f646](https://github.com/airbnb/superset/commit/495f6460a40f4a2622f52c03f511778c4060b1f5) Add email functionality (#1914) (@bkyryliuk) +- [a96024d](https://github.com/airbnb/superset/commit/a96024d0e7c54e5559205beb4f770db1e0ff85bb) [explorev2] Fields can validate input and handle errors (#1980) (@mistercrunch) +- [99b84d2](https://github.com/airbnb/superset/commit/99b84d29091fcbdd233c91cc239cc6d2cf4b2e74) Reverting CLI changes in #1713 (#1964) (@mistercrunch) +- [24728b8](https://github.com/airbnb/superset/commit/24728b8b47037ba809be95e759dc73ce7a8f73a5) Permissions cleanup: remove none and duplicates. (#1967) (@bkyryliuk) +- [9750e49](https://github.com/airbnb/superset/commit/9750e49df8ff95d9dcbd25bea426eaa1ddcb67bd) Add the missing argument (#1969) (@flametest) +- [bf31783](https://github.com/airbnb/superset/commit/bf31783d0ccc62712800ed3cc7caf63890ba36b5) v0.15.2 (@ascott) + +### 0.15.2 (2017/01/13 07:05 +00:00) +- [87eacf8](https://github.com/airbnb/superset/commit/87eacf88c3ee82f6fe3cf79c54672f6c64b7f3fb) fix timestamp error in table view (#1960) (@flametest) +- [1dbfb99](https://github.com/airbnb/superset/commit/1dbfb99ead4be6669752853e58504b0f0eab351d) Leave metrics empty if not specified (#1965) (@vera-liu) +- [ff4020e](https://github.com/airbnb/superset/commit/ff4020ea732de873feb82d94971cadcc5d5c0e74) [explorev2] using label in 'Visualization Type' Select instead of key (#1927) (@mistercrunch) +- [0ce7fc1](https://github.com/airbnb/superset/commit/0ce7fc18a883af3ba9d35a498912fcf49ab1e70c) Adding a way to see the git SHA from the website (#1956) (@mistercrunch) +- [470a6e9](https://github.com/airbnb/superset/commit/470a6e9d768493e7f9671d3cbe436e03ff15f137) [explorev2] adding support for client side validators on controls (#1920) (@mistercrunch) +- [fc74fbe](https://github.com/airbnb/superset/commit/fc74fbeeaa0834f1dcf5f83b25d3b709b1b9fd95) [explore-v2] make control panel sections and fields more dense (#1954) (@ascott) +- [9c6a579](https://github.com/airbnb/superset/commit/9c6a5793b9841686c483f818f9ef1af4cf0b9b73) Fix none view_menues. (#1950) (@bkyryliuk) +- [49b6b38](https://github.com/airbnb/superset/commit/49b6b387410987ef19da36118fc06b4a52d69c85) Pass query instead of slice to Action buttons to prevent lagging query (#1948) (@vera-liu) +- [a385ee9](https://github.com/airbnb/superset/commit/a385ee9e978c1175f95b3704669ab70489469860) Use POST in sqllab_viz instead of url params to avoid error with long queries (#1933) (@vera-liu) +- [f0917c6](https://github.com/airbnb/superset/commit/f0917c62f20e5f1a36e3fa99f155787ff5e54afd) Add a Async Select that fetches options from given endpoint (#1909) (@vera-liu) +- [94d2016](https://github.com/airbnb/superset/commit/94d20168dab4b85fc3f2d2172a2ae899de5aa2ba) Change fields for dual_line to match with new SelectField structure (#1932) (@vera-liu) +- [2d866e3](https://github.com/airbnb/superset/commit/2d866e3ffa9bfedd3b3dad0d3463767aae879a14) [hotfix] fix the logging fix that broke the build (#1940) (@mistercrunch) +- [5d94d70](https://github.com/airbnb/superset/commit/5d94d7067e3cc052f27c736c46a0d74c270ca387) [explore-v2] add edit link below datasource select (#1919) (@ascott) +- [7323f4c](https://github.com/airbnb/superset/commit/7323f4c2ab2eda54e91274a6e9281f0a98160850) Make up the user link string (#1947) (@flametest) +- [eca6dfe](https://github.com/airbnb/superset/commit/eca6dfef6afa05929fa240177e389e6c9a989aaf) switch order of period compare and rolling periods (#1946) (@patrickleotardif) +- [761462e](https://github.com/airbnb/superset/commit/761462ef930fa8ac1094629b403d0ec09bb5c0ab) Revert "#views users for created dashboards on profile page" (#1943) (@vera-liu) +- [98e8325](https://github.com/airbnb/superset/commit/98e83255e6efa18b72b7b17413d55d49ee9213b9) Added extra details around setting up admin user (#1937) (@mobcdi) +- [cbf3562](https://github.com/airbnb/superset/commit/cbf3562a6f4d2edaaf14592c0bee6cab8394108c) Fix double scrollbar in pivot table (UI bug) (#1931) (@SalehHindi) +- [a2c41bb](https://github.com/airbnb/superset/commit/a2c41bbace99eb3e749c59a3b2805c6e8e2b7130) viz: hotfix for saving in cache (#1922) (@xrmx) +- [2a12a3c](https://github.com/airbnb/superset/commit/2a12a3c70267987c4bc3ecfad08aba4a5769fa10) [hotfix] logging is down (@mistercrunch) +- [2ab6a41](https://github.com/airbnb/superset/commit/2ab6a411f4b9fa75bc86b83f4aa4e3707e90e002) Druid dashboard import/export. (#1930) (@bkyryliuk) +- [14ed10b](https://github.com/airbnb/superset/commit/14ed10bdb0f6868e87c8cf39d770fcc616273e72) Fixing docs generation (@mistercrunch) +- [49e6fd5](https://github.com/airbnb/superset/commit/49e6fd5bfbdb90020bf821f843a7e850e70a4c6b) Revert "Druid dashboard import/export. " (#1923) (@mistercrunch) +- [af872fa](https://github.com/airbnb/superset/commit/af872fa4d4fbafb29bf47418c7c2b6716846f509) Druid dashboard import/export. (#1811) (@bkyryliuk) +- [cec4cf0](https://github.com/airbnb/superset/commit/cec4cf014c91e5b664cc3dbfba34619388fd492e) #views users for created dashboards on profile page (#1667) (@vera-liu) +- [783ad70](https://github.com/airbnb/superset/commit/783ad703d06a1e3b75c76307174af02d843cda0d) [hotfix] delete ipdb breakpoint (#1917) (@vera-liu) +- [2226716](https://github.com/airbnb/superset/commit/222671675c31bdad9b8e2c8f3a5b814a02d85bee) [exploreV2] mapStateToProps for fields (#1882) (@mistercrunch) +- [9a62d94](https://github.com/airbnb/superset/commit/9a62d9463005631f2d43b57a0d782453db98931e) [sqllab] bugfix visualizing a query with a semi-colon (#1869) (@mistercrunch) +- [c3edc6e](https://github.com/airbnb/superset/commit/c3edc6e24bb55dcf26d29603b624ba513a562232) [WIP] Add dual-axis line chart to viz (#1782) (@vera-liu) +- [119b0c5](https://github.com/airbnb/superset/commit/119b0c55e972d4b4b93ff9df4d7e99d14b9b8453) [explore] fix height in embed mode (#1898) (@mistercrunch) +- [c14c7ed](https://github.com/airbnb/superset/commit/c14c7edc5ee798eb24b53ae65fec9a876fbe1fd9) [explore] show the broken query when failing (#1871) (@mistercrunch) +- [e3b296c](https://github.com/airbnb/superset/commit/e3b296c558dcad4f77b6c82c37ed20903b1699bf) utils: teach our json serializer to handle more types (#1907) (@xrmx) +- [c2d29fb](https://github.com/airbnb/superset/commit/c2d29fb54bbe8e57bdee03f4f4940469b48c2a92) Change ordering of fields when adding a table (#1899) (@mistercrunch) +- [7aab8b0](https://github.com/airbnb/superset/commit/7aab8b0ae3d6816cf861c09193c9e2e166e2d18a) Simplifying the Fields (Controls) interface (#1868) (@mistercrunch) +- [861a3bd](https://github.com/airbnb/superset/commit/861a3bd4ae85da2bb227c3d44a4ff56b9a836caf) docs: 8088 is the default port, no need to specify it (#1861) (@andreamelloncelli) +- [9bc7ad9](https://github.com/airbnb/superset/commit/9bc7ad9cd53b9204a044c5dff16185ca49bd66a4) Do not use persistState for explorev2 (#1894) (@vera-liu) +- [a1e3fc1](https://github.com/airbnb/superset/commit/a1e3fc1c230239c5535573cf708ff0e03d5eaa8a) [explorev2] giving more room for long textboxes (#1881) (@mistercrunch) +- [242869d](https://github.com/airbnb/superset/commit/242869db3aa8eab99558d19f0e99923a78fb9840) [sql lab] only show single run query button (#1858) (@ascott) +- [8924bb7](https://github.com/airbnb/superset/commit/8924bb79e74704632cc4401f0ed1f7134be11a1d) [explorev2] moving the "Time" section up to 2nd section (#1885) (@mistercrunch) +- [a0d103d](https://github.com/airbnb/superset/commit/a0d103dac33201b55b2587d10d11f293bed0a0e7) Fix small typo (#1888) (@davejm) +- [d52b299](https://github.com/airbnb/superset/commit/d52b299df8812ff4af5fb05ded2c1b3aedaae865) Updating CHANGELOG (@mistercrunch) + ### 0.15.1 (2016/12/28 21:29 +00:00) - [092432f](https://github.com/airbnb/superset/commit/092432f04f0033e60493f009728a7bfd6a744b22) v0.15.1 (@mistercrunch) - [ea8e663](https://github.com/airbnb/superset/commit/ea8e6634d6c304cde3a42c65d37ec694f76b8cec) read anon user role from config, remove reference to public role (#1878) (@willgroves) @@ -11,7 +552,6 @@ - [bb04e6f](https://github.com/airbnb/superset/commit/bb04e6fcfa1042b4532b50d8898555813be7fa29) Use APP_ICON in template (#1855) (@szmate1618) - [007ee88](https://github.com/airbnb/superset/commit/007ee88d33f92e6d052122b35ccad84d176029a7) [explorev2] improving the scrolling/scrollbars placement (#1840) (@mistercrunch) -### airbnb_prod.0.15.0.1 (2016/12/15 22:06 +00:00) - [7a5bb94](https://github.com/airbnb/superset/commit/7a5bb947542fdc20e2ec70e18b1cf418b8d1dba8) Stop ChartContainer from rendering twice on chartStatus change (#1828) (@vera-liu) - [e06a0cd](https://github.com/airbnb/superset/commit/e06a0cd89bc84f3a7e75ee6f03df8c9c3a2badeb) Add force_ctas_schema to query model when enabled (#1825) (@vera-liu) - [b6cba13](https://github.com/airbnb/superset/commit/b6cba13293101f3022c16e120e96383b59cae03e) [explorev2] enabling redux dev tools (#1842) (@mistercrunch) @@ -46,10 +586,8 @@ - [74edb93](https://github.com/airbnb/superset/commit/74edb936a599ed54528389814ddf83e74f8452fd) [WIP] Add http to copied url and move function to componentWillReceiveProps (#1780) (@vera-liu) - [c155857](https://github.com/airbnb/superset/commit/c1558578d7c555fb7bb9ee30eb98bad4d28fbd07) [explorev2] Breaking down large files, fixing JS warnings (#1773) (@mistercrunch) -### airbnb_prod.0.13.0.3 (2016/12/06 07:18 +00:00) - [3597fdb](https://github.com/airbnb/superset/commit/3597fdb7f869929e0b09ff0144ff430b81e67853) Filter table list based on the user permissions. (#1769) (@bkyryliuk) -### airbnb_prod.0.13.0.2 (2016/12/06 01:17 +00:00) - [43f2a37](https://github.com/airbnb/superset/commit/43f2a379a1b88b260d0a4bdeac97b3cb4478afcf) Make cell-click filter in table viz optional (#1762) (@vera-liu) - [69702e3](https://github.com/airbnb/superset/commit/69702e3a1956ef5587e5aea2bffb3720b9b4cd35) Create users if not found. (#1753) (@bkyryliuk) - [eb0655c](https://github.com/airbnb/superset/commit/eb0655cf85daad4329cf8630fe99e2a50d0e7e5a) [sqllab] Fixed js error when results are not available (#1715) (@vera-liu) @@ -69,8 +607,6 @@ - [168a252](https://github.com/airbnb/superset/commit/168a25239e712fe9eccf676f26df75fd91bd126f) State that npm should be between 3.9 and 4 (@bkyryliuk) - [7eef46e](https://github.com/airbnb/superset/commit/7eef46e9413b01ec15be515567a9619c695d5501) Adding links pointing to the new user profile page (#1704) (@mistercrunch) - [50da4f8](https://github.com/airbnb/superset/commit/50da4f8c0708f91ff24c0abd7189a137a1415bf6) Support running superset via pex (#1713) (@yolken) - -### airbnb_prod.0.13.0.1 (2016/12/01 19:59 +00:00) - [2d0ebea](https://github.com/airbnb/superset/commit/2d0ebeae1bfd5e385000c9aa952891cf474821c6) [explorev2] Make chart container more responsive (#1724) (@vera-liu) - [1a16491](https://github.com/airbnb/superset/commit/1a164919715d6eaf1a999b97daaa53acb94a827d) Display full table name (schema + name) if possible. (#1728) (@bkyryliuk) - [7f4f250](https://github.com/airbnb/superset/commit/7f4f25097046dac9b436ef87f041debe2713827a) Redirects to login page if user not logged in at welcome page (#1723) (@vera-liu) @@ -179,7 +715,6 @@ - [a475551](https://github.com/airbnb/superset/commit/a475551b23d5830ab2945f615328f31d48df36ca) [sqllab] bind alt+enter shortcut in AceEditor to run a query (#1554) (@mistercrunch) - [bad7676](https://github.com/airbnb/superset/commit/bad7676414662b28a4b72eb680fbf42a5c6281a5) Bump cryptography dependency to 1.5.3 (#1569) (@xrmx) -### airbnb_prod.0.12.0.1 (2016/11/08 23:55 +00:00) - [51c0470](https://github.com/airbnb/superset/commit/51c0470f0be438312e90f2efb1f2e37291a30ce4) [explore v2] populate dynamic select field options (#1543) (@ascott) - [4530047](https://github.com/airbnb/superset/commit/4530047c769ba6d5953ef1547b8507c62f657942) Added action buttons to Chart Container of explore V2 (#1562) (@vera-liu) - [1bf83c3](https://github.com/airbnb/superset/commit/1bf83c3bf78de422df1b21c3049d106b1cb29385) [explore-v2] render columns based on length of fieldSets array (#1559) (@ascott) @@ -414,7 +949,6 @@ - [508feb2](https://github.com/airbnb/caravel/commit/508feb2bad581068a47193e06d35ed5926b25191) [hotfix] getting presto on track - [9f8eef4](https://github.com/airbnb/caravel/commit/9f8eef498c93ce2945e3d17cda1c3d2a24d05c92) [theme] a little bit less blue (#1024) (@mistercrunch) -### airbnb_prod.0.10.0.2 (2016/08/30 18:08 +00:00) - [561828c](https://github.com/airbnb/caravel/commit/561828c2f890e179c4116f773cc7507103804dc6) [SQL Lab] moving the db/schema/table select to the left (#1038) (@mistercrunch) - [fc1e637](https://github.com/airbnb/caravel/commit/fc1e63761cc86a5673433b0e2efc0081325684d3) Adding celery_tests.py (@mistercrunch) - [38b8db8](https://github.com/airbnb/caravel/commit/38b8db8051490375d021c51fb76a9f1bdc3ccf1f) SQL Lab - A multi-tab SQL editor (#514) (@mistercrunch) @@ -437,7 +971,6 @@ - [c7467f5](https://github.com/airbnb/caravel/commit/c7467f544c10281538b8504add9510f3fcf20e60) Documenting making your own build (#990) (@mistercrunch) - [30ef8eb](https://github.com/airbnb/caravel/commit/30ef8eba37073c2cb0d2a6356fe3a9bcabab4913) [ui] hack bootswatch/cosmo theme to get better tabs for sql-lab (and other things) (#975) (@ascott) -### airbnb_prod.0.10.0.1 (2016/08/18 07:02 +00:00) - [23a5463](https://github.com/airbnb/caravel/commit/23a54632081aa589e05a820ac774c8b4f6993252) Hack around the "last migration doesn't stamp" Alembic bug (#967) (@mistercrunch) - [84213ab](https://github.com/airbnb/caravel/commit/84213ab8cd27369f796131c68c075f12f8bd0ce2) [line] growth vs factor option for 'Period Ratio' (#970) (@mistercrunch) - [379cf6c](https://github.com/airbnb/caravel/commit/379cf6cbd9527617b6aae60501ad2fa4e252bb8f) [ui] tweaks and improvements (#965) (@ascott) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2776da8c9f886..645f926edcab9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ open to whoever wants to implement it. ### Implement Features Look through the GitHub issues for features. Anything tagged with -"feature" is open to whoever wants to implement it. +"feature" or "starter_task" is open to whoever wants to implement it. ### Documentation @@ -47,6 +47,24 @@ If you are proposing a feature: - Remember that this is a volunteer-driven project, and that contributions are welcome :) +## Pull Request Guidelines + +Before you submit a pull request from your forked repo, check that it +meets these guidelines: + +1. The pull request should include tests, either as doctests, + unit tests, or both. +2. If the pull request adds functionality, the docs should be updated + as part of the same PR. Doc string are often sufficient, make + sure to follow the sphinx compatible standards. +3. The pull request should work for Python 2.7, and ideally python 3.4+. + ``from __future__ import`` will be required in every `.py` file soon. +4. Code will be reviewed by re running the unittests, flake8 and syntax + should be as rigorous as the core Python project. +5. Please rebase and resolve all conflicts before submitting. +6. If you are asked to update your pull request with some changes there's + no need to create a new one. Push your changes to the same branch. + ## Documentation The latest documentation and tutorial are available [here](http://airbnb.io/superset). @@ -211,6 +229,9 @@ following commands. The `dev` flag will keep the npm script running and re-run it upon any changes within the assets directory. ``` +# Copies a conf file from the frontend to the backend +npm run sync-backend + # Compiles the production / optimized js & css npm run prod @@ -289,23 +310,6 @@ The `variables.less` and `bootswatch.less` files that ship with Superset are der [Bootswatch](https://bootswatch.com) and thus extend Bootstrap. Modify variables in these files directly, or swap them out entirely with the equivalent files from other Bootswatch (themes)[https://github.com/thomaspark/bootswatch.git] -## Pull Request Guidelines - -Before you submit a pull request from your forked repo, check that it -meets these guidelines: - -1. The pull request should include tests, either as doctests, - unit tests, or both. -2. If the pull request adds functionality, the docs should be updated - as part of the same PR. Doc string are often sufficient, make - sure to follow the sphinx compatible standards. -3. The pull request should work for Python 2.6, 2.7, and ideally python 3.3. - ``from __future__ import`` will be required in every `.py` file soon. -4. Code will be reviewed by re running the unittests, flake8 and syntax - should be as rigorous as the core Python project. -5. Please rebase and resolve all conflicts before submitting. - - ## Translations We use [Babel](http://babel.pocoo.org/en/latest/) to translate Superset. The diff --git a/INTHEWILD.md b/INTHEWILD.md index 80b7a34d873c0..cda992a8f251f 100644 --- a/INTHEWILD.md +++ b/INTHEWILD.md @@ -4,17 +4,22 @@ to add your organization and/or project to this document! Organizations ---------- - [Airbnb](https://github.com/airbnb) - - [GfK Data Lab] (http://datalab.gfk.com) - - [Maieutical Labs] (https://cloudschooling.it) - - [Shopkick] (https://www.shopkick.com) - - [Amino] (https://amino.com) - - [Faasos] (http://faasos.com/) - - [Clark.de] (http://clark.de/) - - [Yahoo!] (www.yahoo.com) - - [Digit Game Studios] (https://www.digitgaming.com/) - - [Brilliant.org] (https://brilliant.org/) - - [Qunar] (https://www.qunar.com/) - + - [GfK Data Lab](http://datalab.gfk.com) + - [Maieutical Labs](https://cloudschooling.it) + - [Shopkick](https://www.shopkick.com) + - [Amino](https://amino.com) + - [Faasos](http://faasos.com/) + - [Clark.de](http://clark.de/) + - [Yahoo!](www.yahoo.com) + - [Digit Game Studios](https://www.digitgaming.com/) + - [Brilliant.org](https://brilliant.org/) + - [Qunar](https://www.qunar.com/) + - [Udemy](https://www.udemy.com/) + - [Tooploox](https://www.tooploox.com/) + - [Tobii](http://www.tobii.com/) + - [Endress+Hauser](http://www.endress.com/) + - [Tails.com](https://tails.com) + - [FBK - ICT center](http://ict.fbk.eu) Projects ---------- - None we know of yet diff --git a/babel/messages.pot b/babel/messages.pot index e19c73590cb90..9988d7105418a 100755 --- a/babel/messages.pot +++ b/babel/messages.pot @@ -1,14 +1,14 @@ # Translations template for PROJECT. -# Copyright (C) 2016 ORGANIZATION +# Copyright (C) 2017 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2016. +# FIRST AUTHOR , 2017. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-07-01 17:17+0800\n" +"POT-Creation-Date: 2017-06-04 20:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,1793 +17,723 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -#: superset/forms.py:140 -msgid "Viz" -msgstr "" - -#: superset/forms.py:143 -msgid "The type of visualization to display" -msgstr "" - -#: superset/forms.py:146 -msgid "Metrics" +#: superset/db_engine_specs.py:194 superset/db_engine_specs.py:225 +#: superset/db_engine_specs.py:269 superset/db_engine_specs.py:317 +#: superset/db_engine_specs.py:362 superset/db_engine_specs.py:770 +#: superset/db_engine_specs.py:806 superset/db_engine_specs.py:838 +#: superset/db_engine_specs.py:884 +msgid "Time Column" msgstr "" -#: superset/forms.py:149 superset/forms.py:154 -msgid "One or many metrics to display" +#: superset/db_engine_specs.py:195 superset/db_engine_specs.py:226 +#: superset/db_engine_specs.py:318 superset/db_engine_specs.py:363 +#: superset/db_engine_specs.py:771 superset/db_engine_specs.py:839 +msgid "second" msgstr "" -#: superset/forms.py:152 -msgid "Ordering" +#: superset/db_engine_specs.py:196 superset/db_engine_specs.py:229 +#: superset/db_engine_specs.py:321 superset/db_engine_specs.py:365 +#: superset/db_engine_specs.py:773 superset/db_engine_specs.py:807 +#: superset/db_engine_specs.py:841 superset/db_engine_specs.py:885 +msgid "minute" msgstr "" -#: superset/forms.py:157 superset/views.py:294 superset/views.py:334 -msgid "Metric" +#: superset/db_engine_specs.py:197 superset/db_engine_specs.py:233 +#: superset/db_engine_specs.py:323 superset/db_engine_specs.py:367 +#: superset/db_engine_specs.py:779 superset/db_engine_specs.py:809 +#: superset/db_engine_specs.py:843 superset/db_engine_specs.py:891 +msgid "hour" msgstr "" -#: superset/forms.py:160 -msgid "Choose the metric" +#: superset/db_engine_specs.py:198 superset/db_engine_specs.py:238 +#: superset/db_engine_specs.py:270 superset/db_engine_specs.py:325 +#: superset/db_engine_specs.py:369 superset/db_engine_specs.py:781 +#: superset/db_engine_specs.py:811 superset/db_engine_specs.py:845 +#: superset/db_engine_specs.py:893 +msgid "day" msgstr "" -#: superset/forms.py:163 -msgid "Chart Style" +#: superset/db_engine_specs.py:199 superset/db_engine_specs.py:244 +#: superset/db_engine_specs.py:271 superset/db_engine_specs.py:326 +#: superset/db_engine_specs.py:371 superset/db_engine_specs.py:783 +#: superset/db_engine_specs.py:813 superset/db_engine_specs.py:847 +msgid "week" msgstr "" -#: superset/forms.py:165 -msgid "stack" +#: superset/db_engine_specs.py:200 superset/db_engine_specs.py:246 +#: superset/db_engine_specs.py:273 superset/db_engine_specs.py:328 +#: superset/db_engine_specs.py:373 superset/db_engine_specs.py:785 +#: superset/db_engine_specs.py:815 superset/db_engine_specs.py:849 +#: superset/db_engine_specs.py:895 +msgid "month" msgstr "" -#: superset/forms.py:166 -msgid "stream" +#: superset/db_engine_specs.py:201 superset/db_engine_specs.py:248 +#: superset/db_engine_specs.py:330 superset/db_engine_specs.py:375 +#: superset/db_engine_specs.py:787 superset/db_engine_specs.py:817 +#: superset/db_engine_specs.py:851 superset/db_engine_specs.py:897 +msgid "quarter" msgstr "" -#: superset/forms.py:167 -msgid "expand" +#: superset/db_engine_specs.py:202 superset/db_engine_specs.py:252 +#: superset/db_engine_specs.py:332 superset/db_engine_specs.py:789 +#: superset/db_engine_specs.py:819 superset/db_engine_specs.py:899 +msgid "year" msgstr "" -#: superset/forms.py:173 -msgid "Color Scheme" +#: superset/db_engine_specs.py:334 +msgid "week_start_monday" msgstr "" -#: superset/forms.py:175 -msgid "fire" +#: superset/db_engine_specs.py:377 superset/db_engine_specs.py:853 +msgid "week_ending_saturday" msgstr "" -#: superset/forms.py:176 -msgid "blue_white_yellow" +#: superset/db_engine_specs.py:380 superset/db_engine_specs.py:856 +msgid "week_start_sunday" msgstr "" -#: superset/forms.py:177 -msgid "white_black" +#: superset/db_engine_specs.py:775 superset/db_engine_specs.py:887 +msgid "5 minute" msgstr "" -#: superset/forms.py:178 -msgid "black_white" +#: superset/db_engine_specs.py:777 +msgid "half hour" msgstr "" -#: superset/forms.py:184 -msgid "Normalize Across" +#: superset/db_engine_specs.py:889 +msgid "10 minute" msgstr "" -#: superset/forms.py:186 -msgid "heatmap" +#: superset/viz.py:311 +msgid "Table View" msgstr "" -#: superset/forms.py:187 -msgid "x" +#: superset/viz.py:364 +msgid "Pivot Table" msgstr "" -#: superset/forms.py:188 -msgid "y" +#: superset/viz.py:413 +msgid "Markup" msgstr "" -#: superset/forms.py:191 -msgid "" -"Color will be rendered based on a ratio of the cell against the sum of " -"across this criteria" +#: superset/viz.py:432 +msgid "Separator" msgstr "" -#: superset/forms.py:197 -msgid "Color Scale" +#: superset/viz.py:448 +msgid "Word Cloud" msgstr "" -#: superset/forms.py:199 -msgid "series" +#: superset/viz.py:471 +msgid "Treemap" msgstr "" -#: superset/forms.py:200 -msgid "overall" +#: superset/viz.py:497 +msgid "Calendar Heatmap" msgstr "" -#: superset/forms.py:201 -msgid "change" +#: superset/viz.py:555 +msgid "Box Plot" msgstr "" -#: superset/forms.py:204 -msgid "Defines how the color are attributed." +#: superset/viz.py:644 +msgid "Bubble Chart" msgstr "" -#: superset/forms.py:207 -msgid "Rendering" +#: superset/viz.py:693 +msgid "Bullet Chart" msgstr "" -#: superset/forms.py:209 -msgid "pixelated (Sharp)" +#: superset/viz.py:742 +msgid "Big Number with Trendline" msgstr "" -#: superset/forms.py:210 -msgid "auto (Smooth)" +#: superset/viz.py:771 +msgid "Big Number" msgstr "" -#: superset/forms.py:213 -msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" +#: superset/viz.py:798 +msgid "Time Series - Line Chart" msgstr "" -#: superset/forms.py:218 -msgid "XScale Interval" +#: superset/viz.py:925 +msgid "Time Series - Dual Axis Line Chart" msgstr "" -#: superset/forms.py:221 -msgid "Number of step to take between ticks when printing the x scale" +#: superset/viz.py:1000 +msgid "Time Series - Bar Chart" msgstr "" -#: superset/forms.py:226 -msgid "YScale Interval" +#: superset/viz.py:1008 +msgid "Time Series - Percent Change" msgstr "" -#: superset/forms.py:229 -msgid "Number of step to take between ticks when printing the y scale" +#: superset/viz.py:1016 +msgid "Time Series - Stacked" msgstr "" -#: superset/forms.py:234 -msgid "Stacked Bars" +#: superset/viz.py:1025 +msgid "Distribution - NVD3 - Pie Chart" msgstr "" -#: superset/forms.py:239 -msgid "Extra Controls" +#: superset/viz.py:1043 +msgid "Histogram" msgstr "" -#: superset/forms.py:241 -msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." +#: superset/viz.py:1068 +msgid "Distribution - Bar Chart" msgstr "" -#: superset/forms.py:247 -msgid "Reduce X ticks" +#: superset/viz.py:1135 +msgid "Sunburst" msgstr "" -#: superset/forms.py:249 -msgid "" -"Reduces the number of X axis ticks to be rendered. If true, the x axis " -"wont overflow and labels may be missing. If false, a minimum width will " -"be applied to columns and the width may overflow into an horizontal " -"scroll." +#: superset/viz.py:1168 +msgid "Sankey" msgstr "" -#: superset/forms.py:257 -msgid "Include Series" +#: superset/viz.py:1217 +msgid "Directed Force Layout" msgstr "" -#: superset/forms.py:259 -msgid "Include series name as an axis" +#: superset/viz.py:1238 +msgid "Country Map" msgstr "" -#: superset/forms.py:262 -msgid "Color Metric" +#: superset/viz.py:1267 +msgid "World Map" msgstr "" -#: superset/forms.py:265 -msgid "A metric to use for color" +#: superset/viz.py:1317 +msgid "Filters" msgstr "" -#: superset/forms.py:268 -msgid "Country Field Type" +#: superset/viz.py:1352 +msgid "iFrame" msgstr "" -#: superset/forms.py:271 -msgid "Full name" +#: superset/viz.py:1369 +msgid "Parallel Coordinates" msgstr "" -#: superset/forms.py:272 -msgid "code International Olympic Committee (cioc)" +#: superset/viz.py:1394 +msgid "Heatmap" msgstr "" -#: superset/forms.py:273 -msgid "code ISO 3166-1 alpha-2 (cca2)" +#: superset/viz.py:1445 +msgid "Horizon Charts" msgstr "" -#: superset/forms.py:274 -msgid "code ISO 3166-1 alpha-3 (cca3)" +#: superset/viz.py:1456 +msgid "Mapbox" msgstr "" -#: superset/forms.py:276 -msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" +#: superset/connectors/druid/models.py:934 +msgid "No data was returned." msgstr "" -#: superset/forms.py:281 -msgid "Group by" +#: superset/connectors/druid/views.py:37 superset/connectors/sqla/views.py:74 +msgid "Column" msgstr "" -#: superset/forms.py:283 -msgid "One or many fields to group by" +#: superset/connectors/druid/views.py:38 superset/connectors/druid/views.py:97 +#: superset/connectors/sqla/views.py:120 +msgid "Type" msgstr "" -#: superset/forms.py:286 superset/forms.py:291 -msgid "Columns" +#: superset/connectors/druid/views.py:39 superset/views/core.py:306 +#: superset/views/core.py:355 +msgid "Datasource" msgstr "" -#: superset/forms.py:288 -msgid "One or many fields to pivot as columns" +#: superset/connectors/druid/views.py:40 superset/connectors/sqla/views.py:77 +msgid "Groupable" msgstr "" -#: superset/forms.py:293 superset/forms.py:298 superset/forms.py:303 -msgid "Columns to display" +#: superset/connectors/druid/views.py:41 superset/connectors/sqla/views.py:78 +msgid "Filterable" msgstr "" -#: superset/forms.py:296 -msgid "X" +#: superset/connectors/druid/views.py:42 superset/connectors/sqla/views.py:80 +msgid "Count Distinct" msgstr "" -#: superset/forms.py:301 -msgid "Y" +#: superset/connectors/druid/views.py:43 superset/connectors/sqla/views.py:81 +msgid "Sum" msgstr "" -#: superset/forms.py:306 -msgid "Origin" +#: superset/connectors/druid/views.py:44 superset/connectors/sqla/views.py:82 +msgid "Min" msgstr "" -#: superset/forms.py:308 -msgid "default" +#: superset/connectors/druid/views.py:45 superset/connectors/sqla/views.py:83 +msgid "Max" msgstr "" -#: superset/forms.py:309 superset/forms.py:467 -msgid "now" +#: superset/connectors/druid/views.py:48 superset/connectors/sqla/views.py:43 +msgid "" +"Whether this column is exposed in the `Filters` section of the explore " +"view." msgstr "" -#: superset/forms.py:312 +#: superset/connectors/druid/views.py:88 superset/connectors/sqla/views.py:102 msgid "" -"Defines the origin where time buckets start, accepts natural dates as in " -"'now', 'sunday' or '1970-01-01'" +"Whether the access to this metric is restricted to certain roles. Only " +"roles with the permission 'metric access on XXX (the name of this " +"metric)' are allowed to access this metric" msgstr "" -#: superset/forms.py:317 -msgid "Bottom Margin" +#: superset/connectors/druid/views.py:94 superset/connectors/sqla/views.py:117 +msgid "Metric" msgstr "" -#: superset/forms.py:320 -msgid "Bottom marging, in pixels, allowing for more room for axis labels" +#: superset/connectors/druid/views.py:95 superset/connectors/druid/views.py:205 +#: superset/connectors/sqla/views.py:76 superset/connectors/sqla/views.py:118 +#: superset/views/core.py:356 +msgid "Description" msgstr "" -#: superset/forms.py:325 -msgid "Time Granularity" +#: superset/connectors/druid/views.py:96 superset/connectors/sqla/views.py:75 +#: superset/connectors/sqla/views.py:119 +msgid "Verbose Name" msgstr "" -#: superset/forms.py:328 -msgid "all" +#: superset/connectors/druid/views.py:98 superset/views/core.py:529 +msgid "JSON" msgstr "" -#: superset/forms.py:329 -msgid "5 seconds" +#: superset/connectors/druid/views.py:99 +msgid "Druid Datasource" msgstr "" -#: superset/forms.py:330 -msgid "30 seconds" +#: superset/connectors/druid/views.py:124 +#: superset/connectors/druid/views.py:204 +msgid "Cluster" msgstr "" -#: superset/forms.py:331 -msgid "1 minute" +#: superset/connectors/druid/views.py:125 +msgid "Coordinator Host" msgstr "" -#: superset/forms.py:332 -msgid "5 minutes" +#: superset/connectors/druid/views.py:126 +msgid "Coordinator Port" msgstr "" -#: superset/forms.py:333 -msgid "1 hour" +#: superset/connectors/druid/views.py:127 +msgid "Coordinator Endpoint" msgstr "" -#: superset/forms.py:334 -msgid "6 hour" +#: superset/connectors/druid/views.py:128 +msgid "Broker Host" msgstr "" -#: superset/forms.py:335 -msgid "1 day" +#: superset/connectors/druid/views.py:129 +msgid "Broker Port" msgstr "" -#: superset/forms.py:336 -msgid "7 days" +#: superset/connectors/druid/views.py:130 +msgid "Broker Endpoint" msgstr "" -#: superset/forms.py:338 +#: superset/connectors/druid/views.py:173 superset/connectors/sqla/views.py:156 msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in '10 seconds', '1 day' or '56 weeks'" -msgstr "" - -#: superset/forms.py:344 -msgid "Domain" -msgstr "" - -#: superset/forms.py:347 superset/forms.py:361 superset/models.py:417 -#: superset/models.py:435 -msgid "hour" -msgstr "" - -#: superset/forms.py:348 superset/forms.py:362 superset/models.py:419 -#: superset/models.py:427 superset/models.py:436 -msgid "day" +"The list of slices associated with this table. By altering this " +"datasource, you may change how these associated slices behave. Also note " +"that slices need to point to a datasource, so this form will fail at " +"saving if removing slices from a datasource. If you want to change the " +"datasource for a slice, overwrite the slice from the 'explore view'" msgstr "" -#: superset/forms.py:349 superset/forms.py:363 superset/models.py:407 -#: superset/models.py:420 superset/models.py:428 superset/models.py:437 -msgid "week" -msgstr "" - -#: superset/forms.py:350 superset/forms.py:364 superset/models.py:408 -#: superset/models.py:422 superset/models.py:429 superset/models.py:438 -msgid "month" -msgstr "" - -#: superset/forms.py:351 superset/models.py:439 -msgid "year" -msgstr "" - -#: superset/forms.py:353 -msgid "The time unit used for the grouping of blocks" -msgstr "" - -#: superset/forms.py:357 -msgid "Subdomain" -msgstr "" - -#: superset/forms.py:360 superset/forms.py:701 -msgid "min" +#: superset/connectors/druid/views.py:181 superset/connectors/sqla/views.py:164 +msgid "Timezone offset (in hours) for this datasource" msgstr "" -#: superset/forms.py:366 +#: superset/connectors/druid/views.py:185 msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" -msgstr "" - -#: superset/forms.py:371 -msgid "Link Length" +"Time expression to use as a predicate when retrieving distinct values to " +"populate the filter component. Only applies when `Enable Filter Select` " +"is on. If you enter `7 days ago`, the distinct list of values in the " +"filter will be populated based on the distinct value over the past week" msgstr "" -#: superset/forms.py:383 -msgid "Link length in the force layout" -msgstr "" - -#: superset/forms.py:386 -msgid "Charge" -msgstr "" - -#: superset/forms.py:400 -msgid "Charge in the force layout" -msgstr "" - -#: superset/forms.py:403 superset/models.py:406 superset/models.py:416 -#: superset/models.py:426 superset/models.py:432 -msgid "Time Column" -msgstr "" - -#: superset/forms.py:406 +#: superset/connectors/druid/views.py:192 superset/connectors/sqla/views.py:186 msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table editor. Also note " -"that the filter below is applied against this column or expression" -msgstr "" - -#: superset/forms.py:414 -msgid "Resample Rule" -msgstr "" - -#: superset/forms.py:417 -msgid "1T" -msgstr "" - -#: superset/forms.py:418 -msgid "1H" -msgstr "" - -#: superset/forms.py:419 -msgid "1D" -msgstr "" - -#: superset/forms.py:420 -msgid "7D" -msgstr "" - -#: superset/forms.py:421 -msgid "1M" -msgstr "" - -#: superset/forms.py:422 -msgid "1AS" -msgstr "" - -#: superset/forms.py:424 -msgid "Pandas resample rule" -msgstr "" - -#: superset/forms.py:427 -msgid "Resample How" -msgstr "" - -#: superset/forms.py:431 superset/forms.py:700 -msgid "mean" -msgstr "" - -#: superset/forms.py:432 superset/forms.py:699 -msgid "sum" -msgstr "" - -#: superset/forms.py:433 superset/forms.py:703 -msgid "median" -msgstr "" - -#: superset/forms.py:435 -msgid "Pandas resample how" -msgstr "" - -#: superset/forms.py:438 -msgid "Resample Fill Method" +"Whether to populate the filter's dropdown in the explore view's filter " +"section with a list of distinct values fetched from the backend on the " +"fly" msgstr "" -#: superset/forms.py:442 -msgid "ffill" +#: superset/connectors/druid/views.py:196 superset/connectors/sqla/views.py:200 +msgid "" +"Redirects to this endpoint when clicking on the datasource from the " +"datasource list" msgstr "" -#: superset/forms.py:443 -msgid "bfill" +#: superset/connectors/druid/views.py:202 superset/connectors/sqla/views.py:193 +msgid "Associated Slices" msgstr "" -#: superset/forms.py:445 -msgid "Pandas resample fill method" +#: superset/connectors/druid/views.py:203 +msgid "Data Source" msgstr "" -#: superset/forms.py:448 -msgid "Since" +#: superset/connectors/druid/views.py:206 +msgid "Owner" msgstr "" -#: superset/forms.py:451 -msgid "1 hour ago" +#: superset/connectors/druid/views.py:207 +msgid "Is Hidden" msgstr "" -#: superset/forms.py:452 -msgid "12 hours ago" +#: superset/connectors/druid/views.py:208 superset/connectors/sqla/views.py:198 +msgid "Enable Filter Select" msgstr "" -#: superset/forms.py:453 superset/forms.py:468 -msgid "1 day ago" +#: superset/connectors/druid/views.py:209 +msgid "Default Endpoint" msgstr "" -#: superset/forms.py:454 superset/forms.py:469 -msgid "7 days ago" +#: superset/connectors/druid/views.py:210 +msgid "Time Offset" msgstr "" -#: superset/forms.py:455 superset/forms.py:470 -msgid "28 days ago" +#: superset/connectors/druid/views.py:211 superset/connectors/sqla/views.py:204 +#: superset/views/core.py:242 superset/views/core.py:352 +msgid "Cache Timeout" msgstr "" -#: superset/forms.py:456 superset/forms.py:471 -msgid "90 days ago" +#: superset/connectors/sqla/models.py:388 +msgid "" +"Datetime column not provided as part table configuration and is required " +"by this type of chart" msgstr "" -#: superset/forms.py:457 superset/forms.py:472 -msgid "1 year ago" +#: superset/connectors/sqla/models.py:393 +msgid "Metric '{}' is not valid" msgstr "" -#: superset/forms.py:459 +#: superset/connectors/sqla/views.py:39 msgid "" -"Timestamp from filter. This supports free form typing and natural " -"language as in '1 day ago', '28 days' or '3 years'" -msgstr "" - -#: superset/forms.py:464 -msgid "Until" +"Whether to make this column available as a [Time Granularity] option, " +"column has to be DATETIME or DATETIME-like" msgstr "" -#: superset/forms.py:476 -msgid "Max Bubble Size" +#: superset/connectors/sqla/views.py:46 +msgid "" +"The data type that was inferred by the database. It may be necessary to " +"input a type manually for expression-defined columns in some cases. In " +"most case users should not need to alter this." msgstr "" -#: superset/forms.py:489 -msgid "Whisker/outlier options" +#: superset/connectors/sqla/views.py:79 superset/connectors/sqla/views.py:122 +#: superset/connectors/sqla/views.py:194 superset/views/core.py:362 +msgid "Table" msgstr "" -#: superset/forms.py:491 -msgid "Determines how whiskers and outliers are calculated." +#: superset/connectors/sqla/views.py:84 +msgid "Expression" msgstr "" -#: superset/forms.py:494 -msgid "Tukey" +#: superset/connectors/sqla/views.py:85 +msgid "Is temporal" msgstr "" -#: superset/forms.py:495 -msgid "Min/max (no outliers)" +#: superset/connectors/sqla/views.py:86 +msgid "Datetime Format" msgstr "" -#: superset/forms.py:496 -msgid "2/98 percentiles" +#: superset/connectors/sqla/views.py:87 +msgid "Database Expression" msgstr "" -#: superset/forms.py:497 -msgid "9/91 percentiles" +#: superset/connectors/sqla/views.py:121 +msgid "SQL Expression" msgstr "" -#: superset/forms.py:501 -msgid "Ratio" +#: superset/connectors/sqla/views.py:165 +msgid "Name of the table that exists in the source database" msgstr "" -#: superset/forms.py:503 -msgid "Target aspect ratio for treemap tiles." +#: superset/connectors/sqla/views.py:167 +msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" msgstr "" -#: superset/forms.py:506 superset/viz.py:856 superset/viz.py:905 -msgid "Number format" +#: superset/connectors/sqla/views.py:173 +msgid "" +"This fields acts a Superset view, meaning that Superset will run a query " +"against this string as a subquery." msgstr "" -#: superset/forms.py:516 +#: superset/connectors/sqla/views.py:177 msgid "" -"D3 format syntax for numbers https: //github.com/mbostock/\n" -"d3/wiki/Formatting" +"Predicate applied when fetching distinct value to populate the filter " +"control component. Supports jinja template syntax. Applies only when " +"`Enable Filter Select` is on." msgstr "" -#: superset/forms.py:521 -msgid "Row limit" +#: superset/connectors/sqla/views.py:183 +msgid "Redirects to this endpoint when clicking on the table from the table list" msgstr "" -#: superset/forms.py:527 -msgid "Series limit" +#: superset/connectors/sqla/views.py:195 +msgid "Changed By" msgstr "" -#: superset/forms.py:530 -msgid "Limits the number of time series that get displayed" +#: superset/connectors/sqla/views.py:196 superset/views/core.py:238 +msgid "Database" msgstr "" -#: superset/forms.py:534 -msgid "Rolling" +#: superset/connectors/sqla/views.py:197 superset/views/core.py:240 +msgid "Last Changed" msgstr "" -#: superset/forms.py:537 -msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" +#: superset/connectors/sqla/views.py:199 +msgid "Schema" msgstr "" -#: superset/forms.py:542 -msgid "Periods" +#: superset/connectors/sqla/views.py:203 +msgid "Offset" msgstr "" -#: superset/forms.py:544 +#: superset/connectors/sqla/views.py:236 msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" -msgstr "" - -#: superset/forms.py:549 superset/viz.py:1192 -msgid "Series" +"The table was created. As part of this two phase configuration process, " +"you should now click the edit button by the new table to configure it." msgstr "" -#: superset/forms.py:552 -msgid "" -"Defines the grouping of entities. Each serie is shown as a specific color" -" on the chart and has a legend toggle" +#: superset/templates/appbuilder/navbar_right.html:41 +msgid "Profile" msgstr "" -#: superset/forms.py:558 -msgid "Entity" +#: superset/templates/appbuilder/navbar_right.html:42 +msgid "Logout" msgstr "" -#: superset/forms.py:561 -msgid "This define the element to be plotted on the chart" +#: superset/templates/appbuilder/navbar_right.html:47 +msgid "Login" msgstr "" -#: superset/forms.py:564 -msgid "X Axis" +#: superset/templates/superset/request_access.html:2 +msgid "No Access!" msgstr "" -#: superset/forms.py:567 -msgid "Metric assigned to the [X] axis" +#: superset/templates/superset/request_access.html:7 +#, python-format +msgid "You do not have permissions to access the datasource(s): %(name)s." msgstr "" -#: superset/forms.py:570 -msgid "Y Axis" +#: superset/templates/superset/request_access.html:13 +msgid "Request Permissions" msgstr "" -#: superset/forms.py:573 -msgid "Metric assigned to the [Y] axis" +#: superset/templates/superset/request_access.html:16 +msgid "Cancel" msgstr "" -#: superset/forms.py:576 -msgid "Bubble Size" +#: superset/templates/superset/models/database/macros.html:4 +msgid "Test Connection" msgstr "" -#: superset/forms.py:581 -msgid "URL" +#: superset/views/core.py:206 +msgid "Expose this DB in SQL Lab" msgstr "" -#: superset/forms.py:582 +#: superset/views/core.py:207 msgid "" -"The URL, this field is templated, so you can integrate {{ width }} and/or" -" {{ height }} in your URL string." -msgstr "" - -#: superset/forms.py:589 -msgid "X Axis Label" -msgstr "" - -#: superset/forms.py:593 -msgid "Y Axis Label" -msgstr "" - -#: superset/forms.py:597 -msgid "Custom WHERE clause" +"Allow users to run synchronous queries, this is the default and should " +"work well for queries that can be executed within a web request scope " +"(<~1 minute)" msgstr "" -#: superset/forms.py:599 +#: superset/views/core.py:211 msgid "" -"The text in this box gets included in your query's WHERE clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." +"Allow users to run queries, against an async backend. This assumes that " +"you have a Celery worker setup as well as a results backend." msgstr "" -#: superset/forms.py:606 -msgid "Custom HAVING clause" +#: superset/views/core.py:215 +msgid "Allow CREATE TABLE AS option in SQL Lab" msgstr "" -#: superset/forms.py:608 +#: superset/views/core.py:216 msgid "" -"The text in this box gets included in your query's HAVING clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." -msgstr "" - -#: superset/forms.py:615 -msgid "Comparison Period Lag" -msgstr "" - -#: superset/forms.py:616 -msgid "Based on granularity, number of time periods to compare against" -msgstr "" - -#: superset/forms.py:621 -msgid "Comparison suffix" -msgstr "" - -#: superset/forms.py:622 -msgid "Suffix to apply after the percentage display" -msgstr "" - -#: superset/forms.py:625 -msgid "Table Timestamp Format" -msgstr "" - -#: superset/forms.py:628 -msgid "Timestamp Format" -msgstr "" - -#: superset/forms.py:631 -msgid "Series Height" -msgstr "" - -#: superset/forms.py:634 -msgid "Pixel height of each series" -msgstr "" - -#: superset/forms.py:637 -msgid "X axis format" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" +" SQL Lab" msgstr "" -#: superset/forms.py:640 superset/forms.py:655 +#: superset/views/core.py:220 msgid "" -"D3 format syntax for y axis https: //github.com/mbostock/\n" -"d3/wiki/Formatting" -msgstr "" - -#: superset/forms.py:645 -msgid "Y axis format" -msgstr "" - -#: superset/forms.py:660 -msgid "Markup Type" -msgstr "" - -#: superset/forms.py:662 -msgid "markdown" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " +"table to be created in this schema" msgstr "" -#: superset/forms.py:663 -msgid "html" +#: superset/views/core.py:234 +msgid "Expose in SQL Lab" msgstr "" -#: superset/forms.py:666 -msgid "Pick your favorite markup language" +#: superset/views/core.py:235 +msgid "Allow CREATE TABLE AS" msgstr "" -#: superset/forms.py:669 -msgid "Rotation" +#: superset/views/core.py:236 +msgid "Allow DML" msgstr "" -#: superset/forms.py:671 -msgid "random" +#: superset/views/core.py:237 +msgid "CTAS Schema" msgstr "" -#: superset/forms.py:672 -msgid "flat" +#: superset/views/core.py:239 superset/views/core.py:353 +#: superset/views/core.py:449 superset/views/core.py:513 +msgid "Creator" msgstr "" -#: superset/forms.py:673 -msgid "square" +#: superset/views/core.py:241 +msgid "SQLAlchemy URI" msgstr "" -#: superset/forms.py:676 -msgid "Rotation to apply to words in the cloud" +#: superset/views/core.py:243 +msgid "Extra" msgstr "" -#: superset/forms.py:679 -msgid "Line Style" +#: superset/views/core.py:303 superset/views/core.py:526 +msgid "User" msgstr "" -#: superset/forms.py:681 -msgid "linear" +#: superset/views/core.py:304 +msgid "User Roles" msgstr "" -#: superset/forms.py:682 -msgid "basis" +#: superset/views/core.py:305 +msgid "Database URL" msgstr "" -#: superset/forms.py:683 -msgid "cardinal" +#: superset/views/core.py:307 +msgid "Roles to grant" msgstr "" -#: superset/forms.py:684 -msgid "monotone" +#: superset/views/core.py:308 +msgid "Created On" msgstr "" -#: superset/forms.py:685 -msgid "step-before" +#: superset/views/core.py:341 +msgid "" +"These parameters are generated dynamically when clicking the save or " +"overwrite button in the explore view. This JSON object is exposed here " +"for reference and for power users who may want to alter specific " +"parameters." msgstr "" -#: superset/forms.py:686 -msgid "step-after" +#: superset/views/core.py:346 +msgid "Duration (in seconds) of the caching timeout for this slice." msgstr "" -#: superset/forms.py:689 -msgid "Line interpolation as defined by d3.js" +#: superset/views/core.py:354 +msgid "Dashboards" msgstr "" -#: superset/forms.py:692 -msgid "Code" +#: superset/views/core.py:357 +msgid "Last Modified" msgstr "" -#: superset/forms.py:693 -msgid "Put your code here" +#: superset/views/core.py:358 superset/views/core.py:448 +msgid "Owners" msgstr "" -#: superset/forms.py:697 -msgid "Aggregation function" +#: superset/views/core.py:359 +msgid "Parameters" msgstr "" -#: superset/forms.py:702 -msgid "max" +#: superset/views/core.py:360 superset/views/core.py:396 +msgid "Slice" msgstr "" -#: superset/forms.py:704 -msgid "stdev" +#: superset/views/core.py:361 +msgid "Name" msgstr "" -#: superset/forms.py:705 -msgid "var" +#: superset/views/core.py:363 +msgid "Visualization Type" msgstr "" -#: superset/forms.py:708 +#: superset/views/core.py:421 msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" -msgstr "" - -#: superset/forms.py:713 -msgid "Font Size From" -msgstr "" - -#: superset/forms.py:715 -msgid "Font size for the smallest value in the list" -msgstr "" - -#: superset/forms.py:718 -msgid "Font Size To" -msgstr "" - -#: superset/forms.py:720 -msgid "Font size for the biggest value in the list" -msgstr "" - -#: superset/forms.py:723 -msgid "Range Filter" -msgstr "" - -#: superset/forms.py:725 -msgid "Whether to display the time range interactive selector" -msgstr "" - -#: superset/forms.py:729 -msgid "Data Table" +"This json object describes the positioning of the widgets in the " +"dashboard. It is dynamically generated when adjusting the widgets size " +"and positions by using drag & drop in the dashboard view" msgstr "" -#: superset/forms.py:731 -msgid "Whether to display the interactive data table" +#: superset/views/core.py:426 +msgid "" +"The css for individual dashboards can be altered here, or in the " +"dashboard view where changes are immediately visible" msgstr "" -#: superset/forms.py:734 -msgid "Search Box" +#: superset/views/core.py:430 +msgid "To get a readable URL for your dashboard" msgstr "" -#: superset/forms.py:736 -msgid "Whether to include a client side search box" +#: superset/views/core.py:431 +msgid "" +"This JSON object is generated dynamically when clicking the save or " +"overwrite button in the dashboard view. It is exposed here for reference " +"and for power users who may want to alter specific parameters." msgstr "" -#: superset/forms.py:740 -msgid "Show Bubbles" +#: superset/views/core.py:436 +msgid "Owners is a list of users who can alter the dashboard." msgstr "" -#: superset/forms.py:742 -msgid "Whether to display bubbles on top of countries" +#: superset/views/core.py:444 superset/views/core.py:511 +msgid "Dashboard" msgstr "" -#: superset/forms.py:746 -msgid "Legend" +#: superset/views/core.py:445 superset/views/core.py:512 +msgid "Title" msgstr "" -#: superset/forms.py:748 -msgid "Whether to display the legend (toggles)" +#: superset/views/core.py:446 +msgid "Slug" msgstr "" -#: superset/forms.py:751 -msgid "X bounds" +#: superset/views/core.py:447 +msgid "Slices" msgstr "" -#: superset/forms.py:753 -msgid "Whether to display the min and max values of the X axis" +#: superset/views/core.py:450 superset/views/core.py:514 +msgid "Modified" msgstr "" -#: superset/forms.py:757 -msgid "Rich Tooltip" +#: superset/views/core.py:451 +msgid "Position JSON" msgstr "" -#: superset/forms.py:759 -msgid "The rich tooltip shows a list of all series for that point in time" +#: superset/views/core.py:452 +msgid "CSS" msgstr "" -#: superset/forms.py:764 -msgid "Y Axis Zero" +#: superset/views/core.py:453 +msgid "JSON Metadata" msgstr "" -#: superset/forms.py:766 -msgid "Force the Y axis to start at 0 instead of the minimum value" +#: superset/views/core.py:454 +msgid "Underlying Tables" msgstr "" -#: superset/forms.py:771 -msgid "Y Log" +#: superset/views/core.py:527 +msgid "Action" msgstr "" -#: superset/forms.py:773 -msgid "Use a log scale for the Y axis" +#: superset/views/core.py:528 +msgid "dttm" msgstr "" -#: superset/forms.py:776 -msgid "X Log" +#: superset/views/core.py:2279 +msgid "SQL Editor" msgstr "" -#: superset/forms.py:778 -msgid "Use a log scale for the X axis" -msgstr "" - -#: superset/forms.py:781 -msgid "Donut" -msgstr "" - -#: superset/forms.py:783 -msgid "Do you want a donut or a pie?" -msgstr "" - -#: superset/forms.py:786 -msgid "Contribution" -msgstr "" - -#: superset/forms.py:788 -msgid "Compute the contribution to the total" -msgstr "" - -#: superset/forms.py:791 -msgid "Period Ratio" -msgstr "" - -#: superset/forms.py:794 -msgid "" -"[integer] Number of period to compare against, this is relative to the " -"granularity selected" -msgstr "" - -#: superset/forms.py:799 -msgid "Time Shift" -msgstr "" - -#: superset/forms.py:801 -msgid "" -"Overlay a timeseries from a relative time period. Expects relative time " -"delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days" -msgstr "" - -#: superset/forms.py:808 -msgid "Subheader" -msgstr "" - -#: superset/forms.py:809 -msgid "Description text that shows up below your Big Number" -msgstr "" - -#: superset/forms.py:816 -msgid "" -"'count' is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." -msgstr "" - -#: superset/forms.py:832 -msgid "Base layer map style" -msgstr "" - -#: superset/forms.py:835 -msgid "Clustering Radius" -msgstr "" - -#: superset/forms.py:848 -msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." -msgstr "" - -#: superset/forms.py:854 -msgid "Point Radius" -msgstr "" - -#: superset/forms.py:857 -msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or 'Auto', which scales the point based on the largest" -" cluster" -msgstr "" - -#: superset/forms.py:863 -msgid "Point Radius Unit" -msgstr "" - -#: superset/forms.py:870 -msgid "The unit of measure for the specified point radius" -msgstr "" - -#: superset/forms.py:873 -msgid "Opacity" -msgstr "" - -#: superset/forms.py:875 -msgid "Opacity of all clusters, points, and labels. Between 0 and 1." -msgstr "" - -#: superset/forms.py:880 -msgid "Zoom" -msgstr "" - -#: superset/forms.py:883 -msgid "Zoom level of the map" -msgstr "" - -#: superset/forms.py:887 -msgid "Default latitude" -msgstr "" - -#: superset/forms.py:889 -msgid "Latitude of default viewport" -msgstr "" - -#: superset/forms.py:893 -msgid "Default longitude" -msgstr "" - -#: superset/forms.py:895 -msgid "Longitude of default viewport" -msgstr "" - -#: superset/forms.py:899 -msgid "Live render" -msgstr "" - -#: superset/forms.py:901 -msgid "Points and clusters will update as viewport is being changed" -msgstr "" - -#: superset/forms.py:905 -msgid "RGB Color" -msgstr "" - -#: superset/forms.py:915 -msgid "The color for points and clusters in RGB" -msgstr "" - -#: superset/forms.py:978 -msgid "SQL" -msgstr "" - -#: superset/forms.py:980 -msgid "This section exposes ways to include snippets of SQL in your query" -msgstr "" - -#: superset/forms.py:991 -msgid "Time Grain" -msgstr "" - -#: superset/forms.py:994 -msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity.The options here are defined on a per database engine basis " -"in the Superset source code" -msgstr "" - -#: superset/forms.py:1027 superset/forms.py:1031 -msgid "Filter 1" -msgstr "" - -#: superset/forms.py:1036 -msgid "Super" -msgstr "" - -#: superset/forms.py:1040 -msgid "Time" -msgstr "" - -#: superset/forms.py:1045 -msgid "Time related form attributes" -msgstr "" - -#: superset/models.py:409 -msgid "quarter" -msgstr "" - -#: superset/models.py:410 -msgid "week_ending_saturday" -msgstr "" - -#: superset/models.py:412 -msgid "week_start_sunday" -msgstr "" - -#: superset/models.py:433 -msgid "second" -msgstr "" - -#: superset/models.py:434 -msgid "minute" -msgstr "" - -#: superset/models.py:620 -msgid "" -"Datetime column not provided as part table configuration and is required " -"by this type of chart" -msgstr "" - -#: superset/models.py:1328 -msgid "No data was returned." -msgstr "" - -#: superset/views.py:203 -msgid "" -"Whether to make this column available as a [Time Granularity] option, " -"column has to be DATETIME or DATETIME-like" -msgstr "" - -#: superset/views.py:230 superset/views.py:259 -msgid "Column" -msgstr "" - -#: superset/views.py:231 superset/views.py:296 superset/views.py:336 -msgid "Verbose Name" -msgstr "" - -#: superset/views.py:232 superset/views.py:295 superset/views.py:335 -#: superset/views.py:537 superset/views.py:691 -msgid "Description" -msgstr "" - -#: superset/views.py:233 superset/views.py:262 -msgid "Groupable" -msgstr "" - -#: superset/views.py:234 superset/views.py:263 -msgid "Filterable" -msgstr "" - -#: superset/views.py:235 superset/views.py:299 superset/views.py:433 -#: superset/views.py:543 -msgid "Table" -msgstr "" - -#: superset/views.py:236 superset/views.py:264 -msgid "Count Distinct" -msgstr "" - -#: superset/views.py:237 superset/views.py:265 -msgid "Sum" -msgstr "" - -#: superset/views.py:238 superset/views.py:266 -msgid "Min" -msgstr "" - -#: superset/views.py:239 superset/views.py:267 -msgid "Max" -msgstr "" - -#: superset/views.py:240 -msgid "Expression" -msgstr "" - -#: superset/views.py:241 -msgid "Is temporal" -msgstr "" - -#: superset/views.py:242 -msgid "Datetime Format" -msgstr "" - -#: superset/views.py:243 -msgid "Database Expression" -msgstr "" - -#: superset/views.py:260 superset/views.py:297 superset/views.py:337 -#: superset/views.py:568 -msgid "Type" -msgstr "" - -#: superset/views.py:261 superset/views.py:536 -msgid "Datasource" -msgstr "" - -#: superset/views.py:286 superset/views.py:328 -msgid "" -"Whether the access to this metric is restricted to certain roles. Only " -"roles with the permission 'metric access on XXX (the name of this " -"metric)' are allowed to access this metric" -msgstr "" - -#: superset/views.py:298 -msgid "SQL Expression" -msgstr "" - -#: superset/views.py:338 superset/views.py:656 -msgid "JSON" -msgstr "" - -#: superset/views.py:339 -msgid "Druid Datasource" -msgstr "" - -#: superset/views.py:378 superset/views.py:435 -msgid "Database" -msgstr "" - -#: superset/views.py:379 -msgid "SQL link" -msgstr "" - -#: superset/views.py:380 superset/views.py:534 superset/views.py:610 -msgid "Creator" -msgstr "" - -#: superset/views.py:381 superset/views.py:436 -msgid "Last Changed" -msgstr "" - -#: superset/views.py:382 -msgid "SQLAlchemy URI" -msgstr "" - -#: superset/views.py:383 superset/views.py:442 superset/views.py:533 -#: superset/views.py:697 -msgid "Cache Timeout" -msgstr "" - -#: superset/views.py:384 -msgid "Extra" -msgstr "" - -#: superset/views.py:434 -msgid "Changed By" -msgstr "" - -#: superset/views.py:437 -msgid "SQL Editor" -msgstr "" - -#: superset/views.py:438 superset/views.py:693 -msgid "Is Featured" -msgstr "" - -#: superset/views.py:439 -msgid "Schema" -msgstr "" - -#: superset/views.py:440 superset/views.py:695 -msgid "Default Endpoint" -msgstr "" - -#: superset/views.py:441 -msgid "Offset" -msgstr "" - -#: superset/views.py:482 superset/views.py:690 -msgid "Cluster" -msgstr "" - -#: superset/views.py:483 -msgid "Coordinator Host" -msgstr "" - -#: superset/views.py:484 -msgid "Coordinator Port" -msgstr "" - -#: superset/views.py:485 -msgid "Coordinator Endpoint" -msgstr "" - -#: superset/views.py:486 -msgid "Broker Host" -msgstr "" - -#: superset/views.py:487 -msgid "Broker Port" -msgstr "" - -#: superset/views.py:488 -msgid "Broker Endpoint" -msgstr "" - -#: superset/views.py:522 -msgid "" -"These parameters are generated dynamically when clicking the save or " -"overwrite button in the explore view. This JSON object is exposed here " -"for reference and for power users who may want to alter specific " -"parameters." -msgstr "" - -#: superset/views.py:527 -msgid "Duration (in seconds) of the caching timeout for this slice." -msgstr "" - -#: superset/templates/superset/welcome.html:26 superset/views.py:535 -msgid "Dashboards" -msgstr "" - -#: superset/views.py:538 -msgid "Last Modified" -msgstr "" - -#: superset/views.py:539 superset/views.py:609 -msgid "Owners" -msgstr "" - -#: superset/views.py:540 -msgid "Parameters" -msgstr "" - -#: superset/views.py:541 superset/views.py:569 -msgid "Slice" -msgstr "" - -#: superset/views.py:542 -msgid "Name" -msgstr "" - -#: superset/views.py:544 superset/views.py:570 -msgid "Visualization Type" -msgstr "" - -#: superset/views.py:586 -msgid "" -"This json object describes the positioning of the widgets in the " -"dashboard. It is dynamically generated when adjusting the widgets size " -"and positions by using drag & drop in the dashboard view" -msgstr "" - -#: superset/views.py:591 -msgid "" -"The css for individual dashboards can be altered here, or in the " -"dashboard view where changes are immediately visible" -msgstr "" - -#: superset/views.py:595 -msgid "To get a readable URL for your dashboard" -msgstr "" - -#: superset/views.py:596 -msgid "" -"This JSON object is generated dynamically when clicking the save or " -"overwrite button in the dashboard view. It is exposed here for reference " -"and for power users who may want to alter specific parameters." -msgstr "" - -#: superset/views.py:601 -msgid "Owners is a list of users who can alter the dashboard." -msgstr "" - -#: superset/views.py:605 -msgid "Dashboard" -msgstr "" - -#: superset/views.py:606 -msgid "Title" -msgstr "" - -#: superset/views.py:607 -msgid "Slug" -msgstr "" - -#: superset/views.py:608 -msgid "Slices" -msgstr "" - -#: superset/views.py:611 -msgid "Modified" -msgstr "" - -#: superset/views.py:612 -msgid "Position JSON" -msgstr "" - -#: superset/views.py:613 -msgid "CSS" -msgstr "" - -#: superset/views.py:614 -msgid "JSON Metadata" -msgstr "" - -#: superset/views.py:615 -msgid "Underlying Tables" -msgstr "" - -#: superset/views.py:653 -msgid "User" -msgstr "" - -#: superset/views.py:654 -msgid "Action" -msgstr "" - -#: superset/views.py:655 -msgid "dttm" -msgstr "" - -#: superset/views.py:683 -msgid "Timezone offset (in hours) for this datasource" -msgstr "" - -#: superset/views.py:689 -msgid "Data Source" -msgstr "" - -#: superset/views.py:692 -msgid "Owner" -msgstr "" - -#: superset/views.py:694 -msgid "Is Hidden" -msgstr "" - -#: superset/views.py:696 -msgid "Time Offset" -msgstr "" - -#: superset/views.py:1176 -msgid "This view requires the `all_datasource_access` permission" -msgstr "" - -#: superset/views.py:1249 -msgid "Refresh Druid Metadata" -msgstr "" - -#: superset/viz.py:367 -msgid "Table View" -msgstr "" - -#: superset/viz.py:370 -msgid "GROUP BY" -msgstr "" - -#: superset/viz.py:371 -msgid "Use this section if you want a query that aggregates" -msgstr "" - -#: superset/viz.py:374 -msgid "NOT GROUPED BY" -msgstr "" - -#: superset/viz.py:375 -msgid "Use this section if you want to query atomic rows" -msgstr "" - -#: superset/viz.py:378 -msgid "Options" -msgstr "" - -#: superset/viz.py:429 -msgid "Pivot Table" -msgstr "" - -#: superset/viz.py:491 -msgid "Markup" -msgstr "" - -#: superset/viz.py:519 -msgid "Word Cloud" -msgstr "" - -#: superset/viz.py:551 -msgid "Treemap" -msgstr "" - -#: superset/viz.py:561 superset/viz.py:676 superset/viz.py:783 superset/viz.py:948 -#: superset/viz.py:1093 superset/viz.py:1122 superset/viz.py:1177 -#: superset/viz.py:1682 -msgid "Chart Options" -msgstr "" - -#: superset/viz.py:595 -msgid "Calender Heatmap" -msgstr "" - -#: superset/viz.py:666 -msgid "Box Plot" -msgstr "" - -#: superset/viz.py:773 -msgid "Bubble Chart" -msgstr "" - -#: superset/viz.py:842 -msgid "Big Number with Trendline" -msgstr "" - -#: superset/viz.py:892 -msgid "Big Number" -msgstr "" - -#: superset/viz.py:938 -msgid "Time Series - Line Chart" -msgstr "" - -#: superset/viz.py:958 -msgid "Advanced Analytics" -msgstr "" - -#: superset/viz.py:959 -msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" -msgstr "" - -#: superset/viz.py:1091 -msgid "Time Series - Bar Chart" -msgstr "" - -#: superset/viz.py:1111 -msgid "Time Series - Percent Change" -msgstr "" - -#: superset/viz.py:1119 -msgid "Time Series - Stacked" -msgstr "" - -#: superset/viz.py:1138 -msgid "Distribution - NVD3 - Pie Chart" -msgstr "" - -#: superset/viz.py:1174 -msgid "Distribution - Bar Chart" -msgstr "" - -#: superset/viz.py:1195 -msgid "Breakdowns" -msgstr "" - -#: superset/viz.py:1196 -msgid "Defines how each series is broken down" -msgstr "" - -#: superset/viz.py:1261 -msgid "Sunburst" -msgstr "" - -#: superset/viz.py:1276 -msgid "Primary Metric" -msgstr "" - -#: superset/viz.py:1277 -msgid "The primary metric is used to define the arc segment sizes" -msgstr "" - -#: superset/viz.py:1282 -msgid "Secondary Metric" -msgstr "" - -#: superset/viz.py:1283 -msgid "" -"This secondary metric is used to define the color as a ratio against the " -"primary metric. If the two metrics match, color is mapped level groups" -msgstr "" - -#: superset/viz.py:1289 -msgid "Hierarchy" -msgstr "" - -#: superset/viz.py:1290 -msgid "This defines the level of the hierarchy" -msgstr "" - -#: superset/viz.py:1327 -msgid "Sankey" -msgstr "" - -#: superset/viz.py:1340 superset/viz.py:1410 -msgid "Source / Target" -msgstr "" - -#: superset/viz.py:1341 superset/viz.py:1411 -msgid "Choose a source and a target" -msgstr "" - -#: superset/viz.py:1391 -msgid "Directed Force Layout" -msgstr "" - -#: superset/viz.py:1402 -msgid "Force Layout" -msgstr "" - -#: superset/viz.py:1433 -msgid "World Map" -msgstr "" - -#: superset/viz.py:1444 -msgid "Bubbles" -msgstr "" - -#: superset/viz.py:1453 -msgid "Country Field" -msgstr "" - -#: superset/viz.py:1454 -msgid "3 letter code of the country" -msgstr "" - -#: superset/viz.py:1457 -msgid "Metric for color" -msgstr "" - -#: superset/viz.py:1458 -msgid "Metric that defines the color of the country" -msgstr "" - -#: superset/viz.py:1461 -msgid "Bubble size" -msgstr "" - -#: superset/viz.py:1462 -msgid "Metric that defines the size of the bubble" -msgstr "" - -#: superset/templates/superset/explore.html:147 superset/viz.py:1507 -msgid "Filters" -msgstr "" - -#: superset/viz.py:1519 -msgid "Filter fields" -msgstr "" - -#: superset/viz.py:1520 -msgid "The fields you want to filter on" -msgstr "" - -#: superset/viz.py:1555 -msgid "iFrame" -msgstr "" - -#: superset/viz.py:1573 -msgid "Parallel Coordinates" -msgstr "" - -#: superset/viz.py:1609 -msgid "Heatmap" -msgstr "" - -#: superset/viz.py:1622 -msgid "Heatmap Options" -msgstr "" - -#: superset/viz.py:1677 -msgid "Horizon Charts" -msgstr "" - -#: superset/viz.py:1693 -msgid "Mapbox" -msgstr "" - -#: superset/viz.py:1707 -msgid "Points" -msgstr "" - -#: superset/viz.py:1713 -msgid "Labelling" -msgstr "" - -#: superset/viz.py:1719 -msgid "Visual Tweaks" -msgstr "" - -#: superset/viz.py:1726 -msgid "Viewport" -msgstr "" - -#: superset/viz.py:1736 -msgid "Longitude" -msgstr "" - -#: superset/viz.py:1737 -msgid "Column containing longitude data" -msgstr "" - -#: superset/viz.py:1740 -msgid "Latitude" -msgstr "" - -#: superset/viz.py:1741 -msgid "Column containing latitude data" -msgstr "" - -#: superset/viz.py:1744 -msgid "Cluster label aggregator" -msgstr "" - -#: superset/viz.py:1745 -msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." -msgstr "" - -#: superset/viz.py:1750 -msgid "Tooltip" -msgstr "" - -#: superset/viz.py:1751 -msgid "Show a tooltip when hovering over points and clusters describing the label" -msgstr "" - -#: superset/viz.py:1756 -msgid "" -"One or many fields to group by. If grouping, latitude and longitude " -"columns must be present." -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:36 -msgid "Profile" -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:37 -msgid "Logout" -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:42 -msgid "Login" -msgstr "" - -#: superset/templates/superset/explore.html:34 -#: superset/templates/superset/explore.html:241 -msgid "Query" -msgstr "" - -#: superset/templates/superset/explore.html:43 -#: superset/templates/superset/explore.html:306 -msgid "Save" -msgstr "" - -#: superset/templates/superset/explore.html:72 -msgid "Force refresh" -msgstr "" - -#: superset/templates/superset/explore.html:77 -msgid "Short URL" -msgstr "" - -#: superset/templates/superset/explore.html:79 -msgid "Generate an embeddable iframe" -msgstr "" - -#: superset/templates/superset/explore.html:82 -msgid "Export to .json" -msgstr "" - -#: superset/templates/superset/explore.html:86 -msgid "Export to .csv format" -msgstr "" - -#: superset/templates/superset/explore.html:92 -msgid "Query timer" -msgstr "" - -#: superset/templates/superset/explore.html:94 -msgid "0 sec" -msgstr "" - -#: superset/templates/superset/explore.html:100 -msgid "View database query" -msgstr "" - -#: superset/templates/superset/explore.html:101 -msgid "query" -msgstr "" - -#: superset/templates/superset/explore.html:150 -msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" -msgstr "" - -#: superset/templates/superset/explore.html:168 -msgid "Add filter" -msgstr "" - -#: superset/templates/superset/explore.html:247 -#: superset/templates/superset/explore.html:265 -msgid "Close" -msgstr "" - -#: superset/templates/superset/explore.html:259 -msgid "Datasource Description" -msgstr "" - -#: superset/templates/superset/explore.html:277 -msgid "Save a Slice" -msgstr "" - -#: superset/templates/superset/explore.html:309 -msgid "Save & go to dashboard" -msgstr "" - -#: superset/templates/superset/explore.html:312 -msgid "Cancel" -msgstr "" - -#: superset/templates/superset/sql.html:12 -msgid "Run!" -msgstr "" - -#: superset/templates/superset/sql.html:13 -msgid "Create View" -msgstr "" - -#: superset/templates/superset/welcome.html:8 -#: superset/templates/superset/welcome.html:14 -msgid "Welcome!" -msgstr "" - -#: superset/templates/superset/models/database/macros.html:4 -msgid "Test Connection" +#: superset/views/core.py:2288 +msgid "Query Search" msgstr "" diff --git a/dev-reqs.txt b/dev-reqs.txt index e6d8b0d224e1e..370aaa11e8cdc 100644 --- a/dev-reqs.txt +++ b/dev-reqs.txt @@ -1,10 +1,14 @@ codeclimate-test-reporter coveralls flake8 +flask_cors mock mysqlclient nose psycopg2 +pylint +pythrifthiveapi pyyaml +statsd # Also install everything we need to build Sphinx docs -r dev-reqs-for-docs.txt diff --git a/docs/faq.rst b/docs/faq.rst index 60d4e32f04b5a..9c69b875cd1ba 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -78,6 +78,11 @@ The widget also has a checkbox ``Date Filter``, which enables time filtering capabilities to your dashboard. After checking the box and refreshing, you'll see a ``from`` and a ``to`` dropdown show up. +By default, the filtering will be applied to all the slices that are built +on top of a datasource that shares the column name that the filter is based +on. It's also a requirement for that column to be checked as "filterable" +in the column tab of the table editor. + But what about if you don't want certain widgets to get filtered on your dashboard? You can do that by editing your dashboard, and in the form, edit the ``JSON Metadata`` field, more specifically the @@ -119,3 +124,16 @@ __ https://www.sqlite.org/lockingv3.html One work around is to create a symlink from ~/.superset to a directory located on a non-NFS partition. Another work around is to change where superset stores the sqlite database by adding ``SQLALCHEMY_DATABASE_URI = 'sqlite:////new/localtion/superset.db'`` in superset_config.py (create the file if needed), then adding the directory where superset_config.py lives to PYTHONPATH environment variable (e.g. ``export PYTHONPATH=/opt/logs/sandbox/airbnb/``). + +How do I add new columns to an existing table +--------------------------------------------- + +Table schemas evolve, and Superset needs to reflect that. It's pretty common +in the life cycle of a dashboard to want to add a new dimension or metric. +To get Superset to discover your new columns, all you have to do is to +go to ``Menu -> Sources -> Tables``, click the ``edit`` icon next to the +table who's schema has changed, and hit ``Save`` from the ``Detail`` tab. +Behind the scene, the new columns will get merged it. Following this, +you may want to +re-edit the table afterwards to configure the ``Column`` tab, check the +appropriate boxes and save again. diff --git a/docs/index.rst b/docs/index.rst index a2b65b1d9d440..51410395219c3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,9 +1,12 @@ +.. image:: _static/img/s.png + Superset's documentation '''''''''''''''''''''''' Superset is a data exploration platform designed to be visual, intuitive and interactive. + ---------------- .. warning:: This project was originally named Panoramix, was renamed to @@ -55,6 +58,7 @@ Contents tutorial security sqllab + visualization videos gallery druid diff --git a/docs/installation.rst b/docs/installation.rst index 7317ddc609f54..dc4775810c4ee 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -4,8 +4,9 @@ Installation & Configuration Getting Started --------------- -Superset is tested using Python 2.7 and Python 3.4+. Python 3 is the recommended version, -Python 2.6 won't be supported. +Superset is tested against Python ``2.7`` and Python ``3.4``. +Airbnb currently uses 2.7.* in production. We do not plan on supporting +Python ``2.6``. OS dependencies @@ -30,12 +31,12 @@ For **Fedora** and **RHEL-derivatives**, the following command will ensure that the required dependencies are installed: :: sudo yum upgrade python-setuptools - sudo yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel + sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel **OSX**, system python is not recommended. brew's python also ships with pip :: brew install pkg-config libffi openssl python - env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography + env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography==1.7.2 **Windows** isn't officially supported at this point, but if you want to attempt it, download `get-pip.py `_, and run ``python get-pip.py`` which may need admin access. Then run the following: :: @@ -195,7 +196,7 @@ Here's a list of some of the recommended packages. +---------------+-------------------------------------+-------------------------------------------------+ | sqlite | | ``sqlite://`` | +---------------+-------------------------------------+-------------------------------------------------+ -| Redshift | ``pip install sqlalchemy-redshift`` | ``redshift+psycopg2://`` | +| Redshift | ``pip install sqlalchemy-redshift`` | ``postgresql+psycopg2://`` | +---------------+-------------------------------------+-------------------------------------------------+ | MSSQL | ``pip install pymssql`` | ``mssql://`` | +---------------+-------------------------------------+-------------------------------------------------+ @@ -205,12 +206,35 @@ Here's a list of some of the recommended packages. +---------------+-------------------------------------+-------------------------------------------------+ | Greenplum | ``pip install psycopg2`` | ``postgresql+psycopg2://`` | +---------------+-------------------------------------+-------------------------------------------------+ +| Athena | ``pip install "PyAthenaJDBC>1.0.9"``| ``awsathena+jdbc://`` | ++---------------+-------------------------------------+-------------------------------------------------+ +| Vertica | ``pip install | ``vertica+vertica_python://`` | +| | sqlalchemy-vertica-python`` | | ++---------------+-------------------------------------+-------------------------------------------------+ +| ClickHouse | ``pip install | ``clickhouse://`` | +| | sqlalchemy-clickhouse`` | | ++---------------+-------------------------------------+-------------------------------------------------+ Note that many other database are supported, the main criteria being the existence of a functional SqlAlchemy dialect and Python driver. Googling the keyword ``sqlalchemy`` in addition of a keyword that describes the database you want to connect to should get you to the right place. +(AWS) Athena +------------ + +This currently relies on an unreleased future version of `PyAthenaJDBC `_. If you're adventurous or simply impatient, you can install directly from git: :: + + pip install git+https://github.com/laughingman7743/PyAthenaJDBC@support_sqlalchemy + +The connection string for Athena looks like this :: + + awsathena+jdbc://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&... + +Where you need to escape/encode at least the s3_staging_dir, i.e., :: + + s3://... -> s3%3A//... + Caching ------- @@ -222,9 +246,11 @@ complies with the Flask-Cache specifications. Flask-Cache supports multiple caching backends (Redis, Memcached, SimpleCache (in-memory), or the local filesystem). If you are going to use -Memcached please use the pylibmc client library as python-memcached does +Memcached please use the `pylibmc` client library as `python-memcached` does not handle storing binary data correctly. If you use Redis, please install -`python-redis `. +the `redis `_ Python package: :: + + pip install redis For setting your timeouts, this is done in the Superset metadata and goes up the "timeout searchpath", from your slice configuration, to your @@ -340,28 +366,74 @@ Upgrading should be as straightforward as running:: SQL Lab ------- SQL Lab is a powerful SQL IDE that works with all SQLAlchemy compatible -databases out there. By default, queries are run in a web request, and +databases. By default, queries are executed in the scope of a web +request so they may eventually timeout as queries exceed the maximum duration of a web request in your environment, whether it'd be a reverse proxy or the Superset server itself. -In the modern analytics world, it's not uncommon to run large queries that -run for minutes or hours. +On large analytic databases, it's common to run queries that +execute for minutes or hours. To enable support for long running queries that execute beyond the typical web request's timeout (30-60 seconds), it is -necessary to deploy an asynchronous backend, which consist of one or many -Superset worker, which is implemented as a Celery worker, and a Celery -broker for which we recommend using Redis or RabbitMQ. - -It's also preferable to setup an async result backend as a key value store -that can hold the long-running query results for a period of time. More -details to come as to how to set this up here soon. - -SQL Lab supports templating in queries, and it's possible to override +necessary to configure an asynchronous backend for Superset which consist of: + +* one or many Superset worker (which is implemented as a Celery worker), and + can be started with the ``superset worker`` command, run + ``superset worker --help`` to view the related options +* a celery broker (message queue) for which we recommend using Redis + or RabbitMQ +* a results backend that defines where the worker will persist the query + results + +Configuring Celery requires defining a ``CELERY_CONFIG`` in your +``superset_config.py``. Both the worker and web server processes should +have the same configuration. + +.. code-block:: python + + class CeleryConfig(object): + BROKER_URL = 'redis://localhost:6379/0' + CELERY_IMPORTS = ('superset.sql_lab', ) + CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' + CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}} + + CELERY_CONFIG = CeleryConfig + +To setup a result backend, you need to pass an instance of a derivative +of ``werkzeug.contrib.cache.BaseCache`` to the ``RESULTS_BACKEND`` +configuration key in your ``superset_config.py``. It's possible to use +Memcached, Redis, S3 (https://pypi.python.org/pypi/s3werkzeugcache), +memory or the file system (in a single server-type setup or for testing), +or to write your own caching interface. Your ``superset_config.py`` may +look something like: + +.. code-block:: python + + # On S3 + from s3cache.s3cache import S3Cache + S3_CACHE_BUCKET = 'foobar-superset' + S3_CACHE_KEY_PREFIX = 'sql_lab_result' + RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, S3_CACHE_KEY_PREFIX) + + # On Redis + from werkzeug.contrib.cache import RedisCache + RESULTS_BACKEND = RedisCache( + host='localhost', port=6379, key_prefix='superset_results') + + +Also note that SQL Lab supports Jinja templating in queries, and that it's +possible to overload the default Jinja context in your environment by defining the ``JINJA_CONTEXT_ADDONS`` in your superset configuration. Objects referenced in this dictionary are made available for users to use in their SQL. +.. code-block:: python + + JINJA_CONTEXT_ADDONS = { + 'my_crazy_macro': lambda x: x*2, + } + Making your own build --------------------- @@ -376,3 +448,28 @@ your environment.:: npm run build cd $SUPERSET_HOME python setup.py install + + +Blueprints +---------- + +`Blueprints are Flask's reusable apps `_. +Superset allows you to specify an array of Blueprints +in your ``superset_config`` module. Here's +an example on how this can work with a simple Blueprint. By doing +so, you can expect Superset to serve a page that says "OK" +at the ``/simple_page`` url. This can allow you to run other things such +as custom data visualization applications alongside Superset, on the +same server. + +..code :: + + from flask import Blueprint + simple_page = Blueprint('simple_page', __name__, + template_folder='templates') + @simple_page.route('/', defaults={'page': 'index'}) + @simple_page.route('/') + def show(page): + return "Ok" + + BLUEPRINTS = [simple_page] diff --git a/docs/security.rst b/docs/security.rst index 55e079dbe7d49..b5d5b63456dec 100644 --- a/docs/security.rst +++ b/docs/security.rst @@ -50,6 +50,17 @@ The ``sql_lab`` role grants access to SQL Lab. Note that while ``Admin`` users have access to all databases by default, both ``Alpha`` and ``Gamma`` users need to be given access on a per database basis. +Public +"""""" +It's possible to allow logged out users to access some Superset features. + +By setting ``PUBLIC_ROLE_LIKE_GAMMA = True`` in your ``superset_config.py``, +you grant public role the same set of permissions as for the GAMMA role. +This is useful if one wants to enable anonymous users to view +dashboards. Explicit grant on specific datasets is still required, meaning +that you need to edit the ``Public`` role and add the Public data sources +to the role manually. + Managing Gamma per data source access ------------------------------------- diff --git a/docs/sqllab.rst b/docs/sqllab.rst index 50dc5c78632e9..a1da6c7f45291 100644 --- a/docs/sqllab.rst +++ b/docs/sqllab.rst @@ -13,9 +13,11 @@ Feature Overview visualization capabilities - Browse database metadata: tables, columns, indexes, partitions - Support for long-running queries + - uses the `Celery distributed queue `_ to dispatch query handling to workers - supports defining a "results backend" to persist query results + - A search engine to find queries executed in the past - Supports templating using the `Jinja templating language `_ @@ -58,3 +60,5 @@ Superset's Jinja context: .. autoclass:: superset.jinja_context.PrestoTemplateProcessor :members: + +.. autofunction:: superset.jinja_context.url_param diff --git a/docs/visualization.rst b/docs/visualization.rst new file mode 100644 index 0000000000000..05247ca162f47 --- /dev/null +++ b/docs/visualization.rst @@ -0,0 +1,1759 @@ +Visualization Tools +=================== + +The data is visualized via the slices. These slices are visual components made with the D3.js. Some components can be completed or required inputs. + +Country Map Tools +----------------- + +This tool is used in slices for visualization number or string by region, province or department of your countries. +So, if you want to use tools, you need ISO 3166-2 code of region, province or departmenent. + +ISO 3166-2 is part of the ISO 3166 standard published by the International Organization for Standardization (ISO), and defines codes for identifying the principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1 + +The purpose of ISO 3166-2 is to establish an international standard of short and unique alphanumeric codes to represent the relevant administrative divisions and dependent territories of all countries in a more convenient and less ambiguous form than their full names. Each complete ISO 3166-2 code consists of two parts, separated by a hyphen:[1] + +The first part is the ISO 3166-1 alpha-2 code of the country; +The second part is a string of up to three alphanumeric characters, which is usually obtained from national sources and stems from coding systems already in use in the country concerned, but may also be developed by the ISO itself. + +List of Countries +----------------- + +* Belgium + ++---------+-------------------+ +| ISO | Name of region | ++=========+===================+ +| BE-BRU | Bruxelles | ++---------+-------------------+ +| BE-VAN | Antwerpen | ++---------+-------------------+ +| BE-VLI | Limburg | ++---------+-------------------+ +| BE-VOV | Oost-Vlaanderen | ++---------+-------------------+ +| BE-VBR | Vlaams Brabant | ++---------+-------------------+ +| BE-VWV | West-Vlaanderen | ++---------+-------------------+ +| BE-WBR | Brabant Wallon | ++---------+-------------------+ +| BE-WHT | Hainaut | ++---------+-------------------+ +| BE-WLG | Liège | ++---------+-------------------+ +| BE-VLI | Limburg | ++---------+-------------------+ +| BE-WLX | Luxembourg | ++---------+-------------------+ +| BE-WNA | Namur | ++---------+-------------------+ + + + +* Brazil + ++----------+-----------------------+ +| ISO | Name of region | ++==========+=======================+ +| BR-AC | Acre | ++----------+-----------------------+ +| BR-AL | Alagoas | ++----------+-----------------------+ +| BR-AP | Amapá | ++----------+-----------------------+ +| BR-AM | Amazonas | ++----------+-----------------------+ +| BR-BA | Bahia | ++----------+-----------------------+ +| BR-CE | Ceará | ++----------+-----------------------+ +| BR-DF | Distrito Federal | ++----------+-----------------------+ +| BR-ES | Espírito Santo | ++----------+-----------------------+ +| BR-GO | Goiás | ++----------+-----------------------+ +| BR-MA | Maranhão | ++----------+-----------------------+ +| BR-MS | Mato Grosso do Sul | ++----------+-----------------------+ +| BR-MT | Mato Grosso | ++----------+-----------------------+ +| BR-MG | Minas Gerais | ++----------+-----------------------+ +| BR-PA | Pará | ++----------+-----------------------+ +| BR-PB | Paraíba | ++----------+-----------------------+ +| BR-PR | Paraná | ++----------+-----------------------+ +| BR-PE | Pernambuco | ++----------+-----------------------+ +| BR-PI | Piauí | ++----------+-----------------------+ +| BR-RJ | Rio de Janeiro | ++----------+-----------------------+ +| BR-RN | Rio Grande do Norte | ++----------+-----------------------+ +| BR-RS | Rio Grande do Sul | ++----------+-----------------------+ +| BR-RO | Rondônia | ++----------+-----------------------+ +| BR-RR | Roraima | ++----------+-----------------------+ +| BR-SP | São Paulo | ++----------+-----------------------+ +| BR-SC | Santa Catarina | ++----------+-----------------------+ +| BR-SE | Sergipe | ++----------+-----------------------+ +| BR-TO | Tocantins | ++----------+-----------------------+ + +* China + ++---------+--------------------+ +| ISO | Name of region | ++=========+====================+ +| CN-34 | Anhui | ++---------+--------------------+ +| CN-11 | Beijing | ++---------+--------------------+ +| CN-50 | Chongqing | ++---------+--------------------+ +| CN-35 | Fujian | ++---------+--------------------+ +| CN-62 | Gansu | ++---------+--------------------+ +| CN-44 | Guangdong | ++---------+--------------------+ +| CN-45 | Guangxi | ++---------+--------------------+ +| CN-52 | Guizhou | ++---------+--------------------+ +| CN-46 | Hainan | ++---------+--------------------+ +| CN-13 | Hebei | ++---------+--------------------+ +| CN-23 | Heilongjiang | ++---------+--------------------+ +| CN-41 | Henan | ++---------+--------------------+ +| CN-42 | Hubei | ++---------+--------------------+ +| CN-43 | Hunan | ++---------+--------------------+ +| CN-32 | Jiangsu | ++---------+--------------------+ +| CN-36 | Jiangxi | ++---------+--------------------+ +| CN-22 | Jilin | ++---------+--------------------+ +| CN-21 | Liaoning | ++---------+--------------------+ +| CN-15 | Nei Mongol | ++---------+--------------------+ +| CN-64 | Ningxia Hui | ++---------+--------------------+ +| CN-63 | Qinghai | ++---------+--------------------+ +| CN-61 | Shaanxi | ++---------+--------------------+ +| CN-37 | Shandong | ++---------+--------------------+ +| CN-31 | Shanghai | ++---------+--------------------+ +| CN-14 | Shanxi | ++---------+--------------------+ +| CN-51 | Sichuan | ++---------+--------------------+ +| CN-12 | Tianjin | ++---------+--------------------+ +| CN-65 | Xinjiang Uygur | ++---------+--------------------+ +| CN-54 | Xizang | ++---------+--------------------+ +| CN-53 | Yunnan | ++---------+--------------------+ +| CN-33 | Zhejiang | ++---------+--------------------+ + +* Egypt + ++---------+--------------------+ +| ISO | Name of region | ++=========+====================+ +| EG-DK | Ad Daqahliyah | ++---------+--------------------+ +| EG-BA | Al Bahr al Ahmar | ++---------+--------------------+ +| EG-BH | Al Buhayrah | ++---------+--------------------+ +| EG-FYM| Al Fayyum | ++---------+--------------------+ +| EG-GH | Al Gharbiyah | ++---------+--------------------+ +| EG-ALX| Al Iskandariyah | ++---------+--------------------+ +| EG-IS | Al Isma iliyah | ++---------+--------------------+ +| EG-GZ | Al Jizah | ++---------+--------------------+ +| EG-MNF| Al Minufiyah | ++---------+--------------------+ +| EG-MN | Al Minya | ++---------+--------------------+ +| EG-C | Al Qahirah | ++---------+--------------------+ +| EG-KB | Al Qalyubiyah | ++---------+--------------------+ +| EG-LX | Al Uqsur | ++---------+--------------------+ +| EG-WAD| Al Wadi al Jadid | ++---------+--------------------+ +| EG-SUZ| As Suways | ++---------+--------------------+ +| EG-SHR| Ash Sharqiyah | ++---------+--------------------+ +| EG-ASN| Aswan | ++---------+--------------------+ +| EG-AST| Asyut | ++---------+--------------------+ +| EG-BNS| Bani Suwayf | ++---------+--------------------+ +| EG-PTS| Bur Sa id | ++---------+--------------------+ +| EG-DT | Dumyat | ++---------+--------------------+ +| EG-JS | Janub Sina' | ++---------+--------------------+ +| EG-KFS| Kafr ash Shaykh | ++---------+--------------------+ +| EG-MT | Matrouh | ++---------+--------------------+ +| EG-KN | Qina | ++---------+--------------------+ +| EG-SIN| Shamal Sina' | ++---------+--------------------+ +| EG-SHG| Suhaj | ++---------+--------------------+ + + +* France + ++---------+------------------------------+ +| ISO | Name of region | ++=========+==============================+ +| FR-67 | Bas-Rhin | ++---------+------------------------------+ +| FR-68 | Haut-Rhin | ++---------+------------------------------+ +| FR-24 | Dordogne | ++---------+------------------------------+ +| FR-33 | Gironde | ++---------+------------------------------+ +| FR-40 | Landes | ++---------+------------------------------+ +| FR-47 | Lot-et-Garonne | ++---------+------------------------------+ +| FR-64 | Pyrénées-Atlantiques | ++---------+------------------------------+ +| FR-03 | Allier | ++---------+------------------------------+ +| FR-15 | Cantal | ++---------+------------------------------+ +| FR-43 | Haute-Loire | ++---------+------------------------------+ +| FR-63 | Puy-de-Dôme | ++---------+------------------------------+ +| FR-91 | Essonne | ++---------+------------------------------+ +| FR-92 | Hauts-de-Seine | ++---------+------------------------------+ +| FR-75 | Paris | ++---------+------------------------------+ +| FR-77 | Seine-et-Marne | ++---------+------------------------------+ +| FR-93 | Seine-Saint-Denis | ++---------+------------------------------+ +| FR-95 | Val-d'Oise | ++---------+------------------------------+ +| FR-94 | Val-de-Marne | ++---------+------------------------------+ +| FR-78 | Yvelines | ++---------+------------------------------+ +| FR-14 | Calvados | ++---------+------------------------------+ +| FR-50 | Manche | ++---------+------------------------------+ +| FR-61 | Orne | ++---------+------------------------------+ +| FR-21 | Côte-d'Or | ++---------+------------------------------+ +| FR-58 | Nièvre | ++---------+------------------------------+ +| FR-71 | Saône-et-Loire | ++---------+------------------------------+ +| FR-89 | Yonne | ++---------+------------------------------+ +| FR-22 | Côtes-d'Armor | ++---------+------------------------------+ +| FR-29 | Finistère | ++---------+------------------------------+ +| FR-35 | Ille-et-Vilaine | ++---------+------------------------------+ +| FR-56 | Morbihan | ++---------+------------------------------+ +| FR-18 | Cher | ++---------+------------------------------+ +| FR-28 | Eure-et-Loir | ++---------+------------------------------+ +| FR-37 | Indre-et-Loire | ++---------+------------------------------+ +| FR-36 | Indre | ++---------+------------------------------+ +| FR-41 | Loir-et-Cher | ++---------+------------------------------+ +| FR-45 | Loiret | ++---------+------------------------------+ +| FR-08 | Ardennes | ++---------+------------------------------+ +| FR-10 | Aube | ++---------+------------------------------+ +| FR-52 | Haute-Marne | ++---------+------------------------------+ +| FR-51 | Marne | ++---------+------------------------------+ +| FR-2A | Corse-du-Sud | ++---------+------------------------------+ +| FR-2B | Haute-Corse | ++---------+------------------------------+ +| FR-25 | Doubs | ++---------+------------------------------+ +| FR-70 | Haute-Saône | ++---------+------------------------------+ +| FR-39 | Jura | ++---------+------------------------------+ +| FR-90 | Territoire de Belfort | ++---------+------------------------------+ +| FR-27 | Eure | ++---------+------------------------------+ +| FR-76 | Seine-Maritime | ++---------+------------------------------+ +| FR-11 | Aude | ++---------+------------------------------+ +| FR-30 | Gard | ++---------+------------------------------+ +| FR-34 | Hérault | ++---------+------------------------------+ +| FR-48 | Lozère | ++---------+------------------------------+ +| FR-66 | Pyrénées-Orientales | ++---------+------------------------------+ +| FR-19 | Corrèze | ++---------+------------------------------+ +| FR-23 | Creuse | ++---------+------------------------------+ +| FR-87 | Haute-Vienne | ++---------+------------------------------+ +| FR-54 | Meurthe-et-Moselle | ++---------+------------------------------+ +| FR-55 | Meuse | ++---------+------------------------------+ +| FR-57 | Moselle | ++---------+------------------------------+ +| FR-88 | Vosges | ++---------+------------------------------+ +| FR-09 | Ariège | ++---------+------------------------------+ +| FR-12 | Aveyron | ++---------+------------------------------+ +| FR-32 | Gers | ++---------+------------------------------+ +| FR-31 | Haute-Garonne | ++---------+------------------------------+ +| FR-65 | Hautes-Pyrénées | ++---------+------------------------------+ +| FR-46 | Lot | ++---------+------------------------------+ +| FR-82 | Tarn-et-Garonne | ++---------+------------------------------+ +| FR-81 | Tarn | ++---------+------------------------------+ +| FR-59 | Nord | ++---------+------------------------------+ +| FR-62 | Pas-de-Calais | ++---------+------------------------------+ +| FR-44 | Loire-Atlantique | ++---------+------------------------------+ +| FR-49 | Maine-et-Loire | ++---------+------------------------------+ +| FR-53 | Mayenne | ++---------+------------------------------+ +| FR-72 | Sarthe | ++---------+------------------------------+ +| FR-85 | Vendée | ++---------+------------------------------+ +| FR-02 | Aisne | ++---------+------------------------------+ +| FR-60 | Oise | ++---------+------------------------------+ +| FR-80 | Somme | ++---------+------------------------------+ +| FR-17 | Charente-Maritime | ++---------+------------------------------+ +| FR-16 | Charente | ++---------+------------------------------+ +| FR-79 | Deux-Sèvres | ++---------+------------------------------+ +| FR-86 | Vienne | ++---------+------------------------------+ +| FR-04 | Alpes-de-Haute-Provence | ++---------+------------------------------+ +| FR-06 | Alpes-Maritimes | ++---------+------------------------------+ +| FR-13 | Bouches-du-Rhône | ++---------+------------------------------+ +| FR-05 | Hautes-Alpes | ++---------+------------------------------+ +| FR-83 | Var | ++---------+------------------------------+ +| FR-84 | Vaucluse | ++---------+------------------------------+ +| FR-01 | Ain | ++---------+------------------------------+ +| FR-07 | Ardèche | ++---------+------------------------------+ +| FR-26 | Drôme | ++---------+------------------------------+ +| FR-74 | Haute-Savoie | ++---------+------------------------------+ +| FR-38 | Isère | ++---------+------------------------------+ +| FR-42 | Loire | ++---------+------------------------------+ +| FR-69 | Rhône | ++---------+------------------------------+ +| FR-73 | Savoie | ++---------+------------------------------+ + + +* Germany + ++---------+------------------------------+ +| ISO | Name of region | ++=========+==============================+ +| DE-BW | Baden-Württemberg | ++---------+------------------------------+ +| DE-BY | Bayern | ++---------+------------------------------+ +| DE-BE | Berlin | ++---------+------------------------------+ +| DE-BB | Brandenburg | ++---------+------------------------------+ +| DE-HB | Bremen | ++---------+------------------------------+ +| DE-HH | Hamburg | ++---------+------------------------------+ +| DE-HE | Hessen | ++---------+------------------------------+ +| DE-MV | Mecklenburg-Vorpommern | ++---------+------------------------------+ +| DE-NI | Niedersachsen | ++---------+------------------------------+ +| DE-NW | Nordrhein-Westfalen | ++---------+------------------------------+ +| DE-RP | Rheinland-Pfalz | ++---------+------------------------------+ +| DE-SL | Saarland | ++---------+------------------------------+ +| DE-ST | Sachsen-Anhalt | ++---------+------------------------------+ +| DE-SN | Sachsen | ++---------+------------------------------+ +| DE-SH | Schleswig-Holstein | ++---------+------------------------------+ +| DE-TH | Thüringen | ++---------+------------------------------+ + + +* Italy + + ++------+------------------------------------+ +|ISO | Name of region | ++======+====================================+ +|IT-CH |Chieti | ++------+------------------------------------+ +|IT-AQ |L'Aquila | ++------+------------------------------------+ +|IT-PE |Pescara | ++------+------------------------------------+ +|IT-TE |Teramo | ++------+------------------------------------+ +|IT-BA |Bari | ++------+------------------------------------+ +|IT-BT |Barletta-Andria-Trani | ++------+------------------------------------+ +|IT-BR |Brindisi | ++------+------------------------------------+ +|IT-FG |Foggia | ++------+------------------------------------+ +|IT-LE |Lecce | ++------+------------------------------------+ +|IT-TA |Taranto | ++------+------------------------------------+ +|IT-MT |Matera | ++------+------------------------------------+ +|IT-PZ |Potenza | ++------+------------------------------------+ +|IT-CZ |Catanzaro | ++------+------------------------------------+ +|IT-CS |Cosenza | ++------+------------------------------------+ +|IT-KR |Crotone | ++------+------------------------------------+ +|IT-RC |Reggio Di Calabria | ++------+------------------------------------+ +|IT-VV |Vibo Valentia | ++------+------------------------------------+ +|IT-AV |Avellino | ++------+------------------------------------+ +|IT-BN |Benevento | ++------+------------------------------------+ +|IT-CE |Caserta | ++------+------------------------------------+ +|IT-NA |Napoli | ++------+------------------------------------+ +|IT-SA |Salerno | ++------+------------------------------------+ +|IT-BO |Bologna | ++------+------------------------------------+ +|IT-FE |Ferrara | ++------+------------------------------------+ +|IT-FC | Forli' - Cesena | ++------+------------------------------------+ +|IT-MO |Modena | ++------+------------------------------------+ +|IT-PR |Parma | ++------+------------------------------------+ +|IT-PC |Piacenza | ++------+------------------------------------+ +|IT-RA |Ravenna | ++------+------------------------------------+ +|IT-RE |Reggio Nell'Emilia | ++------+------------------------------------+ +|IT-RN |Rimini | ++------+------------------------------------+ +|IT-GO |Gorizia | ++------+------------------------------------+ +|IT-PN |Pordenone | ++------+------------------------------------+ +|IT-TS |Trieste | ++------+------------------------------------+ +|IT-UD |Udine | ++------+------------------------------------+ +|IT-FR |Frosinone | ++------+------------------------------------+ +|IT-LT |Latina | ++------+------------------------------------+ +|IT-RI |Rieti | ++------+------------------------------------+ +|IT-RM |Roma | ++------+------------------------------------+ +|IT-VT |Viterbo | ++------+------------------------------------+ +|IT-GE |Genova | ++------+------------------------------------+ +|IT-IM |Imperia | ++------+------------------------------------+ +|IT-SP |La Spezia | ++------+------------------------------------+ +|IT-SV |Savona | ++------+------------------------------------+ +|IT-BG |Bergamo | ++------+------------------------------------+ +|IT-BS |Brescia | ++------+------------------------------------+ +|IT-CO |Como | ++------+------------------------------------+ +|IT-CR |Cremona | ++------+------------------------------------+ +|IT-LC |Lecco | ++------+------------------------------------+ +|IT-LO |Lodi | ++------+------------------------------------+ +|IT-MN |Mantua | ++------+------------------------------------+ +|IT-MI |Milano | ++------+------------------------------------+ +|IT-MB |Monza and Brianza | ++------+------------------------------------+ +|IT-PV |Pavia | ++------+------------------------------------+ +|IT-SO |Sondrio | ++------+------------------------------------+ +|IT-VA |Varese | ++------+------------------------------------+ +|IT-AN |Ancona | ++------+------------------------------------+ +|IT-AP |Ascoli Piceno | ++------+------------------------------------+ +|IT-FM |Fermo | ++------+------------------------------------+ +|IT-MC |Macerata | ++------+------------------------------------+ +|IT-PU |Pesaro E Urbino | ++------+------------------------------------+ +|IT-CB |Campobasso | ++------+------------------------------------+ +|IT-IS |Isernia | ++------+------------------------------------+ +|IT-AL |Alessandria | ++------+------------------------------------+ +|IT-AT |Asti | ++------+------------------------------------+ +|IT-BI |Biella | ++------+------------------------------------+ +|IT-CN |Cuneo | ++------+------------------------------------+ +|IT-NO |Novara | ++------+------------------------------------+ +|IT-TO |Torino | ++------+------------------------------------+ +|IT-VB |Verbano-Cusio-Ossola | ++------+------------------------------------+ +|IT-VC |Vercelli | ++------+------------------------------------+ +|IT-CA |Cagliari | ++------+------------------------------------+ +|IT-CI |Carbonia-Iglesias | ++------+------------------------------------+ +|IT-VS |Medio Campidano | ++------+------------------------------------+ +|IT-NU |Nuoro | ++------+------------------------------------+ +|IT-OG |Ogliastra | ++------+------------------------------------+ +|IT-OT |Olbia-Tempio | ++------+------------------------------------+ +|IT-OR |Oristano | ++------+------------------------------------+ +|IT-SS |Sassari | ++------+------------------------------------+ +|IT-AG |Agrigento | ++------+------------------------------------+ +|IT-CL |Caltanissetta | ++------+------------------------------------+ +|IT-CT |Catania | ++------+------------------------------------+ +|IT-EN |Enna | ++------+------------------------------------+ +|IT-ME |Messina | ++------+------------------------------------+ +|IT-PA |Palermo | ++------+------------------------------------+ +|IT-RG |Ragusa | ++------+------------------------------------+ +|IT-SR |Syracuse | ++------+------------------------------------+ +|IT-TP |Trapani | ++------+------------------------------------+ +|IT-AR |Arezzo | ++------+------------------------------------+ +|IT-FI |Florence | ++------+------------------------------------+ +|IT-GR |Grosseto | ++------+------------------------------------+ +|IT-LI |Livorno | ++------+------------------------------------+ +|IT-LU |Lucca | ++------+------------------------------------+ +|IT-MS |Massa Carrara | ++------+------------------------------------+ +|IT-PI |Pisa | ++------+------------------------------------+ +|IT-PT |Pistoia | ++------+------------------------------------+ +|IT-PO |Prato | ++------+------------------------------------+ +|IT-SI |Siena | ++------+------------------------------------+ +|IT-BZ |Bolzano | ++------+------------------------------------+ +|IT-TN |Trento | ++------+------------------------------------+ +|IT-PG |Perugia | ++------+------------------------------------+ +|IT-TR |Terni | ++------+------------------------------------+ +|IT-AO |Aosta | ++------+------------------------------------+ +|IT-BL |Belluno | ++------+------------------------------------+ +|IT-PD |Padua | ++------+------------------------------------+ +|IT-RO |Rovigo | ++------+------------------------------------+ +|IT-TV |Treviso | ++------+------------------------------------+ +|IT-VE |Venezia | ++------+------------------------------------+ +|IT-VR |Verona | ++------+------------------------------------+ +|IT-VI |Vicenza | ++------+------------------------------------+ + +* Morocco + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|MA-BES| Ben Slimane | ++------+------------------------------+ +|MA-KHO| Khouribga | ++------+------------------------------+ +|MA-SET| Settat | ++------+------------------------------+ +|MA-JDI| El Jadida | ++------+------------------------------+ +|MA-SAF| Safi | ++------+------------------------------+ +|MA-BOM| Boulemane | ++------+------------------------------+ +|MA-FES| Fès | ++------+------------------------------+ +|MA-SEF| Sefrou | ++------+------------------------------+ +|MA-MOU| Zouagha-Moulay Yacoub | ++------+------------------------------+ +|MA-KEN| Kénitra | ++------+------------------------------+ +|MA-SIK| Sidi Kacem | ++------+------------------------------+ +|MA-CAS| Casablanca | ++------+------------------------------+ +|MA-MOH| Mohammedia | ++------+------------------------------+ +|MA-ASZ| Assa-Zag | ++------+------------------------------+ +|MA-GUE| Guelmim | ++------+------------------------------+ +|MA-TNT| Tan-Tan | ++------+------------------------------+ +|MA-TAT| Tata | ++------+------------------------------+ +|MA-LAA| Laâyoune | ++------+------------------------------+ +|MA-HAO| Al Haouz | ++------+------------------------------+ +|MA-CHI| Chichaoua | ++------+------------------------------+ +|MA-KES| El Kelaâ des Sraghna | ++------+------------------------------+ +|MA-ESI| Essaouira | ++------+------------------------------+ +|MA-MMD| Marrakech | ++------+------------------------------+ +|MA-HAJ| El Hajeb | ++------+------------------------------+ +|MA-ERR| Errachidia | ++------+------------------------------+ +|MA-IFR| Ifrane | ++------+------------------------------+ +|MA-KHN| Khénifra | ++------+------------------------------+ +|MA-MEK| Meknès | ++------+------------------------------+ +|MA-BER| Berkane Taourirt | ++------+------------------------------+ +|MA-FIG| Figuig | ++------+------------------------------+ +|MA-JRA| Jerada | ++------+------------------------------+ +|MA-NAD| Nador | ++------+------------------------------+ +|MA-OUJ| Oujda Angad | ++------+------------------------------+ +|MA-KHE| Khémisset | ++------+------------------------------+ +|MA-RAB| Rabat | ++------+------------------------------+ +|MA-SAL| Salé | ++------+------------------------------+ +|MA-SKH| Skhirate-Témara | ++------+------------------------------+ +|MA-AGD| Agadir-Ida ou Tanane | ++------+------------------------------+ +|MA-CHT| Chtouka-Aït Baha | ++------+------------------------------+ +|MA-INE| Inezgane-Aït Melloul | ++------+------------------------------+ +|MA-OUA| Ouarzazate | ++------+------------------------------+ +|MA-TAR| Taroudannt | ++------+------------------------------+ +|MA-TIZ| Tiznit | ++------+------------------------------+ +|MA-ZAG| Zagora | ++------+------------------------------+ +|MA-AZI| Azilal | ++------+------------------------------+ +|MA-BEM| Béni Mellal | ++------+------------------------------+ +|MA-CHE| Chefchaouen | ++------+------------------------------+ +|MA-FAH| Fahs Anjra | ++------+------------------------------+ +|MA-LAR| Larache | ++------+------------------------------+ +|MA-TET| Tétouan | ++------+------------------------------+ +|MA-TNG| Tanger-Assilah | ++------+------------------------------+ +|MA-HOC| Al Hoceïma | ++------+------------------------------+ +|MA-TAO| Taounate | ++------+------------------------------+ +|MA-TAZ| Taza | ++------+------------------------------+ + + +* Netherlands + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|NL-DR | Drenthe | ++------+------------------------------+ +|NL-FL | Flevoland | ++------+------------------------------+ +|NL-FR | Friesland | ++------+------------------------------+ +|NL-GE | Gelderland | ++------+------------------------------+ +|NL-GR | Groningen | ++------+------------------------------+ +|NL-YS | IJsselmeer | ++------+------------------------------+ +|NL-LI | Limburg | ++------+------------------------------+ +|NL-NB | Noord-Brabant | ++------+------------------------------+ +|NL-NH | Noord-Holland | ++------+------------------------------+ +|NL-OV | Overijssel | ++------+------------------------------+ +|NL-UT | Utrecht | ++------+------------------------------+ +|NL-ZE | Zeeland | ++------+------------------------------+ +|NL-ZM | Zeeuwse meren | ++------+------------------------------+ +|NL-ZH | Zuid-Holland | ++------+------------------------------+ + +* Russian + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|RU-AD | Adygey | ++------+------------------------------+ +|RU-ALT| Altay | ++------+------------------------------+ +|RU-AMU| Amur | ++------+------------------------------+ +|RU-ARK| Arkhangel'sk | ++------+------------------------------+ +|RU-AST| Astrakhan' | ++------+------------------------------+ +|RU-BA | Bashkortostan | ++------+------------------------------+ +|RU-BEL| Belgorod | ++------+------------------------------+ +|RU-BRY| Bryansk | ++------+------------------------------+ +|RU-BU | Buryat | ++------+------------------------------+ +|RU-CE | Chechnya | ++------+------------------------------+ +|RU-CHE| Chelyabinsk | ++------+------------------------------+ +|RU-CHU| Chukot | ++------+------------------------------+ +|RU-CU | Chuvash | ++------+------------------------------+ +|RU-SPE| City of St. Petersburg | ++------+------------------------------+ +|RU-DA | Dagestan | ++------+------------------------------+ +|RU-AL | Gorno-Altay | ++------+------------------------------+ +|RU-IN | Ingush | ++------+------------------------------+ +|RU-IRK| Irkutsk | ++------+------------------------------+ +|RU-IVA| Ivanovo | ++------+------------------------------+ +|RU-KB | Kabardin-Balkar | ++------+------------------------------+ +|RU-KGD| Kaliningrad | ++------+------------------------------+ +|RU-KL | Kalmyk | ++------+------------------------------+ +|RU-KLU| Kaluga | ++------+------------------------------+ +|RU-KAM| Kamchatka | ++------+------------------------------+ +|RU-KC | Karachay-Cherkess | ++------+------------------------------+ +|RU-KR | Karelia | ++------+------------------------------+ +|RU-KEM| Kemerovo | ++------+------------------------------+ +|RU-KHA| Khabarovsk | ++------+------------------------------+ +|RU-KK | Khakass | ++------+------------------------------+ +|RU-KHM| Khanty-Mansiy | ++------+------------------------------+ +|RU-KIR| Kirov | ++------+------------------------------+ +|RU-KO | Komi | ++------+------------------------------+ +|RU-KOS| Kostroma | ++------+------------------------------+ +|RU-KDA| Krasnodar | ++------+------------------------------+ +|RU-KYA| Krasnoyarsk | ++------+------------------------------+ +|RU-KGN| Kurgan | ++------+------------------------------+ +|RU-KRS| Kursk | ++------+------------------------------+ +|RU-LEN| Leningrad | ++------+------------------------------+ +|RU-LIP| Lipetsk | ++------+------------------------------+ +|RU-MAG| Maga Buryatdan | ++------+------------------------------+ +|RU-ME | Mariy-El | ++------+------------------------------+ +|RU-MO | Mordovia | ++------+------------------------------+ +|RU-MOW| Moscow City | ++------+------------------------------+ +|RU-MOS| Moskva | ++------+------------------------------+ +|RU-MUR| Murmansk | ++------+------------------------------+ +|RU-NEN| Nenets | ++------+------------------------------+ +|RU-NIZ| Nizhegorod | ++------+------------------------------+ +|RU-SE | North Ossetia | ++------+------------------------------+ +|RU-NGR| Novgorod | ++------+------------------------------+ +|RU-NVS| Novosibirsk | ++------+------------------------------+ +|RU-OMS| Omsk | ++------+------------------------------+ +|RU-ORL| Orel | ++------+------------------------------+ +|RU-ORE| Orenburg | ++------+------------------------------+ +|RU-PNZ| Penza | ++------+------------------------------+ +|RU-PER| Perm' | ++------+------------------------------+ +|RU-PRI| Primor'ye | ++------+------------------------------+ +|RU-PSK| Pskov | ++------+------------------------------+ +|RU-ROS| Rostov | ++------+------------------------------+ +|RU-RYA| Ryazan' | ++------+------------------------------+ +|RU-SAK| Sakhalin | ++------+------------------------------+ +|RU-SA | Sakha | ++------+------------------------------+ +|RU-SAM| Samara | ++------+------------------------------+ +|RU-SAR| Saratov | ++------+------------------------------+ +|RU-SMO| Smolensk | ++------+------------------------------+ +|RU-STA| Stavropol' | ++------+------------------------------+ +|RU-SVE| Sverdlovsk | ++------+------------------------------+ +|RU-TAM| Tambov | ++------+------------------------------+ +|RU-TA | Tatarstan | ++------+------------------------------+ +|RU-TOM| Tomsk | ++------+------------------------------+ +|RU-TUL| Tula | ++------+------------------------------+ +|RU-TY | Tuva | ++------+------------------------------+ +|RU-TVE| Tver' | ++------+------------------------------+ +|RU-TYU| Tyumen' | ++------+------------------------------+ +|RU-UD | Udmurt | ++------+------------------------------+ +|RU-ULY| Ul'yanovsk | ++------+------------------------------+ +|RU-VLA| Vladimir | ++------+------------------------------+ +|RU-VGG| Volgograd | ++------+------------------------------+ +|RU-VLG| Vologda | ++------+------------------------------+ +|RU-VOR| Voronezh | ++------+------------------------------+ +|RU-YAN| Yamal-Nenets | ++------+------------------------------+ +|RU-YAR| Yaroslavl' | ++------+------------------------------+ +|RU-YEV| Yevrey | ++------+------------------------------+ +|RU-ZAB| Zabaykal'ye | ++------+------------------------------+ + +* Singapore + ++-----+------------------------------+ +| Id | Name of region | ++=====+==============================+ +| 205| Singapore | ++-----+------------------------------+ + +* Spain + ++------+-----------------------------+ +|ISO | Name of region | ++======+=============================+ +|ES-AL | Almería | ++------+-----------------------------+ +|ES-CA | Cádiz | ++------+-----------------------------+ +|ES-CO | Córdoba | ++------+-----------------------------+ +|ES-GR | Granada | ++------+-----------------------------+ +|ES-H | Huelva | ++------+-----------------------------+ +|ES-J | Jaén | ++------+-----------------------------+ +|ES-MA | Málaga | ++------+-----------------------------+ +|ES-SE | Sevilla | ++------+-----------------------------+ +|ES-HU | Huesca | ++------+-----------------------------+ +|ES-TE | Teruel | ++------+-----------------------------+ +|ES-Z | Zaragoza | ++------+-----------------------------+ +|ES-S3 | Cantabria | ++------+-----------------------------+ +|ES-AB | Albacete | ++------+-----------------------------+ +|ES-CR | Ciudad Real | ++------+-----------------------------+ +|ES-CU | Cuenca | ++------+-----------------------------+ +|ES-GU | Guadalajara | ++------+-----------------------------+ +|ES-TO | Toledo | ++------+-----------------------------+ +|ES-AV | Ávila | ++------+-----------------------------+ +|ES-BU | Burgos | ++------+-----------------------------+ +|ES-LE | León | ++------+-----------------------------+ +|ES-P | Palencia | ++------+-----------------------------+ +|ES-SA | Salamanca | ++------+-----------------------------+ +|ES-SG | Segovia | ++------+-----------------------------+ +|ES-SO | Soria | ++------+-----------------------------+ +|ES-VA | Valladolid | ++------+-----------------------------+ +|ES-ZA | Zamora | ++------+-----------------------------+ +|ES-B | Barcelona | ++------+-----------------------------+ +|ES-GI | Girona | ++------+-----------------------------+ +|ES-L | Lleida | ++------+-----------------------------+ +|ES-T | Tarragona | ++------+-----------------------------+ +|ES-CE | Ceuta | ++------+-----------------------------+ +|ES-ML | Melilla | ++------+-----------------------------+ +|ES-M5 | Madrid | ++------+-----------------------------+ +|ES-NA7| Navarra | ++------+-----------------------------+ +|ES-A | Alicante | ++------+-----------------------------+ +|ES-CS | Castellón | ++------+-----------------------------+ +|ES-V | Valencia | ++------+-----------------------------+ +|ES-BA | Badajoz | ++------+-----------------------------+ +|ES-CC | Cáceres | ++------+-----------------------------+ +|ES-C | A Coruña | ++------+-----------------------------+ +|ES-LU | Lugo | ++------+-----------------------------+ +|ES-OR | Ourense | ++------+-----------------------------+ +|ES-PO | Pontevedra | ++------+-----------------------------+ +|ES-PM | Baleares | ++------+-----------------------------+ +|ES-GC | Las Palmas | ++------+-----------------------------+ +|ES-TF | Santa Cruz de Tenerife | ++------+-----------------------------+ +|ES-LO4| La Rioja | ++------+-----------------------------+ +|ES-VI | Álava | ++------+-----------------------------+ +|ES-SS | Guipúzcoa | ++------+-----------------------------+ +|ES-BI | Vizcaya | ++------+-----------------------------+ +|ES-O2 | Asturias | ++------+-----------------------------+ +|ES-MU6| Murcia | ++------+-----------------------------+ + +* Uk + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|GB-BDG| Barking and Dagenham | ++------+------------------------------+ +|GB-BAS| Bath and North East Somerset | ++------+------------------------------+ +|GB-BDF| Bedfordshire | ++------+------------------------------+ +|GB-WBK| Berkshire | ++------+------------------------------+ +|GB-BEX| Bexley | ++------+------------------------------+ +|GB-BBD| Blackburn with Darwen | ++------+------------------------------+ +|GB-BMH| Bournemouth | ++------+------------------------------+ +|GB-BEN| Brent | ++------+------------------------------+ +|GB-BNH| Brighton and Hove | ++------+------------------------------+ +|GB-BST| Bristol | ++------+------------------------------+ +|GB-BRY| Bromley | ++------+------------------------------+ +|GB-BKM| Buckinghamshire | ++------+------------------------------+ +|GB-CAM| Cambridgeshire | ++------+------------------------------+ +|GB-CMD| Camden | ++------+------------------------------+ +|GB-CHS| Cheshire | ++------+------------------------------+ +|GB-CON| Cornwall | ++------+------------------------------+ +|GB-CRY| Croydon | ++------+------------------------------+ +|GB-CMA| Cumbria | ++------+------------------------------+ +|GB-DAL| Darlington | ++------+------------------------------+ +|GB-DBY| Derbyshire | ++------+------------------------------+ +|GB-DER| Derby | ++------+------------------------------+ +|GB-DEV| Devon | ++------+------------------------------+ +|GB-DOR| Dorset | ++------+------------------------------+ +|GB-DUR| Durham | ++------+------------------------------+ +|GB-EAL| Ealing | ++------+------------------------------+ +|GB-ERY| East Riding of Yorkshire | ++------+------------------------------+ +|GB-ESX| East Sussex | ++------+------------------------------+ +|GB-ENF| Enfield | ++------+------------------------------+ +|GB-ESS| Essex | ++------+------------------------------+ +|GB-GLS| Gloucestershire | ++------+------------------------------+ +|GB-GRE| Greenwich | ++------+------------------------------+ +|GB-HCK| Hackney | ++------+------------------------------+ +|GB-HAL| Halton | ++------+------------------------------+ +|GB-HMF| Hammersmith and Fulham | ++------+------------------------------+ +|GB-HAM| Hampshire | ++------+------------------------------+ +|GB-HRY| Haringey | ++------+------------------------------+ +|GB-HRW| Harrow | ++------+------------------------------+ +|GB-HPL| Hartlepool | ++------+------------------------------+ +|GB-HAV| Havering | ++------+------------------------------+ +|GB-HRT| Herefordshire | ++------+------------------------------+ +|GB-HEF| Hertfordshire | ++------+------------------------------+ +|GB-HIL| Hillingdon | ++------+------------------------------+ +|GB-HNS| Hounslow | ++------+------------------------------+ +|GB-IOW| Isle of Wight | ++------+------------------------------+ +|GB-ISL| Islington | ++------+------------------------------+ +|GB-KEC| Kensington and Chelsea | ++------+------------------------------+ +|GB-KEN| Kent | ++------+------------------------------+ +|GB-KHL| Kingston upon Hull | ++------+------------------------------+ +|GB-KTT| Kingston upon Thames | ++------+------------------------------+ +|GB-LBH| Lambeth | ++------+------------------------------+ +|GB-LAN| Lancashire | ++------+------------------------------+ +|GB-LEC| Leicestershire | ++------+------------------------------+ +|GB-LCE| Leicester | ++------+------------------------------+ +|GB-LEW| Lewisham | ++------+------------------------------+ +|GB-LIN| Lincolnshire | ++------+------------------------------+ +|GB-LND| London | ++------+------------------------------+ +|GB-LUT| Luton | ++------+------------------------------+ +|GB-MAN| Manchester | ++------+------------------------------+ +|GB-MDW| Medway | ++------+------------------------------+ +|GB-MER| Merseyside | ++------+------------------------------+ +|GB-MRT| Merton | ++------+------------------------------+ +|GB-MDB| Middlesbrough | ++------+------------------------------+ +|GB-MIK| Milton Keynes | ++------+------------------------------+ +|GB-NWM| Newham | ++------+------------------------------+ +|GB-NFK| Norfolk | ++------+------------------------------+ +|GB-NEL| North East Lincolnshire | ++------+------------------------------+ +|GB-NLN| North Lincolnshire | ++------+------------------------------+ +|GB-NSM| North Somerset | ++------+------------------------------+ +|GB-NYK| North Yorkshire | ++------+------------------------------+ +|GB-NTH| Northamptonshire | ++------+------------------------------+ +|GB-NBL| Northumberland | ++------+------------------------------+ +|GB-NTT| Nottinghamshire | ++------+------------------------------+ +|GB-NGM| Nottingham | ++------+------------------------------+ +|GB-OXF| Oxfordshire | ++------+------------------------------+ +|GB-PTE| Peterborough | ++------+------------------------------+ +|GB-PLY| Plymouth | ++------+------------------------------+ +|GB-POL| Poole | ++------+------------------------------+ +|GB-POR| Portsmouth | ++------+------------------------------+ +|GB-RDB| Redbridge | ++------+------------------------------+ +|GB-RCC| Redcar and Cleveland | ++------+------------------------------+ +|GB-RIC| Richmond upon Thames | ++------+------------------------------+ +|GB-RUT| Rutland | ++------+------------------------------+ +|GB-SHR| Shropshire | ++------+------------------------------+ +|GB-SOM| Somerset | ++------+------------------------------+ +|GB-SGC| South Gloucestershire | ++------+------------------------------+ +|GB-SY | South Yorkshire | ++------+------------------------------+ +|GB-STH| Southampton | ++------+------------------------------+ +|GB-SOS| Southend-on-Sea | ++------+------------------------------+ +|GB-SWK| Southwark | ++------+------------------------------+ +|GB-STS| Staffordshire | ++------+------------------------------+ +|GB-STT| Stockton-on-Tees | ++------+------------------------------+ +|GB-STE| Stoke-on-Trent | ++------+------------------------------+ +|GB-SFK| Suffolk | ++------+------------------------------+ +|GB-SRY| Surrey | ++------+------------------------------+ +|GB-STN| Sutton | ++------+------------------------------+ +|GB-SWD| Swindon | ++------+------------------------------+ +|GB-TFW| Telford and Wrekin | ++------+------------------------------+ +|GB-THR| Thurrock | ++------+------------------------------+ +|GB-TOB| Torbay | ++------+------------------------------+ +|GB-TWH| Tower Hamlets | ++------+------------------------------+ +|GB-TAW| Tyne and Wear | ++------+------------------------------+ +|GB-WFT| Waltham Forest | ++------+------------------------------+ +|GB-WND| Wandsworth | ++------+------------------------------+ +|GB-WRT| Warrington | ++------+------------------------------+ +|GB-WAR| Warwickshire | ++------+------------------------------+ +|GB-WM | West Midlands | ++------+------------------------------+ +|GB-WSX| West Sussex | ++------+------------------------------+ +|GB-WY | West Yorkshire | ++------+------------------------------+ +|GB-WSM| Westminster | ++------+------------------------------+ +|GB-WIL| Wiltshire | ++------+------------------------------+ +|GB-WOR| Worcestershire | ++------+------------------------------+ +|GB-YOR| York | ++------+------------------------------+ +|GB-ANT| Antrim | ++------+------------------------------+ +|GB-ARD| Ards | ++------+------------------------------+ +|GB-ARM| Armagh | ++------+------------------------------+ +|GB-BLA| Ballymena | ++------+------------------------------+ +|GB-BLY| Ballymoney | ++------+------------------------------+ +|GB-BNB| Banbridge | ++------+------------------------------+ +|GB-BFS| Belfast | ++------+------------------------------+ +|GB-CKF| Carrickfergus | ++------+------------------------------+ +|GB-CSR| Castlereagh | ++------+------------------------------+ +|GB-CLR| Coleraine | ++------+------------------------------+ +|GB-CKT| Cookstown | ++------+------------------------------+ +|GB-CGV| Craigavon | ++------+------------------------------+ +|GB-DRY| Derry | ++------+------------------------------+ +|GB-DOW| Down | ++------+------------------------------+ +|GB-DGN| Dungannon | ++------+------------------------------+ +|GB-FER| Fermanagh | ++------+------------------------------+ +|GB-LRN| Larne | ++------+------------------------------+ +|GB-LMV| Limavady | ++------+------------------------------+ +|GB-LSB| Lisburn | ++------+------------------------------+ +|GB-MFT| Magherafelt | ++------+------------------------------+ +|GB-MYL| Moyle | ++------+------------------------------+ +|GB-NYM| Newry and Mourne | ++------+------------------------------+ +|GB-NTA| Newtownabbey | ++------+------------------------------+ +|GB-NDN| North Down | ++------+------------------------------+ +|GB-OMH| Omagh | ++------+------------------------------+ +|GB-STB| Strabane | ++------+------------------------------+ +|GB-ABD| Aberdeenshire | ++------+------------------------------+ +|GB-ABE| Aberdeen | ++------+------------------------------+ +|GB-ANS| Angus | ++------+------------------------------+ +|GB-AGB| Argyll and Bute | ++------+------------------------------+ +|GB-CLK| Clackmannanshire | ++------+------------------------------+ +|GB-DGY| Dumfries and Galloway | ++------+------------------------------+ +|GB-DND| Dundee | ++------+------------------------------+ +|GB-EAY| East Ayrshire | ++------+------------------------------+ +|GB-EDU| East Dunbartonshire | ++------+------------------------------+ +|GB-ELN| East Lothian | ++------+------------------------------+ +|GB-ERW| East Renfrewshire | ++------+------------------------------+ +|GB-EDH| Edinburgh | ++------+------------------------------+ +|GB-ELS| Eilean Siar | ++------+------------------------------+ +|GB-FAL| Falkirk | ++------+------------------------------+ +|GB-FIF| Fife | ++------+------------------------------+ +|GB-GLG| Glasgow | ++------+------------------------------+ +|GB-HLD| Highland | ++------+------------------------------+ +|GB-IVC| Inverclyde | ++------+------------------------------+ +|GB-MLN| Midlothian | ++------+------------------------------+ +|GB-MRY| Moray | ++------+------------------------------+ +|GB-NAY| North Ayshire | ++------+------------------------------+ +|GB-NLK| North Lanarkshire | ++------+------------------------------+ +|GB-ORK| Orkney Islands | ++------+------------------------------+ +|GB-PKN| Perthshire and Kinross | ++------+------------------------------+ +|GB-RFW| Renfrewshire | ++------+------------------------------+ +|GB-SCB| Scottish Borders | ++------+------------------------------+ +|GB-ZET| Shetland Islands | ++------+------------------------------+ +|GB-SAY| South Ayrshire | ++------+------------------------------+ +|GB-SLK| South Lanarkshire | ++------+------------------------------+ +|GB-STG| Stirling | ++------+------------------------------+ +|GB-WDU| West Dunbartonshire | ++------+------------------------------+ +|GB-WLN| West Lothian | ++------+------------------------------+ +|GB-AGY| Anglesey | ++------+------------------------------+ +|GB-BGW| Blaenau Gwent | ++------+------------------------------+ +|GB-BGE| Bridgend | ++------+------------------------------+ +|GB-CAY| Caerphilly | ++------+------------------------------+ +|GB-CRF| Cardiff | ++------+------------------------------+ +|GB-CMN| Carmarthenshire | ++------+------------------------------+ +|GB-CGN| Ceredigion | ++------+------------------------------+ +|GB-CWY| Conwy | ++------+------------------------------+ +|GB-DEN| Denbighshire | ++------+------------------------------+ +|GB-FLN| Flintshire | ++------+------------------------------+ +|GB-GWN| Gwynedd | ++------+------------------------------+ +|GB-MTY| Merthyr Tydfil | ++------+------------------------------+ +|GB-MON| Monmouthshire | ++------+------------------------------+ +|GB-NTL| Neath Port Talbot | ++------+------------------------------+ +|GB-NWP| Newport | ++------+------------------------------+ +|GB-PEM| Pembrokeshire | ++------+------------------------------+ +|GB-POW| Powys | ++------+------------------------------+ +|GB-RCT| Rhondda| ++------+------------------------------+ +|GB-SWA| Swansea | ++------+------------------------------+ +|GB-TOF| Torfaen | ++------+------------------------------+ +|GB-VGL| Vale of Glamorgan | ++------+------------------------------+ +|GB-WRX| Wrexham | ++------+------------------------------+ + +* Ukraine + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|UA-71 | Cherkasy | ++------+------------------------------+ +|UA-74 | Chernihiv | ++------+------------------------------+ +|UA-77 | Chernivtsi | ++------+------------------------------+ +|UA-43 | Crimea | ++------+------------------------------+ +|UA-12 | Dnipropetrovs'k | ++------+------------------------------+ +|UA-14 | Donets'k | ++------+------------------------------+ +|UA-26 | Ivano-Frankivs'k | ++------+------------------------------+ +|UA-63 | Kharkiv | ++------+------------------------------+ +|UA-65 | Kherson | ++------+------------------------------+ +|UA-68 | Khmel'nyts'kyy | ++------+------------------------------+ +|UA-30 | Kiev City | ++------+------------------------------+ +|UA-32 | Kiev | ++------+------------------------------+ +|UA-35 | Kirovohrad | ++------+------------------------------+ +|UA-46 | L'viv | ++------+------------------------------+ +|UA-09 | Luhans'k | ++------+------------------------------+ +|UA-48 | Mykolayiv | ++------+------------------------------+ +|UA-51 | Odessa | ++------+------------------------------+ +|UA-53 | Poltava | ++------+------------------------------+ +|UA-56 | Rivne | ++------+------------------------------+ +|UA-40 | Sevastopol' | ++------+------------------------------+ +|UA-59 | Sumy | ++------+------------------------------+ +|UA-61 | Ternopil' | ++------+------------------------------+ +|UA-21 | Transcarpathia | ++------+------------------------------+ +|UA-05 | Vinnytsya | ++------+------------------------------+ +|UA-07 | Volyn | ++------+------------------------------+ +|UA-23 | Zaporizhzhya | ++------+------------------------------+ +|UA-18 | Zhytomyr | ++------+------------------------------+ + + +* Usa + ++------+------------------------------+ +|ISO | Name of region | ++======+==============================+ +|US-AL | Alabama | ++------+------------------------------+ +|US-AK | Alaska | ++------+------------------------------+ +|US-AK | Alaska | ++------+------------------------------+ +|US-AZ | Arizona | ++------+------------------------------+ +|US-AR | Arkansas | ++------+------------------------------+ +|US-CA | California | ++------+------------------------------+ +|US-CO | Colorado | ++------+------------------------------+ +|US-CT | Connecticut | ++------+------------------------------+ +|US-DE | Delaware | ++------+------------------------------+ +|US-DC | District of Columbia | ++------+------------------------------+ +|US-FL | Florida | ++------+------------------------------+ +|US-GA | Georgia | ++------+------------------------------+ +|US-HI | Hawaii | ++------+------------------------------+ +|US-ID | Idaho | ++------+------------------------------+ +|US-IL | Illinois | ++------+------------------------------+ +|US-IN | Indiana | ++------+------------------------------+ +|US-IA | Iowa | ++------+------------------------------+ +|US-KS | Kansas | ++------+------------------------------+ +|US-KY | Kentucky | ++------+------------------------------+ +|US-LA | Louisiana | ++------+------------------------------+ +|US-ME | Maine | ++------+------------------------------+ +|US-MD | Maryland | ++------+------------------------------+ +|US-MA | Massachusetts | ++------+------------------------------+ +|US-MI | Michigan | ++------+------------------------------+ +|US-MN | Minnesota | ++------+------------------------------+ +|US-MS | Mississippi | ++------+------------------------------+ +|US-MO | Missouri | ++------+------------------------------+ +|US-MT | Montana | ++------+------------------------------+ +|US-NE | Nebraska | ++------+------------------------------+ +|US-NV | Nevada | ++------+------------------------------+ +|US-NH | New Hampshire | ++------+------------------------------+ +|US-NJ | New Jersey | ++------+------------------------------+ +|US-NM | New Mexico | ++------+------------------------------+ +|US-NY | New York | ++------+------------------------------+ +|US-NC | North Carolina | ++------+------------------------------+ +|US-ND | North Dakota | ++------+------------------------------+ +|US-OH | Ohio | ++------+------------------------------+ +|US-OK | Oklahoma | ++------+------------------------------+ +|US-OR | Oregon | ++------+------------------------------+ +|US-PA | Pennsylvania | ++------+------------------------------+ +|US-RI | Rhode Island | ++------+------------------------------+ +|US-SC | South Carolina | ++------+------------------------------+ +|US-SD | South Dakota | ++------+------------------------------+ +|US-TN | Tennessee | ++------+------------------------------+ +|US-TX | Texas | ++------+------------------------------+ +|US-UT | Utah | ++------+------------------------------+ +|US-VT | Vermont | ++------+------------------------------+ +|US-VA | Virginia | ++------+------------------------------+ +|US-WA | Washington | ++------+------------------------------+ +|US-WV | West Virginia | ++------+------------------------------+ +|US-WI | Wisconsin | ++------+------------------------------+ +|US-WY | Wyoming | ++------+------------------------------+ + + +You need to add a new Country ? +------------------------------- + +To add a new country in country map tools, we need follow next steps : + +1. You need shapfiles why contains data of your map. + You can get this file in this site : http://www.diva-gis.org/gdata + +2. You need to add ISO 3166-2 with column name ISO for all record in your file. + It's important because, it's a norm for mapping your data with geojson file + +3. You need to convert shapfile to geojson file. + This action can make with ogr2ogr tools : http://www.gdal.org/ogr2ogr.html + +4. Put your geojson file in next folder : superset/assets/visualizations/countries with the next name : nameofyourcountries.geojson + +5. You can to reduce size of geojson file ont this site : http://mapshaper.org/ + +6. Go in file superset/assets/javascripts/explorev2/stores/controls.jsx + +7. Add your country in component 'select_country' + Example : + +.. code:: python + + select_country: { + type: 'SelectControl', + label: 'Country Name Type', + default: 'France', + choices: [ + 'Belgium', + 'Brazil', + 'China', + 'Egypt', + 'France', + 'Germany', + 'Italy', + 'Morocco', + 'Netherlands', + 'Russia', + 'Singapore', + 'Spain', + 'Uk', + 'Usa', + ].map(s => [s, s]), + description: 'The name of country that Superset should display', + }, + + + + diff --git a/jitney_events b/jitney_events new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/pylint-errors.sh b/pylint-errors.sh new file mode 100755 index 0000000000000..5c2d022887c61 --- /dev/null +++ b/pylint-errors.sh @@ -0,0 +1,2 @@ +#!/bin/bash +pylint superset --errors-only diff --git a/run_tests.sh b/run_tests.sh index db7bda6b7dcd2..55760f633bb67 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -7,7 +7,6 @@ rm -f .coverage export SUPERSET_CONFIG=tests.superset_test_config set -e superset/bin/superset db upgrade -superset/bin/superset db upgrade # running twice on purpose as a test superset/bin/superset version -v python setup.py nosetests coveralls diff --git a/setup.py b/setup.py index d679cb7a32056..327c1615eff73 100644 --- a/setup.py +++ b/setup.py @@ -44,30 +44,31 @@ def get_git_sha(): install_requires=[ 'boto3==1.4.4', 'celery==3.1.23', - 'cryptography==1.5.3', + 'cryptography==1.7.2', 'flask-appbuilder==1.8.1', 'flask-cache==0.13.1', - 'flask-migrate==1.5.1', + 'flask-migrate==2.0.3', 'flask-script==2.0.5', - 'flask-testing==0.5.0', 'flask-sqlalchemy==2.0', + 'flask-testing==0.6.2', + 'flask-wtf==0.14.2', + 'future>=0.16.0, <0.17', 'humanize==0.5.1', - 'gunicorn==19.6.0', - 'markdown==2.6.6', - 'pandas==0.18.1', + 'gunicorn==19.7.1', + 'markdown==2.6.8', + 'pandas==0.19.2', 'parsedatetime==2.0.0', 'pydruid==0.3.1', - 'PyHive>=0.2.1', - 'python-dateutil==2.5.3', - 'requests==2.10.0', - 'simplejson==3.8.2', + 'PyHive>=0.3.0', + 'python-dateutil==2.6.0', + 'requests==2.13.0', + 'simplejson==3.10.0', 'six==1.10.0', - 'sqlalchemy==1.0.13', - 'sqlalchemy-utils==0.32.7', - 'sqlparse==0.1.19', + 'sqlalchemy==1.1.9', + 'sqlalchemy-utils==0.32.14', + 'sqlparse==0.2.3', 'thrift>=0.9.3', 'thrift-sasl>=0.2.1', - 'werkzeug==0.11.10', ], extras_require={ 'cors': ['Flask-Cors>=2.0.0'], diff --git a/superset/__init__.py b/superset/__init__.py index 8ab8ded5e80db..71cd4549f8261 100644 --- a/superset/__init__.py +++ b/superset/__init__.py @@ -5,37 +5,59 @@ from __future__ import unicode_literals import logging -import os from logging.handlers import TimedRotatingFileHandler +import json +import os + from flask import Flask, redirect from flask_appbuilder import SQLA, AppBuilder, IndexView from flask_appbuilder.baseviews import expose -from flask_cache import Cache from flask_migrate import Migrate -from superset.source_registry import SourceRegistry +from flask_wtf.csrf import CSRFProtect from werkzeug.contrib.fixers import ProxyFix -from superset import utils + +from superset.connectors.connector_registry import ConnectorRegistry +from superset import utils, config # noqa APP_DIR = os.path.dirname(__file__) CONFIG_MODULE = os.environ.get('SUPERSET_CONFIG', 'superset.config') +with open(APP_DIR + '/static/assets/backendSync.json', 'r') as f: + frontend_config = json.load(f) + + app = Flask(__name__) app.config.from_object(CONFIG_MODULE) conf = app.config +for bp in conf.get('BLUEPRINTS'): + try: + print("Registering blueprint: '{}'".format(bp.name)) + app.register_blueprint(bp) + except Exception as e: + print("blueprint registration failed") + logging.exception(e) + +if conf.get('SILENCE_FAB'): + logging.getLogger('flask_appbuilder').setLevel(logging.ERROR) + if not app.debug: # In production mode, add log handler to sys.stderr. app.logger.addHandler(logging.StreamHandler()) app.logger.setLevel(logging.INFO) +logging.getLogger('pyhive.presto').setLevel(logging.INFO) db = SQLA(app) +if conf.get('WTF_CSRF_ENABLED'): + csrf = CSRFProtect(app) utils.pessimistic_connection_handling(db.engine.pool) -cache = Cache(app, config=app.config.get('CACHE_CONFIG')) +cache = utils.setup_cache(app, conf.get('CACHE_CONFIG')) +tables_cache = utils.setup_cache(app, conf.get('TABLE_NAMES_CACHE_CONFIG')) migrate = Migrate(app, db, directory=APP_DIR + "/migrations") @@ -87,6 +109,6 @@ def index(self): # Registering sources module_datasource_map = app.config.get("DEFAULT_MODULE_DS_MAP") module_datasource_map.update(app.config.get("ADDITIONAL_MODULE_DS_MAP")) -SourceRegistry.register_sources(module_datasource_map) +ConnectorRegistry.register_sources(module_datasource_map) -from superset import views, config # noqa +from superset import views # noqa diff --git a/superset/assets/.eslintignore b/superset/assets/.eslintignore index b282235ac088f..7479173e66935 100644 --- a/superset/assets/.eslintignore +++ b/superset/assets/.eslintignore @@ -7,3 +7,4 @@ node_modules/* node_modules*/* stylesheets/* vendor/* +docs/* diff --git a/superset/assets/.eslintrc b/superset/assets/.eslintrc index 95137e26dbf7b..c8b076604cfe6 100644 --- a/superset/assets/.eslintrc +++ b/superset/assets/.eslintrc @@ -5,6 +5,9 @@ "experimentalObjectRestSpread": true } }, + "globals": { + "document": true, + }, "rules": { "prefer-template": 0, "new-cap": 0, @@ -14,5 +17,26 @@ "func-names": 0, "react/jsx-no-bind": 0, "no-confusing-arrow": 0, + + "jsx-a11y/no-static-element-interactions": 0, + "jsx-a11y/anchor-has-content": 0, + "react/require-default-props": 0, + "no-plusplus": 0, + "no-mixed-operators": 0, + "no-continue": 0, + "no-bitwise": 0, + "no-undef": 0, + "no-multi-assign": 0, + "react/no-array-index-key": 0, + "no-restricted-properties": 0, + "no-prototype-builtins": 0, + "jsx-a11y/href-no-hash": 0, + "react/forbid-prop-types": 0, + "class-methods-use-this": 0, + "import/no-named-as-default": 0, + "import/prefer-default-export": 0, + "react/no-unescaped-entities": 0, + "react/no-unused-prop-types": 0, + "react/no-string-refs": 0, } } diff --git a/superset/assets/backendSync.json b/superset/assets/backendSync.json new file mode 100644 index 0000000000000..1d8ba55fa746d --- /dev/null +++ b/superset/assets/backendSync.json @@ -0,0 +1,2368 @@ +{ + "controls": { + "datasource": { + "type": "SelectControl", + "label": "Datasource", + "isLoading": true, + "clearable": false, + "default": null, + "description": "" + }, + "viz_type": { + "type": "SelectControl", + "label": "Visualization Type", + "clearable": false, + "default": "table", + "choices": [ + [ + "dist_bar", + "Distribution - Bar Chart", + "/static/assets/images/viz_thumbnails/dist_bar.png" + ], + [ + "pie", + "Pie Chart", + "/static/assets/images/viz_thumbnails/pie.png" + ], + [ + "line", + "Time Series - Line Chart", + "/static/assets/images/viz_thumbnails/line.png" + ], + [ + "dual_line", + "Time Series - Dual Axis Line Chart", + "/static/assets/images/viz_thumbnails/dual_line.png" + ], + [ + "bar", + "Time Series - Bar Chart", + "/static/assets/images/viz_thumbnails/bar.png" + ], + [ + "compare", + "Time Series - Percent Change", + "/static/assets/images/viz_thumbnails/compare.png" + ], + [ + "area", + "Time Series - Stacked", + "/static/assets/images/viz_thumbnails/area.png" + ], + [ + "table", + "Table View", + "/static/assets/images/viz_thumbnails/table.png" + ], + [ + "markup", + "Markup", + "/static/assets/images/viz_thumbnails/markup.png" + ], + [ + "pivot_table", + "Pivot Table", + "/static/assets/images/viz_thumbnails/pivot_table.png" + ], + [ + "separator", + "Separator", + "/static/assets/images/viz_thumbnails/separator.png" + ], + [ + "word_cloud", + "Word Cloud", + "/static/assets/images/viz_thumbnails/word_cloud.png" + ], + [ + "treemap", + "Treemap", + "/static/assets/images/viz_thumbnails/treemap.png" + ], + [ + "cal_heatmap", + "Calendar Heatmap", + "/static/assets/images/viz_thumbnails/cal_heatmap.png" + ], + [ + "box_plot", + "Box Plot", + "/static/assets/images/viz_thumbnails/box_plot.png" + ], + [ + "bubble", + "Bubble Chart", + "/static/assets/images/viz_thumbnails/bubble.png" + ], + [ + "bullet", + "Bullet Chart", + "/static/assets/images/viz_thumbnails/bullet.png" + ], + [ + "big_number", + "Big Number with Trendline", + "/static/assets/images/viz_thumbnails/big_number.png" + ], + [ + "big_number_total", + "Big Number", + "/static/assets/images/viz_thumbnails/big_number_total.png" + ], + [ + "histogram", + "Histogram", + "/static/assets/images/viz_thumbnails/histogram.png" + ], + [ + "sunburst", + "Sunburst", + "/static/assets/images/viz_thumbnails/sunburst.png" + ], + [ + "sankey", + "Sankey", + "/static/assets/images/viz_thumbnails/sankey.png" + ], + [ + "directed_force", + "Directed Force Layout", + "/static/assets/images/viz_thumbnails/directed_force.png" + ], + [ + "country_map", + "Country Map", + "/static/assets/images/viz_thumbnails/country_map.png" + ], + [ + "world_map", + "World Map", + "/static/assets/images/viz_thumbnails/world_map.png" + ], + [ + "filter_box", + "Filter Box", + "/static/assets/images/viz_thumbnails/filter_box.png" + ], + [ + "iframe", + "iFrame", + "/static/assets/images/viz_thumbnails/iframe.png" + ], + [ + "para", + "Parallel Coordinates", + "/static/assets/images/viz_thumbnails/para.png" + ], + [ + "heatmap", + "Heatmap", + "/static/assets/images/viz_thumbnails/heatmap.png" + ], + [ + "horizon", + "Horizon", + "/static/assets/images/viz_thumbnails/horizon.png" + ], + [ + "mapbox", + "Mapbox", + "/static/assets/images/viz_thumbnails/mapbox.png" + ] + ], + "description": "The type of visualization to display" + }, + "metrics": { + "type": "SelectControl", + "multi": true, + "label": "Metrics", + "validators": [ + null + ], + "description": "One or many metrics to display" + }, + "order_by_cols": { + "type": "SelectControl", + "multi": true, + "label": "Ordering", + "default": [], + "description": "One or many metrics to display" + }, + "metric": { + "type": "SelectControl", + "label": "Metric", + "clearable": false, + "description": "Choose the metric" + }, + "metric_2": { + "type": "SelectControl", + "label": "Right Axis Metric", + "choices": [], + "default": [], + "description": "Choose a metric for right axis" + }, + "stacked_style": { + "type": "SelectControl", + "label": "Stacked Style", + "choices": [ + [ + "stack", + "stack" + ], + [ + "stream", + "stream" + ], + [ + "expand", + "expand" + ] + ], + "default": "stack", + "description": "" + }, + "linear_color_scheme": { + "type": "SelectControl", + "label": "Linear Color Scheme", + "choices": [ + [ + "fire", + "fire" + ], + [ + "blue_white_yellow", + "blue/white/yellow" + ], + [ + "white_black", + "white/black" + ], + [ + "black_white", + "black/white" + ] + ], + "default": "blue_white_yellow", + "description": "" + }, + "normalize_across": { + "type": "SelectControl", + "label": "Normalize Across", + "choices": [ + [ + "heatmap", + "heatmap" + ], + [ + "x", + "x" + ], + [ + "y", + "y" + ] + ], + "default": "heatmap", + "description": "Color will be rendered based on a ratio of the cell against the sum of across this criteria" + }, + "horizon_color_scale": { + "type": "SelectControl", + "label": "Horizon Color Scale", + "choices": [ + [ + "series", + "series" + ], + [ + "overall", + "overall" + ], + [ + "change", + "change" + ] + ], + "default": "series", + "description": "Defines how the color are attributed." + }, + "canvas_image_rendering": { + "type": "SelectControl", + "label": "Rendering", + "choices": [ + [ + "pixelated", + "pixelated (Sharp)" + ], + [ + "auto", + "auto (Smooth)" + ] + ], + "default": "pixelated", + "description": "image-rendering CSS attribute of the canvas object that defines how the browser scales up the image" + }, + "xscale_interval": { + "type": "SelectControl", + "label": "XScale Interval", + "choices": [ + [ + 1, + "1" + ], + [ + 2, + "2" + ], + [ + 3, + "3" + ], + [ + 4, + "4" + ], + [ + 5, + "5" + ], + [ + 6, + "6" + ], + [ + 7, + "7" + ], + [ + 8, + "8" + ], + [ + 9, + "9" + ], + [ + 10, + "10" + ], + [ + 11, + "11" + ], + [ + 12, + "12" + ], + [ + 13, + "13" + ], + [ + 14, + "14" + ], + [ + 15, + "15" + ], + [ + 16, + "16" + ], + [ + 17, + "17" + ], + [ + 18, + "18" + ], + [ + 19, + "19" + ], + [ + 20, + "20" + ], + [ + 21, + "21" + ], + [ + 22, + "22" + ], + [ + 23, + "23" + ], + [ + 24, + "24" + ], + [ + 25, + "25" + ], + [ + 26, + "26" + ], + [ + 27, + "27" + ], + [ + 28, + "28" + ], + [ + 29, + "29" + ], + [ + 30, + "30" + ], + [ + 31, + "31" + ], + [ + 32, + "32" + ], + [ + 33, + "33" + ], + [ + 34, + "34" + ], + [ + 35, + "35" + ], + [ + 36, + "36" + ], + [ + 37, + "37" + ], + [ + 38, + "38" + ], + [ + 39, + "39" + ], + [ + 40, + "40" + ], + [ + 41, + "41" + ], + [ + 42, + "42" + ], + [ + 43, + "43" + ], + [ + 44, + "44" + ], + [ + 45, + "45" + ], + [ + 46, + "46" + ], + [ + 47, + "47" + ], + [ + 48, + "48" + ], + [ + 49, + "49" + ], + [ + 50, + "50" + ] + ], + "default": "1", + "description": "Number of steps to take between ticks when displaying the X scale" + }, + "yscale_interval": { + "type": "SelectControl", + "label": "YScale Interval", + "choices": [ + [ + 1, + "1" + ], + [ + 2, + "2" + ], + [ + 3, + "3" + ], + [ + 4, + "4" + ], + [ + 5, + "5" + ], + [ + 6, + "6" + ], + [ + 7, + "7" + ], + [ + 8, + "8" + ], + [ + 9, + "9" + ], + [ + 10, + "10" + ], + [ + 11, + "11" + ], + [ + 12, + "12" + ], + [ + 13, + "13" + ], + [ + 14, + "14" + ], + [ + 15, + "15" + ], + [ + 16, + "16" + ], + [ + 17, + "17" + ], + [ + 18, + "18" + ], + [ + 19, + "19" + ], + [ + 20, + "20" + ], + [ + 21, + "21" + ], + [ + 22, + "22" + ], + [ + 23, + "23" + ], + [ + 24, + "24" + ], + [ + 25, + "25" + ], + [ + 26, + "26" + ], + [ + 27, + "27" + ], + [ + 28, + "28" + ], + [ + 29, + "29" + ], + [ + 30, + "30" + ], + [ + 31, + "31" + ], + [ + 32, + "32" + ], + [ + 33, + "33" + ], + [ + 34, + "34" + ], + [ + 35, + "35" + ], + [ + 36, + "36" + ], + [ + 37, + "37" + ], + [ + 38, + "38" + ], + [ + 39, + "39" + ], + [ + 40, + "40" + ], + [ + 41, + "41" + ], + [ + 42, + "42" + ], + [ + 43, + "43" + ], + [ + 44, + "44" + ], + [ + 45, + "45" + ], + [ + 46, + "46" + ], + [ + 47, + "47" + ], + [ + 48, + "48" + ], + [ + 49, + "49" + ], + [ + 50, + "50" + ] + ], + "default": null, + "description": "Number of steps to take between ticks when displaying the Y scale" + }, + "include_time": { + "type": "CheckboxControl", + "label": "Include Time", + "description": "Whether to include the time granularity as defined in the time section", + "default": false + }, + "bar_stacked": { + "type": "CheckboxControl", + "label": "Stacked Bars", + "renderTrigger": true, + "default": false, + "description": null + }, + "show_markers": { + "type": "CheckboxControl", + "label": "Show Markers", + "renderTrigger": true, + "default": false, + "description": "Show data points as circle markers on the lines" + }, + "show_bar_value": { + "type": "CheckboxControl", + "label": "Bar Values", + "default": false, + "renderTrigger": true, + "description": "Show the value on top of the bar" + }, + "order_bars": { + "type": "CheckboxControl", + "label": "Sort Bars", + "default": false, + "description": "Sort bars by x labels." + }, + "show_controls": { + "type": "CheckboxControl", + "label": "Extra Controls", + "renderTrigger": true, + "default": false, + "description": "Whether to show extra controls or not. Extra controls include things like making mulitBar charts stacked or side by side." + }, + "reduce_x_ticks": { + "type": "CheckboxControl", + "label": "Reduce X ticks", + "renderTrigger": true, + "default": false, + "description": "Reduces the number of X axis ticks to be rendered. If true, the x axis wont overflow and labels may be missing. If false, a minimum width will be applied to columns and the width may overflow into an horizontal scroll." + }, + "include_series": { + "type": "CheckboxControl", + "label": "Include Series", + "renderTrigger": true, + "default": false, + "description": "Include series name as an axis" + }, + "secondary_metric": { + "type": "SelectControl", + "label": "Color Metric", + "default": null, + "description": "A metric to use for color" + }, + "select_country": { + "type": "SelectControl", + "label": "Country Name Type", + "default": "France", + "choices": [ + [ + "Algeria", + "Algeria" + ], + [ + "Belgium", + "Belgium" + ], + [ + "Brasil", + "Brasil" + ], + [ + "China", + "China" + ], + [ + "Germany", + "Germany" + ], + [ + "Egypt", + "Egypt" + ], + [ + "France", + "France" + ], + [ + "Italy", + "Italy" + ], + [ + "Morocco", + "Morocco" + ], + [ + "Nederlanden", + "Nederlanden" + ], + [ + "Russia", + "Russia" + ], + [ + "Singapore", + "Singapore" + ], + [ + "Spain", + "Spain" + ], + [ + "Uk", + "Uk" + ], + [ + "Usa", + "Usa" + ] + ], + "description": "The name of country that Superset should display" + }, + "country_fieldtype": { + "type": "SelectControl", + "label": "Country Field Type", + "default": "cca2", + "choices": [ + [ + "name", + "Full name" + ], + [ + "cioc", + "code International Olympic Committee (cioc)" + ], + [ + "cca2", + "code ISO 3166-1 alpha-2 (cca2)" + ], + [ + "cca3", + "code ISO 3166-1 alpha-3 (cca3)" + ] + ], + "description": "The country code standard that Superset should expect to find in the [country] column" + }, + "groupby": { + "type": "SelectControl", + "multi": true, + "label": "Group by", + "default": [], + "description": "One or many controls to group by" + }, + "columns": { + "type": "SelectControl", + "multi": true, + "label": "Columns", + "default": [], + "description": "One or many controls to pivot as columns" + }, + "all_columns": { + "type": "SelectControl", + "multi": true, + "label": "Columns", + "default": [], + "description": "Columns to display" + }, + "all_columns_x": { + "type": "SelectControl", + "label": "X", + "default": null, + "description": "Columns to display" + }, + "all_columns_y": { + "type": "SelectControl", + "label": "Y", + "default": null, + "description": "Columns to display" + }, + "druid_time_origin": { + "type": "SelectControl", + "freeForm": true, + "label": "Origin", + "choices": [ + [ + "", + "default" + ], + [ + "now", + "now" + ] + ], + "default": null, + "description": "Defines the origin where time buckets start, accepts natural dates as in `now`, `sunday` or `1970-01-01`" + }, + "bottom_margin": { + "type": "SelectControl", + "freeForm": true, + "label": "Bottom Margin", + "choices": [ + [ + "auto", + "auto" + ], + [ + 50, + "50" + ], + [ + 75, + "75" + ], + [ + 100, + "100" + ], + [ + 125, + "125" + ], + [ + 150, + "150" + ], + [ + 200, + "200" + ] + ], + "default": "auto", + "description": "Bottom marging, in pixels, allowing for more room for axis labels" + }, + "granularity": { + "type": "SelectControl", + "freeForm": true, + "label": "Time Granularity", + "default": "one day", + "choices": [ + [ + "all", + "all" + ], + [ + "5 seconds", + "5 seconds" + ], + [ + "30 seconds", + "30 seconds" + ], + [ + "1 minute", + "1 minute" + ], + [ + "5 minutes", + "5 minutes" + ], + [ + "1 hour", + "1 hour" + ], + [ + "6 hour", + "6 hour" + ], + [ + "1 day", + "1 day" + ], + [ + "7 days", + "7 days" + ], + [ + "week", + "week" + ], + [ + "week_starting_sunday", + "week_starting_sunday" + ], + [ + "week_ending_saturday", + "week_ending_saturday" + ], + [ + "month", + "month" + ] + ], + "description": "The time granularity for the visualization. Note that you can type and use simple natural language as in `10 seconds`, `1 day` or `56 weeks`" + }, + "domain_granularity": { + "type": "SelectControl", + "label": "Domain", + "default": "month", + "choices": [ + [ + "hour", + "hour" + ], + [ + "day", + "day" + ], + [ + "week", + "week" + ], + [ + "month", + "month" + ], + [ + "year", + "year" + ] + ], + "description": "The time unit used for the grouping of blocks" + }, + "subdomain_granularity": { + "type": "SelectControl", + "label": "Subdomain", + "default": "day", + "choices": [ + [ + "min", + "min" + ], + [ + "hour", + "hour" + ], + [ + "day", + "day" + ], + [ + "week", + "week" + ], + [ + "month", + "month" + ] + ], + "description": "The time unit for each block. Should be a smaller unit than domain_granularity. Should be larger or equal to Time Grain" + }, + "link_length": { + "type": "SelectControl", + "freeForm": true, + "label": "Link Length", + "default": "200", + "choices": [ + [ + "10", + "10" + ], + [ + "25", + "25" + ], + [ + "50", + "50" + ], + [ + "75", + "75" + ], + [ + "100", + "100" + ], + [ + "150", + "150" + ], + [ + "200", + "200" + ], + [ + "250", + "250" + ] + ], + "description": "Link length in the force layout" + }, + "charge": { + "type": "SelectControl", + "freeForm": true, + "label": "Charge", + "default": "-500", + "choices": [ + [ + "-50", + "-50" + ], + [ + "-75", + "-75" + ], + [ + "-100", + "-100" + ], + [ + "-150", + "-150" + ], + [ + "-200", + "-200" + ], + [ + "-250", + "-250" + ], + [ + "-500", + "-500" + ], + [ + "-1000", + "-1000" + ], + [ + "-2500", + "-2500" + ], + [ + "-5000", + "-5000" + ] + ], + "description": "Charge in the force layout" + }, + "granularity_sqla": { + "type": "SelectControl", + "label": "Time Column", + "description": "The time column for the visualization. Note that you can define arbitrary expression that return a DATETIME column in the table or. Also note that the filter below is applied against this column or expression" + }, + "time_grain_sqla": { + "type": "SelectControl", + "label": "Time Grain", + "description": "The time granularity for the visualization. This applies a date transformation to alter your time column and defines a new time granularity. The options here are defined on a per database engine basis in the Superset source code." + }, + "resample_rule": { + "type": "SelectControl", + "freeForm": true, + "label": "Resample Rule", + "default": null, + "choices": [ + [ + "", + "" + ], + [ + "1T", + "1T" + ], + [ + "1H", + "1H" + ], + [ + "1D", + "1D" + ], + [ + "7D", + "7D" + ], + [ + "1M", + "1M" + ], + [ + "1AS", + "1AS" + ] + ], + "description": "Pandas resample rule" + }, + "resample_how": { + "type": "SelectControl", + "freeForm": true, + "label": "Resample How", + "default": null, + "choices": [ + [ + "", + "" + ], + [ + "mean", + "mean" + ], + [ + "sum", + "sum" + ], + [ + "median", + "median" + ] + ], + "description": "Pandas resample how" + }, + "resample_fillmethod": { + "type": "SelectControl", + "freeForm": true, + "label": "Resample Fill Method", + "default": null, + "choices": [ + [ + "", + "" + ], + [ + "ffill", + "ffill" + ], + [ + "bfill", + "bfill" + ] + ], + "description": "Pandas resample fill method" + }, + "since": { + "type": "SelectControl", + "freeForm": true, + "label": "Since", + "default": "7 days ago", + "choices": [ + [ + "1 hour ago", + "1 hour ago" + ], + [ + "12 hours ago", + "12 hours ago" + ], + [ + "1 day ago", + "1 day ago" + ], + [ + "7 days ago", + "7 days ago" + ], + [ + "28 days ago", + "28 days ago" + ], + [ + "90 days ago", + "90 days ago" + ], + [ + "1 year ago", + "1 year ago" + ], + [ + "100 year ago", + "100 year ago" + ] + ], + "description": "Timestamp from filter. This supports free form typing and natural language as in `1 day ago`, `28 days` or `3 years`" + }, + "until": { + "type": "SelectControl", + "freeForm": true, + "label": "Until", + "default": "now", + "choices": [ + [ + "now", + "now" + ], + [ + "1 day ago", + "1 day ago" + ], + [ + "7 days ago", + "7 days ago" + ], + [ + "28 days ago", + "28 days ago" + ], + [ + "90 days ago", + "90 days ago" + ], + [ + "1 year ago", + "1 year ago" + ] + ] + }, + "max_bubble_size": { + "type": "SelectControl", + "freeForm": true, + "label": "Max Bubble Size", + "default": "25", + "choices": [ + [ + "5", + "5" + ], + [ + "10", + "10" + ], + [ + "15", + "15" + ], + [ + "25", + "25" + ], + [ + "50", + "50" + ], + [ + "75", + "75" + ], + [ + "100", + "100" + ] + ] + }, + "whisker_options": { + "type": "SelectControl", + "freeForm": true, + "label": "Whisker/outlier options", + "default": "Tukey", + "description": "Determines how whiskers and outliers are calculated.", + "choices": [ + [ + "Tukey", + "Tukey" + ], + [ + "Min/max (no outliers)", + "Min/max (no outliers)" + ], + [ + "2/98 percentiles", + "2/98 percentiles" + ], + [ + "9/91 percentiles", + "9/91 percentiles" + ] + ] + }, + "treemap_ratio": { + "type": "TextControl", + "label": "Ratio", + "isFloat": true, + "default": 1.618033988749895, + "description": "Target aspect ratio for treemap tiles." + }, + "number_format": { + "type": "SelectControl", + "freeForm": true, + "label": "Number format", + "renderTrigger": true, + "default": ".3s", + "choices": [ + [ + ".3s", + ".3s | 12.3k" + ], + [ + ".3%", + ".3% | 1234543.210%" + ], + [ + ".4r", + ".4r | 12350" + ], + [ + ".3f", + ".3f | 12345.432" + ], + [ + "+,", + "+, | +12,345.4321" + ], + [ + "$,.2f", + "$,.2f | $12,345.43" + ] + ], + "description": "D3 format syntax: https://github.com/d3/d3-format" + }, + "row_limit": { + "type": "SelectControl", + "freeForm": true, + "label": "Row limit", + "default": null, + "choices": [ + [ + 10, + "10" + ], + [ + 50, + "50" + ], + [ + 100, + "100" + ], + [ + 250, + "250" + ], + [ + 500, + "500" + ], + [ + 1000, + "1000" + ], + [ + 5000, + "5000" + ], + [ + 10000, + "10000" + ], + [ + 50000, + "50000" + ] + ] + }, + "limit": { + "type": "SelectControl", + "freeForm": true, + "label": "Series limit", + "choices": [ + [ + 0, + "0" + ], + [ + 5, + "5" + ], + [ + 10, + "10" + ], + [ + 25, + "25" + ], + [ + 50, + "50" + ], + [ + 100, + "100" + ], + [ + 500, + "500" + ] + ], + "default": 50, + "description": "Limits the number of time series that get displayed" + }, + "timeseries_limit_metric": { + "type": "SelectControl", + "label": "Sort By", + "default": null, + "description": "Metric used to define the top series" + }, + "rolling_type": { + "type": "SelectControl", + "label": "Rolling", + "default": "None", + "choices": [ + [ + "None", + "None" + ], + [ + "mean", + "mean" + ], + [ + "sum", + "sum" + ], + [ + "std", + "std" + ], + [ + "cumsum", + "cumsum" + ] + ], + "description": "Defines a rolling window function to apply, works along with the [Periods] text box" + }, + "rolling_periods": { + "type": "TextControl", + "label": "Periods", + "isInt": true, + "description": "Defines the size of the rolling window function, relative to the time granularity selected" + }, + "series": { + "type": "SelectControl", + "label": "Series", + "default": null, + "description": "Defines the grouping of entities. Each series is shown as a specific color on the chart and has a legend toggle" + }, + "entity": { + "type": "SelectControl", + "label": "Entity", + "default": null, + "description": "This define the element to be plotted on the chart" + }, + "x": { + "type": "SelectControl", + "label": "X Axis", + "default": null, + "description": "Metric assigned to the [X] axis" + }, + "y": { + "type": "SelectControl", + "label": "Y Axis", + "default": null, + "description": "Metric assigned to the [Y] axis" + }, + "size": { + "type": "SelectControl", + "label": "Bubble Size", + "default": null + }, + "url": { + "type": "TextControl", + "label": "URL", + "description": "The URL, this control is templated, so you can integrate {{ width }} and/or {{ height }} in your URL string.", + "default": "https://www.youtube.com/embed/AdSZJzb-aX8" + }, + "x_axis_label": { + "type": "TextControl", + "label": "X Axis Label", + "renderTrigger": true, + "default": "" + }, + "y_axis_label": { + "type": "TextControl", + "label": "Y Axis Label", + "renderTrigger": true, + "default": "" + }, + "where": { + "type": "TextControl", + "label": "Custom WHERE clause", + "default": "", + "description": "The text in this box gets included in your query's WHERE clause, as an AND to other criteria. You can include complex expression, parenthesis and anything else supported by the backend it is directed towards." + }, + "having": { + "type": "TextControl", + "label": "Custom HAVING clause", + "default": "", + "description": "The text in this box gets included in your query's HAVING clause, as an AND to other criteria. You can include complex expression, parenthesis and anything else supported by the backend it is directed towards." + }, + "compare_lag": { + "type": "TextControl", + "label": "Comparison Period Lag", + "isInt": true, + "description": "Based on granularity, number of time periods to compare against" + }, + "compare_suffix": { + "type": "TextControl", + "label": "Comparison suffix", + "description": "Suffix to apply after the percentage display" + }, + "table_timestamp_format": { + "type": "SelectControl", + "freeForm": true, + "label": "Table Timestamp Format", + "default": "smart_date", + "choices": [ + [ + "smart_date", + "Adaptative formating" + ], + [ + "%m/%d/%Y", + "%m/%d/%Y | 01/14/2019" + ], + [ + "%Y-%m-%d", + "%Y-%m-%d | 2019-01-14" + ], + [ + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %H:%M:%S | 2019-01-14 01:32:10" + ], + [ + "%H:%M:%S", + "%H:%M:%S | 01:32:10" + ] + ], + "description": "Timestamp Format" + }, + "series_height": { + "type": "SelectControl", + "freeForm": true, + "label": "Series Height", + "default": "25", + "choices": [ + [ + "10", + "10" + ], + [ + "25", + "25" + ], + [ + "40", + "40" + ], + [ + "50", + "50" + ], + [ + "75", + "75" + ], + [ + "100", + "100" + ], + [ + "150", + "150" + ], + [ + "200", + "200" + ] + ], + "description": "Pixel height of each series" + }, + "page_length": { + "type": "SelectControl", + "freeForm": true, + "label": "Page Length", + "default": 0, + "choices": [ + [ + 0, + "0" + ], + [ + 10, + "10" + ], + [ + 25, + "25" + ], + [ + 40, + "40" + ], + [ + 50, + "50" + ], + [ + 75, + "75" + ], + [ + 100, + "100" + ], + [ + 150, + "150" + ], + [ + 200, + "200" + ] + ], + "description": "Rows per page, 0 means no pagination" + }, + "x_axis_format": { + "type": "SelectControl", + "freeForm": true, + "label": "X axis format", + "renderTrigger": true, + "default": "smart_date", + "choices": [ + [ + "smart_date", + "Adaptative formating" + ], + [ + "%m/%d/%Y", + "%m/%d/%Y | 01/14/2019" + ], + [ + "%Y-%m-%d", + "%Y-%m-%d | 2019-01-14" + ], + [ + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %H:%M:%S | 2019-01-14 01:32:10" + ], + [ + "%H:%M:%S", + "%H:%M:%S | 01:32:10" + ] + ], + "description": "D3 format syntax: https://github.com/d3/d3-format" + }, + "y_axis_format": { + "type": "SelectControl", + "freeForm": true, + "label": "Y axis format", + "renderTrigger": true, + "default": ".3s", + "choices": [ + [ + ".3s", + ".3s | 12.3k" + ], + [ + ".3%", + ".3% | 1234543.210%" + ], + [ + ".4r", + ".4r | 12350" + ], + [ + ".3f", + ".3f | 12345.432" + ], + [ + "+,", + "+, | +12,345.4321" + ], + [ + "$,.2f", + "$,.2f | $12,345.43" + ] + ], + "description": "D3 format syntax: https://github.com/d3/d3-format" + }, + "y_axis_2_format": { + "type": "SelectControl", + "freeForm": true, + "label": "Right axis format", + "default": ".3s", + "choices": [ + [ + ".3s", + ".3s | 12.3k" + ], + [ + ".3%", + ".3% | 1234543.210%" + ], + [ + ".4r", + ".4r | 12350" + ], + [ + ".3f", + ".3f | 12345.432" + ], + [ + "+,", + "+, | +12,345.4321" + ], + [ + "$,.2f", + "$,.2f | $12,345.43" + ] + ], + "description": "D3 format syntax: https://github.com/d3/d3-format" + }, + "markup_type": { + "type": "SelectControl", + "label": "Markup Type", + "choices": [ + [ + "markdown", + "markdown" + ], + [ + "html", + "html" + ] + ], + "default": "markdown", + "description": "Pick your favorite markup language" + }, + "rotation": { + "type": "SelectControl", + "label": "Rotation", + "choices": [ + [ + "random", + "random" + ], + [ + "flat", + "flat" + ], + [ + "square", + "square" + ] + ], + "default": "random", + "description": "Rotation to apply to words in the cloud" + }, + "line_interpolation": { + "type": "SelectControl", + "label": "Line Style", + "renderTrigger": true, + "choices": [ + [ + "linear", + "linear" + ], + [ + "basis", + "basis" + ], + [ + "cardinal", + "cardinal" + ], + [ + "monotone", + "monotone" + ], + [ + "step-before", + "step-before" + ], + [ + "step-after", + "step-after" + ] + ], + "default": "linear", + "description": "Line interpolation as defined by d3.js" + }, + "pie_label_type": { + "type": "SelectControl", + "label": "Label Type", + "default": "key", + "choices": [ + [ + "key", + "Category Name" + ], + [ + "value", + "Value" + ], + [ + "percent", + "Percentage" + ] + ], + "description": "What should be shown on the label?" + }, + "code": { + "type": "TextAreaControl", + "label": "Code", + "description": "Put your code here", + "default": "" + }, + "pandas_aggfunc": { + "type": "SelectControl", + "label": "Aggregation function", + "clearable": false, + "choices": [ + [ + "sum", + "sum" + ], + [ + "mean", + "mean" + ], + [ + "min", + "min" + ], + [ + "max", + "max" + ], + [ + "median", + "median" + ], + [ + "stdev", + "stdev" + ], + [ + "var", + "var" + ] + ], + "default": "sum", + "description": "Aggregate function to apply when pivoting and computing the total rows and columns" + }, + "size_from": { + "type": "TextControl", + "isInt": true, + "label": "Font Size From", + "default": "20", + "description": "Font size for the smallest value in the list" + }, + "size_to": { + "type": "TextControl", + "isInt": true, + "label": "Font Size To", + "default": "150", + "description": "Font size for the biggest value in the list" + }, + "instant_filtering": { + "type": "CheckboxControl", + "label": "Instant Filtering", + "renderTrigger": true, + "default": true, + "description": "Whether to apply filters as they change, or wait forusers to hit an [Apply] button" + }, + "show_brush": { + "type": "CheckboxControl", + "label": "Range Filter", + "renderTrigger": true, + "default": false, + "description": "Whether to display the time range interactive selector" + }, + "date_filter": { + "type": "CheckboxControl", + "label": "Date Filter", + "default": false, + "description": "Whether to include a time filter" + }, + "show_datatable": { + "type": "CheckboxControl", + "label": "Data Table", + "default": false, + "description": "Whether to display the interactive data table" + }, + "include_search": { + "type": "CheckboxControl", + "label": "Search Box", + "renderTrigger": true, + "default": false, + "description": "Whether to include a client side search box" + }, + "table_filter": { + "type": "CheckboxControl", + "label": "Table Filter", + "default": false, + "description": "Whether to apply filter when table cell is clicked" + }, + "show_bubbles": { + "type": "CheckboxControl", + "label": "Show Bubbles", + "default": false, + "renderTrigger": true, + "description": "Whether to display bubbles on top of countries" + }, + "show_legend": { + "type": "CheckboxControl", + "label": "Legend", + "renderTrigger": true, + "default": true, + "description": "Whether to display the legend (toggles)" + }, + "x_axis_showminmax": { + "type": "CheckboxControl", + "label": "X bounds", + "renderTrigger": true, + "default": true, + "description": "Whether to display the min and max values of the X axis" + }, + "rich_tooltip": { + "type": "CheckboxControl", + "label": "Rich Tooltip", + "renderTrigger": true, + "default": true, + "description": "The rich tooltip shows a list of all series for that point in time" + }, + "y_axis_zero": { + "type": "CheckboxControl", + "label": "Y Axis Zero", + "default": false, + "renderTrigger": true, + "description": "Force the Y axis to start at 0 instead of the minimum value" + }, + "y_log_scale": { + "type": "CheckboxControl", + "label": "Y Log Scale", + "default": false, + "renderTrigger": true, + "description": "Use a log scale for the Y axis" + }, + "x_log_scale": { + "type": "CheckboxControl", + "label": "X Log Scale", + "default": false, + "renderTrigger": true, + "description": "Use a log scale for the X axis" + }, + "donut": { + "type": "CheckboxControl", + "label": "Donut", + "default": false, + "description": "Do you want a donut or a pie?" + }, + "labels_outside": { + "type": "CheckboxControl", + "label": "Put labels outside", + "default": true, + "description": "Put the labels outside the pie?" + }, + "contribution": { + "type": "CheckboxControl", + "label": "Contribution", + "default": false, + "description": "Compute the contribution to the total" + }, + "num_period_compare": { + "type": "TextControl", + "label": "Period Ratio", + "default": "", + "isInt": true, + "description": "[integer] Number of period to compare against, this is relative to the granularity selected" + }, + "period_ratio_type": { + "type": "SelectControl", + "label": "Period Ratio Type", + "default": "growth", + "choices": [ + [ + "factor", + "factor" + ], + [ + "growth", + "growth" + ], + [ + "value", + "value" + ] + ], + "description": "`factor` means (new/previous), `growth` is ((new/previous) - 1), `value` is (new-previous)" + }, + "time_compare": { + "type": "TextControl", + "label": "Time Shift", + "default": null, + "description": "Overlay a timeseries from a relative time period. Expects relative time delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days)" + }, + "subheader": { + "type": "TextControl", + "label": "Subheader", + "description": "Description text that shows up below your Big Number" + }, + "mapbox_label": { + "type": "SelectControl", + "multi": true, + "label": "label", + "default": [], + "description": "`count` is COUNT(*) if a group by is used. Numerical columns will be aggregated with the aggregator. Non-numerical columns will be used to label points. Leave empty to get a count of points in each cluster." + }, + "mapbox_style": { + "type": "SelectControl", + "label": "Map Style", + "choices": [ + [ + "mapbox://styles/mapbox/streets-v9", + "Streets" + ], + [ + "mapbox://styles/mapbox/dark-v9", + "Dark" + ], + [ + "mapbox://styles/mapbox/light-v9", + "Light" + ], + [ + "mapbox://styles/mapbox/satellite-streets-v9", + "Satellite Streets" + ], + [ + "mapbox://styles/mapbox/satellite-v9", + "Satellite" + ], + [ + "mapbox://styles/mapbox/outdoors-v9", + "Outdoors" + ] + ], + "default": "mapbox://styles/mapbox/streets-v9", + "description": "Base layer map style" + }, + "clustering_radius": { + "type": "SelectControl", + "freeForm": true, + "label": "Clustering Radius", + "default": "60", + "choices": [ + [ + "0", + "0" + ], + [ + "20", + "20" + ], + [ + "40", + "40" + ], + [ + "60", + "60" + ], + [ + "80", + "80" + ], + [ + "100", + "100" + ], + [ + "200", + "200" + ], + [ + "500", + "500" + ], + [ + "1000", + "1000" + ] + ], + "description": "The radius (in pixels) the algorithm uses to define a cluster. Choose 0 to turn off clustering, but beware that a large number of points (>1000) will cause lag." + }, + "point_radius": { + "type": "SelectControl", + "label": "Point Radius", + "default": "Auto", + "description": "The radius of individual points (ones that are not in a cluster). Either a numerical column or `Auto`, which scales the point based on the largest cluster" + }, + "point_radius_unit": { + "type": "SelectControl", + "label": "Point Radius Unit", + "default": "Pixels", + "choices": [ + [ + "Pixels", + "Pixels" + ], + [ + "Miles", + "Miles" + ], + [ + "Kilometers", + "Kilometers" + ] + ], + "description": "The unit of measure for the specified point radius" + }, + "global_opacity": { + "type": "TextControl", + "label": "Opacity", + "default": 1, + "isFloat": true, + "description": "Opacity of all clusters, points, and labels. Between 0 and 1." + }, + "viewport_zoom": { + "type": "TextControl", + "label": "Zoom", + "isFloat": true, + "default": 11, + "description": "Zoom level of the map", + "places": 8 + }, + "viewport_latitude": { + "type": "TextControl", + "label": "Default latitude", + "default": 37.772123, + "isFloat": true, + "description": "Latitude of default viewport", + "places": 8 + }, + "viewport_longitude": { + "type": "TextControl", + "label": "Default longitude", + "default": -122.405293, + "isFloat": true, + "description": "Longitude of default viewport", + "places": 8 + }, + "render_while_dragging": { + "type": "CheckboxControl", + "label": "Live render", + "default": true, + "description": "Points and clusters will update as viewport is being changed" + }, + "mapbox_color": { + "type": "SelectControl", + "freeForm": true, + "label": "RGB Color", + "default": "rgb(0, 122, 135)", + "choices": [ + [ + "rgb(0, 139, 139)", + "Dark Cyan" + ], + [ + "rgb(128, 0, 128)", + "Purple" + ], + [ + "rgb(255, 215, 0)", + "Gold" + ], + [ + "rgb(69, 69, 69)", + "Dim Gray" + ], + [ + "rgb(220, 20, 60)", + "Crimson" + ], + [ + "rgb(34, 139, 34)", + "Forest Green" + ] + ], + "description": "The color for points and clusters in RGB" + }, + "ranges": { + "type": "TextControl", + "label": "Ranges", + "default": "", + "description": "Ranges to highlight with shading" + }, + "range_labels": { + "type": "TextControl", + "label": "Range labels", + "default": "", + "description": "Labels for the ranges" + }, + "markers": { + "type": "TextControl", + "label": "Markers", + "default": "", + "description": "List of values to mark with triangles" + }, + "marker_labels": { + "type": "TextControl", + "label": "Marker labels", + "default": "", + "description": "Labels for the markers" + }, + "marker_lines": { + "type": "TextControl", + "label": "Marker lines", + "default": "", + "description": "List of values to mark with lines" + }, + "marker_line_labels": { + "type": "TextControl", + "label": "Marker line labels", + "default": "", + "description": "Labels for the marker lines" + }, + "filters": { + "type": "FilterControl", + "label": "", + "default": [], + "description": "" + }, + "having_filters": { + "type": "FilterControl", + "label": "", + "default": [], + "description": "" + }, + "slice_id": { + "type": "HiddenControl", + "label": "Slice ID", + "hidden": true, + "description": "The id of the active slice" + }, + "cache_timeout": { + "type": "HiddenControl", + "label": "Cache Timeout (seconds)", + "hidden": true, + "description": "The number of seconds before expiring the cache" + } + } +} \ No newline at end of file diff --git a/superset/assets/branding/Full Lockup With Text.svg b/superset/assets/branding/Full Lockup With Text.svg new file mode 100644 index 0000000000000..24d5479df871b --- /dev/null +++ b/superset/assets/branding/Full Lockup With Text.svg @@ -0,0 +1,45 @@ + + + + Full Lockup With Text + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + Superset + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/superset/assets/branding/Full Lockup With Text@2x.png b/superset/assets/branding/Full Lockup With Text@2x.png new file mode 100644 index 0000000000000..3ee10514f3ae9 Binary files /dev/null and b/superset/assets/branding/Full Lockup With Text@2x.png differ diff --git a/superset/assets/branding/Full Lockup Without Text@1x.svg b/superset/assets/branding/Full Lockup Without Text@1x.svg new file mode 100644 index 0000000000000..4792fe3b77c9f --- /dev/null +++ b/superset/assets/branding/Full Lockup Without Text@1x.svg @@ -0,0 +1,34 @@ + + + + Full Lockup Without Text@1x + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/superset/assets/branding/Full Lockup Without Text@2x.png b/superset/assets/branding/Full Lockup Without Text@2x.png new file mode 100644 index 0000000000000..03c52d111bf98 Binary files /dev/null and b/superset/assets/branding/Full Lockup Without Text@2x.png differ diff --git a/superset/assets/branding/Horizontal.svg b/superset/assets/branding/Horizontal.svg new file mode 100644 index 0000000000000..10c108b685c26 --- /dev/null +++ b/superset/assets/branding/Horizontal.svg @@ -0,0 +1,35 @@ + + + + Horizontal + Created with Sketch. + + + + + + + + + + + + + Superse + t + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/superset/assets/branding/Horizontal@2x.png b/superset/assets/branding/Horizontal@2x.png new file mode 100644 index 0000000000000..7e1e465223c37 Binary files /dev/null and b/superset/assets/branding/Horizontal@2x.png differ diff --git a/superset/assets/branding/Solo Mark.png b/superset/assets/branding/Solo Mark.png new file mode 100644 index 0000000000000..2031b86a9f522 Binary files /dev/null and b/superset/assets/branding/Solo Mark.png differ diff --git a/superset/assets/branding/Solo Mark@1x.svg b/superset/assets/branding/Solo Mark@1x.svg new file mode 100644 index 0000000000000..ee137af884a5e --- /dev/null +++ b/superset/assets/branding/Solo Mark@1x.svg @@ -0,0 +1,27 @@ + + + + Solo Mark@1x + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/superset/assets/docs b/superset/assets/docs new file mode 120000 index 0000000000000..932170420302a --- /dev/null +++ b/superset/assets/docs @@ -0,0 +1 @@ +../../docs/_build/html/ \ No newline at end of file diff --git a/superset/assets/images/s.png b/superset/assets/images/s.png new file mode 100644 index 0000000000000..2031b86a9f522 Binary files /dev/null and b/superset/assets/images/s.png differ diff --git a/superset/assets/images/tutorial/add_db.png b/superset/assets/images/tutorial/add_db.png new file mode 100644 index 0000000000000..728234376b4ca Binary files /dev/null and b/superset/assets/images/tutorial/add_db.png differ diff --git a/superset/assets/images/viz_thumbnails/country_map.png b/superset/assets/images/viz_thumbnails/country_map.png new file mode 100644 index 0000000000000..3ac6c0985c090 Binary files /dev/null and b/superset/assets/images/viz_thumbnails/country_map.png differ diff --git a/superset/assets/images/viz_thumbnails/dual_line.png b/superset/assets/images/viz_thumbnails/dual_line.png old mode 100644 new mode 100755 index cf2f6ccc62e0c..23a77500b7b8c Binary files a/superset/assets/images/viz_thumbnails/dual_line.png and b/superset/assets/images/viz_thumbnails/dual_line.png differ diff --git a/superset/assets/javascripts/SqlLab/actions.js b/superset/assets/javascripts/SqlLab/actions.js index 0e72c209a3944..1a52939b278df 100644 --- a/superset/assets/javascripts/SqlLab/actions.js +++ b/superset/assets/javascripts/SqlLab/actions.js @@ -1,5 +1,7 @@ +/* global notify */ import shortid from 'shortid'; import { now } from '../modules/dates'; + const $ = require('jquery'); export const RESET_STATE = 'RESET_STATE'; @@ -24,7 +26,6 @@ export const SET_ACTIVE_SOUTHPANE_TAB = 'SET_ACTIVE_SOUTHPANE_TAB'; export const ADD_ALERT = 'ADD_ALERT'; export const REMOVE_ALERT = 'REMOVE_ALERT'; export const REFRESH_QUERIES = 'REFRESH_QUERIES'; -export const SET_NETWORK_STATUS = 'SET_NETWORK_STATUS'; export const RUN_QUERY = 'RUN_QUERY'; export const START_QUERY = 'START_QUERY'; export const STOP_QUERY = 'STOP_QUERY'; @@ -34,11 +35,29 @@ export const QUERY_FAILED = 'QUERY_FAILED'; export const CLEAR_QUERY_RESULTS = 'CLEAR_QUERY_RESULTS'; export const REMOVE_DATA_PREVIEW = 'REMOVE_DATA_PREVIEW'; export const CHANGE_DATA_PREVIEW_ID = 'CHANGE_DATA_PREVIEW_ID'; +export const SAVE_QUERY = 'SAVE_QUERY'; + +export const CREATE_DATASOURCE_STARTED = 'CREATE_DATASOURCE_STARTED'; +export const CREATE_DATASOURCE_SUCCESS = 'CREATE_DATASOURCE_SUCCESS'; +export const CREATE_DATASOURCE_FAILED = 'CREATE_DATASOURCE_FAILED'; export function resetState() { return { type: RESET_STATE }; } +export function saveQuery(query) { + const url = '/savedqueryviewapi/api/create'; + $.ajax({ + type: 'POST', + url, + data: query, + success: () => notify.success('Your query was saved'), + error: () => notify.error('Your query could not be saved'), + dataType: 'json', + }); + return { type: SAVE_QUERY }; +} + export function startQuery(query) { Object.assign(query, { id: query.id ? query.id : shortid.generate(), @@ -99,7 +118,6 @@ export function fetchQueryResults(query) { export function runQuery(query) { return function (dispatch) { dispatch(startQuery(query)); - const sqlJsonUrl = '/superset/sql_json/'; const sqlJsonRequest = { client_id: query.id, database_id: query.dbId, @@ -112,6 +130,7 @@ export function runQuery(query) { tmp_table_name: query.tempTableName, select_as_cta: query.ctas, }; + const sqlJsonUrl = '/superset/sql_json/' + location.search; $.ajax({ type: 'POST', dataType: 'json', @@ -136,12 +155,35 @@ export function runQuery(query) { } else if (msg === null) { msg = `[${textStatus}] ${errorThrown}`; } + if (msg.indexOf('The CSRF token is missing') > 0) { + msg = 'Your session timed out, please refresh your page and try again.'; + } dispatch(queryFailed(query, msg)); }, }); }; } +export function postStopQuery(query) { + return function (dispatch) { + const stopQueryUrl = '/superset/stop_query/'; + const stopQueryRequestData = { client_id: query.id }; + dispatch(stopQuery(query)); + $.ajax({ + type: 'POST', + dataType: 'json', + url: stopQueryUrl, + data: stopQueryRequestData, + success() { + notify.success('Query was stopped.'); + }, + error() { + notify.error('Failed at stopping query.'); + }, + }); + }; +} + export function setDatabases(databases) { return { type: SET_DATABASES, databases }; } @@ -155,10 +197,6 @@ export function cloneQueryToNewTab(query) { return { type: CLONE_QUERY_TO_NEW_TAB, query }; } -export function setNetworkStatus(networkOn) { - return { type: SET_NETWORK_STATUS, networkOn }; -} - export function addAlert(alert) { const o = Object.assign({}, alert); o.id = shortid.generate(); @@ -213,9 +251,21 @@ export function mergeTable(table, query) { return { type: MERGE_TABLE, table, query }; } -export function addTable(query, tableName) { +export function addTable(query, tableName, schemaName) { return function (dispatch) { - let url = `/superset/table/${query.dbId}/${tableName}/${query.schema}/`; + let table = { + dbId: query.dbId, + queryEditorId: query.id, + schema: schemaName, + name: tableName, + }; + dispatch(mergeTable(Object.assign({}, table, { + isMetadataLoading: true, + isExtraMetadataLoading: true, + expanded: false, + }))); + + let url = `/superset/table/${query.dbId}/${tableName}/${schemaName}/`; $.get(url, (data) => { const dataPreviewQuery = { id: shortid.generate(), @@ -228,36 +278,33 @@ export function addTable(query, tableName) { ctas: false, }; // Merge table to tables in state - dispatch(mergeTable( - Object.assign(data, { - dbId: query.dbId, - queryEditorId: query.id, - schema: query.schema, - expanded: true, - }), dataPreviewQuery) - ); + const newTable = Object.assign({}, table, data, { + expanded: true, + isMetadataLoading: false, + }); + dispatch(mergeTable(newTable, dataPreviewQuery)); // Run query to get preview data for table dispatch(runQuery(dataPreviewQuery)); }) .fail(() => { - dispatch( - addAlert({ - msg: 'Error occurred while fetching metadata', - bsStyle: 'danger', - }) - ); + const newTable = Object.assign({}, table, { + isMetadataLoading: false, + }); + dispatch(mergeTable(newTable)); + notify.error('Error occurred while fetching table metadata'); }); - url = `/superset/extra_table_metadata/${query.dbId}/${tableName}/${query.schema}/`; + url = `/superset/extra_table_metadata/${query.dbId}/${tableName}/${schemaName}/`; $.get(url, (data) => { - const table = { - dbId: query.dbId, - queryEditorId: query.id, - schema: query.schema, - name: tableName, - }; - Object.assign(table, data); + table = Object.assign({}, table, data, { isExtraMetadataLoading: false }); dispatch(mergeTable(table)); + }) + .fail(() => { + const newTable = Object.assign({}, table, { + isExtraMetadataLoading: false, + }); + dispatch(mergeTable(newTable)); + notify.error('Error occurred while fetching table metadata'); }); }; } @@ -315,6 +362,61 @@ export function popStoredQuery(urlId) { }; dispatch(addQueryEditor(queryEditorProps)); }, + error: () => notify.error("The query couldn't be loaded"), + }); + }; +} +export function popSavedQuery(saveQueryId) { + return function (dispatch) { + $.ajax({ + type: 'GET', + url: `/savedqueryviewapi/api/get/${saveQueryId}`, + success: (data) => { + const sq = data.result; + const queryEditorProps = { + title: sq.label, + dbId: sq.db_id ? parseInt(sq.db_id, 10) : null, + schema: sq.schema, + autorun: false, + sql: sq.sql, + }; + dispatch(addQueryEditor(queryEditorProps)); + }, + error: () => notify.error("The query couldn't be loaded"), + }); + }; +} + +export function createDatasourceStarted() { + return { type: CREATE_DATASOURCE_STARTED }; +} +export function createDatasourceSuccess(response) { + const data = JSON.parse(response); + const datasource = `${data.table_id}__table`; + return { type: CREATE_DATASOURCE_SUCCESS, datasource }; +} +export function createDatasourceFailed(err) { + return { type: CREATE_DATASOURCE_FAILED, err }; +} + +export function createDatasource(vizOptions, context) { + return (dispatch) => { + dispatch(createDatasourceStarted()); + + return $.ajax({ + type: 'POST', + url: '/superset/sqllab_viz/', + data: { + data: JSON.stringify(vizOptions), + }, + context, + dataType: 'json', + success: (resp) => { + dispatch(createDatasourceSuccess(resp)); + }, + error: () => { + dispatch(createDatasourceFailed('An error occurred while creating the data source')); + }, }); }; } diff --git a/superset/assets/javascripts/SqlLab/components/AceEditorWrapper.jsx b/superset/assets/javascripts/SqlLab/components/AceEditorWrapper.jsx index c524df9e08780..37b884a6f6ba8 100644 --- a/superset/assets/javascripts/SqlLab/components/AceEditorWrapper.jsx +++ b/superset/assets/javascripts/SqlLab/components/AceEditorWrapper.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; import AceEditor from 'react-ace'; import 'brace/mode/sql'; import 'brace/theme/github'; @@ -8,13 +9,29 @@ import { areArraysShallowEqual } from '../../reduxUtils'; const langTools = ace.acequire('ace/ext/language_tools'); +const keywords = ( + 'SELECT|INSERT|UPDATE|DELETE|FROM|WHERE|AND|OR|GROUP|BY|ORDER|LIMIT|OFFSET|HAVING|AS|CASE|' + + 'WHEN|ELSE|END|TYPE|LEFT|RIGHT|JOIN|ON|OUTER|DESC|ASC|UNION|CREATE|TABLE|PRIMARY|KEY|IF|' + + 'FOREIGN|NOT|REFERENCES|DEFAULT|NULL|INNER|CROSS|NATURAL|DATABASE|DROP|GRANT' +); + +const dataTypes = ( + 'INT|NUMERIC|DECIMAL|DATE|VARCHAR|CHAR|BIGINT|FLOAT|DOUBLE|BIT|BINARY|TEXT|SET|TIMESTAMP|' + + 'MONEY|REAL|NUMBER|INTEGER' +); + +const sqlKeywords = [].concat(keywords.split('|'), dataTypes.split('|')); +const sqlWords = sqlKeywords.map(s => ({ + name: s, value: s, score: 60, meta: 'sql', +})); + const propTypes = { - actions: React.PropTypes.object.isRequired, - onBlur: React.PropTypes.func, - onAltEnter: React.PropTypes.func, - sql: React.PropTypes.string.isRequired, - tables: React.PropTypes.array, - queryEditor: React.PropTypes.object.isRequired, + actions: PropTypes.object.isRequired, + onBlur: PropTypes.func, + onAltEnter: PropTypes.func, + sql: PropTypes.string.isRequired, + tables: PropTypes.array, + queryEditor: PropTypes.object.isRequired, }; const defaultProps = { @@ -43,21 +60,19 @@ class AceEditorWrapper extends React.PureComponent { this.setState({ sql: nextProps.sql }); } } - textChange(text) { - this.setState({ sql: text }); - } onBlur() { this.props.onBlur(this.state.sql); } - getCompletions(aceEditor, session, pos, prefix, callback) { - callback(null, this.state.words); + onAltEnter() { + this.props.onBlur(this.state.sql); + this.props.onAltEnter(); } onEditorLoad(editor) { editor.commands.addCommand({ name: 'runQuery', bindKey: { win: 'Alt-enter', mac: 'Alt-enter' }, exec: () => { - this.props.onAltEnter(); + this.onAltEnter(); }, }); editor.$blockScrolling = Infinity; // eslint-disable-line no-param-reassign @@ -66,31 +81,37 @@ class AceEditorWrapper extends React.PureComponent { this.props.queryEditor, editor.getSelectedText()); }); } + getCompletions(aceEditor, session, pos, prefix, callback) { + callback(null, this.state.words); + } setAutoCompleter(props) { // Loading table and column names as auto-completable words let words = []; const columns = {}; const tables = props.tables || []; - tables.forEach(t => { + tables.forEach((t) => { words.push({ name: t.name, value: t.name, score: 55, meta: 'table' }); const cols = t.columns || []; - cols.forEach(col => { + cols.forEach((col) => { columns[col.name] = null; // using an object as a unique set }); }); words = words.concat(Object.keys(columns).map(col => ( { name: col, value: col, score: 50, meta: 'column' } - ))); + )), sqlWords); this.setState({ words }, () => { const completer = { getCompletions: this.getCompletions.bind(this), }; if (langTools) { - langTools.setCompleters([completer, langTools.keyWordCompleter]); + langTools.setCompleters([completer]); } }); } + textChange(text) { + this.setState({ sql: text }); + } render() { return ( - - {alert.msg} - - - ); - return ( -
{alerts}
- ); - } -} - -Alerts.propTypes = { - alerts: React.PropTypes.array, - actions: React.PropTypes.object, -}; - -export default Alerts; diff --git a/superset/assets/javascripts/SqlLab/components/App.jsx b/superset/assets/javascripts/SqlLab/components/App.jsx index 7c97f004832e0..2a6eb4186406c 100644 --- a/superset/assets/javascripts/SqlLab/components/App.jsx +++ b/superset/assets/javascripts/SqlLab/components/App.jsx @@ -1,21 +1,22 @@ -const $ = window.$ = require('jquery'); -import * as Actions from '../actions'; import React from 'react'; +import PropTypes from 'prop-types'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; import TabbedSqlEditors from './TabbedSqlEditors'; import QueryAutoRefresh from './QueryAutoRefresh'; import QuerySearch from './QuerySearch'; -import Alerts from './Alerts'; +import AlertsWrapper from '../../components/AlertsWrapper'; +import * as Actions from '../actions'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; +const $ = window.$ = require('jquery'); class App extends React.PureComponent { constructor(props) { super(props); this.state = { hash: window.location.hash, - contentHeight: this.getHeight(), + contentHeight: '0px', }; } componentDidMount() { @@ -28,20 +29,25 @@ class App extends React.PureComponent { window.removeEventListener('hashchange', this.onHashChanged.bind(this)); window.removeEventListener('resize', this.handleResize.bind(this)); } + onHashChanged() { + this.setState({ hash: window.location.hash }); + } getHeight() { - const navHeight = 90; - const headerHeight = $('.nav-tabs').outerHeight() ? - $('.nav-tabs').outerHeight() : $('#search-header').outerHeight(); - const warningHeight = $('#navbar-warning').outerHeight(); - const alertHeight = $('#sqllab-alerts').outerHeight(); + const warningEl = $('#navbar-warning'); + const navTabsEl = $('.nav-tabs'); + const searchHeaderEl = $('#search-header'); + const alertEl = $('#sqllab-alerts'); + const headerNavEl = $('header .navbar'); + const navHeight = headerNavEl.outerHeight() + parseInt(headerNavEl.css('marginBottom'), 10); + const searchHeaderHeight = searchHeaderEl.outerHeight() + parseInt(searchHeaderEl.css('marginBottom'), 10); + const headerHeight = navTabsEl.outerHeight() ? navTabsEl.outerHeight() : searchHeaderHeight; + const warningHeight = warningEl.length > 0 ? warningEl.outerHeight() : 0; + const alertHeight = alertEl.length > 0 ? alertEl.outerHeight() : 0; return `${window.innerHeight - navHeight - headerHeight - warningHeight - alertHeight}px`; } handleResize() { this.setState({ contentHeight: this.getHeight() }); } - onHashChanged() { - this.setState({ hash: window.location.hash }); - } render() { let content; if (this.state.hash) { @@ -64,7 +70,7 @@ class App extends React.PureComponent { } return (
- +
{content}
@@ -74,8 +80,8 @@ class App extends React.PureComponent { } App.propTypes = { - alerts: React.PropTypes.array, - actions: React.PropTypes.object, + alerts: PropTypes.array, + actions: PropTypes.object, }; function mapStateToProps(state) { diff --git a/superset/assets/javascripts/SqlLab/components/ColumnElement.jsx b/superset/assets/javascripts/SqlLab/components/ColumnElement.jsx index 24e71b207c633..cfd2d80fe249d 100644 --- a/superset/assets/javascripts/SqlLab/components/ColumnElement.jsx +++ b/superset/assets/javascripts/SqlLab/components/ColumnElement.jsx @@ -1,9 +1,10 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { OverlayTrigger, Tooltip } from 'react-bootstrap'; const propTypes = { - column: React.PropTypes.object.isRequired, + column: PropTypes.object.isRequired, }; const iconMap = { @@ -17,43 +18,39 @@ const tooltipTitleMap = { index: 'Index', }; -class ColumnElement extends React.PureComponent { - render() { - const col = this.props.column; - let name = col.name; - let icons; - if (col.keys && col.keys.length > 0) { - name = {col.name}; - icons = col.keys.map((key, i) => ( - - - {tooltipTitleMap[key.type]} -
-
-                  {JSON.stringify(key, null, '  ')}
-                
- - } - > - -
-
- )); - } - return ( -
-
- {name}{icons} -
-
- {col.type} -
-
); +export default function ColumnElement(props) { + const col = props.column; + let name = col.name; + let icons; + if (col.keys && col.keys.length > 0) { + name = {col.name}; + icons = col.keys.map((key, i) => ( + + + {tooltipTitleMap[key.type]} +
+
+                {JSON.stringify(key, null, '  ')}
+              
+ + } + > + +
+
+ )); } + return ( +
+
+ {name}{icons} +
+
+ {col.type} +
+
); } ColumnElement.propTypes = propTypes; - -export default ColumnElement; diff --git a/superset/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx b/superset/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx index 9c618a13d5f94..5491eed545b3e 100644 --- a/superset/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx +++ b/superset/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx @@ -1,9 +1,10 @@ import React from 'react'; +import PropTypes from 'prop-types'; import CopyToClipboard from '../../components/CopyToClipboard'; import { storeQuery } from '../../../utils/common'; const propTypes = { - queryEditor: React.PropTypes.object.isRequired, + queryEditor: PropTypes.object.isRequired, }; export default class CopyQueryTabUrl extends React.PureComponent { diff --git a/superset/assets/javascripts/SqlLab/components/DataPreviewModal.jsx b/superset/assets/javascripts/SqlLab/components/DataPreviewModal.jsx deleted file mode 100644 index cbea27fdf22cd..0000000000000 --- a/superset/assets/javascripts/SqlLab/components/DataPreviewModal.jsx +++ /dev/null @@ -1,58 +0,0 @@ -import * as Actions from '../actions'; -import React from 'react'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import { Modal } from 'react-bootstrap'; - -import ResultSet from './ResultSet'; - -const propTypes = { - queries: React.PropTypes.object, - actions: React.PropTypes.object, - showDataPreviewModal: React.PropTypes.bool, - dataPreviewQueryId: React.PropTypes.string, -}; - -class DataPreviewModal extends React.PureComponent { - hide() { - this.props.actions.hideDataPreview(); - } - render() { - if (this.props.showDataPreviewModal && this.props.dataPreviewQueryId) { - const query = this.props.queries[this.props.dataPreviewQueryId]; - return ( - - - - Data preview for {query.tableName} - - - - - - - ); - } - return null; - } -} -DataPreviewModal.propTypes = propTypes; - -function mapStateToProps(state) { - return { - queries: state.queries, - showDataPreviewModal: state.showDataPreviewModal, - dataPreviewQueryId: state.dataPreviewQueryId, - }; -} -function mapDispatchToProps(dispatch) { - return { - actions: bindActionCreators(Actions, dispatch), - }; -} - -export default connect(mapStateToProps, mapDispatchToProps)(DataPreviewModal); diff --git a/superset/assets/javascripts/SqlLab/components/HighlightedSql.jsx b/superset/assets/javascripts/SqlLab/components/HighlightedSql.jsx index e649125facc50..dc5a5a90f3349 100644 --- a/superset/assets/javascripts/SqlLab/components/HighlightedSql.jsx +++ b/superset/assets/javascripts/SqlLab/components/HighlightedSql.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; import SyntaxHighlighter from 'react-syntax-highlighter'; import { github } from 'react-syntax-highlighter/dist/styles'; import ModalTrigger from '../../components/ModalTrigger'; @@ -10,11 +11,11 @@ const defaultProps = { }; const propTypes = { - sql: React.PropTypes.string.isRequired, - rawSql: React.PropTypes.string, - maxWidth: React.PropTypes.number, - maxLines: React.PropTypes.number, - shrink: React.PropTypes.bool, + sql: PropTypes.string.isRequired, + rawSql: PropTypes.string, + maxWidth: PropTypes.number, + maxLines: PropTypes.number, + shrink: PropTypes.bool, }; class HighlightedSql extends React.Component { @@ -25,38 +26,35 @@ class HighlightedSql extends React.Component { }; } shrinkSql() { - const props = this.props; - const sql = props.sql || ''; + const sql = this.props.sql || ''; let lines = sql.split('\n'); - if (lines.length >= props.maxLines) { - lines = lines.slice(0, props.maxLines); + if (lines.length >= this.props.maxLines) { + lines = lines.slice(0, this.props.maxLines); lines.push('{...}'); } return lines.map((line) => { - if (line.length > props.maxWidth) { - return line.slice(0, props.maxWidth) + '{...}'; + if (line.length > this.props.maxWidth) { + return line.slice(0, this.props.maxWidth) + '{...}'; } return line; }) .join('\n'); } triggerNode() { - const props = this.props; - let shownSql = props.shrink ? this.shrinkSql(props.sql) : props.sql; + const shownSql = this.props.shrink ? this.shrinkSql(this.props.sql) : this.props.sql; return ( {shownSql} ); } generateModal() { - const props = this.props; let rawSql; - if (props.rawSql && props.rawSql !== this.props.sql) { + if (this.props.rawSql && this.props.rawSql !== this.props.sql) { rawSql = (

Raw SQL

- {props.rawSql} + {this.props.rawSql}
); diff --git a/superset/assets/javascripts/SqlLab/components/Link.jsx b/superset/assets/javascripts/SqlLab/components/Link.jsx index b4cd16fd32935..54b8bb7418c20 100644 --- a/superset/assets/javascripts/SqlLab/components/Link.jsx +++ b/superset/assets/javascripts/SqlLab/components/Link.jsx @@ -1,14 +1,15 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { OverlayTrigger, Tooltip } from 'react-bootstrap'; const propTypes = { - children: React.PropTypes.node, - className: React.PropTypes.string, - href: React.PropTypes.string, - onClick: React.PropTypes.func, - placement: React.PropTypes.string, - style: React.PropTypes.object, - tooltip: React.PropTypes.string, + children: PropTypes.node, + className: PropTypes.string, + href: PropTypes.string, + onClick: PropTypes.func, + placement: PropTypes.string, + style: PropTypes.object, + tooltip: PropTypes.string, }; const defaultProps = { className: '', @@ -22,7 +23,7 @@ const defaultProps = { class Link extends React.PureComponent { render() { - let tooltip = ( + const tooltip = ( {this.props.tooltip} @@ -34,7 +35,7 @@ class Link extends React.PureComponent { style={this.props.style} className={'Link ' + this.props.className} > - {this.props.children} + {this.props.children} ); if (this.props.tooltip) { diff --git a/superset/assets/javascripts/SqlLab/components/QueryAutoRefresh.jsx b/superset/assets/javascripts/SqlLab/components/QueryAutoRefresh.jsx index 2a076bb15b1bb..892b7caf5294f 100644 --- a/superset/assets/javascripts/SqlLab/components/QueryAutoRefresh.jsx +++ b/superset/assets/javascripts/SqlLab/components/QueryAutoRefresh.jsx @@ -1,10 +1,12 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import * as Actions from '../actions'; const $ = require('jquery'); -const QUERY_UPDATE_FREQ = 1000; + +const QUERY_UPDATE_FREQ = 2000; const QUERY_UPDATE_BUFFER_MS = 5000; class QueryAutoRefresh extends React.PureComponent { @@ -14,6 +16,14 @@ class QueryAutoRefresh extends React.PureComponent { componentWillUnmount() { this.stopTimer(); } + shouldCheckForQueries() { + // if there are started or running queries, this method should return true + const { queries } = this.props; + const queryKeys = Object.keys(queries); + const queriesAsArray = queryKeys.map(key => queries[key]); + return queriesAsArray.some(q => + ['running', 'started', 'pending', 'fetching'].indexOf(q.state) >= 0); + } startTimer() { if (!(this.timer)) { this.timer = setInterval(this.stopwatch.bind(this), QUERY_UPDATE_FREQ); @@ -24,32 +34,29 @@ class QueryAutoRefresh extends React.PureComponent { this.timer = null; } stopwatch() { - const url = '/superset/queries/' + (this.props.queriesLastUpdate - QUERY_UPDATE_BUFFER_MS); - // No updates in case of failure. - $.getJSON(url, (data) => { - if (Object.keys(data).length > 0) { - this.props.actions.refreshQueries(data); - } - this.props.actions.setNetworkStatus(true); - }) - .fail(() => { - this.props.actions.setNetworkStatus(false); - }); + // only poll /superset/queries/ if there are started or running queries + if (this.shouldCheckForQueries()) { + const url = `/superset/queries/${this.props.queriesLastUpdate - QUERY_UPDATE_BUFFER_MS}`; + $.getJSON(url, (data) => { + if (Object.keys(data).length > 0) { + this.props.actions.refreshQueries(data); + } + }); + } } render() { return null; } } QueryAutoRefresh.propTypes = { - actions: React.PropTypes.object, - queriesLastUpdate: React.PropTypes.number, -}; -QueryAutoRefresh.defaultProps = { - // queries: null, + queries: PropTypes.object.isRequired, + actions: PropTypes.object.isRequired, + queriesLastUpdate: PropTypes.number.isRequired, }; function mapStateToProps(state) { return { + queries: state.queries, queriesLastUpdate: state.queriesLastUpdate, }; } diff --git a/superset/assets/javascripts/SqlLab/components/QueryHistory.jsx b/superset/assets/javascripts/SqlLab/components/QueryHistory.jsx index aa661a24606cd..0de35d2c14d37 100644 --- a/superset/assets/javascripts/SqlLab/components/QueryHistory.jsx +++ b/superset/assets/javascripts/SqlLab/components/QueryHistory.jsx @@ -1,11 +1,12 @@ import React from 'react'; +import PropTypes from 'prop-types'; +import { Alert } from 'react-bootstrap'; import QueryTable from './QueryTable'; -import { Alert } from 'react-bootstrap'; const propTypes = { - queries: React.PropTypes.array.isRequired, - actions: React.PropTypes.object.isRequired, + queries: PropTypes.array.isRequired, + actions: PropTypes.object.isRequired, }; const QueryHistory = (props) => { diff --git a/superset/assets/javascripts/SqlLab/components/QuerySearch.jsx b/superset/assets/javascripts/SqlLab/components/QuerySearch.jsx index 8acd6c3607378..44daa3920bd5c 100644 --- a/superset/assets/javascripts/SqlLab/components/QuerySearch.jsx +++ b/superset/assets/javascripts/SqlLab/components/QuerySearch.jsx @@ -1,5 +1,5 @@ -const $ = window.$ = require('jquery'); import React from 'react'; +import PropTypes from 'prop-types'; import { Button } from 'react-bootstrap'; import Select from 'react-select'; import QueryTable from './QueryTable'; @@ -8,8 +8,11 @@ import { now, epochTimeXHoursAgo, import { STATUS_OPTIONS, TIME_OPTIONS } from '../constants'; import AsyncSelect from '../../components/AsyncSelect'; +const $ = window.$ = require('jquery'); + const propTypes = { - actions: React.PropTypes.object.isRequired, + actions: PropTypes.object.isRequired, + height: PropTypes.number.isRequired, }; class QuerySearch extends React.PureComponent { @@ -21,8 +24,8 @@ class QuerySearch extends React.PureComponent { databaseId: null, userId: null, searchText: null, - from: null, - to: null, + from: '28 days ago', + to: 'now', status: 'success', queriesArray: [], queriesLoading: true, @@ -75,7 +78,7 @@ class QuerySearch extends React.PureComponent { } insertParams(baseUrl, params) { const validParams = params.filter( - function (p) { return p !== ''; } + function (p) { return p !== ''; }, ); return baseUrl + '?' + validParams.join('&'); } @@ -94,7 +97,7 @@ class QuerySearch extends React.PureComponent { return options; } dbMutator(data) { - const options = data.result.map((db) => ({ value: db.id, label: db.database_name })); + const options = data.result.map(db => ({ value: db.id, label: db.database_name })); this.props.actions.setDatabases(data.result); if (data.result.length === 0) { this.props.actions.addAlert({ @@ -154,8 +157,8 @@ class QuerySearch extends React.PureComponent { ({ value: t, label: t }))} + options={TIME_OPTIONS.map(t => ({ value: t, label: t }))} value={this.state.to} autosize={false} onChange={this.changeTo.bind(this)} @@ -175,7 +178,7 @@ class QuerySearch extends React.PureComponent { ( -
- Schema: {o.label} -
- )} - isLoading={this.state.schemaLoading} - autosize={false} - onChange={this.changeSchema.bind(this)} - /> -
-
+
+
+ notify.error('Error while fetching database list')} + value={this.props.queryEditor.dbId} + databaseId={this.props.queryEditor.dbId} + actions={this.props.actions} + valueRenderer={o => ( +
+ Database: {o.label} +
+ )} + mutator={this.dbMutator.bind(this)} + placeholder="Select a database" + autoSelect + /> +
+
+ -
-
-
- {this.props.tables.map((table) => ( - - ))} -
- {shouldShowReset && - } + {!this.props.queryEditor.schema && + {alerts} + {this.buildVisualizeAdvise()}
Chart Type @@ -246,4 +289,18 @@ class VisualizeModal extends React.PureComponent { VisualizeModal.propTypes = propTypes; VisualizeModal.defaultProps = defaultProps; -export default VisualizeModal; +function mapStateToProps(state) { + return { + datasource: state.datasource, + errorMessage: state.errorMessage, + }; +} + +function mapDispatchToProps(dispatch) { + return { + actions: bindActionCreators(actions, dispatch), + }; +} + +export { VisualizeModal }; +export default connect(mapStateToProps, mapDispatchToProps)(VisualizeModal); diff --git a/superset/assets/javascripts/SqlLab/constants.js b/superset/assets/javascripts/SqlLab/constants.js index 37e32f7087016..2a9327509e3f8 100644 --- a/superset/assets/javascripts/SqlLab/constants.js +++ b/superset/assets/javascripts/SqlLab/constants.js @@ -22,3 +22,10 @@ export const TIME_OPTIONS = [ '90 days ago', '1 year ago', ]; + +export const VISUALIZE_VALIDATION_ERRORS = { + REQUIRE_CHART_TYPE: 'Pick a chart type!', + REQUIRE_TIME: 'To use this chart type you need at least one column flagged as a date', + REQUIRE_DIMENSION: 'To use this chart type you need at least one dimension', + REQUIRE_AGGREGATION_FUNCTION: 'To use this chart type you need at least one aggregation function', +}; diff --git a/superset/assets/javascripts/SqlLab/index.jsx b/superset/assets/javascripts/SqlLab/index.jsx index b58d3fc16030e..e292c2576c1ae 100644 --- a/superset/assets/javascripts/SqlLab/index.jsx +++ b/superset/assets/javascripts/SqlLab/index.jsx @@ -1,25 +1,27 @@ -const $ = window.$ = require('jquery'); -const jQuery = window.jQuery = $; // eslint-disable-line -require('bootstrap'); - import React from 'react'; import { render } from 'react-dom'; -import { getInitialState, sqlLabReducer } from './reducers'; -import { initEnhancer } from '../reduxUtils'; import { createStore, compose, applyMiddleware } from 'redux'; import { Provider } from 'react-redux'; import thunkMiddleware from 'redux-thunk'; +import { getInitialState, sqlLabReducer } from './reducers'; +import { initEnhancer } from '../reduxUtils'; +import { initJQueryAjax } from '../modules/utils'; import App from './components/App'; +import { appSetup } from '../common'; +import './main.css'; +import './reactable-pagination.css'; +import '../components/FilterableTable/FilterableTableStyles.css'; -require('./main.css'); +appSetup(); +initJQueryAjax(); const appContainer = document.getElementById('app'); const bootstrapData = JSON.parse(appContainer.getAttribute('data-bootstrap')); const state = Object.assign({}, getInitialState(bootstrapData.defaultDbId), bootstrapData); -let store = createStore( +const store = createStore( sqlLabReducer, state, compose(applyMiddleware(thunkMiddleware), initEnhancer())); // jquery hack to highlight the navbar menu @@ -29,5 +31,5 @@ render( , - appContainer + appContainer, ); diff --git a/superset/assets/javascripts/SqlLab/main.css b/superset/assets/javascripts/SqlLab/main.css index faa50e73d382c..a3ad7dbe6b445 100644 --- a/superset/assets/javascripts/SqlLab/main.css +++ b/superset/assets/javascripts/SqlLab/main.css @@ -237,7 +237,6 @@ div.tablePopover:hover { padding-bottom: 3px; padding-top: 3px; } - .ace_editor { border: 1px solid #ccc; margin: 0px 0px 10px 0px; diff --git a/superset/assets/javascripts/SqlLab/reactable-pagination.css b/superset/assets/javascripts/SqlLab/reactable-pagination.css new file mode 100644 index 0000000000000..3e862849525a1 --- /dev/null +++ b/superset/assets/javascripts/SqlLab/reactable-pagination.css @@ -0,0 +1,40 @@ +.reactable-pagination td { + padding: 15px 0 0 0!important; +} +.reactable-pagination a:focus { + text-decoration: none; + color: #555555; + outline: 1; +} +.reactable-page-button, +.reactable-next-page, +.reactable-previous-page { + background: #fff; + border-radius: 2px; + border: 1px solid #b3b3b3; + color: #555555; + display: inline-block; + font-size: 12px; + line-height: 1.5; + margin-right: 5px; + padding: 5px 10px; + text-align: center; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; +} +.reactable-current-page { + border: 1px solid #b3b3b3; + color: #555555; + font-weight: bold; + pointer-events: none; + opacity: 0.65; +} +.reactable-page-button:hover, +.reactable-next-page:hover, +.reactable-previous-page:hover { + background-color: #efefef; + border-color: #949494; + color: #555555; + text-decoration: none; +} diff --git a/superset/assets/javascripts/SqlLab/reducers.js b/superset/assets/javascripts/SqlLab/reducers.js index 8a2bbdf308530..2f5461ab8b277 100644 --- a/superset/assets/javascripts/SqlLab/reducers.js +++ b/superset/assets/javascripts/SqlLab/reducers.js @@ -2,7 +2,7 @@ import shortid from 'shortid'; import * as actions from './actions'; import { now } from '../modules/dates'; import { addToObject, alterInObject, alterInArr, removeFromArr, getFromArr, addToArr } - from '../reduxUtils.js'; + from '../reduxUtils'; export function getInitialState(defaultDbId) { const defaultQueryEditor = { @@ -17,7 +17,6 @@ export function getInitialState(defaultDbId) { return { alerts: [], - networkOn: true, queries: {}, databases: {}, queryEditors: [defaultQueryEditor], @@ -37,7 +36,7 @@ export const sqlLabReducer = function (state, action) { return addToArr(newState, 'queryEditors', action.queryEditor); }, [actions.CLONE_QUERY_TO_NEW_TAB]() { - const progenitor = state.queryEditors.find((qe) => + const progenitor = state.queryEditors.find(qe => qe.id === state.tabHistory[state.tabHistory.length - 1]); const qe = { id: shortid.generate(), @@ -53,7 +52,7 @@ export const sqlLabReducer = function (state, action) { [actions.REMOVE_QUERY_EDITOR]() { let newState = removeFromArr(state, 'queryEditors', action.queryEditor); // List of remaining queryEditor ids - const qeIds = newState.queryEditors.map((qe) => qe.id); + const qeIds = newState.queryEditors.map(qe => qe.id); const queries = {}; Object.keys(state.queries).forEach((k) => { const query = state.queries[k]; @@ -62,7 +61,7 @@ export const sqlLabReducer = function (state, action) { } }); let tabHistory = state.tabHistory.slice(); - tabHistory = tabHistory.filter((id) => qeIds.indexOf(id) > -1); + tabHistory = tabHistory.filter(id => qeIds.indexOf(id) > -1); newState = Object.assign({}, newState, { tabHistory, queries }); return newState; }, @@ -151,7 +150,7 @@ export const sqlLabReducer = function (state, action) { return alterInArr(newState, 'queryEditors', sqlEditor, { latestQueryId: action.query.id }); }, [actions.STOP_QUERY]() { - return alterInObject(state, 'queries', action.query, { state: 'stopped' }); + return alterInObject(state, 'queries', action.query, { state: 'stopped', results: [] }); }, [actions.CLEAR_QUERY_RESULTS]() { const newResults = Object.assign({}, action.query.results); @@ -162,6 +161,9 @@ export const sqlLabReducer = function (state, action) { return alterInObject(state, 'queries', action.query, { state: 'fetching' }); }, [actions.QUERY_SUCCESS]() { + if (action.query.state === 'stopped') { + return state; + } let rows; if (action.results.data) { rows = action.results.data.length; @@ -178,11 +180,14 @@ export const sqlLabReducer = function (state, action) { return alterInObject(state, 'queries', action.query, alts); }, [actions.QUERY_FAILED]() { + if (action.query.state === 'stopped') { + return state; + } const alts = { state: 'failed', errorMessage: action.msg, endDttm: now() }; return alterInObject(state, 'queries', action.query, alts); }, [actions.SET_ACTIVE_QUERY_EDITOR]() { - const qeIds = state.queryEditors.map((qe) => qe.id); + const qeIds = state.queryEditors.map(qe => qe.id); if (qeIds.indexOf(action.queryEditor.id) > -1) { const tabHistory = state.tabHistory.slice(); tabHistory.push(action.queryEditor.id); @@ -224,21 +229,19 @@ export const sqlLabReducer = function (state, action) { [actions.REMOVE_ALERT]() { return removeFromArr(state, 'alerts', action.alert); }, - [actions.SET_NETWORK_STATUS]() { - if (state.networkOn !== action.networkOn) { - return Object.assign({}, state, { networkOn: action.networkOn }); - } - return state; - }, [actions.REFRESH_QUERIES]() { let newQueries = Object.assign({}, state.queries); // Fetch the updates to the queries present in the store. let change = false; + let queriesLastUpdate = state.queriesLastUpdate; for (const id in action.alteredQueries) { const changedQuery = action.alteredQueries[id]; - if ( - !state.queries.hasOwnProperty(id) || - state.queries[id].changedOn !== changedQuery.changedOn) { + if (!state.queries.hasOwnProperty(id) || + (state.queries[id].changedOn !== changedQuery.changedOn && + state.queries[id].state !== 'stopped')) { + if (changedQuery.changedOn > queriesLastUpdate) { + queriesLastUpdate = changedQuery.changedOn; + } newQueries[id] = Object.assign({}, state.queries[id], changedQuery); change = true; } @@ -246,9 +249,27 @@ export const sqlLabReducer = function (state, action) { if (!change) { newQueries = state.queries; } - const queriesLastUpdate = now(); return Object.assign({}, state, { queries: newQueries, queriesLastUpdate }); }, + [actions.CREATE_DATASOURCE_STARTED]() { + return Object.assign({}, state, { + isDatasourceLoading: true, + errorMessage: null, + }); + }, + [actions.CREATE_DATASOURCE_SUCCESS]() { + return Object.assign({}, state, { + isDatasourceLoading: false, + errorMessage: null, + datasource: action.datasource, + }); + }, + [actions.CREATE_DATASOURCE_FAILED]() { + return Object.assign({}, state, { + isDatasourceLoading: false, + errorMessage: action.err, + }); + }, }; if (action.type in actionHandlers) { return actionHandlers[action.type](); diff --git a/superset/assets/javascripts/addSlice/AddSliceContainer.jsx b/superset/assets/javascripts/addSlice/AddSliceContainer.jsx new file mode 100644 index 0000000000000..c316e2c76ed09 --- /dev/null +++ b/superset/assets/javascripts/addSlice/AddSliceContainer.jsx @@ -0,0 +1,98 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Button, Panel, Grid, Row, Col } from 'react-bootstrap'; +import Select from 'react-virtualized-select'; +import visTypes from '../explore/stores/visTypes'; + +const propTypes = { + datasources: PropTypes.arrayOf(PropTypes.shape({ + label: PropTypes.string.isRequired, + value: PropTypes.string.isRequired, + })).isRequired, +}; + +export default class AddSliceContainer extends React.PureComponent { + constructor(props) { + super(props); + const visTypeKeys = Object.keys(visTypes); + this.vizTypeOptions = visTypeKeys.map(vt => ({ label: visTypes[vt].label, value: vt })); + this.state = { + visType: 'table', + }; + } + + exploreUrl() { + const baseUrl = `/superset/explore/${this.state.datasourceType}/${this.state.datasourceId}`; + const formData = encodeURIComponent(JSON.stringify({ viz_type: this.state.visType })); + return `${baseUrl}?form_data=${formData}`; + } + + gotoSlice() { + window.location.href = this.exploreUrl(); + } + + changeDatasource(e) { + this.setState({ + datasourceValue: e.value, + datasourceId: e.value.split('__')[0], + datasourceType: e.value.split('__')[1], + }); + } + + changeVisType(e) { + this.setState({ visType: e.value }); + } + + isBtnDisabled() { + return !(this.state.datasourceId && this.state.visType); + } + + render() { + return ( +
+ Create a new slice}> + + + +
+

Choose a datasource

+ +
+
+ +

+ +
+
+
+
+ ); + } +} + +AddSliceContainer.propTypes = propTypes; diff --git a/superset/assets/javascripts/addSlice/index.jsx b/superset/assets/javascripts/addSlice/index.jsx new file mode 100644 index 0000000000000..f83c2d5272a49 --- /dev/null +++ b/superset/assets/javascripts/addSlice/index.jsx @@ -0,0 +1,14 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { appSetup } from '../common'; +import AddSliceContainer from './AddSliceContainer'; + +appSetup(); + +const addSliceContainer = document.getElementById('js-add-slice-container'); +const bootstrapData = JSON.parse(addSliceContainer.getAttribute('data-bootstrap')); + +ReactDOM.render( + , + addSliceContainer, +); diff --git a/superset/assets/javascripts/common.js b/superset/assets/javascripts/common.js index fd35e6a114655..8ecfbe5822137 100644 --- a/superset/assets/javascripts/common.js +++ b/superset/assets/javascripts/common.js @@ -1,5 +1,8 @@ -const $ = require('jquery'); +/* eslint-disable global-require */ +import $ from 'jquery'; + const utils = require('./modules/utils'); + $(document).ready(function () { $(':checkbox[data-checkbox-api-prefix]').change(function () { const $this = $(this); @@ -8,3 +11,11 @@ $(document).ready(function () { utils.toggleCheckbox(prefix, '#' + id); }); }); + +export function appSetup() { + // A set of hacks to allow apps to run within a FAB template + // this allows for the server side generated menus to function + window.$ = $; + window.jQuery = $; + require('bootstrap'); +} diff --git a/superset/assets/javascripts/components/AlertsWrapper.jsx b/superset/assets/javascripts/components/AlertsWrapper.jsx new file mode 100644 index 0000000000000..bb3c2d6dc8398 --- /dev/null +++ b/superset/assets/javascripts/components/AlertsWrapper.jsx @@ -0,0 +1,18 @@ +import React from 'react'; +import AlertContainer from 'react-alert'; + +export default class AlertsWrapper extends React.PureComponent { + render() { + return ( + { + global.notify = ref; + }} + offset={14} + position="top right" + theme="dark" + time={5000} + transition="fade" + />); + } +} diff --git a/superset/assets/javascripts/components/AsyncSelect.jsx b/superset/assets/javascripts/components/AsyncSelect.jsx index fbf988c48d7cb..e045dc973c987 100644 --- a/superset/assets/javascripts/components/AsyncSelect.jsx +++ b/superset/assets/javascripts/components/AsyncSelect.jsx @@ -1,19 +1,24 @@ -const $ = window.$ = require('jquery'); import React from 'react'; +import PropTypes from 'prop-types'; import Select from 'react-select'; +const $ = window.$ = require('jquery'); + const propTypes = { - dataEndpoint: React.PropTypes.string.isRequired, - onChange: React.PropTypes.func.isRequired, - mutator: React.PropTypes.func.isRequired, - value: React.PropTypes.number, - valueRenderer: React.PropTypes.func, - placeholder: React.PropTypes.string, + dataEndpoint: PropTypes.string.isRequired, + onChange: PropTypes.func.isRequired, + mutator: PropTypes.func.isRequired, + onAsyncError: PropTypes.func, + value: PropTypes.number, + valueRenderer: PropTypes.func, + placeholder: PropTypes.string, + autoSelect: PropTypes.bool, }; const defaultProps = { placeholder: 'Select ...', - valueRenderer: (o) => (
{o.label}
), + valueRenderer: o => (
{o.label}
), + onAsyncError: () => {}, }; class AsyncSelect extends React.PureComponent { @@ -27,16 +32,26 @@ class AsyncSelect extends React.PureComponent { componentDidMount() { this.fetchOptions(); } + onChange(opt) { + this.props.onChange(opt); + } fetchOptions() { this.setState({ isLoading: true }); const mutator = this.props.mutator; $.get(this.props.dataEndpoint, (data) => { this.setState({ options: mutator ? mutator(data) : data, isLoading: false }); + + if (!this.props.value && this.props.autoSelect && this.state.options.length) { + this.onChange(this.state.options[0]); + } + }) + .fail(() => { + this.props.onAsyncError(); + }) + .always(() => { + this.setState({ isLoading: false }); }); } - onChange(opt) { - this.props.onChange(opt); - } render() { return (
diff --git a/superset/assets/javascripts/components/Button.jsx b/superset/assets/javascripts/components/Button.jsx index d431c65f6457d..120113de7e47e 100644 --- a/superset/assets/javascripts/components/Button.jsx +++ b/superset/assets/javascripts/components/Button.jsx @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Button as BootstrapButton, Tooltip, OverlayTrigger } from 'react-bootstrap'; import { slugify } from '../modules/utils'; diff --git a/superset/assets/javascripts/components/CachedLabel.jsx b/superset/assets/javascripts/components/CachedLabel.jsx new file mode 100644 index 0000000000000..e78e4f7996a81 --- /dev/null +++ b/superset/assets/javascripts/components/CachedLabel.jsx @@ -0,0 +1,69 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Label } from 'react-bootstrap'; +import moment from 'moment'; +import TooltipWrapper from './TooltipWrapper'; + +const propTypes = { + onClick: PropTypes.func, + cachedTimestamp: PropTypes.string, + className: PropTypes.string, +}; + +class CacheLabel extends React.PureComponent { + constructor(props) { + super(props); + this.state = { + tooltipContent: '', + hovered: false, + }; + } + + updateTooltipContent() { + const cachedText = this.props.cachedTimestamp ? ( + + Loaded data cached {moment.utc(this.props.cachedTimestamp).fromNow()} + ) : + 'Loaded from cache'; + + const tooltipContent = ( + + {cachedText}. + Click to force-refresh + + ); + this.setState({ tooltipContent }); + } + + mouseOver() { + this.updateTooltipContent(); + this.setState({ hovered: true }); + } + + mouseOut() { + this.setState({ hovered: false }); + } + + render() { + const labelStyle = this.state.hovered ? 'primary' : 'default'; + return ( + + + ); + } +} +CacheLabel.propTypes = propTypes; + +export default CacheLabel; diff --git a/superset/assets/javascripts/components/CopyToClipboard.jsx b/superset/assets/javascripts/components/CopyToClipboard.jsx index 92de59ceeb738..c9120b2b3ef28 100644 --- a/superset/assets/javascripts/components/CopyToClipboard.jsx +++ b/superset/assets/javascripts/components/CopyToClipboard.jsx @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Tooltip, OverlayTrigger, MenuItem } from 'react-bootstrap'; const propTypes = { @@ -97,7 +98,7 @@ export default class CopyToClipboard extends React.Component { onClick={this.onClick.bind(this)} onMouseOut={this.onMouseOut} > - {this.props.copyNode} + {this.props.copyNode} ); diff --git a/superset/assets/javascripts/components/FaveStar.jsx b/superset/assets/javascripts/components/FaveStar.jsx index 4e6afa2883f87..8282066954fcb 100644 --- a/superset/assets/javascripts/components/FaveStar.jsx +++ b/superset/assets/javascripts/components/FaveStar.jsx @@ -1,9 +1,10 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import cx from 'classnames'; import TooltipWrapper from './TooltipWrapper'; const propTypes = { - sliceId: PropTypes.string.isRequired, + sliceId: PropTypes.number.isRequired, actions: PropTypes.object.isRequired, isStarred: PropTypes.bool.isRequired, }; diff --git a/superset/assets/javascripts/components/FilterableTable/FilterableTable.jsx b/superset/assets/javascripts/components/FilterableTable/FilterableTable.jsx new file mode 100644 index 0000000000000..f72014ab97401 --- /dev/null +++ b/superset/assets/javascripts/components/FilterableTable/FilterableTable.jsx @@ -0,0 +1,193 @@ +import { List } from 'immutable'; +import PropTypes from 'prop-types'; +import React, { PureComponent } from 'react'; +import { + Column, + Table, + SortDirection, + SortIndicator, +} from 'react-virtualized'; +import { getTextWidth } from '../../modules/visUtils'; + +const propTypes = { + orderedColumnKeys: PropTypes.array.isRequired, + data: PropTypes.array.isRequired, + height: PropTypes.number.isRequired, + filterText: PropTypes.string, + headerHeight: PropTypes.number, + overscanRowCount: PropTypes.number, + rowHeight: PropTypes.number, + striped: PropTypes.bool, +}; + +const defaultProps = { + filterText: '', + headerHeight: 32, + overscanRowCount: 10, + rowHeight: 32, + striped: true, +}; + +export default class FilterableTable extends PureComponent { + constructor(props) { + super(props); + this.list = List(this.formatTableData(props.data)); + this.headerRenderer = this.headerRenderer.bind(this); + this.rowClassName = this.rowClassName.bind(this); + this.sort = this.sort.bind(this); + + this.widthsForColumnsByKey = this.getWidthsForColumns(); + this.totalTableWidth = props.orderedColumnKeys + .map(key => this.widthsForColumnsByKey[key]) + .reduce((curr, next) => curr + next); + + this.state = { + sortBy: null, + sortDirection: SortDirection.ASC, + fitted: false, + }; + } + + componentDidMount() { + this.fitTableToWidthIfNeeded(); + } + + getDatum(list, index) { + return list.get(index % list.size); + } + + getWidthsForColumns() { + const PADDING = 40; // accounts for cell padding and width of sorting icon + const widthsByColumnKey = {}; + this.props.orderedColumnKeys.forEach((key) => { + const colWidths = this.list + .map(d => getTextWidth(d[key]) + PADDING) // get width for each value for a key + .push(getTextWidth(key) + PADDING); // add width of column key to end of list + // set max width as value for key + widthsByColumnKey[key] = Math.max(...colWidths); + }); + return widthsByColumnKey; + } + + fitTableToWidthIfNeeded() { + const containerWidth = this.container.getBoundingClientRect().width; + if (containerWidth > this.totalTableWidth) { + this.totalTableWidth = containerWidth - 2; // accomodates 1px border on container + } + this.setState({ fitted: true }); + } + + formatTableData(data) { + const formattedData = data.map((row) => { + const newRow = {}; + for (const k in row) { + const val = row[k]; + if (typeof (val) === 'string') { + newRow[k] = val; + } else { + newRow[k] = JSON.stringify(val); + } + } + return newRow; + }); + return formattedData; + } + + hasMatch(text, row) { + const values = []; + for (const key in row) { + if (row.hasOwnProperty(key)) { + values.push(row[key].toLowerCase()); + } + } + return values.some(v => v.includes(text.toLowerCase())); + } + + headerRenderer({ dataKey, label, sortBy, sortDirection }) { + return ( +
+ {label} + {sortBy === dataKey && + + } +
+ ); + } + + rowClassName({ index }) { + let className = ''; + if (this.props.striped) { + className = index % 2 === 0 ? 'even-row' : 'odd-row'; + } + return className; + } + + sort({ sortBy, sortDirection }) { + this.setState({ sortBy, sortDirection }); + } + + render() { + const { sortBy, sortDirection } = this.state; + const { + filterText, + headerHeight, + height, + orderedColumnKeys, + overscanRowCount, + rowHeight, + } = this.props; + + let sortedAndFilteredList = this.list; + // filter list + if (filterText) { + sortedAndFilteredList = this.list.filter(row => this.hasMatch(filterText, row)); + } + // sort list + if (sortBy) { + sortedAndFilteredList = sortedAndFilteredList + .sortBy(item => item[sortBy]) + .update(list => sortDirection === SortDirection.DESC ? list.reverse() : list); + } + + const rowGetter = ({ index }) => this.getDatum(sortedAndFilteredList, index); + + return ( +
{ this.container = ref; }} + > + {this.state.fitted && + + {orderedColumnKeys.map(columnKey => ( + + ))} +
+ } +
+ ); + } +} + +FilterableTable.propTypes = propTypes; +FilterableTable.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/components/FilterableTable/FilterableTableStyles.css b/superset/assets/javascripts/components/FilterableTable/FilterableTableStyles.css new file mode 100644 index 0000000000000..c0c3717b63536 --- /dev/null +++ b/superset/assets/javascripts/components/FilterableTable/FilterableTableStyles.css @@ -0,0 +1,60 @@ +.ReactVirtualized__Table__headerRow { + font-weight: 700; + display: flex; + flex-direction: row; + align-items: center; +} +.ReactVirtualized__Table__row { + display: flex; + flex-direction: row; +} +.ReactVirtualized__Table__headerTruncatedText { + display: inline-block; + max-width: 100%; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.ReactVirtualized__Table__headerColumn, +.ReactVirtualized__Table__rowColumn { + min-width: 0px; + border-right: 1px solid #ccc; + align-self: center; + padding: 12px; + font-size: 12px; +} +.ReactVirtualized__Table__headerColumn:last-of-type, +.ReactVirtualized__Table__rowColumn:last-of-type { + border-right: 0px; +} +.ReactVirtualized__Table__headerColumn:focus, +.ReactVirtualized__Table__Grid:focus { + outline: none; +} +.ReactVirtualized__Table__rowColumn { + text-overflow: ellipsis; + white-space: nowrap; +} +.ReactVirtualized__Table__sortableHeaderColumn { + cursor: pointer; +} +.ReactVirtualized__Table__sortableHeaderIconContainer { + display: flex; + align-items: center; +} +.ReactVirtualized__Table__sortableHeaderIcon { + flex: 0 0 24px; + height: 1em; + width: 1em; + fill: currentColor; +} +.even-row { background: #f2f2f2; } +.odd-row { background: #ffffff; } +.even-row, +.odd-row { + border: none; +} +.filterable-table-container { + overflow: auto; + border: 1px solid #ccc; +} diff --git a/superset/assets/javascripts/components/InfoTooltipWithTrigger.jsx b/superset/assets/javascripts/components/InfoTooltipWithTrigger.jsx index 39b5ff8f8b6f0..d0763fd19c6aa 100644 --- a/superset/assets/javascripts/components/InfoTooltipWithTrigger.jsx +++ b/superset/assets/javascripts/components/InfoTooltipWithTrigger.jsx @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Tooltip, OverlayTrigger } from 'react-bootstrap'; import { slugify } from '../modules/utils'; diff --git a/superset/assets/javascripts/components/Loading.jsx b/superset/assets/javascripts/components/Loading.jsx new file mode 100644 index 0000000000000..f12b9ab707b67 --- /dev/null +++ b/superset/assets/javascripts/components/Loading.jsx @@ -0,0 +1,27 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const propTypes = { + size: PropTypes.number, +}; +const defaultProps = { + size: 25, +}; + +export default function Loading(props) { + return ( + Loading... + ); +} +Loading.propTypes = propTypes; +Loading.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/components/ModalTrigger.jsx b/superset/assets/javascripts/components/ModalTrigger.jsx index 58734b0a2946b..628f0067bd49f 100644 --- a/superset/assets/javascripts/components/ModalTrigger.jsx +++ b/superset/assets/javascripts/components/ModalTrigger.jsx @@ -1,9 +1,11 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Modal } from 'react-bootstrap'; -import Button from './Button'; import cx from 'classnames'; +import Button from './Button'; const propTypes = { + animation: PropTypes.bool, triggerNode: PropTypes.node.isRequired, modalTitle: PropTypes.node.isRequired, modalBody: PropTypes.node, // not required because it can be generated by beforeOpen @@ -17,6 +19,7 @@ const propTypes = { }; const defaultProps = { + animation: true, beforeOpen: () => {}, onExit: () => {}, isButton: false, @@ -46,6 +49,7 @@ export default class ModalTrigger extends React.Component { renderModal() { return ( + diff --git a/superset/assets/javascripts/components/Timer.jsx b/superset/assets/javascripts/components/Timer.jsx index 98b5883a63bd7..b221859d196e3 100644 --- a/superset/assets/javascripts/components/Timer.jsx +++ b/superset/assets/javascripts/components/Timer.jsx @@ -1,12 +1,29 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { now, fDuration } from '../modules/dates'; -class Timer extends React.PureComponent { +const propTypes = { + endTime: PropTypes.number, + isRunning: PropTypes.bool.isRequired, + startTime: PropTypes.number, + status: PropTypes.string, + style: PropTypes.object, +}; + +const defaultProps = { + endTime: null, + startTime: null, + status: 'success', + style: null, +}; + +export default class Timer extends React.PureComponent { constructor(props) { super(props); this.state = { clockStr: '', }; + this.stopwatch = this.stopwatch.bind(this); } componentWillMount() { this.startTimer(); @@ -15,13 +32,12 @@ class Timer extends React.PureComponent { this.stopTimer(); } startTimer() { - if (!(this.timer)) { - this.timer = setInterval(this.stopwatch.bind(this), 30); + if (!this.timer) { + this.timer = setInterval(this.stopwatch, 30); } } stopTimer() { - clearInterval(this.timer); - this.timer = null; + this.timer = clearInterval(this.timer); } stopwatch() { if (this.props && this.props.startTime) { @@ -53,19 +69,6 @@ class Timer extends React.PureComponent { return timerSpan; } } -Timer.propTypes = { - startTime: React.PropTypes.number, - endTime: React.PropTypes.number, - isRunning: React.PropTypes.bool.isRequired, - status: React.PropTypes.string, - style: React.PropTypes.object, -}; - -Timer.defaultProps = { - startTime: null, - endTime: null, - status: 'success', - style: null, -}; -export default Timer; +Timer.propTypes = propTypes; +Timer.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/components/TooltipWrapper.jsx b/superset/assets/javascripts/components/TooltipWrapper.jsx index 56f0c148e2a25..b189041603de8 100644 --- a/superset/assets/javascripts/components/TooltipWrapper.jsx +++ b/superset/assets/javascripts/components/TooltipWrapper.jsx @@ -1,10 +1,11 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Tooltip, OverlayTrigger } from 'react-bootstrap'; import { slugify } from '../modules/utils'; const propTypes = { label: PropTypes.string.isRequired, - tooltip: PropTypes.string.isRequired, + tooltip: PropTypes.node.isRequired, children: PropTypes.node.isRequired, placement: PropTypes.string, }; diff --git a/superset/assets/javascripts/constants.js b/superset/assets/javascripts/constants.js new file mode 100644 index 0000000000000..cbb74800a00c5 --- /dev/null +++ b/superset/assets/javascripts/constants.js @@ -0,0 +1 @@ +export const QUERY_TIMEOUT_THRESHOLD = 45000; diff --git a/superset/assets/javascripts/css-theme.js b/superset/assets/javascripts/css-theme.js index c03b05acf8563..8fab234f65f6f 100644 --- a/superset/assets/javascripts/css-theme.js +++ b/superset/assets/javascripts/css-theme.js @@ -1,2 +1,2 @@ -require('../stylesheets/less/index.less'); -require('../stylesheets/react-select/select.less'); +import '../stylesheets/less/index.less'; +import '../stylesheets/react-select/select.less'; diff --git a/superset/assets/javascripts/dashboard/Dashboard.jsx b/superset/assets/javascripts/dashboard/Dashboard.jsx index 08a1fe2b210bb..3abde441c16ad 100644 --- a/superset/assets/javascripts/dashboard/Dashboard.jsx +++ b/superset/assets/javascripts/dashboard/Dashboard.jsx @@ -1,36 +1,33 @@ -const $ = window.$ = require('jquery'); -const jQuery = window.jQuery = require('jquery'); // eslint-disable-line -const px = require('../modules/superset'); -const d3 = require('d3'); -const urlLib = require('url'); -const utils = require('../modules/utils'); -const { Alert } = require('react-bootstrap'); - import React from 'react'; import { render } from 'react-dom'; +import d3 from 'd3'; +import { Alert } from 'react-bootstrap'; +import moment from 'moment'; + import GridLayout from './components/GridLayout'; import Header from './components/Header'; +import { appSetup } from '../common'; + +import '../../stylesheets/dashboard.css'; + +const px = require('../modules/superset'); +const urlLib = require('url'); +const utils = require('../modules/utils'); -require('bootstrap'); -require('../../stylesheets/dashboard.css'); -require('../superset-select2.js'); +appSetup(); -export function getInitialState(dashboardData, context) { - const dashboard = Object.assign({ context }, utils.controllerInterface, dashboardData); +export function getInitialState(boostrapData) { + const dashboard = Object.assign({}, utils.controllerInterface, boostrapData.dashboard_data); dashboard.firstLoad = true; dashboard.posDict = {}; if (dashboard.position_json) { - dashboard.position_json.forEach(position => { + dashboard.position_json.forEach((position) => { dashboard.posDict[position.slice_id] = position; }); } - dashboard.curUserId = dashboard.context.user_id; dashboard.refreshTimer = null; - - const state = { - dashboard, - }; + const state = Object.assign({}, boostrapData, { dashboard }); return state; } @@ -57,19 +54,19 @@ function renderAlert() { button on the top right to save your changes.
, - document.getElementById('alert-container') + document.getElementById('alert-container'), ); } function initDashboardView(dashboard) { render(
, - document.getElementById('dashboard-header') + document.getElementById('dashboard-header'), ); // eslint-disable-next-line no-param-reassign dashboard.reactGridLayout = render( , - document.getElementById('grid-container') + document.getElementById('grid-container'), ); // Displaying widget controls on hover @@ -79,13 +76,10 @@ function initDashboardView(dashboard) { }, function () { $(this).find('.chart-controls').fadeOut(300); - } + }, ); $('div.grid-container').css('visibility', 'visible'); - $('.select2').select2({ - dropdownAutoWidth: true, - }); $('div.widget').click(function (e) { const $this = $(this); const $target = $(e.target); @@ -102,19 +96,20 @@ function initDashboardView(dashboard) { $('[data-toggle="tooltip"]').tooltip({ container: 'body' }); } -export function dashboardContainer(dashboard) { +export function dashboardContainer(dashboard, datasources, userid) { return Object.assign({}, dashboard, { type: 'dashboard', filters: {}, + curUserId: userid, init() { this.sliceObjects = []; dashboard.slices.forEach((data) => { if (data.error) { - const html = '
' + data.error + '
'; - $('#slice_' + data.slice_id).find('.token').html(html); + const html = `
${data.error}
`; + $(`#slice_${data.slice_id}`).find('.token').html(html); } else { - const slice = px.Slice(data, this); - $('#slice_' + data.slice_id).find('a.refresh').click(() => { + const slice = px.Slice(data, datasources[data.form_data.datasource], this); + $(`#slice_${data.slice_id}`).find('a.refresh').click(() => { slice.render(true); }); this.sliceObjects.push(slice); @@ -150,13 +145,15 @@ export function dashboardContainer(dashboard) { done(slice) { const refresh = slice.getWidgetHeader().find('.refresh'); const data = slice.data; + const cachedWhen = moment.utc(data.cached_dttm).fromNow(); if (data !== undefined && data.is_cached) { refresh .addClass('danger') - .attr('title', - 'Served from data cached at ' + data.cached_dttm + - '. Click to force refresh') - .tooltip('fixTitle'); + .attr( + 'title', + `Served from data cached ${cachedWhen}. ` + + 'Click to force refresh') + .tooltip('fixTitle'); } else { refresh .removeClass('danger') @@ -165,9 +162,7 @@ export function dashboardContainer(dashboard) { } }, effectiveExtraFilters(sliceId) { - // Summarized filter, not defined by sliceId - // returns k=field, v=array of values - const f = {}; + const f = []; const immuneSlices = this.metadata.filter_immune_slices || []; if (sliceId && immuneSlices.includes(sliceId)) { // The slice is immune to dashboard fiterls @@ -185,7 +180,11 @@ export function dashboardContainer(dashboard) { for (const filteringSliceId in this.filters) { for (const field in this.filters[filteringSliceId]) { if (!immuneToFields.includes(field)) { - f[field] = this.filters[filteringSliceId][field]; + f.push({ + col: field, + op: 'in', + val: this.filters[filteringSliceId][field], + }); } } } @@ -197,8 +196,13 @@ export function dashboardContainer(dashboard) { } if (!(col in this.filters[sliceId]) || !merge) { this.filters[sliceId][col] = vals; - } else { + + // d3.merge pass in array of arrays while some value form filter components + // from and to filter box require string to be process and return + } else if (this.filters[sliceId][col] instanceof Array) { this.filters[sliceId][col] = d3.merge([this.filters[sliceId][col], vals]); + } else { + this.filters[sliceId][col] = d3.merge([[this.filters[sliceId][col]], vals])[0] || ''; } if (refresh) { this.refreshExcept(sliceId); @@ -239,7 +243,7 @@ export function dashboardContainer(dashboard) { const dash = this; const maxRandomDelay = Math.max(interval * 0.2, 5000); const refreshAll = () => { - dash.sliceObjects.forEach(slice => { + dash.sliceObjects.forEach((slice) => { const force = !dash.firstLoad; setTimeout(() => { slice.render(force); @@ -262,10 +266,10 @@ export function dashboardContainer(dashboard) { }, refreshExcept(sliceId) { const immune = this.metadata.filter_immune_slices || []; - this.sliceObjects.forEach(slice => { + this.sliceObjects.forEach((slice) => { if (slice.data.slice_id !== sliceId && immune.indexOf(slice.data.slice_id) === -1) { slice.render(); - const sliceSeletor = $(`#${slice.data.token}-cell`); + const sliceSeletor = $(`#${slice.data.slice_id}-cell`); sliceSeletor.addClass('slice-cell-highlight'); setTimeout(function () { sliceSeletor.removeClass('slice-cell-highlight'); @@ -338,11 +342,11 @@ export function dashboardContainer(dashboard) { $(document).ready(() => { // Getting bootstrapped data from the DOM - const dashboardData = $('.dashboard').data('dashboard'); - const contextData = $('.dashboard').data('context'); + utils.initJQueryAjax(); + const dashboardData = $('.dashboard').data('bootstrap'); - const state = getInitialState(dashboardData, contextData); - const dashboard = dashboardContainer(state.dashboard); + const state = getInitialState(dashboardData); + const dashboard = dashboardContainer(state.dashboard, state.datasources, state.user_id); initDashboardView(dashboard); dashboard.init(); }); diff --git a/superset/assets/javascripts/dashboard/components/CodeModal.jsx b/superset/assets/javascripts/dashboard/components/CodeModal.jsx index 3346dabf5e6df..77f2dafea08a0 100644 --- a/superset/assets/javascripts/dashboard/components/CodeModal.jsx +++ b/superset/assets/javascripts/dashboard/components/CodeModal.jsx @@ -1,22 +1,22 @@ import React from 'react'; +import PropTypes from 'prop-types'; import ModalTrigger from '../../components/ModalTrigger'; const propTypes = { - triggerNode: React.PropTypes.node.isRequired, - code: React.PropTypes.string, - codeCallback: React.PropTypes.func, + triggerNode: PropTypes.node.isRequired, + code: PropTypes.string, + codeCallback: PropTypes.func, }; const defaultProps = { + codeCallback: () => {}, }; export default class CodeModal extends React.PureComponent { constructor(props) { super(props); - this.state = { - refreshFrequency: props.initialRefreshFrequency, - }; + this.state = { code: props.code }; } beforeOpen() { let code = this.props.code; diff --git a/superset/assets/javascripts/dashboard/components/Controls.jsx b/superset/assets/javascripts/dashboard/components/Controls.jsx index 86891f15da711..1169642ff60e5 100644 --- a/superset/assets/javascripts/dashboard/components/Controls.jsx +++ b/superset/assets/javascripts/dashboard/components/Controls.jsx @@ -1,8 +1,7 @@ -const $ = window.$ = require('jquery'); - import React from 'react'; - +import PropTypes from 'prop-types'; import { ButtonGroup } from 'react-bootstrap'; + import Button from '../../components/Button'; import CssEditor from './CssEditor'; import RefreshIntervalModal from './RefreshIntervalModal'; @@ -10,26 +9,23 @@ import SaveModal from './SaveModal'; import CodeModal from './CodeModal'; import SliceAdder from './SliceAdder'; +const $ = window.$ = require('jquery'); + const propTypes = { - dashboard: React.PropTypes.object.isRequired, + dashboard: PropTypes.object.isRequired, }; class Controls extends React.PureComponent { constructor(props) { super(props); this.state = { - css: props.dashboard.css, + css: props.dashboard.css || '', cssTemplates: [], }; } - refresh() { - this.props.dashboard.sliceObjects.forEach((slice) => { - slice.render(true); - }); - } componentWillMount() { $.get('/csstemplateasyncmodelview/api/read', (data) => { - const cssTemplates = data.result.map((row) => ({ + const cssTemplates = data.result.map(row => ({ value: row.template_name, css: row.css, label: row.template_name, @@ -37,13 +33,17 @@ class Controls extends React.PureComponent { this.setState({ cssTemplates }); }); } + refresh() { + this.props.dashboard.sliceObjects.forEach((slice) => { + slice.render(true); + }); + } changeCss(css) { this.setState({ css }); this.props.dashboard.onChange(); } render() { const dashboard = this.props.dashboard; - const canSave = dashboard.context.dash_save_perm; const emailBody = `Checkout this dashboard: ${window.location.href}`; const emailLink = 'mailto:?Subject=Superset%20Dashboard%20' + `${dashboard.dashboard_title}&Body=${emailBody}`; @@ -81,11 +81,16 @@ class Controls extends React.PureComponent { onChange={this.changeCss.bind(this)} /> + @@ -93,14 +98,11 @@ class Controls extends React.PureComponent { dashboard={dashboard} css={this.state.css} triggerNode={ - + } /> - ); } diff --git a/superset/assets/javascripts/dashboard/components/CssEditor.jsx b/superset/assets/javascripts/dashboard/components/CssEditor.jsx index e65a4dbd1663c..b77ab9d0ff5e6 100644 --- a/superset/assets/javascripts/dashboard/components/CssEditor.jsx +++ b/superset/assets/javascripts/dashboard/components/CssEditor.jsx @@ -1,18 +1,18 @@ import React from 'react'; - -import ModalTrigger from '../../components/ModalTrigger'; +import PropTypes from 'prop-types'; import Select from 'react-select'; import AceEditor from 'react-ace'; import 'brace/mode/css'; import 'brace/theme/github'; +import ModalTrigger from '../../components/ModalTrigger'; const propTypes = { - initialCss: React.PropTypes.string, - triggerNode: React.PropTypes.node.isRequired, - onChange: React.PropTypes.func, - templates: React.PropTypes.array, + initialCss: PropTypes.string, + triggerNode: PropTypes.node.isRequired, + onChange: PropTypes.func, + templates: PropTypes.array, }; const defaultProps = { @@ -94,7 +94,7 @@ class CssEditor extends React.PureComponent { width="100%" editorProps={{ $blockScrolling: true }} enableLiveAutocompletion - value={this.state.css} + value={this.state.css || ''} />
diff --git a/superset/assets/javascripts/dashboard/components/GridLayout.jsx b/superset/assets/javascripts/dashboard/components/GridLayout.jsx index e2a118c6da1a0..382d967a95a7d 100644 --- a/superset/assets/javascripts/dashboard/components/GridLayout.jsx +++ b/superset/assets/javascripts/dashboard/components/GridLayout.jsx @@ -1,10 +1,13 @@ -import $ from 'jquery'; -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Responsive, WidthProvider } from 'react-grid-layout'; +import $ from 'jquery'; + import SliceCell from './SliceCell'; require('react-grid-layout/css/styles.css'); require('react-resizable/css/styles.css'); + const ResponsiveReactGridLayout = WidthProvider(Responsive); const propTypes = { @@ -98,7 +101,7 @@ class GridLayout extends React.Component { id={'slice_' + slice.slice_id} key={slice.slice_id} data-slice-id={slice.slice_id} - className={`widget ${slice.viz_name}`} + className={`widget ${slice.form_data.viz_type}`} >
-
- {!this.props.dashboard.context.standalone_mode && +
+ {!this.props.dashboard.standalone_mode && }
diff --git a/superset/assets/javascripts/dashboard/components/RefreshIntervalModal.jsx b/superset/assets/javascripts/dashboard/components/RefreshIntervalModal.jsx index 719302d585496..d392c98df5375 100644 --- a/superset/assets/javascripts/dashboard/components/RefreshIntervalModal.jsx +++ b/superset/assets/javascripts/dashboard/components/RefreshIntervalModal.jsx @@ -1,12 +1,12 @@ import React from 'react'; - -import ModalTrigger from '../../components/ModalTrigger'; +import PropTypes from 'prop-types'; import Select from 'react-select'; +import ModalTrigger from '../../components/ModalTrigger'; const propTypes = { - triggerNode: React.PropTypes.node.isRequired, - initialRefreshFrequency: React.PropTypes.number, - onChange: React.PropTypes.func, + triggerNode: PropTypes.node.isRequired, + initialRefreshFrequency: PropTypes.number, + onChange: PropTypes.func, }; const defaultProps = { diff --git a/superset/assets/javascripts/dashboard/components/SaveModal.jsx b/superset/assets/javascripts/dashboard/components/SaveModal.jsx index 60e40365b5baa..a414308a08a34 100644 --- a/superset/assets/javascripts/dashboard/components/SaveModal.jsx +++ b/superset/assets/javascripts/dashboard/components/SaveModal.jsx @@ -1,15 +1,15 @@ -const $ = window.$ = require('jquery'); - import React from 'react'; +import PropTypes from 'prop-types'; import { Button, FormControl, FormGroup, Radio } from 'react-bootstrap'; import { getAjaxErrorMsg, showModal } from '../../modules/utils'; - import ModalTrigger from '../../components/ModalTrigger'; +const $ = window.$ = require('jquery'); + const propTypes = { - css: React.PropTypes.string, - dashboard: React.PropTypes.object.isRequired, - triggerNode: React.PropTypes.node.isRequired, + css: PropTypes.string, + dashboard: PropTypes.object.isRequired, + triggerNode: PropTypes.node.isRequired, }; class SaveModal extends React.PureComponent { @@ -40,6 +40,7 @@ class SaveModal extends React.PureComponent { saveDashboardRequest(data, url, saveType) { const dashboard = this.props.dashboard; const saveModal = this.modal; + Object.assign(data, { css: this.props.css }); $.ajax({ type: 'POST', url, @@ -107,7 +108,6 @@ class SaveModal extends React.PureComponent { { this.modal = modal; }} triggerNode={this.props.triggerNode} - isButton modalTitle="Save Dashboard" modalBody={ diff --git a/superset/assets/javascripts/dashboard/components/SliceAdder.jsx b/superset/assets/javascripts/dashboard/components/SliceAdder.jsx index 69959642765ae..a96effef4b196 100644 --- a/superset/assets/javascripts/dashboard/components/SliceAdder.jsx +++ b/superset/assets/javascripts/dashboard/components/SliceAdder.jsx @@ -1,7 +1,10 @@ +import React from 'react'; import $ from 'jquery'; -import React, { PropTypes } from 'react'; +import PropTypes from 'prop-types'; import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table'; + import ModalTrigger from '../../components/ModalTrigger'; + require('react-bootstrap-table/css/react-bootstrap-table.css'); const propTypes = { @@ -39,7 +42,7 @@ class SliceAdder extends React.Component { this.slicesRequest = $.ajax({ url: uri, type: 'GET', - success: response => { + success: (response) => { // Prepare slice data for table const slices = response.result.map(slice => ({ id: slice.id, @@ -54,7 +57,7 @@ class SliceAdder extends React.Component { slicesLoaded: true, }); }, - error: error => { + error: (error) => { this.errored = true; this.setState({ errorMsg: this.props.dashboard.getAjaxErrorMsg(error), diff --git a/superset/assets/javascripts/dashboard/components/SliceCell.jsx b/superset/assets/javascripts/dashboard/components/SliceCell.jsx index 10abe1cafc534..a57fbded639e4 100644 --- a/superset/assets/javascripts/dashboard/components/SliceCell.jsx +++ b/superset/assets/javascripts/dashboard/components/SliceCell.jsx @@ -1,4 +1,6 @@ -import React, { PropTypes } from 'react'; +/* eslint-disable react/no-danger */ +import React from 'react'; +import PropTypes from 'prop-types'; const propTypes = { slice: PropTypes.object.isRequired, @@ -8,7 +10,7 @@ const propTypes = { function SliceCell({ expandedSlices, removeSlice, slice }) { return ( -
+
@@ -62,18 +64,19 @@ function SliceCell({ expandedSlices, removeSlice, slice }) { expandedSlices[String(slice.slice_id)] ? {} : { display: 'none' } } dangerouslySetInnerHTML={{ __html: slice.description_markeddown }} - > - -
+ />
-
+
loading -
+
diff --git a/superset/assets/javascripts/explorev2/actions/exploreActions.js b/superset/assets/javascripts/explore/actions/exploreActions.js similarity index 51% rename from superset/assets/javascripts/explorev2/actions/exploreActions.js rename to superset/assets/javascripts/explore/actions/exploreActions.js index 29ea8e40dfaa2..3f683243fb1a0 100644 --- a/superset/assets/javascripts/explorev2/actions/exploreActions.js +++ b/superset/assets/javascripts/explore/actions/exploreActions.js @@ -1,7 +1,10 @@ /* eslint camelcase: 0 */ +import { getExploreUrl } from '../exploreUtils'; +import { QUERY_TIMEOUT_THRESHOLD } from '../../constants'; + const $ = window.$ = require('jquery'); + const FAVESTAR_BASE_URL = '/superset/favstar/slice'; -import { getExploreUrl } from '../exploreUtils'; export const SET_DATASOURCE_TYPE = 'SET_DATASOURCE_TYPE'; export function setDatasourceType(datasourceType) { @@ -13,42 +16,88 @@ export function setDatasource(datasource) { return { type: SET_DATASOURCE, datasource }; } -export const FETCH_STARTED = 'FETCH_STARTED'; -export function fetchStarted() { - return { type: FETCH_STARTED }; +export const SET_DATASOURCES = 'SET_DATASOURCES'; +export function setDatasources(datasources) { + return { type: SET_DATASOURCES, datasources }; +} + +export const FETCH_DATASOURCE_STARTED = 'FETCH_DATASOURCE_STARTED'; +export function fetchDatasourceStarted() { + return { type: FETCH_DATASOURCE_STARTED }; +} + +export const FETCH_DATASOURCE_SUCCEEDED = 'FETCH_DATASOURCE_SUCCEEDED'; +export function fetchDatasourceSucceeded() { + return { type: FETCH_DATASOURCE_SUCCEEDED }; +} + +export const FETCH_DATASOURCE_FAILED = 'FETCH_DATASOURCE_FAILED'; +export function fetchDatasourceFailed(error) { + return { type: FETCH_DATASOURCE_FAILED, error }; +} + +export const FETCH_DATASOURCES_STARTED = 'FETCH_DATASOURCES_STARTED'; +export function fetchDatasourcesStarted() { + return { type: FETCH_DATASOURCES_STARTED }; +} + +export const FETCH_DATASOURCES_SUCCEEDED = 'FETCH_DATASOURCES_SUCCEEDED'; +export function fetchDatasourcesSucceeded() { + return { type: FETCH_DATASOURCES_SUCCEEDED }; +} + +export const FETCH_DATASOURCES_FAILED = 'FETCH_DATASOURCES_FAILED'; +export function fetchDatasourcesFailed(error) { + return { type: FETCH_DATASOURCES_FAILED, error }; +} + +export const RESET_FIELDS = 'RESET_FIELDS'; +export function resetControls() { + return { type: RESET_FIELDS }; } -export const FETCH_SUCCEEDED = 'FETCH_SUCCEEDED'; -export function fetchSucceeded() { - return { type: FETCH_SUCCEEDED }; +export const TRIGGER_QUERY = 'TRIGGER_QUERY'; +export function triggerQuery() { + return { type: TRIGGER_QUERY }; } -export const FETCH_FAILED = 'FETCH_FAILED'; -export function fetchFailed(error) { - return { type: FETCH_FAILED, error }; +export function fetchDatasourceMetadata(datasourceKey, alsoTriggerQuery = false) { + return function (dispatch) { + dispatch(fetchDatasourceStarted()); + const url = `/superset/fetch_datasource_metadata?datasourceKey=${datasourceKey}`; + $.ajax({ + type: 'GET', + url, + success: (data) => { + dispatch(setDatasource(data)); + dispatch(fetchDatasourceSucceeded()); + dispatch(resetControls()); + if (alsoTriggerQuery) { + dispatch(triggerQuery()); + } + }, + error(error) { + dispatch(fetchDatasourceFailed(error.responseJSON.error)); + }, + }); + }; } -export function fetchDatasourceMetadata(datasourceId, datasourceType) { +export function fetchDatasources() { return function (dispatch) { - dispatch(fetchStarted()); - - if (datasourceId) { - const params = [`datasource_id=${datasourceId}`, `datasource_type=${datasourceType}`]; - const url = '/superset/fetch_datasource_metadata?' + params.join('&'); - $.ajax({ - type: 'GET', - url, - success: (data) => { - dispatch(setDatasource(data)); - dispatch(fetchSucceeded()); - }, - error(error) { - dispatch(fetchFailed(error.responseJSON.error)); - }, - }); - } else { - dispatch(fetchFailed('Please select a datasource')); - } + dispatch(fetchDatasourcesStarted()); + const url = '/superset/datasources/'; + $.ajax({ + type: 'GET', + url, + success: (data) => { + dispatch(setDatasources(data)); + dispatch(fetchDatasourcesSucceeded()); + }, + error(error) { + dispatch(fetchDatasourcesFailed(error.responseJSON.error)); + }, + }); }; } @@ -80,13 +129,13 @@ export function saveFaveStar(sliceId, isStarred) { } export const SET_FIELD_VALUE = 'SET_FIELD_VALUE'; -export function setFieldValue(fieldName, value, validationErrors) { - return { type: SET_FIELD_VALUE, fieldName, value, validationErrors }; +export function setControlValue(controlName, value, validationErrors) { + return { type: SET_FIELD_VALUE, controlName, value, validationErrors }; } export const CHART_UPDATE_STARTED = 'CHART_UPDATE_STARTED'; -export function chartUpdateStarted() { - return { type: CHART_UPDATE_STARTED }; +export function chartUpdateStarted(queryRequest) { + return { type: CHART_UPDATE_STARTED, queryRequest }; } export const CHART_UPDATE_SUCCEEDED = 'CHART_UPDATE_SUCCEEDED'; @@ -94,6 +143,19 @@ export function chartUpdateSucceeded(queryResponse) { return { type: CHART_UPDATE_SUCCEEDED, queryResponse }; } +export const CHART_UPDATE_STOPPED = 'CHART_UPDATE_STOPPED'; +export function chartUpdateStopped(queryRequest) { + if (queryRequest) { + queryRequest.abort(); + } + return { type: CHART_UPDATE_STOPPED }; +} + +export const CHART_UPDATE_TIMEOUT = 'CHART_UPDATE_TIMEOUT'; +export function chartUpdateTimeout(statusText) { + return { type: CHART_UPDATE_TIMEOUT, statusText }; +} + export const CHART_UPDATE_FAILED = 'CHART_UPDATE_FAILED'; export function chartUpdateFailed(queryResponse) { return { type: CHART_UPDATE_FAILED, queryResponse }; @@ -126,7 +188,7 @@ export function fetchDashboardsSucceeded(choices) { export const FETCH_DASHBOARDS_FAILED = 'FETCH_DASHBOARDS_FAILED'; export function fetchDashboardsFailed(userId) { - return { type: FETCH_FAILED, userId }; + return { type: FETCH_DASHBOARDS_FAILED, userId }; } export function fetchDashboards(userId) { @@ -175,14 +237,29 @@ export function updateChartStatus(status) { } export const RUN_QUERY = 'RUN_QUERY'; -export function runQuery(formData, datasourceType) { +export function runQuery(formData, force = false) { return function (dispatch) { - dispatch(updateChartStatus('loading')); - const url = getExploreUrl(formData, datasourceType, 'json'); - $.getJSON(url, function (queryResponse) { - dispatch(chartUpdateSucceeded(queryResponse)); - }).fail(function (err) { - dispatch(chartUpdateFailed(err)); + const url = getExploreUrl(formData, 'json', force); + const queryRequest = $.ajax({ + url, + dataType: 'json', + success(queryResponse) { + dispatch(chartUpdateSucceeded(queryResponse)); + }, + error(err) { + if (err.statusText === 'timeout') { + dispatch(chartUpdateTimeout(err.statusText)); + } else if (err.statusText !== 'abort') { + dispatch(chartUpdateFailed(err.responseJSON)); + } + }, + timeout: QUERY_TIMEOUT_THRESHOLD, }); + dispatch(chartUpdateStarted(queryRequest)); }; } + +export const RENDER_TRIGGERED = 'RENDER_TRIGGERED'; +export function renderTriggered() { + return { type: RENDER_TRIGGERED }; +} diff --git a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx b/superset/assets/javascripts/explore/components/ChartContainer.jsx similarity index 51% rename from superset/assets/javascripts/explorev2/components/ChartContainer.jsx rename to superset/assets/javascripts/explore/components/ChartContainer.jsx index a025d50c2d9b9..9132683b03e13 100644 --- a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx +++ b/superset/assets/javascripts/explore/components/ChartContainer.jsx @@ -1,13 +1,18 @@ import $ from 'jquery'; -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; +import Mustache from 'mustache'; import { connect } from 'react-redux'; -import { Panel, Alert } from 'react-bootstrap'; +import { Alert, Collapse, Panel } from 'react-bootstrap'; import visMap from '../../../visualizations/main'; import { d3format } from '../../modules/utils'; -import ExploreActionButtons from '../../explore/components/ExploreActionButtons'; +import ExploreActionButtons from './ExploreActionButtons'; import FaveStar from '../../components/FaveStar'; import TooltipWrapper from '../../components/TooltipWrapper'; import Timer from '../../components/Timer'; +import { getExploreUrl } from '../exploreUtils'; +import { getFormDataFromControls } from '../stores/store'; +import CachedLabel from '../../components/CachedLabel'; const CHART_STATUS_MAP = { failed: 'danger', @@ -17,20 +22,23 @@ const CHART_STATUS_MAP = { const propTypes = { actions: PropTypes.object.isRequired, + alert: PropTypes.string, can_download: PropTypes.bool.isRequired, - slice_id: PropTypes.string.isRequired, - slice_name: PropTypes.string.isRequired, - viz_type: PropTypes.string.isRequired, - height: PropTypes.string.isRequired, - containerId: PropTypes.string.isRequired, - query: PropTypes.string, - column_formats: PropTypes.object, chartStatus: PropTypes.string, - isStarred: PropTypes.bool.isRequired, - chartUpdateStartTime: PropTypes.number.isRequired, chartUpdateEndTime: PropTypes.number, - alert: PropTypes.string, + chartUpdateStartTime: PropTypes.number.isRequired, + column_formats: PropTypes.object, + containerId: PropTypes.string.isRequired, + height: PropTypes.string.isRequired, + isStarred: PropTypes.bool.isRequired, + slice: PropTypes.object, table_name: PropTypes.string, + viz_type: PropTypes.string.isRequired, + formData: PropTypes.object, + latestQueryFormData: PropTypes.object, + queryResponse: PropTypes.object, + triggerRender: PropTypes.bool, + standalone: PropTypes.bool, }; class ChartContainer extends React.PureComponent { @@ -38,23 +46,21 @@ class ChartContainer extends React.PureComponent { super(props); this.state = { selector: `#${props.containerId}`, + showStackTrace: false, }; } - renderViz() { - const mockSlice = this.getMockedSliceObject(); - try { - visMap[this.props.viz_type](mockSlice, this.props.queryResponse); - this.setState({ mockSlice }); - } catch (e) { - this.props.actions.chartRenderingFailed(e); - } - } - componentDidUpdate(prevProps) { if ( - prevProps.queryResponse !== this.props.queryResponse || - prevProps.height !== this.props.height + this.props.queryResponse && + ( + prevProps.queryResponse !== this.props.queryResponse || + prevProps.height !== this.props.height || + this.props.triggerRender + ) && !this.props.queryResponse.error + && this.props.chartStatus !== 'failed' + && this.props.chartStatus !== 'stopped' + && this.props.chartStatus !== 'loading' ) { this.renderViz(); } @@ -62,41 +68,52 @@ class ChartContainer extends React.PureComponent { getMockedSliceObject() { const props = this.props; + const getHeight = () => { + const headerHeight = this.props.standalone ? 0 : 100; + return parseInt(props.height, 10) - headerHeight; + }; return { - viewSqlQuery: props.query, + viewSqlQuery: this.props.queryResponse.query, containerId: props.containerId, selector: this.state.selector, + formData: this.props.formData, container: { html: (data) => { // this should be a callback to clear the contents of the slice container $(this.state.selector).html(data); }, - css: (dim, size) => { - // dimension can be 'height' - // pixel string can be '300px' - // should call callback to adjust height of chart - $(this.state.selector).css(dim, size); + css: (property, value) => { + $(this.state.selector).css(property, value); }, - height: () => parseInt(props.height, 10) - 100, + height: getHeight, show: () => { }, - get: (n) => ($(this.state.selector).get(n)), - find: (classname) => ($(this.state.selector).find(classname)), + get: n => ($(this.state.selector).get(n)), + find: classname => ($(this.state.selector).find(classname)), }, width: () => this.chartContainerRef.getBoundingClientRect().width, - height: () => parseInt(props.height, 10) - 100, + height: getHeight, - setFilter: () => { - // set filter according to data in store - // used in FilterBox.onChange() + render_template: (s) => { + const context = { + width: this.width, + height: this.height, + }; + return Mustache.render(s, context); }, + setFilter: () => {}, + getFilters: () => ( // return filter objects from viz.formData {} ), + addFilter: () => {}, + + removeFilter: () => {}, + done: () => {}, clearError: () => { // no need to do anything here since Alert is closable @@ -111,9 +128,10 @@ class ChartContainer extends React.PureComponent { }, data: { - csv_endpoint: props.queryResponse.csv_endpoint, - json_endpoint: props.queryResponse.json_endpoint, - standalone_endpoint: props.queryResponse.standalone_endpoint, + csv_endpoint: getExploreUrl(this.props.formData, 'csv'), + json_endpoint: getExploreUrl(this.props.formData, 'json'), + standalone_endpoint: getExploreUrl( + this.props.formData, 'standalone'), }, }; @@ -123,28 +141,65 @@ class ChartContainer extends React.PureComponent { this.props.actions.removeChartAlert(); } + runQuery() { + this.props.actions.runQuery(this.props.formData, true); + } + renderChartTitle() { let title; - if (this.props.slice_name) { - title = this.props.slice_name; + if (this.props.slice) { + title = this.props.slice.slice_name; } else { title = `[${this.props.table_name}] - untitled`; } return title; } + renderViz() { + this.props.actions.renderTriggered(); + const mockSlice = this.getMockedSliceObject(); + this.setState({ mockSlice }); + try { + visMap[this.props.viz_type](mockSlice, this.props.queryResponse); + } catch (e) { + this.props.actions.chartRenderingFailed(e); + } + } + + renderAlert() { + /* eslint-disable react/no-danger */ + const msg = ( +
+ +

+

); + return ( +
+ this.setState({ showStackTrace: !this.state.showStackTrace })} + > + {msg} + + {this.props.queryResponse && this.props.queryResponse.stacktrace && + +
+              {this.props.queryResponse.stacktrace}
+            
+
+ } +
); + } + renderChart() { if (this.props.alert) { - return ( - - {this.props.alert} - - - ); + return this.renderAlert(); } const loading = this.props.chartStatus === 'loading'; return ( @@ -159,7 +214,7 @@ class ChartContainer extends React.PureComponent { }
{ this.chartContainerRef = ref; }} + ref={(ref) => { this.chartContainerRef = ref; }} className={this.props.viz_type} style={{ opacity: loading ? '0.25' : '1', @@ -170,6 +225,12 @@ class ChartContainer extends React.PureComponent { } render() { + if (this.props.standalone) { + // dom manipulation hack to get rid of the boostrap theme's body background + $('body').addClass('background-transparent'); + return this.renderChart(); + } + const queryResponse = this.props.queryResponse; return (
{this.renderChartTitle()} - {this.props.slice_id && + {this.props.slice && @@ -195,7 +256,7 @@ class ChartContainer extends React.PureComponent { > @@ -204,20 +265,28 @@ class ChartContainer extends React.PureComponent { }
+ {this.props.chartStatus === 'success' && + this.props.queryResponse && + this.props.queryResponse.is_cached && + + } - {this.state.mockSlice && - - } +
} @@ -232,21 +301,25 @@ class ChartContainer extends React.PureComponent { ChartContainer.propTypes = propTypes; function mapStateToProps(state) { + const formData = getFormDataFromControls(state.controls); return { - containerId: `slice-container-${state.viz.form_data.slice_id}`, - slice_id: state.viz.form_data.slice_id, - slice_name: state.viz.form_data.slice_name, - viz_type: state.viz.form_data.viz_type, + alert: state.chartAlert, can_download: state.can_download, - chartUpdateStartTime: state.chartUpdateStartTime, - chartUpdateEndTime: state.chartUpdateEndTime, - query: state.viz.query, - column_formats: state.viz.column_formats, chartStatus: state.chartStatus, + chartUpdateEndTime: state.chartUpdateEndTime, + chartUpdateStartTime: state.chartUpdateStartTime, + column_formats: state.datasource ? state.datasource.column_formats : null, + containerId: state.slice ? `slice-container-${state.slice.slice_id}` : 'slice-container', + formData, + latestQueryFormData: state.latestQueryFormData, isStarred: state.isStarred, - alert: state.chartAlert, - table_name: state.viz.form_data.datasource_name, queryResponse: state.queryResponse, + slice: state.slice, + standalone: state.standalone, + table_name: formData.datasource_name, + viz_type: formData.viz_type, + triggerRender: state.triggerRender, + datasourceType: state.datasource ? state.datasource.type : null, }; } diff --git a/superset/assets/javascripts/explore/components/Control.jsx b/superset/assets/javascripts/explore/components/Control.jsx new file mode 100644 index 0000000000000..d9aaea72da330 --- /dev/null +++ b/superset/assets/javascripts/explore/components/Control.jsx @@ -0,0 +1,106 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import CheckboxControl from './controls/CheckboxControl'; +import FilterControl from './controls/FilterControl'; +import HiddenControl from './controls/HiddenControl'; +import SelectControl from './controls/SelectControl'; +import TextAreaControl from './controls/TextAreaControl'; +import TextControl from './controls/TextControl'; +import VizTypeControl from './controls/VizTypeControl'; +import BoundsControl from './controls/BoundsControl'; + +const controlMap = { + CheckboxControl, + FilterControl, + HiddenControl, + SelectControl, + TextAreaControl, + TextControl, + VizTypeControl, + BoundsControl, +}; +const controlTypes = Object.keys(controlMap); + +const propTypes = { + actions: PropTypes.object.isRequired, + name: PropTypes.string.isRequired, + type: PropTypes.oneOf(controlTypes).isRequired, + hidden: PropTypes.bool, + label: PropTypes.string.isRequired, + choices: PropTypes.arrayOf(PropTypes.array), + description: PropTypes.string, + places: PropTypes.number, + validators: PropTypes.array, + validationErrors: PropTypes.array, + renderTrigger: PropTypes.bool, + rightNode: PropTypes.node, + value: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + PropTypes.bool, + PropTypes.array]), +}; + +const defaultProps = { + renderTrigger: false, + validators: [], + hidden: false, + validationErrors: [], +}; + +export default class Control extends React.PureComponent { + constructor(props) { + super(props); + this.validate = this.validate.bind(this); + this.onChange = this.onChange.bind(this); + } + componentDidMount() { + this.validateAndSetValue(this.props.value, []); + } + onChange(value, errors) { + this.validateAndSetValue(value, errors); + } + validateAndSetValue(value, errors) { + let validationErrors = this.props.validationErrors; + let currentErrors = this.validate(value); + if (errors && errors.length > 0) { + currentErrors = validationErrors.concat(errors); + } + if (validationErrors.length + currentErrors.length > 0) { + validationErrors = currentErrors; + } + + if (value !== this.props.value || validationErrors !== this.props.validationErrors) { + this.props.actions.setControlValue(this.props.name, value, validationErrors); + } + } + validate(value) { + const validators = this.props.validators; + const validationErrors = []; + if (validators && validators.length > 0) { + validators.forEach((f) => { + const v = f(value); + if (v) { + validationErrors.push(v); + } + }); + } + return validationErrors; + } + render() { + const ControlType = controlMap[this.props.type]; + const divStyle = this.props.hidden ? { display: 'none' } : null; + return ( +
+ +
+ ); + } +} + +Control.propTypes = propTypes; +Control.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explore/components/ControlHeader.jsx b/superset/assets/javascripts/explore/components/ControlHeader.jsx new file mode 100644 index 0000000000000..616092b79d12b --- /dev/null +++ b/superset/assets/javascripts/explore/components/ControlHeader.jsx @@ -0,0 +1,84 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { ControlLabel, OverlayTrigger, Tooltip } from 'react-bootstrap'; +import InfoTooltipWithTrigger from '../../components/InfoTooltipWithTrigger'; + +const propTypes = { + label: PropTypes.string.isRequired, + description: PropTypes.string, + validationErrors: PropTypes.array, + renderTrigger: PropTypes.bool, + rightNode: PropTypes.node, + leftNode: PropTypes.node, +}; + +const defaultProps = { + validationErrors: [], + renderTrigger: false, +}; + +export default function ControlHeader({ + label, description, validationErrors, renderTrigger, leftNode, rightNode }) { + const hasError = (validationErrors.length > 0); + return ( +
+
+ + {hasError ? + {label} : + {label} + } + {' '} + {(validationErrors.length > 0) && + + + {validationErrors.join(' ')} + + } + > + + + {' '} + + } + {description && + + + {' '} + + } + {renderTrigger && + + + Takes effect on chart immediatly + + } + > + + + {' '} + + } + {leftNode && + {leftNode} + } + +
+ {rightNode && +
+ {rightNode} +
+ } +
+
+ ); +} + +ControlHeader.propTypes = propTypes; +ControlHeader.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/ControlPanelSection.jsx b/superset/assets/javascripts/explore/components/ControlPanelSection.jsx similarity index 93% rename from superset/assets/javascripts/explorev2/components/ControlPanelSection.jsx rename to superset/assets/javascripts/explore/components/ControlPanelSection.jsx index 25607d36e03c5..c6d12cbb6d1c3 100644 --- a/superset/assets/javascripts/explorev2/components/ControlPanelSection.jsx +++ b/superset/assets/javascripts/explore/components/ControlPanelSection.jsx @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Panel } from 'react-bootstrap'; import InfoTooltipWithTrigger from '../../components/InfoTooltipWithTrigger'; diff --git a/superset/assets/javascripts/explore/components/ControlPanelsContainer.jsx b/superset/assets/javascripts/explore/components/ControlPanelsContainer.jsx new file mode 100644 index 0000000000000..9227390d12516 --- /dev/null +++ b/superset/assets/javascripts/explore/components/ControlPanelsContainer.jsx @@ -0,0 +1,106 @@ +/* eslint camelcase: 0 */ +import React from 'react'; +import PropTypes from 'prop-types'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; +import { Alert } from 'react-bootstrap'; +import { sectionsToRender } from '../stores/visTypes'; +import ControlPanelSection from './ControlPanelSection'; +import ControlRow from './ControlRow'; +import Control from './Control'; +import controls from '../stores/controls'; +import * as actions from '../actions/exploreActions'; + +const propTypes = { + actions: PropTypes.object.isRequired, + alert: PropTypes.string, + datasource_type: PropTypes.string.isRequired, + exploreState: PropTypes.object.isRequired, + controls: PropTypes.object.isRequired, + form_data: PropTypes.object.isRequired, + isDatasourceMetaLoading: PropTypes.bool.isRequired, +}; + +class ControlPanelsContainer extends React.Component { + constructor(props) { + super(props); + this.removeAlert = this.removeAlert.bind(this); + this.getControlData = this.getControlData.bind(this); + } + getControlData(controlName) { + const mapF = controls[controlName].mapStateToProps; + if (mapF) { + return Object.assign({}, this.props.controls[controlName], mapF(this.props.exploreState)); + } + return this.props.controls[controlName]; + } + sectionsToRender() { + return sectionsToRender(this.props.form_data.viz_type, this.props.datasource_type); + } + removeAlert() { + this.props.actions.removeControlPanelAlert(); + } + render() { + return ( +
+
+ {this.props.alert && + + {this.props.alert} + + + } + {this.sectionsToRender().map(section => ( + + {section.controlSetRows.map((controlSets, i) => ( + ( + controlName && + + ))} + /> + ))} + + ))} +
+
+ ); + } +} + +ControlPanelsContainer.propTypes = propTypes; + +function mapStateToProps(state) { + return { + alert: state.controlPanelAlert, + isDatasourceMetaLoading: state.isDatasourceMetaLoading, + controls: state.controls, + exploreState: state, + }; +} + +function mapDispatchToProps(dispatch) { + return { + actions: bindActionCreators(actions, dispatch), + }; +} + +export { ControlPanelsContainer }; + +export default connect(mapStateToProps, mapDispatchToProps)(ControlPanelsContainer); diff --git a/superset/assets/javascripts/explore/components/ControlRow.jsx b/superset/assets/javascripts/explore/components/ControlRow.jsx new file mode 100644 index 0000000000000..700ea4f47dbd4 --- /dev/null +++ b/superset/assets/javascripts/explore/components/ControlRow.jsx @@ -0,0 +1,24 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const NUM_COLUMNS = 12; + +const propTypes = { + controls: PropTypes.arrayOf(PropTypes.object).isRequired, +}; + +function ControlSetRow(props) { + const colSize = NUM_COLUMNS / props.controls.length; + return ( +
+ {props.controls.map((control, i) => ( +
+ {control} +
+ ))} +
+ ); +} + +ControlSetRow.propTypes = propTypes; +export default ControlSetRow; diff --git a/superset/assets/javascripts/explore/components/DisplayQueryButton.jsx b/superset/assets/javascripts/explore/components/DisplayQueryButton.jsx index 990c0930cd463..9194ed159f3a0 100644 --- a/superset/assets/javascripts/explore/components/DisplayQueryButton.jsx +++ b/superset/assets/javascripts/explore/components/DisplayQueryButton.jsx @@ -1,24 +1,100 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; +import SyntaxHighlighter from 'react-syntax-highlighter'; +import { github } from 'react-syntax-highlighter/dist/styles'; + import ModalTrigger from './../../components/ModalTrigger'; +const $ = window.$ = require('jquery'); + const propTypes = { - query: PropTypes.string, + animation: PropTypes.bool, + queryResponse: PropTypes.object, + chartStatus: PropTypes.string, + queryEndpoint: PropTypes.string.isRequired, }; - const defaultProps = { - query: '', + animation: true, }; -export default function DisplayQueryButton({ query }) { - const modalBody = (
{query}
); - return ( - Query} - modalTitle="Query" - modalBody={modalBody} - /> - ); +export default class DisplayQueryButton extends React.PureComponent { + constructor(props) { + super(props); + this.state = { + language: null, + query: null, + isLoading: false, + error: null, + }; + this.beforeOpen = this.beforeOpen.bind(this); + this.fetchQuery = this.fetchQuery.bind(this); + } + setStateFromQueryResponse() { + const qr = this.props.queryResponse; + this.setState({ + language: qr.language, + query: qr.query, + isLoading: false, + }); + } + fetchQuery() { + this.setState({ isLoading: true }); + $.ajax({ + type: 'GET', + url: this.props.queryEndpoint, + success: (data) => { + this.setState({ + language: data.language, + query: data.query, + isLoading: false, + error: null, + }); + }, + error: (data) => { + this.setState({ + error: data.responseJSON ? data.responseJSON.error : 'Error...', + isLoading: false, + }); + }, + }); + } + beforeOpen() { + if (['loading', null].indexOf(this.props.chartStatus) >= 0 || !this.props.queryResponse) { + this.fetchQuery(); + } else { + this.setStateFromQueryResponse(); + } + } + renderModalBody() { + if (this.state.isLoading) { + return (Loading...); + } else if (this.state.error) { + return
{this.state.error}
; + } else if (this.state.query) { + return ( + + {this.state.query} + ); + } + return null; + } + render() { + return ( + Query} + modalTitle="Query" + bsSize="large" + beforeOpen={this.beforeOpen} + modalBody={this.renderModalBody()} + /> + ); + } } DisplayQueryButton.propTypes = propTypes; diff --git a/superset/assets/javascripts/explore/components/EmbedCodeButton.jsx b/superset/assets/javascripts/explore/components/EmbedCodeButton.jsx index 3efe2bba29db2..4de5d94831337 100644 --- a/superset/assets/javascripts/explore/components/EmbedCodeButton.jsx +++ b/superset/assets/javascripts/explore/components/EmbedCodeButton.jsx @@ -1,6 +1,7 @@ -import React, { PropTypes } from 'react'; -import CopyToClipboard from './../../components/CopyToClipboard'; +import React from 'react'; +import PropTypes from 'prop-types'; import { Popover, OverlayTrigger } from 'react-bootstrap'; +import CopyToClipboard from './../../components/CopyToClipboard'; const propTypes = { slice: PropTypes.object.isRequired, @@ -56,14 +57,13 @@ export default class EmbedCodeButton extends React.Component { rows="4" readOnly className="form-control input-sm" - > - + />
} + copyNode={} />
@@ -112,7 +112,7 @@ export default class EmbedCodeButton extends React.Component { overlay={this.renderPopover()} > -   +   ); diff --git a/superset/assets/javascripts/explore/components/ExploreActionButtons.jsx b/superset/assets/javascripts/explore/components/ExploreActionButtons.jsx index b88410006106b..249a7017fadb2 100644 --- a/superset/assets/javascripts/explore/components/ExploreActionButtons.jsx +++ b/superset/assets/javascripts/explore/components/ExploreActionButtons.jsx @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import cx from 'classnames'; import URLShortLinkButton from './URLShortLinkButton'; import EmbedCodeButton from './EmbedCodeButton'; @@ -6,40 +7,54 @@ import DisplayQueryButton from './DisplayQueryButton'; const propTypes = { canDownload: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired, - slice: PropTypes.object.isRequired, - query: PropTypes.string, + slice: PropTypes.object, + queryEndpoint: PropTypes.string.isRequired, + queryResponse: PropTypes.object, + chartStatus: PropTypes.string, }; -export default function ExploreActionButtons({ canDownload, slice, query }) { +export default function ExploreActionButtons({ + chartStatus, canDownload, slice, queryResponse, queryEndpoint }) { const exportToCSVClasses = cx('btn btn-default btn-sm', { 'disabled disabledButton': !canDownload, }); - return ( -
- + if (slice) { + return ( + + +
+ ); + } + return ( + ); } diff --git a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx b/superset/assets/javascripts/explore/components/ExploreViewContainer.jsx similarity index 53% rename from superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx rename to superset/assets/javascripts/explore/components/ExploreViewContainer.jsx index 83bdf18eae982..67141241a3626 100644 --- a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx +++ b/superset/assets/javascripts/explore/components/ExploreViewContainer.jsx @@ -1,24 +1,28 @@ /* eslint camelcase: 0 */ import React from 'react'; +import PropTypes from 'prop-types'; import { bindActionCreators } from 'redux'; -import * as actions from '../actions/exploreActions'; import { connect } from 'react-redux'; import ChartContainer from './ChartContainer'; import ControlPanelsContainer from './ControlPanelsContainer'; import SaveModal from './SaveModal'; -import QueryAndSaveBtns from '../../explore/components/QueryAndSaveBtns'; -import { autoQueryFields } from '../stores/fields'; +import QueryAndSaveBtns from './QueryAndSaveBtns'; import { getExploreUrl } from '../exploreUtils'; +import * as actions from '../actions/exploreActions'; +import { getFormDataFromControls } from '../stores/store'; const propTypes = { - form_data: React.PropTypes.object.isRequired, - actions: React.PropTypes.object.isRequired, - datasource_type: React.PropTypes.string.isRequired, - chartStatus: React.PropTypes.string.isRequired, - fields: React.PropTypes.object.isRequired, + actions: PropTypes.object.isRequired, + datasource_type: PropTypes.string.isRequired, + chartStatus: PropTypes.string, + controls: PropTypes.object.isRequired, + forcedHeight: PropTypes.string, + form_data: PropTypes.object.isRequired, + standalone: PropTypes.bool.isRequired, + triggerQuery: PropTypes.bool.isRequired, + queryRequest: PropTypes.object, }; - class ExploreViewContainer extends React.Component { constructor(props) { super(props); @@ -29,44 +33,61 @@ class ExploreViewContainer extends React.Component { } componentDidMount() { + if (!this.props.standalone) { + this.props.actions.fetchDatasources(); + } window.addEventListener('resize', this.handleResize.bind(this)); - this.runQuery(); + this.triggerQueryIfNeeded(); } - componentWillReceiveProps(nextProps) { - const refreshChart = Object.keys(nextProps.form_data).some((field) => ( - nextProps.form_data[field] !== this.props.form_data[field] - && autoQueryFields.indexOf(field) !== -1) - ); - if (refreshChart) { - this.onQuery(); + componentWillReceiveProps(np) { + if (np.controls.viz_type.value !== this.props.controls.viz_type.value) { + this.props.actions.resetControls(); + this.props.actions.triggerQuery(); + } + if (np.controls.datasource.value !== this.props.controls.datasource.value) { + this.props.actions.fetchDatasourceMetadata(np.form_data.datasource, true); } } + componentDidUpdate() { + this.triggerQueryIfNeeded(); + } + componentWillUnmount() { window.removeEventListener('resize', this.handleResize.bind(this)); } onQuery() { - this.runQuery(); - history.pushState( - {}, - document.title, - getExploreUrl(this.props.form_data, this.props.datasource_type) - ); // remove alerts when query this.props.actions.removeControlPanelAlert(); this.props.actions.removeChartAlert(); + + this.props.actions.triggerQuery(); + + history.pushState( + {}, + document.title, + getExploreUrl(this.props.form_data)); + } + + onStop() { + this.props.actions.chartUpdateStopped(this.props.queryRequest); } getHeight() { - const navHeight = 90; + if (this.props.forcedHeight) { + return this.props.forcedHeight + 'px'; + } + const navHeight = this.props.standalone ? 0 : 90; return `${window.innerHeight - navHeight}px`; } - runQuery() { - this.props.actions.runQuery(this.props.form_data, this.props.datasource_type); + triggerQueryIfNeeded() { + if (this.props.triggerQuery && !this.hasErrors()) { + this.props.actions.runQuery(this.props.form_data); + } } handleResize() { @@ -79,17 +100,22 @@ class ExploreViewContainer extends React.Component { toggleModal() { this.setState({ showModal: !this.state.showModal }); } + hasErrors() { + const ctrls = this.props.controls; + return Object.keys(ctrls).some( + k => ctrls[k].validationErrors && ctrls[k].validationErrors.length > 0); + } renderErrorMessage() { // Returns an error message as a node if any errors are in the store const errors = []; - for (const fieldName in this.props.fields) { - const field = this.props.fields[fieldName]; - if (field.validationErrors && field.validationErrors.length > 0) { + for (const controlName in this.props.controls) { + const control = this.props.controls[controlName]; + if (control.validationErrors && control.validationErrors.length > 0) { errors.push( -
- {`[ ${field.label} ] `} - {field.validationErrors.join('. ')} -
+
+ {`[ ${control.label} ] `} + {control.validationErrors.join('. ')} +
, ); } } @@ -101,8 +127,18 @@ class ExploreViewContainer extends React.Component { } return errorMessage; } + renderChartContainer() { + return ( + ); + } render() { + if (this.props.standalone) { + return this.renderChartContainer(); + } return (
- {this.state.showModal && + {this.state.showModal && }
@@ -126,7 +161,8 @@ class ExploreViewContainer extends React.Component { canAdd="True" onQuery={this.onQuery.bind(this)} onSave={this.toggleModal.bind(this)} - disabled={this.props.chartStatus === 'loading'} + onStop={this.onStop.bind(this)} + loading={this.props.chartStatus === 'loading'} errorMessage={this.renderErrorMessage()} />
@@ -134,14 +170,10 @@ class ExploreViewContainer extends React.Component { actions={this.props.actions} form_data={this.props.form_data} datasource_type={this.props.datasource_type} - onQuery={this.onQuery.bind(this)} />
- + {this.renderChartContainer()}
@@ -152,11 +184,16 @@ class ExploreViewContainer extends React.Component { ExploreViewContainer.propTypes = propTypes; function mapStateToProps(state) { + const form_data = getFormDataFromControls(state.controls); return { chartStatus: state.chartStatus, datasource_type: state.datasource_type, - fields: state.fields, - form_data: state.viz.form_data, + controls: state.controls, + form_data, + standalone: state.standalone, + triggerQuery: state.triggerQuery, + forcedHeight: state.forced_height, + queryRequest: state.queryRequest, }; } diff --git a/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx b/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx index c6c21065ccb87..8fe95fcba65ab 100644 --- a/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx +++ b/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx @@ -1,47 +1,62 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { ButtonGroup, OverlayTrigger, Tooltip } from 'react-bootstrap'; -import Button from '../../components/Button'; import classnames from 'classnames'; +import Button from '../../components/Button'; + const propTypes = { canAdd: PropTypes.string.isRequired, onQuery: PropTypes.func.isRequired, onSave: PropTypes.func, - disabled: PropTypes.bool, - errorMessage: PropTypes.string, + onStop: PropTypes.func, + loading: PropTypes.bool, + errorMessage: PropTypes.node, }; const defaultProps = { + onStop: () => {}, onSave: () => {}, disabled: false, }; -export default function QueryAndSaveBtns({ canAdd, onQuery, onSave, disabled, errorMessage }) { +export default function QueryAndSaveBtns( + { canAdd, onQuery, onSave, onStop, loading, errorMessage }) { const saveClasses = classnames({ 'disabled disabledButton': canAdd !== 'True', }); const qryButtonStyle = errorMessage ? 'danger' : 'primary'; - const qryButtonDisabled = errorMessage ? true : disabled; + const saveButtonDisabled = errorMessage ? true : loading; + const qryOrStopButton = loading ? ( + + ) : ( + + ); return (
- + {qryOrStopButton} {errorMessage && diff --git a/superset/assets/javascripts/explorev2/components/SaveModal.js b/superset/assets/javascripts/explore/components/SaveModal.jsx similarity index 82% rename from superset/assets/javascripts/explorev2/components/SaveModal.js rename to superset/assets/javascripts/explore/components/SaveModal.jsx index 30203fa80b9e2..35ad0c98ad519 100644 --- a/superset/assets/javascripts/explorev2/components/SaveModal.js +++ b/superset/assets/javascripts/explore/components/SaveModal.jsx @@ -1,20 +1,21 @@ -/* eslint camel-case: 0 */ -import React, { PropTypes } from 'react'; +/* eslint camelcase: 0 */ +import React from 'react'; +import PropTypes from 'prop-types'; import $ from 'jquery'; import { Modal, Alert, Button, Radio } from 'react-bootstrap'; import Select from 'react-select'; import { connect } from 'react-redux'; -import { getParamObject } from '../exploreUtils'; const propTypes = { - can_edit: PropTypes.bool, + can_overwrite: PropTypes.bool, onHide: PropTypes.func.isRequired, actions: PropTypes.object.isRequired, form_data: PropTypes.object, - datasource_type: PropTypes.string.isRequired, user_id: PropTypes.string.isRequired, dashboards: PropTypes.array.isRequired, alert: PropTypes.string, + slice: PropTypes.object, + datasource: PropTypes.object, }; class SaveModal extends React.Component { @@ -26,7 +27,7 @@ class SaveModal extends React.Component { newSliceName: '', dashboards: [], alert: null, - action: 'overwrite', + action: props.can_overwrite ? 'overwrite' : 'saveas', addToDash: 'noSave', }; } @@ -58,13 +59,13 @@ class SaveModal extends React.Component { saveOrOverwrite(gotodash) { this.setState({ alert: null }); this.props.actions.removeSaveModalAlert(); - const params = getParamObject( - this.props.form_data, this.props.datasource_type, this.state.action === 'saveas'); const sliceParams = {}; - params.datasource_name = this.props.form_data.datasource_name; let sliceName = null; sliceParams.action = this.state.action; + if (this.props.slice && this.props.slice.slice_id) { + sliceParams.slice_id = this.props.slice.slice_id; + } if (sliceParams.action === 'saveas') { sliceName = this.state.newSliceName; if (sliceName === '') { @@ -73,7 +74,7 @@ class SaveModal extends React.Component { } sliceParams.slice_name = sliceName; } else { - sliceParams.slice_name = this.props.form_data.slice_name; + sliceParams.slice_name = this.props.slice.slice_name; } const addToDash = this.state.addToDash; @@ -100,9 +101,13 @@ class SaveModal extends React.Component { dashboard = null; } sliceParams.goto_dash = gotodash; - const baseUrl = '/superset/explore/' + - `${this.props.datasource_type}/${this.props.form_data.datasource}/`; - const saveUrl = `${baseUrl}?${$.param(params, true)}&${$.param(sliceParams, true)}`; + + const baseUrl = `/superset/explore/${this.props.datasource.type}/${this.props.datasource.id}/`; + sliceParams.datasource_name = this.props.datasource.name; + + const saveUrl = `${baseUrl}?form_data=` + + `${encodeURIComponent(JSON.stringify(this.props.form_data))}` + + `&${$.param(sliceParams, true)}`; this.props.actions.saveSlice(saveUrl); this.props.onHide(); } @@ -135,15 +140,19 @@ class SaveModal extends React.Component { /> } - - {`Overwrite slice ${this.props.form_data.slice_name}`} - + {this.props.slice && + + {`Overwrite slice ${this.props.slice.slice_name}`} + + } } + copyNode={} />    - + ); @@ -52,7 +53,7 @@ export default class URLShortLinkButton extends React.Component { overlay={this.renderPopover()} > -   +   ); diff --git a/superset/assets/javascripts/explore/components/controls/BoundsControl.jsx b/superset/assets/javascripts/explore/components/controls/BoundsControl.jsx new file mode 100644 index 0000000000000..313ab93ae3f8e --- /dev/null +++ b/superset/assets/javascripts/explore/components/controls/BoundsControl.jsx @@ -0,0 +1,95 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Col, Row, FormGroup, FormControl } from 'react-bootstrap'; +import ControlHeader from '../ControlHeader'; + +const propTypes = { + name: PropTypes.string.isRequired, + label: PropTypes.string, + description: PropTypes.string, + onChange: PropTypes.func, + value: PropTypes.array, +}; + +const defaultProps = { + label: null, + description: null, + onChange: () => {}, + value: [null, null], +}; + +export default class BoundsControl extends React.Component { + constructor(props) { + super(props); + this.state = { + minMax: [ + props.value[0] === null ? '' : props.value[0], + props.value[1] === null ? '' : props.value[1], + ], + }; + this.onChange = this.onChange.bind(this); + this.onMinChange = this.onMinChange.bind(this); + this.onMaxChange = this.onMaxChange.bind(this); + } + onMinChange(event) { + this.setState({ + minMax: [ + event.target.value, + this.state.minMax[1], + ], + }, this.onChange); + } + onMaxChange(event) { + this.setState({ + minMax: [ + this.state.minMax[0], + event.target.value, + ], + }, this.onChange); + } + onChange() { + const mm = this.state.minMax; + const errors = []; + if (mm[0] && isNaN(mm[0])) { + errors.push('`Min` value should be numeric or empty'); + } + if (mm[1] && isNaN(mm[1])) { + errors.push('`Max` value should be numeric or empty'); + } + if (errors.length === 0) { + this.props.onChange([parseFloat(mm[0]), parseFloat(mm[1])], errors); + } else { + this.props.onChange([null, null], errors); + } + } + render() { + return ( +
+ + + + + + + + + + + +
+ ); + } +} + +BoundsControl.propTypes = propTypes; +BoundsControl.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explore/components/controls/CheckboxControl.jsx b/superset/assets/javascripts/explore/components/controls/CheckboxControl.jsx new file mode 100644 index 0000000000000..bb5d2ce743406 --- /dev/null +++ b/superset/assets/javascripts/explore/components/controls/CheckboxControl.jsx @@ -0,0 +1,39 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Checkbox } from 'react-bootstrap'; +import ControlHeader from '../ControlHeader'; + +const propTypes = { + name: PropTypes.string.isRequired, + value: PropTypes.bool, + label: PropTypes.string, + description: PropTypes.string, + onChange: PropTypes.func, +}; + +const defaultProps = { + value: false, + onChange: () => {}, +}; + +export default class CheckboxControl extends React.Component { + onToggle() { + this.props.onChange(!this.props.value); + } + render() { + return ( + + } + /> + ); + } +} + +CheckboxControl.propTypes = propTypes; +CheckboxControl.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explore/components/controls/Filter.jsx b/superset/assets/javascripts/explore/components/controls/Filter.jsx new file mode 100644 index 0000000000000..bcb0eb9247616 --- /dev/null +++ b/superset/assets/javascripts/explore/components/controls/Filter.jsx @@ -0,0 +1,184 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Select from 'react-select'; +import { Button, Row, Col } from 'react-bootstrap'; +import SelectControl from './SelectControl'; + +const $ = window.$ = require('jquery'); + +const operatorsArr = [ + { val: 'in', type: 'array', useSelect: true, multi: true }, + { val: 'not in', type: 'array', useSelect: true, multi: true }, + { val: '==', type: 'string', useSelect: true, multi: false, havingOnly: true }, + { val: '!=', type: 'string', useSelect: true, multi: false, havingOnly: true }, + { val: '>=', type: 'string', havingOnly: true }, + { val: '<=', type: 'string', havingOnly: true }, + { val: '>', type: 'string', havingOnly: true }, + { val: '<', type: 'string', havingOnly: true }, + { val: 'regex', type: 'string', datasourceTypes: ['druid'] }, + { val: 'LIKE', type: 'string', datasourceTypes: ['table'] }, +]; +const operators = {}; +operatorsArr.forEach((op) => { + operators[op.val] = op; +}); + +const propTypes = { + changeFilter: PropTypes.func, + removeFilter: PropTypes.func, + filter: PropTypes.object.isRequired, + datasource: PropTypes.object, + having: PropTypes.bool, +}; + +const defaultProps = { + changeFilter: () => {}, + removeFilter: () => {}, + datasource: null, + having: false, +}; + +export default class Filter extends React.Component { + constructor(props) { + super(props); + this.state = { + valuesLoading: false, + }; + } + componentDidMount() { + this.fetchFilterValues(this.props.filter.col); + } + fetchFilterValues(col) { + const datasource = this.props.datasource; + if (col && this.props.datasource && this.props.datasource.filter_select && !this.props.having) { + this.setState({ valuesLoading: true }); + $.ajax({ + type: 'GET', + url: `/superset/filter/${datasource.type}/${datasource.id}/${col}/`, + success: (data) => { + this.setState({ valuesLoading: false, valueChoices: data }); + }, + }); + } + } + switchFilterValue(prevOp, nextOp) { + if (operators[prevOp].type !== operators[nextOp].type) { + const val = this.props.filter.value; + let newVal; + // switch from array to string + if (operators[nextOp].type === 'string' && val && val.length > 0) { + newVal = val[0]; + } else if (operators[nextOp].type === 'string' && val) { + newVal = [val]; + } + this.props.changeFilter('val', newVal); + } + } + changeText(event) { + this.props.changeFilter('val', event.target.value); + } + changeSelect(value) { + this.props.changeFilter('val', value); + } + changeColumn(event) { + this.props.changeFilter('col', event.value); + this.fetchFilterValues(event.value); + } + changeOp(event) { + this.switchFilterValue(this.props.filter.op, event.value); + this.props.changeFilter('op', event.value); + } + removeFilter(filter) { + this.props.removeFilter(filter); + } + renderFilterFormControl(filter) { + const operator = operators[filter.op]; + if (operator.useSelect && !this.props.having) { + // TODO should use a simple Select, not a control here... + return ( + + ); + } + return ( + + ); + } + render() { + const datasource = this.props.datasource; + const filter = this.props.filter; + const opsChoices = operatorsArr + .filter((o) => { + if (this.props.having) { + return !!o.havingOnly; + } + return (!o.datasourceTypes || o.datasourceTypes.indexOf(datasource.type) >= 0); + }) + .map(o => ({ value: o.val, label: o.val })); + let colChoices; + if (datasource) { + if (this.props.having) { + colChoices = datasource.metrics_combo.map(c => ({ value: c[0], label: c[1] })); + } else { + colChoices = datasource.filterable_cols.map(c => ({ value: c[0], label: c[1] })); + } + } + return ( +
+ + + + + + {this.renderFilterFormControl(filter)} + + + + + +
+ ); + } +} + +Filter.propTypes = propTypes; +Filter.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explore/components/controls/FilterControl.jsx b/superset/assets/javascripts/explore/components/controls/FilterControl.jsx new file mode 100644 index 0000000000000..74065ecc67371 --- /dev/null +++ b/superset/assets/javascripts/explore/components/controls/FilterControl.jsx @@ -0,0 +1,79 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Button, Row, Col } from 'react-bootstrap'; +import Filter from './Filter'; + +const propTypes = { + name: PropTypes.string, + onChange: PropTypes.func, + value: PropTypes.array, + datasource: PropTypes.object, +}; + +const defaultProps = { + onChange: () => {}, + value: [], +}; + +export default class FilterControl extends React.Component { + addFilter() { + const newFilters = Object.assign([], this.props.value); + const col = this.props.datasource && this.props.datasource.filterable_cols.length > 0 ? + this.props.datasource.filterable_cols[0][0] : + null; + newFilters.push({ + col, + op: 'in', + val: this.props.datasource.filter_select ? [] : '', + }); + this.props.onChange(newFilters); + } + changeFilter(index, control, value) { + const newFilters = Object.assign([], this.props.value); + const modifiedFilter = Object.assign({}, newFilters[index]); + if (typeof control === 'string') { + modifiedFilter[control] = value; + } else { + control.forEach((c, i) => { + modifiedFilter[c] = value[i]; + }); + } + newFilters.splice(index, 1, modifiedFilter); + this.props.onChange(newFilters); + } + removeFilter(index) { + this.props.onChange(this.props.value.filter((f, i) => i !== index)); + } + render() { + const filters = this.props.value.map((filter, i) => ( +
+ +
+ )); + return ( +
+ {filters} + + + + + +
+ ); + } +} + +FilterControl.propTypes = propTypes; +FilterControl.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explore/components/controls/HiddenControl.jsx b/superset/assets/javascripts/explore/components/controls/HiddenControl.jsx new file mode 100644 index 0000000000000..3b1f44547676b --- /dev/null +++ b/superset/assets/javascripts/explore/components/controls/HiddenControl.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { FormControl } from 'react-bootstrap'; + +const propTypes = { + onChange: PropTypes.func, + value: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + ]), +}; + +const defaultProps = { + onChange: () => {}, +}; + +export default function HiddenControl(props) { + // This wouldn't be necessary but might as well + return ; +} + +HiddenControl.propTypes = propTypes; +HiddenControl.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/SelectField.jsx b/superset/assets/javascripts/explore/components/controls/SelectControl.jsx similarity index 51% rename from superset/assets/javascripts/explorev2/components/SelectField.jsx rename to superset/assets/javascripts/explore/components/controls/SelectControl.jsx index bbf8124324878..2f8f678fa04c4 100644 --- a/superset/assets/javascripts/explorev2/components/SelectField.jsx +++ b/superset/assets/javascripts/explore/components/controls/SelectControl.jsx @@ -1,86 +1,91 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import Select, { Creatable } from 'react-select'; +import ControlHeader from '../ControlHeader'; const propTypes = { choices: PropTypes.array, clearable: PropTypes.bool, description: PropTypes.string, - editUrl: PropTypes.string, freeForm: PropTypes.bool, + isLoading: PropTypes.bool, label: PropTypes.string, multi: PropTypes.bool, name: PropTypes.string.isRequired, onChange: PropTypes.func, value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array]), + showHeader: PropTypes.bool, }; const defaultProps = { choices: [], clearable: true, description: null, - editUrl: null, freeForm: false, + isLoading: false, label: null, multi: false, onChange: () => {}, - value: '', + showHeader: true, }; -export default class SelectField extends React.Component { +export default class SelectControl extends React.PureComponent { constructor(props) { super(props); - this.state = { options: this.getOptions() }; + this.state = { options: this.getOptions(props) }; this.onChange = this.onChange.bind(this); - this.renderOption = this.renderOption.bind(this); + } + componentWillReceiveProps(nextProps) { + if (nextProps.choices !== this.props.choices) { + const options = this.getOptions(nextProps); + this.setState({ options }); + } } onChange(opt) { let optionValue = opt ? opt.value : null; // if multi, return options values as an array if (this.props.multi) { - optionValue = opt ? opt.map((o) => o.value) : null; + optionValue = opt ? opt.map(o => o.value) : null; } this.props.onChange(optionValue); } - getOptions() { - const options = this.props.choices.map((c) => { - const label = c.length > 1 ? c[1] : c[0]; - const newOptions = { - value: c[0], - label, - }; - if (c[2]) newOptions.imgSrc = c[2]; - return newOptions; + getOptions(props) { + // Accepts different formats of input + const options = props.choices.map((c) => { + let option; + if (Array.isArray(c)) { + const label = c.length > 1 ? c[1] : c[0]; + option = { + value: c[0], + label, + }; + } else if (Object.is(c)) { + option = c; + } else { + option = { + value: c, + label: c, + }; + } + return option; }); - if (this.props.freeForm) { + if (props.freeForm) { // For FreeFormSelect, insert value into options if not exist - const values = this.props.choices.map((c) => c[0]); - if (this.props.value) { - if (typeof this.props.value === 'object') { - this.props.value.forEach((v) => { - if (values.indexOf(v) === -1) { - options.push({ value: v, label: v }); - } - }); - } else { - if (values.indexOf(this.props.value) === -1) { - options.push({ value: this.props.value, label: this.props.value }); - } + const values = options.map(c => c.value); + if (props.value) { + let valuesToAdd = props.value; + if (!Array.isArray(valuesToAdd)) { + valuesToAdd = [valuesToAdd]; } + valuesToAdd.forEach((v) => { + if (values.indexOf(v) < 0) { + options.push({ value: v, label: v }); + } + }); } } return options; } - renderOption(opt) { - if (opt.imgSrc) { - return ( -
- {opt.value} - {opt.label} -
- ); - } - return opt.label; - } render() { // Tab, comma or Enter will trigger a new option created for FreeFormSelect const selectProps = { @@ -91,22 +96,23 @@ export default class SelectField extends React.Component { value: this.props.value, autosize: false, clearable: this.props.clearable, + isLoading: this.props.isLoading, onChange: this.onChange, - optionRenderer: this.renderOption, + optionRenderer: opt => opt.label, }; // Tab, comma or Enter will trigger a new option created for FreeFormSelect const selectWrap = this.props.freeForm ? () : (` - ); - $(`input[name='${name}']`).select2({ - createSearchChoice: createChoices, - initSelection: initSelectionToValue, - dropdownAutoWidth: true, - multiple: false, - data: l, - }); - $(this).remove(); - }); - - function prepSaveDialog() { - const setButtonsState = function () { - const addToDash = $('input[name=addToDash]:checked').val(); - if (addToDash === 'existing' || addToDash === 'new') { - $('.gotodash').removeAttr('disabled'); - } else { - $('.gotodash').prop('disabled', true); - } - }; - const url = '/dashboardmodelviewasync/api/read?_flt_0_owners=' + $('#userid').val(); - $.get(url, function (data) { - const choices = []; - for (let i = 0; i < data.pks.length; i++) { - choices.push({ id: data.pks[i], text: data.result[i].dashboard_title }); - } - $('#save_to_dashboard_id').select2({ - data: choices, - dropdownAutoWidth: true, - }).on('select2-selecting', function () { - $('#addToDash_existing').prop('checked', true); - setButtonsState(); - }); - }); - - $('input[name=addToDash]').change(setButtonsState); - $("input[name='new_dashboard_name']").on('focus', function () { - $('#add_to_new_dash').prop('checked', true); - setButtonsState(); - }); - $("input[name='new_slice_name']").on('focus', function () { - $('#save_as_new').prop('checked', true); - setButtonsState(); - }); - - $('#btn_modal_save').on('click', () => saveSlice()); - - $('#btn_modal_save_goto_dash').click(() => { - document.getElementById('goto_dash').value = 'true'; - saveSlice(); - }); - } - prepSaveDialog(); -} - -function renderExploreActions() { - const exploreActionsEl = document.getElementById('js-explore-actions'); - ReactDOM.render( - , - exploreActionsEl - ); -} - -function initComponents() { - const queryAndSaveBtnsEl = document.getElementById('js-query-and-save-btns'); - ReactDOM.render( - query(true)} - />, - queryAndSaveBtnsEl - ); - renderExploreActions(); -} - -let exploreController = { - type: 'slice', - done: (sliceObj) => { - slice = sliceObj; - renderExploreActions(); - const cachedSelector = $('#is_cached'); - if (slice.data !== undefined && slice.data.is_cached) { - cachedSelector - .attr( - 'title', - `Served from data cached at ${slice.data.cached_dttm}. Click [Query] to force refresh`) - .show() - .tooltip('fixTitle'); - } else { - cachedSelector.hide(); - } - }, - error: (sliceObj) => { - slice = sliceObj; - renderExploreActions(); - }, -}; -exploreController = Object.assign({}, utils.controllerInterface, exploreController); - - -$(document).ready(function () { - const data = $('.slice').data('slice'); - - initExploreView(); - - slice = px.Slice(data, exploreController); - - // call vis render method, which issues ajax - // calls render on the slice for the first time - query(false, false); - - slice.bindResizeToWindowResize(); - - initComponents(); -}); diff --git a/superset/assets/javascripts/explore/exploreUtils.js b/superset/assets/javascripts/explore/exploreUtils.js new file mode 100644 index 0000000000000..5951ff61a2e6c --- /dev/null +++ b/superset/assets/javascripts/explore/exploreUtils.js @@ -0,0 +1,43 @@ +/* eslint camelcase: 0 */ +import URI from 'urijs'; + +export function getExploreUrl(form_data, endpointType = 'base', force = false, curUrl = null) { + if (!form_data.datasource) { + return null; + } + + + // The search params from the window.location are carried through, + // but can be specified with curUrl (used for unit tests to spoof + // the window.location). + let uri = URI(window.location.search); + if (curUrl) { + uri = URI(URI(curUrl).search()); + } + + // Building the directory part of the URI + let directory = '/superset/explore/'; + if (['json', 'csv', 'query'].indexOf(endpointType) >= 0) { + directory = '/superset/explore_json/'; + } + const [datasource_id, datasource_type] = form_data.datasource.split('__'); + directory += `${datasource_type}/${datasource_id}/`; + + // Building the querystring (search) part of the URI + const search = uri.search(true); + search.form_data = JSON.stringify(form_data); + if (force) { + search.force = 'true'; + } + if (endpointType === 'csv') { + search.csv = 'true'; + } + if (endpointType === 'standalone') { + search.standalone = 'true'; + } + if (endpointType === 'query') { + search.query = 'true'; + } + uri = uri.search(search).directory(directory); + return uri.toString(); +} diff --git a/superset/assets/javascripts/explore/index.jsx b/superset/assets/javascripts/explore/index.jsx new file mode 100644 index 0000000000000..39ecab08c57dd --- /dev/null +++ b/superset/assets/javascripts/explore/index.jsx @@ -0,0 +1,58 @@ +/* eslint camelcase: 0 */ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { createStore, applyMiddleware, compose } from 'redux'; +import { Provider } from 'react-redux'; +import thunk from 'redux-thunk'; + +import { now } from '../modules/dates'; +import { initEnhancer } from '../reduxUtils'; +import AlertsWrapper from '../components/AlertsWrapper'; +import { getControlsState, getFormDataFromControls } from './stores/store'; +import { initJQueryAjax } from '../modules/utils'; +import ExploreViewContainer from './components/ExploreViewContainer'; +import { exploreReducer } from './reducers/exploreReducer'; +import { appSetup } from '../common'; +import './main.css'; + +appSetup(); +initJQueryAjax(); + +const exploreViewContainer = document.getElementById('js-explore-view-container'); +const bootstrapData = JSON.parse(exploreViewContainer.getAttribute('data-bootstrap')); +const controls = getControlsState(bootstrapData, bootstrapData.form_data); +delete bootstrapData.form_data; + + +// Initial state +const bootstrappedState = Object.assign( + bootstrapData, { + chartStatus: null, + chartUpdateEndTime: null, + chartUpdateStartTime: now(), + dashboards: [], + controls, + latestQueryFormData: getFormDataFromControls(controls), + filterColumnOpts: [], + isDatasourceMetaLoading: false, + isStarred: false, + queryResponse: null, + triggerQuery: true, + triggerRender: false, + alert: null, + }, +); + +const store = createStore(exploreReducer, bootstrappedState, + compose(applyMiddleware(thunk), initEnhancer(false)), +); + +ReactDOM.render( + +
+ + +
+
, + exploreViewContainer, +); diff --git a/superset/assets/javascripts/explore/main.css b/superset/assets/javascripts/explore/main.css new file mode 100644 index 0000000000000..ab04eaa45688a --- /dev/null +++ b/superset/assets/javascripts/explore/main.css @@ -0,0 +1,61 @@ +.scrollbar-container { + position: relative; + overflow: hidden; + width: 100%; + height: 100%; +} + +.scrollbar-content { + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + overflow-y: auto; + margin-right: 0px; +} + +.fave-unfave-icon, .edit-desc-icon { + padding: 0 0 0 .5em; + font-size: 14px; +} + +.checkbox { + float: left; + margin-top: 0px; + margin-right: 3px; +} + +.control-panel-section { + margin-bottom: 0px; + box-shadow: none; +} + +.background-transparent { + background-color: transparent !important; +} + +.viztype-label { + text-align: center; +} + +.viztype-selector-container { + cursor: pointer; + margin-top: 10px; + margin-bottom: 10px; + padding: 5px; + border: 1px solid #aaa; +} + +.viztype-selector-container:hover { + border: 1px solid #000; +} + +.viztype-selector-container.selected { + cursor: not-allowed; + opacity: 0.5; +} +.viztype-selector-container.selected { + cursor: not-allowed; + border: 1px solid #aaa; +} diff --git a/superset/assets/javascripts/explorev2/reducers/exploreReducer.js b/superset/assets/javascripts/explore/reducers/exploreReducer.js similarity index 52% rename from superset/assets/javascripts/explorev2/reducers/exploreReducer.js rename to superset/assets/javascripts/explore/reducers/exploreReducer.js index 1ea3c1d676a6a..f58d21a531fe2 100644 --- a/superset/assets/javascripts/explorev2/reducers/exploreReducer.js +++ b/superset/assets/javascripts/explore/reducers/exploreReducer.js @@ -1,7 +1,8 @@ /* eslint camelcase: 0 */ -import { defaultFormData } from '../stores/store'; +import { getControlsState, getFormDataFromControls } from '../stores/store'; import * as actions from '../actions/exploreActions'; import { now } from '../../modules/dates'; +import { QUERY_TIMEOUT_THRESHOLD } from '../../constants'; export const exploreReducer = function (state, action) { const actionHandlers = { @@ -9,15 +10,15 @@ export const exploreReducer = function (state, action) { return Object.assign({}, state, { isStarred: action.isStarred }); }, - [actions.FETCH_STARTED]() { + [actions.FETCH_DATASOURCE_STARTED]() { return Object.assign({}, state, { isDatasourceMetaLoading: true }); }, - [actions.FETCH_SUCCEEDED]() { + [actions.FETCH_DATASOURCE_SUCCEEDED]() { return Object.assign({}, state, { isDatasourceMetaLoading: false }); }, - [actions.FETCH_FAILED]() { + [actions.FETCH_DATASOURCE_FAILED]() { // todo(alanna) handle failure/error state return Object.assign({}, state, { @@ -25,6 +26,28 @@ export const exploreReducer = function (state, action) { controlPanelAlert: action.error, }); }, + [actions.SET_DATASOURCE]() { + return Object.assign({}, state, { datasource: action.datasource }); + }, + [actions.FETCH_DATASOURCES_STARTED]() { + return Object.assign({}, state, { isDatasourcesLoading: true }); + }, + + [actions.FETCH_DATASOURCES_SUCCEEDED]() { + return Object.assign({}, state, { isDatasourcesLoading: false }); + }, + + [actions.FETCH_DATASOURCES_FAILED]() { + // todo(alanna) handle failure/error state + return Object.assign({}, state, + { + isDatasourcesLoading: false, + controlPanelAlert: action.error, + }); + }, + [actions.SET_DATASOURCES]() { + return Object.assign({}, state, { datasources: action.datasources }); + }, [actions.REMOVE_CONTROL_PANEL_ALERT]() { return Object.assign({}, state, { controlPanelAlert: null }); }, @@ -36,32 +59,17 @@ export const exploreReducer = function (state, action) { return Object.assign({}, state, { saveModalAlert: `fetching dashboards failed for ${action.userId}` }); }, - [actions.SET_DATASOURCE]() { - return Object.assign({}, state, { datasource: action.datasource }); - }, [actions.SET_FIELD_VALUE]() { - let newFormData = Object.assign({}, state.viz.form_data); - if (action.fieldName === 'datasource') { - newFormData = defaultFormData(state.viz.form_data.viz_type, action.datasource_type); - newFormData.datasource_name = action.label; - newFormData.slice_id = state.viz.form_data.slice_id; - newFormData.slice_name = state.viz.form_data.slice_name; - newFormData.viz_type = state.viz.form_data.viz_type; + const controls = Object.assign({}, state.controls); + const control = Object.assign({}, controls[action.controlName]); + control.value = action.value; + control.validationErrors = action.validationErrors; + controls[action.controlName] = control; + const changes = { controls }; + if (control.renderTrigger) { + changes.triggerRender = true; } - newFormData[action.fieldName] = action.value; - - const fields = Object.assign({}, state.fields); - const field = fields[action.fieldName]; - field.value = action.value; - field.validationErrors = action.validationErrors; - return Object.assign( - {}, - state, - { - fields, - viz: Object.assign({}, state.viz, { form_data: newFormData }), - } - ); + return Object.assign({}, state, changes); }, [actions.CHART_UPDATE_SUCCEEDED]() { return Object.assign( @@ -70,7 +78,7 @@ export const exploreReducer = function (state, action) { { chartStatus: 'success', queryResponse: action.queryResponse, - } + }, ); }, [actions.CHART_UPDATE_STARTED]() { @@ -79,6 +87,16 @@ export const exploreReducer = function (state, action) { chartStatus: 'loading', chartUpdateEndTime: null, chartUpdateStartTime: now(), + triggerQuery: false, + queryRequest: action.queryRequest, + latestQueryFormData: getFormDataFromControls(state.controls), + }); + }, + [actions.CHART_UPDATE_STOPPED]() { + return Object.assign({}, state, + { + chartStatus: 'stopped', + chartAlert: 'Updating chart was stopped', }); }, [actions.CHART_RENDERING_FAILED]() { @@ -87,10 +105,25 @@ export const exploreReducer = function (state, action) { chartAlert: 'An error occurred while rendering the visualization: ' + action.error, }); }, + [actions.TRIGGER_QUERY]() { + return Object.assign({}, state, { + triggerQuery: true, + }); + }, + [actions.CHART_UPDATE_TIMEOUT]() { + return Object.assign({}, state, { + chartStatus: 'failed', + chartAlert: 'Query timeout - visualization query are set to timeout at ' + + `${QUERY_TIMEOUT_THRESHOLD / 1000} seconds. ` + + 'Perhaps your data has grown, your database is under unusual load, ' + + 'or you are simply querying a data source that is to large to be processed within the timeout range. ' + + 'If that is the case, we recommend that you summarize your data further.', + }); + }, [actions.CHART_UPDATE_FAILED]() { return Object.assign({}, state, { chartStatus: 'failed', - chartAlert: action.queryResponse.error, + chartAlert: action.queryResponse ? action.queryResponse.error : 'Network error.', chartUpdateEndTime: now(), queryResponse: action.queryResponse, }); @@ -114,6 +147,13 @@ export const exploreReducer = function (state, action) { [actions.REMOVE_SAVE_MODAL_ALERT]() { return Object.assign({}, state, { saveModalAlert: null }); }, + [actions.RESET_FIELDS]() { + const controls = getControlsState(state, getFormDataFromControls(state.controls)); + return Object.assign({}, state, { controls }); + }, + [actions.RENDER_TRIGGERED]() { + return Object.assign({}, state, { triggerRender: false }); + }, }; if (action.type in actionHandlers) { return actionHandlers[action.type](); diff --git a/superset/assets/javascripts/explorev2/stores/fields.js b/superset/assets/javascripts/explore/stores/controls.jsx similarity index 65% rename from superset/assets/javascripts/explorev2/stores/fields.js rename to superset/assets/javascripts/explore/stores/controls.jsx index 7a8cf48ba31d6..5ceb03a327489 100644 --- a/superset/assets/javascripts/explorev2/stores/fields.js +++ b/superset/assets/javascripts/explore/stores/controls.jsx @@ -1,5 +1,5 @@ +import React from 'react'; import { formatSelectOptionsForRange, formatSelectOptions } from '../../modules/utils'; -import visTypes from './visTypes'; import * as v from '../validators'; const D3_FORMAT_DOCS = 'D3 format syntax: https://github.com/d3/d3-format'; @@ -26,83 +26,92 @@ export const TIME_STAMP_OPTIONS = [ ['%H:%M:%S', '%H:%M:%S | 01:32:10'], ]; -const MAP_DATASOURCE_TYPE_TO_EDIT_URL = { - table: '/tablemodelview/edit', - druid: '/druiddatasourcemodelview/edit', -}; - -export const fields = { +export const controls = { datasource: { - type: 'SelectField', + type: 'SelectControl', label: 'Datasource', + isLoading: true, clearable: false, default: null, - mapStateToProps: (state) => ({ - choices: state.datasources || [], - editUrl: MAP_DATASOURCE_TYPE_TO_EDIT_URL[state.datasource_type], - }), + mapStateToProps: (state) => { + const datasources = state.datasources || []; + return { + choices: datasources, + isLoading: datasources.length === 0, + rightNode: state.datasource ? + edit + : null, + }; + }, description: '', }, viz_type: { - type: 'SelectField', + type: 'VizTypeControl', label: 'Visualization Type', - clearable: false, default: 'table', - choices: Object.keys(visTypes).map(vt => [ - vt, - visTypes[vt].label, - `/static/assets/images/viz_thumbnails/${vt}.png`, - ]), description: 'The type of visualization to display', }, metrics: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'Metrics', validators: [v.nonEmpty], - mapStateToProps: (state) => ({ + default: control => + control.choices && control.choices.length > 0 ? [control.choices[0][0]] : null, + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), - default: [], description: 'One or many metrics to display', }, - + y_axis_bounds: { + type: 'BoundsControl', + label: 'Y Axis Bounds', + default: [null, null], + description: ( + 'Bounds for the Y axis. When left empty, the bounds are ' + + 'dynamically defined based on the min/max of the data. Note that ' + + "this feature will only expand the axis range. It won't " + + "narrow the data's extent." + ), + }, order_by_cols: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'Ordering', default: [], description: 'One or many metrics to display', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.order_by_choices : [], }), }, metric: { - type: 'SelectField', + type: 'SelectControl', label: 'Metric', - default: null, + clearable: false, description: 'Choose the metric', - mapStateToProps: (state) => ({ - choices: (state.datasource) ? state.datasource.metrics_combo : [], + default: control => + control.choices && control.choices.length > 0 ? control.choices[0][0] : null, + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.metrics_combo : null, }), }, metric_2: { - type: 'SelectField', + type: 'SelectControl', label: 'Right Axis Metric', choices: [], default: [], description: 'Choose a metric for right axis', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, stacked_style: { - type: 'SelectField', + type: 'SelectControl', label: 'Stacked Style', choices: [ ['stack', 'stack'], @@ -114,7 +123,7 @@ export const fields = { }, linear_color_scheme: { - type: 'SelectField', + type: 'SelectControl', label: 'Linear Color Scheme', choices: [ ['fire', 'fire'], @@ -127,7 +136,7 @@ export const fields = { }, normalize_across: { - type: 'SelectField', + type: 'SelectControl', label: 'Normalize Across', choices: [ ['heatmap', 'heatmap'], @@ -136,12 +145,12 @@ export const fields = { ], default: 'heatmap', description: 'Color will be rendered based on a ratio ' + - 'of the cell against the sum of across this ' + - 'criteria', + 'of the cell against the sum of across this ' + + 'criteria', }, horizon_color_scale: { - type: 'SelectField', + type: 'SelectControl', label: 'Horizon Color Scale', choices: [ ['series', 'series'], @@ -153,7 +162,7 @@ export const fields = { }, canvas_image_rendering: { - type: 'SelectField', + type: 'SelectControl', label: 'Rendering', choices: [ ['pixelated', 'pixelated (Sharp)'], @@ -161,159 +170,196 @@ export const fields = { ], default: 'pixelated', description: 'image-rendering CSS attribute of the canvas object that ' + - 'defines how the browser scales up the image', + 'defines how the browser scales up the image', }, xscale_interval: { - type: 'SelectField', + type: 'SelectControl', label: 'XScale Interval', choices: formatSelectOptionsForRange(1, 50), default: '1', description: 'Number of steps to take between ticks when ' + - 'displaying the X scale', + 'displaying the X scale', }, yscale_interval: { - type: 'SelectField', + type: 'SelectControl', label: 'YScale Interval', choices: formatSelectOptionsForRange(1, 50), default: null, description: 'Number of steps to take between ticks when ' + - 'displaying the Y scale', + 'displaying the Y scale', + }, + + include_time: { + type: 'CheckboxControl', + label: 'Include Time', + description: 'Whether to include the time granularity as defined in the time section', + default: false, }, bar_stacked: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Stacked Bars', + renderTrigger: true, default: false, description: null, }, show_markers: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Show Markers', + renderTrigger: true, default: false, description: 'Show data points as circle markers on the lines', }, show_bar_value: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Bar Values', default: false, + renderTrigger: true, description: 'Show the value on top of the bar', }, order_bars: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Sort Bars', default: false, description: 'Sort bars by x labels.', }, show_controls: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Extra Controls', + renderTrigger: true, default: false, description: 'Whether to show extra controls or not. Extra controls ' + - 'include things like making mulitBar charts stacked ' + - 'or side by side.', + 'include things like making mulitBar charts stacked ' + + 'or side by side.', }, reduce_x_ticks: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Reduce X ticks', + renderTrigger: true, default: false, description: 'Reduces the number of X axis ticks to be rendered. ' + - 'If true, the x axis wont overflow and labels may be ' + - 'missing. If false, a minimum width will be applied ' + - 'to columns and the width may overflow into an ' + - 'horizontal scroll.', + 'If true, the x axis wont overflow and labels may be ' + + 'missing. If false, a minimum width will be applied ' + + 'to columns and the width may overflow into an ' + + 'horizontal scroll.', }, include_series: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Include Series', + renderTrigger: true, default: false, description: 'Include series name as an axis', }, secondary_metric: { - type: 'SelectField', + type: 'SelectControl', label: 'Color Metric', default: null, description: 'A metric to use for color', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, - + select_country: { + type: 'SelectControl', + label: 'Country Name', + default: 'France', + choices: [ + 'Belgium', + 'Brazil', + 'China', + 'Egypt', + 'France', + 'Germany', + 'Italy', + 'Morocco', + 'Netherlands', + 'Russia', + 'Singapore', + 'Spain', + 'Uk', + 'Ukraine', + 'Usa', + ].map(s => [s, s]), + description: 'The name of country that Superset should display', + }, country_fieldtype: { - type: 'SelectField', + type: 'SelectControl', label: 'Country Field Type', default: 'cca2', choices: [ - ['name', 'Full name'], - ['cioc', 'code International Olympic Committee (cioc)'], - ['cca2', 'code ISO 3166-1 alpha-2 (cca2)'], - ['cca3', 'code ISO 3166-1 alpha-3 (cca3)'], + ['name', 'Full name'], + ['cioc', 'code International Olympic Committee (cioc)'], + ['cca2', 'code ISO 3166-1 alpha-2 (cca2)'], + ['cca3', 'code ISO 3166-1 alpha-3 (cca3)'], ], description: 'The country code standard that Superset should expect ' + - 'to find in the [country] column', + 'to find in the [country] column', }, groupby: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'Group by', default: [], - description: 'One or many fields to group by', - mapStateToProps: (state) => ({ + description: 'One or many controls to group by', + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.gb_cols : [], }), }, columns: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'Columns', - choices: [], + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.gb_cols : [], + }), default: [], - description: 'One or many fields to pivot as columns', + description: 'One or many controls to pivot as columns', }, all_columns: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'Columns', default: [], description: 'Columns to display', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.all_cols : [], }), }, all_columns_x: { - type: 'SelectField', + type: 'SelectControl', label: 'X', default: null, description: 'Columns to display', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.all_cols : [], }), }, all_columns_y: { - type: 'SelectField', + type: 'SelectControl', label: 'Y', default: null, description: 'Columns to display', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.all_cols : [], }), }, druid_time_origin: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Origin', choices: [ @@ -322,11 +368,11 @@ export const fields = { ], default: null, description: 'Defines the origin where time buckets start, ' + - 'accepts natural dates as in `now`, `sunday` or `1970-01-01`', + 'accepts natural dates as in `now`, `sunday` or `1970-01-01`', }, bottom_margin: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Bottom Margin', choices: formatSelectOptions(['auto', 50, 75, 100, 125, 150, 200]), @@ -335,7 +381,7 @@ export const fields = { }, granularity: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Time Granularity', default: 'one day', @@ -355,12 +401,12 @@ export const fields = { 'month', ]), description: 'The time granularity for the visualization. Note that you ' + - 'can type and use simple natural language as in `10 seconds`, ' + - '`1 day` or `56 weeks`', + 'can type and use simple natural language as in `10 seconds`, ' + + '`1 day` or `56 weeks`', }, domain_granularity: { - type: 'SelectField', + type: 'SelectControl', label: 'Domain', default: 'month', choices: formatSelectOptions(['hour', 'day', 'week', 'month', 'year']), @@ -368,16 +414,16 @@ export const fields = { }, subdomain_granularity: { - type: 'SelectField', + type: 'SelectControl', label: 'Subdomain', default: 'day', choices: formatSelectOptions(['min', 'hour', 'day', 'week', 'month']), description: 'The time unit for each block. Should be a smaller unit than ' + - 'domain_granularity. Should be larger or equal to Time Grain', + 'domain_granularity. Should be larger or equal to Time Grain', }, link_length: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Link Length', default: '200', @@ -386,7 +432,7 @@ export const fields = { }, charge: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Charge', default: '-500', @@ -406,35 +452,36 @@ export const fields = { }, granularity_sqla: { - type: 'SelectField', + type: 'SelectControl', label: 'Time Column', - default: null, + default: control => + control.choices && control.choices.length > 0 ? control.choices[0][0] : null, description: 'The time column for the visualization. Note that you ' + - 'can define arbitrary expression that return a DATETIME ' + - 'column in the table or. Also note that the ' + - 'filter below is applied against this column or ' + - 'expression', - mapStateToProps: (state) => ({ - choices: (state.datasource) ? state.datasource.all_cols : [], + 'can define arbitrary expression that return a DATETIME ' + + 'column in the table or. Also note that the ' + + 'filter below is applied against this column or ' + + 'expression', + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.granularity_sqla : [], }), }, time_grain_sqla: { - type: 'SelectField', + type: 'SelectControl', label: 'Time Grain', - default: 'Time Column', + default: control => control.choices && control.choices.length ? control.choices[0][0] : null, description: 'The time granularity for the visualization. This ' + - 'applies a date transformation to alter ' + - 'your time column and defines a new time granularity. ' + - 'The options here are defined on a per database ' + - 'engine basis in the Superset source code.', - mapStateToProps: (state) => ({ - choices: (state.datasource) ? state.datasource.time_grain_sqla : [], + 'applies a date transformation to alter ' + + 'your time column and defines a new time granularity. ' + + 'The options here are defined on a per database ' + + 'engine basis in the Superset source code.', + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.time_grain_sqla : null, }), }, resample_rule: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Resample Rule', default: null, @@ -443,7 +490,7 @@ export const fields = { }, resample_how: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Resample How', default: null, @@ -452,7 +499,7 @@ export const fields = { }, resample_fillmethod: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Resample Fill Method', default: null, @@ -461,7 +508,7 @@ export const fields = { }, since: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Since', default: '7 days ago', @@ -476,11 +523,11 @@ export const fields = { '100 year ago', ]), description: 'Timestamp from filter. This supports free form typing and ' + - 'natural language as in `1 day ago`, `28 days` or `3 years`', + 'natural language as in `1 day ago`, `28 days` or `3 years`', }, until: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Until', default: 'now', @@ -495,7 +542,7 @@ export const fields = { }, max_bubble_size: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Max Bubble Size', default: '25', @@ -503,7 +550,7 @@ export const fields = { }, whisker_options: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Whisker/outlier options', default: 'Tukey', @@ -517,7 +564,7 @@ export const fields = { }, treemap_ratio: { - type: 'TextField', + type: 'TextControl', label: 'Ratio', isFloat: true, default: 0.5 * (1 + Math.sqrt(5)), // d3 default, golden ratio @@ -525,16 +572,17 @@ export const fields = { }, number_format: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Number format', - default: D3_TIME_FORMAT_OPTIONS[0], + renderTrigger: true, + default: '.3s', choices: D3_TIME_FORMAT_OPTIONS, description: D3_FORMAT_DOCS, }, row_limit: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Row limit', default: null, @@ -542,7 +590,7 @@ export const fields = { }, limit: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Series limit', choices: formatSelectOptions(SERIES_LIMITS), @@ -551,138 +599,140 @@ export const fields = { }, timeseries_limit_metric: { - type: 'SelectField', + type: 'SelectControl', label: 'Sort By', default: null, description: 'Metric used to define the top series', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, rolling_type: { - type: 'SelectField', + type: 'SelectControl', label: 'Rolling', default: 'None', choices: formatSelectOptions(['None', 'mean', 'sum', 'std', 'cumsum']), description: 'Defines a rolling window function to apply, works along ' + - 'with the [Periods] text box', + 'with the [Periods] text box', }, rolling_periods: { - type: 'TextField', + type: 'TextControl', label: 'Periods', isInt: true, description: 'Defines the size of the rolling window function, ' + - 'relative to the time granularity selected', + 'relative to the time granularity selected', }, series: { - type: 'SelectField', + type: 'SelectControl', label: 'Series', default: null, description: 'Defines the grouping of entities. ' + - 'Each series is shown as a specific color on the chart and ' + - 'has a legend toggle', - mapStateToProps: (state) => ({ + 'Each series is shown as a specific color on the chart and ' + + 'has a legend toggle', + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.gb_cols : [], }), }, entity: { - type: 'SelectField', + type: 'SelectControl', label: 'Entity', default: null, description: 'This define the element to be plotted on the chart', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.gb_cols : [], }), }, x: { - type: 'SelectField', + type: 'SelectControl', label: 'X Axis', default: null, description: 'Metric assigned to the [X] axis', - mapStateToProps: (state) => ({ - choices: (state.datasource) ? state.datasource.gb_cols : [], + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, y: { - type: 'SelectField', + type: 'SelectControl', label: 'Y Axis', default: null, description: 'Metric assigned to the [Y] axis', - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, size: { - type: 'SelectField', + type: 'SelectControl', label: 'Bubble Size', default: null, - mapStateToProps: (state) => ({ + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.metrics_combo : [], }), }, url: { - type: 'TextField', + type: 'TextControl', label: 'URL', - description: 'The URL, this field is templated, so you can integrate ' + - '{{ width }} and/or {{ height }} in your URL string.', - default: 'https: //www.youtube.com/embed/JkI5rg_VcQ4', + description: 'The URL, this control is templated, so you can integrate ' + + '{{ width }} and/or {{ height }} in your URL string.', + default: 'https://www.youtube.com/embed/AdSZJzb-aX8', }, x_axis_label: { - type: 'TextField', + type: 'TextControl', label: 'X Axis Label', + renderTrigger: true, default: '', }, y_axis_label: { - type: 'TextField', + type: 'TextControl', label: 'Y Axis Label', + renderTrigger: true, default: '', }, where: { - type: 'TextField', + type: 'TextControl', label: 'Custom WHERE clause', default: '', description: 'The text in this box gets included in your query\'s WHERE ' + - 'clause, as an AND to other criteria. You can include ' + - 'complex expression, parenthesis and anything else ' + - 'supported by the backend it is directed towards.', + 'clause, as an AND to other criteria. You can include ' + + 'complex expression, parenthesis and anything else ' + + 'supported by the backend it is directed towards.', }, having: { - type: 'TextField', + type: 'TextControl', label: 'Custom HAVING clause', default: '', description: 'The text in this box gets included in your query\'s HAVING ' + - 'clause, as an AND to other criteria. You can include ' + - 'complex expression, parenthesis and anything else ' + - 'supported by the backend it is directed towards.', + 'clause, as an AND to other criteria. You can include ' + + 'complex expression, parenthesis and anything else ' + + 'supported by the backend it is directed towards.', }, compare_lag: { - type: 'TextField', + type: 'TextControl', label: 'Comparison Period Lag', isInt: true, description: 'Based on granularity, number of time periods to compare against', }, compare_suffix: { - type: 'TextField', + type: 'TextControl', label: 'Comparison suffix', description: 'Suffix to apply after the percentage display', }, table_timestamp_format: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Table Timestamp Format', default: 'smart_date', @@ -691,7 +741,7 @@ export const fields = { }, series_height: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Series Height', default: '25', @@ -700,7 +750,7 @@ export const fields = { }, page_length: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Page Length', default: 0, @@ -709,34 +759,36 @@ export const fields = { }, x_axis_format: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, - label: 'X axis format', + label: 'X Axis Format', + renderTrigger: true, default: 'smart_date', choices: TIME_STAMP_OPTIONS, description: D3_FORMAT_DOCS, }, y_axis_format: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, - label: 'Y axis format', + label: 'Y Axis Format', + renderTrigger: true, default: '.3s', choices: D3_TIME_FORMAT_OPTIONS, description: D3_FORMAT_DOCS, }, y_axis_2_format: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, - label: 'Right axis format', + label: 'Right Axis Format', default: '.3s', choices: D3_TIME_FORMAT_OPTIONS, description: D3_FORMAT_DOCS, }, markup_type: { - type: 'SelectField', + type: 'SelectControl', label: 'Markup Type', choices: formatSelectOptions(['markdown', 'html']), default: 'markdown', @@ -744,7 +796,7 @@ export const fields = { }, rotation: { - type: 'SelectField', + type: 'SelectControl', label: 'Rotation', choices: formatSelectOptions(['random', 'flat', 'square']), default: 'random', @@ -752,8 +804,9 @@ export const fields = { }, line_interpolation: { - type: 'SelectField', + type: 'SelectControl', label: 'Line Style', + renderTrigger: true, choices: formatSelectOptions(['linear', 'basis', 'cardinal', 'monotone', 'step-before', 'step-after']), default: 'linear', @@ -761,7 +814,7 @@ export const fields = { }, pie_label_type: { - type: 'SelectField', + type: 'SelectControl', label: 'Label Type', default: 'key', choices: [ @@ -773,15 +826,16 @@ export const fields = { }, code: { - type: 'TextAreaField', + type: 'TextAreaControl', label: 'Code', description: 'Put your code here', default: '', }, pandas_aggfunc: { - type: 'SelectField', + type: 'SelectControl', label: 'Aggregation function', + clearable: false, choices: formatSelectOptions([ 'sum', 'mean', @@ -793,11 +847,11 @@ export const fields = { ]), default: 'sum', description: 'Aggregate function to apply when pivoting and ' + - 'computing the total rows and columns', + 'computing the total rows and columns', }, size_from: { - type: 'TextField', + type: 'TextControl', isInt: true, label: 'Font Size From', default: '20', @@ -805,184 +859,198 @@ export const fields = { }, size_to: { - type: 'TextField', + type: 'TextControl', isInt: true, label: 'Font Size To', default: '150', description: 'Font size for the biggest value in the list', }, + instant_filtering: { + type: 'CheckboxControl', + label: 'Instant Filtering', + renderTrigger: true, + default: true, + description: ( + 'Whether to apply filters as they change, or wait for' + + 'users to hit an [Apply] button' + ), + }, + show_brush: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Range Filter', + renderTrigger: true, default: false, description: 'Whether to display the time range interactive selector', }, date_filter: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Date Filter', default: false, description: 'Whether to include a time filter', }, show_datatable: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Data Table', default: false, description: 'Whether to display the interactive data table', }, include_search: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Search Box', + renderTrigger: true, default: false, description: 'Whether to include a client side search box', }, table_filter: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Table Filter', default: false, description: 'Whether to apply filter when table cell is clicked', }, show_bubbles: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Show Bubbles', default: false, + renderTrigger: true, description: 'Whether to display bubbles on top of countries', }, show_legend: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Legend', + renderTrigger: true, default: true, description: 'Whether to display the legend (toggles)', }, x_axis_showminmax: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'X bounds', + renderTrigger: true, default: true, description: 'Whether to display the min and max values of the X axis', }, rich_tooltip: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Rich Tooltip', + renderTrigger: true, default: true, description: 'The rich tooltip shows a list of all series for that ' + - 'point in time', - }, - - y_axis_zero: { - type: 'CheckboxField', - label: 'Y Axis Zero', - default: false, - description: 'Force the Y axis to start at 0 instead of the minimum value', + 'point in time', }, y_log_scale: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Y Log Scale', default: false, + renderTrigger: true, description: 'Use a log scale for the Y axis', }, x_log_scale: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'X Log Scale', default: false, + renderTrigger: true, description: 'Use a log scale for the X axis', }, donut: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Donut', default: false, + renderTrigger: true, description: 'Do you want a donut or a pie?', }, labels_outside: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Put labels outside', default: true, + renderTrigger: true, description: 'Put the labels outside the pie?', }, contribution: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Contribution', default: false, description: 'Compute the contribution to the total', }, num_period_compare: { - type: 'TextField', + type: 'TextControl', label: 'Period Ratio', default: '', isInt: true, description: '[integer] Number of period to compare against, ' + - 'this is relative to the granularity selected', + 'this is relative to the granularity selected', }, period_ratio_type: { - type: 'SelectField', + type: 'SelectControl', label: 'Period Ratio Type', default: 'growth', choices: formatSelectOptions(['factor', 'growth', 'value']), description: '`factor` means (new/previous), `growth` is ' + - '((new/previous) - 1), `value` is (new-previous)', + '((new/previous) - 1), `value` is (new-previous)', }, time_compare: { - type: 'TextField', + type: 'TextControl', label: 'Time Shift', default: null, description: 'Overlay a timeseries from a ' + - 'relative time period. Expects relative time delta ' + - 'in natural language (example: 24 hours, 7 days, ' + - '56 weeks, 365 days', + 'relative time period. Expects relative time delta ' + + 'in natural language (example: 24 hours, 7 days, ' + + '56 weeks, 365 days)', }, subheader: { - type: 'TextField', + type: 'TextControl', label: 'Subheader', description: 'Description text that shows up below your Big Number', }, mapbox_label: { - type: 'SelectField', + type: 'SelectControl', multi: true, label: 'label', default: [], description: '`count` is COUNT(*) if a group by is used. ' + - 'Numerical columns will be aggregated with the aggregator. ' + - 'Non-numerical columns will be used to label points. ' + - 'Leave empty to get a count of points in each cluster.', - mapStateToProps: (state) => ({ + 'Numerical columns will be aggregated with the aggregator. ' + + 'Non-numerical columns will be used to label points. ' + + 'Leave empty to get a count of points in each cluster.', + mapStateToProps: state => ({ choices: (state.datasource) ? state.datasource.all_cols : [], }), }, mapbox_style: { - type: 'SelectField', + type: 'SelectControl', label: 'Map Style', choices: [ - ['mapbox://styles/mapbox/streets-v9', 'Streets'], - ['mapbox://styles/mapbox/dark-v9', 'Dark'], - ['mapbox://styles/mapbox/light-v9', 'Light'], - ['mapbox://styles/mapbox/satellite-streets-v9', 'Satellite Streets'], - ['mapbox://styles/mapbox/satellite-v9', 'Satellite'], - ['mapbox://styles/mapbox/outdoors-v9', 'Outdoors'], + ['mapbox://styles/mapbox/streets-v9', 'Streets'], + ['mapbox://styles/mapbox/dark-v9', 'Dark'], + ['mapbox://styles/mapbox/light-v9', 'Light'], + ['mapbox://styles/mapbox/satellite-streets-v9', 'Satellite Streets'], + ['mapbox://styles/mapbox/satellite-v9', 'Satellite'], + ['mapbox://styles/mapbox/outdoors-v9', 'Outdoors'], ], default: 'mapbox://styles/mapbox/streets-v9', description: 'Base layer map style', }, clustering_radius: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'Clustering Radius', default: '60', @@ -998,24 +1066,24 @@ export const fields = { '1000', ]), description: 'The radius (in pixels) the algorithm uses to define a cluster. ' + - 'Choose 0 to turn off clustering, but beware that a large ' + - 'number of points (>1000) will cause lag.', + 'Choose 0 to turn off clustering, but beware that a large ' + + 'number of points (>1000) will cause lag.', }, point_radius: { - type: 'SelectField', + type: 'SelectControl', label: 'Point Radius', - default: null, + default: 'Auto', description: 'The radius of individual points (ones that are not in a cluster). ' + - 'Either a numerical column or `Auto`, which scales the point based ' + - 'on the largest cluster', - mapStateToProps: (state) => ({ - choices: state.fields.point_radius.choices, + 'Either a numerical column or `Auto`, which scales the point based ' + + 'on the largest cluster', + mapStateToProps: state => ({ + choices: [].concat([['Auto', 'Auto']], state.datasource.all_cols), }), }, point_radius_unit: { - type: 'SelectField', + type: 'SelectControl', label: 'Point Radius Unit', default: 'Pixels', choices: formatSelectOptions(['Pixels', 'Miles', 'Kilometers']), @@ -1023,16 +1091,16 @@ export const fields = { }, global_opacity: { - type: 'TextField', + type: 'TextControl', label: 'Opacity', default: 1, isFloat: true, description: 'Opacity of all clusters, points, and labels. ' + - 'Between 0 and 1.', + 'Between 0 and 1.', }, viewport_zoom: { - type: 'TextField', + type: 'TextControl', label: 'Zoom', isFloat: true, default: 11, @@ -1041,7 +1109,7 @@ export const fields = { }, viewport_latitude: { - type: 'TextField', + type: 'TextControl', label: 'Default latitude', default: 37.772123, isFloat: true, @@ -1050,7 +1118,7 @@ export const fields = { }, viewport_longitude: { - type: 'TextField', + type: 'TextControl', label: 'Default longitude', default: -122.405293, isFloat: true, @@ -1059,14 +1127,14 @@ export const fields = { }, render_while_dragging: { - type: 'CheckboxField', + type: 'CheckboxControl', label: 'Live render', default: true, description: 'Points and clusters will update as viewport is being changed', }, mapbox_color: { - type: 'SelectField', + type: 'SelectControl', freeForm: true, label: 'RGB Color', default: 'rgb(0, 122, 135)', @@ -1082,85 +1150,81 @@ export const fields = { }, ranges: { - type: 'TextField', + type: 'TextControl', label: 'Ranges', default: '', description: 'Ranges to highlight with shading', }, range_labels: { - type: 'TextField', + type: 'TextControl', label: 'Range labels', default: '', description: 'Labels for the ranges', }, markers: { - type: 'TextField', + type: 'TextControl', label: 'Markers', default: '', description: 'List of values to mark with triangles', }, marker_labels: { - type: 'TextField', + type: 'TextControl', label: 'Marker labels', default: '', description: 'Labels for the markers', }, marker_lines: { - type: 'TextField', + type: 'TextControl', label: 'Marker lines', default: '', description: 'List of values to mark with lines', }, marker_line_labels: { - type: 'TextField', + type: 'TextControl', label: 'Marker line labels', default: '', description: 'Labels for the marker lines', }, filters: { - type: 'FilterField', + type: 'FilterControl', + label: '', + default: [], + description: '', + mapStateToProps: state => ({ + datasource: state.datasource, + }), + }, + + having_filters: { + type: 'FilterControl', label: '', default: [], description: '', - mapStateToProps: (state) => ({ - choices: (state.datasource) ? state.datasource.filterable_cols : [], + mapStateToProps: state => ({ + choices: (state.datasource) ? state.datasource.metrics_combo + .concat(state.datasource.filterable_cols) : [], datasource: state.datasource, }), }, + + slice_id: { + type: 'HiddenControl', + label: 'Slice ID', + hidden: true, + description: 'The id of the active slice', + }, + + cache_timeout: { + type: 'HiddenControl', + label: 'Cache Timeout (seconds)', + hidden: true, + description: 'The number of seconds before expiring the cache', + }, }; -export default fields; - -// Control Panel fields that re-render chart without need for 'Query button' -export const autoQueryFields = [ - 'datasource', - 'viz_type', - 'bar_stacked', - 'show_markers', - 'show_bar_value', - 'order_bars', - 'show_controls', - 'reduce_x_ticks', - 'include_series', - 'pie_label_type', - 'show_brush', - 'include_search', - 'show_bubbles', - 'show_legend', - 'x_axis_showminmax', - 'rich_tooltip', - 'y_axis_zero', - 'y_log_scale', - 'x_log_scale', - 'donut', - 'labels_outside', - 'contribution', - 'size', - 'row_limit', - 'max_bubble_size', -]; +export default controls; diff --git a/superset/assets/javascripts/explore/stores/store.js b/superset/assets/javascripts/explore/stores/store.js new file mode 100644 index 0000000000000..2cd2874c266f2 --- /dev/null +++ b/superset/assets/javascripts/explore/stores/store.js @@ -0,0 +1,127 @@ +/* eslint camelcase: 0 */ +import controls from './controls'; +import visTypes, { sectionsToRender } from './visTypes'; + +export function getFormDataFromControls(controlsState) { + const formData = {}; + Object.keys(controlsState).forEach((controlName) => { + formData[controlName] = controlsState[controlName].value; + }); + return formData; +} + +export function getControlNames(vizType, datasourceType) { + const controlNames = []; + sectionsToRender(vizType, datasourceType).forEach( + section => section.controlSetRows.forEach( + fsr => fsr.forEach( + f => controlNames.push(f)))); + return controlNames; +} + +function handleDeprecatedControls(formData) { + // Reacffectation / handling of deprecated controls + /* eslint-disable no-param-reassign */ + + // y_axis_zero was a boolean forcing 0 to be part of the Y Axis + if (formData.y_axis_zero) { + formData.y_axis_bounds = [0, null]; + } +} + +export function getControlsState(state, form_data) { + /* + * Gets a new controls object to put in the state. The controls object + * is similar to the configuration control with only the controls + * related to the current viz_type, materializes mapStateToProps functions, + * adds value keys coming from form_data passed here. This can't be an action creator + * just yet because it's used in both the explore and dashboard views. + * */ + + // Getting a list of active control names for the current viz + const formData = Object.assign({}, form_data); + const vizType = formData.viz_type || 'table'; + + handleDeprecatedControls(formData); + + const controlNames = getControlNames(vizType, state.datasource.type); + + const viz = visTypes[vizType]; + const controlOverrides = viz.controlOverrides || {}; + const controlsState = {}; + controlNames.forEach((k) => { + const control = Object.assign({}, controls[k], controlOverrides[k]); + if (control.mapStateToProps) { + Object.assign(control, control.mapStateToProps(state)); + delete control.mapStateToProps; + } + + // If the value is not valid anymore based on choices, clear it + if (control.type === 'SelectControl' && control.choices && k !== 'datasource' && formData[k]) { + const choiceValues = control.choices.map(c => c[0]); + if (control.multi && formData[k].length > 0 && choiceValues.indexOf(formData[k][0]) < 0) { + delete formData[k]; + } else if (!control.multi && !control.freeForm && choiceValues.indexOf(formData[k]) < 0) { + delete formData[k]; + } + } + // Removing invalid filters that point to a now inexisting column + if (control.type === 'FilterControl' && control.choices) { + if (!formData[k]) { + formData[k] = []; + } + const choiceValues = control.choices.map(c => c[0]); + formData[k] = formData[k].filter(flt => choiceValues.indexOf(flt.col) >= 0); + } + + if (typeof control.default === 'function') { + control.default = control.default(control); + } + control.validationErrors = []; + control.value = formData[k] !== undefined ? formData[k] : control.default; + controlsState[k] = control; + }); + return controlsState; +} + +export function applyDefaultFormData(form_data) { + const datasourceType = form_data.datasource.split('__')[1]; + const vizType = form_data.viz_type || 'table'; + const viz = visTypes[vizType]; + const controlNames = getControlNames(vizType, datasourceType); + const controlOverrides = viz.controlOverrides || {}; + const formData = {}; + controlNames.forEach((k) => { + const control = Object.assign({}, controls[k]); + if (controlOverrides[k]) { + Object.assign(control, controlOverrides[k]); + } + if (form_data[k] === undefined) { + if (typeof control.default === 'function') { + formData[k] = control.default(controls[k]); + } else { + formData[k] = control.default; + } + } else { + formData[k] = form_data[k]; + } + }); + return formData; +} + +export const autoQueryControls = [ + 'datasource', + 'viz_type', +]; + +const defaultControls = Object.assign({}, controls); +Object.keys(controls).forEach((f) => { + defaultControls[f].value = controls[f].default; +}); + +const defaultState = { + controls: defaultControls, + form_data: getFormDataFromControls(defaultControls), +}; + +export { defaultControls, defaultState }; diff --git a/superset/assets/javascripts/explorev2/stores/visTypes.js b/superset/assets/javascripts/explore/stores/visTypes.js similarity index 69% rename from superset/assets/javascripts/explorev2/stores/visTypes.js rename to superset/assets/javascripts/explore/stores/visTypes.js index 1aea323b05840..14530991dbb9a 100644 --- a/superset/assets/javascripts/explorev2/stores/visTypes.js +++ b/superset/assets/javascripts/explore/stores/visTypes.js @@ -1,30 +1,31 @@ -export const commonControlPanelSections = { +export const sections = { druidTimeSeries: { label: 'Time', description: 'Time related form attributes', - fieldSetRows: [ + controlSetRows: [ ['granularity', 'druid_time_origin'], ['since', 'until'], ], }, datasourceAndVizType: { label: 'Datasource & Chart Type', - fieldSetRows: [ + controlSetRows: [ ['datasource'], ['viz_type'], + ['slice_id', 'cache_timeout'], ], }, sqlaTimeSeries: { label: 'Time', description: 'Time related form attributes', - fieldSetRows: [ + controlSetRows: [ ['granularity_sqla', 'time_grain_sqla'], ['since', 'until'], ], }, sqlClause: { label: 'SQL', - fieldSetRows: [ + controlSetRows: [ ['where'], ['having'], ], @@ -33,7 +34,7 @@ export const commonControlPanelSections = { NVD3TimeSeries: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metrics'], ['groupby'], ['limit', 'timeseries_limit_metric'], @@ -42,14 +43,14 @@ export const commonControlPanelSections = { { label: 'Advanced Analytics', description: 'This section contains options ' + - 'that allow for advanced analytical post processing ' + - 'of query results', - fieldSetRows: [ - ['rolling_type', 'rolling_periods'], - ['time_compare'], - ['num_period_compare', 'period_ratio_type'], - ['resample_how', 'resample_rule'], - ['resample_fillmethod'], + 'that allow for advanced analytical post processing ' + + 'of query results', + controlSetRows: [ + ['rolling_type', 'rolling_periods'], + ['time_compare'], + ['num_period_compare', 'period_ratio_type'], + ['resample_how', 'resample_rule'], + ['resample_fillmethod'], ], }, ], @@ -57,18 +58,16 @@ export const commonControlPanelSections = { { label: 'Filters', description: 'Filters are defined using comma delimited strings as in ' + - 'Leave the value field empty to filter empty strings or nulls' + - 'For filters with comma in values, wrap them in single quotes' + - "as in ", - prefix: 'flt', - fieldSetRows: [['filters']], + 'Leave the value control empty to filter empty strings or nulls' + + 'For filters with comma in values, wrap them in single quotes' + + "as in ", + controlSetRows: [['filters']], }, { label: 'Result Filters', description: 'The filters to apply after post-aggregation.' + - 'Leave the value field empty to filter empty strings or nulls', - prefix: 'having', - fieldSetRows: [['filters']], + 'Leave the value control empty to filter empty strings or nulls', + controlSetRows: [['having_filters']], }, ], }; @@ -79,8 +78,7 @@ const visTypes = { controlPanelSections: [ { label: 'Chart Options', - description: 'tooltip text here', - fieldSetRows: [ + controlSetRows: [ ['metrics'], ['groupby'], ['columns'], @@ -94,7 +92,7 @@ const visTypes = { ], }, ], - fieldOverrides: { + controlOverrides: { groupby: { label: 'Series', }, @@ -110,7 +108,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metrics', 'groupby'], ['limit'], ['pie_label_type'], @@ -125,49 +123,54 @@ const visTypes = { label: 'Time Series - Line Chart', requiresTime: true, controlPanelSections: [ - commonControlPanelSections.NVD3TimeSeries[0], + sections.NVD3TimeSeries[0], { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['show_brush', 'show_legend'], - ['rich_tooltip', 'y_axis_zero'], - ['y_log_scale', 'contribution'], + ['rich_tooltip', null], ['show_markers', 'x_axis_showminmax'], - ['line_interpolation'], - ['x_axis_format', 'y_axis_format'], - ['x_axis_label', 'y_axis_label'], + ['line_interpolation', 'contribution'], + ], + }, + { + label: 'Axes', + controlSetRows: [ + ['x_axis_label', 'x_axis_format'], + ['y_axis_label', 'y_axis_bounds'], + ['y_axis_format', 'y_log_scale'], ], }, - commonControlPanelSections.NVD3TimeSeries[1], + sections.NVD3TimeSeries[1], ], }, dual_line: { - label: 'Time Series - Dual Axis Line Chart', + label: 'Dual Axis Line Chart', requiresTime: true, controlPanelSections: [ { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['x_axis_format'], ], }, { label: 'Y Axis 1', - fieldSetRows: [ + controlSetRows: [ ['metric'], ['y_axis_format'], ], }, { label: 'Y Axis 2', - fieldSetRows: [ + controlSetRows: [ ['metric_2'], ['y_axis_2_format'], ], }, ], - fieldOverrides: { + controlOverrides: { metric: { label: 'Left Axis Metric', description: 'Choose a metric for left axis', @@ -182,21 +185,26 @@ const visTypes = { label: 'Time Series - Bar Chart', requiresTime: true, controlPanelSections: [ - commonControlPanelSections.NVD3TimeSeries[0], + sections.NVD3TimeSeries[0], { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['show_brush', 'show_legend', 'show_bar_value'], - ['rich_tooltip', 'y_axis_zero'], - ['y_log_scale', 'contribution'], - ['x_axis_format', 'y_axis_format'], + ['rich_tooltip', 'contribution'], ['line_interpolation', 'bar_stacked'], - ['x_axis_showminmax', 'bottom_margin'], + ['bottom_margin', 'show_controls'], + ], + }, + { + label: 'Axes', + controlSetRows: [ + ['x_axis_format', 'y_axis_format'], + ['x_axis_showminmax', 'reduce_x_ticks'], ['x_axis_label', 'y_axis_label'], - ['reduce_x_ticks', 'show_controls'], + ['y_axis_bounds', 'y_log_scale'], ], }, - commonControlPanelSections.NVD3TimeSeries[1], + sections.NVD3TimeSeries[1], ], }, @@ -204,8 +212,14 @@ const visTypes = { label: 'Time Series - Percent Change', requiresTime: true, controlPanelSections: [ - commonControlPanelSections.NVD3TimeSeries[0], - commonControlPanelSections.NVD3TimeSeries[1], + sections.NVD3TimeSeries[0], + { + label: 'Chart Options', + controlSetRows: [ + ['x_axis_format', 'y_axis_format'], + ], + }, + sections.NVD3TimeSeries[1], ], }, @@ -213,19 +227,25 @@ const visTypes = { label: 'Time Series - Stacked', requiresTime: true, controlPanelSections: [ - commonControlPanelSections.NVD3TimeSeries[0], + sections.NVD3TimeSeries[0], { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['show_brush', 'show_legend'], - ['rich_tooltip', 'y_axis_zero'], - ['y_log_scale', 'contribution'], - ['x_axis_format', 'y_axis_format'], - ['x_axis_showminmax', 'show_controls'], ['line_interpolation', 'stacked_style'], + ['rich_tooltip', 'contribution'], + ['show_controls', null], ], }, - commonControlPanelSections.NVD3TimeSeries[1], + { + label: 'Axes', + controlSetRows: [ + ['x_axis_format', 'x_axis_showminmax'], + ['y_axis_format', 'y_axis_bounds'], + ['y_log_scale', null], + ], + }, + sections.NVD3TimeSeries[1], ], }, @@ -235,27 +255,36 @@ const visTypes = { { label: 'GROUP BY', description: 'Use this section if you want a query that aggregates', - fieldSetRows: [ + controlSetRows: [ ['groupby', 'metrics'], + ['include_time'], ], }, { label: 'NOT GROUPED BY', description: 'Use this section if you want to query atomic rows', - fieldSetRows: [ - ['all_columns', 'order_by_cols'], + controlSetRows: [ + ['all_columns'], + ['order_by_cols'], ], }, { label: 'Options', - fieldSetRows: [ + controlSetRows: [ ['table_timestamp_format'], - ['row_limit'], - ['page_length'], + ['row_limit', 'page_length'], ['include_search', 'table_filter'], ], }, ], + controlOverrides: { + metrics: { + validators: [], + }, + time_grain_sqla: { + default: null, + }, + }, }, markup: { @@ -263,7 +292,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['markup_type'], ['code'], ], @@ -276,9 +305,10 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['groupby', 'columns'], ['metrics', 'pandas_aggfunc'], + ['number_format'], ], }, ], @@ -289,18 +319,18 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['code'], ], }, ], - fieldOverrides: { + controlOverrides: { code: { default: '####Section Title\n' + - 'A paragraph describing the section' + - 'of the dashboard, right before the separator line ' + - '\n\n' + - '---------------', + 'A paragraph describing the section' + + 'of the dashboard, right before the separator line ' + + '\n\n' + + '---------------', }, }, }, @@ -310,7 +340,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['series', 'metric', 'limit'], ['size_from', 'size_to'], ['rotation'], @@ -324,14 +354,14 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metrics'], ['groupby'], ], }, { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['treemap_ratio'], ['number_format'], ], @@ -345,7 +375,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metric'], ['domain_granularity'], ['subdomain_granularity'], @@ -359,14 +389,14 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metrics'], ['groupby', 'limit'], ], }, { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['whisker_options'], ], }, @@ -378,7 +408,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['series', 'entity'], ['x', 'y'], ['size', 'limit'], @@ -386,11 +416,10 @@ const visTypes = { }, { label: 'Chart Options', - fieldSetRows: [ - ['x_log_scale', 'y_log_scale'], - ['show_legend'], - ['max_bubble_size'], + controlSetRows: [ + ['show_legend', 'max_bubble_size'], ['x_axis_label', 'y_axis_label'], + ['x_log_scale', 'y_log_scale'], ], }, ], @@ -402,7 +431,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metric'], ['ranges', 'range_labels'], ['markers', 'marker_labels'], @@ -417,7 +446,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metric'], ['compare_lag'], ['compare_suffix'], @@ -425,7 +454,7 @@ const visTypes = { ], }, ], - fieldOverrides: { + controlOverrides: { y_axis_format: { label: 'Number format', }, @@ -433,17 +462,18 @@ const visTypes = { }, big_number_total: { + label: 'Big Number', controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['metric'], ['subheader'], ['y_axis_format'], ], }, ], - fieldOverrides: { + controlOverrides: { y_axis_format: { label: 'Number format', }, @@ -455,19 +485,19 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['all_columns_x'], ['row_limit'], ], }, { label: 'Histogram Options', - fieldSetRows: [ + controlSetRows: [ ['link_length'], ], }, ], - fieldOverrides: { + controlOverrides: { all_columns_x: { label: 'Numeric Column', description: 'Select the numeric column to draw the histogram', @@ -485,14 +515,14 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['groupby'], ['metric', 'secondary_metric'], ['row_limit'], ], }, ], - fieldOverrides: { + controlOverrides: { metric: { label: 'Primary Metric', description: 'The primary metric is used to define the arc segment sizes', @@ -500,8 +530,8 @@ const visTypes = { secondary_metric: { label: 'Secondary Metric', description: 'This secondary metric is used to ' + - 'define the color as a ratio against the primary metric. ' + - 'If the two metrics match, color is mapped level groups', + 'define the color as a ratio against the primary metric. ' + + 'If the two metrics match, color is mapped level groups', }, groupby: { label: 'Hierarchy', @@ -515,14 +545,14 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['groupby'], ['metric'], ['row_limit'], ], }, ], - fieldOverrides: { + controlOverrides: { groupby: { label: 'Source / Target', description: 'Choose a source and a target', @@ -535,7 +565,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['groupby'], ['metric'], ['row_limit'], @@ -543,26 +573,49 @@ const visTypes = { }, { label: 'Force Layout', - fieldSetRows: [ + controlSetRows: [ ['link_length'], ['charge'], ], }, ], - fieldOverrides: { + controlOverrides: { groupby: { label: 'Source / Target', description: 'Choose a source and a target', }, }, }, - + country_map: { + label: 'Country Map', + controlPanelSections: [ + { + label: null, + controlSetRows: [ + ['select_country'], + ['entity'], + ['metric'], + ['linear_color_scheme'], + ], + }, + ], + controlOverrides: { + entity: { + label: 'ISO 3166-1 codes of region/province/department', + description: "It's ISO 3166-1 of your region/province/department in your table. (see documentation for list of ISO 3166-1)", + }, + metric: { + label: 'Metric', + description: 'Metric to display bottom title', + }, + }, + }, world_map: { label: 'World Map', controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['entity'], ['country_fieldtype'], ['metric'], @@ -570,16 +623,16 @@ const visTypes = { }, { label: 'Bubbles', - fieldSetRows: [ + controlSetRows: [ ['show_bubbles'], ['secondary_metric'], ['max_bubble_size'], ], }, ], - fieldOverrides: { + controlOverrides: { entity: { - label: 'Country Field', + label: 'Country Control', description: '3 letter code of the country', }, metric: { @@ -598,17 +651,17 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ - ['date_filter'], + controlSetRows: [ + ['date_filter', 'instant_filtering'], ['groupby'], ['metric'], ], }, ], - fieldOverrides: { + controlOverrides: { groupby: { - label: 'Filter fields', - description: 'The fields you want to filter on', + label: 'Filter controls', + description: 'The controls you want to filter on', default: [], }, }, @@ -619,7 +672,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['url'], ], }, @@ -631,7 +684,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['series'], ['metrics'], ['secondary_metric'], @@ -647,7 +700,7 @@ const visTypes = { controlPanelSections: [ { label: 'Axis & Metrics', - fieldSetRows: [ + controlSetRows: [ ['all_columns_x'], ['all_columns_y'], ['metric'], @@ -655,7 +708,7 @@ const visTypes = { }, { label: 'Heatmap Options', - fieldSetRows: [ + controlSetRows: [ ['linear_color_scheme'], ['xscale_interval', 'yscale_interval'], ['canvas_image_rendering'], @@ -668,10 +721,10 @@ const visTypes = { horizon: { label: 'Horizon', controlPanelSections: [ - commonControlPanelSections.NVD3TimeSeries[0], + sections.NVD3TimeSeries[0], { label: 'Chart Options', - fieldSetRows: [ + controlSetRows: [ ['series_height', 'horizon_color_scale'], ], }, @@ -683,7 +736,7 @@ const visTypes = { controlPanelSections: [ { label: null, - fieldSetRows: [ + controlSetRows: [ ['all_columns_x', 'all_columns_y'], ['clustering_radius'], ['row_limit'], @@ -693,21 +746,21 @@ const visTypes = { }, { label: 'Points', - fieldSetRows: [ + controlSetRows: [ ['point_radius'], ['point_radius_unit'], ], }, { label: 'Labelling', - fieldSetRows: [ + controlSetRows: [ ['mapbox_label'], ['pandas_aggfunc'], ], }, { label: 'Visual Tweaks', - fieldSetRows: [ + controlSetRows: [ ['mapbox_style'], ['global_opacity'], ['mapbox_color'], @@ -715,14 +768,14 @@ const visTypes = { }, { label: 'Viewport', - fieldSetRows: [ + controlSetRows: [ ['viewport_longitude'], ['viewport_latitude'], ['viewport_zoom'], ], }, ], - fieldOverrides: { + controlOverrides: { all_columns_x: { label: 'Longitude', description: 'Column containing longitude data', @@ -734,16 +787,16 @@ const visTypes = { pandas_aggfunc: { label: 'Cluster label aggregator', description: 'Aggregate function applied to the list of points ' + - 'in each cluster to produce the cluster label.', + 'in each cluster to produce the cluster label.', }, rich_tooltip: { label: 'Tooltip', description: 'Show a tooltip when hovering over points and clusters ' + - 'describing the label', + 'describing the label', }, groupby: { - description: 'One or many fields to group by. If grouping, latitude ' + - 'and longitude columns must be present.', + description: 'One or many controls to group by. If grouping, latitude ' + + 'and longitude columns must be present.', }, }, }, @@ -753,17 +806,11 @@ export default visTypes; export function sectionsToRender(vizType, datasourceType) { const viz = visTypes[vizType]; - const timeSection = datasourceType === 'table' ? - commonControlPanelSections.sqlaTimeSeries : commonControlPanelSections.druidTimeSeries; - const { datasourceAndVizType, sqlClause, filters } = commonControlPanelSections; - const filtersToRender = - datasourceType === 'table' ? filters[0] : filters; - const sections = [].concat( - datasourceAndVizType, - timeSection, + return [].concat( + sections.datasourceAndVizType, + datasourceType === 'table' ? sections.sqlaTimeSeries : sections.druidTimeSeries, viz.controlPanelSections, - sqlClause, - filtersToRender + datasourceType === 'table' ? sections.sqlClause : [], + datasourceType === 'table' ? sections.filters[0] : sections.filters, ); - return sections; } diff --git a/superset/assets/javascripts/explorev2/validators.js b/superset/assets/javascripts/explore/validators.js similarity index 98% rename from superset/assets/javascripts/explorev2/validators.js rename to superset/assets/javascripts/explore/validators.js index 49e9a60bb0a14..f65b38dfc2360 100644 --- a/superset/assets/javascripts/explorev2/validators.js +++ b/superset/assets/javascripts/explore/validators.js @@ -1,6 +1,6 @@ /* Reusable validator functions used in controls definitions * - * validator functions receive the v and the configuration of the field + * validator functions receive the v and the configuration of the control * as arguments and return something that evals to false if v is valid, * and an error message if not valid. * */ diff --git a/superset/assets/javascripts/explorev2/components/CheckboxField.jsx b/superset/assets/javascripts/explorev2/components/CheckboxField.jsx deleted file mode 100644 index 2614cf4d01c99..0000000000000 --- a/superset/assets/javascripts/explorev2/components/CheckboxField.jsx +++ /dev/null @@ -1,32 +0,0 @@ -import React, { PropTypes } from 'react'; -import { Checkbox } from 'react-bootstrap'; - -const propTypes = { - name: PropTypes.string.isRequired, - value: PropTypes.bool, - label: PropTypes.string, - description: PropTypes.string, - onChange: PropTypes.func, -}; - -const defaultProps = { - value: false, - onChange: () => {}, -}; - -export default class CheckboxField extends React.Component { - onToggle() { - this.props.onChange(!this.props.value); - } - render() { - return ( - - ); - } -} - -CheckboxField.propTypes = propTypes; -CheckboxField.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/ControlHeader.jsx b/superset/assets/javascripts/explorev2/components/ControlHeader.jsx deleted file mode 100644 index 8d2ca210ce707..0000000000000 --- a/superset/assets/javascripts/explorev2/components/ControlHeader.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import React, { PropTypes } from 'react'; -import { ControlLabel, OverlayTrigger, Tooltip } from 'react-bootstrap'; -import InfoTooltipWithTrigger from '../../components/InfoTooltipWithTrigger'; - -const propTypes = { - label: PropTypes.string.isRequired, - description: PropTypes.string, - validationErrors: PropTypes.array, -}; - -const defaultProps = { - description: null, - validationErrors: [], -}; - -export default function ControlHeader({ label, description, validationErrors }) { - const hasError = (validationErrors.length > 0); - return ( - - {hasError ? - {label} : - {label} - } - {' '} - {(validationErrors.length > 0) && - - - {validationErrors.join(' ')} - - } - > - - - {' '} - - } - {description && - - } - - ); -} - -ControlHeader.propTypes = propTypes; -ControlHeader.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/ControlPanelsContainer.jsx b/superset/assets/javascripts/explorev2/components/ControlPanelsContainer.jsx deleted file mode 100644 index e5fdec909ae25..0000000000000 --- a/superset/assets/javascripts/explorev2/components/ControlPanelsContainer.jsx +++ /dev/null @@ -1,130 +0,0 @@ -/* eslint camelcase: 0 */ -import React, { PropTypes } from 'react'; -import { bindActionCreators } from 'redux'; -import * as actions from '../actions/exploreActions'; -import { connect } from 'react-redux'; -import { Panel, Alert } from 'react-bootstrap'; -import visTypes, { sectionsToRender } from '../stores/visTypes'; -import ControlPanelSection from './ControlPanelSection'; -import FieldSetRow from './FieldSetRow'; -import FieldSet from './FieldSet'; - -const propTypes = { - datasource_type: PropTypes.string.isRequired, - actions: PropTypes.object.isRequired, - fields: PropTypes.object.isRequired, - isDatasourceMetaLoading: PropTypes.bool.isRequired, - form_data: PropTypes.object.isRequired, - y_axis_zero: PropTypes.any, - alert: PropTypes.string, - exploreState: PropTypes.object.isRequired, -}; - -class ControlPanelsContainer extends React.Component { - constructor(props) { - super(props); - this.fieldOverrides = this.fieldOverrides.bind(this); - this.getFieldData = this.getFieldData.bind(this); - this.removeAlert = this.removeAlert.bind(this); - } - componentWillMount() { - const datasource_id = this.props.form_data.datasource; - const datasource_type = this.props.datasource_type; - if (datasource_id) { - this.props.actions.fetchDatasourceMetadata(datasource_id, datasource_type); - } - } - componentWillReceiveProps(nextProps) { - if (nextProps.form_data.datasource !== this.props.form_data.datasource) { - if (nextProps.form_data.datasource) { - this.props.actions.fetchDatasourceMetadata( - nextProps.form_data.datasource, nextProps.datasource_type); - } - } - } - getFieldData(fs) { - const fieldOverrides = this.fieldOverrides(); - let fieldData = this.props.fields[fs] || {}; - if (fieldOverrides.hasOwnProperty(fs)) { - const overrideData = fieldOverrides[fs]; - fieldData = Object.assign({}, fieldData, overrideData); - } - if (fieldData.mapStateToProps) { - Object.assign(fieldData, fieldData.mapStateToProps(this.props.exploreState)); - } - return fieldData; - } - sectionsToRender() { - return sectionsToRender(this.props.form_data.viz_type, this.props.datasource_type); - } - fieldOverrides() { - const viz = visTypes[this.props.form_data.viz_type]; - return viz.fieldOverrides || {}; - } - removeAlert() { - this.props.actions.removeControlPanelAlert(); - } - render() { - return ( -
- - {this.props.alert && - - {this.props.alert} - - - } - {!this.props.isDatasourceMetaLoading && this.sectionsToRender().map((section) => ( - - {section.fieldSetRows.map((fieldSets, i) => ( - ( -
- ))} - /> - ))} - - ))} - -
- ); - } -} - -ControlPanelsContainer.propTypes = propTypes; - -function mapStateToProps(state) { - return { - alert: state.controlPanelAlert, - isDatasourceMetaLoading: state.isDatasourceMetaLoading, - fields: state.fields, - exploreState: state, - }; -} - -function mapDispatchToProps(dispatch) { - return { - actions: bindActionCreators(actions, dispatch), - }; -} - -export { ControlPanelsContainer }; - -export default connect(mapStateToProps, mapDispatchToProps)(ControlPanelsContainer); diff --git a/superset/assets/javascripts/explorev2/components/FieldSet.jsx b/superset/assets/javascripts/explorev2/components/FieldSet.jsx deleted file mode 100644 index 1c67eb9ae800d..0000000000000 --- a/superset/assets/javascripts/explorev2/components/FieldSet.jsx +++ /dev/null @@ -1,85 +0,0 @@ -import React, { PropTypes } from 'react'; -import TextField from './TextField'; -import CheckboxField from './CheckboxField'; -import TextAreaField from './TextAreaField'; -import SelectField from './SelectField'; -import FilterField from './FilterField'; -import ControlHeader from './ControlHeader'; - -const fieldMap = { - TextField, - CheckboxField, - TextAreaField, - SelectField, - FilterField, -}; -const fieldTypes = Object.keys(fieldMap); - -const propTypes = { - actions: PropTypes.object.isRequired, - name: PropTypes.string.isRequired, - type: PropTypes.oneOf(fieldTypes).isRequired, - label: PropTypes.string.isRequired, - choices: PropTypes.arrayOf(PropTypes.array), - description: PropTypes.string, - places: PropTypes.number, - validators: PropTypes.array, - validationErrors: PropTypes.array, - value: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.number, - PropTypes.bool, - PropTypes.array]), -}; - -const defaultProps = { - validators: [], - validationErrors: [], -}; - -export default class FieldSet extends React.PureComponent { - constructor(props) { - super(props); - this.validate = this.validate.bind(this); - this.onChange = this.onChange.bind(this); - } - onChange(value, errors) { - let validationErrors = this.validate(value); - if (errors && errors.length > 0) { - validationErrors = validationErrors.concat(errors); - } - this.props.actions.setFieldValue(this.props.name, value, validationErrors); - } - validate(value) { - const validators = this.props.validators; - const validationErrors = []; - if (validators && validators.length > 0) { - validators.forEach(f => { - const v = f(value); - if (v) { - validationErrors.push(v); - } - }); - } - return validationErrors; - } - render() { - const FieldType = fieldMap[this.props.type]; - return ( -
- - -
- ); - } -} - -FieldSet.propTypes = propTypes; -FieldSet.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/FieldSetRow.jsx b/superset/assets/javascripts/explorev2/components/FieldSetRow.jsx deleted file mode 100644 index 904cddf120962..0000000000000 --- a/superset/assets/javascripts/explorev2/components/FieldSetRow.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { PropTypes } from 'react'; - -const NUM_COLUMNS = 12; - -const propTypes = { - fields: PropTypes.arrayOf(PropTypes.object).isRequired, -}; - -function FieldSetRow(props) { - const colSize = NUM_COLUMNS / props.fields.length; - return ( -
- {props.fields.map((field, i) => ( -
- {field} -
- ))} -
- ); -} - -FieldSetRow.propTypes = propTypes; -export default FieldSetRow; diff --git a/superset/assets/javascripts/explorev2/components/Filter.jsx b/superset/assets/javascripts/explorev2/components/Filter.jsx deleted file mode 100644 index e0d3a2bf8a4c4..0000000000000 --- a/superset/assets/javascripts/explorev2/components/Filter.jsx +++ /dev/null @@ -1,129 +0,0 @@ -const $ = window.$ = require('jquery'); -import React, { PropTypes } from 'react'; -import Select from 'react-select'; -import { Button, Row, Col } from 'react-bootstrap'; -import SelectField from './SelectField'; - -const propTypes = { - choices: PropTypes.array, - opChoices: PropTypes.array, - changeFilter: PropTypes.func, - removeFilter: PropTypes.func, - filter: PropTypes.object.isRequired, - datasource: PropTypes.object, -}; - -const defaultProps = { - changeFilter: () => {}, - removeFilter: () => {}, - choices: [], - datasource: null, -}; - -export default class Filter extends React.Component { - fetchFilterValues(col) { - if (!this.props.datasource) { - return; - } - const datasource = this.props.datasource; - let choices = []; - if (col) { - $.ajax({ - type: 'GET', - url: `/superset/filter/${datasource.type}/${datasource.id}/${col}/`, - success: (data) => { - choices = Object.keys(data).map((k) => - ([`'${data[k]}'`, `'${data[k]}'`])); - this.props.changeFilter('choices', choices); - }, - }); - } - } - changeFilter(field, event) { - let value = event; - if (event && event.target) { - value = event.target.value; - } - if (event && event.value) { - value = event.value; - } - this.props.changeFilter(field, value); - if (field === 'col' && value !== null && this.props.datasource.filter_select) { - this.fetchFilterValues(value); - } - } - removeFilter(filter) { - this.props.removeFilter(filter); - } - renderFilterFormField(filter) { - const datasource = this.props.datasource; - if (datasource && datasource.filter_select) { - if (!filter.choices) { - this.fetchFilterValues(filter.col); - } - return ( - - ); - } - return ( - - ); - } - render() { - const filter = this.props.filter; - return ( -
- - - ({ value: o, label: o }))} - value={filter.op} - onChange={this.changeFilter.bind(this, 'op')} - /> - - - {this.renderFilterFormField(filter)} - - - - - -
- ); - } -} - -Filter.propTypes = propTypes; -Filter.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/FilterField.jsx b/superset/assets/javascripts/explorev2/components/FilterField.jsx deleted file mode 100644 index 112fac84c13d2..0000000000000 --- a/superset/assets/javascripts/explorev2/components/FilterField.jsx +++ /dev/null @@ -1,86 +0,0 @@ -import React, { PropTypes } from 'react'; -import { Button, Row, Col } from 'react-bootstrap'; -import Filter from './Filter'; - -const propTypes = { - prefix: PropTypes.string, - choices: PropTypes.array, - onChange: PropTypes.func, - value: PropTypes.array, - datasource: PropTypes.object, -}; - -const defaultProps = { - prefix: 'flt', - choices: [], - onChange: () => {}, - value: [], -}; - -export default class FilterField extends React.Component { - constructor(props) { - super(props); - this.opChoices = props.prefix === 'flt' ? - ['in', 'not in'] : ['==', '!=', '>', '<', '>=', '<=']; - } - addFilter() { - const newFilters = Object.assign([], this.props.value); - newFilters.push({ - prefix: this.props.prefix, - col: null, - op: 'in', - value: this.props.datasource.filter_select ? [] : '', - }); - this.props.onChange(newFilters); - } - changeFilter(index, field, value) { - const newFilters = Object.assign([], this.props.value); - const modifiedFilter = Object.assign({}, newFilters[index]); - modifiedFilter[field] = value; - newFilters.splice(index, 1, modifiedFilter); - this.props.onChange(newFilters); - } - removeFilter(index) { - this.props.onChange(this.props.value.filter((f, i) => i !== index)); - } - render() { - const filters = []; - this.props.value.forEach((filter, i) => { - // only display filters with current prefix - if (filter.prefix === this.props.prefix) { - const filterBox = ( -
- -
- ); - filters.push(filterBox); - } - }); - return ( -
- {filters} - - - - - -
- ); - } -} - -FilterField.propTypes = propTypes; -FilterField.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/components/TextAreaField.jsx b/superset/assets/javascripts/explorev2/components/TextAreaField.jsx deleted file mode 100644 index fc7088dcac3f6..0000000000000 --- a/superset/assets/javascripts/explorev2/components/TextAreaField.jsx +++ /dev/null @@ -1,38 +0,0 @@ -import React, { PropTypes } from 'react'; -import { FormGroup, FormControl } from 'react-bootstrap'; - -const propTypes = { - name: PropTypes.string.isRequired, - label: PropTypes.string, - description: PropTypes.string, - onChange: PropTypes.func, - value: PropTypes.string, -}; - -const defaultProps = { - label: null, - description: null, - onChange: () => {}, - value: '', -}; - -export default class TextAreaField extends React.Component { - onChange(event) { - this.props.onChange(event.target.value); - } - render() { - return ( - - - - ); - } -} - -TextAreaField.propTypes = propTypes; -TextAreaField.defaultProps = defaultProps; diff --git a/superset/assets/javascripts/explorev2/exploreUtils.js b/superset/assets/javascripts/explorev2/exploreUtils.js deleted file mode 100644 index bd0457a6be0c4..0000000000000 --- a/superset/assets/javascripts/explorev2/exploreUtils.js +++ /dev/null @@ -1,56 +0,0 @@ -/* eslint camelcase: 0 */ -const $ = require('jquery'); -function formatFilters(filters) { - // outputs an object of url params of filters - // prefix can be 'flt' or 'having' - const params = {}; - for (let i = 0; i < filters.length; i++) { - const filter = filters[i]; - params[`${filter.prefix}_col_${i + 1}`] = filter.col; - params[`${filter.prefix}_op_${i + 1}`] = filter.op; - if (filter.value.constructor === Array) { - params[`${filter.prefix}_eq_${i + 1}`] = filter.value.join(','); - } else { - params[`${filter.prefix}_eq_${i + 1}`] = filter.value; - } - } - return params; -} - -export function getParamObject(form_data, datasource_type, saveNewSlice) { - const data = { - // V2 tag temporarily for updating url - // Todo: remove after launch - V2: true, - datasource_id: form_data.datasource, - datasource_type, - }; - Object.keys(form_data).forEach((field) => { - // filter out null fields - if (form_data[field] !== null && field !== 'datasource' && field !== 'filters' - && !(saveNewSlice && field === 'slice_name')) { - data[field] = form_data[field]; - } - }); - const filterParams = formatFilters(form_data.filters); - Object.assign(data, filterParams); - return data; -} - -export function getExploreUrl(form_data, datasource_type, endpoint = 'base') { - const data = getParamObject(form_data, datasource_type); - const params = `${datasource_type}/` + - `${form_data.datasource}/?${$.param(data, true)}`; - switch (endpoint) { - case 'base': - return `/superset/explore/${params}`; - case 'json': - return `/superset/explore_json/${params}`; - case 'csv': - return `/superset/explore/${params}&csv=true`; - case 'standalone': - return `/superset/explore/${params}&standalone=true`; - default: - return `/superset/explore/${params}`; - } -} diff --git a/superset/assets/javascripts/explorev2/index.jsx b/superset/assets/javascripts/explorev2/index.jsx deleted file mode 100644 index 9a3a461fc0854..0000000000000 --- a/superset/assets/javascripts/explorev2/index.jsx +++ /dev/null @@ -1,79 +0,0 @@ -/* eslint camelcase: 0 */ -import React from 'react'; -import ReactDOM from 'react-dom'; -import ExploreViewContainer from './components/ExploreViewContainer'; -import { createStore, applyMiddleware, compose } from 'redux'; -import { Provider } from 'react-redux'; -import thunk from 'redux-thunk'; -import { now } from '../modules/dates'; -import { initEnhancer } from '../reduxUtils'; - -// jquery and bootstrap required to make bootstrap dropdown menu's work -const $ = window.$ = require('jquery'); // eslint-disable-line -const jQuery = window.jQuery = require('jquery'); // eslint-disable-line -require('bootstrap'); -require('./main.css'); - -import { initialState } from './stores/store'; - -const exploreViewContainer = document.getElementById('js-explore-view-container'); -const bootstrapData = JSON.parse(exploreViewContainer.getAttribute('data-bootstrap')); - -import { exploreReducer } from './reducers/exploreReducer'; - -const bootstrappedState = Object.assign( - initialState(bootstrapData.viz.form_data.viz_type, bootstrapData.datasource_type), { - can_edit: bootstrapData.can_edit, - can_download: bootstrapData.can_download, - datasources: bootstrapData.datasources, - datasource_type: bootstrapData.datasource_type, - viz: bootstrapData.viz, - user_id: bootstrapData.user_id, - chartUpdateStartTime: now(), - chartUpdateEndTime: null, - chartStatus: 'loading', - queryResponse: null, - } -); -bootstrappedState.viz.form_data.datasource = parseInt(bootstrapData.datasource_id, 10); -bootstrappedState.viz.form_data.datasource_name = bootstrapData.datasource_name; - -function parseFilters(form_data, prefix = 'flt') { - const filters = []; - for (let i = 0; i <= 10; i++) { - if (form_data[`${prefix}_col_${i}`] && form_data[`${prefix}_op_${i}`]) { - filters.push({ - prefix, - col: form_data[`${prefix}_col_${i}`], - op: form_data[`${prefix}_op_${i}`], - value: form_data[`${prefix}_eq_${i}`], - }); - } - /* eslint no-param-reassign: 0 */ - delete form_data[`${prefix}_col_${i}`]; - delete form_data[`${prefix}_op_${i}`]; - delete form_data[`${prefix}_eq_${i}`]; - } - return filters; -} - -function getFilters(form_data, datasource_type) { - if (datasource_type === 'table') { - return parseFilters(form_data); - } - return parseFilters(form_data).concat(parseFilters(form_data, 'having')); -} - -bootstrappedState.viz.form_data.filters = - getFilters(bootstrappedState.viz.form_data, bootstrapData.datasource_type); - -const store = createStore(exploreReducer, bootstrappedState, - compose(applyMiddleware(thunk), initEnhancer(false)) -); - -ReactDOM.render( - - - , - exploreViewContainer -); diff --git a/superset/assets/javascripts/explorev2/main.css b/superset/assets/javascripts/explorev2/main.css deleted file mode 100644 index 0d56bca3728f3..0000000000000 --- a/superset/assets/javascripts/explorev2/main.css +++ /dev/null @@ -1,32 +0,0 @@ -.scrollbar-container { - position: relative; - overflow: hidden; - width: 100%; - height: 100%; -} - -.scrollbar-content { - position: absolute; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - overflow-y: auto; - margin-right: 0px; -} - -.fave-unfave-icon, .edit-desc-icon { - padding: 0 0 0 .5em; - font-size: 14px; -} - -.checkbox { - float: left; - margin-top: 0px; - margin-right: 3px; -} - -.control-panel-section { - margin-bottom: 0px; - box-shadow: none; -} diff --git a/superset/assets/javascripts/explorev2/stores/store.js b/superset/assets/javascripts/explorev2/stores/store.js deleted file mode 100644 index 240ec1df880c2..0000000000000 --- a/superset/assets/javascripts/explorev2/stores/store.js +++ /dev/null @@ -1,56 +0,0 @@ -/* eslint camelcase: 0 */ -import { sectionsToRender } from './visTypes'; -import fields from './fields'; - -export function defaultFormData(vizType = 'table', datasourceType = 'table') { - const data = { - slice_name: null, - slice_id: null, - datasource_name: null, - filters: [], - }; - const sections = sectionsToRender(vizType, datasourceType); - sections.forEach((section) => { - section.fieldSetRows.forEach((fieldSetRow) => { - fieldSetRow.forEach((k) => { - data[k] = fields[k].default; - }); - }); - }); - return data; -} - -export function defaultViz(vizType, datasourceType = 'table') { - return { - cached_key: null, - cached_timeout: null, - cached_dttm: null, - column_formats: null, - csv_endpoint: null, - is_cached: false, - data: [], - form_data: defaultFormData(vizType, datasourceType), - json_endpoint: null, - query: null, - standalone_endpoint: null, - }; -} - -export function initialState(vizType = 'table', datasourceType = 'table') { - return { - dashboards: [], - isDatasourceMetaLoading: false, - datasources: null, - datasource_type: null, - filterColumnOpts: [], - fields, - viz: defaultViz(vizType, datasourceType), - isStarred: false, - }; -} - -// Control Panel fields that re-render chart without need for 'Query button' -export const autoQueryFields = [ - 'datasource', - 'viz_type', -]; diff --git a/superset/assets/javascripts/index.jsx b/superset/assets/javascripts/index.jsx deleted file mode 100644 index 89cee75e736c9..0000000000000 --- a/superset/assets/javascripts/index.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import { render } from 'react-dom'; -import { Jumbotron } from 'react-bootstrap'; - -function App() { - return ( - -

Superset

-

Extensible visualization tool for exploring data from any database.

-
- ); -} - -render(, document.getElementById('app')); diff --git a/superset/assets/javascripts/modules/colors.js b/superset/assets/javascripts/modules/colors.js index 71068175dbdd3..56c88afd2a764 100644 --- a/superset/assets/javascripts/modules/colors.js +++ b/superset/assets/javascripts/modules/colors.js @@ -1,5 +1,5 @@ import $ from 'jquery'; -const d3 = require('d3'); +import d3 from 'd3'; // Color related utility functions go in this object export const bnbColors = [ diff --git a/superset/assets/javascripts/modules/dates.js b/superset/assets/javascripts/modules/dates.js index b1e808677afbc..449e1ba26c6df 100644 --- a/superset/assets/javascripts/modules/dates.js +++ b/superset/assets/javascripts/modules/dates.js @@ -9,7 +9,7 @@ function UTC(dttm) { dttm.getUTCDate(), dttm.getUTCHours(), dttm.getUTCMinutes(), - dttm.getUTCSeconds() + dttm.getUTCSeconds(), ); } export const tickMultiFormat = d3.time.format.multi([ @@ -105,4 +105,3 @@ export const epochTimeXYearsAgo = function (y) { .utc() .valueOf(); }; - diff --git a/superset/assets/javascripts/modules/superset.js b/superset/assets/javascripts/modules/superset.js index fa5a843cda90b..55af823117c4e 100644 --- a/superset/assets/javascripts/modules/superset.js +++ b/superset/assets/javascripts/modules/superset.js @@ -1,9 +1,12 @@ +/* eslint camel-case: 0 */ import $ from 'jquery'; -const Mustache = require('mustache'); +import Mustache from 'mustache'; +import vizMap from '../../visualizations/main'; +import { getExploreUrl } from '../explore/exploreUtils'; +import { applyDefaultFormData } from '../explore/stores/store'; +import { QUERY_TIMEOUT_THRESHOLD } from '../constants'; + const utils = require('./utils'); -// vis sources -/* eslint camel-case: 0 */ -import vizMap from '../../visualizations/main.js'; /* eslint wrap-iife: 0*/ const px = function () { @@ -53,41 +56,20 @@ const px = function () { }) .tooltip(); } - const Slice = function (data, controller) { - let timer; - const token = $('#' + data.token); - const containerId = data.token + '_con'; + const Slice = function (data, datasource, controller) { + const token = $('#token_' + data.slice_id); + const containerId = 'con_' + data.slice_id; const selector = '#' + containerId; const container = $(selector); const sliceId = data.slice_id; - const origJsonEndpoint = data.json_endpoint; - let dttm = 0; - const stopwatch = function () { - dttm += 10; - const num = dttm / 1000; - $('#timer').text(num.toFixed(2) + ' sec'); - }; - let qrystr = ''; + const formData = applyDefaultFormData(data.form_data); slice = { data, + formData, container, containerId, + datasource, selector, - querystring() { - const parser = document.createElement('a'); - parser.href = data.json_endpoint; - if (controller.type === 'dashboard') { - parser.href = origJsonEndpoint; - let flts = controller.effectiveExtraFilters(sliceId); - flts = encodeURIComponent(JSON.stringify(flts)); - qrystr = parser.search + '&extra_filters=' + flts; - } else if ($('#query').length === 0) { - qrystr = parser.search; - } else { - qrystr = '?' + $('#query').serialize(); - } - return qrystr; - }, getWidgetHeader() { return this.container.parents('div.widget').find('.chart-header'); }, @@ -99,28 +81,33 @@ const px = function () { return Mustache.render(s, context); }, jsonEndpoint() { - const parser = document.createElement('a'); - parser.href = data.json_endpoint; - let endpoint = parser.pathname + this.querystring(); + return this.endpoint('json'); + }, + endpoint(endpointType = 'json') { + const formDataExtra = Object.assign({}, formData); + const flts = controller.effectiveExtraFilters(sliceId); + if (flts) { + formDataExtra.extra_filters = flts; + } + let endpoint = getExploreUrl(formDataExtra, endpointType, this.force); if (endpoint.charAt(0) !== '/') { // Known issue for IE <= 11: // https://connect.microsoft.com/IE/feedbackdetail/view/1002846/pathname-incorrect-for-out-of-document-elements endpoint = '/' + endpoint; } - endpoint += '&json=true'; - endpoint += '&force=' + this.force; return endpoint; }, d3format(col, number) { // uses the utils memoized d3format function and formats based on // column level defined preferences - const format = data.column_formats[col]; + let format = '.3s'; + if (this.datasource.column_formats[col]) { + format = this.datasource.column_formats[col]; + } return utils.d3format(format, number); }, /* eslint no-shadow: 0 */ always(data) { - clearInterval(timer); - $('#timer').removeClass('btn-warning'); if (data && data.query) { slice.viewSqlQuery = data.query; } @@ -128,28 +115,25 @@ const px = function () { done(payload) { Object.assign(data, payload); - clearInterval(timer); token.find('img.loading').hide(); container.fadeTo(0.5, 1); container.show(); - $('#timer').addClass('label-success'); - $('#timer').removeClass('label-warning label-danger'); $('.query-and-save button').removeAttr('disabled'); this.always(data); controller.done(this); }, getErrorMsg(xhr) { - if (xhr.statusText === 'timeout') { - return 'The request timed out'; - } let msg = ''; if (!xhr.responseText) { const status = xhr.status; - msg += 'An unknown error occurred. (Status: ' + status + ')'; if (status === 0) { // This may happen when the worker in gunicorn times out - msg += ' Maybe the request timed out?'; + msg += ( + 'The server could not be reached. You may want to ' + + 'verify your connection and try again.'); + } else { + msg += 'An unknown error occurred. (Status: ' + status + ')'; } } return msg; @@ -168,17 +152,23 @@ const px = function () { } catch (e) { // pass } - errHtml = `
${errorMsg}
`; + if (errorMsg) { + errHtml += `
${errorMsg}
`; + } if (xhr) { - const extendedMsg = this.getErrorMsg(xhr); - if (extendedMsg) { - errHtml += `
${extendedMsg}
`; + if (xhr.statusText === 'timeout') { + errHtml += '
' + + `Query timeout - visualization query are set to time out at ${QUERY_TIMEOUT_THRESHOLD / 1000} seconds.
`; + } else { + const extendedMsg = this.getErrorMsg(xhr); + if (extendedMsg) { + errHtml += `
${extendedMsg}
`; + } } } container.html(errHtml); container.show(); $('span.query').removeClass('disabled'); - $('#timer').addClass('btn-danger'); $('.query-and-save button').removeAttr('disabled'); this.always(o); controller.error(this); @@ -187,7 +177,7 @@ const px = function () { $(selector + ' div.alert').remove(); }, width() { - return token.width(); + return container.width(); }, height() { let others = 0; @@ -218,29 +208,30 @@ const px = function () { token.find('img.loading').show(); container.fadeTo(0.5, 0.25); container.css('height', this.height()); - dttm = 0; - timer = setInterval(stopwatch, 10); - $('#timer').removeClass('label-danger label-success'); - $('#timer').addClass('label-warning'); - $.getJSON(this.jsonEndpoint(), queryResponse => { - try { - vizMap[data.form_data.viz_type](this, queryResponse); - this.done(queryResponse); - } catch (e) { - this.error('An error occurred while rendering the visualization: ' + e); - } - }).fail(err => { - this.error(err.responseText, err); + $.ajax({ + url: this.jsonEndpoint(), + timeout: QUERY_TIMEOUT_THRESHOLD, + success: (queryResponse) => { + try { + vizMap[formData.viz_type](this, queryResponse); + this.done(queryResponse); + } catch (e) { + this.error('An error occurred while rendering the visualization: ' + e); + } + }, + error: (err) => { + this.error(err.responseText, err); + }, }); }, resize() { this.render(); }, - addFilter(col, vals) { - controller.addFilter(sliceId, col, vals); + addFilter(col, vals, merge = true, refresh = true) { + controller.addFilter(sliceId, col, vals, merge, refresh); }, - setFilter(col, vals) { - controller.setFilter(sliceId, col, vals); + setFilter(col, vals, refresh = true) { + controller.setFilter(sliceId, col, vals, refresh); }, getFilters() { return controller.filters[sliceId]; diff --git a/superset/assets/javascripts/modules/utils.js b/superset/assets/javascripts/modules/utils.js index 7c69f6fb4831f..f7f130ca60eba 100644 --- a/superset/assets/javascripts/modules/utils.js +++ b/superset/assets/javascripts/modules/utils.js @@ -109,7 +109,11 @@ export function d3format(format, number) { if (!(format in formatters)) { formatters[format] = d3.format(format); } - return formatters[format](number); + try { + return formatters[format](number); + } catch (e) { + return 'ERR'; + } } // Slice objects interact with their context through objects that implement @@ -133,14 +137,14 @@ export function formatSelectOptionsForRange(start, end) { // returns [[1,1], [2,2], [3,3], [4,4], [5,5]] const options = []; for (let i = start; i <= end; i++) { - options.push([i.toString(), i.toString()]); + options.push([i, i.toString()]); } return options; } export function formatSelectOptions(options) { - return options.map((opt) => - [opt.toString(), opt.toString()] + return options.map(opt => + [opt, opt.toString()], ); } @@ -184,3 +188,31 @@ export function customizeToolTip(chart, xAxisFormatter, yAxisFormatters) { return tooltip; }); } + +export function initJQueryAjax() { + // Works in conjunction with a Flask-WTF token as described here: + // http://flask-wtf.readthedocs.io/en/stable/csrf.html#javascript-requests + const token = $('input#csrf_token').val(); + if (token) { + $.ajaxSetup({ + beforeSend(xhr, settings) { + if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { + xhr.setRequestHeader('X-CSRFToken', token); + } + }, + }); + } +} + +export function tryNumify(s) { + // Attempts casting to float, returns string when failing + try { + const parsed = parseFloat(s); + if (parsed) { + return parsed; + } + } catch (e) { + // pass + } + return s; +} diff --git a/superset/assets/javascripts/modules/visUtils.js b/superset/assets/javascripts/modules/visUtils.js new file mode 100644 index 0000000000000..eef2babfb8ff9 --- /dev/null +++ b/superset/assets/javascripts/modules/visUtils.js @@ -0,0 +1,11 @@ +export function getTextWidth(text, fontDetails = '12px Roboto') { + const canvas = document.createElement('canvas'); + const context = canvas.getContext('2d'); + context.font = fontDetails; + const metrics = context.measureText(text); + return metrics.width; +} + +export default { + getTextWidth, +}; diff --git a/superset/assets/javascripts/profile/components/App.jsx b/superset/assets/javascripts/profile/components/App.jsx index c12d092698d78..596b0ada4b51f 100644 --- a/superset/assets/javascripts/profile/components/App.jsx +++ b/superset/assets/javascripts/profile/components/App.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { Col, Row, Tabs, Tab, Panel } from 'react-bootstrap'; import Favorites from './Favorites'; import UserInfo from './UserInfo'; @@ -7,7 +8,7 @@ import RecentActivity from './RecentActivity'; import CreatedContent from './CreatedContent'; const propTypes = { - user: React.PropTypes.object.isRequired, + user: PropTypes.object.isRequired, }; export default function App(props) { diff --git a/superset/assets/javascripts/profile/components/CreatedContent.jsx b/superset/assets/javascripts/profile/components/CreatedContent.jsx index d779e19892178..87921c6872e6c 100644 --- a/superset/assets/javascripts/profile/components/CreatedContent.jsx +++ b/superset/assets/javascripts/profile/components/CreatedContent.jsx @@ -1,9 +1,10 @@ import React from 'react'; +import PropTypes from 'prop-types'; import moment from 'moment'; import TableLoader from './TableLoader'; const propTypes = { - user: React.PropTypes.object.isRequired, + user: PropTypes.object.isRequired, }; class CreatedContent extends React.PureComponent { @@ -17,7 +18,7 @@ class CreatedContent extends React.PureComponent { }; } renderSliceTable() { - const mutator = (data) => data.map(slice => ({ + const mutator = data => data.map(slice => ({ slice: {slice.title}, favorited: moment.utc(slice.dttm).fromNow(), _favorited: slice.dttm, @@ -34,7 +35,7 @@ class CreatedContent extends React.PureComponent { ); } renderDashboardTable() { - const mutator = (data) => data.map(dash => ({ + const mutator = data => data.map(dash => ({ dashboard: {dash.title}, favorited: moment.utc(dash.dttm).fromNow(), _favorited: dash.dttm, diff --git a/superset/assets/javascripts/profile/components/Favorites.jsx b/superset/assets/javascripts/profile/components/Favorites.jsx index 147d1b210f4ff..9039d916518b4 100644 --- a/superset/assets/javascripts/profile/components/Favorites.jsx +++ b/superset/assets/javascripts/profile/components/Favorites.jsx @@ -1,9 +1,10 @@ import React from 'react'; +import PropTypes from 'prop-types'; import moment from 'moment'; import TableLoader from './TableLoader'; const propTypes = { - user: React.PropTypes.object.isRequired, + user: PropTypes.object.isRequired, }; export default class Favorites extends React.PureComponent { @@ -17,7 +18,7 @@ export default class Favorites extends React.PureComponent { }; } renderSliceTable() { - const mutator = (data) => data.map(slice => ({ + const mutator = data => data.map(slice => ({ slice: {slice.title}, creator: {slice.creator}, favorited: moment.utc(slice.dttm).fromNow(), @@ -35,7 +36,7 @@ export default class Favorites extends React.PureComponent { ); } renderDashboardTable() { - const mutator = (data) => data.map(dash => ({ + const mutator = data => data.map(dash => ({ dashboard: {dash.title}, creator: {dash.creator}, favorited: moment.utc(dash.dttm).fromNow(), diff --git a/superset/assets/javascripts/profile/components/RecentActivity.jsx b/superset/assets/javascripts/profile/components/RecentActivity.jsx index 3077e7e6300e6..476f6d6180a41 100644 --- a/superset/assets/javascripts/profile/components/RecentActivity.jsx +++ b/superset/assets/javascripts/profile/components/RecentActivity.jsx @@ -1,25 +1,14 @@ import React from 'react'; -import TableLoader from './TableLoader'; +import PropTypes from 'prop-types'; import moment from 'moment'; -import $ from 'jquery'; + +import TableLoader from './TableLoader'; const propTypes = { - user: React.PropTypes.object, + user: PropTypes.object, }; export default class RecentActivity extends React.PureComponent { - constructor(props) { - super(props); - this.state = { - recentActions: [], - }; - } - - componentWillMount() { - $.get(`/superset/recent_activity/${this.props.user.userId}/`, (data) => { - this.setState({ recentActions: data }); - }); - } render() { const mutator = function (data) { return data.map(row => ({ diff --git a/superset/assets/javascripts/profile/components/Security.jsx b/superset/assets/javascripts/profile/components/Security.jsx index 2f68d18e00464..0d942dd83fdee 100644 --- a/superset/assets/javascripts/profile/components/Security.jsx +++ b/superset/assets/javascripts/profile/components/Security.jsx @@ -1,8 +1,9 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { Badge, Label } from 'react-bootstrap'; const propTypes = { - user: React.PropTypes.object.isRequired, + user: PropTypes.object.isRequired, }; export default function Security({ user }) { return ( diff --git a/superset/assets/javascripts/profile/components/TableLoader.jsx b/superset/assets/javascripts/profile/components/TableLoader.jsx index b5128589da9a9..b14d6f6865a84 100644 --- a/superset/assets/javascripts/profile/components/TableLoader.jsx +++ b/superset/assets/javascripts/profile/components/TableLoader.jsx @@ -1,12 +1,13 @@ import React from 'react'; +import PropTypes from 'prop-types'; import { Table, Tr, Td } from 'reactable'; import { Collapse } from 'react-bootstrap'; import $ from 'jquery'; const propTypes = { - dataEndpoint: React.PropTypes.string.isRequired, - mutator: React.PropTypes.func, - columns: React.PropTypes.arrayOf(React.PropTypes.string), + dataEndpoint: PropTypes.string.isRequired, + mutator: PropTypes.func, + columns: PropTypes.arrayOf(PropTypes.string), }; export default class TableLoader extends React.PureComponent { @@ -44,7 +45,7 @@ export default class TableLoader extends React.PureComponent { {this.state.data.map((row, i) => ( - {columns.map(col => { + {columns.map((col) => { if (row.hasOwnProperty('_' + col)) { return (
diff --git a/superset/assets/javascripts/profile/components/UserInfo.jsx b/superset/assets/javascripts/profile/components/UserInfo.jsx index 81b9b9d463978..4f751ed0d2391 100644 --- a/superset/assets/javascripts/profile/components/UserInfo.jsx +++ b/superset/assets/javascripts/profile/components/UserInfo.jsx @@ -1,10 +1,11 @@ import React from 'react'; +import PropTypes from 'prop-types'; import Gravatar from 'react-gravatar'; import moment from 'moment'; import { Panel } from 'react-bootstrap'; const propTypes = { - user: React.PropTypes.object.isRequired, + user: PropTypes.object.isRequired, }; const UserInfo = ({ user }) => (
diff --git a/superset/assets/javascripts/profile/index.jsx b/superset/assets/javascripts/profile/index.jsx index 913dfca705051..adf371e699768 100644 --- a/superset/assets/javascripts/profile/index.jsx +++ b/superset/assets/javascripts/profile/index.jsx @@ -1,15 +1,13 @@ +/* eslint no-unused-vars: 0 */ import React from 'react'; import ReactDOM from 'react-dom'; import { Badge, Col, Label, Row, Tabs, Tab, Panel } from 'react-bootstrap'; - import App from './components/App'; +import { appSetup } from '../common'; -const $ = window.$ = require('jquery'); -/* eslint no-unused-vars: 0 */ -const jQuery = window.jQuery = $; -require('bootstrap'); -require('./main.css'); +import './main.css'; +appSetup(); const profileViewContainer = document.getElementById('app'); const bootstrap = JSON.parse(profileViewContainer.getAttribute('data-bootstrap')); @@ -17,5 +15,5 @@ const bootstrap = JSON.parse(profileViewContainer.getAttribute('data-bootstrap') const user = bootstrap.user; ReactDOM.render( , - profileViewContainer + profileViewContainer, ); diff --git a/superset/assets/javascripts/reduxUtils.js b/superset/assets/javascripts/reduxUtils.js index bf430768a8e0e..fc42083d5647a 100644 --- a/superset/assets/javascripts/reduxUtils.js +++ b/superset/assets/javascripts/reduxUtils.js @@ -99,7 +99,7 @@ export function areObjectsEqual(obj1, obj2) { if (!obj1 || !obj2) { return false; } - if (! Object.keys(obj1).length !== Object.keys(obj2).length) { + if (!Object.keys(obj1).length !== Object.keys(obj2).length) { return false; } for (const id in obj1) { diff --git a/superset/assets/javascripts/standalone.js b/superset/assets/javascripts/standalone.js deleted file mode 100644 index 87c4fc20c7b08..0000000000000 --- a/superset/assets/javascripts/standalone.js +++ /dev/null @@ -1,17 +0,0 @@ -const $ = window.$ = require('jquery'); -/* eslint no-unused-vars: 0 */ -const jQuery = window.jQuery = $; -const px = require('./modules/superset.js'); -const utils = require('./modules/utils.js'); - -require('bootstrap'); - -const standaloneController = Object.assign( - {}, utils.controllerInterface, { type: 'standalone' }); - -$(document).ready(function () { - const data = $('.slice').data('slice'); - const slice = px.Slice(data, standaloneController); - slice.render(); - slice.bindResizeToWindowResize(); -}); diff --git a/superset/assets/javascripts/superset-select2.js b/superset/assets/javascripts/superset-select2.js deleted file mode 100644 index 2b15435121ab7..0000000000000 --- a/superset/assets/javascripts/superset-select2.js +++ /dev/null @@ -1,5 +0,0 @@ -require('../node_modules/select2/select2.css'); -require('../node_modules/select2-bootstrap-css/select2-bootstrap.min.css'); -require('../node_modules/jquery-ui/themes/base/jquery-ui.css'); -require('select2'); -require('../vendor/select2.sortable.js'); diff --git a/superset/assets/javascripts/syncBackend.js b/superset/assets/javascripts/syncBackend.js new file mode 100644 index 0000000000000..a40410af1e41b --- /dev/null +++ b/superset/assets/javascripts/syncBackend.js @@ -0,0 +1,25 @@ +/* eslint no-console: 0 */ +import fs from 'fs'; +import path from 'path'; +import { controls } from './explore/stores/controls'; + +function exportFile(fileLocation, content) { + fs.writeFile(fileLocation, content, function (err) { + if (err) { + console.log(`File ${fileLocation} was not saved... :(`); + } else { + console.log(`File ${fileLocation} was saved!`); + } + }); +} + +function main() { + const APP_DIR = path.resolve(__dirname, './'); + const dir = APP_DIR + '/../dist/'; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + const blob = { controls }; + exportFile(APP_DIR + '/../backendSync.json', JSON.stringify(blob, null, 2)); +} +main(); diff --git a/superset/assets/javascripts/welcome.js b/superset/assets/javascripts/welcome.js index 8a326f0853816..82415f95bfc80 100644 --- a/superset/assets/javascripts/welcome.js +++ b/superset/assets/javascripts/welcome.js @@ -1,15 +1,16 @@ -const $ = window.$ = require('jquery'); /* eslint no-unused-vars: 0 */ -const jQuery = window.jQuery = $; -require('../stylesheets/welcome.css'); -require('bootstrap'); - -require('datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'); import 'datatables.net'; import dt from 'datatables.net-bs'; +import d3 from 'd3'; + +import '../stylesheets/welcome.css'; +import { appSetup } from './common'; + +appSetup(); +require('datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'); + dt(window, $); -const d3 = require('d3'); function modelViewTable(selector, modelView, orderCol, order) { // Builds a dataTable from a flask appbuilder api endpoint let url = '/' + modelView.toLowerCase() + '/api/read'; diff --git a/superset/assets/js_build.sh b/superset/assets/js_build.sh index ec1fee68a973a..3231d915483c5 100755 --- a/superset/assets/js_build.sh +++ b/superset/assets/js_build.sh @@ -4,6 +4,7 @@ cd "$(dirname "$0")" npm --version node --version npm install +npm run sync-backend npm run lint npm run test npm run build diff --git a/superset/assets/package.json b/superset/assets/package.json index c3484559b8759..80b1b6401d047 100644 --- a/superset/assets/package.json +++ b/superset/assets/package.json @@ -1,6 +1,6 @@ { "name": "superset", - "version": "0.15.4", + "version": "0.18.5-alpha.3", "description": "Superset is a data exploration platform designed to be visual, intuitive, and interactive.", "license": "Apache-2.0", "directories": { @@ -9,11 +9,12 @@ }, "scripts": { "test": "mocha --require ignore-styles --compilers js:babel-core/register --require spec/helpers/browser.js --recursive spec/**/*_spec.*", - "cover": "babel-node ./node_modules/.bin/istanbul cover _mocha -- --require spec/helpers/browser.js --recursive spec/**/*_spec.*", + "cover": "babel-node node_modules/.bin/babel-istanbul cover _mocha -- --require spec/helpers/browser.js --recursive spec/**/*_spec.*", "dev": "NODE_ENV=dev webpack --watch --colors --progress --debug --output-pathinfo --devtool inline-source-map", "prod": "NODE_ENV=production node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js -p --colors --progress", "build": "NODE_ENV=production webpack --colors --progress", - "lint": "eslint --ignore-path=.eslintignore --ext .js,.jsx ." + "lint": "eslint --ignore-path=.eslintignore --ext .js,.jsx .", + "sync-backend": "babel-node --presets es2015 javascripts/syncBackend.js" }, "repository": { "type": "git", @@ -38,9 +39,9 @@ "homepage": "https://github.com/airbnb/superset#readme", "dependencies": { "autobind-decorator": "^1.3.3", + "babel-register": "^6.24.1", "bootstrap": "^3.3.6", - "bootstrap-datepicker": "^1.6.0", - "brace": "^0.8.0", + "brace": "^0.10.0", "brfs": "^1.4.3", "cal-heatmap": "3.6.2", "classnames": "^2.2.5", @@ -48,84 +49,91 @@ "d3-cloud": "^1.2.1", "d3-sankey": "^0.4.1", "d3-scale": "^1.0.3", - "d3-tip": "^0.7.1", + "d3-tip": "^0.6.7", "datamaps": "^0.5.8", "datatables-bootstrap3-plugin": "^0.5.0", + "datatables.net": "^1.10.13", "datatables.net-bs": "^1.10.12", "font-awesome": "^4.6.3", "gridster": "^0.5.6", "immutability-helper": "^2.0.0", "immutable": "^3.8.1", - "jquery": "^2.2.1", - "jquery-ui": "1.10.5", + "jquery": "^3.2.1", + "jsdom": "9.12.0", "lodash.throttle": "^4.1.1", "mapbox-gl": "^0.26.0", "moment": "^2.14.1", - "moments": "0.0.2", "mustache": "^2.2.1", "nvd3": "1.8.5", - "react": "^15.3.2", - "react-ace": "^3.4.1", + "prop-types": "^15.5.8", + "react": "^15.5.1", + "react-ace": "^4.1.5", + "react-addons-css-transition-group": "^15.4.2", + "react-addons-shallow-compare": "^15.4.2", + "react-alert": "^2.0.1", "react-bootstrap": "^0.30.3", - "react-bootstrap-table": "^2.3.8", - "react-dom": "^15.3.2", + "react-bootstrap-table": "^3.1.7", + "react-dom": "^15.5.1", "react-draggable": "^2.1.2", "react-gravatar": "^2.6.1", - "react-grid-layout": "^0.13.1", + "react-grid-layout": "^0.14.4", "react-map-gl": "^1.7.0", - "react-redux": "^4.4.5", + "react-redux": "^5.0.2", "react-resizable": "^1.3.3", - "react-select": "^1.0.0-rc.2", - "react-syntax-highlighter": "^2.3.0", + "react-select": "1.0.0-rc.3", + "react-select-fast-filter-options": "^0.2.1", + "react-syntax-highlighter": "^5.0.0", + "react-virtualized": "^9.3.0", + "react-virtualized-select": "^2.4.0", "reactable": "^0.14.0", "redux": "^3.5.2", "redux-localstorage": "^0.4.1", "redux-thunk": "^2.1.0", - "select2": "3.5", - "select2-bootstrap-css": "^1.4.6", "shortid": "^2.2.6", - "style-loader": "^0.13.0", "supercluster": "https://github.com/georgeke/supercluster/tarball/ac3492737e7ce98e07af679623aad452373bbc40", "topojson": "^1.6.22", - "victory": "^0.12.1", + "urijs": "^1.18.10", + "victory": "^0.18.4", "viewport-mercator-project": "^2.1.0" }, "devDependencies": { - "babel": "^6.3.26", "babel-cli": "^6.14.0", "babel-core": "^6.10.4", + "babel-istanbul": "^0.12.2", "babel-loader": "^6.2.4", "babel-plugin-css-modules-transform": "^1.1.0", - "babel-polyfill": "^6.14.0", + "babel-polyfill": "^6.23.0", "babel-preset-airbnb": "^2.1.1", "babel-preset-es2015": "^6.14.0", "babel-preset-react": "^6.11.1", "chai": "^3.5.0", - "codeclimate-test-reporter": "^0.3.3", - "css-loader": "^0.23.1", + "codeclimate-test-reporter": "^0.4.1", + "css-loader": "^0.28.0", "enzyme": "^2.0.0", - "eslint": "^2.13.1", - "eslint-config-airbnb": "^9.0.1", - "eslint-plugin-import": "^1.11.1", - "eslint-plugin-jsx-a11y": "^1.2.0", - "eslint-plugin-react": "^5.2.2", + "eslint": "^3.19.0", + "eslint-config-airbnb": "^14.1.0", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^4.0.0", + "eslint-plugin-react": "^6.10.3", "exports-loader": "^0.6.3", - "file-loader": "^0.8.5", + "file-loader": "^0.11.1", "github-changes": "^1.0.4", "ignore-styles": "^5.0.1", - "imports-loader": "^0.6.5", + "imports-loader": "^0.7.1", "istanbul": "^1.0.0-alpha", - "jsdom": "^8.0.1", + "jsdom": "9.12.0", "json-loader": "^0.5.4", "less": "^2.6.1", - "less-loader": "^2.2.2", - "mocha": "^2.4.5", - "react-addons-test-utils": "^15.3.2", - "sinon": "^1.17.6", - "style-loader": "^0.13.0", + "less-loader": "^4.0.3", + "mocha": "^3.2.0", + "react-addons-test-utils": "^15.5.1", + "react-test-renderer": "^15.5.1", + "redux-mock-store": "^1.2.3", + "sinon": "^2.1.0", + "style-loader": "^0.16.1", "transform-loader": "^0.2.3", "url-loader": "^0.5.7", - "webpack": "^1.13.1", - "webworkify-webpack": "1.0.6" + "webpack": "^2.3.3", + "webworkify-webpack": "2.0.4" } } diff --git a/superset/assets/spec/helpers/browser.js b/superset/assets/spec/helpers/browser.js index 18072fe6851f5..a74ce3ef5ccc4 100644 --- a/superset/assets/spec/helpers/browser.js +++ b/superset/assets/spec/helpers/browser.js @@ -1,12 +1,14 @@ /* eslint no-undef: 0, no-native-reassign: 0 */ +import 'babel-polyfill'; +import chai from 'chai'; +import jsdom from 'jsdom'; require('babel-register')(); -const jsdom = require('jsdom').jsdom; - const exposedProperties = ['window', 'navigator', 'document']; -global.document = jsdom(''); +global.jsdom = jsdom.jsdom; +global.document = global.jsdom(''); global.window = document.defaultView; Object.keys(document.defaultView).forEach((property) => { if (typeof global[property] === 'undefined') { @@ -20,3 +22,19 @@ global.navigator = { platform: 'linux', appName: 'Netscape', }; + +// Configuration copied from https://github.com/sinonjs/sinon/issues/657 +// allowing for sinon.fakeServer to work + +global.window = global.document.defaultView; +global.XMLHttpRequest = global.window.XMLHttpRequest; + +global.sinon = require('sinon'); + +global.expect = chai.expect; +global.assert = chai.assert; + +global.sinon.useFakeXMLHttpRequest(); + +global.window.XMLHttpRequest = global.XMLHttpRequest; +global.$ = require('jquery')(global.window); diff --git a/superset/assets/spec/javascripts/addSlice/AddSliceContainer_spec.jsx b/superset/assets/spec/javascripts/addSlice/AddSliceContainer_spec.jsx new file mode 100644 index 0000000000000..ab3d4ff878a9c --- /dev/null +++ b/superset/assets/spec/javascripts/addSlice/AddSliceContainer_spec.jsx @@ -0,0 +1,59 @@ +import React from 'react'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import { Button } from 'react-bootstrap'; +import Select from 'react-virtualized-select'; +import AddSliceContainer from '../../../javascripts/addSlice/AddSliceContainer'; + +const defaultProps = { + datasources: [ + { label: 'my first table', value: '1__table' }, + { label: 'another great table', value: '2__table' }, + ], +}; + +describe('AddSliceContainer', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('uses table as default visType', () => { + expect(wrapper.state().visType).to.equal('table'); + }); + + it('renders 2 selects', () => { + expect(wrapper.find(Select)).to.have.lengthOf(2); + }); + + it('renders a button', () => { + expect(wrapper.find(Button)).to.have.lengthOf(1); + }); + + it('renders a disabled button if no datasource is selected', () => { + expect(wrapper.find(Button).dive().find('.btn[disabled=true]')).to.have.length(1); + }); + + it('renders an enabled button if datasource is selected', () => { + const datasourceValue = defaultProps.datasources[0].value; + wrapper.setState({ + datasourceValue, + datasourceId: datasourceValue.split('__')[0], + datasourceType: datasourceValue.split('__')[1], + }); + expect(wrapper.find(Button).dive().find('.btn[disabled=false]')).to.have.length(1); + }); + + it('formats explore url', () => { + const datasourceValue = defaultProps.datasources[0].value; + wrapper.setState({ + datasourceValue, + datasourceId: datasourceValue.split('__')[0], + datasourceType: datasourceValue.split('__')[1], + }); + const formattedUrl = '/superset/explore/table/1?form_data=%7B%22viz_type%22%3A%22table%22%7D'; + expect(wrapper.instance().exploreUrl()).to.equal(formattedUrl); + }); +}); diff --git a/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx b/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx index fb802357f403c..c08cc664197c9 100644 --- a/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx +++ b/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx @@ -1,35 +1,82 @@ import React from 'react'; import Select from 'react-select'; -import AsyncSelect from '../../../javascripts/components/AsyncSelect'; -import { shallow } from 'enzyme'; +import { mount, shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import sinon from 'sinon'; +import AsyncSelect from '../../../javascripts/components/AsyncSelect'; + describe('AsyncSelect', () => { const mockedProps = { dataEndpoint: '/slicemodelview/api/read', onChange: sinon.spy(), - mutator: () => {}, + mutator: () => [ + { value: 1, label: 'main' }, + { value: 2, label: 'another' }, + ], }; it('is valid element', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('has one select', () => { const wrapper = shallow( - + , ); expect(wrapper.find(Select)).to.have.length(1); }); it('calls onChange on select change', () => { const wrapper = shallow( - + , ); wrapper.find(Select).simulate('change', { value: 1 }); expect(mockedProps.onChange).to.have.property('callCount', 1); }); + + describe('auto select', () => { + let server; + beforeEach(() => { + server = sinon.fakeServer.create(); + server.respondWith([ + 200, { 'Content-Type': 'application/json' }, JSON.stringify({}), + ]); + }); + afterEach(() => { + server.restore(); + }); + it('should be off by default', () => { + const wrapper = mount( + , + ); + const spy = sinon.spy(wrapper.instance(), 'onChange'); + expect(spy.callCount).to.equal(0); + }); + it('should auto select first option', () => { + const wrapper = mount( + , + ); + const spy = sinon.spy(wrapper.instance(), 'onChange'); + + server.respond(); + + expect(spy.callCount).to.equal(1); + expect(spy.calledWith(wrapper.instance().state.options[0])).to.equal(true); + }); + it('should not auto select when value prop is set', () => { + const wrapper = mount( + , + ); + const spy = sinon.spy(wrapper.instance(), 'onChange'); + + server.respond(); + + expect(spy.callCount).to.equal(0); + expect(wrapper.find(Select)).to.have.length(1); + expect(wrapper.find('.Select-value-label').children().first().text()).to.equal('another'); + }); + }); }); diff --git a/superset/assets/spec/javascripts/components/CachedLabel_spec.jsx b/superset/assets/spec/javascripts/components/CachedLabel_spec.jsx new file mode 100644 index 0000000000000..a720a8ce575d4 --- /dev/null +++ b/superset/assets/spec/javascripts/components/CachedLabel_spec.jsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { expect } from 'chai'; +import { describe, it } from 'mocha'; +import { shallow } from 'enzyme'; +import { Label } from 'react-bootstrap'; + +import CachedLabel from '../../../javascripts/components/CachedLabel'; + +describe('CachedLabel', () => { + const defaultProps = { + onClick: () => {}, + cachedTimestamp: '2017-01-01', + }; + + it('is valid', () => { + expect( + React.isValidElement(), + ).to.equal(true); + }); + it('renders', () => { + const wrapper = shallow( + , + ); + expect(wrapper.find(Label)).to.have.length(1); + }); +}); diff --git a/superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx b/superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx index a5f0ee3f7f735..e6e7408a4c304 100644 --- a/superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx +++ b/superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx @@ -11,7 +11,7 @@ describe('CopyToClipboard', () => { it('renders', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); }); diff --git a/superset/assets/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx b/superset/assets/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx new file mode 100644 index 0000000000000..240a8e499a10c --- /dev/null +++ b/superset/assets/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; +import FilterableTable from '../../../../javascripts/components/FilterableTable/FilterableTable'; + +describe('FilterableTable', () => { + const mockedProps = { + orderedColumnKeys: [], + data: [], + height: 0, + }; + it('is valid element', () => { + expect(React.isValidElement()).to.equal(true); + }); +}); diff --git a/superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx b/superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx index a498c2c113521..3fb7d3eb58b21 100644 --- a/superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx +++ b/superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx @@ -13,7 +13,7 @@ describe('ModalTrigger', () => { it('is a valid element', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); }); diff --git a/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx b/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx index 5a430bc3d5440..b71401ecd6a59 100644 --- a/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx @@ -1,9 +1,9 @@ import React from 'react'; -import CodeModal from '../../../javascripts/dashboard/components/CodeModal'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import CodeModal from '../../../javascripts/dashboard/components/CodeModal'; describe('CodeModal', () => { const mockedProps = { @@ -11,7 +11,7 @@ describe('CodeModal', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders the trigger node', () => { diff --git a/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx b/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx index 58cac9d868c07..1da5624cf9a36 100644 --- a/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx @@ -1,9 +1,9 @@ import React from 'react'; -import CssEditor from '../../../javascripts/dashboard/components/CssEditor'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import CssEditor from '../../../javascripts/dashboard/components/CssEditor'; describe('CssEditor', () => { const mockedProps = { @@ -11,7 +11,7 @@ describe('CssEditor', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders the trigger node', () => { diff --git a/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx b/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx index 8cf89be8da75e..7537074765f37 100644 --- a/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx @@ -1,9 +1,9 @@ import React from 'react'; -import RefreshIntervalModal from '../../../javascripts/dashboard/components/RefreshIntervalModal'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import RefreshIntervalModal from '../../../javascripts/dashboard/components/RefreshIntervalModal'; describe('RefreshIntervalModal', () => { const mockedProps = { @@ -11,7 +11,7 @@ describe('RefreshIntervalModal', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders the trigger node', () => { diff --git a/superset/assets/spec/javascripts/dashboard/SliceCell_spec.jsx b/superset/assets/spec/javascripts/dashboard/SliceCell_spec.jsx index d693ecac65da6..a66ed4edb90e8 100644 --- a/superset/assets/spec/javascripts/dashboard/SliceCell_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/SliceCell_spec.jsx @@ -1,20 +1,20 @@ import React from 'react'; -import SliceCell from '../../../javascripts/dashboard/components/SliceCell'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import { slice } from './fixtures'; +import SliceCell from '../../../javascripts/dashboard/components/SliceCell'; describe('SliceCell', () => { const mockedProps = { slice, removeSlice: () => {}, - expandedSlices: () => {}, + expandedSlices: {}, }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders five links', () => { diff --git a/superset/assets/spec/javascripts/explore/actions_spec.js b/superset/assets/spec/javascripts/explore/actions_spec.js new file mode 100644 index 0000000000000..7f5e3d3d3fe07 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/actions_spec.js @@ -0,0 +1,39 @@ +import { it, describe } from 'mocha'; +import { expect } from 'chai'; +import sinon from 'sinon'; +import $ from 'jquery'; +import * as actions from '../../../javascripts/explore/actions/exploreActions'; +import * as exploreUtils from '../../../javascripts/explore/exploreUtils'; +import { defaultState } from '../../../javascripts/explore/stores/store'; +import { exploreReducer } from '../../../javascripts/explore/reducers/exploreReducer'; + +describe('reducers', () => { + it('sets correct control value given a key and value', () => { + const newState = exploreReducer( + defaultState, actions.setControlValue('x_axis_label', 'x', [])); + expect(newState.controls.x_axis_label.value).to.equal('x'); + }); + it('setControlValue works as expected with a checkbox', () => { + const newState = exploreReducer(defaultState, + actions.setControlValue('show_legend', true, [])); + expect(newState.controls.show_legend.value).to.equal(true); + }); +}); + +describe('runQuery', () => { + it('should handle query timeout', () => { + const dispatch = sinon.spy(); + const urlStub = sinon.stub(exploreUtils, 'getExploreUrl').callsFake(() => ('mockURL')); + const ajaxStub = sinon.stub($, 'ajax'); + ajaxStub.yieldsTo('error', { statusText: 'timeout' }); + + const request = actions.runQuery({}); + request(dispatch); + + expect(dispatch.callCount).to.equal(2); + expect(dispatch.args[0][0].type).to.equal(actions.CHART_UPDATE_TIMEOUT); + + urlStub.restore(); + ajaxStub.restore(); + }); +}); diff --git a/superset/assets/spec/javascripts/explorev2/components/ChartContainer_spec.js b/superset/assets/spec/javascripts/explore/components/ChartContainer_spec.js similarity index 86% rename from superset/assets/spec/javascripts/explorev2/components/ChartContainer_spec.js rename to superset/assets/spec/javascripts/explore/components/ChartContainer_spec.js index 116fc8511a96b..1417d5eeea0e4 100644 --- a/superset/assets/spec/javascripts/explorev2/components/ChartContainer_spec.js +++ b/superset/assets/spec/javascripts/explore/components/ChartContainer_spec.js @@ -5,7 +5,7 @@ // import { expect } from 'chai'; // import { describe, it } from 'mocha'; -// import ChartContainer from '../../../../javascripts/explorev2/components/ChartContainer'; +// import ChartContainer from '../../../../javascripts/explore/components/ChartContainer'; // describe('ChartContainer', () => { // const mockProps = { diff --git a/superset/assets/spec/javascripts/explorev2/components/CheckboxField_spec.js b/superset/assets/spec/javascripts/explore/components/CheckboxControl_spec.jsx similarity index 51% rename from superset/assets/spec/javascripts/explorev2/components/CheckboxField_spec.js rename to superset/assets/spec/javascripts/explore/components/CheckboxControl_spec.jsx index 2c6fde920ce22..5512b96722a58 100644 --- a/superset/assets/spec/javascripts/explorev2/components/CheckboxField_spec.js +++ b/superset/assets/spec/javascripts/explore/components/CheckboxControl_spec.jsx @@ -4,28 +4,24 @@ import { Checkbox } from 'react-bootstrap'; import sinon from 'sinon'; import { expect } from 'chai'; import { describe, it, beforeEach } from 'mocha'; -import { shallow } from 'enzyme'; -import CheckboxField from '../../../../javascripts/explorev2/components/CheckboxField'; +import { mount } from 'enzyme'; + +import CheckboxControl from '../../../../javascripts/explore/components/controls/CheckboxControl'; const defaultProps = { name: 'show_legend', onChange: sinon.spy(), + value: false, }; -describe('CheckboxField', () => { +describe('CheckboxControl', () => { let wrapper; beforeEach(() => { - wrapper = shallow(); + wrapper = mount(); }); it('renders a Checkbox', () => { expect(wrapper.find(Checkbox)).to.have.lengthOf(1); }); - - it('calls onChange when toggled', () => { - const checkbox = wrapper.find(Checkbox); - checkbox.simulate('change', { value: true }); - expect(defaultProps.onChange.calledWith(true)).to.be.true; - }); }); diff --git a/superset/assets/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx b/superset/assets/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx new file mode 100644 index 0000000000000..1f4dd6e2a99e4 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx @@ -0,0 +1,31 @@ +import React from 'react'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import { getFormDataFromControls, defaultControls } + from '../../../../javascripts/explore/stores/store'; +import { + ControlPanelsContainer, +} from '../../../../javascripts/explore/components/ControlPanelsContainer'; +import ControlPanelSection from '../../../../javascripts/explore/components/ControlPanelSection'; + +const defaultProps = { + datasource_type: 'table', + actions: {}, + controls: defaultControls, + form_data: getFormDataFromControls(defaultControls), + isDatasourceMetaLoading: false, + exploreState: {}, +}; + +describe('ControlPanelsContainer', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('renders ControlPanelSections', () => { + expect(wrapper.find(ControlPanelSection)).to.have.lengthOf(7); + }); +}); diff --git a/superset/assets/spec/javascripts/explorev2/components/FieldSetRow_spec.js b/superset/assets/spec/javascripts/explore/components/ControlRow_spec.jsx similarity index 65% rename from superset/assets/spec/javascripts/explorev2/components/FieldSetRow_spec.js rename to superset/assets/spec/javascripts/explore/components/ControlRow_spec.jsx index 6db65c722cbb9..d472583c3e269 100644 --- a/superset/assets/spec/javascripts/explorev2/components/FieldSetRow_spec.js +++ b/superset/assets/spec/javascripts/explore/components/ControlRow_spec.jsx @@ -2,16 +2,16 @@ import React from 'react'; import { expect } from 'chai'; import { describe, it } from 'mocha'; import { shallow } from 'enzyme'; -import FieldSetRow from '../../../../javascripts/explorev2/components/FieldSetRow'; +import ControlSetRow from '../../../../javascripts/explore/components/ControlRow'; -describe('FieldSetRow', () => { +describe('ControlSetRow', () => { it('renders a single row with one element', () => { - const wrapper = shallow(]} />); + const wrapper = shallow(]} />); expect(wrapper.find('.row')).to.have.lengthOf(1); expect(wrapper.find('.row').find('a')).to.have.lengthOf(1); }); it('renders a single row with two elements', () => { - const wrapper = shallow(, ]} />); + const wrapper = shallow(, ]} />); expect(wrapper.find('.row')).to.have.lengthOf(1); expect(wrapper.find('.row').find('a')).to.have.lengthOf(2); }); diff --git a/superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx b/superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx index a74deb0e783e9..3a30dc6e3b9fc 100644 --- a/superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx +++ b/superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx @@ -1,17 +1,30 @@ import React from 'react'; import { expect } from 'chai'; import { describe, it } from 'mocha'; +import { mount } from 'enzyme'; +import { Modal } from 'react-bootstrap'; +import ModalTrigger from './../../../../javascripts/components/ModalTrigger'; import DisplayQueryButton from '../../../../javascripts/explore/components/DisplayQueryButton'; describe('DisplayQueryButton', () => { const defaultProps = { - slice: { - viewSqlQuery: 'sql query string', + animation: false, + queryResponse: { + query: 'SELECT * FROM foo', + language: 'sql', }, + chartStatus: 'success', + queryEndpoint: 'localhost', }; - it('renders', () => { + it('is valid', () => { expect(React.isValidElement()).to.equal(true); }); + it('renders a button and a modal', () => { + const wrapper = mount(); + expect(wrapper.find(ModalTrigger)).to.have.lengthOf(1); + wrapper.find('.modal-trigger').simulate('click'); + expect(wrapper.find(Modal)).to.have.lengthOf(1); + }); }); diff --git a/superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx b/superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx index f00889a34af09..506dd23f97bec 100644 --- a/superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx +++ b/superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx @@ -2,8 +2,8 @@ import React from 'react'; import { expect } from 'chai'; import { describe, it } from 'mocha'; import { shallow } from 'enzyme'; - -import ExploreActionButtons from '../../../../javascripts/explore/components/ExploreActionButtons'; +import ExploreActionButtons from + '../../../../javascripts/explore/components/ExploreActionButtons'; describe('ExploreActionButtons', () => { const defaultProps = { @@ -14,11 +14,12 @@ describe('ExploreActionButtons', () => { json_endpoint: '', }, }, + queryEndpoint: 'localhost', }; it('renders', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); diff --git a/superset/assets/spec/javascripts/explorev2/components/ExploreViewContainer_spec.js b/superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.js similarity index 84% rename from superset/assets/spec/javascripts/explorev2/components/ExploreViewContainer_spec.js rename to superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.js index 4fe78d64b14be..0db058fcdde33 100644 --- a/superset/assets/spec/javascripts/explorev2/components/ExploreViewContainer_spec.js +++ b/superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.js @@ -7,13 +7,13 @@ // import { shallow } from 'enzyme'; // import ExploreViewContainer -// from '../../../../javascripts/explorev2/components/ExploreViewContainer'; +// from '../../../../javascripts/explore/components/ExploreViewContainer'; // import QueryAndSaveBtns // from '../../../../javascripts/explore/components/QueryAndSaveBtns'; // import ControlPanelsContainer -// from '../../../../javascripts/explorev2/components/ControlPanelsContainer'; +// from '../../../../javascripts/explore/components/ControlPanelsContainer'; // import ChartContainer -// from '../../../../javascripts/explorev2/components/ChartContainer'; +// from '../../../../javascripts/explore/components/ChartContainer'; // describe('ExploreViewContainer', () => { // it('renders', () => { diff --git a/superset/assets/spec/javascripts/explorev2/components/FilterField_spec.js b/superset/assets/spec/javascripts/explore/components/FilterControl_spec.jsx similarity index 72% rename from superset/assets/spec/javascripts/explorev2/components/FilterField_spec.js rename to superset/assets/spec/javascripts/explore/components/FilterControl_spec.jsx index a920c0d1fe963..752932ade06a6 100644 --- a/superset/assets/spec/javascripts/explorev2/components/FilterField_spec.js +++ b/superset/assets/spec/javascripts/explore/components/FilterControl_spec.jsx @@ -5,8 +5,8 @@ import sinon from 'sinon'; import { expect } from 'chai'; import { describe, it, beforeEach } from 'mocha'; import { shallow } from 'enzyme'; -import FilterField from '../../../../javascripts/explorev2/components/FilterField'; -import Filter from '../../../../javascripts/explorev2/components/Filter'; +import FilterControl from '../../../../javascripts/explore/components/controls/FilterControl'; +import Filter from '../../../../javascripts/explore/components/controls/Filter'; const defaultProps = { choices: ['country_name'], @@ -17,19 +17,20 @@ const defaultProps = { id: 1, type: 'table', filter_select: false, + filterable_cols: ['country_name'], }, }; -describe('FilterField', () => { +describe('FilterControl', () => { let wrapper; beforeEach(() => { - wrapper = shallow(); + wrapper = shallow(); }); it('renders Filters', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); diff --git a/superset/assets/spec/javascripts/explore/components/Filter_spec.jsx b/superset/assets/spec/javascripts/explore/components/Filter_spec.jsx new file mode 100644 index 0000000000000..9c045cc3869f3 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/components/Filter_spec.jsx @@ -0,0 +1,91 @@ +/* eslint-disable no-unused-expressions */ +import React from 'react'; +import Select from 'react-select'; +import { Button } from 'react-bootstrap'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import Filter from '../../../../javascripts/explore/components/controls/Filter'; +import SelectControl from '../../../../javascripts/explore/components/controls/SelectControl'; + +const defaultProps = { + changeFilter: sinon.spy(), + removeFilter: () => {}, + filter: { + col: null, + op: 'in', + value: ['val'], + }, + datasource: { + id: 1, + type: 'qtable', + filter_select: false, + filterable_cols: ['col1', 'col2'], + metrics_combo: [ + ['m1', 'v1'], + ['m2', 'v2'], + ], + }, +}; + +describe('Filter', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('renders Filters', () => { + expect( + React.isValidElement(), + ).to.equal(true); + }); + + it('renders two selects, one button and one input', () => { + expect(wrapper.find(Select)).to.have.lengthOf(2); + expect(wrapper.find(Button)).to.have.lengthOf(1); + expect(wrapper.find(SelectControl)).to.have.lengthOf(1); + expect(wrapper.find('#select-op').prop('options')).to.have.lengthOf(8); + }); + + it('renders five op choices for table datasource', () => { + const props = Object.assign({}, defaultProps); + props.datasource = { + id: 1, + type: 'druid', + filter_select: false, + filterable_cols: ['country_name'], + }; + const druidWrapper = shallow(); + expect(druidWrapper.find('#select-op').prop('options')).to.have.lengthOf(9); + }); + + it('renders six op choices for having filter', () => { + const props = Object.assign({}, defaultProps); + props.having = true; + const havingWrapper = shallow(); + expect(havingWrapper.find('#select-op').prop('options')).to.have.lengthOf(6); + }); + + it('calls changeFilter when select is changed', () => { + const selectCol = wrapper.find('#select-col'); + selectCol.simulate('change', { value: 'col' }); + const selectOp = wrapper.find('#select-op'); + selectOp.simulate('change', { value: 'in' }); + const selectVal = wrapper.find(SelectControl); + selectVal.simulate('change', { value: 'x' }); + expect(defaultProps.changeFilter).to.have.property('callCount', 3); + }); + + it('renders input for regex filters', () => { + const props = Object.assign({}, defaultProps); + props.filter = { + col: null, + op: 'regex', + value: 'val', + }; + const regexWrapper = shallow(); + expect(regexWrapper.find('input')).to.have.lengthOf(1); + }); +}); diff --git a/superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx b/superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx index 900a02c562f4d..4f7d4e1b05555 100644 --- a/superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx +++ b/superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx @@ -32,11 +32,11 @@ describe('QueryAndSaveButtons', () => { it('renders buttons with correct text', () => { expect(wrapper.find(Button).contains(' Query')).to.eql(true); - expect(wrapper.find(Button).contains(' Save as')).to.eql(true); + expect(wrapper.find(Button).contains(' Save')).to.eql(true); }); it('calls onQuery when query button is clicked', () => { - const queryButton = wrapper.find('#query_button'); + const queryButton = wrapper.find('.query'); queryButton.simulate('click'); expect(defaultProps.onQuery.called).to.eql(true); }); diff --git a/superset/assets/spec/javascripts/explorev2/components/RunQueryActionButton_spec.js b/superset/assets/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx similarity index 99% rename from superset/assets/spec/javascripts/explorev2/components/RunQueryActionButton_spec.js rename to superset/assets/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx index 509caa969eca9..c78d1c75c4f9a 100644 --- a/superset/assets/spec/javascripts/explorev2/components/RunQueryActionButton_spec.js +++ b/superset/assets/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx @@ -24,7 +24,7 @@ describe('RunQueryActionButton', () => { it('is a valid react element', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); diff --git a/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx b/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx new file mode 100644 index 0000000000000..e0a1a845130d4 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx @@ -0,0 +1,76 @@ +import React from 'react'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import { Modal, Button, Radio } from 'react-bootstrap'; +import sinon from 'sinon'; + +import { defaultFormData } from '../../../../javascripts/explore/stores/store'; +import { SaveModal } from '../../../../javascripts/explore/components/SaveModal'; + +const defaultProps = { + can_edit: true, + onHide: () => ({}), + actions: { + saveSlice: sinon.spy(), + }, + form_data: defaultFormData, + user_id: '1', + dashboards: [], + slice: {}, +}; + +describe('SaveModal', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('renders a Modal with 7 inputs and 2 buttons', () => { + expect(wrapper.find(Modal)).to.have.lengthOf(1); + expect(wrapper.find('input')).to.have.lengthOf(2); + expect(wrapper.find(Button)).to.have.lengthOf(2); + expect(wrapper.find(Radio)).to.have.lengthOf(5); + }); + + it('does not show overwrite option for new slice', () => { + defaultProps.slice = null; + const wrapperNewSlice = shallow(); + expect(wrapperNewSlice.find('#overwrite-radio')).to.have.lengthOf(0); + expect(wrapperNewSlice.find('#saveas-radio')).to.have.lengthOf(1); + }); + + it('disable overwrite option for non-owner', () => { + defaultProps.slice = {}; + defaultProps.can_overwrite = false; + const wrapperForNonOwner = shallow(); + const overwriteRadio = wrapperForNonOwner.find('#overwrite-radio'); + expect(overwriteRadio).to.have.lengthOf(1); + expect(overwriteRadio.prop('disabled')).to.equal(true); + }); + + it('saves a new slice', () => { + defaultProps.slice = { + slice_id: 1, + slice_name: 'title', + }; + defaultProps.can_overwrite = false; + const wrapperForNewSlice = shallow(); + const saveasRadio = wrapperForNewSlice.find('#saveas-radio'); + saveasRadio.simulate('click'); + expect(wrapperForNewSlice.state().action).to.equal('saveas'); + }); + + it('overwrite a slice', () => { + defaultProps.slice = { + slice_id: 1, + slice_name: 'title', + }; + defaultProps.can_overwrite = true; + const wrapperForOverwrite = shallow(); + const overwriteRadio = wrapperForOverwrite.find('#overwrite-radio'); + overwriteRadio.simulate('click'); + expect(wrapperForOverwrite.state().action).to.equal('overwrite'); + }); +}); diff --git a/superset/assets/spec/javascripts/explore/components/SelectControl_spec.jsx b/superset/assets/spec/javascripts/explore/components/SelectControl_spec.jsx new file mode 100644 index 0000000000000..7508eebd41463 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/components/SelectControl_spec.jsx @@ -0,0 +1,79 @@ +/* eslint-disable no-unused-expressions */ +import React from 'react'; +import Select, { Creatable } from 'react-select'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import SelectControl from '../../../../javascripts/explore/components/controls/SelectControl'; + +const defaultProps = { + choices: [['1 year ago', '1 year ago'], ['today', 'today']], + name: 'row_limit', + label: 'Row Limit', + onChange: sinon.spy(), +}; + +const options = [ + { value: '1 year ago', label: '1 year ago' }, + { value: 'today', label: 'today' }, +]; + +describe('SelectControl', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('renders a Select', () => { + expect(wrapper.find(Select)).to.have.lengthOf(1); + }); + + it('calls onChange when toggled', () => { + const select = wrapper.find(Select); + select.simulate('change', { value: 50 }); + expect(defaultProps.onChange.calledWith(50)).to.be.true; + }); + + it('renders a Creatable for freeform', () => { + wrapper = shallow(); + expect(wrapper.find(Creatable)).to.have.lengthOf(1); + }); + + describe('getOptions', () => { + it('returns the correct options', () => { + expect(wrapper.instance().getOptions(defaultProps)).to.deep.equal(options); + }); + + it('returns the correct options when freeform is set to true', () => { + const freeFormProps = Object.assign(defaultProps, { + choices: [], + freeForm: true, + value: ['one', 'two'], + }); + const newOptions = [ + { value: 'one', label: 'one' }, + { value: 'two', label: 'two' }, + ]; + expect(wrapper.instance().getOptions(freeFormProps)).to.deep.equal(newOptions); + }); + }); + + describe('componentWillReceiveProps', () => { + it('sets state.options if props.choices has changed', () => { + const updatedOptions = [ + { value: 'three', label: 'three' }, + { value: 'four', label: 'four' }, + ]; + const newProps = { + choices: [['three', 'three'], ['four', 'four']], + name: 'name', + freeForm: false, + value: null, + }; + wrapper.setProps(newProps); + expect(wrapper.state().options).to.deep.equal(updatedOptions); + }); + }); +}); diff --git a/superset/assets/spec/javascripts/explorev2/components/TextArea_spec.js b/superset/assets/spec/javascripts/explore/components/TextArea_spec.jsx similarity index 78% rename from superset/assets/spec/javascripts/explorev2/components/TextArea_spec.js rename to superset/assets/spec/javascripts/explore/components/TextArea_spec.jsx index b7c55fc563660..aa9fc192e50a7 100644 --- a/superset/assets/spec/javascripts/explorev2/components/TextArea_spec.js +++ b/superset/assets/spec/javascripts/explore/components/TextArea_spec.jsx @@ -5,7 +5,7 @@ import sinon from 'sinon'; import { expect } from 'chai'; import { describe, it, beforeEach } from 'mocha'; import { shallow } from 'enzyme'; -import TextAreaField from '../../../../javascripts/explorev2/components/TextAreaField'; +import TextAreaControl from '../../../../javascripts/explore/components/controls/TextAreaControl'; const defaultProps = { name: 'x_axis_label', @@ -13,11 +13,11 @@ const defaultProps = { onChange: sinon.spy(), }; -describe('SelectField', () => { +describe('SelectControl', () => { let wrapper; beforeEach(() => { - wrapper = shallow(); + wrapper = shallow(); }); it('renders a FormControl', () => { diff --git a/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx b/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx new file mode 100644 index 0000000000000..ba0ba5814630f --- /dev/null +++ b/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx @@ -0,0 +1,37 @@ +import React from 'react'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { shallow } from 'enzyme'; +import { Modal } from 'react-bootstrap'; +import VizTypeControl from '../../../../javascripts/explore/components/controls/VizTypeControl'; + +const defaultProps = { + name: 'viz_type', + label: 'Visualization Type', + value: 'table', + onChange: sinon.spy(), +}; + +describe('VizTypeControl', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallow(); + }); + + it('renders a Modal', () => { + expect(wrapper.find(Modal)).to.have.lengthOf(1); + }); + + it('calls onChange when toggled', () => { + const select = wrapper.find('.viztype-selector-container').first(); + select.simulate('click'); + expect(defaultProps.onChange.called).to.equal(true); + }); + it('filters images based on text input', () => { + expect(wrapper.find('img').length).to.be.above(20); + wrapper.setState({ filter: 'time' }); + expect(wrapper.find('img').length).to.be.below(10); + }); +}); diff --git a/superset/assets/spec/javascripts/explore/utils_spec.jsx b/superset/assets/spec/javascripts/explore/utils_spec.jsx new file mode 100644 index 0000000000000..fc4c2b6b3f879 --- /dev/null +++ b/superset/assets/spec/javascripts/explore/utils_spec.jsx @@ -0,0 +1,59 @@ +import { it, describe } from 'mocha'; +import { expect } from 'chai'; +import URI from 'urijs'; +import { getExploreUrl } from '../../../javascripts/explore/exploreUtils'; + +describe('utils', () => { + const formData = { + datasource: '1__table', + }; + const sFormData = JSON.stringify(formData); + function compareURI(uri1, uri2) { + expect(uri1.toString()).to.equal(uri2.toString()); + } + + it('getExploreUrl generates proper base url', () => { + // This assertion is to show clearly the value of location.href + // in the context of unit tests. + expect(location.href).to.equal('about:blank'); + + compareURI( + URI(getExploreUrl(formData, 'base', false, 'http://superset.com')), + URI('/superset/explore/table/1/').search({ form_data: sFormData }), + ); + }); + it('getExploreUrl generates proper json url', () => { + compareURI( + URI(getExploreUrl(formData, 'json', false, 'superset.com')), + URI('/superset/explore_json/table/1/').search({ form_data: sFormData }), + ); + }); + it('getExploreUrl generates proper json forced url', () => { + compareURI( + URI(getExploreUrl(formData, 'json', true, 'superset.com')), + URI('/superset/explore_json/table/1/') + .search({ form_data: sFormData, force: 'true' }), + ); + }); + it('getExploreUrl generates proper csv URL', () => { + compareURI( + URI(getExploreUrl(formData, 'csv', false, 'superset.com')), + URI('/superset/explore_json/table/1/') + .search({ form_data: sFormData, csv: 'true' }), + ); + }); + it('getExploreUrl generates proper standalone URL', () => { + compareURI( + URI(getExploreUrl(formData, 'standalone', false, 'superset.com')), + URI('/superset/explore/table/1/') + .search({ form_data: sFormData, standalone: 'true' }), + ); + }); + it('getExploreUrl preserves main URLs params', () => { + compareURI( + URI(getExploreUrl(formData, 'json', false, 'superset.com?foo=bar')), + URI('/superset/explore_json/table/1/') + .search({ foo: 'bar', form_data: sFormData }), + ); + }); +}); diff --git a/superset/assets/spec/javascripts/explorev2/actions_spec.js b/superset/assets/spec/javascripts/explorev2/actions_spec.js deleted file mode 100644 index 67d91c15b494c..0000000000000 --- a/superset/assets/spec/javascripts/explorev2/actions_spec.js +++ /dev/null @@ -1,18 +0,0 @@ -import { it, describe } from 'mocha'; -import { expect } from 'chai'; -import * as actions from '../../../javascripts/explorev2/actions/exploreActions'; -import { initialState } from '../../../javascripts/explorev2/stores/store'; -import { exploreReducer } from '../../../javascripts/explorev2/reducers/exploreReducer'; - -describe('reducers', () => { - it('sets correct field value given a key and value', () => { - const newState = exploreReducer( - initialState('dist_bar'), actions.setFieldValue('x_axis_label', 'x')); - expect(newState.viz.form_data.x_axis_label).to.equal('x'); - }); - it('setFieldValue works as expected with a checkbox', () => { - const newState = exploreReducer(initialState('dist_bar'), - actions.setFieldValue('show_legend', true)); - expect(newState.viz.form_data.show_legend).to.equal(true); - }); -}); diff --git a/superset/assets/spec/javascripts/explorev2/components/BoundsControl_spec.jsx b/superset/assets/spec/javascripts/explorev2/components/BoundsControl_spec.jsx new file mode 100644 index 0000000000000..b4318e4be3326 --- /dev/null +++ b/superset/assets/spec/javascripts/explorev2/components/BoundsControl_spec.jsx @@ -0,0 +1,38 @@ +/* eslint-disable no-unused-expressions */ +import React from 'react'; +import { FormControl } from 'react-bootstrap'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import { describe, it, beforeEach } from 'mocha'; +import { mount } from 'enzyme'; + +import BoundsControl from '../../../../javascripts/explore/components/controls/BoundsControl'; + +const defaultProps = { + name: 'y_axis_bounds', + label: 'Bounds of the y axis', + onChange: sinon.spy(), +}; + +describe('BoundsControl', () => { + let wrapper; + + beforeEach(() => { + wrapper = mount(); + }); + + it('renders two FormControls', () => { + expect(wrapper.find(FormControl)).to.have.lengthOf(2); + }); + + it('errors on non-numeric', () => { + wrapper.find(FormControl).first().simulate('change', { target: { value: 's' } }); + expect(defaultProps.onChange.calledWith([null, null])).to.be.true; + expect(defaultProps.onChange.getCall(0).args[1][0]).to.contain('value should be numeric'); + }); + it('casts to numeric', () => { + wrapper.find(FormControl).first().simulate('change', { target: { value: '1' } }); + wrapper.find(FormControl).last().simulate('change', { target: { value: '5' } }); + expect(defaultProps.onChange.calledWith([1, 5])).to.be.true; + }); +}); diff --git a/superset/assets/spec/javascripts/explorev2/components/ControlPanelsContainer_spec.js b/superset/assets/spec/javascripts/explorev2/components/ControlPanelsContainer_spec.js deleted file mode 100644 index bd4cb50642be5..0000000000000 --- a/superset/assets/spec/javascripts/explorev2/components/ControlPanelsContainer_spec.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import { expect } from 'chai'; -import { describe, it, beforeEach } from 'mocha'; -import { shallow } from 'enzyme'; -import { Panel } from 'react-bootstrap'; -import { defaultFormData, initialState } from '../../../../javascripts/explorev2/stores/store'; - -import { - ControlPanelsContainer, -} from '../../../../javascripts/explorev2/components/ControlPanelsContainer'; -import { fields } from '../../../../javascripts/explorev2/stores/fields'; - -const defaultProps = { - datasource_id: 1, - datasource_type: 'type', - exploreState: initialState(), - form_data: defaultFormData(), - fields, - actions: { - fetchFieldOptions: () => { - // noop - }, - }, -}; - -describe('ControlPanelsContainer', () => { - let wrapper; - - beforeEach(() => { - wrapper = shallow(); - }); - - it('renders a Panel', () => { - expect(wrapper.find(Panel)).to.have.lengthOf(1); - }); -}); diff --git a/superset/assets/spec/javascripts/explorev2/components/Filter_spec.js b/superset/assets/spec/javascripts/explorev2/components/Filter_spec.js deleted file mode 100644 index 2151b600490c6..0000000000000 --- a/superset/assets/spec/javascripts/explorev2/components/Filter_spec.js +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint-disable no-unused-expressions */ -import React from 'react'; -import Select from 'react-select'; -import { Button } from 'react-bootstrap'; -import sinon from 'sinon'; -import { expect } from 'chai'; -import { describe, it, beforeEach } from 'mocha'; -import { shallow } from 'enzyme'; -import Filter from '../../../../javascripts/explorev2/components/Filter'; - -const defaultProps = { - choices: ['country_name'], - opChoices: ['in', 'not in'], - changeFilter: sinon.spy(), - removeFilter: () => { - // noop - }, - filter: { - id: 1, - prefix: 'flt', - col: null, - op: 'in', - value: '', - }, - datasource: { - id: 1, - type: 'table', - filter_select: false, - }, -}; - -describe('Filter', () => { - let wrapper; - - beforeEach(() => { - wrapper = shallow(); - }); - - it('renders Filters', () => { - expect( - React.isValidElement() - ).to.equal(true); - }); - - it('renders two selects, one button and one input', () => { - expect(wrapper.find(Select)).to.have.lengthOf(2); - expect(wrapper.find(Button)).to.have.lengthOf(1); - expect(wrapper.find('input')).to.have.lengthOf(1); - }); - - it('calls changeFilter when select is changed', () => { - const selectCol = wrapper.find('#select-col'); - selectCol.simulate('change', { value: 'col' }); - const selectOp = wrapper.find('#select-op'); - selectOp.simulate('change', { value: 'in' }); - const input = wrapper.find('input'); - input.simulate('change', { target: { value: 'x' } }); - expect(defaultProps.changeFilter).to.have.property('callCount', 3); - }); -}); diff --git a/superset/assets/spec/javascripts/explorev2/components/SaveModal_spec.js b/superset/assets/spec/javascripts/explorev2/components/SaveModal_spec.js deleted file mode 100644 index dd86bdf616126..0000000000000 --- a/superset/assets/spec/javascripts/explorev2/components/SaveModal_spec.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import { expect } from 'chai'; -import { describe, it, beforeEach } from 'mocha'; -import { shallow } from 'enzyme'; -import { defaultFormData } from '../../../../javascripts/explorev2/stores/store'; -import { SaveModal } from '../../../../javascripts/explorev2/components/SaveModal'; -import { Modal, Button, Radio } from 'react-bootstrap'; -import sinon from 'sinon'; - -const defaultProps = { - can_edit: true, - onHide: () => ({}), - actions: { - saveSlice: sinon.spy(), - }, - form_data: defaultFormData, - datasource_id: 1, - datasource_name: 'birth_names', - datasource_type: 'table', - user_id: 1, -}; - -describe('SaveModal', () => { - let wrapper; - - beforeEach(() => { - wrapper = shallow(); - }); - - it('renders a Modal with 7 inputs and 2 buttons', () => { - expect(wrapper.find(Modal)).to.have.lengthOf(1); - expect(wrapper.find('input')).to.have.lengthOf(2); - expect(wrapper.find(Button)).to.have.lengthOf(2); - expect(wrapper.find(Radio)).to.have.lengthOf(5); - }); -}); diff --git a/superset/assets/spec/javascripts/explorev2/components/SelectField_spec.js b/superset/assets/spec/javascripts/explorev2/components/SelectField_spec.js deleted file mode 100644 index 4e7d8f5ffe54e..0000000000000 --- a/superset/assets/spec/javascripts/explorev2/components/SelectField_spec.js +++ /dev/null @@ -1,38 +0,0 @@ -/* eslint-disable no-unused-expressions */ -import React from 'react'; -import Select, { Creatable } from 'react-select'; -import sinon from 'sinon'; -import { expect } from 'chai'; -import { describe, it, beforeEach } from 'mocha'; -import { shallow } from 'enzyme'; -import SelectField from '../../../../javascripts/explorev2/components/SelectField'; - -const defaultProps = { - choices: [[10, 10], [20, 20]], - name: 'row_limit', - label: 'Row Limit', - onChange: sinon.spy(), -}; - -describe('SelectField', () => { - let wrapper; - - beforeEach(() => { - wrapper = shallow(); - }); - - it('renders a Select', () => { - expect(wrapper.find(Select)).to.have.lengthOf(1); - }); - - it('calls onChange when toggled', () => { - const select = wrapper.find(Select); - select.simulate('change', { value: 50 }); - expect(defaultProps.onChange.calledWith(50)).to.be.true; - }); - - it('renders a Creatable for freeform', () => { - wrapper = shallow(); - expect(wrapper.find(Creatable)).to.have.lengthOf(1); - }); -}); diff --git a/superset/assets/spec/javascripts/modules/dates_spec.js b/superset/assets/spec/javascripts/modules/dates_spec.js new file mode 100644 index 0000000000000..c16c7cb276910 --- /dev/null +++ b/superset/assets/spec/javascripts/modules/dates_spec.js @@ -0,0 +1,85 @@ +import { it, describe } from 'mocha'; +import { expect } from 'chai'; +import { + tickMultiFormat, + formatDate, + timeFormatFactory, + fDuration, + now, + epochTimeXHoursAgo, + epochTimeXDaysAgo, + epochTimeXYearsAgo, + } from '../../../javascripts/modules/dates'; + +describe('tickMultiFormat', () => { + it('is a function', () => { + assert.isFunction(tickMultiFormat); + }); +}); + +describe('formatDate', () => { + it('is a function', () => { + assert.isFunction(formatDate); + }); +}); + +describe('timeFormatFactory', () => { + it('is a function', () => { + assert.isFunction(timeFormatFactory); + }); +}); + +describe('fDuration', () => { + it('is a function', () => { + assert.isFunction(fDuration); + }); + + it('returns a string', () => { + expect(fDuration(new Date(), new Date())).to.be.a('string'); + }); + + it('returns the expected output', () => { + const output = fDuration('1496293608897', '1496293623406'); + expect(output).to.equal('00:00:14.50'); + }); +}); + +describe('now', () => { + it('is a function', () => { + assert.isFunction(now); + }); + + it('returns a number', () => { + expect(now()).to.be.a('number'); + }); +}); + +describe('epochTimeXHoursAgo', () => { + it('is a function', () => { + assert.isFunction(epochTimeXHoursAgo); + }); + + it('returns a number', () => { + expect(epochTimeXHoursAgo(1)).to.be.a('number'); + }); +}); + +describe('epochTimeXDaysAgo', () => { + it('is a function', () => { + assert.isFunction(epochTimeXDaysAgo); + }); + + it('returns a number', () => { + expect(epochTimeXDaysAgo(1)).to.be.a('number'); + }); +}); + +describe('epochTimeXYearsAgo', () => { + it('is a function', () => { + assert.isFunction(epochTimeXYearsAgo); + }); + + it('returns a number', () => { + expect(epochTimeXYearsAgo(1)).to.be.a('number'); + }); +}); diff --git a/superset/assets/spec/javascripts/modules/utils_spec.jsx b/superset/assets/spec/javascripts/modules/utils_spec.jsx new file mode 100644 index 0000000000000..28b434c46397e --- /dev/null +++ b/superset/assets/spec/javascripts/modules/utils_spec.jsx @@ -0,0 +1,38 @@ +import { it, describe } from 'mocha'; +import { expect } from 'chai'; +import { + tryNumify, slugify, formatSelectOptionsForRange, d3format, +} from '../../../javascripts/modules/utils'; + +describe('utils', () => { + it('tryNumify works as expected', () => { + expect(tryNumify(5)).to.equal(5); + expect(tryNumify('5')).to.equal(5); + expect(tryNumify('5.1')).to.equal(5.1); + expect(tryNumify('a string')).to.equal('a string'); + }); + it('slugify slugifies', () => { + expect(slugify('My Neat Label! ')).to.equal('my-neat-label'); + expect(slugify('Some Letters AnD a 5')).to.equal('some-letters-and-a-5'); + expect(slugify(' 439278 ')).to.equal('439278'); + expect(slugify('5')).to.equal('5'); + }); + it('formatSelectOptionsForRange', () => { + expect(formatSelectOptionsForRange(0, 4)).to.deep.equal([ + [0, '0'], + [1, '1'], + [2, '2'], + [3, '3'], + [4, '4'], + ]); + expect(formatSelectOptionsForRange(1, 2)).to.deep.equal([ + [1, '1'], + [2, '2'], + ]); + }); + it('d3format', () => { + expect(d3format('.3s', 1234)).to.equal('1.23k'); + expect(d3format('.3s', 1237)).to.equal('1.24k'); + expect(d3format('', 1237)).to.equal('1.24k'); + }); +}); diff --git a/superset/assets/spec/javascripts/profile/App_spec.jsx b/superset/assets/spec/javascripts/profile/App_spec.jsx index d85add18b0243..6484416cf8dfa 100644 --- a/superset/assets/spec/javascripts/profile/App_spec.jsx +++ b/superset/assets/spec/javascripts/profile/App_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import App from '../../../javascripts/profile/components/App'; import { Col, Row, Tab } from 'react-bootstrap'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { user } from './fixtures'; +import App from '../../../javascripts/profile/components/App'; describe('App', () => { const mockedProps = { @@ -12,7 +13,7 @@ describe('App', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders 2 Col', () => { diff --git a/superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx b/superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx index d15e00b16801e..64e72fccb4475 100644 --- a/superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx +++ b/superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx @@ -1,10 +1,10 @@ import React from 'react'; -import CreatedContent from '../../../javascripts/profile/components/CreatedContent'; -import TableLoader from '../../../javascripts/profile/components/TableLoader'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import { user } from './fixtures'; +import CreatedContent from '../../../javascripts/profile/components/CreatedContent'; +import TableLoader from '../../../javascripts/profile/components/TableLoader'; describe('CreatedContent', () => { @@ -13,7 +13,7 @@ describe('CreatedContent', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders 2 TableLoader', () => { diff --git a/superset/assets/spec/javascripts/profile/Favorites_spec.jsx b/superset/assets/spec/javascripts/profile/Favorites_spec.jsx index 4a7908c1dd902..592dc43933b07 100644 --- a/superset/assets/spec/javascripts/profile/Favorites_spec.jsx +++ b/superset/assets/spec/javascripts/profile/Favorites_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import Favorites from '../../../javascripts/profile/components/Favorites'; -import TableLoader from '../../../javascripts/profile/components/TableLoader'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { user } from './fixtures'; +import Favorites from '../../../javascripts/profile/components/Favorites'; +import TableLoader from '../../../javascripts/profile/components/TableLoader'; describe('Favorites', () => { const mockedProps = { @@ -12,7 +13,7 @@ describe('Favorites', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders 2 TableLoader', () => { diff --git a/superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx b/superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx index 8c293fb2371e1..64a1908e80d4e 100644 --- a/superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx +++ b/superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import RecentActivity from '../../../javascripts/profile/components/RecentActivity'; -import TableLoader from '../../../javascripts/profile/components/TableLoader'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { user } from './fixtures'; +import RecentActivity from '../../../javascripts/profile/components/RecentActivity'; +import TableLoader from '../../../javascripts/profile/components/TableLoader'; describe('RecentActivity', () => { @@ -13,7 +14,7 @@ describe('RecentActivity', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a TableLoader', () => { diff --git a/superset/assets/spec/javascripts/profile/Security_spec.jsx b/superset/assets/spec/javascripts/profile/Security_spec.jsx index acce932404386..1ea7387addf9c 100644 --- a/superset/assets/spec/javascripts/profile/Security_spec.jsx +++ b/superset/assets/spec/javascripts/profile/Security_spec.jsx @@ -1,9 +1,10 @@ import React from 'react'; -import Security from '../../../javascripts/profile/components/Security'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { user, userNoPerms } from './fixtures'; +import Security from '../../../javascripts/profile/components/Security'; describe('Security', () => { @@ -12,7 +13,7 @@ describe('Security', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders 2 role labels', () => { diff --git a/superset/assets/spec/javascripts/profile/UserInfo_spec.jsx b/superset/assets/spec/javascripts/profile/UserInfo_spec.jsx index c775965fd39a8..360443635b043 100644 --- a/superset/assets/spec/javascripts/profile/UserInfo_spec.jsx +++ b/superset/assets/spec/javascripts/profile/UserInfo_spec.jsx @@ -1,11 +1,12 @@ import React from 'react'; -import UserInfo from '../../../javascripts/profile/components/UserInfo'; import Gravatar from 'react-gravatar'; import { Panel } from 'react-bootstrap'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { user } from './fixtures'; +import UserInfo from '../../../javascripts/profile/components/UserInfo'; describe('UserInfo', () => { @@ -14,7 +15,7 @@ describe('UserInfo', () => { }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a Gravatar', () => { diff --git a/superset/assets/spec/javascripts/sqllab/AlertsWrapper_spec.jsx b/superset/assets/spec/javascripts/sqllab/AlertsWrapper_spec.jsx new file mode 100644 index 0000000000000..167d24a2ff6c9 --- /dev/null +++ b/superset/assets/spec/javascripts/sqllab/AlertsWrapper_spec.jsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; + +import AlertsWrapper from '../../../javascripts/components/AlertsWrapper'; + +describe('AlertsWrapper', () => { + it('is valid', () => { + expect(React.isValidElement()).to.equal(true); + }); +}); diff --git a/superset/assets/spec/javascripts/sqllab/Alerts_spec.jsx b/superset/assets/spec/javascripts/sqllab/Alerts_spec.jsx deleted file mode 100644 index 19f456f765d26..0000000000000 --- a/superset/assets/spec/javascripts/sqllab/Alerts_spec.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import Alerts from '../../../javascripts/SqlLab/components/Alerts'; -import { Alert } from 'react-bootstrap'; -import { shallow } from 'enzyme'; -import { describe, it } from 'mocha'; -import { expect } from 'chai'; -import { alert } from './fixtures'; - - -describe('Alerts', () => { - const mockedProps = { - alerts: [alert], - }; - it('is valid', () => { - expect(React.isValidElement()).to.equal(true); - }); - it('is valid with props', () => { - expect(React.isValidElement()).to.equal(true); - }); - it('renders an Alert', () => { - const wrapper = shallow(); - expect(wrapper.find(Alert)).to.have.length(1); - }); -}); diff --git a/superset/assets/spec/javascripts/sqllab/App_spec.jsx b/superset/assets/spec/javascripts/sqllab/App_spec.jsx index 43cfc0d027599..84da35c0a81de 100644 --- a/superset/assets/spec/javascripts/sqllab/App_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/App_spec.jsx @@ -1,8 +1,8 @@ import React from 'react'; -import App from '../../../javascripts/SqlLab/components/App'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import App from '../../../javascripts/SqlLab/components/App'; describe('App', () => { it('is valid', () => { diff --git a/superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx b/superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx index 2d5a8a3f2d1ea..236576c4cf37f 100644 --- a/superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import ColumnElement from '../../../javascripts/SqlLab/components/ColumnElement'; -import { mockedActions, table } from './fixtures'; import { mount } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import { mockedActions, table } from './fixtures'; +import ColumnElement from '../../../javascripts/SqlLab/components/ColumnElement'; + describe('ColumnElement', () => { const mockedProps = { @@ -13,7 +14,7 @@ describe('ColumnElement', () => { }; it('is valid with props', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a proper primary key', () => { diff --git a/superset/assets/spec/javascripts/sqllab/CopyQueryTabUrl_spec.jsx b/superset/assets/spec/javascripts/sqllab/CopyQueryTabUrl_spec.jsx index 909faffe373c6..895e2c3b60d74 100644 --- a/superset/assets/spec/javascripts/sqllab/CopyQueryTabUrl_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/CopyQueryTabUrl_spec.jsx @@ -1,16 +1,17 @@ import React from 'react'; -import CopyQueryTabUrl from '../../../javascripts/SqlLab/components/CopyQueryTabUrl'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import { initialState } from './fixtures'; +import CopyQueryTabUrl from '../../../javascripts/SqlLab/components/CopyQueryTabUrl'; + describe('CopyQueryTabUrl', () => { const mockedProps = { queryEditor: initialState.queryEditors[0], }; it('is valid with props', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); }); diff --git a/superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx b/superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx index 6fb91051f0b9e..a800d3f060fe7 100644 --- a/superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx @@ -1,11 +1,12 @@ import React from 'react'; -import HighlightedSql from '../../../javascripts/SqlLab/components/HighlightedSql'; -import ModalTrigger from '../../../javascripts/components/ModalTrigger'; import SyntaxHighlighter from 'react-syntax-highlighter'; import { mount, shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import HighlightedSql from '../../../javascripts/SqlLab/components/HighlightedSql'; +import ModalTrigger from '../../../javascripts/components/ModalTrigger'; + describe('HighlightedSql', () => { const sql = "SELECT * FROM test WHERE something='fkldasjfklajdslfkjadlskfjkldasjfkladsjfkdjsa'"; diff --git a/superset/assets/spec/javascripts/sqllab/Link_spec.jsx b/superset/assets/spec/javascripts/sqllab/Link_spec.jsx index ca3afa5e7556a..083874ad55232 100644 --- a/superset/assets/spec/javascripts/sqllab/Link_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/Link_spec.jsx @@ -1,9 +1,9 @@ import React from 'react'; -import Link from '../../../javascripts/SqlLab/components/Link'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import Link from '../../../javascripts/SqlLab/components/Link'; describe('Link', () => { const mockedProps = { @@ -15,7 +15,7 @@ describe('Link', () => { }); it('renders with props', () => { expect( - React.isValidElement(TEST) + React.isValidElement(TEST), ).to.equal(true); }); it('renders an anchor tag', () => { diff --git a/superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx b/superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx index a2dd71d23b19c..e68ebd062226d 100644 --- a/superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx @@ -1,19 +1,21 @@ import React from 'react'; import Select from 'react-select'; import { Button } from 'react-bootstrap'; -import QuerySearch from '../../../javascripts/SqlLab/components/QuerySearch'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import sinon from 'sinon'; +import QuerySearch from '../../../javascripts/SqlLab/components/QuerySearch'; + describe('QuerySearch', () => { const mockedProps = { actions: {}, + height: 0, }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); const wrapper = shallow(); diff --git a/superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx b/superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx index f732e4b1bc813..7c593b76eef1e 100644 --- a/superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import QueryTable from '../../../javascripts/SqlLab/components/QueryTable'; -import { queries } from './fixtures'; -import { mount } from 'enzyme'; +import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import { Table } from 'reactable'; +import { queries } from './fixtures'; +import QueryTable from '../../../javascripts/SqlLab/components/QueryTable'; describe('QueryTable', () => { const mockedProps = { @@ -15,12 +16,13 @@ describe('QueryTable', () => { }); it('is valid with props', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a proper table', () => { - const wrapper = mount(); - expect(wrapper.find('table')).to.have.length(1); - expect(wrapper.find('tr')).to.have.length(4); + const wrapper = shallow(); + expect(wrapper.find(Table)).to.have.length(1); + expect(wrapper.find(Table).shallow().find('table')).to.have.length(1); + expect(wrapper.find(Table).shallow().find('table').find('Tr')).to.have.length(2); }); }); diff --git a/superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx b/superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx index c992e7bf1c72b..7e5cd15c7722c 100644 --- a/superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx @@ -1,25 +1,21 @@ import React from 'react'; -import ResultSet from '../../../javascripts/SqlLab/components/ResultSet'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import FilterableTable from '../../../javascripts/components/FilterableTable/FilterableTable'; +import ResultSet from '../../../javascripts/SqlLab/components/ResultSet'; import { queries } from './fixtures'; -import { Table } from 'reactable'; describe('ResultSet', () => { const mockedProps = { query: queries[0], + height: 0, }; - it('renders', () => { - expect(React.isValidElement()).to.equal(true); - }); - it('renders with props', () => { - expect( - React.isValidElement() - ).to.equal(true); + it('is valid', () => { + expect(React.isValidElement()).to.equal(true); }); it('renders a Table', () => { const wrapper = shallow(); - expect(wrapper.find(Table)).to.have.length(1); + expect(wrapper.find(FilterableTable)).to.have.length(1); }); }); diff --git a/superset/assets/spec/javascripts/sqllab/SaveQuery_spec.jsx b/superset/assets/spec/javascripts/sqllab/SaveQuery_spec.jsx new file mode 100644 index 0000000000000..3c8953fbc4abd --- /dev/null +++ b/superset/assets/spec/javascripts/sqllab/SaveQuery_spec.jsx @@ -0,0 +1,48 @@ +import React from 'react'; +import { Overlay, Popover, FormControl } from 'react-bootstrap'; +import { shallow, mount } from 'enzyme'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; + +import SaveQuery from '../../../javascripts/SqlLab/components/SaveQuery'; + +describe('SavedQuery', () => { + const mockedProps = { + dbId: 1, + schema: 'main', + sql: 'SELECT * FROM t', + defaultLabel: 'untitled', + animation: false, + }; + it('is valid', () => { + expect( + React.isValidElement(), + ).to.equal(true); + }); + it('is valid with props', () => { + expect( + React.isValidElement(), + ).to.equal(true); + }); + it('has an Overlay and a Popover', () => { + const wrapper = shallow(); + expect(wrapper.find(Overlay)).to.have.length(1); + expect(wrapper.find(Popover)).to.have.length(1); + }); + it('pops and hides', () => { + const wrapper = mount(); + expect(wrapper.state().showSave).to.equal(false); + wrapper.find('.toggleSave').simulate('click'); + expect(wrapper.state().showSave).to.equal(true); + wrapper.find('.toggleSave').simulate('click'); + expect(wrapper.state().showSave).to.equal(false); + }); + it('has a cancel button', () => { + const wrapper = shallow(); + expect(wrapper.find('.cancelQuery')).to.have.length(1); + }); + it('has 2 FormControls', () => { + const wrapper = shallow(); + expect(wrapper.find(FormControl)).to.have.length(2); + }); +}); diff --git a/superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx b/superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx index f6acdf7cca55d..cc3cc3ac8f317 100644 --- a/superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx @@ -1,20 +1,25 @@ import React from 'react'; -import SqlEditorLeftBar from '../../../javascripts/SqlLab/components/SqlEditorLeftBar'; -import TableElement from '../../../javascripts/SqlLab/components/TableElement'; import { mount } from 'enzyme'; -import { table, defaultQueryEditor } from './fixtures'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import { table, defaultQueryEditor } from './fixtures'; +import SqlEditorLeftBar from '../../../javascripts/SqlLab/components/SqlEditorLeftBar'; +import TableElement from '../../../javascripts/SqlLab/components/TableElement'; + +global.notify = { + error: () => {}, +}; describe('SqlEditorLeftBar', () => { const mockedProps = { tables: [table], queryEditor: defaultQueryEditor, + height: 0, }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a TableElement', () => { diff --git a/superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx b/superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx index a76094e1ca29c..ab00ee6272c69 100644 --- a/superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import SqlEditor from '../../../javascripts/SqlLab/components/SqlEditor'; -import SqlEditorLeftBar from '../../../javascripts/SqlLab/components/SqlEditorLeftBar'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { initialState, queries, table } from './fixtures'; +import SqlEditor from '../../../javascripts/SqlLab/components/SqlEditor'; +import SqlEditorLeftBar from '../../../javascripts/SqlLab/components/SqlEditorLeftBar'; describe('SqlEditor', () => { const mockedProps = { @@ -14,10 +15,13 @@ describe('SqlEditor', () => { latestQuery: queries[0], tables: [table], queries, + height: '', + editorQueries: [], + dataPreviewQueries: [], }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('render a SqlEditorLeftBar', () => { diff --git a/superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx b/superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx index 3f1a22992d2bb..bbe54efefa252 100644 --- a/superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import { TabbedSqlEditors } from '../../../javascripts/SqlLab/components/TabbedSqlEditors'; import { Tab } from 'react-bootstrap'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; + import { initialState } from './fixtures'; +import { TabbedSqlEditors } from '../../../javascripts/SqlLab/components/TabbedSqlEditors'; describe('TabbedSqlEditors', () => { const mockedProps = { @@ -14,10 +15,11 @@ describe('TabbedSqlEditors', () => { queries: {}, queryEditors: initialState.queryEditors, tabHistory: initialState.tabHistory, + editorHeight: '', }; it('is valid', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('shallow mounts', () => { diff --git a/superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx b/superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx index 90a11682b718d..f28d43d9c3ddd 100644 --- a/superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx @@ -1,12 +1,12 @@ import React from 'react'; -import Link from '../../../javascripts/SqlLab/components/Link'; -import TableElement from '../../../javascripts/SqlLab/components/TableElement'; -import ColumnElement from '../../../javascripts/SqlLab/components/ColumnElement'; -import { mockedActions, table } from './fixtures'; import { mount, shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import Link from '../../../javascripts/SqlLab/components/Link'; +import TableElement from '../../../javascripts/SqlLab/components/TableElement'; +import ColumnElement from '../../../javascripts/SqlLab/components/ColumnElement'; +import { mockedActions, table } from './fixtures'; describe('TableElement', () => { const mockedProps = { @@ -16,12 +16,12 @@ describe('TableElement', () => { }; it('renders', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders with props', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('has 2 Link elements', () => { diff --git a/superset/assets/spec/javascripts/sqllab/Timer_spec.jsx b/superset/assets/spec/javascripts/sqllab/Timer_spec.jsx index 133ecaee8b8ea..21a8a4fb3d442 100644 --- a/superset/assets/spec/javascripts/sqllab/Timer_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/Timer_spec.jsx @@ -1,27 +1,51 @@ import React from 'react'; -import Timer from '../../../javascripts/components/Timer'; -import { shallow } from 'enzyme'; -import { describe, it } from 'mocha'; +import { mount } from 'enzyme'; +import { describe, it, beforeEach } from 'mocha'; import { expect } from 'chai'; + +import Timer from '../../../javascripts/components/Timer'; import { now } from '../../../javascripts/modules/dates'; describe('Timer', () => { + let wrapper; const mockedProps = { startTime: now(), endTime: null, isRunning: true, - state: 'warning', + status: 'warning', }; - it('renders', () => { - expect(React.isValidElement()).to.equal(true); + + beforeEach(() => { + wrapper = mount(); + }); + + it('is a valid element', () => { + expect(React.isValidElement()).to.equal(true); }); - it('renders with props', () => { - expect(React.isValidElement()) - .to.equal(true); + + it('componentWillMount starts timer after 30ms and sets state.clockStr', () => { + expect(wrapper.state().clockStr).to.equal(''); + setTimeout(() => { + expect(wrapper.state().clockStr).not.equal(''); + }, 31); + }); + + it('calls startTimer on mount', () => { + const startTimerSpy = sinon.spy(Timer.prototype, 'startTimer'); + wrapper.mount(); + expect(Timer.prototype.startTimer.calledOnce); + startTimerSpy.restore(); }); - it('renders a span', () => { - const wrapper = shallow(); - expect(wrapper.find('span')).to.have.length(1); + + it('calls stopTimer on unmount', () => { + const stopTimerSpy = sinon.spy(Timer.prototype, 'stopTimer'); + wrapper.unmount(); + expect(Timer.prototype.stopTimer.calledOnce); + stopTimerSpy.restore(); + }); + + it('renders a span with the correct class', () => { + expect(wrapper.find('span').hasClass('label-warning')).to.equal(true); }); }); diff --git a/superset/assets/spec/javascripts/sqllab/VisualizeModal_spec.jsx b/superset/assets/spec/javascripts/sqllab/VisualizeModal_spec.jsx index 80c26b7c1617c..b9d36a365d464 100644 --- a/superset/assets/spec/javascripts/sqllab/VisualizeModal_spec.jsx +++ b/superset/assets/spec/javascripts/sqllab/VisualizeModal_spec.jsx @@ -1,27 +1,331 @@ import React from 'react'; -import VisualizeModal from '../../../javascripts/SqlLab/components/VisualizeModal'; -import { queries } from './fixtures'; +import configureStore from 'redux-mock-store'; +import thunk from 'redux-thunk'; + import { Modal } from 'react-bootstrap'; import { shallow } from 'enzyme'; import { describe, it } from 'mocha'; import { expect } from 'chai'; +import sinon from 'sinon'; + +import $ from 'jquery'; +import shortid from 'shortid'; +import { queries } from './fixtures'; +import { sqlLabReducer } from '../../../javascripts/SqlLab/reducers'; +import * as actions from '../../../javascripts/SqlLab/actions'; +import { VISUALIZE_VALIDATION_ERRORS } from '../../../javascripts/SqlLab/constants'; +import VisualizeModal from '../../../javascripts/SqlLab/components/VisualizeModal'; +import * as exploreUtils from '../../../javascripts/explore/exploreUtils'; +global.notify = { + info: () => {}, + error: () => {}, +}; describe('VisualizeModal', () => { + const middlewares = [thunk]; + const mockStore = configureStore(middlewares); + const initialState = sqlLabReducer(undefined, {}); + const store = mockStore(initialState); const mockedProps = { show: true, query: queries[0], }; + const mockColumns = { + ds: { + is_date: true, + is_dim: false, + name: 'ds', + type: 'STRING', + }, + gender: { + is_date: false, + is_dim: true, + name: 'gender', + type: 'STRING', + }, + }; + const mockChartTypeBarChart = { + label: 'Distribution - Bar Chart', + requiresTime: false, + value: 'dist_bar', + }; + const mockChartTypeTB = { + label: 'Time Series - Bar Chart', + requiresTime: true, + value: 'bar', + }; + const mockEvent = { + target: { + value: 'mock event value', + }, + }; + const getVisualizeModalWrapper = () => ( + shallow(, { + context: { store }, + }).dive()); + it('renders', () => { expect(React.isValidElement()).to.equal(true); }); it('renders with props', () => { expect( - React.isValidElement() + React.isValidElement(), ).to.equal(true); }); it('renders a Modal', () => { - const wrapper = shallow(); + const wrapper = getVisualizeModalWrapper(); expect(wrapper.find(Modal)).to.have.length(1); }); + + describe('setStateFromProps', () => { + const wrapper = getVisualizeModalWrapper(); + const sampleQuery = queries[0]; + + it('should require valid props parameters', () => { + const spy = sinon.spy(wrapper.instance(), 'setState'); + wrapper.instance().setStateFromProps(); + expect(spy.callCount).to.equal(0); + spy.restore(); + }); + it('should set columns state', () => { + wrapper.instance().setStateFromProps({ query: sampleQuery }); + expect(wrapper.state().columns).to.deep.equal(mockColumns); + }); + }); + + describe('datasourceName', () => { + const wrapper = getVisualizeModalWrapper(); + let stub; + beforeEach(() => { + stub = sinon.stub(shortid, 'generate').returns('abcd'); + }); + afterEach(() => { + stub.restore(); + }); + + it('should generate data source name from query', () => { + const sampleQuery = queries[0]; + const name = wrapper.instance().datasourceName(); + expect(name).to.equal(`${sampleQuery.user}-${sampleQuery.db}-${sampleQuery.tab}-abcd`); + }); + it('should generate data source name with empty query', () => { + wrapper.setProps({ query: {} }); + const name = wrapper.instance().datasourceName(); + expect(name).to.equal('undefined-abcd'); + }); + }); + + describe('mergedColumns', () => { + const wrapper = getVisualizeModalWrapper(); + const oldColumns = { + ds: 1, + gender: 2, + }; + + it('should merge by column name', () => { + wrapper.setState({ columns: {} }); + const mc = wrapper.instance().mergedColumns(); + expect(mc).to.deep.equal(mockColumns); + }); + it('should not override current state', () => { + wrapper.setState({ columns: oldColumns }); + + const mc = wrapper.instance().mergedColumns(); + expect(mc.ds).to.equal(oldColumns.ds); + expect(mc.gender).to.equal(oldColumns.gender); + }); + }); + + describe('validate', () => { + const wrapper = getVisualizeModalWrapper(); + let columnsStub; + beforeEach(() => { + columnsStub = sinon.stub(wrapper.instance(), 'mergedColumns'); + }); + afterEach(() => { + columnsStub.restore(); + }); + + it('should validate column name', () => { + columnsStub.returns(mockColumns); + wrapper.instance().validate(); + expect(wrapper.state().hints).to.have.length(0); + wrapper.instance().mergedColumns.restore(); + }); + it('should hint invalid column name', () => { + columnsStub.returns({ + '&': 1, + }); + wrapper.instance().validate(); + expect(wrapper.state().hints).to.have.length(1); + wrapper.instance().mergedColumns.restore(); + }); + it('should hint empty chartType', () => { + columnsStub.returns(mockColumns); + wrapper.setState({ chartType: null }); + wrapper.instance().validate(); + expect(wrapper.state().hints).to.have.length(1); + expect(wrapper.state().hints[0]) + .to.have.string(VISUALIZE_VALIDATION_ERRORS.REQUIRE_CHART_TYPE); + }); + it('should check time series', () => { + columnsStub.returns(mockColumns); + wrapper.setState({ chartType: mockChartTypeTB }); + wrapper.instance().validate(); + expect(wrapper.state().hints).to.have.length(0); + + // no is_date columns + columnsStub.returns({ + ds: { + is_date: false, + is_dim: false, + name: 'ds', + type: 'STRING', + }, + gender: { + is_date: false, + is_dim: true, + name: 'gender', + type: 'STRING', + }, + }); + wrapper.setState({ chartType: mockChartTypeTB }); + wrapper.instance().validate(); + expect(wrapper.state().hints).to.have.length(1); + expect(wrapper.state().hints[0]).to.have.string(VISUALIZE_VALIDATION_ERRORS.REQUIRE_TIME); + }); + it('should validate after change checkbox', () => { + const spy = sinon.spy(wrapper.instance(), 'validate'); + columnsStub.returns(mockColumns); + + wrapper.instance().changeCheckbox('is_dim', 'gender', mockEvent); + expect(spy.callCount).to.equal(1); + spy.restore(); + }); + it('should validate after change Agg function', () => { + const spy = sinon.spy(wrapper.instance(), 'validate'); + columnsStub.returns(mockColumns); + + wrapper.instance().changeAggFunction('num', { label: 'MIN(x)', value: 'min' }); + expect(spy.callCount).to.equal(1); + spy.restore(); + }); + }); + + it('should validate after change chart type', () => { + const wrapper = getVisualizeModalWrapper(); + wrapper.setState({ chartType: mockChartTypeTB }); + const spy = sinon.spy(wrapper.instance(), 'validate'); + + wrapper.instance().changeChartType(mockChartTypeBarChart); + expect(spy.callCount).to.equal(1); + expect(wrapper.state().chartType).to.equal(mockChartTypeBarChart); + }); + + it('should validate after change datasource name', () => { + const wrapper = getVisualizeModalWrapper(); + const spy = sinon.spy(wrapper.instance(), 'validate'); + + wrapper.instance().changeDatasourceName(mockEvent); + expect(spy.callCount).to.equal(1); + expect(wrapper.state().datasourceName).to.equal(mockEvent.target.value); + }); + + it('should build viz options', () => { + const wrapper = getVisualizeModalWrapper(); + wrapper.setState({ chartType: mockChartTypeTB }); + const spy = sinon.spy(wrapper.instance(), 'buildVizOptions'); + wrapper.instance().buildVizOptions(); + expect(spy.returnValues[0]).to.deep.equal({ + chartType: wrapper.state().chartType.value, + datasourceName: wrapper.state().datasourceName, + columns: wrapper.state().columns, + sql: wrapper.instance().props.query.sql, + dbId: wrapper.instance().props.query.dbId, + }); + }); + + it('should build visualize advise for long query', () => { + const longQuery = Object.assign({}, queries[0], { endDttm: 1476910666798 }); + const props = { + show: true, + query: longQuery, + }; + const longQueryWrapper = shallow(, { + context: { store }, + }).dive(); + const alertWrapper = shallow(longQueryWrapper.instance().buildVisualizeAdvise()); + expect(alertWrapper.hasClass('alert')).to.equal(true); + expect(alertWrapper.text()).to.contain( + 'This query took 101 seconds to run, and the explore view times out at 45 seconds'); + }); + + it('should not build visualize advise', () => { + const wrapper = getVisualizeModalWrapper(); + expect(wrapper.instance().buildVisualizeAdvise()).to.be.a('undefined'); + }); + + describe('visualize', () => { + const wrapper = getVisualizeModalWrapper(); + const mockOptions = { attr: 'mockOptions' }; + wrapper.setState({ + chartType: mockChartTypeBarChart, + columns: mockColumns, + datasourceName: 'mockDatasourceName', + }); + + let ajaxSpy; + let datasourceSpy; + beforeEach(() => { + ajaxSpy = sinon.spy($, 'ajax'); + sinon.stub(JSON, 'parse').callsFake(() => ({ table_id: 107 })); + sinon.stub(exploreUtils, 'getExploreUrl').callsFake(() => ('mockURL')); + sinon.stub(wrapper.instance(), 'buildVizOptions').callsFake(() => (mockOptions)); + sinon.spy(window, 'open'); + datasourceSpy = sinon.stub(actions, 'createDatasource'); + }); + afterEach(() => { + ajaxSpy.restore(); + JSON.parse.restore(); + exploreUtils.getExploreUrl.restore(); + wrapper.instance().buildVizOptions.restore(); + window.open.restore(); + datasourceSpy.restore(); + }); + + it('should build request', () => { + wrapper.instance().visualize(); + expect(ajaxSpy.callCount).to.equal(1); + + const spyCall = ajaxSpy.getCall(0); + expect(spyCall.args[0].type).to.equal('POST'); + expect(spyCall.args[0].url).to.equal('/superset/sqllab_viz/'); + expect(spyCall.args[0].data.data).to.equal(JSON.stringify(mockOptions)); + }); + it('should open new window', () => { + datasourceSpy.callsFake(() => { + const d = $.Deferred(); + d.resolve('done'); + return d.promise(); + }); + wrapper.setProps({ actions: { createDatasource: datasourceSpy } }); + + wrapper.instance().visualize(); + expect(window.open.callCount).to.equal(1); + }); + it('should notify error', () => { + datasourceSpy.callsFake(() => { + const d = $.Deferred(); + d.reject('error message'); + return d.promise(); + }); + wrapper.setProps({ actions: { createDatasource: datasourceSpy } }); + sinon.spy(notify, 'error'); + + wrapper.instance().visualize(); + expect(window.open.callCount).to.equal(0); + expect(notify.error.callCount).to.equal(1); + }); + }); }); diff --git a/superset/assets/spec/javascripts/sqllab/fixtures.js b/superset/assets/spec/javascripts/sqllab/fixtures.js index f9587492f0c86..db638ba3c18fd 100644 --- a/superset/assets/spec/javascripts/sqllab/fixtures.js +++ b/superset/assets/spec/javascripts/sqllab/fixtures.js @@ -1,5 +1,5 @@ -import * as actions from '../../../javascripts/SqlLab/actions'; import sinon from 'sinon'; +import * as actions from '../../../javascripts/SqlLab/actions'; export const mockedActions = sinon.stub(Object.assign({}, actions)); @@ -205,7 +205,17 @@ export const queries = [ serverId: 141, resultsKey: null, results: { - columns: ['col1', 'col2'], + columns: [{ + is_date: true, + is_dim: false, + name: 'ds', + type: 'STRING', + }, { + is_date: false, + is_dim: true, + name: 'gender', + type: 'STRING', + }], data: [ { col1: 0, col2: 1 }, { col1: 2, col2: 3 }, @@ -250,7 +260,6 @@ export const queries = [ export const initialState = { alerts: [], - networkOn: true, queries: {}, databases: {}, queryEditors: [defaultQueryEditor], diff --git a/superset/assets/spec/javascripts/sqllab/reducers_spec.js b/superset/assets/spec/javascripts/sqllab/reducers_spec.js index 9795b8534067f..f777503e01308 100644 --- a/superset/assets/spec/javascripts/sqllab/reducers_spec.js +++ b/superset/assets/spec/javascripts/sqllab/reducers_spec.js @@ -1,7 +1,8 @@ -import * as r from '../../../javascripts/SqlLab/reducers'; -import * as actions from '../../../javascripts/SqlLab/actions'; import { beforeEach, describe, it } from 'mocha'; import { expect } from 'chai'; + +import * as r from '../../../javascripts/SqlLab/reducers'; +import * as actions from '../../../javascripts/SqlLab/actions'; import { alert, table, initialState } from './fixtures'; describe('sqlLabReducer', () => { diff --git a/superset/assets/stylesheets/d3tip.css b/superset/assets/stylesheets/d3tip.css new file mode 100644 index 0000000000000..d22946d1e4c61 --- /dev/null +++ b/superset/assets/stylesheets/d3tip.css @@ -0,0 +1,56 @@ +/* from d3-tip */ +.d3-tip { + line-height: 1; + padding: 12px; + background: rgba(0, 0, 0, 0.8); + color: #fff; + border-radius: 2px; + pointer-events: none; + z-index: 1000; +} + +/* Creates a small triangle extender for the tooltip */ +.d3-tip:after { + box-sizing: border-box; + display: inline; + font-size: 10px; + width: 100%; + line-height: 1; + color: rgba(0, 0, 0, 0.8); + position: absolute; + pointer-events: none; +} + +/* Northward tooltips */ +.d3-tip.n:after { + content: "\25BC"; + margin: -1px 0 0 0; + top: 100%; + left: 0; + text-align: center; +} + +/* Eastward tooltips */ +.d3-tip.e:after { + content: "\25C0"; + margin: -4px 0 0 0; + top: 50%; + left: -8px; +} + +/* Southward tooltips */ +.d3-tip.s:after { + content: "\25B2"; + margin: 0 0 1px 0; + top: -8px; + left: 0; + text-align: center; +} + +/* Westward tooltips */ +.d3-tip.w:after { + content: "\25B6"; + margin: -4px 0 0 -1px; + top: 50%; + left: 100%; +} diff --git a/superset/assets/stylesheets/fonts/Roboto-Regular.woff b/superset/assets/stylesheets/fonts/Roboto-Regular.woff new file mode 100644 index 0000000000000..e401bcf52891c Binary files /dev/null and b/superset/assets/stylesheets/fonts/Roboto-Regular.woff differ diff --git a/superset/assets/stylesheets/fonts/Roboto-Regular.woff2 b/superset/assets/stylesheets/fonts/Roboto-Regular.woff2 new file mode 100644 index 0000000000000..5bd7bd6500890 Binary files /dev/null and b/superset/assets/stylesheets/fonts/Roboto-Regular.woff2 differ diff --git a/superset/assets/stylesheets/less/cosmo/bootswatch.less b/superset/assets/stylesheets/less/cosmo/bootswatch.less index feea7ce413263..402dd5dcdb24a 100644 --- a/superset/assets/stylesheets/less/cosmo/bootswatch.less +++ b/superset/assets/stylesheets/less/cosmo/bootswatch.less @@ -2,13 +2,6 @@ // Bootswatch // ----------------------------------------------------- -@web-font-path: "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"; - -.web-font(@path) { - @import url("@{path}"); -} -.web-font(@web-font-path); - // Navbar ===================================================================== .navbar { @@ -429,3 +422,8 @@ hr { } } .space-loop(6); + +a { + cursor: pointer; +} + diff --git a/superset/assets/stylesheets/react-select/select.less b/superset/assets/stylesheets/react-select/select.less index 9fe319e1e340a..87ae2d488adf6 100644 --- a/superset/assets/stylesheets/react-select/select.less +++ b/superset/assets/stylesheets/react-select/select.less @@ -91,3 +91,30 @@ @import "../../node_modules/react-select/less/mixins.less"; @import "../../node_modules/react-select/less/multi.less"; @import "../../node_modules/react-select/less/spinner.less"; + +// importing css from "../../node_modules/react-virtualized-select/styles.css"; +// so the background color of a selected option matches the other selects +.VirtualSelectGrid { + z-index: 1; +} +.VirtualizedSelectOption { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 .5rem; +} +.VirtualizedSelectFocusedOption { + background-color: rgba(0, 0, 0, 0.1); +} +.VirtualizedSelectFocusedOption:hover { + cursor: pointer; +} +.VirtualizedSelectDisabledOption { + opacity: 0.5; +} +.VirtualizedSelectSelectedOption { + font-weight: bold; +} diff --git a/superset/assets/stylesheets/superset.css b/superset/assets/stylesheets/superset.css index 98b1260b6712a..4dafda4221d6b 100644 --- a/superset/assets/stylesheets/superset.css +++ b/superset/assets/stylesheets/superset.css @@ -1,3 +1,9 @@ +@font-face { + font-family: "Roboto"; + src: url("./fonts/Roboto-Regular.woff2") format("woff2"), + url("./fonts/Roboto-Regular.woff") format("woff"); +} + body { margin: 0px !important; } @@ -199,3 +205,7 @@ div.widget .slice_container { .table-condensed { font-size: 12px; } + +.table-condensed input[type="checkbox"] { + float: left; +} \ No newline at end of file diff --git a/superset/assets/utils/common.js b/superset/assets/utils/common.js index dd94c83321395..2e143a12c811e 100644 --- a/superset/assets/utils/common.js +++ b/superset/assets/utils/common.js @@ -1,5 +1,7 @@ +/* global notify */ /* eslint global-require: 0 */ import $ from 'jquery'; + const d3 = window.d3 || require('d3'); export const EARTH_CIRCUMFERENCE_KM = 40075.16; @@ -30,7 +32,7 @@ export function rgbLuminance(r, g, b) { export function getParamFromQuery(query, param) { const vars = query.split('&'); - for (let i = 0; i < vars.length; i++) { + for (let i = 0; i < vars.length; i += 1) { const pair = vars[i].split('='); if (decodeURIComponent(pair[0]) === param) { return decodeURIComponent(pair[1]); @@ -78,12 +80,8 @@ export function getShortUrl(longUrl, callback) { success: (data) => { callback(data); }, - error: (error) => { - /* eslint no-console: 0 */ - if (console && console.warn) { - console.warn('Something went wrong...'); - console.warn(error); - } + error: () => { + notify.error('Error getting the short URL'); callback(longUrl); }, }); diff --git a/superset/assets/vendor/select2.sortable.js b/superset/assets/vendor/select2.sortable.js deleted file mode 100644 index 18fac5104a681..0000000000000 --- a/superset/assets/vendor/select2.sortable.js +++ /dev/null @@ -1,146 +0,0 @@ -/** - * jQuery Select2 Sortable - * - enable select2 to be sortable via normal select element - * - * author : Vafour - * modified : Kevin Provance (kprovance) - * inspired by : jQuery Chosen Sortable (https://github.com/mrhenry/jquery-chosen-sortable) - * License : GPL - */ - -(function ($) { - $.fn.extend({ - select2SortableOrder: function () { - var $this = this.filter('[multiple]'); - - $this.each(function () { - var $select = $(this); - - // skip elements not select2-ed - if (typeof ($select.data('select2')) !== 'object') { - return false; - } - - var $select2 = $select.siblings('.select2-container'); - var sorted; - - // Opt group names - var optArr = []; - - $select.find('optgroup').each(function(idx, val) { - optArr.push (val); - }); - - $select.find('option').each(function(idx, val) { - var groupName = $(this).parent('optgroup').prop('label'); - var optVal = this; - - if (groupName === undefined) { - if (this.value !== '' && !this.selected) { - optArr.push (optVal); - } - } - }); - - sorted = $($select2.find('.select2-choices li[class!="select2-search-field"]').map(function () { - if (!this) { - return undefined; - } - - var id = $(this).data('select2Data').id; - - return $select.find('option[value="' + id + '"]')[0]; - })); - - sorted.push.apply(sorted, optArr); - - $select.children().remove(); - $select.append(sorted); - }); - - return $this; - }, - - select2Sortable: function () { - var args = Array.prototype.slice.call(arguments, 0); - var $this = this.filter('[multiple]'), - validMethods = ['destroy']; - - if (args.length === 0 || typeof (args[0]) === 'object') { - var defaultOptions = { - bindOrder: 'formSubmit', // or sortableStop - sortableOptions: { - placeholder: 'ui-state-highlight', - items: 'li:not(.select2-search-field)', - tolerance: 'pointer' - } - }; - - var options = $.extend(defaultOptions, args[0]); - - // Init select2 only if not already initialized to prevent select2 configuration loss - if (typeof ($this.data('select2')) !== 'object') { - $this.select2(); - } - - $this.each(function () { - var $select = $(this) - var $select2choices = $select.siblings('.select2-container').find('.select2-choices'); - - // Init jQuery UI Sortable - $select2choices.sortable(options.sortableOptions); - - switch (options.bindOrder) { - case 'sortableStop': - // apply options ordering in sortstop event - $select2choices.on("sortstop.select2sortable", function (event, ui) { - $select.select2SortableOrder(); - }); - - $select.on('change', function (e) { - $(this).select2SortableOrder(); - }); - break; - - default: - // apply options ordering in form submit - $select.closest('form').unbind('submit.select2sortable').on('submit.select2sortable', function () { - $select.select2SortableOrder(); - }); - break; - } - }); - } - else if (typeof (args[0] === 'string')) { - if ($.inArray(args[0], validMethods) == -1) { - throw "Unknown method: " + args[0]; - } - - if (args[0] === 'destroy') { - $this.select2SortableDestroy(); - } - } - - return $this; - }, - - select2SortableDestroy: function () { - var $this = this.filter('[multiple]'); - $this.each(function () { - var $select = $(this) - var $select2choices = $select.parent().find('.select2-choices'); - - // unbind form submit event - $select.closest('form').unbind('submit.select2sortable'); - - // unbind sortstop event - $select2choices.unbind("sortstop.select2sortable"); - - // destroy select2Sortable - $select2choices.sortable('destroy'); - }); - - return $this; - } - }); -}(jQuery)); diff --git a/superset/assets/visualizations/big_number.css b/superset/assets/visualizations/big_number.css index e490395914b30..8fd5345ee793e 100644 --- a/superset/assets/visualizations/big_number.css +++ b/superset/assets/visualizations/big_number.css @@ -28,3 +28,4 @@ stroke: black; stroke-width: 1; } + diff --git a/superset/assets/visualizations/big_number.js b/superset/assets/visualizations/big_number.js index 3d801a4dc8f32..51b08bffa70de 100644 --- a/superset/assets/visualizations/big_number.js +++ b/superset/assets/visualizations/big_number.js @@ -1,14 +1,15 @@ import d3 from 'd3'; +import d3tip from 'd3-tip'; import { formatDate } from '../javascripts/modules/dates'; -require('./big_number.css'); +import './big_number.css'; +import '../stylesheets/d3tip.css'; function bigNumberVis(slice, payload) { const div = d3.select(slice.selector); // Define the percentage bounds that define color from red to green div.html(''); // reset - - const fd = payload.form_data; + const fd = slice.formData; const json = payload.data; const f = d3.format(fd.y_axis_format); @@ -37,12 +38,13 @@ function bigNumberVis(slice, payload) { } } } - const dateExt = d3.extent(data, (d) => d[0]); - const valueExt = d3.extent(data, (d) => d[1]); + const dateExt = d3.extent(data, d => d[0]); + const valueExt = d3.extent(data, d => d[1]); - const margin = 20; - const scaleX = d3.time.scale.utc().domain(dateExt).range([margin, width - margin]); - const scaleY = d3.scale.linear().domain(valueExt).range([height - (margin), margin]); + const vMargin = 20; + const hMargin = 10; + const scaleX = d3.time.scale.utc().domain(dateExt).range([hMargin, width - hMargin]); + const scaleY = d3.scale.linear().domain(valueExt).range([height - (vMargin), vMargin]); const colorRange = [d3.hsl(0, 1, 0.3), d3.hsl(120, 1, 0.3)]; const scaleColor = d3.scale .linear().domain([-1, 1]) @@ -56,7 +58,7 @@ function bigNumberVis(slice, payload) { .y(function (d) { return scaleY(d[1]); }) - .interpolate('basis'); + .interpolate('cardinal'); let y = height / 2; let g = svg.append('g'); @@ -127,17 +129,18 @@ function bigNumberVis(slice, payload) { const xAxis = d3.svg.axis() .scale(scaleX) .orient('bottom') - .ticks(4) + .ticks(Math.round(2 + (width / 150))) .tickFormat(formatDate); g.call(xAxis); - g.attr('transform', 'translate(0,' + (height - margin) + ')'); + g.attr('transform', 'translate(0,' + (height - vMargin) + ')'); - g = gAxis.append('g').attr('transform', 'translate(' + (width - margin) + ',0)'); + g = gAxis.append('g').attr('transform', 'translate(' + (width - hMargin) + ',0)'); const yAxis = d3.svg.axis() .scale(scaleY) .orient('left') .tickFormat(d3.format(fd.y_axis_format)) .tickValues(valueExt); + g.call(yAxis); g.selectAll('text') .style('text-anchor', 'end') @@ -147,6 +150,46 @@ function bigNumberVis(slice, payload) { g.selectAll('text') .style('font-size', '10px'); + const renderTooltip = (d) => { + const date = formatDate(d[0]); + const value = f(d[1]); + return ` +
+ ${date}: + ${value} +
+ `; + }; + + const tip = d3tip() + .attr('class', 'd3-tip') + .direction('n') + .offset([-5, 0]) + .html(renderTooltip); + svg.call(tip); + + // Add the scatterplot and trigger the mouse events for the tooltips + svg + .selectAll('dot') + .data(data) + .enter() + .append('circle') + .attr('r', 3) + .attr('stroke-width', 15) + .attr('stroke', 'transparent') + .attr('stroke-location', 'outside') + .attr('cx', d => scaleX(d[0])) + .attr('cy', d => scaleY(d[1])) + .attr('fill-opacity', 0) + .on('mouseover', function (d) { + d3.select(this).attr('fill-opacity', 1); + tip.show(d); + }) + .on('mouseout', function (d) { + d3.select(this).attr('fill-opacity', 0); + tip.hide(d); + }); + div.on('mouseover', function () { const el = d3.select(this); el.selectAll('path') diff --git a/superset/assets/visualizations/cal_heatmap.js b/superset/assets/visualizations/cal_heatmap.js index e80635088bc3d..6b34acbf1ad30 100644 --- a/superset/assets/visualizations/cal_heatmap.js +++ b/superset/assets/visualizations/cal_heatmap.js @@ -15,7 +15,7 @@ function calHeatmap(slice, payload) { const cal = new CalHeatMap(); const timestamps = data.timestamps; - const extents = d3.extent(Object.keys(timestamps), (key) => timestamps[key]); + const extents = d3.extent(Object.keys(timestamps), key => timestamps[key]); const step = (extents[1] - extents[0]) / 5; try { @@ -28,7 +28,7 @@ function calHeatmap(slice, payload) { subDomain: data.subdomain, range: data.range, browsing: true, - legend: [extents[0], extents[0] + step, extents[0] + step * 2, extents[0] + step * 3], + legend: [extents[0], extents[0] + step, extents[0] + (step * 2), extents[0] + (step * 3)], }); } catch (e) { slice.error(e); diff --git a/superset/assets/visualizations/countries/belgium.geojson b/superset/assets/visualizations/countries/belgium.geojson new file mode 100644 index 0000000000000..787fcb88b13a8 --- /dev/null +++ b/superset/assets/visualizations/countries/belgium.geojson @@ -0,0 +1,14 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.409863471984863,50.90990447998047],[4.412505626678467,50.909236907958984],[4.42184686660778,50.90971374511719],[4.426921367645321,50.903301239013615],[4.428298950195369,50.900524139404354],[4.428552150726318,50.89598846435546],[4.431266784667969,50.89382171630871],[4.431397914886475,50.89186859130865],[4.42842340469366,50.888671875000114],[4.435351371765137,50.8798179626466],[4.435228347778377,50.87713623046875],[4.427641391754264,50.874492645263786],[4.425368785858268,50.872783660888615],[4.423589229583853,50.86847686767589],[4.423013210296631,50.86370468139654],[4.423851013183594,50.86118698120117],[4.43182992935192,50.8602752685548],[4.43998193740839,50.85678482055663],[4.44671106338501,50.852764129638615],[4.453137397766113,50.848007202148494],[4.457602500915527,50.84250640869151],[4.459332466125545,50.837879180908146],[4.459523200988826,50.829414367675774],[4.458478450775203,50.82339859008789],[4.456301689147892,50.819305419921875],[4.448300838470459,50.81738281249994],[4.443833827972411,50.81269073486334],[4.443684577941951,50.810771942138786],[4.44574594497692,50.80740737915039],[4.448098182678223,50.805908203125114],[4.457549571991024,50.802398681640675],[4.46480846405035,50.798908233642635],[4.471469879150447,50.796409606933594],[4.471917629242,50.793884277343864],[4.468224525451774,50.791538238525334],[4.454542636871451,50.78776168823242],[4.454495906829948,50.78291702270519],[4.444179534912108,50.78215789794922],[4.432633876800594,50.77976226806651],[4.428128242492676,50.77827835083013],[4.419411182403621,50.77408981323248],[4.4131054878236,50.77251052856445],[4.403519153594971,50.774047851562614],[4.390567302703971,50.77049636840832],[4.378083229064941,50.767379760742294],[4.372328758239746,50.76770401000976],[4.371043205261174,50.77133178710943],[4.367992401123161,50.77239990234375],[4.35862398147583,50.773490905761825],[4.34830904006958,50.774047851562614],[4.343227863311824,50.77518463134777],[4.334693431854305,50.775222778320256],[4.321044921875,50.77606582641613],[4.323226451873779,50.7816276550293],[4.323740482330379,50.78579330444347],[4.322649002075252,50.78912734985357],[4.320200443267765,50.790401458740234],[4.313343524932975,50.79682922363281],[4.308412075042725,50.80068969726568],[4.300967693328857,50.801437377929744],[4.298927307128906,50.8037109375],[4.298885822296086,50.80713653564453],[4.294890403747559,50.80799484252929],[4.274653434753475,50.80966949462896],[4.270914554596004,50.81179809570324],[4.266596317291203,50.81278610229498],[4.259866714477539,50.81290054321283],[4.257053375244141,50.81364059448253],[4.254380702972412,50.817588806152344],[4.250339984893856,50.81900787353521],[4.244327068328857,50.819755554199276],[4.243638038635254,50.821361541748104],[4.246231079101506,50.825004577636655],[4.25148534774786,50.82748413085932],[4.254514217376709,50.830875396728516],[4.25527286529541,50.83431243896496],[4.25678014755249,50.83584213256836],[4.261881828308219,50.837047576904354],[4.26992130279541,50.83740615844732],[4.276174068451041,50.839191436767685],[4.281164169311579,50.8398323059082],[4.283812046051139,50.842094421386776],[4.28579568862915,50.847034454345646],[4.285871028900203,50.85370254516613],[4.286975860595703,50.85549926757824],[4.284823417663516,50.85826873779302],[4.28102970123291,50.86017990112316],[4.279821872711295,50.862651824951286],[4.281398773193472,50.86608123779297],[4.291715145111084,50.87336349487298],[4.298773765564022,50.87794113159174],[4.304327964782829,50.880317687988224],[4.299145221710262,50.885669708252],[4.298538208007812,50.88824462890631],[4.302279472351131,50.88960266113287],[4.304419040680045,50.894775390625114],[4.313412189483643,50.89376831054693],[4.318715572357291,50.89363479614258],[4.323376655578727,50.89438247680664],[4.335988521575985,50.899810791015625],[4.342049598693847,50.90095520019531],[4.35874176025402,50.90055847167969],[4.367551326751823,50.89942932128906],[4.372054100036735,50.89813995361334],[4.375820159912223,50.8995246887207],[4.386989116668701,50.904918670654354],[4.389441013336238,50.90568923950201],[4.392726421356201,50.908329010009766],[4.399668216705379,50.91016769409173],[4.409863471984863,50.90990447998047]]]},"properties":{"ID_0":23,"ISO":"BE-BRU","NAME_0":"Belgium","ID_1":1,"NAME_1":"Bruxelles","ID_2":1,"NAME_2":"Bruxelles","TYPE_2":"Hoofdstedelijk Gewest|Région Capitale","ENGTYPE_2":"Capital Region","NL_NAME_2":null,"VARNAME_2":"Brussel Hoofstadt|Brusselse Hoofdstedelijke Gewest|Brüssel|Bruxelas|Région de Bruxelles-Capitale|Brussels|Bruselas"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[4.963096141815129,51.454395294189446],[4.967648029327392,51.448505401611385],[4.960515975952148,51.44720458984375],[4.953164100646973,51.444541931152344],[4.951247215271053,51.43999099731457],[4.951035022735652,51.43605804443365],[4.952054023742789,51.43120574951172],[4.945246219635009,51.42885208129888],[4.937314987182674,51.42957305908208],[4.928979873657227,51.4322395324707],[4.927105903625488,51.437900543213],[4.927896976470946,51.44770431518555],[4.930860042572021,51.45014190673834],[4.937366962432918,51.45145416259771],[4.943729877472038,51.45044326782232],[4.963096141815129,51.454395294189446]]],[[[5.239571094512996,51.262336730957145],[5.229714870452938,51.24909210205084],[5.227700233459529,51.24262619018548],[5.227061271667424,51.227058410644645],[5.227417469024772,51.21967315673828],[5.229143142700195,51.21534729003912],[5.233153820037955,51.21090316772472],[5.24668550491333,51.20495223999029],[5.25067758560192,51.20179367065441],[5.257046699523869,51.19791793823248],[5.260843276977539,51.19339752197271],[5.264478683471793,51.1877670288087],[5.266909599304313,51.18019104003906],[5.268953323364371,51.17576599121088],[5.270822048187256,51.16968536376953],[5.274050712585505,51.16421508789068],[5.27274322509777,51.15922927856457],[5.267405986785832,51.151771545410156],[5.258239269256649,51.142951965332145],[5.246838569641169,51.14105224609369],[5.241306781768742,51.14073944091797],[5.224534034728947,51.14054870605468],[5.217691421508732,51.13924026489252],[5.213703632354736,51.1371688842774],[5.209149360656852,51.13270187377941],[5.204272747039737,51.12604904174816],[5.201982498169002,51.12157440185558],[5.160740852355956,51.12223815917968],[5.14595985412609,51.12307739257824],[5.138252258300895,51.11904907226568],[5.131552696228141,51.114528656005916],[5.125127315521354,51.106868743896484],[5.104276180267391,51.08905029296875],[5.097488880157528,51.08620834350597],[5.077497482299862,51.083812713623104],[5.068570137024039,51.08132934570324],[5.060279369354305,51.078350067138786],[5.050835609436035,51.07704544067394],[5.033034324645996,51.07664871215832],[5.025984287262077,51.074928283691406],[5.01834774017334,51.07002639770507],[5.007122993469295,51.057071685791016],[4.999913215637321,51.050415039062614],[4.997560501098746,51.04715347290039],[4.994604587554932,51.04140472412115],[4.983142375946102,51.044139862060604],[4.97057294845581,51.046470642089844],[4.957199573516788,51.0473747253418],[4.950301647186393,51.04724502563482],[4.945374965667838,51.04660415649414],[4.939480304718074,51.04490280151373],[4.930237770080566,51.043155670166016],[4.918544292450065,51.042060852050724],[4.913022518158073,51.040836334228516],[4.908148765564022,51.03871536254894],[4.896214008331413,51.031925201416016],[4.89150953292858,51.02965927124029],[4.879902362823486,51.025020599365234],[4.870729446411246,51.02258682250982],[4.860552310943547,51.0192985534668],[4.85106897354126,51.0183563232423],[4.829348564148063,51.018642425537216],[4.821960449218806,51.026073455810604],[4.8109774589538,51.03490066528332],[4.805189609527588,51.036708831787166],[4.795162200927791,51.039127349853516],[4.782798767089844,51.04388046264643],[4.770822525024414,51.039920806884766],[4.766013622284049,51.03528213500988],[4.753901481628418,51.03167343139642],[4.744027137756461,51.02912902832031],[4.739963054657039,51.0272827148438],[4.734666347503662,51.023300170898494],[4.729921817779541,51.0206184387207],[4.725505828857422,51.014617919921875],[4.717874050140381,51.00749588012695],[4.707288265228271,51.00265502929693],[4.705630779266413,51.01554107666027],[4.701743602752798,51.02060699462896],[4.697710990905875,51.0229606628418],[4.692750453949031,51.0244598388673],[4.685599327087516,51.02495574951172],[4.677803516387939,51.0246200561524],[4.664401531219539,51.025112152099666],[4.652591705322209,51.025154113769524],[4.64492130279541,51.02479171752941],[4.638265609741268,51.02391052246105],[4.633597850799617,51.01870727539068],[4.625666618347111,51.016113281250114],[4.618252277374324,51.01274871826171],[4.610688209533805,51.00738906860362],[4.601820468902531,50.99812698364258],[4.592682361602896,50.99661254882824],[4.585921764373836,50.99661254882824],[4.578203678131217,50.99840545654297],[4.563103199005241,51.0028915405274],[4.551182746887207,51.00477600097661],[4.533492565155086,51.00852966308594],[4.528186798095816,51.01134109497076],[4.519528865814323,51.014156341552734],[4.514202117919979,51.0150146484375],[4.500732421875,51.016391754150504],[4.497669219970816,51.01181030273443],[4.495145320892448,51.005817413330135],[4.492278575897273,51.002040863037166],[4.489727020263672,51.000057220458984],[4.481745719909725,50.9988632202149],[4.475311279296875,50.999786376953125],[4.4626784324646,51.00337219238281],[4.455388069152775,51.00415420532238],[4.447964668273926,51.00386810302746],[4.439062595367545,51.00221633911138],[4.424881458282471,51.000068664550895],[4.418742656707821,50.99977493286144],[4.414099216461295,51.000579833984425],[4.405846595764274,51.003730773925724],[4.398381233215332,51.005989074707145],[4.386740684509391,51.007350921630916],[4.387394428253174,51.021797180175895],[4.386933803558293,51.025039672851676],[4.384752750396785,51.02785491943365],[4.378576755523738,51.02935791015631],[4.371464729309025,51.02911376953124],[4.363585948944205,51.02767562866211],[4.34328222274786,51.03152465820324],[4.321650505065918,51.034000396728516],[4.31145715713501,51.039749145507926],[4.30253362655634,51.04311370849615],[4.292593002319335,51.045288085937614],[4.285531044006461,51.04591751098644],[4.278241157531737,51.04579544067383],[4.272442817688102,51.04518127441406],[4.253897666931152,51.04168319702154],[4.24867773056036,51.04213714599615],[4.243930816650447,51.0433235168457],[4.224333763122559,51.039127349853516],[4.218850612640495,51.03829956054687],[4.209434509277344,51.03800201416027],[4.192297935485896,51.03841400146496],[4.194415092468205,51.049335479736385],[4.194165706634635,51.061359405517635],[4.191631317138672,51.066947937011776],[4.189672470092887,51.07352066040045],[4.185780048370304,51.07962036132824],[4.178332805633544,51.08609390258789],[4.173614978790397,51.0927391052246],[4.173072814941463,51.097370147705135],[4.175231933593864,51.102916717529354],[4.178919792175407,51.1067123413087],[4.187142848968563,51.111274719238395],[4.204384803772029,51.12179565429682],[4.212789535522575,51.12486267089843],[4.220615386962891,51.12554931640636],[4.230647563934383,51.12544250488281],[4.238502502441463,51.12480926513683],[4.249611854553279,51.12292861938482],[4.261415958404655,51.12254714965826],[4.271099090576286,51.123386383056754],[4.280544281005916,51.125690460205185],[4.293947696685848,51.12771224975591],[4.303575992584341,51.12793350219738],[4.317935943603572,51.12762832641601],[4.326134681701774,51.13746643066406],[4.326570987701473,51.15448760986334],[4.327077865600585,51.19879531860351],[4.320000171661376,51.2056503295899],[4.316242218017635,51.213054656982365],[4.312294960021973,51.21904754638683],[4.3066024780274,51.22531509399413],[4.301985263824406,51.2334556579591],[4.299790859222412,51.24004745483404],[4.297354698181152,51.24552154541027],[4.295839786529541,51.25609588623047],[4.294036388397217,51.26255035400384],[4.304376125335692,51.277099609375],[4.305185794830322,51.28034973144531],[4.304560184478703,51.283622741699276],[4.299696445465031,51.28806304931652],[4.282232761383113,51.29532623291027],[4.278837680816707,51.2979965209962],[4.275197505951041,51.30278396606451],[4.271328926086369,51.31125259399425],[4.270382404327449,51.32368850708002],[4.268922328948975,51.328495025634766],[4.266629219055176,51.33128738403332],[4.259858131408691,51.33784103393555],[4.251997947692927,51.34387588500988],[4.246936321258659,51.34869384765631],[4.24208307266241,51.35142898559576],[4.232576847076473,51.355682373046875],[4.230599880218563,51.357475280761776],[4.223443984985352,51.35921096801758],[4.222165107727051,51.36574554443353],[4.216015815734806,51.37023925781256],[4.221158027649039,51.37612915039068],[4.234350204467717,51.37663650512701],[4.250617980956974,51.37644577026373],[4.2770290374757,51.3769416809082],[4.279046058654899,51.38016891479492],[4.280680179596061,51.38034057617193],[4.337417125701961,51.38127899169927],[4.346426010131893,51.36071777343756],[4.366444110870361,51.36121749877941],[4.379878997802733,51.36052703857427],[4.396659851074332,51.36003112792968],[4.408495903015194,51.36411285400396],[4.42266321182251,51.3678359985351],[4.427467823028621,51.376232147216854],[4.424565792083854,51.386028289795036],[4.399862766265868,51.4036254882813],[4.392259120941276,51.41722869873058],[4.395366191863957,51.44842910766596],[4.408965110778809,51.458827972412166],[4.415134906768856,51.460510253906364],[4.426202774047852,51.46437835693359],[4.442812919616699,51.471115112304744],[4.46682977676403,51.47652053833008],[4.478610992431754,51.48099899292003],[4.489480972290039,51.48001480102545],[4.505167961120605,51.48102951049816],[4.518927097320613,51.48291778564453],[4.537779808044547,51.484771728515625],[4.54447793960577,51.47943878173828],[4.551988124847469,51.47214889526373],[4.54948806762701,51.46809005737304],[4.538846969604549,51.457736968994254],[4.53347206115734,51.45201492309581],[4.530361175537109,51.447059631347656],[4.530519008636588,51.44551849365234],[4.537150859832764,51.423633575439396],[4.590851783752555,51.431396484375],[4.596758842468319,51.42980575561529],[4.614250183105526,51.42765045166021],[4.632566928863525,51.426769256591854],[4.640648841858024,51.42397689819347],[4.647445201873779,51.423614501953175],[4.654842853546143,51.42544555664057],[4.661338806152401,51.42472839355469],[4.662837982177848,51.42726516723633],[4.679113864898682,51.42538833618164],[4.678978919983024,51.43069458007818],[4.677420139312801,51.43796920776367],[4.678764820098876,51.44445419311523],[4.692807197570914,51.45040130615245],[4.707461833953857,51.4558448791505],[4.712071895599365,51.465816497802734],[4.719349861145133,51.46745300292969],[4.723608970642033,51.47019195556646],[4.728312969207821,51.47444915771496],[4.732659816742,51.481529235839844],[4.73692893981945,51.48659133911133],[4.752143859863338,51.49752426147466],[4.779335975647086,51.50382232666027],[4.804928779602108,51.49712753295898],[4.83863019943243,51.47982788085937],[4.839922904968262,51.45812225341797],[4.829224109649601,51.43962478637707],[4.834949970245417,51.422389984130916],[4.829008102417106,51.423896789550895],[4.810695171356258,51.4255485534668],[4.801196098327636,51.42774581909185],[4.786021232605093,51.43194961547857],[4.773284912109375,51.42889404296875],[4.778018951416072,51.42099761962902],[4.782611846923942,51.41544342041021],[4.791244983673209,51.41125488281256],[4.797492027282715,51.409458160400504],[4.832930088043327,51.40933609008789],[4.884724140167293,51.41562652587896],[4.925730228424186,51.39862442016613],[4.936068058014029,51.39749908447271],[4.945034027099609,51.401901245117244],[4.960960865020866,51.413646697998104],[4.970952033996525,51.420040130615234],[4.983663082122803,51.426940917968864],[4.994431972503662,51.433403015136825],[5.006558895111084,51.43910217285162],[5.010867118835506,51.444808959960994],[5.013113975525016,51.450469970703125],[5.016974925994929,51.455135345458984],[5.016713142395133,51.45949172973627],[5.014924049377441,51.46419525146484],[5.017857074737605,51.47073364257818],[5.022393226623535,51.47570800781256],[5.030433177947998,51.48140716552739],[5.037237167358454,51.48538970947265],[5.051019191742057,51.47152709960943],[5.082108020782584,51.46693038940424],[5.094810009002742,51.448932647705135],[5.097507953643798,51.42852783203125],[5.076618194580078,51.40473175048833],[5.07581615447998,51.39513397216797],[5.122406005859489,51.36013031005865],[5.13670921325695,51.31553268432617],[5.177507877349967,51.318603515625114],[5.181334972381592,51.32062149047862],[5.198300838470516,51.32144546508789],[5.209953784942627,51.32352447509771],[5.233023166656494,51.31309509277338],[5.245742797851562,51.305252075195426],[5.237619876861686,51.287895202636825],[5.228401184082088,51.27313232421881],[5.230206012725944,51.26713943481451],[5.239571094512996,51.262336730957145]]]]},"properties":{"ID_0":23,"ISO":"BE-VAN","NAME_0":"Belgium","ID_1":2,"NAME_1":"Vlaanderen","ID_2":2,"NAME_2":"Antwerpen","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Amberes|Antuérpia|Antwerp|Anvers|Anversa"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.896129608154411,50.75958633422857],[5.889423847198429,50.74941635131836],[5.885429382324219,50.74170303344738],[5.88486909866333,50.73515701293951],[5.886991977691593,50.729557037353516],[5.887659549713078,50.71998214721691],[5.887138843536434,50.71196746826172],[5.877957344055176,50.7120475769043],[5.866026401519775,50.711032867431754],[5.856453418731746,50.71121978759771],[5.835361957550106,50.71462631225597],[5.826517581939754,50.716419219970696],[5.805293560028076,50.71798706054698],[5.799057483673209,50.723720550537166],[5.794776439666805,50.72986984252941],[5.784869194030819,50.73592376708996],[5.779966354370174,50.73674774169922],[5.765116691589299,50.73801040649419],[5.753653049469108,50.74068832397466],[5.744046688079948,50.744171142578125],[5.739517688751278,50.744976043701286],[5.735059261322078,50.744773864746094],[5.72850847244274,50.74236297607433],[5.720372676849422,50.74085998535167],[5.709727764129581,50.740764617920036],[5.70356273651123,50.74215698242193],[5.699196338653564,50.74635314941412],[5.693084716796989,50.755371093750114],[5.692372798919791,50.760299682617294],[5.695435047149714,50.758277893066406],[5.69900894165039,50.75885772705078],[5.706765174865723,50.76276779174805],[5.732358932495231,50.762664794921875],[5.75455999374401,50.77846527099604],[5.761384010314998,50.77952575683599],[5.765114784240723,50.78172683715826],[5.773447990417537,50.78495407104498],[5.783214092254639,50.77985382080078],[5.786399841308707,50.774852752685604],[5.790698051452637,50.7695045471192],[5.793378829956168,50.76984786987305],[5.813356876373348,50.76006698608392],[5.832551956176815,50.76397323608404],[5.855858802795353,50.7611656188966],[5.881153106689453,50.76927185058605],[5.896129608154411,50.75958633422857]]],[[[5.690980434417668,50.809234619140625],[5.680764675140437,50.8058700561524],[5.674395084381217,50.802318572998104],[5.668262481689453,50.79743576049816],[5.658165454864502,50.790939331054744],[5.638574123382568,50.7791633605957],[5.63052129745489,50.77534866333008],[5.621693611145133,50.77272796630871],[5.614023685455379,50.77122497558588],[5.598823070526123,50.767604827880916],[5.587758064270133,50.766166687011776],[5.567357063293571,50.76243591308605],[5.552254199981802,50.76207733154296],[5.542725086212272,50.75820159912121],[5.538217067718505,50.75497817993164],[5.533227920532226,50.74650955200207],[5.532261848449821,50.739681243896484],[5.520458698272762,50.73588180541992],[5.513237476348876,50.73398971557617],[5.500510692596492,50.73163604736334],[5.497571468353328,50.729824066162166],[5.494567871093864,50.725944519043026],[5.485836505889893,50.724693298339844],[5.476349830627441,50.72471237182622],[5.469120025634709,50.72381973266596],[5.463170051574764,50.72132492065441],[5.456157684326114,50.71626663208013],[5.449454784393424,50.71430969238286],[5.435894012451286,50.712665557861385],[5.425975799560661,50.71467208862299],[5.41564416885376,50.71726608276373],[5.410488605499211,50.72043228149413],[5.40947437286377,50.7252578735351],[5.410171985626334,50.73654556274425],[5.409637451171932,50.740844726562614],[5.407900810241699,50.7434921264649],[5.404721260070801,50.74518966674799],[5.394875049591121,50.74466705322277],[5.382153987884521,50.74292755126959],[5.368960857391414,50.74213027954096],[5.363807201385612,50.74113845825207],[5.349058151245117,50.736251831054744],[5.337441921234188,50.7334098815918],[5.32700777053833,50.72928619384765],[5.323946475982723,50.727607727050774],[5.31430959701538,50.719863891601676],[5.294179916381892,50.723606109619254],[5.285480499267578,50.72399902343756],[5.282044410705623,50.72358703613281],[5.273265838623047,50.721111297607536],[5.266397476196345,50.718395233154354],[5.259901046753043,50.716896057128906],[5.25438022613531,50.71667098999029],[5.247096538543758,50.71737289428711],[5.229423522949332,50.722064971923935],[5.229677677154541,50.73812484741205],[5.23081254959112,50.74418640136718],[5.234035491943416,50.74734115600586],[5.234367847442627,50.756572723388786],[5.229905128479004,50.76343917846691],[5.22504997253418,50.76673889160162],[5.220779418945369,50.767574310302784],[5.213201522827092,50.767780303955135],[5.2023220062257,50.76717376708996],[5.198796272277889,50.76586532592779],[5.192119598388786,50.76515197753906],[5.181925296783561,50.76515579223644],[5.175235271453971,50.764450073242244],[5.167627334594783,50.76275634765631],[5.158460140228328,50.76258087158214],[5.153451919555663,50.761932373046875],[5.149806976318473,50.76068878173839],[5.140381336212215,50.759986877441406],[5.130300998687857,50.75775909423834],[5.125383377075195,50.757549285888786],[5.113746166229362,50.75787353515619],[5.10510969161993,50.758533477783146],[5.109626293182373,50.7629508972168],[5.113068580627498,50.767208099365284],[5.115010261535645,50.772171020507756],[5.113786697387695,50.77745056152349],[5.106708049774227,50.787342071533146],[5.120740890502929,50.78927230834961],[5.133152484893742,50.79191207885736],[5.136761188507194,50.79350662231445],[5.140206813812256,50.797134399414176],[5.142097473144645,50.80104827880865],[5.142440795898551,50.805835723876896],[5.141652584075985,50.8106079101563],[5.139581680297908,50.815177917480526],[5.138687610626278,50.820919036865234],[5.139229774475211,50.82438278198242],[5.144410610199031,50.836330413818466],[5.150712013244572,50.8451538085938],[5.156629085540885,50.85569000244152],[5.156763553619327,50.86115646362299],[5.158709049224854,50.86707305908209],[5.163393974304198,50.872325897216854],[5.16764068603527,50.874668121338004],[5.177734851837158,50.877468109130916],[5.182327747344971,50.87946319580084],[5.187740802764893,50.88277053833008],[5.190816879272518,50.88576126098627],[5.192530155181942,50.89030456542969],[5.192805290222225,50.89624404907221],[5.191988945007324,50.902225494384766],[5.189713001251164,50.907970428466854],[5.181466579437313,50.90855026245123],[5.157316684722957,50.90927886962902],[5.144743919372672,50.91128540039062],[5.129437446594352,50.91214370727539],[5.117744445800781,50.91218948364263],[5.10694789886486,50.91117095947277],[5.096708297729492,50.908695220947266],[5.088730812072697,50.90608978271484],[5.083992958068848,50.9129371643067],[5.078602313995304,50.91821289062506],[5.068372726440487,50.91852188110363],[5.065114021301383,50.919120788574276],[5.058685779571533,50.92193222045904],[5.054823398590088,50.92480087280285],[5.049398422241211,50.93117141723633],[5.050158023834229,50.93879699707037],[5.052103042602653,50.94455337524414],[5.062508106231689,50.94726943969732],[5.077712059021053,50.953987121582024],[5.082909584045467,50.958961486816406],[5.084508419036979,50.96277236938488],[5.084280014038086,50.96606063842768],[5.082726001739502,50.96910095214849],[5.078112602233887,50.974304199218864],[5.077085971832389,50.97744369506847],[5.077640056610107,50.980503082275504],[5.081507205963192,50.98340225219738],[5.088366985321045,50.98531341552739],[5.099818229675406,50.99031066894537],[5.108793258667049,50.99330520629894],[5.119160175323543,50.99598693847661],[5.125144481658992,50.99680328369151],[5.126358509063834,51.004798889160206],[5.129977226257267,51.00875854492193],[5.135479927063045,51.0117073059082],[5.144402980804443,51.014148712158196],[5.14924860000616,51.015998840332024],[5.166181564331112,51.0244598388673],[5.159650802612305,51.03295516967785],[5.156472206115723,51.035957336425724],[5.14860820770275,51.04145431518555],[5.136041641235465,51.04912948608404],[5.129860877990779,51.050769805908196],[5.122413158416748,51.05154418945324],[5.105188846588191,51.05206298828131],[5.096547126770075,51.05144119262701],[5.091957569122371,51.04854583740229],[5.09110593795782,51.04542160034179],[5.091146945953426,51.03741455078131],[5.090695381164664,51.03410339355469],[5.088820457458609,51.03119277954107],[5.085695743560848,51.02956008911144],[5.078582286834774,51.02720260620123],[5.067107677459717,51.024917602539055],[5.059502601623649,51.024665832519645],[5.045941352844237,51.024837493896484],[5.030416011810303,51.025836944580135],[5.022239208221435,51.0311164855957],[5.01378297805786,51.0351791381837],[4.999020099640006,51.03932571411133],[4.994604587554932,51.04140472412115],[4.997560501098746,51.04715347290039],[4.999913215637321,51.050415039062614],[5.007122993469295,51.057071685791016],[5.01834774017334,51.07002639770507],[5.025984287262077,51.074928283691406],[5.033034324645996,51.07664871215832],[5.050835609436035,51.07704544067394],[5.060279369354305,51.078350067138786],[5.068570137024039,51.08132934570324],[5.077497482299862,51.083812713623104],[5.097488880157528,51.08620834350597],[5.104276180267391,51.08905029296875],[5.125127315521354,51.106868743896484],[5.131552696228141,51.114528656005916],[5.138252258300895,51.11904907226568],[5.14595985412609,51.12307739257824],[5.160740852355956,51.12223815917968],[5.201982498169002,51.12157440185558],[5.204272747039737,51.12604904174816],[5.209149360656852,51.13270187377941],[5.213703632354736,51.1371688842774],[5.217691421508732,51.13924026489252],[5.224534034728947,51.14054870605468],[5.241306781768742,51.14073944091797],[5.246838569641169,51.14105224609369],[5.258239269256649,51.142951965332145],[5.267405986785832,51.151771545410156],[5.27274322509777,51.15922927856457],[5.274050712585505,51.16421508789068],[5.270822048187256,51.16968536376953],[5.268953323364371,51.17576599121088],[5.266909599304313,51.18019104003906],[5.264478683471793,51.1877670288087],[5.260843276977539,51.19339752197271],[5.257046699523869,51.19791793823248],[5.25067758560192,51.20179367065441],[5.24668550491333,51.20495223999029],[5.233153820037955,51.21090316772472],[5.229143142700195,51.21534729003912],[5.227417469024772,51.21967315673828],[5.227061271667424,51.227058410644645],[5.227700233459529,51.24262619018548],[5.229714870452938,51.24909210205084],[5.239571094512996,51.262336730957145],[5.241021156311092,51.261692047119084],[5.26488304138195,51.266914367675895],[5.279383182525748,51.26458358764648],[5.334092140197811,51.26382064819336],[5.35764217376709,51.27290725708019],[5.420667171478271,51.26112747192377],[5.428040027618465,51.26626205444347],[5.432981014251823,51.27128982543945],[5.44160079956066,51.27389144897472],[5.447806835174561,51.278816223144524],[5.456861972808952,51.28213119506836],[5.468880176544246,51.28384399414068],[5.480690002441406,51.28797531127941],[5.489470005035514,51.29738235473633],[5.496086120605582,51.29774093627923],[5.512876033783073,51.293033599853516],[5.551477909088192,51.26653671264654],[5.560273170471191,51.22884368896484],[5.576879024505614,51.216945648193416],[5.615064144134577,51.20907211303711],[5.651566028595028,51.199867248535156],[5.655365943908804,51.18644332885747],[5.709558963775634,51.18134689331066],[5.717188835144157,51.182712554931754],[5.722672939300537,51.181991577148494],[5.749197959899846,51.19004821777355],[5.76308202743536,51.187576293945426],[5.782691955566463,51.18131637573248],[5.781661987304687,51.17773056030285],[5.784115791320801,51.17460250854498],[5.780560970306396,51.169631958007926],[5.786121845245418,51.165454864502],[5.782736778259391,51.15991210937511],[5.821729183196965,51.162628173828125],[5.822772979736328,51.165317535400504],[5.828010082244929,51.168716430664006],[5.83412504196167,51.168460845947266],[5.837316036224479,51.16491699218749],[5.839006900787467,51.160202026367244],[5.843266963958854,51.15403747558594],[5.850687026977652,51.15060806274419],[5.858759880066031,51.14596176147461],[5.848534107208252,51.13900375366222],[5.843645095825309,51.13495254516607],[5.838119983673153,51.13285446166998],[5.829743862152156,51.13172149658203],[5.824966907501277,51.12927627563488],[5.817066192626953,51.12080764770507],[5.815732002258301,51.11489105224621],[5.819299221038931,51.11212158203125],[5.826327800750732,51.111454010009766],[5.833051204681396,51.10917282104492],[5.836369991302603,51.10416793823242],[5.834655761718864,51.10044479370123],[5.822856903076228,51.09464645385742],[5.811281204223633,51.09589385986328],[5.803187847137394,51.093589782714844],[5.800704002380371,51.08914566040038],[5.80607986450201,51.08078765869135],[5.802192211151123,51.07654571533214],[5.799757957458496,51.072834014892685],[5.801907062530518,51.06391906738287],[5.796287059783936,51.062065124511825],[5.782749176025391,51.06509399414074],[5.779297828674373,51.06140518188488],[5.777957916259766,51.05702209472662],[5.768663883209229,51.044963836670036],[5.764050960540828,51.03752136230469],[5.763566970825138,51.03270721435558],[5.769853115081844,51.0297966003418],[5.774485111236629,51.02516174316412],[5.770568847656364,51.020359039306754],[5.767807006835994,51.01391983032237],[5.767342090606746,51.01133346557623],[5.770719051361141,51.01115036010748],[5.763065814971981,50.992351531982536],[5.725789070129451,50.9640007019043],[5.724986076355037,50.959964752197266],[5.730968952178955,50.956417083740284],[5.737686157226618,50.95615386962896],[5.744450092315788,50.9582977294923],[5.751912117004451,50.959384918212834],[5.757164955139217,50.95642471313482],[5.757295131683406,50.953041076660156],[5.747467994690055,50.94179916381847],[5.741397857666072,50.936088562011776],[5.732224941253662,50.92445755004894],[5.728404998779354,50.915359497070426],[5.723505020141715,50.90905761718755],[5.707162857055664,50.90788650512689],[5.703488826751709,50.90611267089844],[5.697491168975944,50.89688110351574],[5.69225978851324,50.88946151733404],[5.689669132232609,50.886711120605526],[5.687693119049128,50.88209152221691],[5.681983947753963,50.880397796630966],[5.670166015625057,50.88031387329107],[5.651988029480094,50.872505187988224],[5.647942066192684,50.86005783081055],[5.647504806518497,50.852027893066456],[5.648804187774601,50.845230102539],[5.649746894836539,50.83691787719738],[5.652534961700496,50.829597473144524],[5.660498142242488,50.821987152099666],[5.67245721817028,50.819568634033146],[5.690980434417668,50.809234619140625]]]]},"properties":{"ID_0":23,"ISO":"BE-VLI","NAME_0":"Belgium","ID_1":2,"NAME_1":"Vlaanderen","ID_2":3,"NAME_2":"Limburg","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Limbourg|Limburgo"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.232576847076473,51.355682373046875],[4.24208307266241,51.35142898559576],[4.246936321258659,51.34869384765631],[4.251997947692927,51.34387588500988],[4.259858131408691,51.33784103393555],[4.266629219055176,51.33128738403332],[4.268922328948975,51.328495025634766],[4.270382404327449,51.32368850708002],[4.271328926086369,51.31125259399425],[4.275197505951041,51.30278396606451],[4.278837680816707,51.2979965209962],[4.282232761383113,51.29532623291027],[4.299696445465031,51.28806304931652],[4.304560184478703,51.283622741699276],[4.305185794830322,51.28034973144531],[4.304376125335692,51.277099609375],[4.294036388397217,51.26255035400384],[4.295839786529541,51.25609588623047],[4.297354698181152,51.24552154541027],[4.299790859222412,51.24004745483404],[4.301985263824406,51.2334556579591],[4.3066024780274,51.22531509399413],[4.312294960021973,51.21904754638683],[4.316242218017635,51.213054656982365],[4.320000171661376,51.2056503295899],[4.327077865600585,51.19879531860351],[4.326570987701473,51.15448760986334],[4.326134681701774,51.13746643066406],[4.317935943603572,51.12762832641601],[4.303575992584341,51.12793350219738],[4.293947696685848,51.12771224975591],[4.280544281005916,51.125690460205185],[4.271099090576286,51.123386383056754],[4.261415958404655,51.12254714965826],[4.249611854553279,51.12292861938482],[4.238502502441463,51.12480926513683],[4.230647563934383,51.12544250488281],[4.220615386962891,51.12554931640636],[4.212789535522575,51.12486267089843],[4.204384803772029,51.12179565429682],[4.187142848968563,51.111274719238395],[4.178919792175407,51.1067123413087],[4.175231933593864,51.102916717529354],[4.173072814941463,51.097370147705135],[4.173614978790397,51.0927391052246],[4.178332805633544,51.08609390258789],[4.185780048370304,51.07962036132824],[4.189672470092887,51.07352066040045],[4.191631317138672,51.066947937011776],[4.194165706634635,51.061359405517635],[4.194415092468205,51.049335479736385],[4.192297935485896,51.03841400146496],[4.209434509277344,51.03800201416027],[4.218850612640495,51.03829956054687],[4.224333763122559,51.039127349853516],[4.243930816650447,51.0433235168457],[4.242400646209774,51.03449630737316],[4.238726615905762,51.02453231811529],[4.238165378570613,51.01258087158209],[4.237308979034424,51.00791549682623],[4.232768058776855,51.00117874145508],[4.225895881652945,50.99489593505871],[4.210656642913932,50.98761367797846],[4.193532466888484,50.988933563232536],[4.188358306884765,50.98960113525402],[4.178502559661979,50.99213027954113],[4.170099258422908,50.99526977539068],[4.165304660797176,50.989456176757805],[4.158428192138672,50.98222351074219],[4.149996280670223,50.974296569824325],[4.150999546051082,50.96940231323247],[4.152441978454646,50.96607208251959],[4.154804229736328,50.96347427368169],[4.162394046783504,50.95708847045893],[4.165952205658073,50.952678680420036],[4.167680740356559,50.94936370849604],[4.169786453247013,50.94295883178722],[4.160375595092773,50.935264587402344],[4.156063079834098,50.92974090576172],[4.152789592742919,50.92382431030279],[4.149717330932617,50.92016983032232],[4.14047479629528,50.92489242553711],[4.127593994140567,50.93045425415039],[4.11557054519659,50.93405532836914],[4.106604099273738,50.93447875976574],[4.100337982177791,50.93286514282221],[4.098210334777832,50.930057525634766],[4.097970008850154,50.91989898681646],[4.096945762634333,50.91412353515625],[4.092715263366813,50.90866470336914],[4.086257457733268,50.90524673461914],[4.080656051635742,50.90421676635753],[4.080770015716553,50.89691162109369],[4.081889152526799,50.892230987548935],[4.085982322692814,50.885520935058594],[4.090218067169246,50.88080215454096],[4.082449913024959,50.87328338623047],[4.078415393829403,50.867313385009766],[4.074045181274356,50.859119415283196],[4.07061672210699,50.856189727783146],[4.061762809753475,50.849906921386776],[4.058853626251221,50.84724807739258],[4.055192947387694,50.842555999755916],[4.054391860961857,50.83827972412115],[4.056893348693848,50.83452606201183],[4.063144683837947,50.83318328857433],[4.073387622833252,50.83289337158203],[4.078993320465201,50.83085632324224],[4.080935001373348,50.825820922851555],[4.080599784851074,50.812736511230526],[4.073676586151237,50.80380630493164],[4.060739994049186,50.79277038574213],[4.050070762634391,50.7848472595216],[4.045576095581055,50.77933883666992],[4.025604248046875,50.77409362792968],[4.019299030303955,50.773777008056754],[4.011229038238582,50.774566650390675],[4.005154132842961,50.77398300170893],[3.990963697433472,50.77113342285162],[3.984547853469849,50.77104568481451],[3.98045539855957,50.77186203002941],[3.97381401062006,50.77426910400385],[3.970697164535579,50.77659606933594],[3.965441703796444,50.77819824218756],[3.960383176803589,50.77833557128906],[3.955550193786621,50.77766036987305],[3.948070764541569,50.775386810302734],[3.939300298690796,50.77076721191412],[3.933359861373958,50.76609420776373],[3.929675102233829,50.76133728027344],[3.928164482116699,50.757003784179744],[3.928374052047843,50.75234222412103],[3.929718255996704,50.749275207519645],[3.933732271194458,50.744892120361385],[3.943493366241568,50.74139404296881],[3.948508262634277,50.737514495849716],[3.940354585647697,50.73553848266607],[3.927059412002677,50.73307418823248],[3.920488119125366,50.732402801513615],[3.915246486663761,50.73260116577143],[3.906505823135376,50.73405456542969],[3.892590045929068,50.73526763916021],[3.884006977081413,50.73691177368169],[3.878738403320312,50.74233245849615],[3.875122547149772,50.74496078491222],[3.869098663330078,50.74762725830078],[3.86400222778326,50.74841308593755],[3.858756542205811,50.74839782714844],[3.852779150009098,50.74742126464844],[3.847915649414176,50.74541091918945],[3.837750434875602,50.7398300170899],[3.83439493179327,50.738712310791016],[3.828039646148682,50.738224029541065],[3.816521883010978,50.740734100341854],[3.808620214462337,50.74328231811517],[3.800738334655705,50.744804382324276],[3.789552211761418,50.745121002197315],[3.780943632125798,50.74398422241222],[3.774646759033203,50.746765136718864],[3.765259027481079,50.74974822998052],[3.762834548950252,50.75173950195324],[3.756891727447566,50.75850296020519],[3.749187469482479,50.76546859741211],[3.741571426391715,50.767433166503906],[3.736004352569694,50.76752471923834],[3.728482961654663,50.766975402832145],[3.721306800842399,50.76567459106451],[3.714914798736629,50.765254974365234],[3.70317196846014,50.76571273803716],[3.695001602172965,50.766769409179744],[3.682890176773128,50.767051696777344],[3.675873517990226,50.76648330688482],[3.67325496673584,50.76197433471674],[3.670523643493766,50.755298614501896],[3.664734601974544,50.74360656738281],[3.662740468978939,50.73586273193365],[3.660099983215389,50.73236465454113],[3.653437614441031,50.72822189331055],[3.647624969482422,50.722816467285156],[3.641566276550349,50.72508239746094],[3.63165116310131,50.72790145874029],[3.615384817123413,50.73113632202148],[3.609710216522274,50.73149490356445],[3.598320722579956,50.73096084594732],[3.59113335609436,50.72959136962902],[3.582044601440373,50.72891998291015],[3.574754476547298,50.72945404052729],[3.563195705413818,50.73179626464844],[3.546725273132324,50.736331939697315],[3.552826404571476,50.743202209472656],[3.559222459793148,50.75326156616211],[3.551618099212646,50.7586402893067],[3.545578002929744,50.76073837280279],[3.535263776779232,50.76070404052746],[3.528159618377799,50.75937652587902],[3.518664598465079,50.758644104003906],[3.502916097641105,50.75837707519537],[3.493236064910889,50.758689880371094],[3.486185789108276,50.75991058349621],[3.475764989852905,50.763759613037166],[3.466958761215267,50.76655960083008],[3.479607105255127,50.775749206543075],[3.494108676910457,50.78480148315441],[3.500387907028198,50.787807464599666],[3.512284517288265,50.79213333129883],[3.51787972450262,50.795040130615284],[3.521427392959595,50.79765701293945],[3.528620004653931,50.80490112304693],[3.522930145263672,50.80874633789073],[3.516711711883545,50.81115722656255],[3.511961460113468,50.811382293701165],[3.509353160858154,50.82957839965826],[3.506824493408317,50.835189819335994],[3.504664421081657,50.84167861938487],[3.501014709472769,50.84888458251953],[3.495841026306266,50.85496520996093],[3.490841627120972,50.856884002685604],[3.481169700622502,50.85874176025402],[3.469055175781307,50.861461639404354],[3.471566438674927,50.87055587768555],[3.47539210319519,50.8762245178222],[3.478472709655819,50.88344955444347],[3.479180335998535,50.89069747924816],[3.478520870208854,50.896652221679744],[3.475665807724112,50.903381347656364],[3.474529743194523,50.908794403076286],[3.467059373855591,50.90847396850586],[3.4585058689118,50.90703582763671],[3.450150489807129,50.90407943725586],[3.441758155822754,50.90348052978521],[3.436298370361328,50.90534210205078],[3.431842088699398,50.91150665283209],[3.433364152908325,50.91697311401373],[3.431846380233821,50.92284393310558],[3.439898014068717,50.92705154418951],[3.446749210357723,50.93232345581055],[3.453221321106071,50.94085693359381],[3.439320564270133,50.950866699218864],[3.436186790466309,50.955001831054744],[3.436664342880249,50.95898437500006],[3.438136577606201,50.96086502075207],[3.445031881332454,50.966850280761776],[3.446926593780517,50.9710311889649],[3.446246862411555,50.97539138793957],[3.440944910049438,50.98246383666986],[3.44014549255371,50.98596954345714],[3.440877676010131,50.988868713378906],[3.443192958831787,50.99167251586913],[3.449027776718196,50.99698257446289],[3.450838327407837,51.00016784667969],[3.451658964157161,51.004821777343864],[3.452330112457332,51.01750564575207],[3.445057392120418,51.02536010742193],[3.435009241104126,51.032367706298885],[3.439502477645874,51.03804016113292],[3.444549083709774,51.043231964111385],[3.446722745895499,51.04784011840832],[3.447038650512809,51.05143356323248],[3.445295572280997,51.05728912353527],[3.442203760147208,51.06017684936529],[3.436619520187321,51.06312561035162],[3.424633979797477,51.066650390625114],[3.414635419845581,51.0712623596192],[3.401599407196159,51.0766105651856],[3.379027128219718,51.08415985107433],[3.365215063095206,51.0911979675293],[3.361908912658748,51.09254455566411],[3.354609012603816,51.09391021728526],[3.341104030609245,51.09407424926758],[3.341007471084595,51.10090637207037],[3.346619367599544,51.10363006591808],[3.35968375206005,51.10864639282232],[3.368745088577271,51.114616394043026],[3.379059553146476,51.11843109130865],[3.390187025070247,51.126953125],[3.395617008209285,51.13319778442383],[3.398891925811824,51.13909149169933],[3.404642343521118,51.14805221557617],[3.406955480575618,51.15684127807617],[3.408618450164851,51.16123199462902],[3.404630899429378,51.16921615600586],[3.396519184112492,51.17944717407238],[3.38603854179388,51.1892547607423],[3.375759601593018,51.19785308837902],[3.385952949523926,51.204353332519645],[3.390052080154362,51.2091178894043],[3.391413450241089,51.211883544921875],[3.391578435897884,51.21510696411144],[3.390401840209961,51.217975616455185],[3.385424613952693,51.2213249206543],[3.38358736038208,51.22604751586914],[3.384623527526855,51.22925949096691],[3.388754844665584,51.23292541503912],[3.39943432807928,51.23830032348632],[3.402764797210693,51.24200820922863],[3.404037952423209,51.244625091552784],[3.40361309051525,51.248607635498104],[3.398437023162955,51.25441360473644],[3.392368078231812,51.25743865966796],[3.388452768325806,51.26164627075207],[3.387484312057552,51.26437377929693],[3.389363050460815,51.26802444458008],[3.391882658004761,51.26910400390625],[3.398949384689274,51.2701797485351],[3.406198024749756,51.26391220092779],[3.414113998413142,51.26354217529297],[3.423526048660221,51.260898590088004],[3.427510023117065,51.25605010986339],[3.430077075958309,51.25024032592784],[3.440856933593807,51.24597549438482],[3.456166028976497,51.244823455810604],[3.472290992736816,51.24559020996094],[3.505681991577205,51.24670028686529],[3.525037050247135,51.24884033203125],[3.516129970550594,51.28213882446289],[3.51396298408514,51.28893661499035],[3.526571035385189,51.29172897338873],[3.538702964782771,51.29042434692388],[3.543509006500301,51.293201446533196],[3.55243706703186,51.29200363159191],[3.555901050567627,51.29784393310541],[3.561028957367057,51.2983627319337],[3.573566913604736,51.29254913330078],[3.579180002212524,51.291778564453125],[3.58169603347784,51.29699707031255],[3.583389997482243,51.30203628540045],[3.591856956481934,51.3075942993164],[3.605448961258048,51.30337905883795],[3.620414018631095,51.29809951782238],[3.643162012100276,51.29162216186535],[3.666872024536132,51.292861938476676],[3.683489084243774,51.28731536865246],[3.693880081176871,51.283439636230526],[3.713711023330688,51.27448654174805],[3.725938081741446,51.2725944519043],[3.7349410057069,51.27412414550786],[3.74349403381342,51.273475646972656],[3.755398035049552,51.27392196655273],[3.761953115463314,51.270229339599716],[3.764750003814811,51.26506042480469],[3.770838975906486,51.26338577270519],[3.778034925460759,51.26444244384776],[3.799316883087158,51.25763320922863],[3.791049003601074,51.2462158203125],[3.789516925811824,51.2410659790039],[3.788707971572933,51.21524429321294],[3.808010101318302,51.20494461059576],[3.87630200386053,51.21354675292969],[3.884201049804801,51.2011451721192],[3.902096986770743,51.198947906494084],[3.924190998077449,51.210544586181754],[3.962486982345638,51.2160415649414],[3.999691963195914,51.241340637207145],[4.056982994079704,51.24804306030279],[4.10438394546503,51.26794052124035],[4.183481216430778,51.30553817749034],[4.217710018157959,51.33745193481445],[4.23164892196661,51.346614837646484],[4.23712778091425,51.35125732421875],[4.232576847076473,51.355682373046875]]]},"properties":{"ID_0":23,"ISO":"BE-VOV","NAME_0":"Belgium","ID_1":2,"NAME_1":"Vlaanderen","ID_2":4,"NAME_2":"Oost-Vlaanderen","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Flandres Oriental|Fiandra Orientale|Flandes Oriental|Flandre orientale|East Flanders|Ost Flandern"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.10510969161993,50.758533477783146],[5.105834007263297,50.753131866455135],[5.106197357177734,50.7447509765625],[5.108302593231315,50.73809814453125],[5.113169193267879,50.73161697387707],[5.115173816680908,50.72293090820324],[5.117445945739859,50.71783447265625],[5.105806827545279,50.711772918701286],[5.099183559417724,50.70936965942383],[5.092097282409725,50.7076873779298],[5.082873821258602,50.70748138427746],[5.075724601745662,50.70881271362304],[5.064538478851375,50.71358489990246],[5.061855316162223,50.71532821655279],[5.053294658660946,50.72243881225597],[5.05498027801525,50.7255516052246],[5.053678035736083,50.73149871826183],[5.052161216735897,50.734561920166016],[5.047698974609318,50.739940643310604],[5.039706707000732,50.74469375610357],[5.035048961639404,50.74598312377929],[5.025736331939697,50.74761199951172],[5.021385192871093,50.74995422363287],[5.01687574386591,50.753757476806754],[5.012925624847354,50.75926589965832],[5.009578227996826,50.761924743652344],[5.003680229187125,50.764533996582145],[4.998558044433651,50.7652206420899],[4.993411064147892,50.76504898071289],[4.980415344238281,50.76305770874035],[4.979208469390926,50.760498046875114],[4.97552680969244,50.75722122192383],[4.969390869140682,50.755298614501896],[4.955706596374512,50.75371551513672],[4.948094367980957,50.75164794921881],[4.938088893890438,50.74803543090831],[4.927473068237418,50.745876312255916],[4.914893150329704,50.74715805053711],[4.901350021362248,50.74710845947271],[4.895846843719596,50.746406555175895],[4.883149623870906,50.742980957031364],[4.874955654144344,50.74220657348638],[4.869906902313346,50.743003845214844],[4.864158630371207,50.74687194824219],[4.861736774444523,50.755481719970646],[4.859369754791373,50.758342742919865],[4.853955745697021,50.76092910766607],[4.841142177581844,50.76375579833996],[4.835648536682128,50.7660903930664],[4.829455852508659,50.77167129516613],[4.811083316803035,50.77828216552729],[4.807112216949463,50.78216934204113],[4.804755687713736,50.78908157348632],[4.793995857238769,50.7959938049317],[4.783741950988826,50.798316955566406],[4.767848491668815,50.80256271362316],[4.76027250289917,50.803123474121094],[4.752627372741756,50.80281829833989],[4.747405529022217,50.8018188476563],[4.738806724548397,50.79887390136713],[4.731377601623592,50.7971572875976],[4.722010612487793,50.79393768310547],[4.717753410339468,50.79086303710932],[4.70901441574108,50.78701019287121],[4.695964813232479,50.78709411621094],[4.682721138000602,50.787593841552734],[4.670207023620662,50.78954315185546],[4.653656005859374,50.790397644043026],[4.644430160522404,50.79135513305664],[4.641890525817928,50.78416824340826],[4.641470432281608,50.77949142456066],[4.642665863037053,50.77268218994146],[4.649514675140495,50.76000595092785],[4.650230407714844,50.75549316406255],[4.649428367614746,50.75231170654308],[4.647622585296745,50.75047302246094],[4.643256187439079,50.74915313720703],[4.636498451232853,50.748928070068416],[4.625986576080321,50.74949645996094],[4.614942073822135,50.74955368042003],[4.60916900634777,50.75039672851574],[4.6030592918396,50.75278091430675],[4.593039512634333,50.758533477783146],[4.583347320556584,50.75678253173828],[4.577959060668888,50.754119873046875],[4.57322359085083,50.748664855957145],[4.571495056152343,50.742385864257926],[4.551074504852295,50.74140167236334],[4.543877601623592,50.740390777588004],[4.537346839904785,50.73767852783203],[4.525667667388916,50.73090362548834],[4.518861293792838,50.72856140136719],[4.513241767883301,50.72798538208019],[4.501827716827336,50.72838211059582],[4.495254993438721,50.72942733764654],[4.491684913635368,50.73450469970709],[4.486939907073975,50.739681243896484],[4.484776496887206,50.746139526367244],[4.485112667083739,50.75324249267589],[4.474150180816707,50.75286102294933],[4.465657711029053,50.751804351806754],[4.460805416107291,50.74997711181646],[4.454031944274959,50.74592208862316],[4.447765827179012,50.74060821533209],[4.442982196807918,50.73791885375988],[4.434916973114014,50.729259490966854],[4.427441120147648,50.73216247558594],[4.4212903976441,50.73394393920898],[4.408713817596492,50.733856201171875],[4.401798725128231,50.7334098815918],[4.386927127838248,50.730792999267635],[4.377505779266357,50.72863769531261],[4.372883796691951,50.726303100585994],[4.37183141708374,50.72445678710949],[4.370806694030875,50.71719741821289],[4.368168830871696,50.71261978149413],[4.361153125762883,50.707607269287045],[4.353211402893179,50.71611022949219],[4.344246387481689,50.724086761474666],[4.341983318328857,50.72538375854492],[4.331549644470272,50.72922515869152],[4.331412315368766,50.725025177001946],[4.330114364624023,50.72098159790039],[4.327553272247428,50.71756362915039],[4.324934005737418,50.715625762939396],[4.316043853759822,50.712135314941406],[4.313173770904541,50.70775222778332],[4.303747177124137,50.6963996887207],[4.296099662780762,50.69619750976568],[4.284305572509766,50.69675827026367],[4.27754449844366,50.69792938232433],[4.272983074188232,50.6980857849121],[4.269011497497615,50.697330474853516],[4.264748573303166,50.69486618041992],[4.257224559783935,50.693557739257926],[4.244431018829289,50.692935943603516],[4.234911918640137,50.69150924682623],[4.227256298065186,50.69532775878906],[4.212384223938102,50.70107650756847],[4.205283641815299,50.703144073486385],[4.197759151458854,50.70420074462896],[4.180058479309139,50.70470428466797],[4.172605991363639,50.70609664916992],[4.164781570434684,50.70996093750011],[4.150462150573787,50.71960449218756],[4.144532680511475,50.719573974609375],[4.136658191680851,50.72115707397455],[4.125786781311092,50.72063064575195],[4.120630741119498,50.71947479248058],[4.113833904266471,50.71579742431646],[4.107629776000977,50.70991516113287],[4.09829044342041,50.70996093750011],[4.087227344513053,50.70893859863287],[4.079140663147086,50.70706558227539],[4.076900482177848,50.7051620483399],[4.06610536575323,50.69985961914073],[4.05841064453125,50.69717788696289],[4.044104099273625,50.695419311523494],[4.031211376190186,50.69221878051758],[4.026175498962459,50.69142150878912],[4.018486499786434,50.691055297851676],[3.998857736587581,50.69107055664073],[3.99121689796442,50.69064331054693],[3.98599720001215,50.689613342285156],[3.970531463623047,50.68425750732422],[3.965271711349488,50.68285369873058],[3.954535245895385,50.683494567871094],[3.943840265274048,50.68517684936529],[3.938312530517578,50.685470581054744],[3.917531728744507,50.6858520507813],[3.907498598098755,50.68703842163086],[3.904652118682861,50.69023132324224],[3.891222238540649,50.70253753662121],[3.883864641189518,50.70973968505865],[3.881517410278377,50.71303939819341],[3.880307197570914,50.71895599365229],[3.880507707595882,50.72628402709972],[3.881532430648747,50.73111724853527],[3.884006977081413,50.73691177368169],[3.892590045929068,50.73526763916021],[3.906505823135376,50.73405456542969],[3.915246486663761,50.73260116577143],[3.920488119125366,50.732402801513615],[3.927059412002677,50.73307418823248],[3.940354585647697,50.73553848266607],[3.948508262634277,50.737514495849716],[3.943493366241568,50.74139404296881],[3.933732271194458,50.744892120361385],[3.929718255996704,50.749275207519645],[3.928374052047843,50.75234222412103],[3.928164482116699,50.757003784179744],[3.929675102233829,50.76133728027344],[3.933359861373958,50.76609420776373],[3.939300298690796,50.77076721191412],[3.948070764541569,50.775386810302734],[3.955550193786621,50.77766036987305],[3.960383176803589,50.77833557128906],[3.965441703796444,50.77819824218756],[3.970697164535579,50.77659606933594],[3.97381401062006,50.77426910400385],[3.98045539855957,50.77186203002941],[3.984547853469849,50.77104568481451],[3.990963697433472,50.77113342285162],[4.005154132842961,50.77398300170893],[4.011229038238582,50.774566650390675],[4.019299030303955,50.773777008056754],[4.025604248046875,50.77409362792968],[4.045576095581055,50.77933883666992],[4.050070762634391,50.7848472595216],[4.060739994049186,50.79277038574213],[4.073676586151237,50.80380630493164],[4.080599784851074,50.812736511230526],[4.080935001373348,50.825820922851555],[4.078993320465201,50.83085632324224],[4.073387622833252,50.83289337158203],[4.063144683837947,50.83318328857433],[4.056893348693848,50.83452606201183],[4.054391860961857,50.83827972412115],[4.055192947387694,50.842555999755916],[4.058853626251221,50.84724807739258],[4.061762809753475,50.849906921386776],[4.07061672210699,50.856189727783146],[4.074045181274356,50.859119415283196],[4.078415393829403,50.867313385009766],[4.082449913024959,50.87328338623047],[4.090218067169246,50.88080215454096],[4.085982322692814,50.885520935058594],[4.081889152526799,50.892230987548935],[4.080770015716553,50.89691162109369],[4.080656051635742,50.90421676635753],[4.086257457733268,50.90524673461914],[4.092715263366813,50.90866470336914],[4.096945762634333,50.91412353515625],[4.097970008850154,50.91989898681646],[4.098210334777832,50.930057525634766],[4.100337982177791,50.93286514282221],[4.106604099273738,50.93447875976574],[4.11557054519659,50.93405532836914],[4.127593994140567,50.93045425415039],[4.14047479629528,50.92489242553711],[4.149717330932617,50.92016983032232],[4.152789592742919,50.92382431030279],[4.156063079834098,50.92974090576172],[4.160375595092773,50.935264587402344],[4.169786453247013,50.94295883178722],[4.167680740356559,50.94936370849604],[4.165952205658073,50.952678680420036],[4.162394046783504,50.95708847045893],[4.154804229736328,50.96347427368169],[4.152441978454646,50.96607208251959],[4.150999546051082,50.96940231323247],[4.149996280670223,50.974296569824325],[4.158428192138672,50.98222351074219],[4.165304660797176,50.989456176757805],[4.170099258422908,50.99526977539068],[4.178502559661979,50.99213027954113],[4.188358306884765,50.98960113525402],[4.193532466888484,50.988933563232536],[4.210656642913932,50.98761367797846],[4.225895881652945,50.99489593505871],[4.232768058776855,51.00117874145508],[4.237308979034424,51.00791549682623],[4.238165378570613,51.01258087158209],[4.238726615905762,51.02453231811529],[4.242400646209774,51.03449630737316],[4.243930816650447,51.0433235168457],[4.24867773056036,51.04213714599615],[4.253897666931152,51.04168319702154],[4.272442817688102,51.04518127441406],[4.278241157531737,51.04579544067383],[4.285531044006461,51.04591751098644],[4.292593002319335,51.045288085937614],[4.30253362655634,51.04311370849615],[4.31145715713501,51.039749145507926],[4.321650505065918,51.034000396728516],[4.34328222274786,51.03152465820324],[4.363585948944205,51.02767562866211],[4.371464729309025,51.02911376953124],[4.378576755523738,51.02935791015631],[4.384752750396785,51.02785491943365],[4.386933803558293,51.025039672851676],[4.387394428253174,51.021797180175895],[4.386740684509391,51.007350921630916],[4.398381233215332,51.005989074707145],[4.405846595764274,51.003730773925724],[4.414099216461295,51.000579833984425],[4.418742656707821,50.99977493286144],[4.424881458282471,51.000068664550895],[4.439062595367545,51.00221633911138],[4.447964668273926,51.00386810302746],[4.455388069152775,51.00415420532238],[4.4626784324646,51.00337219238281],[4.475311279296875,50.999786376953125],[4.481745719909725,50.9988632202149],[4.489727020263672,51.000057220458984],[4.492278575897273,51.002040863037166],[4.495145320892448,51.005817413330135],[4.497669219970816,51.01181030273443],[4.500732421875,51.016391754150504],[4.514202117919979,51.0150146484375],[4.519528865814323,51.014156341552734],[4.528186798095816,51.01134109497076],[4.533492565155086,51.00852966308594],[4.551182746887207,51.00477600097661],[4.563103199005241,51.0028915405274],[4.578203678131217,50.99840545654297],[4.585921764373836,50.99661254882824],[4.592682361602896,50.99661254882824],[4.601820468902531,50.99812698364258],[4.610688209533805,51.00738906860362],[4.618252277374324,51.01274871826171],[4.625666618347111,51.016113281250114],[4.633597850799617,51.01870727539068],[4.638265609741268,51.02391052246105],[4.64492130279541,51.02479171752941],[4.652591705322209,51.025154113769524],[4.664401531219539,51.025112152099666],[4.677803516387939,51.0246200561524],[4.685599327087516,51.02495574951172],[4.692750453949031,51.0244598388673],[4.697710990905875,51.0229606628418],[4.701743602752798,51.02060699462896],[4.705630779266413,51.01554107666027],[4.707288265228271,51.00265502929693],[4.717874050140381,51.00749588012695],[4.725505828857422,51.014617919921875],[4.729921817779541,51.0206184387207],[4.734666347503662,51.023300170898494],[4.739963054657039,51.0272827148438],[4.744027137756461,51.02912902832031],[4.753901481628418,51.03167343139642],[4.766013622284049,51.03528213500988],[4.770822525024414,51.039920806884766],[4.782798767089844,51.04388046264643],[4.795162200927791,51.039127349853516],[4.805189609527588,51.036708831787166],[4.8109774589538,51.03490066528332],[4.821960449218806,51.026073455810604],[4.829348564148063,51.018642425537216],[4.85106897354126,51.0183563232423],[4.860552310943547,51.0192985534668],[4.870729446411246,51.02258682250982],[4.879902362823486,51.025020599365234],[4.89150953292858,51.02965927124029],[4.896214008331413,51.031925201416016],[4.908148765564022,51.03871536254894],[4.913022518158073,51.040836334228516],[4.918544292450065,51.042060852050724],[4.930237770080566,51.043155670166016],[4.939480304718074,51.04490280151373],[4.945374965667838,51.04660415649414],[4.950301647186393,51.04724502563482],[4.957199573516788,51.0473747253418],[4.97057294845581,51.046470642089844],[4.983142375946102,51.044139862060604],[4.994604587554932,51.04140472412115],[4.999020099640006,51.03932571411133],[5.01378297805786,51.0351791381837],[5.022239208221435,51.0311164855957],[5.030416011810303,51.025836944580135],[5.045941352844237,51.024837493896484],[5.059502601623649,51.024665832519645],[5.067107677459717,51.024917602539055],[5.078582286834774,51.02720260620123],[5.085695743560848,51.02956008911144],[5.088820457458609,51.03119277954107],[5.090695381164664,51.03410339355469],[5.091146945953426,51.03741455078131],[5.09110593795782,51.04542160034179],[5.091957569122371,51.04854583740229],[5.096547126770075,51.05144119262701],[5.105188846588191,51.05206298828131],[5.122413158416748,51.05154418945324],[5.129860877990779,51.050769805908196],[5.136041641235465,51.04912948608404],[5.14860820770275,51.04145431518555],[5.156472206115723,51.035957336425724],[5.159650802612305,51.03295516967785],[5.166181564331112,51.0244598388673],[5.14924860000616,51.015998840332024],[5.144402980804443,51.014148712158196],[5.135479927063045,51.0117073059082],[5.129977226257267,51.00875854492193],[5.126358509063834,51.004798889160206],[5.125144481658992,50.99680328369151],[5.119160175323543,50.99598693847661],[5.108793258667049,50.99330520629894],[5.099818229675406,50.99031066894537],[5.088366985321045,50.98531341552739],[5.081507205963192,50.98340225219738],[5.077640056610107,50.980503082275504],[5.077085971832389,50.97744369506847],[5.078112602233887,50.974304199218864],[5.082726001739502,50.96910095214849],[5.084280014038086,50.96606063842768],[5.084508419036979,50.96277236938488],[5.082909584045467,50.958961486816406],[5.077712059021053,50.953987121582024],[5.062508106231689,50.94726943969732],[5.052103042602653,50.94455337524414],[5.050158023834229,50.93879699707037],[5.049398422241211,50.93117141723633],[5.054823398590088,50.92480087280285],[5.058685779571533,50.92193222045904],[5.065114021301383,50.919120788574276],[5.068372726440487,50.91852188110363],[5.078602313995304,50.91821289062506],[5.083992958068848,50.9129371643067],[5.088730812072697,50.90608978271484],[5.096708297729492,50.908695220947266],[5.10694789886486,50.91117095947277],[5.117744445800781,50.91218948364263],[5.129437446594352,50.91214370727539],[5.144743919372672,50.91128540039062],[5.157316684722957,50.90927886962902],[5.181466579437313,50.90855026245123],[5.189713001251164,50.907970428466854],[5.191988945007324,50.902225494384766],[5.192805290222225,50.89624404907221],[5.192530155181942,50.89030456542969],[5.190816879272518,50.88576126098627],[5.187740802764893,50.88277053833008],[5.182327747344971,50.87946319580084],[5.177734851837158,50.877468109130916],[5.16764068603527,50.874668121338004],[5.163393974304198,50.872325897216854],[5.158709049224854,50.86707305908209],[5.156763553619327,50.86115646362299],[5.156629085540885,50.85569000244152],[5.150712013244572,50.8451538085938],[5.144410610199031,50.836330413818466],[5.139229774475211,50.82438278198242],[5.138687610626278,50.820919036865234],[5.139581680297908,50.815177917480526],[5.141652584075985,50.8106079101563],[5.142440795898551,50.805835723876896],[5.142097473144645,50.80104827880865],[5.140206813812256,50.797134399414176],[5.136761188507194,50.79350662231445],[5.133152484893742,50.79191207885736],[5.120740890502929,50.78927230834961],[5.106708049774227,50.787342071533146],[5.113786697387695,50.77745056152349],[5.115010261535645,50.772171020507756],[5.113068580627498,50.767208099365284],[5.109626293182373,50.7629508972168],[5.10510969161993,50.758533477783146]],[[4.409863471984863,50.90990447998047],[4.399668216705379,50.91016769409173],[4.392726421356201,50.908329010009766],[4.389441013336238,50.90568923950201],[4.386989116668701,50.904918670654354],[4.375820159912223,50.8995246887207],[4.372054100036735,50.89813995361334],[4.367551326751823,50.89942932128906],[4.35874176025402,50.90055847167969],[4.342049598693847,50.90095520019531],[4.335988521575985,50.899810791015625],[4.323376655578727,50.89438247680664],[4.318715572357291,50.89363479614258],[4.313412189483643,50.89376831054693],[4.304419040680045,50.894775390625114],[4.302279472351131,50.88960266113287],[4.298538208007812,50.88824462890631],[4.299145221710262,50.885669708252],[4.304327964782829,50.880317687988224],[4.298773765564022,50.87794113159174],[4.291715145111084,50.87336349487298],[4.281398773193472,50.86608123779297],[4.279821872711295,50.862651824951286],[4.28102970123291,50.86017990112316],[4.284823417663516,50.85826873779302],[4.286975860595703,50.85549926757824],[4.285871028900203,50.85370254516613],[4.28579568862915,50.847034454345646],[4.283812046051139,50.842094421386776],[4.281164169311579,50.8398323059082],[4.276174068451041,50.839191436767685],[4.26992130279541,50.83740615844732],[4.261881828308219,50.837047576904354],[4.25678014755249,50.83584213256836],[4.25527286529541,50.83431243896496],[4.254514217376709,50.830875396728516],[4.25148534774786,50.82748413085932],[4.246231079101506,50.825004577636655],[4.243638038635254,50.821361541748104],[4.244327068328857,50.819755554199276],[4.250339984893856,50.81900787353521],[4.254380702972412,50.817588806152344],[4.257053375244141,50.81364059448253],[4.259866714477539,50.81290054321283],[4.266596317291203,50.81278610229498],[4.270914554596004,50.81179809570324],[4.274653434753475,50.80966949462896],[4.294890403747559,50.80799484252929],[4.298885822296086,50.80713653564453],[4.298927307128906,50.8037109375],[4.300967693328857,50.801437377929744],[4.308412075042725,50.80068969726568],[4.313343524932975,50.79682922363281],[4.320200443267765,50.790401458740234],[4.322649002075252,50.78912734985357],[4.323740482330379,50.78579330444347],[4.323226451873779,50.7816276550293],[4.321044921875,50.77606582641613],[4.334693431854305,50.775222778320256],[4.343227863311824,50.77518463134777],[4.34830904006958,50.774047851562614],[4.35862398147583,50.773490905761825],[4.367992401123161,50.77239990234375],[4.371043205261174,50.77133178710943],[4.372328758239746,50.76770401000976],[4.378083229064941,50.767379760742294],[4.390567302703971,50.77049636840832],[4.403519153594971,50.774047851562614],[4.4131054878236,50.77251052856445],[4.419411182403621,50.77408981323248],[4.428128242492676,50.77827835083013],[4.432633876800594,50.77976226806651],[4.444179534912108,50.78215789794922],[4.454495906829948,50.78291702270519],[4.454542636871451,50.78776168823242],[4.468224525451774,50.791538238525334],[4.471917629242,50.793884277343864],[4.471469879150447,50.796409606933594],[4.46480846405035,50.798908233642635],[4.457549571991024,50.802398681640675],[4.448098182678223,50.805908203125114],[4.44574594497692,50.80740737915039],[4.443684577941951,50.810771942138786],[4.443833827972411,50.81269073486334],[4.448300838470459,50.81738281249994],[4.456301689147892,50.819305419921875],[4.458478450775203,50.82339859008789],[4.459523200988826,50.829414367675774],[4.459332466125545,50.837879180908146],[4.457602500915527,50.84250640869151],[4.453137397766113,50.848007202148494],[4.44671106338501,50.852764129638615],[4.43998193740839,50.85678482055663],[4.43182992935192,50.8602752685548],[4.423851013183594,50.86118698120117],[4.423013210296631,50.86370468139654],[4.423589229583853,50.86847686767589],[4.425368785858268,50.872783660888615],[4.427641391754264,50.874492645263786],[4.435228347778377,50.87713623046875],[4.435351371765137,50.8798179626466],[4.42842340469366,50.888671875000114],[4.431397914886475,50.89186859130865],[4.431266784667969,50.89382171630871],[4.428552150726318,50.89598846435546],[4.428298950195369,50.900524139404354],[4.426921367645321,50.903301239013615],[4.42184686660778,50.90971374511719],[4.412505626678467,50.909236907958984],[4.409863471984863,50.90990447998047]]]},"properties":{"ID_0":23,"ISO":"BE-VBR","NAME_0":"Belgium","ID_1":2,"NAME_1":"Vlaanderen","ID_2":5,"NAME_2":"Vlaams Brabant","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Brabant Flamand|Brabante Flamenco|Brabante Flamengo|Flemish Brabant"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.398949384689274,51.2701797485351],[3.391882658004761,51.26910400390625],[3.389363050460815,51.26802444458008],[3.387484312057552,51.26437377929693],[3.388452768325806,51.26164627075207],[3.392368078231812,51.25743865966796],[3.398437023162955,51.25441360473644],[3.40361309051525,51.248607635498104],[3.404037952423209,51.244625091552784],[3.402764797210693,51.24200820922863],[3.39943432807928,51.23830032348632],[3.388754844665584,51.23292541503912],[3.384623527526855,51.22925949096691],[3.38358736038208,51.22604751586914],[3.385424613952693,51.2213249206543],[3.390401840209961,51.217975616455185],[3.391578435897884,51.21510696411144],[3.391413450241089,51.211883544921875],[3.390052080154362,51.2091178894043],[3.385952949523926,51.204353332519645],[3.375759601593018,51.19785308837902],[3.38603854179388,51.1892547607423],[3.396519184112492,51.17944717407238],[3.404630899429378,51.16921615600586],[3.408618450164851,51.16123199462902],[3.406955480575618,51.15684127807617],[3.404642343521118,51.14805221557617],[3.398891925811824,51.13909149169933],[3.395617008209285,51.13319778442383],[3.390187025070247,51.126953125],[3.379059553146476,51.11843109130865],[3.368745088577271,51.114616394043026],[3.35968375206005,51.10864639282232],[3.346619367599544,51.10363006591808],[3.341007471084595,51.10090637207037],[3.341104030609245,51.09407424926758],[3.354609012603816,51.09391021728526],[3.361908912658748,51.09254455566411],[3.365215063095206,51.0911979675293],[3.379027128219718,51.08415985107433],[3.401599407196159,51.0766105651856],[3.414635419845581,51.0712623596192],[3.424633979797477,51.066650390625114],[3.436619520187321,51.06312561035162],[3.442203760147208,51.06017684936529],[3.445295572280997,51.05728912353527],[3.447038650512809,51.05143356323248],[3.446722745895499,51.04784011840832],[3.444549083709774,51.043231964111385],[3.439502477645874,51.03804016113292],[3.435009241104126,51.032367706298885],[3.445057392120418,51.02536010742193],[3.452330112457332,51.01750564575207],[3.451658964157161,51.004821777343864],[3.450838327407837,51.00016784667969],[3.449027776718196,50.99698257446289],[3.443192958831787,50.99167251586913],[3.440877676010131,50.988868713378906],[3.44014549255371,50.98596954345714],[3.440944910049438,50.98246383666986],[3.446246862411555,50.97539138793957],[3.446926593780517,50.9710311889649],[3.445031881332454,50.966850280761776],[3.438136577606201,50.96086502075207],[3.436664342880249,50.95898437500006],[3.436186790466309,50.955001831054744],[3.439320564270133,50.950866699218864],[3.453221321106071,50.94085693359381],[3.446749210357723,50.93232345581055],[3.439898014068717,50.92705154418951],[3.431846380233821,50.92284393310558],[3.433364152908325,50.91697311401373],[3.431842088699398,50.91150665283209],[3.436298370361328,50.90534210205078],[3.441758155822754,50.90348052978521],[3.450150489807129,50.90407943725586],[3.4585058689118,50.90703582763671],[3.467059373855591,50.90847396850586],[3.474529743194523,50.908794403076286],[3.475665807724112,50.903381347656364],[3.478520870208854,50.896652221679744],[3.479180335998535,50.89069747924816],[3.478472709655819,50.88344955444347],[3.47539210319519,50.8762245178222],[3.471566438674927,50.87055587768555],[3.469055175781307,50.861461639404354],[3.481169700622502,50.85874176025402],[3.490841627120972,50.856884002685604],[3.495841026306266,50.85496520996093],[3.501014709472769,50.84888458251953],[3.504664421081657,50.84167861938487],[3.506824493408317,50.835189819335994],[3.509353160858154,50.82957839965826],[3.511961460113468,50.811382293701165],[3.516711711883545,50.81115722656255],[3.522930145263672,50.80874633789073],[3.528620004653931,50.80490112304693],[3.521427392959595,50.79765701293945],[3.51787972450262,50.795040130615284],[3.512284517288265,50.79213333129883],[3.500387907028198,50.787807464599666],[3.494108676910457,50.78480148315441],[3.479607105255127,50.775749206543075],[3.466958761215267,50.76655960083008],[3.460653781890812,50.76322555541998],[3.45584511756897,50.75935363769542],[3.453065156936646,50.75527954101568],[3.451753377914542,50.75111770629883],[3.422520160675049,50.74093246459972],[3.407669305801392,50.73357772827148],[3.401331424713192,50.73252868652344],[3.388000965118522,50.72742080688488],[3.383272886276302,50.72505569458013],[3.374774694442863,50.71945571899414],[3.36576318740839,50.711956024170036],[3.358429908752441,50.711948394775504],[3.351872682571411,50.71299743652355],[3.339621782302913,50.717689514160156],[3.331037044525203,50.72159957885742],[3.32637619972229,50.72328567504883],[3.319378852844181,50.726638793945305],[3.314960479736271,50.73846435546875],[3.310605287551994,50.745254516601676],[3.305145502090568,50.75217819213872],[3.301532506942863,50.755649566650504],[3.299050331115836,50.75678634643566],[3.294067382812614,50.75752639770519],[3.288691043853873,50.7574577331543],[3.276248216629142,50.755386352539],[3.267051458358821,50.754947662353516],[3.261599302291927,50.755409240722656],[3.235417604446468,50.75955200195324],[3.217006206512394,50.7599830627442],[3.209883928299007,50.75515365600586],[3.203958749771061,50.75261306762707],[3.196821451187134,50.75167846679693],[3.183972358703613,50.752162933349666],[3.181449413299561,50.751960754394474],[3.161602973938102,50.772262573242244],[3.147109031677303,50.78990554809576],[3.125772476196289,50.78777313232433],[3.112210750579834,50.79303359985363],[3.102701663971061,50.78094100952154],[3.090193510055599,50.77439117431646],[3.080667972564697,50.77286148071289],[3.058744907379264,50.780708312988395],[3.040682792663574,50.775566101074325],[3.036681413650513,50.77155685424805],[3.034640550613403,50.77537536621105],[3.022404909134025,50.78964233398443],[3.017090797424373,50.79483032226574],[3.013222694397029,50.80022811889654],[3.006856203079223,50.804584503173885],[2.998424530029354,50.802757263183594],[2.987828254699821,50.80121231079113],[2.979665517807007,50.799659729003906],[2.964593410492057,50.79898071289068],[2.953750133514404,50.79752349853527],[2.947418689727897,50.792739868164176],[2.943073034286556,50.78722381591808],[2.941703319549561,50.78378677368169],[2.940480709076041,50.7755584716798],[2.938666105270329,50.77214431762695],[2.93397068977356,50.76808547973633],[2.925010204315242,50.76249694824218],[2.918220281601066,50.76403045654297],[2.911999225616569,50.766254425048885],[2.905073881149405,50.76707839965831],[2.89196705818182,50.767024993896534],[2.883933067321891,50.76599884033209],[2.877074003219604,50.76219940185558],[2.871130466461182,50.76029586791992],[2.866974353790283,50.75715637207031],[2.85846567153942,50.75265502929693],[2.854761838913021,50.7501487731933],[2.852146625518913,50.747211456298885],[2.852480173110962,50.74223327636713],[2.856580257415771,50.73899459838873],[2.865291118621769,50.73514175415039],[2.869011163711548,50.732677459716854],[2.872096776962337,50.728641510009766],[2.872944116592407,50.72534561157221],[2.874473810196037,50.71072769165038],[2.872738361358756,50.70827484130853],[2.871256828308219,50.703144073486385],[2.870172977447623,50.70291519165044],[2.848567724227848,50.72175979614258],[2.813275337219295,50.71694946289068],[2.791224718093986,50.72752761840826],[2.78203272819519,50.7476921081543],[2.759502649307307,50.76252746582036],[2.760956048965511,50.76926040649414],[2.754308223724479,50.774604797363395],[2.738555908203181,50.780590057373104],[2.725020170211906,50.79572677612299],[2.723564863204899,50.80950164794933],[2.7198264598847,50.81205368041998],[2.682146310806274,50.81392669677746],[2.670175313949528,50.82103729248047],[2.662318468093872,50.81628799438487],[2.654068708419857,50.81325149536144],[2.634982824325562,50.8127555847168],[2.624824285507259,50.836063385009815],[2.616994857788142,50.84089279174815],[2.614633083343506,50.8476676940918],[2.599112749099731,50.849815368652344],[2.599248647689876,50.85335159301757],[2.611419916153011,50.86359786987316],[2.607325077056942,50.872592926025334],[2.608896017074699,50.896289825439446],[2.604734420776367,50.90641021728526],[2.606653213501033,50.91270065307617],[2.592096567153931,50.91594696044933],[2.590013027191105,50.919097900390625],[2.609007120132446,50.931026458740234],[2.630090236663818,50.94580841064453],[2.629709243774471,50.94933319091808],[2.606478214263916,50.98890686035156],[2.597444534301815,50.99246978759759],[2.579993009567318,51.00296401977545],[2.570643901824951,51.04454803466791],[2.569693803787175,51.0455055236817],[2.555355548858756,51.09192276000988],[2.579165935516471,51.09986114501947],[2.592499017715511,51.10458374023449],[2.60805606842041,51.111251831054794],[2.620276927948112,51.11569595336919],[2.621944904327336,51.11680603027355],[2.631387948989868,51.12014007568359],[2.634721994400081,51.12208175659174],[2.643610954284668,51.12597274780279],[2.650832891464347,51.12791824340825],[2.654721975326594,51.129581451416016],[2.676944971084651,51.135139465331974],[2.69750094413763,51.14152908325189],[2.703054904937687,51.144306182861385],[2.715833902359009,51.1495819091798],[2.725832939148006,51.15430450439459],[2.741388082504272,51.15819549560558],[2.748610973358268,51.1609725952149],[2.75583291053772,51.164306640625114],[2.764166116714591,51.16708374023443],[2.766943931579647,51.16875076293957],[2.775832891464233,51.17208480834961],[2.788048982620296,51.17709350585948],[2.805833101272697,51.184860229492244],[2.814721107482967,51.188194274902344],[2.817467927932853,51.18993377685547],[2.833611011505127,51.196804046630966],[2.834722995758056,51.196804046630966],[2.842499971389714,51.2006950378418],[2.850833892822322,51.20430374145507],[2.895833969116211,51.22486114501958],[2.903609991073608,51.22708511352545],[2.910832881927547,51.23125076293951],[2.910832881927547,51.23236083984386],[2.915277004241943,51.23458480834972],[2.924165964126587,51.237915039062614],[2.929166078567618,51.23764038085943],[2.936388969421387,51.240970611572266],[2.948611974716243,51.2451400756837],[2.957499980926571,51.24902725219732],[2.975276947021484,51.25569534301763],[2.976943969726562,51.25680541992199],[2.991945028304996,51.26291656494152],[2.99305510520935,51.26291656494152],[3.004722118377742,51.2684707641601],[3.007499933242798,51.26902770996105],[3.011944055557194,51.27152633666998],[3.017501115799064,51.273750305175895],[3.024167060852051,51.27541732788097],[3.025276899337882,51.27680587768555],[3.031944036483878,51.279861450195426],[3.034722089767513,51.28041839599614],[3.043054103851318,51.28374862670904],[3.045279026031494,51.28569412231457],[3.049722909927368,51.28680419921875],[3.058612108230705,51.29124832153332],[3.061944007873649,51.29208374023449],[3.064166069030762,51.294582366943416],[3.066943883895988,51.29486083984381],[3.073055028915348,51.29791641235363],[3.075277090072689,51.30125045776373],[3.084167957306022,51.30430603027355],[3.087500095367488,51.30430603027355],[3.10027909278881,51.30902862548834],[3.103610992431754,51.3095817565918],[3.108055114746207,51.311527252197266],[3.112499952316341,51.31208419799805],[3.113611936569328,51.3131942749024],[3.121387958526668,51.31541824340826],[3.128055095672664,51.316806793213004],[3.148610115051383,51.32208251953125],[3.154722929000968,51.322917938232365],[3.165277957916373,51.32624816894542],[3.173055887222347,51.32736206054699],[3.175832033157349,51.32875061035156],[3.181945085525626,51.33041763305664],[3.179723024368343,51.3345832824707],[3.175834894180412,51.33680725097656],[3.174165964126701,51.34152603149419],[3.169166088104305,51.34736251831055],[3.168056011199951,51.351806640625114],[3.169722080230827,51.35430526733404],[3.178054094314632,51.35319519042969],[3.179723024368343,51.35541534423839],[3.183054924011287,51.35708236694336],[3.185832977294865,51.35541534423839],[3.184166908264217,51.35319519042969],[3.176944971084595,51.349861145019645],[3.17527794837963,51.344581604003906],[3.180279016494807,51.343750000000114],[3.184722900390682,51.34736251831055],[3.192500114440918,51.34736251831055],[3.195833921432609,51.34930419921886],[3.201387882232666,51.34902954101568],[3.201387882232666,51.34569549560558],[3.196388006210327,51.344581604003906],[3.191943883895874,51.340694427490234],[3.194721937179679,51.340694427490234],[3.195833921432609,51.335140228271484],[3.193591117859,51.33402633666992],[3.194721937179679,51.329860687255916],[3.19861006736761,51.331806182861385],[3.196388006210327,51.33319473266613],[3.199166059494075,51.335140228271484],[3.199166059494075,51.33847045898432],[3.201944112777653,51.33902740478527],[3.20305705070507,51.34180450439459],[3.206388950348014,51.341251373291016],[3.211361885070914,51.33819580078131],[3.211945056915397,51.340972900390625],[3.216389894485587,51.34208297729498],[3.219722032547054,51.34013748168945],[3.223056077957096,51.34180450439459],[3.222500085830802,51.34486007690424],[3.224165916442928,51.34791564941412],[3.220834016799984,51.34902954101568],[3.215276956558341,51.35652923583996],[3.222500085830802,51.357639312744084],[3.225833892822379,51.35680389404296],[3.227499961853027,51.34930419921886],[3.226387977600041,51.3484725952149],[3.226387977600041,51.34236145019537],[3.228055953979492,51.34013748168945],[3.241389036178645,51.34236145019537],[3.248611927032471,51.34208297729498],[3.260278940200805,51.34597396850597],[3.26694488525402,51.34597396850597],[3.281388044357357,51.35041809082037],[3.286945104599055,51.35374832153325],[3.303056001663265,51.35680389404296],[3.314167022705192,51.35958480834961],[3.324721097946167,51.360137939453175],[3.329721927642822,51.36180496215831],[3.343055009841976,51.36513900756836],[3.355278015136832,51.366249084472706],[3.360781908035278,51.36763763427745],[3.368916034698486,51.36155319213873],[3.372791051864681,51.35726547241211],[3.37323093414318,51.35308074951177],[3.371982097625789,51.34898757934576],[3.376354932784977,51.345623016357365],[3.382611036300773,51.34207916259777],[3.386715888977051,51.33610153198242],[3.386981010437125,51.33063125610357],[3.376956939697209,51.32466125488287],[3.371838092804012,51.31604003906255],[3.376775026321468,51.29185104370117],[3.384325027465934,51.288509368896534],[3.382940053939876,51.28329849243164],[3.382550001144466,51.27726745605468],[3.394272089004459,51.27461624145519],[3.398949384689274,51.2701797485351]]],[[[3.365832090377807,51.366546630859375],[3.369369983673096,51.367084503173885],[3.37319207191473,51.36449050903332],[3.374182939529533,51.360084533691406],[3.365832090377807,51.366546630859375]]]]},"properties":{"ID_0":23,"ISO":"BE-VWV","NAME_0":"Belgium","ID_1":2,"NAME_1":"Vlaanderen","ID_2":6,"NAME_2":"West-Vlaanderen","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Fiandra Occidentale|Flandes Occidental|Flandre occidentale|Flandres Ocidental|West Flandern|West Flanders"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.025736331939697,50.74761199951172],[5.022274971008301,50.740852355957145],[5.016911983490047,50.73458099365246],[5.015263557434081,50.731510162353516],[5.014392375946102,50.72587966918957],[5.014756202697754,50.7171249389649],[5.017655372619685,50.71224212646495],[5.019616603851318,50.699180603027344],[5.017429828643799,50.69243240356451],[5.014098644256649,50.68478775024413],[5.01349925994873,50.679988861083984],[5.013099670410213,50.66648864746105],[5.01200628280651,50.66176605224609],[5.001780509948843,50.64884185791021],[4.997304916381836,50.64536666870123],[4.990897178649901,50.641307830810604],[4.975744724273738,50.64482879638672],[4.971055507659969,50.64504241943365],[4.966705799102897,50.64415740966808],[4.963919162750301,50.64240264892584],[4.955821514129696,50.635490417480526],[4.948588371276799,50.6261558532716],[4.941232204437256,50.625701904296875],[4.914490699768123,50.621200561523494],[4.909219264984131,50.619411468505916],[4.904648303985653,50.61585235595709],[4.899568557739257,50.61273193359375],[4.895470142364502,50.610988616943416],[4.88788461685192,50.60875701904297],[4.867044925689697,50.60577392578131],[4.858005046844539,50.60569381713873],[4.848811149597282,50.60637283325195],[4.834124565124625,50.6050758361817],[4.823665618896598,50.603435516357536],[4.816554546356201,50.603176116943416],[4.797270774841309,50.60321044921875],[4.790669918060303,50.60276794433605],[4.779115200042725,50.6004257202149],[4.772855758666992,50.59829711914068],[4.762670040130672,50.59263610839855],[4.756371021270751,50.59053421020507],[4.748872756958008,50.59134674072277],[4.743273258209229,50.596889495849666],[4.734898567199764,50.60874557495123],[4.723093986511344,50.60494613647472],[4.719387531280574,50.6027221679688],[4.713971138000602,50.59809875488281],[4.710159778595084,50.595699310302734],[4.705554485321045,50.59389114379894],[4.69688892364502,50.593303680420036],[4.691704750061092,50.59421539306635],[4.675240039825552,50.5999488830567],[4.670643329620361,50.600440979003956],[4.665044307708797,50.600017547607536],[4.6626815795899,50.59701919555664],[4.662203311920166,50.593120574951286],[4.66374063491827,50.59029006958019],[4.668494701385555,50.58523559570324],[4.672712326049805,50.57941055297863],[4.676993370056209,50.56889343261719],[4.676634788513297,50.566009521484375],[4.672809123992977,50.563148498535156],[4.661992073059082,50.56091308593756],[4.656463146209774,50.560424804687614],[4.646832466125601,50.56032943725597],[4.635144710540884,50.56060409545898],[4.618077278137321,50.56226730346674],[4.618427753448486,50.564117431640625],[4.615025520324821,50.565616607666065],[4.611181735992432,50.56536102294933],[4.604893207550106,50.56188964843756],[4.595211029052734,50.55885314941412],[4.579463481903076,50.5513076782226],[4.581291675567627,50.54666900634777],[4.582718372345028,50.53672409057617],[4.566174507141227,50.536285400390625],[4.558616161346492,50.53558349609381],[4.545535087585563,50.533039093017685],[4.534244537353572,50.5304222106933],[4.522701263427678,50.526775360107536],[4.511967182159423,50.52590942382824],[4.506868362426758,50.530094146728516],[4.50313854217535,50.53435897827154],[4.499301910400391,50.53580093383789],[4.493356704711971,50.53551864624035],[4.485811710357666,50.5327262878418],[4.478561878204403,50.53209304809581],[4.474122524261475,50.53455734252941],[4.471581459045467,50.541225433349666],[4.46662425994873,50.54824829101557],[4.45870399475109,50.551914215088004],[4.450217723846435,50.554676055908196],[4.446880340576229,50.556949615478516],[4.441715240478572,50.558639526367244],[4.428278923034668,50.56074523925787],[4.421924114227295,50.56089782714844],[4.407921314239502,50.559181213378906],[4.389196395874137,50.55881500244146],[4.376518249511718,50.558197021484375],[4.357034206390381,50.55430603027355],[4.344854831695669,50.55411911010742],[4.338714122772274,50.56009292602545],[4.332463741302603,50.563663482666016],[4.317730426788444,50.56782913208008],[4.312020301818961,50.570316314697266],[4.30535984039318,50.57450485229492],[4.298953533172664,50.57995986938488],[4.29202842712408,50.58372879028326],[4.286014556884766,50.58804321289068],[4.283419132232666,50.58895874023443],[4.273616313934383,50.5909805297851],[4.264305591583252,50.59231567382807],[4.259270668029785,50.59457778930669],[4.258206367492676,50.59647369384777],[4.257777214050292,50.601802825927734],[4.258456707000732,50.60860061645519],[4.260599613189754,50.61453247070318],[4.253330230713004,50.61493301391601],[4.244671344757194,50.61623764038097],[4.231972694396973,50.617485046386655],[4.214859485626164,50.62257766723633],[4.211529254913273,50.62463760375971],[4.210022449493464,50.630069732666065],[4.210705757141113,50.63478088378912],[4.213285446167049,50.640407562255916],[4.213986873626823,50.64475250244152],[4.211369514465389,50.65013885498047],[4.201424598693791,50.659351348876896],[4.194995880127067,50.65840530395502],[4.18119573593151,50.657829284668026],[4.165170669555778,50.64737701416027],[4.160418033599854,50.64365768432628],[4.155512809753361,50.63713073730463],[4.153220653534049,50.631072998046875],[4.150781631469727,50.6286735534668],[4.145913124084586,50.62672042846691],[4.140733718872127,50.62547683715825],[4.135118007660026,50.62503433227539],[4.127446651458739,50.62517166137707],[4.121836662292537,50.62588882446295],[4.114275932312125,50.62817382812494],[4.110434055328483,50.6299934387207],[4.106410980224666,50.63320541381847],[4.098176002502498,50.64325714111328],[4.090909957885856,50.65326690673834],[4.08927583694458,50.657840728759766],[4.088926315307674,50.665004730224666],[4.091412544250601,50.66720962524413],[4.095609188079834,50.67262268066406],[4.096410274505615,50.67745971679693],[4.094264984130973,50.682846069335994],[4.093515396118164,50.690853118896484],[4.094167232513485,50.69377517700201],[4.098494529724178,50.700359344482365],[4.107629776000977,50.70991516113287],[4.113833904266471,50.71579742431646],[4.120630741119498,50.71947479248058],[4.125786781311092,50.72063064575195],[4.136658191680851,50.72115707397455],[4.144532680511475,50.719573974609375],[4.150462150573787,50.71960449218756],[4.164781570434684,50.70996093750011],[4.172605991363639,50.70609664916992],[4.180058479309139,50.70470428466797],[4.197759151458854,50.70420074462896],[4.205283641815299,50.703144073486385],[4.212384223938102,50.70107650756847],[4.227256298065186,50.69532775878906],[4.234911918640137,50.69150924682623],[4.244431018829289,50.692935943603516],[4.257224559783935,50.693557739257926],[4.264748573303166,50.69486618041992],[4.269011497497615,50.697330474853516],[4.272983074188232,50.6980857849121],[4.27754449844366,50.69792938232433],[4.284305572509766,50.69675827026367],[4.296099662780762,50.69619750976568],[4.303747177124137,50.6963996887207],[4.313173770904541,50.70775222778332],[4.316043853759822,50.712135314941406],[4.324934005737418,50.715625762939396],[4.327553272247428,50.71756362915039],[4.330114364624023,50.72098159790039],[4.331412315368766,50.725025177001946],[4.331549644470272,50.72922515869152],[4.341983318328857,50.72538375854492],[4.344246387481689,50.724086761474666],[4.353211402893179,50.71611022949219],[4.361153125762883,50.707607269287045],[4.368168830871696,50.71261978149413],[4.370806694030875,50.71719741821289],[4.37183141708374,50.72445678710949],[4.372883796691951,50.726303100585994],[4.377505779266357,50.72863769531261],[4.386927127838248,50.730792999267635],[4.401798725128231,50.7334098815918],[4.408713817596492,50.733856201171875],[4.4212903976441,50.73394393920898],[4.427441120147648,50.73216247558594],[4.434916973114014,50.729259490966854],[4.442982196807918,50.73791885375988],[4.447765827179012,50.74060821533209],[4.454031944274959,50.74592208862316],[4.460805416107291,50.74997711181646],[4.465657711029053,50.751804351806754],[4.474150180816707,50.75286102294933],[4.485112667083739,50.75324249267589],[4.484776496887206,50.746139526367244],[4.486939907073975,50.739681243896484],[4.491684913635368,50.73450469970709],[4.495254993438721,50.72942733764654],[4.501827716827336,50.72838211059582],[4.513241767883301,50.72798538208019],[4.518861293792838,50.72856140136719],[4.525667667388916,50.73090362548834],[4.537346839904785,50.73767852783203],[4.543877601623592,50.740390777588004],[4.551074504852295,50.74140167236334],[4.571495056152343,50.742385864257926],[4.57322359085083,50.748664855957145],[4.577959060668888,50.754119873046875],[4.583347320556584,50.75678253173828],[4.593039512634333,50.758533477783146],[4.6030592918396,50.75278091430675],[4.60916900634777,50.75039672851574],[4.614942073822135,50.74955368042003],[4.625986576080321,50.74949645996094],[4.636498451232853,50.748928070068416],[4.643256187439079,50.74915313720703],[4.647622585296745,50.75047302246094],[4.649428367614746,50.75231170654308],[4.650230407714844,50.75549316406255],[4.649514675140495,50.76000595092785],[4.642665863037053,50.77268218994146],[4.641470432281608,50.77949142456066],[4.641890525817928,50.78416824340826],[4.644430160522404,50.79135513305664],[4.653656005859374,50.790397644043026],[4.670207023620662,50.78954315185546],[4.682721138000602,50.787593841552734],[4.695964813232479,50.78709411621094],[4.70901441574108,50.78701019287121],[4.717753410339468,50.79086303710932],[4.722010612487793,50.79393768310547],[4.731377601623592,50.7971572875976],[4.738806724548397,50.79887390136713],[4.747405529022217,50.8018188476563],[4.752627372741756,50.80281829833989],[4.76027250289917,50.803123474121094],[4.767848491668815,50.80256271362316],[4.783741950988826,50.798316955566406],[4.793995857238769,50.7959938049317],[4.804755687713736,50.78908157348632],[4.807112216949463,50.78216934204113],[4.811083316803035,50.77828216552729],[4.829455852508659,50.77167129516613],[4.835648536682128,50.7660903930664],[4.841142177581844,50.76375579833996],[4.853955745697021,50.76092910766607],[4.859369754791373,50.758342742919865],[4.861736774444523,50.755481719970646],[4.864158630371207,50.74687194824219],[4.869906902313346,50.743003845214844],[4.874955654144344,50.74220657348638],[4.883149623870906,50.742980957031364],[4.895846843719596,50.746406555175895],[4.901350021362248,50.74710845947271],[4.914893150329704,50.74715805053711],[4.927473068237418,50.745876312255916],[4.938088893890438,50.74803543090831],[4.948094367980957,50.75164794921881],[4.955706596374512,50.75371551513672],[4.969390869140682,50.755298614501896],[4.97552680969244,50.75722122192383],[4.979208469390926,50.760498046875114],[4.980415344238281,50.76305770874035],[4.993411064147892,50.76504898071289],[4.998558044433651,50.7652206420899],[5.003680229187125,50.764533996582145],[5.009578227996826,50.761924743652344],[5.012925624847354,50.75926589965832],[5.01687574386591,50.753757476806754],[5.021385192871093,50.74995422363287],[5.025736331939697,50.74761199951172]]]},"properties":{"ID_0":23,"ISO":"BE-WBR","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":7,"NAME_2":"Brabant Wallon","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Waals Brabant|Walloon Brabant"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.884006977081413,50.73691177368169],[3.881532430648747,50.73111724853527],[3.880507707595882,50.72628402709972],[3.880307197570914,50.71895599365229],[3.881517410278377,50.71303939819341],[3.883864641189518,50.70973968505865],[3.891222238540649,50.70253753662121],[3.904652118682861,50.69023132324224],[3.907498598098755,50.68703842163086],[3.917531728744507,50.6858520507813],[3.938312530517578,50.685470581054744],[3.943840265274048,50.68517684936529],[3.954535245895385,50.683494567871094],[3.965271711349488,50.68285369873058],[3.970531463623047,50.68425750732422],[3.98599720001215,50.689613342285156],[3.99121689796442,50.69064331054693],[3.998857736587581,50.69107055664073],[4.018486499786434,50.691055297851676],[4.026175498962459,50.69142150878912],[4.031211376190186,50.69221878051758],[4.044104099273625,50.695419311523494],[4.05841064453125,50.69717788696289],[4.06610536575323,50.69985961914073],[4.076900482177848,50.7051620483399],[4.079140663147086,50.70706558227539],[4.087227344513053,50.70893859863287],[4.09829044342041,50.70996093750011],[4.107629776000977,50.70991516113287],[4.098494529724178,50.700359344482365],[4.094167232513485,50.69377517700201],[4.093515396118164,50.690853118896484],[4.094264984130973,50.682846069335994],[4.096410274505615,50.67745971679693],[4.095609188079834,50.67262268066406],[4.091412544250601,50.66720962524413],[4.088926315307674,50.665004730224666],[4.08927583694458,50.657840728759766],[4.090909957885856,50.65326690673834],[4.098176002502498,50.64325714111328],[4.106410980224666,50.63320541381847],[4.110434055328483,50.6299934387207],[4.114275932312125,50.62817382812494],[4.121836662292537,50.62588882446295],[4.127446651458739,50.62517166137707],[4.135118007660026,50.62503433227539],[4.140733718872127,50.62547683715825],[4.145913124084586,50.62672042846691],[4.150781631469727,50.6286735534668],[4.153220653534049,50.631072998046875],[4.155512809753361,50.63713073730463],[4.160418033599854,50.64365768432628],[4.165170669555778,50.64737701416027],[4.18119573593151,50.657829284668026],[4.194995880127067,50.65840530395502],[4.201424598693791,50.659351348876896],[4.211369514465389,50.65013885498047],[4.213986873626823,50.64475250244152],[4.213285446167049,50.640407562255916],[4.210705757141113,50.63478088378912],[4.210022449493464,50.630069732666065],[4.211529254913273,50.62463760375971],[4.214859485626164,50.62257766723633],[4.231972694396973,50.617485046386655],[4.244671344757194,50.61623764038097],[4.253330230713004,50.61493301391601],[4.260599613189754,50.61453247070318],[4.258456707000732,50.60860061645519],[4.257777214050292,50.601802825927734],[4.258206367492676,50.59647369384777],[4.259270668029785,50.59457778930669],[4.264305591583252,50.59231567382807],[4.273616313934383,50.5909805297851],[4.283419132232666,50.58895874023443],[4.286014556884766,50.58804321289068],[4.29202842712408,50.58372879028326],[4.298953533172664,50.57995986938488],[4.30535984039318,50.57450485229492],[4.312020301818961,50.570316314697266],[4.317730426788444,50.56782913208008],[4.332463741302603,50.563663482666016],[4.338714122772274,50.56009292602545],[4.344854831695669,50.55411911010742],[4.357034206390381,50.55430603027355],[4.376518249511718,50.558197021484375],[4.389196395874137,50.55881500244146],[4.407921314239502,50.559181213378906],[4.421924114227295,50.56089782714844],[4.428278923034668,50.56074523925787],[4.441715240478572,50.558639526367244],[4.446880340576229,50.556949615478516],[4.450217723846435,50.554676055908196],[4.45870399475109,50.551914215088004],[4.46662425994873,50.54824829101557],[4.471581459045467,50.541225433349666],[4.474122524261475,50.53455734252941],[4.478561878204403,50.53209304809581],[4.485811710357666,50.5327262878418],[4.493356704711971,50.53551864624035],[4.499301910400391,50.53580093383789],[4.50313854217535,50.53435897827154],[4.506868362426758,50.530094146728516],[4.511967182159423,50.52590942382824],[4.522701263427678,50.526775360107536],[4.534244537353572,50.5304222106933],[4.545535087585563,50.533039093017685],[4.558616161346492,50.53558349609381],[4.566174507141227,50.536285400390625],[4.582718372345028,50.53672409057617],[4.578056335449332,50.531257629394645],[4.570760726928824,50.52461624145513],[4.564922809600944,50.517322540283196],[4.561088562011832,50.510074615478516],[4.560025691986027,50.50659561157226],[4.559164047241325,50.4946174621582],[4.560823917388973,50.48932266235357],[4.563318252563477,50.4877662658692],[4.569901943206787,50.4868736267091],[4.57793569564825,50.4879035949707],[4.584355831146297,50.49145889282238],[4.588681221008414,50.49188613891596],[4.594860076904297,50.49040985107433],[4.598659515380859,50.48805618286144],[4.602882862091064,50.4828262329101],[4.601460933685303,50.47496795654308],[4.597136020660457,50.46677398681652],[4.59100675582897,50.457923889160206],[4.587961196899471,50.447505950927734],[4.588118553161678,50.440975189208984],[4.584446430206299,50.43452835083008],[4.609135627746582,50.432071685791065],[4.613696575164852,50.430828094482536],[4.617339134216422,50.42851638793957],[4.618886470794735,50.42646026611334],[4.619794368743952,50.421844482421875],[4.618285655975342,50.4146957397462],[4.609344482421989,50.39909362792963],[4.604897975921745,50.394111633300895],[4.603271007537899,50.39128112792963],[4.603039264679012,50.38831329345709],[4.604900836944637,50.38293075561535],[4.605379104614371,50.37836074829113],[4.604414939880371,50.37377548217785],[4.597908973693961,50.36178207397472],[4.596727371215877,50.35315322875982],[4.597183227539006,50.34453582763683],[4.600512504577637,50.33530044555658],[4.600812911987305,50.329292297363224],[4.5995774269104,50.324565887451286],[4.595333576202393,50.317977905273544],[4.575077533721923,50.31703186035167],[4.561775684356803,50.31449127197271],[4.553505420684871,50.31257247924816],[4.540560245513916,50.310272216796875],[4.535837173461914,50.31018829345714],[4.524686336517447,50.3110084533692],[4.518175125122127,50.31887054443364],[4.510960578918457,50.3232192993164],[4.504807949066105,50.325122833252],[4.500091075897274,50.32588577270513],[4.4931321144104,50.32608032226562],[4.485584735870474,50.32569885253906],[4.4830002784729,50.31981277465832],[4.477860927581901,50.31339263916021],[4.475190162658691,50.30727386474614],[4.470005035400504,50.30313873291027],[4.465182304382381,50.30199432373058],[4.460053920745906,50.301925659179744],[4.449708461761475,50.303726196289006],[4.437129974365291,50.305274963378906],[4.430087089538631,50.30675888061529],[4.421182632446231,50.30746078491211],[4.416154384613037,50.30694961547857],[4.411571502685604,50.304355621338004],[4.405935287475642,50.293903350830014],[4.402159214019775,50.29049682617193],[4.398056983947868,50.28877639770508],[4.383900165557975,50.285041809081974],[4.376698493957576,50.28261947631847],[4.370102882385254,50.277580261230575],[4.362391948699951,50.27368927001959],[4.357057571411246,50.2725181579591],[4.346035957336483,50.27172851562499],[4.340666770935059,50.270889282226676],[4.336028575897274,50.26922607421875],[4.329781532287711,50.26607894897461],[4.319901466369629,50.262176513671875],[4.309113502502498,50.25743865966797],[4.304174423217773,50.25156402587896],[4.304061412811392,50.24752426147472],[4.307253837585506,50.24347305297857],[4.311021327972355,50.240852355957024],[4.318380355835018,50.23719787597656],[4.341716289520377,50.229736328125],[4.345670700073299,50.22918701171875],[4.351780891418571,50.22957611083984],[4.357593536377009,50.23203659057623],[4.3608660697937,50.2346420288087],[4.364596366882324,50.24002075195307],[4.370472431182861,50.243671417236385],[4.375470161437931,50.24444198608404],[4.384006977081299,50.243316650390625],[4.39186620712286,50.240074157714844],[4.410700798034782,50.23302078247082],[4.409997463226432,50.222316741943416],[4.4070019721986,50.21436309814458],[4.405948162078914,50.204803466796875],[4.406074523925781,50.18765258789068],[4.404869556427001,50.18177032470709],[4.402405738830679,50.178672790527344],[4.398855209350643,50.17614364624029],[4.390590190887565,50.172328948974666],[4.38631534576416,50.16932296752941],[4.378743171691895,50.1654167175293],[4.376250743865967,50.162532806396484],[4.375375270843563,50.159122467041016],[4.375771045684871,50.155643463134766],[4.377694606781063,50.152374267578175],[4.381018638610954,50.14970779418939],[4.389312744140624,50.14542007446295],[4.391487121582088,50.143589019775504],[4.395810604095459,50.136337280273494],[4.402402400970515,50.123310089111385],[4.405216693878231,50.11898803710943],[4.403716564178467,50.11230850219737],[4.398709774017334,50.104042053222656],[4.400582313537597,50.09574508666992],[4.400547504424992,50.075740814208984],[4.401334762573299,50.0696754455567],[4.405756473541317,50.06025314331049],[4.409865856170711,50.053115844726555],[4.416442871093807,50.04484176635742],[4.421065330505485,50.03277587890631],[4.422223091125488,50.01876831054682],[4.42480373382574,50.01198959350597],[4.425655841827449,50.00249862670898],[4.425337314605827,49.98793411254894],[4.4261536598205,49.98204421997081],[4.428246974945124,49.97840118408203],[4.431720256805477,49.97441864013677],[4.436538219451904,49.97109222412104],[4.444722175598145,49.9670791625976],[4.449770927429313,49.96104431152344],[4.450994491577262,49.955272674560604],[4.450855731964225,49.93864822387701],[4.445803642272892,49.93716812133795],[4.41921043395996,49.94644546508789],[4.399174213409537,49.948402404785156],[4.388480186462516,49.94886398315424],[4.380828857421989,49.95372009277355],[4.349362373352051,49.952232360839844],[4.335185050964298,49.9627456665039],[4.319253921508846,49.96438980102545],[4.310615062713623,49.968570709228516],[4.290488719940242,49.964157104492244],[4.258202075958252,49.96399307250976],[4.233068466186523,49.95782470703131],[4.197356224060172,49.954486846923885],[4.195446491241569,49.96744918823248],[4.173917293548698,49.976039886474666],[4.154144287109375,49.975131988525504],[4.140979290008545,49.978805541992244],[4.156285285949821,49.98721313476568],[4.162405967712459,49.99655151367193],[4.16101694107067,49.99980545043945],[4.14718866348278,50.0040168762207],[4.135424137115478,50.01518249511718],[4.137324333190975,50.02178192138683],[4.160781383514461,50.04752349853527],[4.171064376831055,50.047004699706974],[4.19062185287487,50.04942321777355],[4.201024055481014,50.056900024414176],[4.224308967590389,50.06438827514654],[4.230134010314997,50.06984329223633],[4.227538585662898,50.079677581787216],[4.205374717712516,50.097988128662216],[4.204636096954403,50.10453414916992],[4.197657585143986,50.10944366455084],[4.203383445739803,50.115314483642635],[4.19524717330944,50.13459777832031],[4.163118839263973,50.13505935668945],[4.146143436431942,50.12895965576183],[4.126905918121338,50.134902954101676],[4.140635967254696,50.15370941162115],[4.153213977813834,50.160373687744254],[4.155059814453068,50.16713714599621],[4.15004491806036,50.17659378051769],[4.156581878662166,50.186061859130916],[4.156247138977108,50.1928367614746],[4.16052436828619,50.19819259643555],[4.150866508483944,50.213417053222706],[4.16592454910284,50.21508407592784],[4.173114776611328,50.22181320190424],[4.183380603790397,50.23214721679698],[4.199061870575065,50.240455627441406],[4.204553604125977,50.2405738830567],[4.220833778381461,50.25430297851574],[4.205972194671631,50.27251052856457],[4.184491157531852,50.2752304077149],[4.17957592010498,50.27677154541021],[4.170005798339901,50.285610198974666],[4.160448074340763,50.28590393066412],[4.152060031890811,50.2769660949707],[4.166818141937199,50.267070770263665],[4.163658142089844,50.25728988647455],[4.134955883026123,50.259086608886825],[4.138359546661491,50.26155853271496],[4.133791923522949,50.27402877807628],[4.124011516571045,50.27276229858398],[4.125055313110408,50.289466857910156],[4.118358612060547,50.302268981933594],[4.108440399169922,50.30389404296886],[4.099338531494197,50.312137603759815],[4.07916355133051,50.3096656799317],[4.077095508575553,50.320522308349666],[4.052173137664851,50.33866882324219],[4.037613391876334,50.34290313720709],[4.02521991729742,50.35789489746088],[4.013691902160645,50.35133743286133],[3.993216991424561,50.34770584106445],[3.986870288848934,50.34245681762701],[3.9721040725708,50.34650039672863],[3.967360258102417,50.340576171875],[3.967141151428279,50.347454071045036],[3.961807012557983,50.34807968139643],[3.919800996780396,50.332183837890625],[3.900850057601929,50.32745742797863],[3.886059761047363,50.327060699463004],[3.888876199722347,50.33328247070324],[3.885758399963322,50.33948135375988],[3.870705604553223,50.338699340820305],[3.857562065124625,50.347896575927734],[3.84014987945568,50.35386276245117],[3.825049400329704,50.35208511352533],[3.821792125701904,50.345947265625],[3.81165862083435,50.34488296508789],[3.814203739166259,50.35132217407221],[3.805724620819091,50.35462188720714],[3.796579837799186,50.35136795043945],[3.781047344207764,50.353279113769645],[3.765481948852539,50.35124206542969],[3.763554096221924,50.34808349609381],[3.742773294448909,50.348075866699276],[3.735054016113224,50.33925247192394],[3.734504461288509,50.33233261108404],[3.729810714721793,50.326873779296875],[3.731720447540397,50.31190109252929],[3.726564407348633,50.310821533203125],[3.714352369308472,50.3167839050294],[3.716778039932307,50.307868957519645],[3.710424423217773,50.303184509277344],[3.690841197967643,50.31817245483398],[3.684924602508545,50.3275604248048],[3.67367601394659,50.33493041992193],[3.675797462463378,50.3414764404298],[3.665248632431144,50.34902954101568],[3.666476488113517,50.36233520507812],[3.657830238342228,50.37057876586908],[3.672951936721744,50.38906478881847],[3.673437356948966,50.409648895263786],[3.668833494186515,50.436450958251946],[3.660364866256714,50.44450378417969],[3.660986185073909,50.45759201049804],[3.65394997596735,50.462600708007926],[3.643648862838802,50.46316528320324],[3.629447698593196,50.48139953613286],[3.607936859130802,50.49653244018555],[3.583316326141414,50.4910163879395],[3.568602323532218,50.500114440918026],[3.55863356590271,50.498416900634766],[3.521455526351929,50.49460220336914],[3.507428884506226,50.48932266235357],[3.502336025238037,50.48796844482433],[3.498915910720939,50.49071884155285],[3.497591972351131,50.497692108154354],[3.49887824058527,50.501113891601676],[3.517192840576172,50.51802062988286],[3.518115520477352,50.521492004394645],[3.515814542770499,50.524711608886776],[3.506385564804134,50.52829742431646],[3.474889516830501,50.53318023681634],[3.469987392425594,50.531547546386776],[3.456061124801693,50.520755767822266],[3.4500830173493,50.50722503662121],[3.439442157745361,50.507228851318416],[3.43563008308405,50.50912475585949],[3.405551195144767,50.49877929687506],[3.390125513076896,50.49676513671875],[3.377262353897094,50.49098968505871],[3.360271453857479,50.503696441650504],[3.334712266922054,50.50789642333989],[3.328858375549316,50.50812911987305],[3.320949792861938,50.51725769042974],[3.286531448364258,50.5275764465332],[3.279742479324341,50.539886474609375],[3.281645774841422,50.55282592773431],[3.275957345962581,50.558536529541065],[3.284500837326163,50.56192779541027],[3.278060436248836,50.56684494018548],[3.281664371490479,50.57625961303711],[3.27616906166088,50.58168411254894],[3.278310537338371,50.59420013427745],[3.270969152450618,50.605506896972656],[3.269480705261287,50.61197280883795],[3.256132364273014,50.62195205688488],[3.258703708648682,50.62817382812494],[3.25065898895258,50.63614273071289],[3.244402408599967,50.64086914062506],[3.248762130737362,50.64636993408208],[3.24507474899292,50.651428222656364],[3.242113590240592,50.66667938232433],[3.243893384933529,50.669754028320256],[3.261831045150814,50.67596435546881],[3.253688335418701,50.691139221191406],[3.259060144424495,50.6918182373048],[3.259901285171622,50.69873428344732],[3.248501777648982,50.709506988525504],[3.210946798324585,50.71276473999018],[3.192224979400634,50.724872589111385],[3.199032545089722,50.73401260375982],[3.196343898773307,50.7370491027832],[3.188168764114494,50.740222930908146],[3.184298515319824,50.74904632568371],[3.181449413299561,50.751960754394474],[3.183972358703613,50.752162933349666],[3.196821451187134,50.75167846679693],[3.203958749771061,50.75261306762707],[3.209883928299007,50.75515365600586],[3.217006206512394,50.7599830627442],[3.235417604446468,50.75955200195324],[3.261599302291927,50.755409240722656],[3.267051458358821,50.754947662353516],[3.276248216629142,50.755386352539],[3.288691043853873,50.7574577331543],[3.294067382812614,50.75752639770519],[3.299050331115836,50.75678634643566],[3.301532506942863,50.755649566650504],[3.305145502090568,50.75217819213872],[3.310605287551994,50.745254516601676],[3.314960479736271,50.73846435546875],[3.319378852844181,50.726638793945305],[3.32637619972229,50.72328567504883],[3.331037044525203,50.72159957885742],[3.339621782302913,50.717689514160156],[3.351872682571411,50.71299743652355],[3.358429908752441,50.711948394775504],[3.36576318740839,50.711956024170036],[3.374774694442863,50.71945571899414],[3.383272886276302,50.72505569458013],[3.388000965118522,50.72742080688488],[3.401331424713192,50.73252868652344],[3.407669305801392,50.73357772827148],[3.422520160675049,50.74093246459972],[3.451753377914542,50.75111770629883],[3.453065156936646,50.75527954101568],[3.45584511756897,50.75935363769542],[3.460653781890812,50.76322555541998],[3.466958761215267,50.76655960083008],[3.475764989852905,50.763759613037166],[3.486185789108276,50.75991058349621],[3.493236064910889,50.758689880371094],[3.502916097641105,50.75837707519537],[3.518664598465079,50.758644104003906],[3.528159618377799,50.75937652587902],[3.535263776779232,50.76070404052746],[3.545578002929744,50.76073837280279],[3.551618099212646,50.7586402893067],[3.559222459793148,50.75326156616211],[3.552826404571476,50.743202209472656],[3.546725273132324,50.736331939697315],[3.563195705413818,50.73179626464844],[3.574754476547298,50.72945404052729],[3.582044601440373,50.72891998291015],[3.59113335609436,50.72959136962902],[3.598320722579956,50.73096084594732],[3.609710216522274,50.73149490356445],[3.615384817123413,50.73113632202148],[3.63165116310131,50.72790145874029],[3.641566276550349,50.72508239746094],[3.647624969482422,50.722816467285156],[3.653437614441031,50.72822189331055],[3.660099983215389,50.73236465454113],[3.662740468978939,50.73586273193365],[3.664734601974544,50.74360656738281],[3.670523643493766,50.755298614501896],[3.67325496673584,50.76197433471674],[3.675873517990226,50.76648330688482],[3.682890176773128,50.767051696777344],[3.695001602172965,50.766769409179744],[3.70317196846014,50.76571273803716],[3.714914798736629,50.765254974365234],[3.721306800842399,50.76567459106451],[3.728482961654663,50.766975402832145],[3.736004352569694,50.76752471923834],[3.741571426391715,50.767433166503906],[3.749187469482479,50.76546859741211],[3.756891727447566,50.75850296020519],[3.762834548950252,50.75173950195324],[3.765259027481079,50.74974822998052],[3.774646759033203,50.746765136718864],[3.780943632125798,50.74398422241222],[3.789552211761418,50.745121002197315],[3.800738334655705,50.744804382324276],[3.808620214462337,50.74328231811517],[3.816521883010978,50.740734100341854],[3.828039646148682,50.738224029541065],[3.83439493179327,50.738712310791016],[3.837750434875602,50.7398300170899],[3.847915649414176,50.74541091918945],[3.852779150009098,50.74742126464844],[3.858756542205811,50.74839782714844],[3.86400222778326,50.74841308593755],[3.869098663330078,50.74762725830078],[3.875122547149772,50.74496078491222],[3.878738403320312,50.74233245849615],[3.884006977081413,50.73691177368169]]],[[[3.036681413650513,50.77155685424805],[3.035273551941032,50.77014923095709],[3.015253782272339,50.773624420166016],[3.009903907775822,50.76806259155285],[2.983294248580989,50.757186889648494],[2.971967697143612,50.75027465820312],[2.957143306732178,50.75281143188471],[2.940136671066227,50.74536514282238],[2.937651157379093,50.74257278442382],[2.943608522415218,50.73380661010742],[2.93717193603527,50.73005676269531],[2.930279493331909,50.72528839111328],[2.930072069168205,50.711738586425774],[2.922327280044613,50.70280456542969],[2.912152528762931,50.70348739624029],[2.909936189651546,50.69436264038091],[2.90043044090271,50.69328689575206],[2.884267807006893,50.705898284912045],[2.871256828308219,50.703144073486385],[2.872738361358756,50.70827484130853],[2.874473810196037,50.71072769165038],[2.872944116592407,50.72534561157221],[2.872096776962337,50.728641510009766],[2.869011163711548,50.732677459716854],[2.865291118621769,50.73514175415039],[2.856580257415771,50.73899459838873],[2.852480173110962,50.74223327636713],[2.852146625518913,50.747211456298885],[2.854761838913021,50.7501487731933],[2.85846567153942,50.75265502929693],[2.866974353790283,50.75715637207031],[2.871130466461182,50.76029586791992],[2.877074003219604,50.76219940185558],[2.883933067321891,50.76599884033209],[2.89196705818182,50.767024993896534],[2.905073881149405,50.76707839965831],[2.911999225616569,50.766254425048885],[2.918220281601066,50.76403045654297],[2.925010204315242,50.76249694824218],[2.93397068977356,50.76808547973633],[2.938666105270329,50.77214431762695],[2.940480709076041,50.7755584716798],[2.941703319549561,50.78378677368169],[2.943073034286556,50.78722381591808],[2.947418689727897,50.792739868164176],[2.953750133514404,50.79752349853527],[2.964593410492057,50.79898071289068],[2.979665517807007,50.799659729003906],[2.987828254699821,50.80121231079113],[2.998424530029354,50.802757263183594],[3.006856203079223,50.804584503173885],[3.013222694397029,50.80022811889654],[3.017090797424373,50.79483032226574],[3.022404909134025,50.78964233398443],[3.034640550613403,50.77537536621105],[3.036681413650513,50.77155685424805]]]]},"properties":{"ID_0":23,"ISO":"BE-WHT","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":8,"NAME_2":"Hainaut","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Henegouwen|Hennegau"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.896129608154411,50.75958633422857],[5.90474176406866,50.75516510009777],[5.959646224975643,50.76206588745122],[5.974009037017936,50.760063171386776],[5.986626148223877,50.75775909423834],[5.999074935913086,50.756366729736385],[6.007072925567627,50.757270812988395],[6.011619091033936,50.756889343261825],[6.012147903442383,50.75426483154297],[6.028616905212346,50.725215911865234],[6.028419017791805,50.72735214233404],[6.034927845001278,50.72393035888672],[6.060328960418701,50.71767044067394],[6.07892894744873,50.71860122680669],[6.078831195831299,50.719833374023494],[6.100728988647461,50.7186279296875],[6.118731975555477,50.70873641967784],[6.149145126342717,50.67687225341797],[6.173787117004395,50.65840530395502],[6.169487953186035,50.65266036987316],[6.17773008346569,50.64825057983409],[6.178049087524413,50.644531250000114],[6.171928882598934,50.64426040649425],[6.166120052337874,50.64027023315441],[6.165825843811035,50.644012451171875],[6.159657955169791,50.643730163574276],[6.168094158172607,50.636962890625],[6.173087120056209,50.62143325805664],[6.197566986083984,50.631160736083984],[6.199015140533504,50.63046264648432],[6.209949970245417,50.6309204101563],[6.228919029235839,50.62421035766613],[6.259338855743522,50.625400543212834],[6.265749931335563,50.621910095214844],[6.265902996063176,50.62017822265625],[6.278378963470459,50.61639785766613],[6.251566886901912,50.59209823608404],[6.241721153259277,50.593505859375],[6.232298851013297,50.58702087402344],[6.232649803161735,50.583309173583984],[6.220118999481315,50.586540222168075],[6.212152004242,50.5796775817871],[6.206236839294434,50.57698059082037],[6.202858924865723,50.57464981079113],[6.196749210357722,50.57440185546875],[6.197460174560774,50.566978454589844],[6.185599803924617,50.562770843505916],[6.179501056671256,50.5625114440918],[6.175640106201172,50.55985260009777],[6.172194004058838,50.55051422119152],[6.180831909179801,50.533061981201286],[6.210350990295467,50.51704025268566],[6.223847866058462,50.50228118896479],[6.24672794342041,50.50090789794933],[6.246985435485954,50.49833679199219],[6.253068923950252,50.49853134155285],[6.253439903259391,50.494831085205135],[6.259510040283317,50.49507141113281],[6.259140014648494,50.498771667480526],[6.264841079711914,50.502689361572315],[6.271269798278808,50.499221801757926],[6.277355194091854,50.49907302856451],[6.298900127410832,50.49778366088878],[6.315104961395376,50.502639770507926],[6.330028057098389,50.49364471435558],[6.342463016510066,50.464309692382926],[6.363673210144043,50.45222091674799],[6.366498947143782,50.454170227050895],[6.372869014740047,50.450660705566406],[6.373272895812988,50.44674682617199],[6.374671936035155,50.44594955444336],[6.362255096435774,50.42074584960943],[6.362065792083853,50.40473175048834],[6.340477943420524,50.39069366455089],[6.33975791931158,50.37989425659191],[6.344871997833309,50.37594223022461],[6.363688945770321,50.36526870727539],[6.364054203033561,50.36112594604498],[6.372738838195857,50.354415893554794],[6.376580238342284,50.35449981689453],[6.377384185791129,50.350830078125114],[6.382870197296143,50.35095214843755],[6.395440101623649,50.343849182128906],[6.396090984344539,50.336502075195426],[6.402060985565186,50.33662033081066],[6.402379989624137,50.33293914794922],[6.408339977264404,50.333068847656364],[6.403338909149227,50.32192993164068],[6.391717910766602,50.318019866943416],[6.385768890380973,50.31787872314453],[6.381913185119572,50.3200569152832],[6.35649585723877,50.31293487548828],[6.341369152069091,50.322834014892635],[6.325354099273682,50.32118225097662],[6.325169086456526,50.32323074340832],[6.319429874420279,50.31927871704096],[6.301178932190055,50.31853103637695],[6.302197933196965,50.3074302673341],[6.290039062500057,50.30691909790038],[6.29105615615839,50.29586410522461],[6.284987926483211,50.295570373535156],[6.285338878631649,50.291870117187614],[6.279261112213135,50.291610717773494],[6.280309200286865,50.28050994873047],[6.275083065033073,50.27131652832031],[6.275639057159537,50.26544189453125],[6.254786968231315,50.26453399658209],[6.242596149444637,50.262252807617244],[6.239579200744743,50.26015853881836],[6.228908061981144,50.25969314575201],[6.202786922454947,50.254802703857365],[6.191980838775692,50.243465423584034],[6.170382022857666,50.23625564575206],[6.189638137817496,50.189464569091854],[6.185587882995662,50.18708038330083],[6.169525146484431,50.179012298584034],[6.156820774078483,50.17729568481451],[6.157391071319694,50.17121887207031],[6.151369094848633,50.17111968994152],[6.146426200866699,50.17389297485363],[6.135292053222656,50.15470123291021],[6.153457164764518,50.1496315002442],[6.149800777435245,50.13739776611339],[6.142015933990706,50.13749313354503],[6.142289161682243,50.13412857055663],[6.129909038543644,50.13396072387701],[6.116354942321721,50.13761520385748],[6.125361919403076,50.15102005004894],[6.120429992675781,50.16320419311535],[6.101561069488469,50.17081069946295],[6.080800056457633,50.172397613525504],[6.077540874481258,50.15806961059582],[6.07083797454834,50.15641021728521],[6.060410976410026,50.15745162963872],[6.043893814087027,50.161163330078175],[6.031361103057861,50.16562652587901],[6.026518821716252,50.17766952514654],[6.028417110443171,50.17782592773449],[6.030869960784855,50.1855735778808],[6.032835483551082,50.18996047973627],[6.033082485199202,50.19293975830078],[6.031780719757137,50.19601058959972],[6.025649070739803,50.20196533203131],[6.023306846618652,50.2051773071289],[6.019141674041862,50.22132492065435],[6.018742561340388,50.22844696044921],[6.015602111816463,50.23347473144537],[6.011526107788143,50.24352645874035],[6.01126861572277,50.24929809570318],[6.012867450714111,50.255615234375114],[6.01547288894659,50.26318359375006],[6.01718282699585,50.27767944335943],[6.020225048065242,50.28444671630871],[6.021128177642936,50.287914276123104],[6.021990776062125,50.29749298095703],[6.021731853485221,50.30103302001964],[6.019784927368164,50.305419921875114],[6.015793800354061,50.3088264465332],[5.99491024017334,50.31931686401367],[5.982793807983512,50.323287963867244],[5.968837261200008,50.32860183715832],[5.96143627166748,50.33077239990246],[5.956703662872314,50.33152770996105],[5.949781894683838,50.3315048217774],[5.940999507904053,50.33013534545909],[5.933762073516789,50.3296623229981],[5.92260217666626,50.32973098754894],[5.915364742279166,50.33044052124029],[5.905023574829158,50.333686828613274],[5.895849227905217,50.33860015869152],[5.890114307403564,50.34057998657238],[5.882838249206543,50.34011459350586],[5.873032569885197,50.33439254760742],[5.865939617156926,50.32722473144531],[5.864109516143798,50.32346343994146],[5.870245933532772,50.312614440918026],[5.871038913726863,50.30799102783203],[5.869552135467586,50.30230331420893],[5.863310813903809,50.29377365112305],[5.863467693328857,50.28884506225591],[5.865231990814209,50.28700637817394],[5.869237899780329,50.285072326660156],[5.872703075408879,50.284427642822266],[5.88331317901617,50.283985137939396],[5.8895583152771,50.28253936767589],[5.892149448394775,50.27861022949219],[5.892017364501953,50.275272369384766],[5.890383720398063,50.27196121215832],[5.884195804596061,50.26822662353527],[5.87146186828619,50.26553344726574],[5.858254909515323,50.263328552246094],[5.839586257934626,50.262168884277344],[5.828647613525504,50.26063537597656],[5.817029476165771,50.2603988647462],[5.797335624694938,50.26084518432623],[5.789703845977897,50.26137542724621],[5.780876159667912,50.26285171508789],[5.771761894226188,50.26264190673834],[5.757280349731388,50.259403228759766],[5.738603115081844,50.25831222534185],[5.729144096374568,50.25674438476568],[5.732365131378231,50.266357421875],[5.737285614013786,50.27385711669927],[5.747006416320914,50.284439086914176],[5.752376556396484,50.28929138183594],[5.753684043884333,50.29210281372076],[5.75197696685791,50.295738220214844],[5.746017932891903,50.297252655029354],[5.737184047698974,50.297615051269645],[5.730032444000244,50.29885864257818],[5.724039554595947,50.30170059204112],[5.720292091369629,50.304374694824276],[5.716939926147403,50.30864715576183],[5.71616601943981,50.31222534179693],[5.716147422790641,50.318359375000114],[5.716803550720215,50.32824707031256],[5.717879772186279,50.33301925659179],[5.722978115081901,50.340534210205135],[5.727275848388729,50.34554672241222],[5.731984138488713,50.34972000122076],[5.71187067031866,50.35311889648449],[5.687608242034912,50.35860443115246],[5.68165493011486,50.360370635986385],[5.673711776733455,50.36345291137701],[5.659805297851562,50.36408996582036],[5.647420883178768,50.364135742187614],[5.641636371612663,50.370246887207145],[5.630400180816764,50.38002777099604],[5.621923446655387,50.38518905639654],[5.615801334381217,50.39049148559576],[5.608777999878043,50.39379501342785],[5.600898742675838,50.39413833618169],[5.586047649383602,50.39056396484375],[5.569744586944523,50.38790893554687],[5.562268257141113,50.387298583984375],[5.554653644561881,50.387462615966854],[5.547785758972225,50.38854217529302],[5.540555477142448,50.39100646972661],[5.536644458770866,50.393123626708984],[5.5272154808045,50.400115966796875],[5.525614261627311,50.406856536865234],[5.52407693862915,50.410701751708984],[5.514938354492301,50.42178344726574],[5.497604846954346,50.41300201416027],[5.48928260803234,50.410377502441406],[5.475772380828914,50.408390045166016],[5.470851898193359,50.40834426879877],[5.464316368103084,50.40985488891612],[5.446499824523926,50.416999816894645],[5.434639453887939,50.42350387573248],[5.429902076721305,50.42565536499035],[5.424934864044189,50.42686462402349],[5.418218612671011,50.42753601074219],[5.418365478515682,50.422855377197266],[5.419975280761832,50.41748428344738],[5.422833442687988,50.413516998291016],[5.428994178771916,50.40658569335937],[5.429896831512565,50.40337753295909],[5.429345607757567,50.40009307861328],[5.426841259002742,50.3967742919923],[5.419932842254696,50.391941070556584],[5.408824443817196,50.385765075683594],[5.398816108703613,50.38139343261719],[5.390975475311279,50.38208770751964],[5.382594585418815,50.38347244262701],[5.377845287323055,50.38354110717785],[5.367567539215202,50.38224029541021],[5.352109432220572,50.38130187988292],[5.345247268676871,50.37941360473633],[5.329523563385123,50.36902236938488],[5.322180747985839,50.3650741577149],[5.315358638763428,50.36343765258795],[5.30847692489624,50.363773345947266],[5.302789688110352,50.36597824096691],[5.297856330871696,50.37003326416021],[5.292446613311768,50.37347412109381],[5.288509845733699,50.378856658935604],[5.286416053772029,50.38368606567394],[5.28209400177002,50.391876220703125],[5.279173851013296,50.39479064941412],[5.271278858184871,50.39908599853526],[5.263683795928955,50.401279449463],[5.258191108703556,50.40199661254894],[5.245121955871639,50.402999877929744],[5.235250473022517,50.405223846435604],[5.228535175323485,50.40628814697277],[5.233579158783016,50.41982650756836],[5.23785495758068,50.42662429809582],[5.241974830627498,50.43136215209966],[5.238649368286246,50.43559646606457],[5.235603332519531,50.44124603271479],[5.22763013839733,50.44629669189459],[5.224419593811092,50.44944000244152],[5.221206188201904,50.45458221435558],[5.219542503356933,50.46254730224615],[5.214740276336784,50.470050811767635],[5.206289768218994,50.47747039794933],[5.192002773285026,50.47100448608404],[5.187576293945369,50.46954727172863],[5.181001663208065,50.46873474121094],[5.171534538269157,50.46862792968756],[5.162626266479606,50.47906875610363],[5.153983116149959,50.487365722656364],[5.145916938781737,50.49425125122076],[5.141460418701172,50.50042724609375],[5.132845878601074,50.50188064575201],[5.121635437011776,50.502113342285156],[5.114950180053825,50.503639221191406],[5.110570907592887,50.50683212280273],[5.107691764831543,50.512149810791016],[5.104135990142822,50.51655197143555],[5.101803779602051,50.51778793334972],[5.096908569335881,50.51868057250982],[5.086155891418399,50.5180778503418],[5.070198059081974,50.514129638671875],[5.053321361541748,50.512966156005916],[5.04451227188116,50.511505126953125],[5.029245376586857,50.510002136230526],[5.032145023346004,50.520915985107415],[5.033514022827261,50.52386856079107],[5.041014194488582,50.53319549560547],[5.048236846923828,50.539886474609375],[5.053042411804256,50.54648971557617],[5.056023597717342,50.554847717285206],[5.04908990859991,50.559646606445426],[5.045983791351318,50.56255340576166],[5.038270473480337,50.572830200195426],[5.035779953003042,50.57768249511719],[5.030356407165526,50.58506393432623],[5.023402214050293,50.587989807128906],[5.018319606781006,50.591899871826165],[5.01343679428112,50.59441375732416],[5.009727001190242,50.597507476806754],[5.004900455474966,50.60006713867193],[4.999832630157527,50.60455322265625],[4.985814571380672,50.61512756347661],[4.987081050872746,50.620742797851555],[4.989913940429688,50.62743759155279],[4.990725040435848,50.63310623168951],[4.990897178649901,50.641307830810604],[4.997304916381836,50.64536666870123],[5.001780509948843,50.64884185791021],[5.01200628280651,50.66176605224609],[5.013099670410213,50.66648864746105],[5.01349925994873,50.679988861083984],[5.014098644256649,50.68478775024413],[5.017429828643799,50.69243240356451],[5.019616603851318,50.699180603027344],[5.017655372619685,50.71224212646495],[5.014756202697754,50.7171249389649],[5.014392375946102,50.72587966918957],[5.015263557434081,50.731510162353516],[5.016911983490047,50.73458099365246],[5.022274971008301,50.740852355957145],[5.025736331939697,50.74761199951172],[5.035048961639404,50.74598312377929],[5.039706707000732,50.74469375610357],[5.047698974609318,50.739940643310604],[5.052161216735897,50.734561920166016],[5.053678035736083,50.73149871826183],[5.05498027801525,50.7255516052246],[5.053294658660946,50.72243881225597],[5.061855316162223,50.71532821655279],[5.064538478851375,50.71358489990246],[5.075724601745662,50.70881271362304],[5.082873821258602,50.70748138427746],[5.092097282409725,50.7076873779298],[5.099183559417724,50.70936965942383],[5.105806827545279,50.711772918701286],[5.117445945739859,50.71783447265625],[5.129890918731746,50.71366882324219],[5.137597560882625,50.70828628540045],[5.142505168914794,50.70560836791998],[5.150020599365177,50.69818115234375],[5.155230522155819,50.69206237792962],[5.174025535583553,50.70098876953136],[5.177697181701717,50.706714630126946],[5.179975986480713,50.71679687500006],[5.183067798614502,50.719230651855526],[5.187764167785758,50.72016525268566],[5.198338985443172,50.720840454101676],[5.209847927093563,50.7221565246582],[5.217588901519832,50.72237396240246],[5.229423522949332,50.722064971923935],[5.247096538543758,50.71737289428711],[5.25438022613531,50.71667098999029],[5.259901046753043,50.716896057128906],[5.266397476196345,50.718395233154354],[5.273265838623047,50.721111297607536],[5.282044410705623,50.72358703613281],[5.285480499267578,50.72399902343756],[5.294179916381892,50.723606109619254],[5.31430959701538,50.719863891601676],[5.323946475982723,50.727607727050774],[5.32700777053833,50.72928619384765],[5.337441921234188,50.7334098815918],[5.349058151245117,50.736251831054744],[5.363807201385612,50.74113845825207],[5.368960857391414,50.74213027954096],[5.382153987884521,50.74292755126959],[5.394875049591121,50.74466705322277],[5.404721260070801,50.74518966674799],[5.407900810241699,50.7434921264649],[5.409637451171932,50.740844726562614],[5.410171985626334,50.73654556274425],[5.40947437286377,50.7252578735351],[5.410488605499211,50.72043228149413],[5.41564416885376,50.71726608276373],[5.425975799560661,50.71467208862299],[5.435894012451286,50.712665557861385],[5.449454784393424,50.71430969238286],[5.456157684326114,50.71626663208013],[5.463170051574764,50.72132492065441],[5.469120025634709,50.72381973266596],[5.476349830627441,50.72471237182622],[5.485836505889893,50.724693298339844],[5.494567871093864,50.725944519043026],[5.497571468353328,50.729824066162166],[5.500510692596492,50.73163604736334],[5.513237476348876,50.73398971557617],[5.520458698272762,50.73588180541992],[5.532261848449821,50.739681243896484],[5.533227920532226,50.74650955200207],[5.538217067718505,50.75497817993164],[5.542725086212272,50.75820159912121],[5.552254199981802,50.76207733154296],[5.567357063293571,50.76243591308605],[5.587758064270133,50.766166687011776],[5.598823070526123,50.767604827880916],[5.614023685455379,50.77122497558588],[5.621693611145133,50.77272796630871],[5.63052129745489,50.77534866333008],[5.638574123382568,50.7791633605957],[5.658165454864502,50.790939331054744],[5.668262481689453,50.79743576049816],[5.674395084381217,50.802318572998104],[5.680764675140437,50.8058700561524],[5.690980434417668,50.809234619140625],[5.701066970825195,50.805370330810604],[5.705244064331168,50.7859382629395],[5.703442096710319,50.7819595336914],[5.699253082275447,50.77659988403331],[5.695539951324463,50.768737792968686],[5.691255092620906,50.76307296752941],[5.692372798919791,50.760299682617294],[5.693084716796989,50.755371093750114],[5.699196338653564,50.74635314941412],[5.70356273651123,50.74215698242193],[5.709727764129581,50.740764617920036],[5.720372676849422,50.74085998535167],[5.72850847244274,50.74236297607433],[5.735059261322078,50.744773864746094],[5.739517688751278,50.744976043701286],[5.744046688079948,50.744171142578125],[5.753653049469108,50.74068832397466],[5.765116691589299,50.73801040649419],[5.779966354370174,50.73674774169922],[5.784869194030819,50.73592376708996],[5.794776439666805,50.72986984252941],[5.799057483673209,50.723720550537166],[5.805293560028076,50.71798706054698],[5.826517581939754,50.716419219970696],[5.835361957550106,50.71462631225597],[5.856453418731746,50.71121978759771],[5.866026401519775,50.711032867431754],[5.877957344055176,50.7120475769043],[5.887138843536434,50.71196746826172],[5.887659549713078,50.71998214721691],[5.886991977691593,50.729557037353516],[5.88486909866333,50.73515701293951],[5.885429382324219,50.74170303344738],[5.889423847198429,50.74941635131836],[5.896129608154411,50.75958633422857]]]},"properties":{"ID_0":23,"ISO":"BE-WLG","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":9,"NAME_2":"Liège","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Luik|Liegi|Lieja|Lüttich"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.117445945739859,50.71783447265625],[5.115173816680908,50.72293090820324],[5.113169193267879,50.73161697387707],[5.108302593231315,50.73809814453125],[5.106197357177734,50.7447509765625],[5.105834007263297,50.753131866455135],[5.10510969161993,50.758533477783146],[5.113746166229362,50.75787353515619],[5.125383377075195,50.757549285888786],[5.130300998687857,50.75775909423834],[5.140381336212215,50.759986877441406],[5.149806976318473,50.76068878173839],[5.153451919555663,50.761932373046875],[5.158460140228328,50.76258087158214],[5.167627334594783,50.76275634765631],[5.175235271453971,50.764450073242244],[5.181925296783561,50.76515579223644],[5.192119598388786,50.76515197753906],[5.198796272277889,50.76586532592779],[5.2023220062257,50.76717376708996],[5.213201522827092,50.767780303955135],[5.220779418945369,50.767574310302784],[5.22504997253418,50.76673889160162],[5.229905128479004,50.76343917846691],[5.234367847442627,50.756572723388786],[5.234035491943416,50.74734115600586],[5.23081254959112,50.74418640136718],[5.229677677154541,50.73812484741205],[5.229423522949332,50.722064971923935],[5.217588901519832,50.72237396240246],[5.209847927093563,50.7221565246582],[5.198338985443172,50.720840454101676],[5.187764167785758,50.72016525268566],[5.183067798614502,50.719230651855526],[5.179975986480713,50.71679687500006],[5.177697181701717,50.706714630126946],[5.174025535583553,50.70098876953136],[5.155230522155819,50.69206237792962],[5.150020599365177,50.69818115234375],[5.142505168914794,50.70560836791998],[5.137597560882625,50.70828628540045],[5.129890918731746,50.71366882324219],[5.117445945739859,50.71783447265625]]]},"properties":{"ID_0":23,"ISO":"BE-VLI","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":10,"NAME_2":"Limburg","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Limbourg|Limburgo"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.026518821716252,50.17766952514654],[6.024930000305289,50.18162155151367],[6.002239227294922,50.17652130126953],[5.987988948822078,50.17551422119151],[5.967640876770076,50.17080307006841],[5.954148769378776,50.134704589843864],[5.902341842651367,50.109767913818416],[5.901381969451904,50.10821151733404],[5.899428844451904,50.10029983520519],[5.894246101379508,50.09441757202148],[5.891685009002742,50.086765289306584],[5.88981294631958,50.07829284667969],[5.874896049499569,50.073902130127],[5.8639430999757,50.06753540039068],[5.859116077423153,50.06171035766607],[5.861655235290584,50.046310424804744],[5.855449199676457,50.030418395996094],[5.845753192901611,50.02041625976568],[5.827960014343319,50.01313400268566],[5.826231956482047,50.00666427612299],[5.827700138092098,49.999465942382926],[5.83520078659069,49.99449920654308],[5.843251228332576,49.98710250854497],[5.843355178833008,49.97994613647472],[5.836931228637752,49.97554397583019],[5.816674232482967,49.97257614135742],[5.815622806549072,49.964809417724666],[5.810860157012996,49.96091842651367],[5.801381111145133,49.963439941406364],[5.795301914215088,49.964229583740284],[5.791534900665283,49.9604225158692],[5.781013965606689,49.959678649902344],[5.778379917144832,49.95049667358404],[5.779318809509391,49.944431304931754],[5.778142929077262,49.93843460083008],[5.772482872009277,49.93231964111339],[5.766616821289062,49.919853210449276],[5.75987100601202,49.91223907470709],[5.753683090210018,49.911331176757926],[5.744140148162955,49.90258026123058],[5.745097160339299,49.89840698242199],[5.758536815643367,49.89336776733393],[5.773841857910156,49.88851165771484],[5.786119937896785,49.882858276367244],[5.786361217498779,49.87723922729498],[5.782749176025391,49.87642288208008],[5.776657104492301,49.86988449096691],[5.7750182151795,49.86904907226557],[5.758081912994442,49.869499206543026],[5.757266044616813,49.86830139160156],[5.758098125457821,49.862648010253956],[5.759564876556396,49.85874938964838],[5.757740020751953,49.855659484863395],[5.753330230712891,49.85362243652343],[5.753317832946834,49.84572601318371],[5.750578880310059,49.8458023071289],[5.750223159789982,49.84066390991222],[5.746118068695068,49.838768005371094],[5.749722003936824,49.83175277709955],[5.751540184020996,49.82413864135742],[5.747794151306209,49.81844711303711],[5.754362106323242,49.813117980957145],[5.757108211517334,49.804592132568416],[5.757693767547664,49.796417236328125],[5.782458782196045,49.79633331298839],[5.794256210327205,49.789226531982365],[5.827349185943716,49.7452278137207],[5.832016944885197,49.72824859619152],[5.831934928894042,49.725784301757926],[5.848493099212646,49.725227355956974],[5.860459804534969,49.728023529052734],[5.869063854217643,49.727207183838004],[5.876872062683219,49.722152709961044],[5.882627010345459,49.71610641479498],[5.889624118805045,49.71010971069336],[5.881442070007438,49.70488357543957],[5.874095916748046,49.699306488037166],[5.871623992919922,49.690929412841854],[5.872259140014648,49.684310913085994],[5.878962039947566,49.677841186523494],[5.890151023864688,49.67340469360363],[5.900941848754883,49.67043304443371],[5.912499904632625,49.66615676879894],[5.908157825470084,49.65912246704113],[5.906942844390926,49.6545677185058],[5.907876014709586,49.64690017700207],[5.907086849212703,49.639522552490234],[5.884276866912898,49.63866424560547],[5.880621910095215,49.63257598876953],[5.881649971008414,49.626518249511776],[5.874896049499569,49.62019729614269],[5.870451927185172,49.613491058349666],[5.871144771575928,49.60590744018565],[5.861946105956974,49.6017456054688],[5.853984832763786,49.59756088256835],[5.852081775665397,49.59076309204107],[5.868544101715088,49.586837768554744],[5.874228954315129,49.58715057373047],[5.874456882476807,49.576766967773494],[5.868050098419246,49.57180786132818],[5.857216835021973,49.56552505493164],[5.850542068481388,49.5601692199707],[5.833731174469108,49.55124664306652],[5.828113079071158,49.552825927734375],[5.815077304840031,49.54516601562511],[5.81288051605236,49.547969818115234],[5.793144702911491,49.5520401000976],[5.772744655609188,49.56255340576171],[5.758513450622672,49.559101104736385],[5.75715541839611,49.54256820678722],[5.742724418640194,49.539283752441406],[5.730061054229792,49.544475555420036],[5.721682548522949,49.54101181030279],[5.701262950897217,49.53951644897472],[5.689101696014461,49.54609298706054],[5.669230461120605,49.548507690429744],[5.660805702209472,49.55235290527349],[5.645203113555907,49.54969024658209],[5.6329221725465,49.54306030273449],[5.632797718048096,49.53955841064459],[5.61795806884777,49.53034591674816],[5.621092319488639,49.52066040039068],[5.617424488067684,49.51438140869146],[5.61103439331049,49.50589370727545],[5.607102394104118,49.50698471069335],[5.593825817108268,49.5213623046875],[5.569193363189696,49.52734375000006],[5.553982734680289,49.527870178222656],[5.54247522354126,49.51697158813482],[5.531455516815298,49.512519836425895],[5.500722885131893,49.50679016113292],[5.484814643859863,49.506687164306754],[5.470910549163818,49.49721527099614],[5.466285228729248,49.498928070068295],[5.463425159454346,49.50896453857421],[5.447196483612061,49.51788330078136],[5.464030265808161,49.52619934082036],[5.465261459350643,49.536308288574276],[5.442548751831112,49.55027389526367],[5.44135236740118,49.55213928222662],[5.446219444274959,49.55340194702154],[5.453856945037785,49.56596755981451],[5.439330577850455,49.569801330566406],[5.428995132446403,49.58919525146496],[5.430971622467098,49.59238433837896],[5.393536567688045,49.61708831787103],[5.346857547760067,49.63084411621094],[5.34012413024908,49.618083953857536],[5.321965217590332,49.61418914794933],[5.314977169036865,49.612030029296925],[5.304913043975887,49.63005828857416],[5.320583820343074,49.64726257324219],[5.332622051239127,49.65350341796886],[5.319152355194205,49.66366958618175],[5.286605834960993,49.681797027588004],[5.282208919525146,49.685573577880916],[5.280510902404842,49.689136505126946],[5.26838397979742,49.69595336914068],[5.246232032775993,49.68694305419921],[5.231140136718864,49.69035720825201],[5.21563625335699,49.68919754028326],[5.208661079406738,49.69443511962896],[5.19966030120861,49.6923179626466],[5.19051122665411,49.694503784179794],[5.166208267211914,49.692916870117244],[5.165421009063778,49.70936203002929],[5.160857200622615,49.715187072753906],[5.151701450347844,49.71766662597656],[5.143624305725211,49.709281921386776],[5.123073101043701,49.71730804443365],[5.12487363815319,49.726947784423885],[5.096602439880428,49.759784698486385],[5.089717388153133,49.76479339599615],[5.069024562835693,49.761581420898494],[5.046833992004508,49.77014160156256],[5.014911651611385,49.77950668334961],[5.001781463623161,49.79367065429699],[4.991471767425594,49.80022048950201],[4.97182035446167,49.80039596557623],[4.979648590088004,49.80058670043951],[4.98153734207159,49.80416107177746],[4.978381156921387,49.80408096313488],[4.979460716247615,49.806648254394645],[4.984670639038199,49.81009292602544],[4.990237712860221,49.81704711914068],[4.991074562072697,49.82057952880871],[4.991033554077148,49.82542419433593],[4.990031719207877,49.82896423339855],[4.985722541809139,49.83541488647461],[4.982779026031494,49.83829879760742],[4.993558883667049,49.84904861450201],[4.999894142150879,49.85316085815429],[5.003977775573787,49.85490036010742],[5.016336917877311,49.859157562255916],[5.028169155120963,49.86430358886719],[5.032432556152287,49.86735153198248],[5.040966033935547,49.87051391601574],[5.046802997589111,49.87197875976568],[5.050579547882079,49.88017272949219],[5.052694797515983,49.888950347900504],[5.054522514343319,49.89167785644537],[5.061678886413688,49.895877838134766],[5.070842266082821,49.9023551940918],[5.078346729278564,49.90569305419921],[5.090999126434325,49.912300109863395],[5.098744869232235,49.915523529052734],[5.104967594146785,49.91952896118163],[5.107078552246094,49.9224967956544],[5.107423305511531,49.925476074218864],[5.105774402618521,49.93078231811523],[5.105884075164795,49.936149597168075],[5.107609272003174,49.94049835205084],[5.107882499694824,49.94445800781256],[5.104503631591796,49.95011520385747],[5.100841045379752,49.95254135131836],[5.089766502380485,49.95676422119152],[5.084937572479362,49.960052490234375],[5.080753326416129,49.9659080505371],[5.075232505798397,49.97094345092785],[5.070174694061336,49.97454071044922],[5.063361644744987,49.97838973999035],[5.057147979736328,49.979793548583984],[5.052814006805534,49.97937774658208],[5.047593593597526,49.976196289062614],[5.040369987487793,49.9734497070313],[5.037071228027344,49.97273254394537],[5.030410289764518,49.972602844238395],[5.02729511260992,49.97323608398437],[5.024100303649959,49.97511672973638],[5.021350383758659,49.97858428955078],[5.01551532745367,49.99076843261719],[5.013537883758488,49.993785858154354],[5.001542091369743,50.00467300415045],[4.993929862976188,50.008872985839844],[4.9929456710816,50.013000488281364],[4.989341735839844,50.019729614257756],[4.986419677734489,50.02378845214843],[4.994700431823844,50.02841949462896],[5.00034952163702,50.030941009521484],[5.01129245758051,50.03298950195318],[5.022318363189697,50.040901184081974],[5.027714252471924,50.04559707641601],[5.035602569580077,50.05009841918957],[5.043961524963379,50.052497863769645],[5.046137332916203,50.053573608398494],[5.053401947021541,50.05948638916021],[5.05912542343151,50.06676864624023],[5.059660434722956,50.07334899902344],[5.057415485382194,50.0789413452149],[5.056472301483211,50.0860977172851],[5.056509494781608,50.09223175048828],[5.057302474975643,50.0994873046875],[5.059979915618896,50.10638427734375],[5.061727523803825,50.115493774414055],[5.065189361572266,50.11896514892578],[5.082617282867545,50.12315750122082],[5.082661151885986,50.11481094360346],[5.082190990448055,50.10377502441412],[5.082401275634822,50.100231170654354],[5.083697795868034,50.09684753417969],[5.089592456817626,50.09294509887701],[5.093100070953483,50.09220504760748],[5.100488185882568,50.091892242431754],[5.107924938201904,50.09242248535156],[5.120248794555664,50.09440994262695],[5.132795810699577,50.09445190429699],[5.139672756195125,50.09345626831055],[5.152327060699463,50.08861541748047],[5.175599098205623,50.08855056762695],[5.18312644958496,50.088947296142635],[5.188194751739502,50.089920043945256],[5.19843053817749,50.0930290222169],[5.210887908935547,50.09428024291998],[5.219791412353629,50.09572601318365],[5.232388019561767,50.09676361083996],[5.252452373504696,50.10057449340826],[5.259789466858024,50.10118865966797],[5.271255970001278,50.10119247436529],[5.271226882934684,50.107295989990284],[5.270146369934139,50.113185882568416],[5.268110752105713,50.11773300170898],[5.267220973968506,50.12570571899414],[5.267692565918025,50.128971099853516],[5.269291877746582,50.13184738159179],[5.271437168121451,50.1332015991212],[5.279349327087458,50.13499450683594],[5.286091804504395,50.137203216552784],[5.288966655731144,50.140548706054744],[5.289266586303824,50.14371109008795],[5.287253856658992,50.150798797607536],[5.286805629730337,50.15622711181646],[5.281607627868709,50.15863800048828],[5.277907848358211,50.161186218261776],[5.274393558502311,50.164855957031364],[5.267596244812069,50.17333602905285],[5.261561870574951,50.17953872680669],[5.257816314697266,50.18520736694336],[5.25595378875738,50.192962646484375],[5.254307270050049,50.195755004882926],[5.249981403350886,50.1984596252442],[5.246477127075309,50.20160675048834],[5.242084503173885,50.204174041748104],[5.238508224487362,50.20858764648437],[5.236346244812125,50.20970153808588],[5.230731010437012,50.21018218994146],[5.220071792602596,50.20899200439453],[5.21423959732067,50.210563659668026],[5.212089538574332,50.21218109130853],[5.210633754730281,50.215087890625],[5.212122440338135,50.220794677734375],[5.219893455505484,50.2233238220216],[5.228954792022704,50.22451782226574],[5.242395877838078,50.2248992919923],[5.247392177581787,50.225627899169865],[5.254805564880314,50.22775650024414],[5.262778759002686,50.23210525512689],[5.268091678619498,50.23441314697271],[5.275614261627197,50.23686599731457],[5.286271095275993,50.23960494995117],[5.293972969055233,50.240257263183594],[5.309916973114127,50.240200042724666],[5.315797328949088,50.24041748046875],[5.321409702301139,50.24127960205084],[5.328474044799805,50.2433471679688],[5.333349227905386,50.24553680419933],[5.339396476745549,50.24900436401373],[5.361606597900391,50.2628288269043],[5.376125335693416,50.27238845825195],[5.38101434707653,50.276371002197266],[5.386126518249455,50.27891540527355],[5.390315055847282,50.28215408325201],[5.395308971405029,50.284622192382926],[5.403212070465145,50.28690338134777],[5.40764760971075,50.28970336914068],[5.417450904846248,50.293296813964844],[5.422087192535457,50.296443939208984],[5.425021648406982,50.30241394042969],[5.427992343902645,50.306793212890625],[5.419111251831112,50.30937194824224],[5.406338214874268,50.31085586547862],[5.399314880371151,50.3121070861817],[5.391419887542781,50.31218338012707],[5.376050949096792,50.30971908569347],[5.364690780639648,50.305889129638786],[5.359693050384578,50.30518722534179],[5.353252887725944,50.305889129638786],[5.349560737609806,50.30951690673828],[5.349369049072266,50.31279373168939],[5.350498199462891,50.3161354064942],[5.354677677154598,50.319702148437614],[5.359222888946647,50.321224212646484],[5.369189262390137,50.32251739501959],[5.37816429138195,50.32474136352545],[5.389658927917537,50.32952117919922],[5.392368316650447,50.33157348632807],[5.393674373626823,50.33448791503906],[5.394681930542049,50.34075164794922],[5.39654636383068,50.3443336486817],[5.402202606201172,50.34857940673828],[5.406364440918026,50.35548019409191],[5.407655715942326,50.359909057617244],[5.407919883728141,50.36567306518555],[5.407131671905574,50.37020874023443],[5.403191089630127,50.37645721435547],[5.398816108703613,50.38139343261719],[5.408824443817196,50.385765075683594],[5.419932842254696,50.391941070556584],[5.426841259002742,50.3967742919923],[5.429345607757567,50.40009307861328],[5.429896831512565,50.40337753295909],[5.428994178771916,50.40658569335937],[5.422833442687988,50.413516998291016],[5.419975280761832,50.41748428344738],[5.418365478515682,50.422855377197266],[5.418218612671011,50.42753601074219],[5.424934864044189,50.42686462402349],[5.429902076721305,50.42565536499035],[5.434639453887939,50.42350387573248],[5.446499824523926,50.416999816894645],[5.464316368103084,50.40985488891612],[5.470851898193359,50.40834426879877],[5.475772380828914,50.408390045166016],[5.48928260803234,50.410377502441406],[5.497604846954346,50.41300201416027],[5.514938354492301,50.42178344726574],[5.52407693862915,50.410701751708984],[5.525614261627311,50.406856536865234],[5.5272154808045,50.400115966796875],[5.536644458770866,50.393123626708984],[5.540555477142448,50.39100646972661],[5.547785758972225,50.38854217529302],[5.554653644561881,50.387462615966854],[5.562268257141113,50.387298583984375],[5.569744586944523,50.38790893554687],[5.586047649383602,50.39056396484375],[5.600898742675838,50.39413833618169],[5.608777999878043,50.39379501342785],[5.615801334381217,50.39049148559576],[5.621923446655387,50.38518905639654],[5.630400180816764,50.38002777099604],[5.641636371612663,50.370246887207145],[5.647420883178768,50.364135742187614],[5.659805297851562,50.36408996582036],[5.673711776733455,50.36345291137701],[5.68165493011486,50.360370635986385],[5.687608242034912,50.35860443115246],[5.71187067031866,50.35311889648449],[5.731984138488713,50.34972000122076],[5.727275848388729,50.34554672241222],[5.722978115081901,50.340534210205135],[5.717879772186279,50.33301925659179],[5.716803550720215,50.32824707031256],[5.716147422790641,50.318359375000114],[5.71616601943981,50.31222534179693],[5.716939926147403,50.30864715576183],[5.720292091369629,50.304374694824276],[5.724039554595947,50.30170059204112],[5.730032444000244,50.29885864257818],[5.737184047698974,50.297615051269645],[5.746017932891903,50.297252655029354],[5.75197696685791,50.295738220214844],[5.753684043884333,50.29210281372076],[5.752376556396484,50.28929138183594],[5.747006416320914,50.284439086914176],[5.737285614013786,50.27385711669927],[5.732365131378231,50.266357421875],[5.729144096374568,50.25674438476568],[5.738603115081844,50.25831222534185],[5.757280349731388,50.259403228759766],[5.771761894226188,50.26264190673834],[5.780876159667912,50.26285171508789],[5.789703845977897,50.26137542724621],[5.797335624694938,50.26084518432623],[5.817029476165771,50.2603988647462],[5.828647613525504,50.26063537597656],[5.839586257934626,50.262168884277344],[5.858254909515323,50.263328552246094],[5.87146186828619,50.26553344726574],[5.884195804596061,50.26822662353527],[5.890383720398063,50.27196121215832],[5.892017364501953,50.275272369384766],[5.892149448394775,50.27861022949219],[5.8895583152771,50.28253936767589],[5.88331317901617,50.283985137939396],[5.872703075408879,50.284427642822266],[5.869237899780329,50.285072326660156],[5.865231990814209,50.28700637817394],[5.863467693328857,50.28884506225591],[5.863310813903809,50.29377365112305],[5.869552135467586,50.30230331420893],[5.871038913726863,50.30799102783203],[5.870245933532772,50.312614440918026],[5.864109516143798,50.32346343994146],[5.865939617156926,50.32722473144531],[5.873032569885197,50.33439254760742],[5.882838249206543,50.34011459350586],[5.890114307403564,50.34057998657238],[5.895849227905217,50.33860015869152],[5.905023574829158,50.333686828613274],[5.915364742279166,50.33044052124029],[5.92260217666626,50.32973098754894],[5.933762073516789,50.3296623229981],[5.940999507904053,50.33013534545909],[5.949781894683838,50.3315048217774],[5.956703662872314,50.33152770996105],[5.96143627166748,50.33077239990246],[5.968837261200008,50.32860183715832],[5.982793807983512,50.323287963867244],[5.99491024017334,50.31931686401367],[6.015793800354061,50.3088264465332],[6.019784927368164,50.305419921875114],[6.021731853485221,50.30103302001964],[6.021990776062125,50.29749298095703],[6.021128177642936,50.287914276123104],[6.020225048065242,50.28444671630871],[6.01718282699585,50.27767944335943],[6.01547288894659,50.26318359375006],[6.012867450714111,50.255615234375114],[6.01126861572277,50.24929809570318],[6.011526107788143,50.24352645874035],[6.015602111816463,50.23347473144537],[6.018742561340388,50.22844696044921],[6.019141674041862,50.22132492065435],[6.023306846618652,50.2051773071289],[6.025649070739803,50.20196533203131],[6.031780719757137,50.19601058959972],[6.033082485199202,50.19293975830078],[6.032835483551082,50.18996047973627],[6.030869960784855,50.1855735778808],[6.028417110443171,50.17782592773449],[6.026518821716252,50.17766952514654]]]},"properties":{"ID_0":23,"ISO":"BE-WLX","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":11,"NAME_2":"Luxembourg","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Lussemburgo|Luxemburg|Luxemburgo"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.398816108703613,50.38139343261719],[5.403191089630127,50.37645721435547],[5.407131671905574,50.37020874023443],[5.407919883728141,50.36567306518555],[5.407655715942326,50.359909057617244],[5.406364440918026,50.35548019409191],[5.402202606201172,50.34857940673828],[5.39654636383068,50.3443336486817],[5.394681930542049,50.34075164794922],[5.393674373626823,50.33448791503906],[5.392368316650447,50.33157348632807],[5.389658927917537,50.32952117919922],[5.37816429138195,50.32474136352545],[5.369189262390137,50.32251739501959],[5.359222888946647,50.321224212646484],[5.354677677154598,50.319702148437614],[5.350498199462891,50.3161354064942],[5.349369049072266,50.31279373168939],[5.349560737609806,50.30951690673828],[5.353252887725944,50.305889129638786],[5.359693050384578,50.30518722534179],[5.364690780639648,50.305889129638786],[5.376050949096792,50.30971908569347],[5.391419887542781,50.31218338012707],[5.399314880371151,50.3121070861817],[5.406338214874268,50.31085586547862],[5.419111251831112,50.30937194824224],[5.427992343902645,50.306793212890625],[5.425021648406982,50.30241394042969],[5.422087192535457,50.296443939208984],[5.417450904846248,50.293296813964844],[5.40764760971075,50.28970336914068],[5.403212070465145,50.28690338134777],[5.395308971405029,50.284622192382926],[5.390315055847282,50.28215408325201],[5.386126518249455,50.27891540527355],[5.38101434707653,50.276371002197266],[5.376125335693416,50.27238845825195],[5.361606597900391,50.2628288269043],[5.339396476745549,50.24900436401373],[5.333349227905386,50.24553680419933],[5.328474044799805,50.2433471679688],[5.321409702301139,50.24127960205084],[5.315797328949088,50.24041748046875],[5.309916973114127,50.240200042724666],[5.293972969055233,50.240257263183594],[5.286271095275993,50.23960494995117],[5.275614261627197,50.23686599731457],[5.268091678619498,50.23441314697271],[5.262778759002686,50.23210525512689],[5.254805564880314,50.22775650024414],[5.247392177581787,50.225627899169865],[5.242395877838078,50.2248992919923],[5.228954792022704,50.22451782226574],[5.219893455505484,50.2233238220216],[5.212122440338135,50.220794677734375],[5.210633754730281,50.215087890625],[5.212089538574332,50.21218109130853],[5.21423959732067,50.210563659668026],[5.220071792602596,50.20899200439453],[5.230731010437012,50.21018218994146],[5.236346244812125,50.20970153808588],[5.238508224487362,50.20858764648437],[5.242084503173885,50.204174041748104],[5.246477127075309,50.20160675048834],[5.249981403350886,50.1984596252442],[5.254307270050049,50.195755004882926],[5.25595378875738,50.192962646484375],[5.257816314697266,50.18520736694336],[5.261561870574951,50.17953872680669],[5.267596244812069,50.17333602905285],[5.274393558502311,50.164855957031364],[5.277907848358211,50.161186218261776],[5.281607627868709,50.15863800048828],[5.286805629730337,50.15622711181646],[5.287253856658992,50.150798797607536],[5.289266586303824,50.14371109008795],[5.288966655731144,50.140548706054744],[5.286091804504395,50.137203216552784],[5.279349327087458,50.13499450683594],[5.271437168121451,50.1332015991212],[5.269291877746582,50.13184738159179],[5.267692565918025,50.128971099853516],[5.267220973968506,50.12570571899414],[5.268110752105713,50.11773300170898],[5.270146369934139,50.113185882568416],[5.271226882934684,50.107295989990284],[5.271255970001278,50.10119247436529],[5.259789466858024,50.10118865966797],[5.252452373504696,50.10057449340826],[5.232388019561767,50.09676361083996],[5.219791412353629,50.09572601318365],[5.210887908935547,50.09428024291998],[5.19843053817749,50.0930290222169],[5.188194751739502,50.089920043945256],[5.18312644958496,50.088947296142635],[5.175599098205623,50.08855056762695],[5.152327060699463,50.08861541748047],[5.139672756195125,50.09345626831055],[5.132795810699577,50.09445190429699],[5.120248794555664,50.09440994262695],[5.107924938201904,50.09242248535156],[5.100488185882568,50.091892242431754],[5.093100070953483,50.09220504760748],[5.089592456817626,50.09294509887701],[5.083697795868034,50.09684753417969],[5.082401275634822,50.100231170654354],[5.082190990448055,50.10377502441412],[5.082661151885986,50.11481094360346],[5.082617282867545,50.12315750122082],[5.065189361572266,50.11896514892578],[5.061727523803825,50.115493774414055],[5.059979915618896,50.10638427734375],[5.057302474975643,50.0994873046875],[5.056509494781608,50.09223175048828],[5.056472301483211,50.0860977172851],[5.057415485382194,50.0789413452149],[5.059660434722956,50.07334899902344],[5.05912542343151,50.06676864624023],[5.053401947021541,50.05948638916021],[5.046137332916203,50.053573608398494],[5.043961524963379,50.052497863769645],[5.035602569580077,50.05009841918957],[5.027714252471924,50.04559707641601],[5.022318363189697,50.040901184081974],[5.01129245758051,50.03298950195318],[5.00034952163702,50.030941009521484],[4.994700431823844,50.02841949462896],[4.986419677734489,50.02378845214843],[4.989341735839844,50.019729614257756],[4.9929456710816,50.013000488281364],[4.993929862976188,50.008872985839844],[5.001542091369743,50.00467300415045],[5.013537883758488,49.993785858154354],[5.01551532745367,49.99076843261719],[5.021350383758659,49.97858428955078],[5.024100303649959,49.97511672973638],[5.02729511260992,49.97323608398437],[5.030410289764518,49.972602844238395],[5.037071228027344,49.97273254394537],[5.040369987487793,49.9734497070313],[5.047593593597526,49.976196289062614],[5.052814006805534,49.97937774658208],[5.057147979736328,49.979793548583984],[5.063361644744987,49.97838973999035],[5.070174694061336,49.97454071044922],[5.075232505798397,49.97094345092785],[5.080753326416129,49.9659080505371],[5.084937572479362,49.960052490234375],[5.089766502380485,49.95676422119152],[5.100841045379752,49.95254135131836],[5.104503631591796,49.95011520385747],[5.107882499694824,49.94445800781256],[5.107609272003174,49.94049835205084],[5.105884075164795,49.936149597168075],[5.105774402618521,49.93078231811523],[5.107423305511531,49.925476074218864],[5.107078552246094,49.9224967956544],[5.104967594146785,49.91952896118163],[5.098744869232235,49.915523529052734],[5.090999126434325,49.912300109863395],[5.078346729278564,49.90569305419921],[5.070842266082821,49.9023551940918],[5.061678886413688,49.895877838134766],[5.054522514343319,49.89167785644537],[5.052694797515983,49.888950347900504],[5.050579547882079,49.88017272949219],[5.046802997589111,49.87197875976568],[5.040966033935547,49.87051391601574],[5.032432556152287,49.86735153198248],[5.028169155120963,49.86430358886719],[5.016336917877311,49.859157562255916],[5.003977775573787,49.85490036010742],[4.999894142150879,49.85316085815429],[4.993558883667049,49.84904861450201],[4.982779026031494,49.83829879760742],[4.985722541809139,49.83541488647461],[4.990031719207877,49.82896423339855],[4.991033554077148,49.82542419433593],[4.991074562072697,49.82057952880871],[4.990237712860221,49.81704711914068],[4.984670639038199,49.81009292602544],[4.979460716247615,49.806648254394645],[4.978381156921387,49.80408096313488],[4.98153734207159,49.80416107177746],[4.979648590088004,49.80058670043951],[4.97182035446167,49.80039596557623],[4.955675601959342,49.80054092407226],[4.946673870086726,49.79714202880853],[4.94302415847784,49.79068374633795],[4.935624599456901,49.791282653808594],[4.931437492370605,49.78670883178722],[4.92133092880249,49.788513183593864],[4.90623140335083,49.78560256958002],[4.897636890411491,49.78892135620122],[4.887263298034725,49.788047790527344],[4.874958992004508,49.79319763183594],[4.86173915863037,49.78927612304698],[4.85510158538824,49.79457092285162],[4.873641490936222,49.81897354125971],[4.867420196533203,49.83863830566412],[4.858623504638672,49.84255218505859],[4.855106830596924,49.84902191162104],[4.851549625396841,49.86268997192383],[4.861937522888184,49.86978149414073],[4.88287687301647,49.898448944091854],[4.885178089141903,49.91216278076172],[4.878683567047176,49.921905517578125],[4.858426570892391,49.93370437622076],[4.84519624710083,49.948928833007926],[4.813847064972038,49.9542694091798],[4.790924072265739,49.95839691162115],[4.790004730224666,49.96889495849615],[4.79558706283575,49.982219696045036],[4.805953979492244,49.984195709228516],[4.815224170684871,49.9924812316895],[4.816493988037109,49.99771499633789],[4.820602416992244,50.02365493774414],[4.840087890625057,50.04034423828125],[4.837235927581901,50.04634094238287],[4.828101158142204,50.04993057250987],[4.828003883361816,50.05693054199219],[4.819240093231201,50.060676574707145],[4.820781230926571,50.06526565551758],[4.839155197143668,50.06970977783203],[4.840480804443359,50.08279418945318],[4.845305442810002,50.08378219604492],[4.840224266052302,50.092983245849666],[4.850132942199764,50.10017776489258],[4.859797477722225,50.09827041625976],[4.863494873046875,50.09170150756847],[4.868221282959041,50.089984893798935],[4.872434616088924,50.092166900634766],[4.869122505187988,50.11978530883789],[4.877838611602897,50.12842178344732],[4.8956556320191,50.13627624511719],[4.895352840423584,50.13976669311535],[4.884614944458121,50.141181945800895],[4.874876022338867,50.15338516235351],[4.831695556640681,50.15510559082042],[4.822806835174617,50.167644500732365],[4.802541255950985,50.1510620117188],[4.779678344726676,50.141334533691456],[4.765172958373967,50.13739395141607],[4.755962371826115,50.12163543701172],[4.751018047332821,50.12127685546881],[4.751345634460563,50.111740112304744],[4.715218067169189,50.100044250488274],[4.713411808013972,50.097003936767635],[4.702781200408936,50.095653533935604],[4.681884288787899,50.067626953125],[4.686844348907528,50.057704925537166],[4.697027683258057,50.0592880249024],[4.696432590484619,50.043132781982415],[4.686632633209229,50.02778244018566],[4.688542366027889,50.01136779785156],[4.686140537261963,50.00494384765631],[4.694599151611328,49.996498107910156],[4.66801643371582,49.99634933471691],[4.633237838745116,49.98746490478527],[4.595972061157283,49.98596191406244],[4.576035976409969,49.98111724853521],[4.570190429687557,49.97362899780285],[4.561534881591854,49.969833374023494],[4.540829181671199,49.9682350158692],[4.524165630340576,49.95132064819347],[4.511319160461426,49.94680786132824],[4.479779243469351,49.947128295898494],[4.450855731964225,49.93864822387701],[4.450994491577262,49.955272674560604],[4.449770927429313,49.96104431152344],[4.444722175598145,49.9670791625976],[4.436538219451904,49.97109222412104],[4.431720256805477,49.97441864013677],[4.428246974945124,49.97840118408203],[4.4261536598205,49.98204421997081],[4.425337314605827,49.98793411254894],[4.425655841827449,50.00249862670898],[4.42480373382574,50.01198959350597],[4.422223091125488,50.01876831054682],[4.421065330505485,50.03277587890631],[4.416442871093807,50.04484176635742],[4.409865856170711,50.053115844726555],[4.405756473541317,50.06025314331049],[4.401334762573299,50.0696754455567],[4.400547504424992,50.075740814208984],[4.400582313537597,50.09574508666992],[4.398709774017334,50.104042053222656],[4.403716564178467,50.11230850219737],[4.405216693878231,50.11898803710943],[4.402402400970515,50.123310089111385],[4.395810604095459,50.136337280273494],[4.391487121582088,50.143589019775504],[4.389312744140624,50.14542007446295],[4.381018638610954,50.14970779418939],[4.377694606781063,50.152374267578175],[4.375771045684871,50.155643463134766],[4.375375270843563,50.159122467041016],[4.376250743865967,50.162532806396484],[4.378743171691895,50.1654167175293],[4.38631534576416,50.16932296752941],[4.390590190887565,50.172328948974666],[4.398855209350643,50.17614364624029],[4.402405738830679,50.178672790527344],[4.404869556427001,50.18177032470709],[4.406074523925781,50.18765258789068],[4.405948162078914,50.204803466796875],[4.4070019721986,50.21436309814458],[4.409997463226432,50.222316741943416],[4.410700798034782,50.23302078247082],[4.39186620712286,50.240074157714844],[4.384006977081299,50.243316650390625],[4.375470161437931,50.24444198608404],[4.370472431182861,50.243671417236385],[4.364596366882324,50.24002075195307],[4.3608660697937,50.2346420288087],[4.357593536377009,50.23203659057623],[4.351780891418571,50.22957611083984],[4.345670700073299,50.22918701171875],[4.341716289520377,50.229736328125],[4.318380355835018,50.23719787597656],[4.311021327972355,50.240852355957024],[4.307253837585506,50.24347305297857],[4.304061412811392,50.24752426147472],[4.304174423217773,50.25156402587896],[4.309113502502498,50.25743865966797],[4.319901466369629,50.262176513671875],[4.329781532287711,50.26607894897461],[4.336028575897274,50.26922607421875],[4.340666770935059,50.270889282226676],[4.346035957336483,50.27172851562499],[4.357057571411246,50.2725181579591],[4.362391948699951,50.27368927001959],[4.370102882385254,50.277580261230575],[4.376698493957576,50.28261947631847],[4.383900165557975,50.285041809081974],[4.398056983947868,50.28877639770508],[4.402159214019775,50.29049682617193],[4.405935287475642,50.293903350830014],[4.411571502685604,50.304355621338004],[4.416154384613037,50.30694961547857],[4.421182632446231,50.30746078491211],[4.430087089538631,50.30675888061529],[4.437129974365291,50.305274963378906],[4.449708461761475,50.303726196289006],[4.460053920745906,50.301925659179744],[4.465182304382381,50.30199432373058],[4.470005035400504,50.30313873291027],[4.475190162658691,50.30727386474614],[4.477860927581901,50.31339263916021],[4.4830002784729,50.31981277465832],[4.485584735870474,50.32569885253906],[4.4931321144104,50.32608032226562],[4.500091075897274,50.32588577270513],[4.504807949066105,50.325122833252],[4.510960578918457,50.3232192993164],[4.518175125122127,50.31887054443364],[4.524686336517447,50.3110084533692],[4.535837173461914,50.31018829345714],[4.540560245513916,50.310272216796875],[4.553505420684871,50.31257247924816],[4.561775684356803,50.31449127197271],[4.575077533721923,50.31703186035167],[4.595333576202393,50.317977905273544],[4.5995774269104,50.324565887451286],[4.600812911987305,50.329292297363224],[4.600512504577637,50.33530044555658],[4.597183227539006,50.34453582763683],[4.596727371215877,50.35315322875982],[4.597908973693961,50.36178207397472],[4.604414939880371,50.37377548217785],[4.605379104614371,50.37836074829113],[4.604900836944637,50.38293075561535],[4.603039264679012,50.38831329345709],[4.603271007537899,50.39128112792963],[4.604897975921745,50.394111633300895],[4.609344482421989,50.39909362792963],[4.618285655975342,50.4146957397462],[4.619794368743952,50.421844482421875],[4.618886470794735,50.42646026611334],[4.617339134216422,50.42851638793957],[4.613696575164852,50.430828094482536],[4.609135627746582,50.432071685791065],[4.584446430206299,50.43452835083008],[4.588118553161678,50.440975189208984],[4.587961196899471,50.447505950927734],[4.59100675582897,50.457923889160206],[4.597136020660457,50.46677398681652],[4.601460933685303,50.47496795654308],[4.602882862091064,50.4828262329101],[4.598659515380859,50.48805618286144],[4.594860076904297,50.49040985107433],[4.588681221008414,50.49188613891596],[4.584355831146297,50.49145889282238],[4.57793569564825,50.4879035949707],[4.569901943206787,50.4868736267091],[4.563318252563477,50.4877662658692],[4.560823917388973,50.48932266235357],[4.559164047241325,50.4946174621582],[4.560025691986027,50.50659561157226],[4.561088562011832,50.510074615478516],[4.564922809600944,50.517322540283196],[4.570760726928824,50.52461624145513],[4.578056335449332,50.531257629394645],[4.582718372345028,50.53672409057617],[4.581291675567627,50.54666900634777],[4.579463481903076,50.5513076782226],[4.595211029052734,50.55885314941412],[4.604893207550106,50.56188964843756],[4.611181735992432,50.56536102294933],[4.615025520324821,50.565616607666065],[4.618427753448486,50.564117431640625],[4.618077278137321,50.56226730346674],[4.635144710540884,50.56060409545898],[4.646832466125601,50.56032943725597],[4.656463146209774,50.560424804687614],[4.661992073059082,50.56091308593756],[4.672809123992977,50.563148498535156],[4.676634788513297,50.566009521484375],[4.676993370056209,50.56889343261719],[4.672712326049805,50.57941055297863],[4.668494701385555,50.58523559570324],[4.66374063491827,50.59029006958019],[4.662203311920166,50.593120574951286],[4.6626815795899,50.59701919555664],[4.665044307708797,50.600017547607536],[4.670643329620361,50.600440979003956],[4.675240039825552,50.5999488830567],[4.691704750061092,50.59421539306635],[4.69688892364502,50.593303680420036],[4.705554485321045,50.59389114379894],[4.710159778595084,50.595699310302734],[4.713971138000602,50.59809875488281],[4.719387531280574,50.6027221679688],[4.723093986511344,50.60494613647472],[4.734898567199764,50.60874557495123],[4.743273258209229,50.596889495849666],[4.748872756958008,50.59134674072277],[4.756371021270751,50.59053421020507],[4.762670040130672,50.59263610839855],[4.772855758666992,50.59829711914068],[4.779115200042725,50.6004257202149],[4.790669918060303,50.60276794433605],[4.797270774841309,50.60321044921875],[4.816554546356201,50.603176116943416],[4.823665618896598,50.603435516357536],[4.834124565124625,50.6050758361817],[4.848811149597282,50.60637283325195],[4.858005046844539,50.60569381713873],[4.867044925689697,50.60577392578131],[4.88788461685192,50.60875701904297],[4.895470142364502,50.610988616943416],[4.899568557739257,50.61273193359375],[4.904648303985653,50.61585235595709],[4.909219264984131,50.619411468505916],[4.914490699768123,50.621200561523494],[4.941232204437256,50.625701904296875],[4.948588371276799,50.6261558532716],[4.955821514129696,50.635490417480526],[4.963919162750301,50.64240264892584],[4.966705799102897,50.64415740966808],[4.971055507659969,50.64504241943365],[4.975744724273738,50.64482879638672],[4.990897178649901,50.641307830810604],[4.990725040435848,50.63310623168951],[4.989913940429688,50.62743759155279],[4.987081050872746,50.620742797851555],[4.985814571380672,50.61512756347661],[4.999832630157527,50.60455322265625],[5.004900455474966,50.60006713867193],[5.009727001190242,50.597507476806754],[5.01343679428112,50.59441375732416],[5.018319606781006,50.591899871826165],[5.023402214050293,50.587989807128906],[5.030356407165526,50.58506393432623],[5.035779953003042,50.57768249511719],[5.038270473480337,50.572830200195426],[5.045983791351318,50.56255340576166],[5.04908990859991,50.559646606445426],[5.056023597717342,50.554847717285206],[5.053042411804256,50.54648971557617],[5.048236846923828,50.539886474609375],[5.041014194488582,50.53319549560547],[5.033514022827261,50.52386856079107],[5.032145023346004,50.520915985107415],[5.029245376586857,50.510002136230526],[5.04451227188116,50.511505126953125],[5.053321361541748,50.512966156005916],[5.070198059081974,50.514129638671875],[5.086155891418399,50.5180778503418],[5.096908569335881,50.51868057250982],[5.101803779602051,50.51778793334972],[5.104135990142822,50.51655197143555],[5.107691764831543,50.512149810791016],[5.110570907592887,50.50683212280273],[5.114950180053825,50.503639221191406],[5.121635437011776,50.502113342285156],[5.132845878601074,50.50188064575201],[5.141460418701172,50.50042724609375],[5.145916938781737,50.49425125122076],[5.153983116149959,50.487365722656364],[5.162626266479606,50.47906875610363],[5.171534538269157,50.46862792968756],[5.181001663208065,50.46873474121094],[5.187576293945369,50.46954727172863],[5.192002773285026,50.47100448608404],[5.206289768218994,50.47747039794933],[5.214740276336784,50.470050811767635],[5.219542503356933,50.46254730224615],[5.221206188201904,50.45458221435558],[5.224419593811092,50.44944000244152],[5.22763013839733,50.44629669189459],[5.235603332519531,50.44124603271479],[5.238649368286246,50.43559646606457],[5.241974830627498,50.43136215209966],[5.23785495758068,50.42662429809582],[5.233579158783016,50.41982650756836],[5.228535175323485,50.40628814697277],[5.235250473022517,50.405223846435604],[5.245121955871639,50.402999877929744],[5.258191108703556,50.40199661254894],[5.263683795928955,50.401279449463],[5.271278858184871,50.39908599853526],[5.279173851013296,50.39479064941412],[5.28209400177002,50.391876220703125],[5.286416053772029,50.38368606567394],[5.288509845733699,50.378856658935604],[5.292446613311768,50.37347412109381],[5.297856330871696,50.37003326416021],[5.302789688110352,50.36597824096691],[5.30847692489624,50.363773345947266],[5.315358638763428,50.36343765258795],[5.322180747985839,50.3650741577149],[5.329523563385123,50.36902236938488],[5.345247268676871,50.37941360473633],[5.352109432220572,50.38130187988292],[5.367567539215202,50.38224029541021],[5.377845287323055,50.38354110717785],[5.382594585418815,50.38347244262701],[5.390975475311279,50.38208770751964],[5.398816108703613,50.38139343261719]]]},"properties":{"ID_0":23,"ISO":"BE-WNA","NAME_0":"Belgium","ID_1":3,"NAME_1":"Wallonie","ID_2":12,"NAME_2":"Namur","TYPE_2":"Provincie","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Namen"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/brazil.geojson b/superset/assets/visualizations/countries/brazil.geojson new file mode 100644 index 0000000000000..17be89576d7f7 --- /dev/null +++ b/superset/assets/visualizations/countries/brazil.geojson @@ -0,0 +1,29 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-66.80647277832031,-9.81451988220209],[-66.58875274658202,-9.903196334838809],[-66.63828277587885,-9.952140808105469],[-66.7502212524414,-9.99507999420166],[-66.99236297607416,-10.204010009765623],[-67.01644897460938,-10.258200645446664],[-67.13136291503906,-10.293260574340763],[-67.1877670288086,-10.340650558471623],[-67.31526184082031,-10.319379806518498],[-67.31144714355469,-10.372899055480957],[-67.4079360961914,-10.374230384826658],[-67.44438934326172,-10.45528125762928],[-67.5800476074218,-10.503149032592717],[-67.68360137939447,-10.627440452575627],[-67.70793151855463,-10.710809707641602],[-67.82022857666016,-10.661049842834416],[-68.00425720214844,-10.653699874877928],[-68.10623931884766,-10.717230796813965],[-68.10421752929688,-10.775760650634707],[-68.19725799560541,-10.859410285949648],[-68.2383422851562,-10.956472396850584],[-68.38996124267578,-11.042490959167424],[-68.48832702636713,-11.050909996032713],[-68.54354095458979,-11.110361099243107],[-68.71676635742188,-11.145160675048828],[-68.76608276367188,-11.066539764404238],[-68.74891662597656,-11.010899543762207],[-68.88318634033202,-11.010660171508789],[-69.16162872314442,-10.962751388549691],[-69.31207275390625,-10.956351280212346],[-69.42356109619139,-10.92717266082758],[-69.53333282470697,-10.959650993347168],[-69.5987091064453,-10.941499710083008],[-69.73591613769526,-10.974209785461426],[-69.78900909423828,-10.92953872680664],[-69.95445251464844,-10.928730010986271],[-70.09455871582031,-10.989529609680062],[-70.15896606445307,-11.040182113647404],[-70.34787750244135,-11.067590713500975],[-70.43826293945312,-11.026809692382812],[-70.47551727294922,-10.971369743347168],[-70.55108642578125,-10.939208984374943],[-70.62786102294922,-11.003930091857796],[-70.62696075439453,-10.366289138793888],[-70.62670135498045,-9.833668708801213],[-70.52765655517572,-9.723990440368652],[-70.5979766845703,-9.606190681457463],[-70.49446105957026,-9.42999076843256],[-70.58666229248047,-9.443670272827148],[-70.66055297851562,-9.521430015563965],[-70.74697875976557,-9.562990188598633],[-70.79995727539062,-9.641988754272404],[-70.86926269531244,-9.665190696716252],[-70.99816894531249,-9.818079948425236],[-71.05198669433588,-9.815939903259277],[-71.17040252685547,-9.889410018920898],[-71.22229766845697,-9.970390319824162],[-71.37586212158197,-10.000708580017033],[-72.18033599853516,-10.000248908996525],[-72.14660644531244,-9.87427043914795],[-72.15141296386719,-9.797018051147461],[-72.21560668945312,-9.777910232543832],[-72.25887298583973,-9.712698936462346],[-72.28190612792969,-9.542189598083496],[-72.40880584716797,-9.477060317993164],[-72.51763153076172,-9.486050605773869],[-72.71604919433588,-9.412429809570312],[-73.20939636230463,-9.413648605346678],[-73.18131256103516,-9.35459899902338],[-73.0344467163086,-9.23316860198969],[-72.94046020507807,-9.096088409423828],[-72.95246887207026,-8.987269401550291],[-73.03784942626953,-8.902419090270996],[-73.16226196289057,-8.707448005676213],[-73.26788330078125,-8.684700012207031],[-73.34092712402344,-8.583049774169922],[-73.34144592285155,-8.476998329162598],[-73.38812255859364,-8.472510337829533],[-73.5289688110351,-8.350530624389592],[-73.5373764038086,-8.260467529296818],[-73.58316040039062,-8.199200630187988],[-73.59085845947259,-8.11264801025385],[-73.63197326660145,-8.02011966705322],[-73.74674987792969,-7.956039905548038],[-73.76560974121094,-7.870499134063663],[-73.68350219726562,-7.843179225921517],[-73.7019271850586,-7.760611057281437],[-73.8222885131836,-7.715528964996338],[-73.93651580810545,-7.604518890380802],[-73.9446029663086,-7.522879123687743],[-73.91761016845703,-7.434829235076847],[-73.82057189941406,-7.337989807128906],[-73.6926498413086,-7.313790798187199],[-73.71446228027338,-7.220189094543456],[-73.78547668457031,-7.121319770812931],[-73.27481842041009,-7.350334167480468],[-72.65934753417969,-7.624979019164981],[-72.17317962646484,-7.723841190338136],[-72.00514221191406,-7.774846076965331],[-71.56923675537104,-7.874255180358887],[-70.93741607666016,-8.019089698791447],[-70.36952209472649,-8.141402244567814],[-69.43577575683588,-8.641596794128361],[-69.17823028564453,-8.76795864105219],[-68.78499603271477,-8.972588539123478],[-68.62057495117182,-9.048132896423338],[-67.94033813476557,-9.33721923828125],[-67.32801055908202,-9.594555854797306],[-66.80647277832031,-9.81451988220209]]]},"properties":{"ID_0":33,"ISO":"BR-AC","NAME_0":"Brazil","ID_1":1,"NAME_1":"Acre","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-35.151824951171875,-8.909582138061467],[-35.21597290039051,-9.006249427795353],[-35.3073616027832,-9.194026947021484],[-35.39847183227533,-9.304027557373047],[-35.485416412353516,-9.371251106262207],[-35.49819564819336,-9.415415763854924],[-35.678749084472656,-9.602084159851074],[-35.723194122314446,-9.676527023315373],[-35.815139770507756,-9.73319339752197],[-36.05930709838856,-10.085140228271484],[-36.28125,-10.285416603088322],[-36.29375076293945,-10.353471755981444],[-36.3912506103515,-10.501435279846078],[-36.431404113769474,-10.424283981323185],[-36.56361389160145,-10.417773246765137],[-36.5667839050293,-10.332721710205078],[-36.642982482910156,-10.252683639526367],[-36.68416976928711,-10.274503707885742],[-36.836849212646484,-10.202178001403809],[-36.954299926757756,-10.07064437866211],[-36.968685150146484,-9.992102622985783],[-37.0377311706543,-9.989083290100098],[-37.1528434753418,-9.900853157043455],[-37.226463317871094,-9.899447441101074],[-37.28530502319336,-9.830959320068303],[-37.41886520385731,-9.762598991394041],[-37.58171844482416,-9.733977317810059],[-37.711666107177734,-9.631301879882812],[-37.785133361816406,-9.638580322265625],[-37.88607406616199,-9.550169944763127],[-38.003326416015625,-9.515005111694336],[-38.028564453125,-9.46804141998291],[-38.154861450195305,-9.443422317504826],[-38.23633956909174,-9.330999374389592],[-38.20287322998041,-9.296895980834961],[-38.09219741821289,-9.172728538513127],[-37.97925186157226,-9.148381233215332],[-37.839004516601555,-8.978388786315918],[-37.82899475097656,-8.893792152404783],[-37.76020812988281,-8.857633590698242],[-37.643535614013615,-9.018292427062988],[-37.54106903076172,-8.958485603332463],[-37.46926498413086,-9.027680397033691],[-37.31540298461914,-9.094281196594181],[-37.233440399169865,-9.206595420837402],[-37.08388137817383,-9.252321243286076],[-36.95230484008783,-9.382543563842773],[-36.869724273681584,-9.268610000610352],[-36.79700469970703,-9.293032646179197],[-36.69368743896479,-9.275333404541016],[-36.586120605468636,-9.338085174560547],[-36.43685531616205,-9.212104797363281],[-36.36554718017578,-9.222623825073242],[-36.274009704589844,-9.166200637817326],[-36.19557571411127,-9.044831275939941],[-36.123943328857365,-9.03048133850092],[-36.12674331665038,-8.956012725830078],[-35.91111755371094,-8.861369132995605],[-35.78740692138666,-8.85112476348877],[-35.748203277587834,-8.91714382171625],[-35.669788360595696,-8.895236968994027],[-35.51782608032226,-8.817352294921875],[-35.151824951171875,-8.909582138061467]]]},"properties":{"ID_0":33,"ISO":"BR-AL","NAME_0":"Brazil","ID_1":2,"NAME_1":"Alagoas","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-50.40180587768543,2.121249914169425],[-50.31208419799804,1.952916979789734],[-50.35958480834961,1.893195033073425],[-50.43069458007807,1.86736094951641],[-50.493194580078125,1.985416054725647],[-50.50847244262695,2.091249942779655],[-50.40180587768543,2.121249914169425]]],[[[-50.512359619140625,2.191526889801025],[-50.41680526733398,2.118472099304199],[-50.50930404663086,2.099584102630615],[-50.512359619140625,2.191526889801025]]],[[[-50.07069396972645,0.698150992393607],[-50.15738296508778,0.705085992813224],[-50.3471794128418,0.666817009448948],[-50.43649291992182,0.600078999996299],[-50.47615432739258,0.481476008892173],[-50.57986831665039,0.269778013229484],[-50.668140411376896,0.185008004307804],[-50.78474044799805,0.112086996436119],[-50.97479248046874,0.041756998747701],[-51.06561660766601,-0.076251998543739],[-51.21630477905268,-0.118637003004551],[-51.3543968200683,-0.318549007177296],[-51.457733154296875,-0.51325798034668],[-51.59547805786133,-0.650461971759796],[-51.68339157104492,-0.794053971767426],[-51.687171936035156,-1.036034941673279],[-51.80904006958002,-1.157124996185246],[-51.88722991943353,-1.166422009468022],[-51.993343353271484,-1.128998041152954],[-52.10034179687499,-1.22651994228363],[-52.12020492553705,-1.146221995353642],[-52.33293151855469,-1.115913987159729],[-52.41673278808594,-1.025635004043522],[-52.403099060058594,-0.877171993255615],[-52.444263458251896,-0.834191977977753],[-52.516876220703125,-0.858640015125218],[-52.49734878540039,-0.711308002471924],[-52.53512191772461,-0.574110984802189],[-52.63994979858393,-0.584930002689361],[-52.69537734985346,-0.496425986289978],[-52.68411254882807,-0.314339011907578],[-52.851482391357365,-0.150187000632172],[-52.93364715576172,-0.139542996883392],[-52.97723388671875,0.023770000785703],[-53.09406661987305,0.258931994438115],[-53.17525100708002,0.381689995527211],[-53.14381408691406,0.696233987808341],[-53.19021224975586,0.768356978893337],[-53.411434173583984,0.92931699752819],[-53.45718383789057,1.138265013694877],[-53.396018981933594,1.179267048835868],[-53.4387092590332,1.232107043266296],[-53.55662918090814,1.284780025482178],[-53.538490295410156,1.340834975242671],[-53.783660888671875,1.402827978134155],[-53.850280761718686,1.39181494712841],[-53.89593887329095,1.455096960067749],[-53.99946594238281,1.50474405288702],[-54.08868789672845,1.491971015930176],[-54.10188674926757,1.584278941154594],[-54.309246063232415,1.741024017333928],[-54.37765884399408,1.763659954071045],[-54.49588394165038,1.746914982795715],[-54.60185623168939,1.784548997879028],[-54.744716644287045,1.775771975517273],[-54.77152633666986,1.940471053123588],[-54.81127548217768,2.039407968521175],[-54.80619430541992,2.138899087905941],[-54.76305007934564,2.202291011810416],[-54.81135940551758,2.266349077224788],[-54.794185638427734,2.312705993652457],[-54.86752319335937,2.441957950592098],[-54.743125915527344,2.478662014007568],[-54.70319747924805,2.341311931610221],[-54.54849624633789,2.337939023971501],[-54.46967697143548,2.227672100067081],[-54.37231826782221,2.216506004333553],[-54.33214950561518,2.163784980773982],[-54.181068420410156,2.179197072982788],[-54.11005401611322,2.128946065902767],[-54.08483505249023,2.191226005554256],[-53.95952606201172,2.236998081207332],[-53.942764282226506,2.288712024688778],[-53.829345703125,2.314709901809749],[-53.78903198242181,2.365223884582576],[-53.67853927612305,2.286102056503353],[-53.460384368896484,2.331587076187247],[-53.42184829711914,2.286181926727409],[-53.272804260253906,2.293842077255306],[-53.175830841064396,2.221817016601562],[-53.07341766357416,2.223311901092586],[-52.986690521240234,2.171376943588257],[-52.90116882324213,2.193671941757145],[-52.8527946472168,2.286691904068107],[-52.67211914062494,2.375355005264339],[-52.55472564697254,2.523370981216544],[-52.54964065551752,2.615036010742301],[-52.42778015136713,2.88460111618042],[-52.39543914794916,2.8982350826264],[-52.326900482177734,3.088793039321899],[-52.34651565551752,3.135360002517814],[-52.279541015625,3.236496925353947],[-52.228004455566406,3.250556945800895],[-51.9211311340332,3.773808002471924],[-51.79540634155267,3.889528989791984],[-51.75304412841791,3.997621059417838],[-51.65777206420892,4.050793170928955],[-51.60593032836914,4.236526966095028],[-51.55541610717773,4.259028911590576],[-51.57208251953125,4.349306106567382],[-51.51069259643554,4.441249847412052],[-51.40152740478509,4.37041711807251],[-51.21486282348633,4.149306774139461],[-51.174861907958984,4.01013803482067],[-51.12458419799798,3.909029006958121],[-51.0756950378418,3.891804933548087],[-51.08763885498046,3.73791599273693],[-51.07958221435535,3.489583969116211],[-51.088470458984375,3.362637996673584],[-51.03125,3.209861040115356],[-51.04152679443354,3.129582881927547],[-50.94458389282226,2.81847190856945],[-50.88513946533203,2.742916107177848],[-50.84597396850586,2.639581918716374],[-50.833473205566406,2.512083053588867],[-50.79597091674805,2.500416040420532],[-50.722084045410156,2.281527996063289],[-50.72541809082031,2.238472938537654],[-50.59624862670893,2.063193082809391],[-50.58986282348627,1.993193984031791],[-50.534027099609375,1.942360043525753],[-50.45986175537103,1.815417051315364],[-50.40013885498047,1.80152797698986],[-50.17124938964844,1.815139055252189],[-50.02069473266596,1.75680494308483],[-49.925415039062436,1.699028968811035],[-49.8979148864746,1.597638964653072],[-49.876804351806584,1.346528053283691],[-49.91986083984375,1.2801389694215],[-49.86680603027344,1.196805000305233],[-49.91069412231445,1.132359981536865],[-49.90986251831055,1.02236199378973],[-50.059028625488224,0.804584026336784],[-50.07069396972645,0.698150992393607]]]]},"properties":{"ID_0":33,"ISO":"BR-AP","NAME_0":"Brazil","ID_1":3,"NAME_1":"Amapá","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-63.37227630615235,2.211709022521973],[-63.28274154663085,2.153851032257194],[-63.14146041870105,2.172419071197567],[-63.119785308837834,2.09642505645752],[-63.02373504638672,2.014641046524162],[-62.94843673706043,2.031012058258113],[-62.838783264160156,2.016442060470638],[-62.70597839355462,1.939694046974239],[-62.73101806640625,1.818204998970146],[-62.72369384765624,1.712357044220028],[-62.80523300170898,1.591317057609558],[-62.73075103759765,1.499606013298035],[-62.63732528686517,1.433696031570491],[-62.58685684204101,1.255452036857719],[-62.521034240722656,1.083786964416561],[-62.44573593139643,0.976824998855591],[-62.486011505126946,0.866508007049561],[-62.45768356323242,0.785170018672943],[-62.528518676757756,0.710179984569663],[-62.532958984375,0.508795976638908],[-62.4462890625,0.379056006669998],[-62.46684265136719,0.332935005426407],[-62.452686309814396,0.207388997077942],[-62.414897918701165,0.074350997805652],[-62.34656143188471,0.029581999406219],[-62.31968307495105,-0.102550998330059],[-62.244983673095646,-0.174740001559258],[-62.253597259521484,-0.271405011415482],[-62.18831634521484,-0.33084499835968],[-62.22720718383788,-0.425850987434387],[-62.273880004882756,-0.454183012247029],[-62.31832122802729,-0.552519977092743],[-62.287483215332024,-0.638356983661595],[-62.36713027954101,-0.710099995136147],[-62.46962738037109,-0.693991005420571],[-62.50102233886718,-0.781491994857788],[-62.39574432373047,-0.820378005504551],[-62.31268692016596,-0.930381000041905],[-62.17185211181635,-1.005936026573124],[-62.09962463378906,-1.096766948699951],[-62.017402648925774,-1.141767978668213],[-61.89656829833984,-1.395378947257995],[-61.7979507446289,-1.380653023719731],[-61.60489654541009,-1.448155045509338],[-61.58211517333984,-1.35342895984644],[-61.62684631347657,-1.293992042541447],[-61.546566009521484,-1.071213006973267],[-61.578506469726555,-0.910099029540959],[-61.54351043701172,-0.852321982383728],[-61.53878784179682,-0.756218016147614],[-61.45684051513672,-0.657051026821023],[-61.348411560058594,-0.595547974109536],[-61.224056243896484,-0.559547007083893],[-61.22295379638661,-0.505658984184208],[-61.08739471435547,-0.500109016895181],[-60.97545242309564,-0.562602996826058],[-60.76100540161133,-0.761493980884552],[-60.75266265869135,-0.861208975315037],[-60.65461349487305,-0.883157014846802],[-60.591278076171875,-0.85343199968338],[-60.53100204467774,-0.875101983547154],[-60.47905731201166,-0.770938992500305],[-60.434608459472656,-0.772605001926365],[-60.303565979003906,-0.711292028427067],[-60.3998908996582,-0.510107994079533],[-60.34463500976562,-0.440634995698929],[-60.289882659911996,-0.293161988258305],[-60.285720825195305,-0.21065500378603],[-60.22043991088861,-0.135381996631622],[-60.20321273803712,-0.033615998923722],[-60.14316177368163,0.037388000637407],[-60.11622619628906,0.133212000131607],[-60.059017181396484,0.162971004843769],[-60.03789520263666,0.263489991426525],[-59.43348693847656,0.26350998878479],[-58.89534759521484,0.263505995273647],[-58.89498519897462,-0.010986000299454],[-58.8638191223144,-0.078055001795292],[-58.8809700012207,-0.196603998541832],[-58.87200164794921,-0.3430179953574],[-58.72515487670893,-0.442243993282261],[-58.71068572998041,-0.521494984626713],[-58.731933593749936,-0.62738299369812],[-58.560569763183544,-0.804641008377018],[-58.45898056030267,-0.86401700973505],[-58.4146957397461,-0.967077016830444],[-58.43001556396479,-1.027140974998474],[-58.36842727661132,-1.06604599952692],[-58.323223114013665,-1.143318057060242],[-58.25470352172845,-1.132614970207101],[-58.16258239746088,-1.229681015014648],[-58.081790924072266,-1.126505017280579],[-58.01747894287109,-1.106174945831242],[-57.96542739868164,-1.206107974052372],[-57.99632263183593,-1.344344973564148],[-57.91846084594721,-1.419831991195622],[-57.82397460937499,-1.439780950546265],[-57.773262023925774,-1.508823037147465],[-57.71310043334961,-1.504171013832092],[-57.6786155700683,-1.594360947608948],[-57.5900650024414,-1.580122947692814],[-57.47513961791992,-1.678024053573608],[-57.41187286376947,-1.673305988311768],[-57.352005004882805,-1.733189940452575],[-57.274333953857365,-1.709761023521423],[-57.097793579101555,-1.775128960609436],[-57.03714370727539,-1.91157603263855],[-56.85898208618164,-2.015949010848885],[-56.747821807861264,-2.01152491569519],[-56.72126770019531,-2.04914903640747],[-56.76936721801752,-2.140695095062256],[-56.67900848388672,-2.212585926055908],[-56.612850189208984,-2.210192918777409],[-56.52700424194335,-2.139218091964721],[-56.413818359375,-2.175971984863281],[-56.22831344604492,-2.056241989135742],[-56.09857559204096,-2.02708196640009],[-56.16936492919922,-2.145530939102116],[-56.263435363769474,-2.221077919006348],[-56.384254455566406,-2.270495891570988],[-56.46442413330078,-2.431615114212036],[-56.402095794677734,-2.456638097763004],[-56.57588577270502,-2.824132919311523],[-56.887176513671875,-3.499067068099976],[-57.01884460449213,-3.798324108123779],[-57.24941253662109,-4.287967205047607],[-57.54801940917968,-4.921609878539925],[-57.861320495605405,-5.60112285614008],[-58.26248550415039,-6.468937873840332],[-58.32557296752925,-6.499310016632023],[-58.34982299804677,-6.562417030334473],[-58.42724227905267,-6.61618423461914],[-58.478408813476555,-6.699629783630314],[-58.48168945312495,-6.781438827514591],[-58.434490203857365,-6.908822059631291],[-58.33872222900385,-6.983938217163086],[-58.18325424194335,-7.178287029266357],[-58.16994476318354,-7.313237190246582],[-58.13698959350585,-7.356139183044376],[-58.21294403076167,-7.458469867706299],[-58.20204544067383,-7.620935916900635],[-58.28091812133788,-7.70964002609253],[-58.29478836059564,-7.772321224212532],[-58.382881164550724,-7.839098930358829],[-58.37332534790039,-7.907220840454101],[-58.29157638549805,-8.074268341064453],[-58.32252883911127,-8.17001247406],[-58.3184928894043,-8.330199241638184],[-58.4169921875,-8.492003440856934],[-58.39117050170898,-8.592260360717773],[-58.43735504150385,-8.703430175781191],[-58.394840240478516,-8.779890060424691],[-58.50029373168939,-8.80283737182617],[-59.12720489501953,-8.80335807800293],[-59.85696792602538,-8.801086425781193],[-60.42017364501953,-8.796627998351994],[-60.84881591796869,-8.798162460327148],[-61.58290100097656,-8.798702239990178],[-61.62641143798828,-8.728866577148438],[-61.74179458618164,-8.695208549499455],[-61.77454757690423,-8.748244285583437],[-61.84405136108393,-8.747397422790527],[-61.85969161987299,-8.852987289428711],[-61.99016571044916,-8.872673988342285],[-62.03100585937488,-8.799722671508732],[-62.12491989135737,-8.801686286926213],[-62.18833923339838,-8.59057426452631],[-62.26883697509759,-8.575773239135685],[-62.36600112915033,-8.493574142455998],[-62.36075210571283,-8.398563385009652],[-62.465423583984375,-8.339750289916935],[-62.51842117309565,-8.384754180908203],[-62.58533859252925,-8.271894454956053],[-62.649898529052734,-8.237038612365723],[-62.69223403930664,-8.092922210693358],[-62.866573333740234,-7.97588396072382],[-63.50049972534173,-7.976333141326847],[-63.62075805664057,-7.969308853149414],[-63.62174987792968,-8.029622077941893],[-63.69339370727539,-8.158363342285156],[-63.72273254394531,-8.249509811401367],[-63.79120635986328,-8.333227157592773],[-63.87073516845692,-8.288831710815371],[-63.94409942626953,-8.33119869232172],[-63.94081497192377,-8.452274322509766],[-63.97315597534174,-8.47845935821533],[-63.92454528808594,-8.575535774230957],[-63.986186981201165,-8.585645675659178],[-64.03546142578125,-8.693568229675293],[-64.14305114746094,-8.743041038513184],[-64.15818786621094,-8.84317684173584],[-64.14175415039055,-8.945060729980469],[-64.2331924438476,-8.992317199706974],[-64.31130981445307,-8.996479034423828],[-64.3233871459961,-8.928870201110783],[-64.44656372070301,-8.97687816619873],[-64.55011749267572,-8.978278160095101],[-64.58795928955072,-9.009517669677734],[-64.87057495117188,-9.012198448181096],[-64.93994140625,-9.124572753906193],[-64.91969299316406,-9.220285415649357],[-65.00053405761713,-9.304619789123533],[-65.05356597900385,-9.402147293090763],[-65.14290618896479,-9.446814537048283],[-65.18685150146484,-9.415031433105469],[-65.21179962158202,-9.278998374938963],[-65.24668884277338,-9.257667541503906],[-65.37754821777344,-9.324430465698185],[-65.44024658203124,-9.311749458312988],[-65.45664215087889,-9.401209831237734],[-65.5031967163086,-9.469978332519531],[-65.59682464599608,-9.413866043090763],[-65.67948913574219,-9.451392173767033],[-65.72360229492182,-9.559058189392033],[-65.80007934570307,-9.585020065307617],[-65.82514190673828,-9.530090332031193],[-65.91270446777344,-9.483749389648322],[-65.97037506103516,-9.41315746307373],[-66.12397003173822,-9.408774375915527],[-66.17372131347656,-9.434416770935002],[-66.25975799560541,-9.410989761352539],[-66.37487792968744,-9.426360130310059],[-66.3925170898437,-9.500473022460938],[-66.50071716308594,-9.633559226989744],[-66.77551269531244,-9.753079414367619],[-66.80647277832031,-9.81451988220209],[-67.32801055908202,-9.594555854797306],[-67.94033813476557,-9.33721923828125],[-68.62057495117182,-9.048132896423338],[-68.78499603271477,-8.972588539123478],[-69.17823028564453,-8.76795864105219],[-69.43577575683588,-8.641596794128361],[-70.36952209472649,-8.141402244567814],[-70.93741607666016,-8.019089698791447],[-71.56923675537104,-7.874255180358887],[-72.00514221191406,-7.774846076965331],[-72.17317962646484,-7.723841190338136],[-72.65934753417969,-7.624979019164981],[-73.27481842041009,-7.350334167480468],[-73.78547668457031,-7.121319770812931],[-73.72902679443354,-6.996188163757324],[-73.7616577148437,-6.938489913940429],[-73.71192169189453,-6.842709064483643],[-73.63437652587889,-6.751539230346679],[-73.53961181640625,-6.686038970947209],[-73.38732147216791,-6.638120174407959],[-73.351806640625,-6.593729972839355],[-73.20011901855463,-6.569279193878174],[-73.1304702758789,-6.497288227081299],[-73.10190582275385,-6.402639865875243],[-73.16124725341797,-6.269429206848145],[-73.24559020996094,-6.143589019775334],[-73.235610961914,-6.031070232391357],[-73.194107055664,-6.004109859466495],[-73.1526489257812,-5.867741107940674],[-73.0539474487304,-5.793440818786621],[-72.96015930175781,-5.655599117279053],[-72.95970153808588,-5.46451997756958],[-72.87153625488281,-5.288690090179443],[-72.88823699951172,-5.160579204559326],[-72.71373748779297,-5.050389766693115],[-72.62078094482416,-5.04905891418457],[-72.59796142578125,-4.993480205535889],[-72.38257598876953,-4.85969877243042],[-72.36590576171875,-4.802659034728947],[-72.21568298339844,-4.767758846282902],[-72.10221099853516,-4.706480026245116],[-72.03674316406244,-4.637180805206242],[-71.98161315917963,-4.624519824981689],[-71.90091705322266,-4.529149055480843],[-71.78704833984375,-4.482439041137638],[-71.63445281982422,-4.508601188659667],[-71.37776184082026,-4.42460823059082],[-71.28327178955078,-4.441648960113525],[-71.23336029052727,-4.382389068603516],[-70.91744232177734,-4.361649036407414],[-70.80227661132812,-4.183669090270939],[-70.7483291625976,-4.160419940948429],[-70.67273712158203,-4.196300029754639],[-70.43667602539055,-4.132260799407959],[-70.29081726074219,-4.161428928375187],[-70.26021575927734,-4.308361053466797],[-70.20445251464838,-4.323838233947753],[-70.15158081054688,-4.271409034729004],[-70.07251739501953,-4.286368846893254],[-70.03240203857416,-4.362921237945557],[-69.9720687866211,-4.328339099884033],[-69.92212677001953,-4.161762237548771],[-69.77787780761713,-3.398278951644897],[-69.60833740234375,-2.444499015808105],[-69.44790649414057,-1.552427053451538],[-69.45211791992176,-1.475772976875191],[-69.3683471679687,-1.333701014518738],[-69.37514495849604,-1.173308968544006],[-69.43773651123047,-1.028684020042419],[-69.6087417602539,-0.754770994186344],[-69.55122375488281,-0.648002982139531],[-69.58978271484375,-0.523705005645638],[-69.7307357788086,-0.456755995750427],[-69.85031127929688,-0.335229992866402],[-69.90786743164057,-0.315768003463745],[-70.0680160522461,-0.134780004620552],[-70.03565216064447,0.370530009269828],[-70.03740692138672,0.545669972896576],[-69.91002655029297,0.589940011501312],[-69.79837036132807,0.584740996360779],[-69.65103149414057,0.67010098695755],[-69.46820831298822,0.734350025653953],[-69.35872650146479,0.622600018978119],[-69.29498291015625,0.648280978202877],[-69.2015380859375,0.601750016212577],[-69.11412048339838,0.652159988880157],[-69.18350219726562,0.730421006679592],[-69.13697814941405,0.868458986282462],[-69.25672149658203,1.025501012802238],[-69.32923889160156,1.062461018562374],[-69.4163818359375,1.023691058158818],[-69.45574951171875,1.056310057640076],[-69.60822296142572,1.073590040207023],[-69.70034027099604,1.055639982223568],[-69.75318145751947,1.095939993858394],[-69.85407257080072,1.06974995136261],[-69.85518646240234,1.714920997619686],[-69.74017333984375,1.735309958457947],[-69.65438079833979,1.725769996643123],[-69.5557403564453,1.775200009346008],[-69.39456176757812,1.725669026374874],[-68.91101837158203,1.726500988006705],[-68.21346282958977,1.729490995407161],[-68.2532730102539,1.88955998420721],[-68.21878051757812,2.00652003288269],[-68.12281799316406,1.965751051902885],[-67.94151306152344,1.830700993537959],[-67.77960968017578,2.031029939651546],[-67.62000274658197,2.023641109466553],[-67.55107879638672,2.141680002212581],[-67.38941192626942,2.243980884552116],[-67.34364318847656,2.205440998077393],[-67.3370132446289,2.098059892654419],[-67.2782211303711,1.875709056854248],[-67.15718078613276,1.848811030387992],[-67.09749603271473,1.732571005821341],[-67.07244873046875,1.442571043968201],[-67.0882797241211,1.166870951652641],[-66.8570327758789,1.230180978775138],[-66.31851196289055,0.755015015602169],[-66.2130279541015,0.780620992183742],[-66.151138305664,0.744445025920982],[-66.07010650634766,0.805031001567841],[-65.97141265869139,0.80600601434719],[-65.9366226196289,0.882111012935638],[-65.76722717285156,0.964021027088165],[-65.73944854736321,0.999559998512325],[-65.58557891845703,1.008911013603324],[-65.50837707519526,0.915509998798427],[-65.56416320800776,0.675684988498745],[-65.4527740478515,0.685415029525814],[-65.3974838256836,0.749894022941646],[-65.3980407714843,0.821299016475621],[-65.3291625976562,0.931541025638694],[-65.24081420898438,0.921020984649772],[-65.16498565673828,0.950451016426143],[-65.15505981445311,1.124938964843807],[-65.10308837890625,1.156630992889404],[-65.02224731445312,1.114920020103455],[-64.90663146972656,1.241580963134822],[-64.81051635742188,1.314355969429073],[-64.76385498046864,1.230741024017277],[-64.72245788574213,1.238456010818538],[-64.59078979492188,1.337383985519523],[-64.53134155273432,1.435191035270691],[-64.3513412475586,1.518244981765861],[-64.39995574951172,1.394845962524414],[-64.34272766113281,1.384297966957149],[-64.30216979980463,1.468256950378418],[-64.14411163330078,1.582406997680721],[-64.06522369384766,1.675981998443717],[-64.07799530029297,1.759013056755066],[-64.0618896484375,1.930709958076534],[-63.975494384765625,1.991278052330131],[-63.82965850830078,1.968201041221675],[-63.56187057495117,2.13233304023754],[-63.492427825927734,2.115437984466553],[-63.39770126342768,2.146856069564933],[-63.37227630615235,2.211709022521973]],[[-58.880996704101506,-2.230698108673096],[-59.10951995849598,-2.297424077987671],[-59.172931671142514,-2.385824918746891],[-59.19425582885742,-2.471970081329232],[-59.08237075805664,-2.575264930724984],[-58.9881134033202,-2.560648918151855],[-58.84976577758789,-2.602458953857422],[-58.78046798706048,-2.588226079940739],[-58.68451309204101,-2.663264036178532],[-58.503234863281186,-2.702739000320377],[-58.45517730712885,-2.652472972869759],[-58.30434036254883,-2.611609935760498],[-58.195510864257756,-2.66473388671875],[-58.179023742675774,-2.750073909759465],[-58.110351562499886,-2.859220027923584],[-58.04008483886719,-2.807538032531738],[-57.95814132690424,-2.79679894447321],[-57.93418502807611,-2.72746300697321],[-57.938423156738274,-2.620711088180485],[-58.01646041870117,-2.653731107711735],[-58.17984390258783,-2.576024055480843],[-58.33905029296874,-2.40510702133173],[-58.364166259765625,-2.340750932693425],[-58.45945739746088,-2.302951097488403],[-58.56169128417962,-2.319912910461426],[-58.61033248901361,-2.295039892196655],[-58.73013305664057,-2.347038984298706],[-58.78485488891595,-2.263783931732121],[-58.880996704101506,-2.230698108673096]]]},"properties":{"ID_0":33,"ISO":"BR-AM","NAME_0":"Brazil","ID_1":4,"NAME_1":"Amazonas","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Amazone"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-38.68458175659168,-12.879027366638184],[-38.60680389404297,-12.948751449584904],[-38.658748626708984,-13.03458309173584],[-38.79041671752924,-13.132081985473633],[-38.79458236694336,-13.052638053893986],[-38.6695823669433,-12.959583282470645],[-38.68458175659168,-12.879027366638184]]],[[[-39.66986083984375,-18.3498592376709],[-39.68887329101557,-18.320823669433594],[-40.22235107421869,-17.980426788330078],[-40.26342010498047,-17.921983718872013],[-40.17503356933594,-17.852672576904293],[-40.22388076782221,-17.734062194824162],[-40.280296325683594,-17.722782135009766],[-40.341587066650334,-17.619953155517578],[-40.39675140380859,-17.62560081481922],[-40.46035385131836,-17.568498611450195],[-40.52056503295893,-17.446502685546875],[-40.59967803955078,-17.390346527099553],[-40.55380249023437,-17.189027786254883],[-40.57830047607421,-17.147172927856445],[-40.54542160034179,-16.98429298400879],[-40.49114227294922,-16.88448524475092],[-40.366424560546875,-16.874168395996094],[-40.281581878662045,-16.90118217468256],[-40.25774383544916,-16.80653953552246],[-40.33577728271473,-16.779710769653317],[-40.275447845458984,-16.574026107788086],[-40.171150207519474,-16.52414894104004],[-40.02476501464838,-16.35689926147461],[-39.96044921875,-16.32189750671381],[-39.88332366943354,-16.194690704345703],[-39.85676193237305,-16.113826751708984],[-39.922134399414006,-16.028623580932617],[-40.00437164306629,-16.001834869384766],[-40.074783325195305,-15.920050621032656],[-40.15976333618163,-15.908464431762694],[-40.231052398681584,-15.803847312927244],[-40.42497253417969,-15.805704116821175],[-40.460578918456974,-15.753732681274412],[-40.56199264526367,-15.80328369140625],[-40.62933349609375,-15.715712547302246],[-40.69929885864252,-15.66862106323242],[-40.855396270751896,-15.687154769897402],[-40.96222305297846,-15.648887634277344],[-41.00712585449213,-15.713836669921875],[-41.16939926147461,-15.760518074035643],[-41.215225219726506,-15.737250328063851],[-41.33115005493164,-15.744673728942814],[-41.356365203857365,-15.500288963317871],[-41.8006591796875,-15.101098060607853],[-41.95338058471673,-15.175666809082031],[-42.09601974487305,-15.182447433471621],[-42.153297424316406,-15.099364280700684],[-42.26474761962885,-15.125177383422852],[-42.44287109375,-15.060606956481875],[-42.43674850463867,-15.022719383239744],[-42.62565994262695,-14.944699287414439],[-42.75508880615234,-14.846421241760252],[-42.90583801269531,-14.761046409606879],[-42.952644348144474,-14.708402633666879],[-43.176300048828125,-14.650548934936522],[-43.311180114746094,-14.669751167297305],[-43.461223602294865,-14.746230125427246],[-43.51111221313471,-14.796578407287539],[-43.71981048583984,-14.729543685913027],[-43.883460998535156,-14.65323352813715],[-43.87383270263672,-14.520586013793945],[-43.78314590454101,-14.33924674987793],[-43.98632431030268,-14.26755428314209],[-44.03445816040039,-14.288872718811033],[-44.24056243896478,-14.240703582763672],[-44.430301666259766,-14.289395332336367],[-44.55715179443359,-14.337038040161074],[-44.81376647949219,-14.504664421081543],[-44.87590789794916,-14.599662780761717],[-45.039478302001896,-14.680257797241154],[-45.09541320800781,-14.752880096435488],[-45.16641235351557,-14.735305786132812],[-45.49000549316395,-14.960762977600098],[-45.566082000732365,-14.944863319396916],[-45.67469406127924,-15.080490112304686],[-45.73033905029296,-15.11675834655756],[-45.91841125488281,-15.133514404296875],[-46.02799987792969,-15.201348304748533],[-46.04367065429682,-15.118131637573242],[-45.97547149658203,-15.038911819457951],[-45.96603012084961,-14.965646743774414],[-46.0373649597168,-14.874085426330565],[-45.98478317260742,-14.620813369750975],[-45.99877166748041,-14.429388999938965],[-45.927589416503906,-14.410319328308105],[-45.96321868896472,-14.285907745361328],[-46.01829147338867,-14.260635375976562],[-46.236347198486214,-14.1072416305542],[-46.21628189086914,-13.980290412902832],[-46.26808547973627,-13.943761825561523],[-46.22863769531249,-13.774501800537053],[-46.255924224853516,-13.693898200988768],[-46.161914825439446,-13.590933799743652],[-46.238639831542855,-13.554588317871037],[-46.214309692382756,-13.400718688964844],[-46.133975982666016,-13.375231742858887],[-46.04842376708984,-13.30920124053955],[-46.063758850097656,-13.261308670043944],[-46.279338836669865,-13.347900390625],[-46.330116271972656,-13.25281524658203],[-46.29492950439453,-13.13130855560297],[-46.322612762451165,-13.098286628723086],[-46.27332687377924,-13.014960289001408],[-46.12579345703119,-12.961482048034611],[-46.11459732055664,-12.918439865112248],[-46.30473709106445,-12.94987869262684],[-46.26226043701166,-12.831681251525879],[-46.29014587402344,-12.63176441192627],[-46.25905990600586,-12.548623085021973],[-46.16061401367181,-12.528590202331486],[-46.15962600708008,-12.474560737609806],[-46.24893188476557,-12.436996459960936],[-46.37432098388666,-12.289812088012695],[-46.37356567382806,-12.015480995178164],[-46.28494644165039,-11.885949134826602],[-46.37453460693347,-11.868609428405762],[-46.31504821777344,-11.644654273986816],[-46.1870002746582,-11.606145858764648],[-46.31340408325184,-11.539497375488281],[-46.41714477539057,-11.539184570312443],[-46.52001190185547,-11.483555793762205],[-46.549259185791016,-11.380727767944279],[-46.615894317626896,-11.302206993103027],[-46.58201217651367,-11.24677944183338],[-46.472312927246094,-11.191190719604492],[-46.39888381958008,-10.994400978088377],[-46.2833671569823,-10.906757354736326],[-46.19251251220703,-10.719710350036621],[-46.2109260559082,-10.649677276611271],[-46.05942535400385,-10.593470573425293],[-46.024978637695256,-10.542787551879883],[-45.864749908447266,-10.43889141082758],[-45.82239913940429,-10.364042282104492],[-45.75107955932617,-10.351987838745059],[-45.6960334777832,-10.257701873779297],[-45.72283935546875,-10.155317306518553],[-45.60313415527344,-10.10799503326416],[-45.51708221435541,-10.286556243896484],[-45.430271148681584,-10.359477043151799],[-45.402969360351555,-10.465340614318848],[-45.44720840454101,-10.507431983947697],[-45.43587112426758,-10.61988353729248],[-45.358169555664006,-10.732215881347656],[-45.24800491333007,-10.821977615356388],[-45.073184967041016,-10.840432167053164],[-44.93117141723633,-10.928766250610295],[-44.80839538574213,-10.86501407623291],[-44.78801345825195,-10.808530807495059],[-44.71336364746093,-10.762051582336367],[-44.58946990966796,-10.632429122924805],[-44.4795036315918,-10.640474319457951],[-44.33560180664062,-10.548977851867676],[-44.26397323608398,-10.624679565429688],[-44.16549301147461,-10.642908096313477],[-44.07254028320307,-10.58034133911127],[-44.0257949829101,-10.475481033325195],[-44.029273986816406,-10.416398048400877],[-43.919605255126946,-10.4252347946167],[-43.83811950683588,-10.303832054138184],[-43.83609390258789,-10.248900413513184],[-43.7790412902832,-10.180476188659611],[-43.759181976318246,-10.074614524841252],[-43.69287109374994,-10.077402114868164],[-43.66597747802729,-9.99023723602295],[-43.708992004394474,-9.913228988647404],[-43.65319824218744,-9.839065551757756],[-43.784873962402344,-9.762393951415959],[-43.841907501220696,-9.637437820434569],[-43.8496475219726,-9.548064231872502],[-43.76968002319336,-9.44206142425537],[-43.68676757812494,-9.41806411743164],[-43.574531555175724,-9.318100929260197],[-43.46162033081049,-9.261788368225098],[-43.28507232666009,-9.420036315917912],[-43.11994934082031,-9.372548103332463],[-43.01207733154296,-9.408011436462402],[-42.9572868347168,-9.43400859832758],[-42.94620132446289,-9.518424034118596],[-42.82050704956055,-9.619240760803223],[-42.76512145996094,-9.616759300231877],[-42.71684646606445,-9.556286811828612],[-42.6215934753418,-9.541241645812988],[-42.451717376708984,-9.462111473083496],[-42.31911468505853,-9.320263862609863],[-42.2436790466308,-9.288926124572697],[-42.10048294067383,-9.281038284301701],[-41.97221755981445,-9.24864864349365],[-41.924720764160156,-9.277806282043457],[-41.83791732788086,-9.242280960083008],[-41.80001831054682,-9.148036956787053],[-41.68040084838867,-9.012293815612736],[-41.5447998046875,-8.937994003295842],[-41.48779678344721,-8.843913078308104],[-41.424175262451115,-8.802478790283203],[-41.35826873779291,-8.70764446258545],[-41.281482696533196,-8.73610782623291],[-41.2269287109375,-8.704716682433968],[-41.11552429199219,-8.7040433883667],[-41.10171127319336,-8.781975746154785],[-41.03618621826172,-8.78588676452631],[-40.921287536621094,-8.835457801818789],[-40.851543426513665,-8.952515602111816],[-40.81993484497064,-9.080411911010742],[-40.66735458374018,-9.159086227416992],[-40.68057632446289,-9.25909233093256],[-40.73722839355469,-9.336896896362248],[-40.722145080566406,-9.445964813232363],[-40.62311553955067,-9.482916831970213],[-40.435829162597656,-9.362183570861816],[-40.3580589294433,-9.377203941345215],[-40.307762145996094,-9.271409034729004],[-40.27166366577142,-9.080998420715332],[-40.2112197875976,-9.062611579894961],[-40.12865447998047,-9.109613418579102],[-40.06558227539057,-9.063199996948185],[-39.957969665527344,-9.048619270324707],[-39.87389373779291,-8.93132495880127],[-39.87300109863281,-8.822653770446777],[-39.67452621459961,-8.787080764770508],[-39.691074371337834,-8.66233730316162],[-39.607524871826115,-8.656001091003361],[-39.38367080688476,-8.533636093139592],[-39.288513183593686,-8.56331539154047],[-39.23371124267567,-8.705780029296873],[-39.036960601806584,-8.735584259033145],[-38.94361877441406,-8.804259300231934],[-38.7945671081543,-8.795634269714299],[-38.70646286010742,-8.862276077270451],[-38.69283676147461,-8.935147285461426],[-38.64063262939453,-8.987286567687931],[-38.571155548095646,-8.831610679626465],[-38.469890594482365,-8.865496635437012],[-38.51937484741205,-8.948366165161133],[-38.40837860107416,-9.038521766662598],[-38.32055282592767,-8.991079330444336],[-38.31856536865223,-9.141016960144043],[-38.23739242553705,-9.329692840576172],[-38.20287322998041,-9.296895980834961],[-38.23633956909174,-9.330999374389592],[-38.154861450195305,-9.443422317504826],[-38.028564453125,-9.46804141998291],[-38.003326416015625,-9.515005111694336],[-38.04032516479492,-9.573088645935057],[-38.00691604614258,-9.651735305786076],[-38.03981399536133,-9.686598777770996],[-38.02811050415039,-9.776082038879393],[-37.97256469726557,-9.814451217651367],[-37.99764251708979,-9.910760879516602],[-37.967998504638665,-9.962568283081055],[-37.83168792724604,-10.00092601776123],[-37.77428436279291,-10.144798278808592],[-37.73606872558594,-10.33335113525385],[-37.83060073852539,-10.374975204467717],[-37.8590202331543,-10.426471710205078],[-37.81295776367187,-10.50849437713623],[-37.83033370971679,-10.58470439910883],[-37.81383514404297,-10.69104957580555],[-37.99977111816406,-10.764384269714299],[-38.05820465087885,-10.708579063415527],[-38.211856842041016,-10.709162712097111],[-38.24000549316406,-10.880989074707031],[-38.17595672607416,-10.985304832458494],[-38.111526489257805,-11.009933471679686],[-38.072307586669865,-11.152892112731932],[-37.98110198974609,-11.199104309081974],[-38.00328826904297,-11.28950309753418],[-37.96784591674805,-11.390617370605353],[-37.8679237365722,-11.442428588867186],[-37.81365585327143,-11.51431274414051],[-37.67018127441406,-11.564008712768498],[-37.671234130859375,-11.672359466552734],[-37.61129379272455,-11.650357246398924],[-37.54513931274414,-11.54747009277338],[-37.39180374145508,-11.511528015136662],[-37.51985931396473,-11.754861831664982],[-37.61125183105469,-11.95763874053955],[-37.754859924316406,-12.213472366332951],[-37.95569610595703,-12.492082595825194],[-37.99514007568354,-12.56791591644287],[-38.317081451416016,-12.927360534667912],[-38.4681930541991,-13.014305114746094],[-38.48485946655268,-12.92097282409668],[-38.47069549560547,-12.814028739929142],[-38.51097106933594,-12.737083435058537],[-38.6198616027832,-12.725972175598088],[-38.697639465331974,-12.629027366638125],[-38.75569534301752,-12.709304809570312],[-38.792640686035156,-12.841805458068848],[-38.75513839721674,-12.900138854980469],[-38.81041717529296,-13.108751296997069],[-38.86652755737299,-13.185972213745117],[-38.931804656982415,-13.22013854980463],[-38.965137481689396,-13.29291629791254],[-38.95319366455078,-13.403194427490234],[-38.89125061035156,-13.451250076293887],[-38.9323616027832,-13.579861640930119],[-38.89097213745117,-13.640418052673338],[-38.963470458984375,-13.6859712600708],[-39.00069427490229,-13.767640113830508],[-38.98236083984375,-13.831250190734806],[-39.07819366455078,-13.958749771118162],[-38.963748931884766,-13.973195075988656],[-38.99097061157221,-14.201250076293945],[-38.97986221313476,-14.291250228881779],[-39.06236267089844,-14.624027252197209],[-39.05902862548828,-14.771805763244627],[-39.029304504394474,-14.78458309173584],[-38.99791717529297,-14.985416412353514],[-38.99791717529297,-15.230137825012092],[-38.94263839721674,-15.527359962463322],[-38.93736267089844,-15.655415534973145],[-38.85569381713867,-15.856527328491154],[-38.953472137451165,-16.10124969482422],[-38.94819259643555,-16.151250839233395],[-39.0212516784668,-16.260139465331974],[-39.00902938842773,-16.374582290649414],[-39.060138702392464,-16.428192138671818],[-39.10680389404297,-16.708749771118164],[-39.14097213745117,-16.75541877746582],[-39.14236068725586,-16.869304656982422],[-39.180694580078125,-17.1068058013916],[-39.21208190917969,-17.15875053405756],[-39.221248626708984,-17.305416107177734],[-39.191806793212834,-17.446250915527287],[-39.19374847412098,-17.580139160156193],[-39.13708496093744,-17.690971374511605],[-39.19291687011719,-17.742639541625977],[-39.27736282348627,-17.87208366394043],[-39.43430709838867,-17.93847465515131],[-39.480972290039006,-17.984306335449162],[-39.63708496093744,-18.237361907958984],[-39.66986083984375,-18.3498592376709]]]]},"properties":{"ID_0":33,"ISO":"BR-BA","NAME_0":"Brazil","ID_1":5,"NAME_1":"Bahia","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Ba¡a"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-37.25208282470703,-4.832361221313477],[-37.64024353027344,-4.926418781280461],[-37.67705154418945,-5.052547931671143],[-37.72397232055664,-5.069858074188232],[-37.789943695068246,-5.21095323562622],[-37.78302001953125,-5.294829845428467],[-37.84738540649413,-5.340035915374699],[-37.90469741821289,-5.50115489959711],[-37.9899559020996,-5.555810928344727],[-38.08263397216797,-5.672267913818303],[-38.046993255615234,-5.730422973632812],[-38.10818862915039,-5.814829826354923],[-38.124858856201115,-5.887623786926213],[-38.25158691406244,-6.010366916656494],[-38.3047256469726,-6.086979866027832],[-38.44723892211914,-6.085290908813477],[-38.51963806152343,-6.223051071166992],[-38.578525543212834,-6.280207157134953],[-38.55485153198236,-6.437374114990234],[-38.642780303955014,-6.581190109252873],[-38.67307662963867,-6.697234153747559],[-38.64186096191395,-6.791251182556151],[-38.67534637451172,-6.861839771270752],[-38.75620651245105,-6.903603076934814],[-38.73051452636712,-7.012038230895996],[-38.66977691650385,-7.047715187072753],[-38.67681121826172,-7.16893577575678],[-38.53451156616211,-7.293803215026742],[-38.585227966308594,-7.434825897216796],[-38.64484786987305,-7.46002721786499],[-38.65525436401367,-7.565553188323917],[-38.71502685546875,-7.621930122375488],[-38.82188415527338,-7.714819908142032],[-38.94182205200195,-7.763055801391544],[-39.00133514404297,-7.840136051177921],[-39.0906753540039,-7.8092360496521],[-39.13557052612298,-7.723396778106689],[-39.271926879882756,-7.660462856292725],[-39.31715393066395,-7.541469097137394],[-39.3966064453125,-7.475296974182129],[-39.47886276245111,-7.446116924285774],[-39.607246398925724,-7.33622217178339],[-39.66566085815429,-7.310708999633789],[-39.915073394775334,-7.338125228881722],[-39.96141815185547,-7.388984203338566],[-40.24638366699213,-7.433736801147461],[-40.319274902343636,-7.374391078948974],[-40.548408508300724,-7.392722129821776],[-40.51211929321289,-7.3018159866333],[-40.48968887329096,-7.11870288848877],[-40.42766571044922,-7.033895015716553],[-40.4321174621582,-6.812992095947266],[-40.4761848449707,-6.734522819519043],[-40.607070922851506,-6.714086055755615],[-40.71012496948242,-6.676143169403076],[-40.74580001831055,-6.565561771392765],[-40.787616729736264,-6.523797035217285],[-40.80510330200195,-6.393146991729735],[-40.7796516418457,-6.344307899475098],[-40.85217666625971,-6.224236011505127],[-40.846858978271484,-6.132109165191594],[-40.938716888427734,-5.673357963562012],[-40.90101623535145,-5.615784168243407],[-40.93233108520508,-5.548912048339844],[-40.93605422973633,-5.36598014831543],[-40.91315460205078,-5.308066844940129],[-40.928936004638615,-5.171686172485351],[-41.080078125,-5.091106891632023],[-41.12255096435541,-5.00809383392334],[-41.221500396728516,-4.936889171600285],[-41.24912643432617,-4.869112014770508],[-41.17423248291009,-4.667479038238525],[-41.23307800292963,-4.609570980072021],[-41.19072723388666,-4.515548229217472],[-41.15996170043945,-4.381515979766846],[-41.11919403076166,-4.313255786895752],[-41.13748550415039,-4.120007991790715],[-41.120296478271484,-4.036356925964355],[-41.24919128417963,-3.989885091781559],[-41.22019195556634,-3.941526889800968],[-41.27680587768555,-3.825639963150024],[-41.255386352539006,-3.703277111053467],[-41.34169769287104,-3.680790901184082],[-41.32563018798828,-3.536432981491032],[-41.34473037719721,-3.41933798789978],[-41.42346954345703,-3.368026018142643],[-41.322437286376896,-3.179811954498234],[-41.2566032409668,-3.088036060333195],[-41.249732971191406,-3.029058933257943],[-41.32090759277338,-2.918195009231567],[-41.26208496093749,-2.885416030883732],[-41.01152801513666,-2.891804933547917],[-40.85985946655273,-2.861804008483886],[-40.59986114501953,-2.847640037536621],[-40.4970817565918,-2.785139083862305],[-40.43986129760742,-2.809026956558228],[-40.18513870239258,-2.812916994094848],[-39.99375152587885,-2.840694904327393],[-39.85680389404291,-2.902084112167302],[-39.71430587768555,-3.003748893737793],[-39.61513900756835,-3.031805038452091],[-39.387638092041016,-3.186527013778686],[-39.22902679443354,-3.240139007568246],[-39.08708190917968,-3.390971899032592],[-39.004581451416016,-3.396250009536686],[-38.91291809082031,-3.50097203254694],[-38.80819320678711,-3.544305086135864],[-38.75597381591797,-3.61375093460083],[-38.64930725097656,-3.684861898422241],[-38.492916107177734,-3.725138902664185],[-38.36569595336914,-3.879584074020328],[-38.27541732788086,-3.942082881927376],[-38.1198616027832,-4.145137786865234],[-37.90430450439453,-4.341250896453857],[-37.76958465576172,-4.399860858917236],[-37.71291732788086,-4.515696048736572],[-37.59097290039057,-4.626527786254826],[-37.32430648803711,-4.700971126556396],[-37.25208282470703,-4.832361221313477]]]},"properties":{"ID_0":33,"ISO":"BR-CE","NAME_0":"Brazil","ID_1":6,"NAME_1":"Ceará","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-47.309001922607415,-16.035945892333928],[-47.30875778198231,-16.0505313873291],[-48.279075622558594,-16.051555633544922],[-48.252445220947266,-15.936758995056037],[-48.28704833984375,-15.843138694763184],[-48.21349334716791,-15.759654045104924],[-48.240772247314396,-15.706986427307129],[-48.20027160644531,-15.621862411499023],[-48.20049285888672,-15.50016975402832],[-47.41729736328125,-15.500313758849984],[-47.374183654785156,-15.577832221984806],[-47.32578659057617,-15.589126586914064],[-47.31287384033203,-15.738094329833983],[-47.37606430053705,-15.88288021087635],[-47.368595123291016,-16.001937866210938],[-47.309001922607415,-16.035945892333928]]]},"properties":{"ID_0":33,"ISO":"BR-DF","NAME_0":"Brazil","ID_1":7,"NAME_1":"Distrito Federal","TYPE_1":"Distrito Federal","ENGTYPE_1":"Federal District","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-40.22235107421869,-17.980426788330078],[-39.68887329101557,-18.320823669433594],[-39.66986083984375,-18.3498592376709],[-39.72874832153314,-18.52319526672352],[-39.7456932067871,-18.691249847412053],[-39.743473052978516,-18.94847297668457],[-39.68902587890625,-19.295137405395508],[-39.732639312744084,-19.473472595214787],[-39.81763839721674,-19.653472900390625],[-39.97569274902344,-19.73152732849121],[-40.061805725097656,-19.850139617919922],[-40.164306640624886,-20.039306640624996],[-40.19847106933594,-20.216249465942326],[-40.284027099609375,-20.354305267333984],[-40.426528930664006,-20.635139465331974],[-40.495140075683594,-20.659584045410156],[-40.582916259765625,-20.801807403564453],[-40.74180603027343,-20.846805572509766],[-40.8070831298827,-20.952083587646484],[-40.81236267089844,-21.03152847290039],[-40.86375045776367,-21.133192062377873],[-40.949859619140625,-21.22902870178217],[-40.95930480957031,-21.29718971252441],[-41.081382751464844,-21.221986770629826],[-41.205215454101506,-21.243909835815373],[-41.2412223815918,-21.221155166625977],[-41.488304138183594,-21.180356979370117],[-41.54838180541992,-21.1828556060791],[-41.73497390747064,-21.09881973266596],[-41.711894989013615,-20.981052398681527],[-41.74086380004883,-20.818288803100526],[-41.87485885620117,-20.766815185546875],[-41.799533843994084,-20.477590560913086],[-41.84708786010742,-20.32947921752924],[-41.78097534179676,-20.292537689208984],[-41.7567024230957,-20.20685958862293],[-41.411643981933594,-20.206674575805664],[-41.382057189941406,-20.188806533813477],[-41.30803680419916,-20.013011932373047],[-41.30031585693354,-19.93836212158203],[-41.18482589721674,-19.888954162597656],[-41.166118621826115,-19.80990219116211],[-41.19074249267567,-19.74687385559082],[-41.16841506958002,-19.672216415405273],[-40.9721794128418,-19.505287170410156],[-40.96788024902344,-19.428764343261715],[-40.90763473510742,-19.308805465698185],[-40.922611236572266,-19.204082489013672],[-40.984703063964844,-19.100711822509766],[-41.05379486083973,-19.068859100341797],[-41.0268440246582,-18.985818862914982],[-41.12678909301758,-18.894502639770508],[-41.24266815185547,-18.85394668579096],[-41.232490539550724,-18.7972736358642],[-41.134075164794865,-18.796035766601562],[-41.11044692993152,-18.83893394470209],[-40.963855743408146,-18.84116554260254],[-40.91671371459961,-18.81553840637207],[-40.943580627441406,-18.687572479248047],[-41.05083465576166,-18.6341495513916],[-41.02268981933588,-18.457685470581055],[-41.175498962402344,-18.443784713745117],[-41.052494049072266,-18.343742370605412],[-40.95999526977539,-18.383861541748047],[-40.84795379638672,-18.493974685668945],[-40.63817596435541,-18.51629447937006],[-40.52325820922846,-18.473001480102482],[-40.60767364501953,-18.41653823852539],[-40.58302688598627,-18.36737060546875],[-40.618865966796875,-18.28757476806635],[-40.545780181884766,-18.204254150390625],[-40.5581436157226,-18.114637374877873],[-40.638835906982365,-18.035118103027287],[-40.613388061523324,-17.939725875854435],[-40.52697753906244,-17.891941070556637],[-40.32173919677729,-17.939041137695312],[-40.22235107421869,-17.980426788330078]]]},"properties":{"ID_0":33,"ISO":"BR-ES","NAME_0":"Brazil","ID_1":8,"NAME_1":"Espírito Santo","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Espiritu Santo"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-46.11459732055664,-12.918439865112248],[-46.12579345703119,-12.961482048034611],[-46.27332687377924,-13.014960289001408],[-46.322612762451165,-13.098286628723086],[-46.29492950439453,-13.13130855560297],[-46.330116271972656,-13.25281524658203],[-46.279338836669865,-13.347900390625],[-46.063758850097656,-13.261308670043944],[-46.04842376708984,-13.30920124053955],[-46.133975982666016,-13.375231742858887],[-46.214309692382756,-13.400718688964844],[-46.238639831542855,-13.554588317871037],[-46.161914825439446,-13.590933799743652],[-46.255924224853516,-13.693898200988768],[-46.22863769531249,-13.774501800537053],[-46.26808547973627,-13.943761825561523],[-46.21628189086914,-13.980290412902832],[-46.236347198486214,-14.1072416305542],[-46.01829147338867,-14.260635375976562],[-45.96321868896472,-14.285907745361328],[-45.927589416503906,-14.410319328308105],[-45.99877166748041,-14.429388999938965],[-45.98478317260742,-14.620813369750975],[-46.0373649597168,-14.874085426330565],[-46.088088989257805,-14.936395645141545],[-46.176425933837834,-14.94905185699457],[-46.286792755126896,-14.928150177001895],[-46.32214736938471,-14.814582824706974],[-46.46879196166992,-14.708827018737793],[-46.54413986206054,-14.753017425537111],[-46.5587539672851,-14.821079254150277],[-46.530757904052734,-15.005281448364144],[-46.502990722656186,-15.052579879760685],[-46.62539291381836,-15.089517593383789],[-46.78180694580078,-15.019327163696287],[-46.85684585571288,-15.010270118713379],[-46.91870498657215,-15.049869537353402],[-46.889095306396484,-15.111639022827148],[-46.9372940063476,-15.205021858215273],[-46.92760467529296,-15.255097389221133],[-46.83685302734369,-15.322600364685057],[-46.84942626953125,-15.37316513061512],[-46.93041610717768,-15.44309139251709],[-46.94904708862305,-15.55459976196289],[-46.854740142822266,-15.620355606079102],[-46.813098907470646,-15.78720378875727],[-46.82481384277344,-15.885722160339299],[-47.052738189697266,-15.937916755676213],[-47.151123046875,-15.935004234313963],[-47.228294372558594,-16.015762329101562],[-47.309001922607415,-16.035945892333928],[-47.368595123291016,-16.001937866210938],[-47.37606430053705,-15.88288021087635],[-47.31287384033203,-15.738094329833983],[-47.32578659057617,-15.589126586914064],[-47.374183654785156,-15.577832221984806],[-47.41729736328125,-15.500313758849984],[-48.20049285888672,-15.50016975402832],[-48.20027160644531,-15.621862411499023],[-48.240772247314396,-15.706986427307129],[-48.21349334716791,-15.759654045104924],[-48.28704833984375,-15.843138694763184],[-48.252445220947266,-15.936758995056037],[-48.279075622558594,-16.051555633544922],[-47.30875778198231,-16.0505313873291],[-47.35201644897455,-16.131959915161133],[-47.322410583496094,-16.231317520141545],[-47.3662223815918,-16.331499099731445],[-47.4271240234375,-16.394161224365174],[-47.44435882568354,-16.54076957702631],[-47.25010299682606,-16.66681480407715],[-47.14693069458008,-17.030784606933594],[-47.35193252563471,-17.166498184203988],[-47.42074203491211,-17.30104255676264],[-47.533271789550774,-17.394418716430607],[-47.50284957885742,-17.516550064086914],[-47.33087921142567,-17.524839401245117],[-47.26391601562494,-17.620458602905273],[-47.270362854003906,-17.674470901489258],[-47.336986541747926,-17.73742294311523],[-47.35877990722656,-17.887214660644474],[-47.28315353393555,-18.0582332611084],[-47.357742309570256,-18.085020065307617],[-47.497127532958984,-18.199100494384762],[-47.58140563964837,-18.23170471191395],[-47.698524475097535,-18.37723731994629],[-47.8090705871582,-18.400869369506832],[-47.86412811279297,-18.4643611907959],[-47.96214294433594,-18.496068954467773],[-48.047988891601555,-18.416967391967773],[-48.08857345581043,-18.429399490356445],[-48.27901840209955,-18.331531524658146],[-48.31489181518555,-18.36415481567377],[-48.477756500244084,-18.379196166992188],[-48.64711380004877,-18.34388923645014],[-48.83202743530268,-18.346130371093693],[-48.93671798706055,-18.306205749511715],[-49.005908966064396,-18.374355316162053],[-49.03396987915039,-18.524826049804688],[-49.18623352050775,-18.544534683227482],[-49.2491455078125,-18.522996902465763],[-49.41667556762695,-18.6385498046875],[-49.48177337646479,-18.561029434204045],[-49.48623275756835,-18.50825881958002],[-49.6454963684082,-18.557390213012695],[-49.7836341857909,-18.641340255737248],[-49.8851699829101,-18.60976791381836],[-50.01653289794922,-18.599838256835938],[-50.079986572265625,-18.6722412109375],[-50.16423034667962,-18.664350509643555],[-50.30930328369129,-18.69844818115234],[-50.37499237060541,-18.81029891967762],[-50.50024795532226,-18.9296932220459],[-50.4986839294433,-19.034025192260742],[-50.58496856689453,-19.137386322021428],[-50.677650451660156,-19.13968849182129],[-50.81706237792969,-19.289823532104435],[-50.87233734130854,-19.406127929687443],[-50.93574905395502,-19.467674255371094],[-51.057769775390625,-19.32944488525385],[-51.3077507019043,-19.218530654907227],[-51.36638259887695,-19.222360610961914],[-51.42041397094721,-19.166534423828125],[-51.592441558837834,-19.12741279602045],[-51.657890319824105,-19.137918472289982],[-51.81830596923828,-19.053579330444332],[-51.94025802612298,-18.96794891357422],[-52.08130264282221,-18.950904846191406],[-52.18141174316406,-18.847913742065373],[-52.34462738037104,-18.821533203124943],[-52.44905853271472,-18.690965652465817],[-52.55297470092768,-18.656986236572266],[-52.59280776977539,-18.689889907836857],[-52.82759475708008,-18.671892166137695],[-52.9142608642577,-18.61981773376465],[-52.96486663818354,-18.55002784729004],[-52.76184082031244,-18.371309280395508],[-52.78190994262695,-18.32559394836414],[-52.949348449706974,-18.296571731567326],[-53.06987380981439,-18.34288024902338],[-53.10108947753906,-18.31083106994629],[-53.1431770324707,-18.081836700439453],[-53.07192611694336,-18.039468765258732],[-53.07000732421875,-17.98653793334961],[-53.131370544433594,-17.916845321655217],[-53.17728424072254,-17.75586509704584],[-53.23828125,-17.714141845703068],[-53.25075912475586,-17.62806892395014],[-53.23025894165038,-17.427248001098633],[-53.197456359863274,-17.38133811950678],[-53.21857833862293,-17.299306869506836],[-53.068923950195256,-17.029968261718693],[-53.01405334472656,-16.864902496337777],[-52.96414566040039,-16.86700057983387],[-52.882225036621094,-16.77611160278309],[-52.79250717163086,-16.739734649658203],[-52.746803283691406,-16.63071060180664],[-52.63569641113281,-16.55163383483881],[-52.60433197021484,-16.46465873718256],[-52.676582336425724,-16.41230964660639],[-52.68686294555664,-16.315483093261662],[-52.65699768066406,-16.280166625976506],[-52.546279907226555,-16.258520126342773],[-52.548553466796875,-16.16511726379389],[-52.32769775390625,-16.06859588623047],[-52.25257492065423,-15.892660140991154],[-52.00798034667963,-15.885480880737303],[-51.94677734374999,-15.810563087463379],[-51.89220809936512,-15.830288887023926],[-51.762908935546875,-15.645635604858397],[-51.77585601806635,-15.558287620544434],[-51.7046165466308,-15.49670124053955],[-51.67132568359369,-15.371731758117619],[-51.6882438659668,-15.30885887145996],[-51.652038574218686,-15.179879188537486],[-51.598186492919865,-15.155446052551214],[-51.535903930664006,-15.069691658019961],[-51.428279876708984,-15.00923728942871],[-51.301868438720646,-14.986533164978026],[-51.24254608154291,-15.035402297973574],[-51.08402633666992,-14.916407585143986],[-51.08976745605463,-14.84116458892822],[-50.962818145751896,-14.52706623077387],[-50.99901580810547,-14.419235229492188],[-50.96123504638672,-14.249350547790527],[-50.83173370361328,-14.073386192321776],[-50.864021301269474,-13.721739768981877],[-50.80390548706054,-13.690969467163086],[-50.763397216796875,-13.530016899108887],[-50.66540145874012,-13.442285537719668],[-50.66559600830066,-13.376140594482365],[-50.60715103149414,-13.310861587524357],[-50.57686996459955,-13.051088333129826],[-50.52587509155268,-12.976426124572754],[-50.511016845703125,-12.860708236694336],[-50.41859436035144,-12.62460994720459],[-50.36587142944336,-12.546072959899902],[-50.21228027343744,-12.437126159667969],[-50.208293914794865,-12.57303714752197],[-50.29567337036133,-12.68449878692627],[-50.31122589111328,-12.798553466796875],[-50.183372497558594,-12.896775245666447],[-50.07883834838867,-12.905943870544432],[-49.939369201660035,-12.956930160522461],[-49.36944198608393,-13.274602890014648],[-49.34202194213867,-13.255134582519474],[-49.33741378784168,-13.066299438476504],[-49.249465942382756,-12.902787208557015],[-49.1190299987793,-12.790364265441895],[-48.97557830810541,-12.95720386505127],[-48.8698387145996,-12.804408073425236],[-48.73652267456055,-12.921031951904297],[-48.73069381713867,-12.989795684814453],[-48.6382827758789,-13.018381118774355],[-48.57861328125,-13.126596450805664],[-48.47250366210932,-13.142780303955021],[-48.44680404663085,-13.283736228942756],[-48.29255294799799,-13.219557762145996],[-48.17388534545898,-13.148106575012207],[-48.15148544311517,-13.306541442871037],[-48.02251434326172,-13.279841423034668],[-47.88885116577142,-13.318043708801268],[-47.823936462402344,-13.311871528625488],[-47.678932189941406,-13.467717170715275],[-47.63888549804682,-13.39106273651123],[-47.66884613037104,-13.2094087600708],[-47.61793136596673,-13.104711532592772],[-47.56302261352539,-13.18423557281494],[-47.47883605957031,-13.185147285461369],[-47.434795379638615,-13.268231391906681],[-47.37768173217768,-13.230617523193303],[-47.32294082641596,-13.258310317993107],[-47.22909927368158,-13.194874763488713],[-47.00968551635731,-13.140827178955078],[-46.819644927978516,-13.002476692199705],[-46.75056076049799,-12.969160079955998],[-46.4546012878418,-12.971158981323185],[-46.417564392089844,-12.823479652404785],[-46.366142272949105,-12.864859580993596],[-46.36382293701166,-12.991222381591797],[-46.19449996948242,-12.956678390502873],[-46.11459732055664,-12.918439865112248]]]},"properties":{"ID_0":33,"ISO":"BR-GO","NAME_0":"Brazil","ID_1":9,"NAME_1":"Goiás","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Goiáz|Goyáz"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-42.236526489257756,-2.685693025588989],[-42.14458465576166,-2.730139017105103],[-42.175140380859375,-2.776527881622314],[-42.25319290161133,-2.737082958221436],[-42.236526489257756,-2.685693025588989]]],[[[-42.21486282348627,-2.684026956558171],[-42.063472747802734,-2.688750028610229],[-42.082637786865234,-2.776249885559082],[-42.147914886474545,-2.710971117019596],[-42.21486282348627,-2.684026956558171]]],[[[-43.80208206176752,-2.391527891159058],[-43.743473052978516,-2.441248893737793],[-43.79208374023426,-2.547638893127441],[-43.84402847290033,-2.538194894790649],[-43.84097290039056,-2.435138940811157],[-43.80208206176752,-2.391527891159058]]],[[[-43.62374877929681,-2.251249074935856],[-43.640972137451165,-2.400137901306152],[-43.73430633544922,-2.421806097030583],[-43.71097183227539,-2.284306049346924],[-43.62374877929681,-2.251249074935856]]],[[[-44.977359771728516,-1.264861941337472],[-44.90486145019531,-1.340139985084534],[-44.96986007690424,-1.392361044883671],[-44.977359771728516,-1.264861941337472]]],[[[-45.95458221435547,-1.190971970558167],[-45.897361755371094,-1.117638945579472],[-45.79402923583978,-1.245416045188847],[-45.73541641235351,-1.205417990684509],[-45.639583587646484,-1.341528058052006],[-45.5926399230957,-1.26569402217865],[-45.476806640624936,-1.378193974494934],[-45.37097167968744,-1.396250009536743],[-45.30680465698231,-1.335417032241821],[-45.307083129882756,-1.495694994926396],[-45.36708450317383,-1.710139036178589],[-45.31986236572259,-1.749305963516179],[-45.225418090820256,-1.660138964653015],[-45.254859924316406,-1.614583969116211],[-45.22819519042963,-1.542359948158207],[-45.154304504394474,-1.470139026641846],[-45.0970840454101,-1.45541596412653],[-45.00541687011713,-1.486528038978577],[-44.951805114746094,-1.586806058883667],[-44.90847396850586,-1.612362027168274],[-44.77569580078119,-1.575139045715275],[-44.67652893066406,-1.568472981452942],[-44.63986206054682,-1.620694041252079],[-44.73736190795887,-1.650694966316223],[-44.762359619140625,-1.70458197593689],[-44.6029167175293,-1.766527056693974],[-44.520416259765625,-1.876804947852975],[-44.49180603027344,-2.038470983505249],[-44.58652877807617,-2.137917041778564],[-44.46374893188471,-2.14624905586237],[-44.39875030517578,-2.215138912200871],[-44.35763931274414,-2.340971946716252],[-44.38402938842762,-2.4037508964538],[-44.302360534667905,-2.487638950347844],[-44.22597122192377,-2.479027986526489],[-44.077362060546875,-2.40513896942133],[-44.02847290039057,-2.409027099609375],[-44.03708267211903,-2.557084083557129],[-44.07986068725586,-2.5626380443573],[-44.1379165649414,-2.682360887527409],[-44.264862060546875,-2.73874902725214],[-44.23541641235346,-2.775137901306152],[-44.13486099243163,-2.78013896942133],[-44.02736282348632,-2.657083034515324],[-43.955970764160156,-2.624861001968384],[-43.930694580078125,-2.56124997138977],[-43.78930664062494,-2.548194885253906],[-43.71597290039057,-2.475415945053101],[-43.618751525878906,-2.521527051925659],[-43.5676383972168,-2.493473052978458],[-43.48319625854492,-2.526527881622314],[-43.45208358764643,-2.345416069030762],[-43.3256950378418,-2.33680605888361],[-43.240970611572266,-2.35819506645197],[-42.92180633544922,-2.49541711807251],[-42.793750762939396,-2.562082052230835],[-42.69569396972656,-2.575417041778508],[-42.62208175659174,-2.645138025283813],[-42.481803894042905,-2.722637891769352],[-42.366527557372926,-2.714306116104069],[-42.277362823486214,-2.752638101577758],[-42.2301406860351,-2.811527013778687],[-42.045417785644474,-2.808751106262207],[-42.00263977050781,-2.715415954589787],[-41.816806793212834,-2.743750095367432],[-41.86544418334955,-2.8749001026153],[-41.79674530029297,-2.966576099395752],[-41.82422637939453,-3.024517059326058],[-41.92597579956055,-3.115488052368164],[-42.00017547607422,-3.241106986999512],[-42.11577987670892,-3.262346982955876],[-42.152145385742074,-3.387494087219181],[-42.21004104614258,-3.43632006645197],[-42.33076095581049,-3.433881044387761],[-42.39905929565429,-3.472915887832642],[-42.5065078735351,-3.478835105895996],[-42.67570495605463,-3.675617933273259],[-42.66881942749018,-3.729367017745972],[-42.72615814208973,-3.910024881362915],[-42.82360076904291,-3.992214918136596],[-42.862888336181584,-4.092888832092285],[-42.98914718627924,-4.23406982421875],[-42.96326446533203,-4.376433849334717],[-42.871990203857415,-4.428577899932861],[-42.8678741455077,-4.56358003616333],[-42.954544067382756,-4.689482212066594],[-42.948421478271484,-4.766877174377384],[-42.81856155395502,-5.093526840209904],[-42.800209045410156,-5.199390888214111],[-42.82626724243158,-5.346964836120548],[-42.913204193115234,-5.398845195770207],[-43.034553527831974,-5.592273235321045],[-43.0989532470702,-5.63320779800415],[-43.0993766784668,-5.901104927062875],[-43.050174713134766,-6.01310396194458],[-43.04993057250965,-6.099762916564941],[-42.96854019165039,-6.178270816802922],[-42.87432861328119,-6.228136062622013],[-42.84695434570307,-6.282508850097656],[-42.877708435058594,-6.417881011962891],[-42.87177658081048,-6.511956214904785],[-42.91972732543939,-6.670321941375732],[-43.001121520996094,-6.754475116729736],[-43.24464797973627,-6.766366958618107],[-43.27867889404297,-6.796631813049316],[-43.45725631713867,-6.846337795257568],[-43.637466430664,-6.719579219818115],[-43.7939834594726,-6.702743053436279],[-43.87982940673828,-6.757727146148624],[-43.961162567138615,-6.741913795471191],[-44.16084671020502,-6.872814178466797],[-44.173492431640625,-6.924349784850961],[-44.30615234375,-7.117186069488525],[-44.37998962402338,-7.119038105010986],[-44.564022064208984,-7.227546215057372],[-44.68793106079095,-7.394548892974854],[-44.816684722900334,-7.361218929290771],[-44.92439651489258,-7.470303058624267],[-45.04487228393555,-7.511248111724854],[-45.15540313720703,-7.51349496841425],[-45.21810150146479,-7.567862033843937],[-45.339717864990234,-7.580257892608643],[-45.46886444091797,-7.689144134521483],[-45.52079772949212,-7.888095855712891],[-45.57624053955078,-8.029102325439396],[-45.581417083740234,-8.156057357788029],[-45.661506652832024,-8.250032424926758],[-45.68748474121088,-8.355563163757324],[-45.74225997924804,-8.451149940490723],[-45.738410949706974,-8.501184463500977],[-45.81549835205078,-8.6332368850708],[-45.83989715576166,-8.715288162231445],[-45.938396453857365,-8.784948348999023],[-45.994243621826165,-8.926877975463867],[-45.94341278076172,-9.015324592590275],[-45.89860916137695,-9.209687232971078],[-45.907016754150334,-9.29802417755127],[-45.79779434204101,-9.417263984680176],[-45.78377532958984,-9.480117797851506],[-45.831893920898324,-9.536803245544432],[-45.82137298583979,-9.773135185241642],[-45.864379882812436,-9.861476898193303],[-45.84223556518555,-9.941568374633787],[-45.87849426269525,-10.110310554504338],[-45.94556808471674,-10.196453094482422],[-45.94632720947259,-10.258577346801758],[-46.01767349243153,-10.240401268005371],[-46.02317047119135,-10.183390617370605],[-46.164592742919915,-10.212915420532225],[-46.202030181884766,-10.173930168151855],[-46.32747268676758,-10.18370342254633],[-46.443836212158146,-10.07758712768549],[-46.47753524780262,-9.988312721252441],[-46.47285079956049,-9.877449035644531],[-46.51210021972656,-9.798994064331055],[-46.64273452758789,-9.741473197936955],[-46.57925415039057,-9.584088325500431],[-46.573204040527344,-9.47777271270752],[-46.62754058837884,-9.465735435485838],[-46.665924072265625,-9.39193153381342],[-46.75862503051758,-9.38122940063465],[-46.812870025634766,-9.305959701538086],[-46.81956481933594,-9.211627006530703],[-46.861064910888615,-9.14643383026123],[-46.9262580871582,-9.134954452514648],[-46.94295120239258,-9.064485549926756],[-47.05767822265625,-9.05296516418457],[-46.99250030517572,-8.879414558410588],[-46.90275573730463,-8.8145494461059],[-46.931228637695305,-8.726763725280705],[-46.886898040771484,-8.686503410339355],[-46.91264724731445,-8.591856956481934],[-46.8469352722168,-8.532048225402832],[-46.78238296508789,-8.368098258972111],[-46.63518524169922,-8.319332122802734],[-46.54458236694335,-8.319337844848576],[-46.48751068115229,-8.199920654296875],[-46.51458740234374,-8.167078018188477],[-46.47036743164057,-8.084755897521973],[-46.492080688476555,-7.981707096099854],[-46.604621887206974,-7.896190166473389],[-46.708400726318295,-7.909939765930175],[-46.80009841918945,-7.95543622970581],[-46.882617950439396,-7.964091777801513],[-46.99737548828119,-8.067242622375488],[-47.043453216552734,-8.053603172302246],[-47.14274597167969,-7.894848823547307],[-47.2235107421875,-7.826710224151611],[-47.261268615722656,-7.748301029205265],[-47.38185501098633,-7.654075145721436],[-47.38204574584961,-7.5999817848205],[-47.49790573120117,-7.479200839996338],[-47.49973678588867,-7.293870925903264],[-47.58905029296875,-7.264108180999641],[-47.6517219543457,-7.300271034240723],[-47.7354888916015,-7.218334197998047],[-47.745079040527344,-7.162519931793212],[-47.66032409667969,-7.151381969451904],[-47.54631423950184,-7.014830112457218],[-47.50698852539057,-6.872023105621337],[-47.498592376708984,-6.671247959136963],[-47.37876892089844,-6.270872116088867],[-47.41654586791992,-6.177840232849121],[-47.44791030883789,-5.992932796478215],[-47.442234039306584,-5.830804824829102],[-47.493324279785156,-5.730547904968262],[-47.48320770263672,-5.564914226531982],[-47.55531692504882,-5.465753078460637],[-47.6185684204101,-5.459743022918701],[-47.742176055908146,-5.381310939788818],[-47.82748794555664,-5.386606216430607],[-47.88551712036127,-5.260717868804875],[-48.003093719482365,-5.234705924987736],[-48.07922363281244,-5.275046825408879],[-48.1784934997558,-5.260793209075871],[-48.3638572692871,-5.168396949767953],[-48.51940917968744,-5.192152023315372],[-48.6060791015625,-5.336520195007324],[-48.679386138916016,-5.305838108062687],[-48.75510025024402,-5.349186897277775],[-48.434104919433594,-5.096251010894775],[-47.81610107421869,-4.614747047424316],[-47.789871215820256,-4.585527896881047],[-47.679889678955014,-4.608623027801457],[-47.581424713134766,-4.519952774047852],[-47.47609329223627,-4.355028152465763],[-47.47339630126953,-4.314453124999886],[-47.37962341308594,-4.220445156097355],[-47.31884765624994,-4.046940803527775],[-47.21979522705078,-3.995964050292968],[-47.13512420654296,-3.881808996200505],[-47.088066101074155,-3.855468988418522],[-47.04550933837885,-3.708010911941472],[-47.056201934814396,-3.646598100662174],[-47.01845550537098,-3.546910047531014],[-46.977012634277344,-3.526058912277222],[-46.94882965087885,-3.406909942626896],[-46.848415374755746,-3.335644006729069],[-46.80739593505854,-3.241871118545532],[-46.746395111083984,-3.178845882415715],[-46.65203475952143,-2.996537923812809],[-46.63661575317383,-2.851216077804565],[-46.59892272949212,-2.795705080032292],[-46.668033599853516,-2.734045028686467],[-46.62187194824219,-2.644543886184635],[-46.50495529174805,-2.614938020706177],[-46.433876037597656,-2.51484298706049],[-46.43161392211914,-2.298372983932438],[-46.291786193847656,-2.164582967758065],[-46.27334594726557,-2.058764934539795],[-46.21853256225586,-1.913226008415165],[-46.22927856445307,-1.800623059272709],[-46.31654739379877,-1.795057058334351],[-46.29111862182617,-1.723441958427429],[-46.22511291503906,-1.726065993309021],[-46.15357589721679,-1.675917983055115],[-46.131927490234375,-1.578832983970642],[-46.17658233642578,-1.475381016731205],[-46.13946151733398,-1.444419026374817],[-46.10610580444336,-1.332491040229797],[-46.162849426269524,-1.278329014778137],[-46.151092529296754,-1.224804043769836],[-46.08441543579096,-1.189643979072514],[-46.05145263671875,-1.105137944221497],[-45.980140686035156,-1.048194050788823],[-45.95458221435547,-1.190971970558167]]]]},"properties":{"ID_0":33,"ISO":"BR-MA","NAME_0":"Brazil","ID_1":10,"NAME_1":"Maranhão","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"São Luíz de Maranhão"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-53.07192611694336,-18.039468765258732],[-53.1431770324707,-18.081836700439453],[-53.10108947753906,-18.31083106994629],[-53.06987380981439,-18.34288024902338],[-52.949348449706974,-18.296571731567326],[-52.78190994262695,-18.32559394836414],[-52.76184082031244,-18.371309280395508],[-52.96486663818354,-18.55002784729004],[-52.9142608642577,-18.61981773376465],[-52.82759475708008,-18.671892166137695],[-52.59280776977539,-18.689889907836857],[-52.55297470092768,-18.656986236572266],[-52.44905853271472,-18.690965652465817],[-52.34462738037104,-18.821533203124943],[-52.18141174316406,-18.847913742065373],[-52.08130264282221,-18.950904846191406],[-51.94025802612298,-18.96794891357422],[-51.81830596923828,-19.053579330444332],[-51.657890319824105,-19.137918472289982],[-51.592441558837834,-19.12741279602045],[-51.42041397094721,-19.166534423828125],[-51.36638259887695,-19.222360610961914],[-51.3077507019043,-19.218530654907227],[-51.057769775390625,-19.32944488525385],[-50.93574905395502,-19.467674255371094],[-50.924106597900334,-19.558616638183537],[-50.98749542236328,-19.58950424194336],[-51.045372009277344,-19.73755264282221],[-50.999412536621094,-19.9063720703125],[-51.020339965820256,-19.962385177612187],[-51.000415802001896,-20.08538055419922],[-51.0691032409668,-20.25004577636713],[-51.16730499267572,-20.30636024475092],[-51.295623779296875,-20.328479766845703],[-51.35080718994129,-20.363176345825195],[-51.5234260559082,-20.588636398315373],[-51.59614562988281,-20.648759841918945],[-51.63483810424805,-20.754846572875977],[-51.61342239379877,-20.89007186889637],[-51.626625061035156,-20.94634437561035],[-51.71363830566406,-20.97145271301264],[-51.789608001708984,-21.102115631103516],[-51.878921508789006,-21.14813232421869],[-51.848453521728516,-21.266633987426644],[-51.86763381958008,-21.35165405273426],[-51.92861938476557,-21.455810546875],[-51.99810791015625,-21.51562309265131],[-52.05700683593749,-21.503602981567326],[-52.10322952270502,-21.559055328369084],[-52.049453735351506,-21.643106460571232],[-52.10284042358393,-21.74526596069336],[-52.16120147705078,-21.770769119262695],[-52.19050216674799,-21.84613609313965],[-52.319026947021484,-21.97236251831049],[-52.345371246337834,-22.061962127685547],[-52.48669815063471,-22.215190887451115],[-52.57912445068354,-22.251947402954045],[-52.798267364501896,-22.378267288208008],[-52.854698181152344,-22.43910598754877],[-52.99851989746094,-22.493181228637695],[-53.10512161254883,-22.621923446655273],[-53.18088912963861,-22.713632583618107],[-53.35448455810547,-22.777364730834957],[-53.53466796875,-22.8825626373291],[-53.60735702514643,-22.951326370239258],[-53.63652420043945,-23.125022888183594],[-53.771041870117074,-23.372125625610295],[-53.98279571533203,-23.46000099182129],[-54.07564544677723,-23.764478683471623],[-54.07984161376942,-23.88897132873535],[-54.129642486572266,-23.982101440429684],[-54.28385925292969,-24.06747436523437],[-54.39908218383789,-23.937421798706055],[-54.48265838623041,-23.881891250610238],[-54.675334930419915,-23.813564300536996],[-54.90420150756836,-23.905776977539006],[-54.931766510009766,-23.9614639282226],[-55.111503601074155,-23.960182189941406],[-55.23027801513671,-24.008590698242074],[-55.31419372558593,-23.95612525939941],[-55.353565216064396,-23.98891258239746],[-55.44090270996088,-23.90948867797846],[-55.44195556640619,-23.731216430664062],[-55.47669219970703,-23.640888214111328],[-55.53459930419922,-23.61095428466797],[-55.53695297241205,-23.444549560546818],[-55.50112533569336,-23.379241943359318],[-55.54849243164057,-23.31415367126459],[-55.51932525634765,-23.258966445922848],[-55.53881835937499,-23.162990570068356],[-55.589275360107415,-23.143989562988168],[-55.63899230957025,-23.026594161987305],[-55.66585159301758,-22.868566513061523],[-55.627353668212834,-22.766738891601562],[-55.62667083740229,-22.618640899658203],[-55.72369003295887,-22.545202255248967],[-55.74502563476556,-22.386493682861325],[-55.788978576660156,-22.379331588745117],[-55.860996246337834,-22.27632522583002],[-56.06004333496088,-22.290479660034123],[-56.20773696899413,-22.278108596801758],[-56.340785980224545,-22.20321083068842],[-56.40267562866205,-22.0747394561767],[-56.51827239990229,-22.100301742553654],[-56.5742568969726,-22.1967830657959],[-56.65064620971674,-22.256042480468746],[-56.75288772583002,-22.23407554626465],[-56.83046722412109,-22.297666549682614],[-56.99984359741211,-22.222686767578125],[-57.249507904052734,-22.24017715454096],[-57.58337402343749,-22.16428565979004],[-57.61576843261712,-22.093425750732422],[-57.700832366943295,-22.089618682861328],[-57.75571823120117,-22.13081359863281],[-57.920669555663956,-22.119312286376953],[-57.980224609375,-22.085548400878906],[-57.920166015624936,-21.872627258300724],[-57.896221160888615,-21.699850082397404],[-57.91535568237305,-21.587223052978516],[-57.96281814575183,-21.54905128479004],[-57.85876083374018,-21.31073570251465],[-57.84623718261719,-21.09894371032709],[-57.86509704589843,-21.03861045837391],[-57.818119049072216,-20.981237411499023],[-57.92005538940429,-20.881124496459904],[-57.85973358154296,-20.848274230956974],[-57.869922637939396,-20.7281494140625],[-57.914821624755795,-20.667705535888672],[-58.01480484008789,-20.60527038574213],[-58.003658294677734,-20.423196792602482],[-58.07678222656238,-20.376808166503793],[-58.086708068847656,-20.27056312561035],[-58.15318298339843,-20.261148452758732],[-58.15610885620111,-20.150840759277344],[-58.05030059814453,-20.100440979003903],[-57.87668991088861,-19.96588134765625],[-57.98727035522461,-19.888029098510742],[-58.13339996337884,-19.757841110229492],[-57.78419113159173,-19.03351020812977],[-57.71014022827148,-19.032590866088867],[-57.71977233886718,-18.89906883239746],[-57.766609191894524,-18.899288177490234],[-57.55776977539057,-18.2403507232666],[-57.505069732666016,-18.200340270996094],[-57.57479095458984,-18.13188934326172],[-57.600040435790895,-18.046369552612305],[-57.72060012817382,-17.827859878539982],[-57.7148094177246,-17.733718872070312],[-57.785049438476506,-17.645490646362305],[-57.752231597900334,-17.56445884704584],[-57.71201705932617,-17.544103622436523],[-57.684238433837834,-17.715637207031193],[-57.62304306030273,-17.736360549926758],[-57.60301208496094,-17.804351806640565],[-57.477519989013665,-17.859054565429688],[-57.2647705078125,-17.8203506469726],[-57.22706985473633,-17.78278732299799],[-57.11554336547846,-17.781089782714787],[-56.98815536499017,-17.659292221069336],[-56.94240188598633,-17.551897048950195],[-56.87590026855462,-17.532974243164062],[-56.75685119628906,-17.326736450195256],[-56.595825195312386,-17.332546234130803],[-56.490032196044865,-17.29831695556635],[-56.44326019287109,-17.33071327209467],[-56.280055999755795,-17.259166717529293],[-56.251277923583984,-17.219024658203125],[-56.113052368164,-17.167198181152287],[-56.0160026550293,-17.190231323242188],[-56.01071929931635,-17.2390460968017],[-55.874744415283146,-17.268636703491097],[-55.72218322753906,-17.34869956970215],[-55.58284378051758,-17.379074096679688],[-55.52223205566406,-17.472576141357365],[-55.29961013793945,-17.541194915771484],[-55.127193450927734,-17.65272331237793],[-54.974212646484375,-17.617046356201115],[-54.86080169677729,-17.623855590820312],[-54.75871658325195,-17.56569862365717],[-54.748889923095696,-17.522886276245004],[-54.50368881225586,-17.480112075805664],[-54.42101669311523,-17.53775405883789],[-54.33552169799793,-17.661724090576172],[-54.17876815795898,-17.602853775024414],[-54.08462905883789,-17.619035720825195],[-54.03756713867182,-17.486444473266545],[-53.95218276977538,-17.459337234497013],[-53.820011138916016,-17.29461669921869],[-53.759014129638615,-17.243143081664982],[-53.68001174926758,-17.253570556640625],[-53.70382308959961,-17.661344528198185],[-53.8558464050293,-17.702718734741154],[-53.955684661865234,-17.883020401000977],[-53.83749008178705,-17.93470382690424],[-53.77415466308587,-18.000772476196175],[-53.66118240356445,-17.97751235961914],[-53.46778869628906,-18.034893035888672],[-53.29894638061518,-17.995534896850586],[-53.173622131347656,-18.042049407958984],[-53.07192611694336,-18.039468765258732]]]},"properties":{"ID_0":33,"ISO":"BR-MS","NAME_0":"Brazil","ID_1":11,"NAME_1":"Mato Grosso do Sul","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-50.22717285156244,-9.84562969207758],[-50.31239700317383,-10.04567241668701],[-50.39209365844726,-10.134040832519474],[-50.38262939453119,-10.222892761230469],[-50.423145294189396,-10.330657005310002],[-50.516025543212834,-10.505141258239746],[-50.51967239379877,-10.562488555908203],[-50.60339736938471,-10.660944938659668],[-50.5705337524414,-10.752511978149414],[-50.621952056884766,-10.839422225952092],[-50.63289260864258,-10.935950279235783],[-50.6094017028808,-11.06746768951416],[-50.65796279907215,-11.128582954406738],[-50.65436553955078,-11.218374252319336],[-50.74200439453125,-11.454914093017576],[-50.740116119384766,-11.53861999511713],[-50.65818405151367,-11.592030525207463],[-50.663459777831974,-11.672493934631348],[-50.721534729003906,-11.731719970703068],[-50.686248779296875,-11.859002113342285],[-50.63923263549805,-11.884573936462346],[-50.68218231201166,-11.990894317626951],[-50.66756439208978,-12.064569473266602],[-50.678619384765625,-12.218859672546271],[-50.62681579589844,-12.384039878845101],[-50.623516082763615,-12.455289840698242],[-50.7064323425293,-12.609708786010742],[-50.62322616577143,-12.734309196472111],[-50.61345291137695,-12.818407058715763],[-50.511016845703125,-12.860708236694336],[-50.52587509155268,-12.976426124572754],[-50.57686996459955,-13.051088333129826],[-50.60715103149414,-13.310861587524357],[-50.66559600830066,-13.376140594482365],[-50.66540145874012,-13.442285537719668],[-50.763397216796875,-13.530016899108887],[-50.80390548706054,-13.690969467163086],[-50.864021301269474,-13.721739768981877],[-50.83173370361328,-14.073386192321776],[-50.96123504638672,-14.249350547790527],[-50.99901580810547,-14.419235229492188],[-50.962818145751896,-14.52706623077387],[-51.08976745605463,-14.84116458892822],[-51.08402633666992,-14.916407585143986],[-51.24254608154291,-15.035402297973574],[-51.301868438720646,-14.986533164978026],[-51.428279876708984,-15.00923728942871],[-51.535903930664006,-15.069691658019961],[-51.598186492919865,-15.155446052551214],[-51.652038574218686,-15.179879188537486],[-51.6882438659668,-15.30885887145996],[-51.67132568359369,-15.371731758117619],[-51.7046165466308,-15.49670124053955],[-51.77585601806635,-15.558287620544434],[-51.762908935546875,-15.645635604858397],[-51.89220809936512,-15.830288887023926],[-51.94677734374999,-15.810563087463379],[-52.00798034667963,-15.885480880737303],[-52.25257492065423,-15.892660140991154],[-52.32769775390625,-16.06859588623047],[-52.548553466796875,-16.16511726379389],[-52.546279907226555,-16.258520126342773],[-52.65699768066406,-16.280166625976506],[-52.68686294555664,-16.315483093261662],[-52.676582336425724,-16.41230964660639],[-52.60433197021484,-16.46465873718256],[-52.63569641113281,-16.55163383483881],[-52.746803283691406,-16.63071060180664],[-52.79250717163086,-16.739734649658203],[-52.882225036621094,-16.77611160278309],[-52.96414566040039,-16.86700057983387],[-53.01405334472656,-16.864902496337777],[-53.068923950195256,-17.029968261718693],[-53.21857833862293,-17.299306869506836],[-53.197456359863274,-17.38133811950678],[-53.23025894165038,-17.427248001098633],[-53.25075912475586,-17.62806892395014],[-53.23828125,-17.714141845703068],[-53.17728424072254,-17.75586509704584],[-53.131370544433594,-17.916845321655217],[-53.07000732421875,-17.98653793334961],[-53.07192611694336,-18.039468765258732],[-53.173622131347656,-18.042049407958984],[-53.29894638061518,-17.995534896850586],[-53.46778869628906,-18.034893035888672],[-53.66118240356445,-17.97751235961914],[-53.77415466308587,-18.000772476196175],[-53.83749008178705,-17.93470382690424],[-53.955684661865234,-17.883020401000977],[-53.8558464050293,-17.702718734741154],[-53.70382308959961,-17.661344528198185],[-53.68001174926758,-17.253570556640625],[-53.759014129638615,-17.243143081664982],[-53.820011138916016,-17.29461669921869],[-53.95218276977538,-17.459337234497013],[-54.03756713867182,-17.486444473266545],[-54.08462905883789,-17.619035720825195],[-54.17876815795898,-17.602853775024414],[-54.33552169799793,-17.661724090576172],[-54.42101669311523,-17.53775405883789],[-54.50368881225586,-17.480112075805664],[-54.748889923095696,-17.522886276245004],[-54.75871658325195,-17.56569862365717],[-54.86080169677729,-17.623855590820312],[-54.974212646484375,-17.617046356201115],[-55.127193450927734,-17.65272331237793],[-55.29961013793945,-17.541194915771484],[-55.52223205566406,-17.472576141357365],[-55.58284378051758,-17.379074096679688],[-55.72218322753906,-17.34869956970215],[-55.874744415283146,-17.268636703491097],[-56.01071929931635,-17.2390460968017],[-56.0160026550293,-17.190231323242188],[-56.113052368164,-17.167198181152287],[-56.251277923583984,-17.219024658203125],[-56.280055999755795,-17.259166717529293],[-56.44326019287109,-17.33071327209467],[-56.490032196044865,-17.29831695556635],[-56.595825195312386,-17.332546234130803],[-56.75685119628906,-17.326736450195256],[-56.87590026855462,-17.532974243164062],[-56.94240188598633,-17.551897048950195],[-56.98815536499017,-17.659292221069336],[-57.11554336547846,-17.781089782714787],[-57.22706985473633,-17.78278732299799],[-57.2647705078125,-17.8203506469726],[-57.477519989013665,-17.859054565429688],[-57.60301208496094,-17.804351806640565],[-57.62304306030273,-17.736360549926758],[-57.684238433837834,-17.715637207031193],[-57.71201705932617,-17.544103622436523],[-57.752231597900334,-17.56445884704584],[-57.89920043945307,-17.45949172973627],[-58.00255966186518,-17.519540786743107],[-58.060077667236264,-17.450721740722596],[-58.24198913574219,-17.362871170043945],[-58.395462036132805,-17.18445968627924],[-58.47434997558588,-16.934959411621037],[-58.46303939819335,-16.652221679687443],[-58.43601989746088,-16.592359542846623],[-58.343791961669865,-16.517728805541992],[-58.356189727783146,-16.42803955078125],[-58.32147979736322,-16.378320693969727],[-58.320308685302734,-16.26902961730957],[-58.430400848388615,-16.32129859924316],[-59.47002792358398,-16.279550552368107],[-60.17198181152338,-16.262117385864197],[-60.235233306884645,-15.473531723022404],[-60.559486389160035,-15.11141109466553],[-60.24424743652344,-15.096813201904297],[-60.27207946777343,-14.620298385620117],[-60.32105636596673,-14.608878135681154],[-60.334449768066406,-14.508839607238713],[-60.392589569091676,-14.428670883178654],[-60.38825988769531,-14.368611335754393],[-60.44916915893555,-14.289369583129883],[-60.48159027099609,-14.181341171264648],[-60.47111129760742,-14.098210334777775],[-60.37845993041986,-13.992450714111326],[-60.44145202636719,-13.932999610900877],[-60.467720031738224,-13.800960540771484],[-60.53474044799805,-13.802941322326602],[-60.574691772460945,-13.747440338134764],[-60.65625,-13.738349914550723],[-60.82852935791015,-13.629509925842285],[-60.918922424316285,-13.548334121704043],[-60.8650894165039,-13.541679382324217],[-60.705120086669915,-13.324747085571289],[-60.37143325805663,-13.318634033203068],[-60.28055191040038,-13.135627746581974],[-60.267551422119084,-13.077292442321777],[-60.18328094482421,-12.967638015747013],[-60.11709976196289,-12.959565162658691],[-60.07904815673828,-12.881149291992188],[-60.088958740234375,-12.740471839904671],[-60.02657699584961,-12.561638832092228],[-59.903095245361335,-12.472520828247069],[-59.868423461914006,-12.48237133026123],[-59.79287719726562,-12.345791816711424],[-59.8862838745116,-12.245482444763182],[-59.90117263793945,-12.115450859069767],[-59.979290008544915,-12.029559135436896],[-59.98510742187501,-11.91435432434082],[-60.098796844482415,-11.845566749572752],[-60.12159729003906,-11.712114334106387],[-60.090717315673764,-11.554890632629395],[-59.920570373535156,-11.398019790649414],[-59.92770767211914,-11.310445785522404],[-59.981964111328125,-11.233511924743596],[-60.019325256347535,-11.129109382629338],[-60.15921020507807,-11.095663070678652],[-60.39149093627929,-11.093803405761662],[-60.459987640380795,-10.98986530303955],[-61.428943634033146,-10.987543106079043],[-61.53002929687494,-10.979029655456543],[-61.49876022338856,-10.699950218200682],[-61.47616577148437,-10.607674598693734],[-61.461719512939396,-10.419917106628361],[-61.5336799621582,-10.331894874572754],[-61.60059356689447,-10.1538028717041],[-61.53113174438476,-9.989865303039494],[-61.507858276367195,-9.861091613769474],[-61.547294616699155,-9.787552833557129],[-61.53236007690429,-9.711790084838809],[-61.47911453247059,-9.633694648742676],[-61.5079727172851,-9.54047679901123],[-61.581661224365234,-9.459136009216309],[-61.55263137817377,-9.387434959411621],[-61.625328063964844,-9.339431762695256],[-61.6131019592284,-9.28001880645752],[-61.52028274536127,-9.192301750183105],[-61.554874420166016,-9.090265274047852],[-61.46843719482422,-8.917381286621094],[-61.526020050048764,-8.816848754882812],[-61.58290100097656,-8.798702239990178],[-60.84881591796869,-8.798162460327148],[-60.42017364501953,-8.796627998351994],[-59.85696792602538,-8.801086425781193],[-59.12720489501953,-8.80335807800293],[-58.50029373168939,-8.80283737182617],[-58.394840240478516,-8.779890060424691],[-58.43735504150385,-8.703430175781191],[-58.39117050170898,-8.592260360717773],[-58.4169921875,-8.492003440856934],[-58.3184928894043,-8.330199241638184],[-58.32252883911127,-8.17001247406],[-58.29157638549805,-8.074268341064453],[-58.37332534790039,-7.907220840454101],[-58.382881164550724,-7.839098930358829],[-58.29478836059564,-7.772321224212532],[-58.28091812133788,-7.70964002609253],[-58.20204544067383,-7.620935916900635],[-58.21294403076167,-7.458469867706299],[-58.13698959350585,-7.356139183044376],[-58.05897140502929,-7.400421142578068],[-57.972515106201115,-7.534605026245116],[-57.939491271972656,-7.653149127960147],[-57.8980827331543,-7.676039218902587],[-57.87377166748047,-7.801208972930907],[-57.83491516113275,-7.882768154144286],[-57.828765869140625,-7.972909927368164],[-57.72837448120111,-8.094229698181152],[-57.70457458496093,-8.168040275573729],[-57.64320755004878,-8.213688850402832],[-57.6792984008789,-8.318199157714844],[-57.6815185546875,-8.43313980102539],[-57.637577056884766,-8.513570785522461],[-57.59287261962884,-8.756489753723088],[-57.530323028564396,-8.74818706512451],[-57.416069030761655,-8.795891761779785],[-57.420406341552734,-8.849626541137695],[-57.19279479980463,-8.930065155029297],[-57.094539642333984,-9.01712512969965],[-57.03917694091791,-9.09830379486084],[-57.05776214599603,-9.184202194213867],[-56.99548339843744,-9.233853340148924],[-56.820045471191406,-9.246354103088379],[-56.77225875854492,-9.39097023010248],[-56.67181777954096,-9.36740779876709],[-55.79182815551758,-9.440700531005858],[-54.99549484252929,-9.505422592163029],[-54.10655212402344,-9.571932792663516],[-53.133323669433594,-9.644869804382266],[-52.25528335571289,-9.707819938659611],[-51.463748931884766,-9.762153625488281],[-50.842838287353516,-9.800833702087402],[-50.22717285156244,-9.84562969207758]]]},"properties":{"ID_0":33,"ISO":"BR-MT","NAME_0":"Brazil","ID_1":12,"NAME_1":"Mato Grosso","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Matto Grosso"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-40.22235107421869,-17.980426788330078],[-40.32173919677729,-17.939041137695312],[-40.52697753906244,-17.891941070556637],[-40.613388061523324,-17.939725875854435],[-40.638835906982365,-18.035118103027287],[-40.5581436157226,-18.114637374877873],[-40.545780181884766,-18.204254150390625],[-40.618865966796875,-18.28757476806635],[-40.58302688598627,-18.36737060546875],[-40.60767364501953,-18.41653823852539],[-40.52325820922846,-18.473001480102482],[-40.63817596435541,-18.51629447937006],[-40.84795379638672,-18.493974685668945],[-40.95999526977539,-18.383861541748047],[-41.052494049072266,-18.343742370605412],[-41.175498962402344,-18.443784713745117],[-41.02268981933588,-18.457685470581055],[-41.05083465576166,-18.6341495513916],[-40.943580627441406,-18.687572479248047],[-40.91671371459961,-18.81553840637207],[-40.963855743408146,-18.84116554260254],[-41.11044692993152,-18.83893394470209],[-41.134075164794865,-18.796035766601562],[-41.232490539550724,-18.7972736358642],[-41.24266815185547,-18.85394668579096],[-41.12678909301758,-18.894502639770508],[-41.0268440246582,-18.985818862914982],[-41.05379486083973,-19.068859100341797],[-40.984703063964844,-19.100711822509766],[-40.922611236572266,-19.204082489013672],[-40.90763473510742,-19.308805465698185],[-40.96788024902344,-19.428764343261715],[-40.9721794128418,-19.505287170410156],[-41.16841506958002,-19.672216415405273],[-41.19074249267567,-19.74687385559082],[-41.166118621826115,-19.80990219116211],[-41.18482589721674,-19.888954162597656],[-41.30031585693354,-19.93836212158203],[-41.30803680419916,-20.013011932373047],[-41.382057189941406,-20.188806533813477],[-41.411643981933594,-20.206674575805664],[-41.7567024230957,-20.20685958862293],[-41.78097534179676,-20.292537689208984],[-41.84708786010742,-20.32947921752924],[-41.799533843994084,-20.477590560913086],[-41.87485885620117,-20.766815185546875],[-41.925289154052734,-20.801576614379883],[-41.967281341552734,-20.916835784912053],[-42.13835144042969,-20.960554122924805],[-42.08041763305658,-21.035688400268555],[-42.164314270019474,-21.101451873779297],[-42.22893142700195,-21.284427642822266],[-42.22981262207031,-21.36656761169428],[-42.292564392089844,-21.460035324096566],[-42.252681732177734,-21.489831924438477],[-42.34618759155268,-21.58298492431635],[-42.2711448669433,-21.715682983398434],[-42.356487274169865,-21.741891860961914],[-42.79167556762684,-21.930871963500977],[-43.074077606201165,-22.09333992004389],[-43.154067993164,-22.077974319458008],[-43.23656845092762,-22.013248443603516],[-43.32175064086914,-22.006742477416932],[-43.46241760253906,-22.072645187377873],[-43.77738952636712,-22.06677436828613],[-43.98828125,-22.150171279907227],[-44.100032806396484,-22.173301696777287],[-44.21327972412109,-22.24625778198236],[-44.432662963867074,-22.2516250610351],[-44.543464660644474,-22.33175277709961],[-44.809181213378906,-22.405263900756836],[-44.898929595947266,-22.452819824218746],[-45.06063461303705,-22.472545623779293],[-45.17799377441406,-22.549869537353516],[-45.410442352294865,-22.651664733886662],[-45.471736907958984,-22.59051513671875],[-45.52487945556635,-22.646865844726562],[-45.57666397094721,-22.602342605590763],[-45.664955139160156,-22.65064811706543],[-45.729927062988224,-22.727233886718636],[-45.71674728393555,-22.779970169067383],[-45.766910552978516,-22.842336654663086],[-45.92253112792969,-22.824045181274357],[-46.00838851928705,-22.889215469360238],[-46.155281066894474,-22.864164352416992],[-46.34517288208007,-22.904672622680664],[-46.37675857543945,-22.82782173156738],[-46.33516311645508,-22.76018714904785],[-46.43939971923828,-22.726716995239258],[-46.39626312255854,-22.64597129821777],[-46.453502655029176,-22.52235031127924],[-46.63154220581048,-22.43581581115717],[-46.71789932250976,-22.316934585571286],[-46.67073822021479,-22.184240341186467],[-46.61298751831055,-22.15024566650385],[-46.68535614013671,-22.0373477935791],[-46.64381408691406,-21.974948883056584],[-46.690906524658196,-21.836940765380803],[-46.62598037719726,-21.766199111938473],[-46.640895843505746,-21.602266311645508],[-46.694786071777344,-21.61142349243158],[-46.763034820556584,-21.547195434570312],[-46.65134048461914,-21.438982009887695],[-46.776344299316406,-21.36281967163086],[-46.93408203125,-21.425212860107422],[-47.118736267089844,-21.185768127441406],[-47.11309814453125,-21.10491371154785],[-47.14366912841791,-20.982378005981445],[-47.23999023437494,-20.88527488708496],[-47.18620300292963,-20.73112869262695],[-47.11869812011719,-20.707237243652287],[-47.09732437133778,-20.644332885742188],[-47.15431976318354,-20.519723892211914],[-47.29172897338867,-20.44930458068842],[-47.29815673828119,-20.348440170288086],[-47.23105239868164,-20.219100952148438],[-47.30961990356445,-20.124494552612248],[-47.40305328369134,-20.082788467407227],[-47.46632385253906,-19.964216232299805],[-47.57896041870117,-19.995243072509652],[-47.63591766357422,-20.048376083373963],[-47.70418167114257,-19.979900360107422],[-47.8597297668457,-19.99298858642578],[-47.89432907104492,-20.123830795288026],[-48.00329589843744,-20.10462951660145],[-48.07038497924805,-20.14659881591797],[-48.178760528564396,-20.09579658508295],[-48.20333099365234,-20.045438766479435],[-48.31630325317377,-20.11371612548828],[-48.72948455810547,-20.150243759155217],[-48.85559082031244,-20.182081222534123],[-48.885398864746094,-20.26913452148426],[-48.867385864257805,-20.40009117126459],[-48.968841552734375,-20.393735885620004],[-48.96173095703119,-20.26329040527338],[-48.99219512939453,-20.165388107299748],[-49.06742477416981,-20.154737472534123],[-49.12028121948242,-20.269697189331055],[-49.226993560791016,-20.30353164672846],[-49.299190521240234,-20.16706275939941],[-49.297481536865234,-19.960540771484375],[-49.44032287597656,-19.98080062866211],[-49.55141067504877,-19.905841827392578],[-49.641159057617074,-19.931869506835938],[-49.78239822387684,-19.92445755004877],[-49.891223907470696,-19.9437198638916],[-50.04383850097656,-19.916492462158203],[-50.09957885742182,-19.875988006591793],[-50.35273742675781,-19.86458587646473],[-50.47184753417969,-19.779651641845703],[-50.57592773437494,-19.81601715087885],[-50.6568374633789,-19.90537261962885],[-50.783542633056584,-19.937225341796815],[-50.966400146484375,-20.03452491760254],[-51.000415802001896,-20.08538055419922],[-51.020339965820256,-19.962385177612187],[-50.999412536621094,-19.9063720703125],[-51.045372009277344,-19.73755264282221],[-50.98749542236328,-19.58950424194336],[-50.924106597900334,-19.558616638183537],[-50.93574905395502,-19.467674255371094],[-50.87233734130854,-19.406127929687443],[-50.81706237792969,-19.289823532104435],[-50.677650451660156,-19.13968849182129],[-50.58496856689453,-19.137386322021428],[-50.4986839294433,-19.034025192260742],[-50.50024795532226,-18.9296932220459],[-50.37499237060541,-18.81029891967762],[-50.30930328369129,-18.69844818115234],[-50.16423034667962,-18.664350509643555],[-50.079986572265625,-18.6722412109375],[-50.01653289794922,-18.599838256835938],[-49.8851699829101,-18.60976791381836],[-49.7836341857909,-18.641340255737248],[-49.6454963684082,-18.557390213012695],[-49.48623275756835,-18.50825881958002],[-49.48177337646479,-18.561029434204045],[-49.41667556762695,-18.6385498046875],[-49.2491455078125,-18.522996902465763],[-49.18623352050775,-18.544534683227482],[-49.03396987915039,-18.524826049804688],[-49.005908966064396,-18.374355316162053],[-48.93671798706055,-18.306205749511715],[-48.83202743530268,-18.346130371093693],[-48.64711380004877,-18.34388923645014],[-48.477756500244084,-18.379196166992188],[-48.31489181518555,-18.36415481567377],[-48.27901840209955,-18.331531524658146],[-48.08857345581043,-18.429399490356445],[-48.047988891601555,-18.416967391967773],[-47.96214294433594,-18.496068954467773],[-47.86412811279297,-18.4643611907959],[-47.8090705871582,-18.400869369506832],[-47.698524475097535,-18.37723731994629],[-47.58140563964837,-18.23170471191395],[-47.497127532958984,-18.199100494384762],[-47.357742309570256,-18.085020065307617],[-47.28315353393555,-18.0582332611084],[-47.35877990722656,-17.887214660644474],[-47.336986541747926,-17.73742294311523],[-47.270362854003906,-17.674470901489258],[-47.26391601562494,-17.620458602905273],[-47.33087921142567,-17.524839401245117],[-47.50284957885742,-17.516550064086914],[-47.533271789550774,-17.394418716430607],[-47.42074203491211,-17.30104255676264],[-47.35193252563471,-17.166498184203988],[-47.14693069458008,-17.030784606933594],[-47.25010299682606,-16.66681480407715],[-47.44435882568354,-16.54076957702631],[-47.4271240234375,-16.394161224365174],[-47.3662223815918,-16.331499099731445],[-47.322410583496094,-16.231317520141545],[-47.35201644897455,-16.131959915161133],[-47.30875778198231,-16.0505313873291],[-47.309001922607415,-16.035945892333928],[-47.228294372558594,-16.015762329101562],[-47.151123046875,-15.935004234313963],[-47.052738189697266,-15.937916755676213],[-46.82481384277344,-15.885722160339299],[-46.813098907470646,-15.78720378875727],[-46.854740142822266,-15.620355606079102],[-46.94904708862305,-15.55459976196289],[-46.93041610717768,-15.44309139251709],[-46.84942626953125,-15.37316513061512],[-46.83685302734369,-15.322600364685057],[-46.92760467529296,-15.255097389221133],[-46.9372940063476,-15.205021858215273],[-46.889095306396484,-15.111639022827148],[-46.91870498657215,-15.049869537353402],[-46.85684585571288,-15.010270118713379],[-46.78180694580078,-15.019327163696287],[-46.62539291381836,-15.089517593383789],[-46.502990722656186,-15.052579879760685],[-46.530757904052734,-15.005281448364144],[-46.5587539672851,-14.821079254150277],[-46.54413986206054,-14.753017425537111],[-46.46879196166992,-14.708827018737793],[-46.32214736938471,-14.814582824706974],[-46.286792755126896,-14.928150177001895],[-46.176425933837834,-14.94905185699457],[-46.088088989257805,-14.936395645141545],[-46.0373649597168,-14.874085426330565],[-45.96603012084961,-14.965646743774414],[-45.97547149658203,-15.038911819457951],[-46.04367065429682,-15.118131637573242],[-46.02799987792969,-15.201348304748533],[-45.91841125488281,-15.133514404296875],[-45.73033905029296,-15.11675834655756],[-45.67469406127924,-15.080490112304686],[-45.566082000732365,-14.944863319396916],[-45.49000549316395,-14.960762977600098],[-45.16641235351557,-14.735305786132812],[-45.09541320800781,-14.752880096435488],[-45.039478302001896,-14.680257797241154],[-44.87590789794916,-14.599662780761717],[-44.81376647949219,-14.504664421081543],[-44.55715179443359,-14.337038040161074],[-44.430301666259766,-14.289395332336367],[-44.24056243896478,-14.240703582763672],[-44.03445816040039,-14.288872718811033],[-43.98632431030268,-14.26755428314209],[-43.78314590454101,-14.33924674987793],[-43.87383270263672,-14.520586013793945],[-43.883460998535156,-14.65323352813715],[-43.71981048583984,-14.729543685913027],[-43.51111221313471,-14.796578407287539],[-43.461223602294865,-14.746230125427246],[-43.311180114746094,-14.669751167297305],[-43.176300048828125,-14.650548934936522],[-42.952644348144474,-14.708402633666879],[-42.90583801269531,-14.761046409606879],[-42.75508880615234,-14.846421241760252],[-42.62565994262695,-14.944699287414439],[-42.43674850463867,-15.022719383239744],[-42.44287109375,-15.060606956481875],[-42.26474761962885,-15.125177383422852],[-42.153297424316406,-15.099364280700684],[-42.09601974487305,-15.182447433471621],[-41.95338058471673,-15.175666809082031],[-41.8006591796875,-15.101098060607853],[-41.356365203857365,-15.500288963317871],[-41.33115005493164,-15.744673728942814],[-41.215225219726506,-15.737250328063851],[-41.16939926147461,-15.760518074035643],[-41.00712585449213,-15.713836669921875],[-40.96222305297846,-15.648887634277344],[-40.855396270751896,-15.687154769897402],[-40.69929885864252,-15.66862106323242],[-40.62933349609375,-15.715712547302246],[-40.56199264526367,-15.80328369140625],[-40.460578918456974,-15.753732681274412],[-40.42497253417969,-15.805704116821175],[-40.231052398681584,-15.803847312927244],[-40.15976333618163,-15.908464431762694],[-40.074783325195305,-15.920050621032656],[-40.00437164306629,-16.001834869384766],[-39.922134399414006,-16.028623580932617],[-39.85676193237305,-16.113826751708984],[-39.88332366943354,-16.194690704345703],[-39.96044921875,-16.32189750671381],[-40.02476501464838,-16.35689926147461],[-40.171150207519474,-16.52414894104004],[-40.275447845458984,-16.574026107788086],[-40.33577728271473,-16.779710769653317],[-40.25774383544916,-16.80653953552246],[-40.281581878662045,-16.90118217468256],[-40.366424560546875,-16.874168395996094],[-40.49114227294922,-16.88448524475092],[-40.54542160034179,-16.98429298400879],[-40.57830047607421,-17.147172927856445],[-40.55380249023437,-17.189027786254883],[-40.59967803955078,-17.390346527099553],[-40.52056503295893,-17.446502685546875],[-40.46035385131836,-17.568498611450195],[-40.39675140380859,-17.62560081481922],[-40.341587066650334,-17.619953155517578],[-40.280296325683594,-17.722782135009766],[-40.22388076782221,-17.734062194824162],[-40.17503356933594,-17.852672576904293],[-40.26342010498047,-17.921983718872013],[-40.22235107421869,-17.980426788330078]]]},"properties":{"ID_0":33,"ISO":"BR-MG","NAME_0":"Brazil","ID_1":13,"NAME_1":"Minas Gerais","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Minas|Minas Geraes"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-54.86752319335937,2.441957950592098],[-54.794185638427734,2.312705993652457],[-54.81135940551758,2.266349077224788],[-54.76305007934564,2.202291011810416],[-54.80619430541992,2.138899087905941],[-54.81127548217768,2.039407968521175],[-54.77152633666986,1.940471053123588],[-54.744716644287045,1.775771975517273],[-54.60185623168939,1.784548997879028],[-54.49588394165038,1.746914982795715],[-54.37765884399408,1.763659954071045],[-54.309246063232415,1.741024017333928],[-54.10188674926757,1.584278941154594],[-54.08868789672845,1.491971015930176],[-53.99946594238281,1.50474405288702],[-53.89593887329095,1.455096960067749],[-53.850280761718686,1.39181494712841],[-53.783660888671875,1.402827978134155],[-53.538490295410156,1.340834975242671],[-53.55662918090814,1.284780025482178],[-53.4387092590332,1.232107043266296],[-53.396018981933594,1.179267048835868],[-53.45718383789057,1.138265013694877],[-53.411434173583984,0.92931699752819],[-53.19021224975586,0.768356978893337],[-53.14381408691406,0.696233987808341],[-53.17525100708002,0.381689995527211],[-53.09406661987305,0.258931994438115],[-52.97723388671875,0.023770000785703],[-52.93364715576172,-0.139542996883392],[-52.851482391357365,-0.150187000632172],[-52.68411254882807,-0.314339011907578],[-52.69537734985346,-0.496425986289978],[-52.63994979858393,-0.584930002689361],[-52.53512191772461,-0.574110984802189],[-52.49734878540039,-0.711308002471924],[-52.516876220703125,-0.858640015125218],[-52.444263458251896,-0.834191977977753],[-52.403099060058594,-0.877171993255615],[-52.41673278808594,-1.025635004043522],[-52.33293151855469,-1.115913987159729],[-52.12020492553705,-1.146221995353642],[-52.10034179687499,-1.22651994228363],[-51.993343353271484,-1.128998041152954],[-51.88722991943353,-1.166422009468022],[-51.80904006958002,-1.157124996185246],[-51.687171936035156,-1.036034941673279],[-51.68339157104492,-0.794053971767426],[-51.59547805786133,-0.650461971759796],[-51.457733154296875,-0.51325798034668],[-51.3543968200683,-0.318549007177296],[-51.21630477905268,-0.118637003004551],[-51.06561660766601,-0.076251998543739],[-50.97479248046874,0.041756998747701],[-50.78474044799805,0.112086996436119],[-50.668140411376896,0.185008004307804],[-50.57986831665039,0.269778013229484],[-50.47615432739258,0.481476008892173],[-50.43649291992182,0.600078999996299],[-50.3471794128418,0.666817009448948],[-50.15738296508778,0.705085992813224],[-50.07069396972645,0.698150992393607],[-50.07764053344721,0.633749008178768],[-50.00847244262695,0.314305990934372],[-49.86958312988281,0.293749988079071],[-49.63430404663086,0.381803989410344],[-49.53680419921869,0.339305013418254],[-49.37291717529297,0.027084000408706],[-49.3245849609375,-0.161806002259198],[-49.202915191650334,-0.144029006361848],[-49.010417938232415,-0.16347199678421],[-48.94291687011719,-0.222916007041931],[-48.836528778076115,-0.223472997546139],[-48.707916259765625,-0.253194987773895],[-48.63763809204101,-0.232361003756523],[-48.4051399230957,-0.251803994178715],[-48.373748779296875,-0.309029012918415],[-48.05430603027338,-0.660417020320835],[-47.98764038085932,-0.695693016052189],[-47.92069625854486,-0.625137984752598],[-47.83652877807617,-0.680972993373814],[-47.82736206054676,-0.606251001358032],[-47.72097396850586,-0.646528005599975],[-47.67458343505848,-0.578751027584019],[-47.54708480834961,-0.636527001857644],[-47.48041534423817,-0.606251001358032],[-47.32152938842768,-0.592361986637115],[-47.29097366333008,-0.64180600643158],[-47.22375106811518,-0.632916986942291],[-47.211250305175774,-0.70319402217865],[-47.12236022949219,-0.67902797460556],[-47.06652832031249,-0.803471982479039],[-46.96569442749018,-0.765416979789734],[-46.91513824462885,-0.82541698217392],[-46.83986282348633,-0.740972995758],[-46.80958175659174,-0.84291702508915],[-46.73430633544921,-0.856805980205536],[-46.63680648803711,-0.7934730052948],[-46.60124969482422,-0.833472013473511],[-46.65486145019531,-0.973749995231571],[-46.55764007568348,-0.942084014415741],[-46.31847381591797,-1.02347195148468],[-46.22930526733398,-0.895416021347046],[-46.15819549560547,-1.010416984558049],[-46.05145263671875,-1.105137944221497],[-46.08441543579096,-1.189643979072514],[-46.151092529296754,-1.224804043769836],[-46.162849426269524,-1.278329014778137],[-46.10610580444336,-1.332491040229797],[-46.13946151733398,-1.444419026374817],[-46.17658233642578,-1.475381016731205],[-46.131927490234375,-1.578832983970642],[-46.15357589721679,-1.675917983055115],[-46.22511291503906,-1.726065993309021],[-46.29111862182617,-1.723441958427429],[-46.31654739379877,-1.795057058334351],[-46.22927856445307,-1.800623059272709],[-46.21853256225586,-1.913226008415165],[-46.27334594726557,-2.058764934539795],[-46.291786193847656,-2.164582967758065],[-46.43161392211914,-2.298372983932438],[-46.433876037597656,-2.51484298706049],[-46.50495529174805,-2.614938020706177],[-46.62187194824219,-2.644543886184635],[-46.668033599853516,-2.734045028686467],[-46.59892272949212,-2.795705080032292],[-46.63661575317383,-2.851216077804565],[-46.65203475952143,-2.996537923812809],[-46.746395111083984,-3.178845882415715],[-46.80739593505854,-3.241871118545532],[-46.848415374755746,-3.335644006729069],[-46.94882965087885,-3.406909942626896],[-46.977012634277344,-3.526058912277222],[-47.01845550537098,-3.546910047531014],[-47.056201934814396,-3.646598100662174],[-47.04550933837885,-3.708010911941472],[-47.088066101074155,-3.855468988418522],[-47.13512420654296,-3.881808996200505],[-47.21979522705078,-3.995964050292968],[-47.31884765624994,-4.046940803527775],[-47.37962341308594,-4.220445156097355],[-47.47339630126953,-4.314453124999886],[-47.47609329223627,-4.355028152465763],[-47.581424713134766,-4.519952774047852],[-47.679889678955014,-4.608623027801457],[-47.789871215820256,-4.585527896881047],[-47.81610107421869,-4.614747047424316],[-48.434104919433594,-5.096251010894775],[-48.75510025024402,-5.349186897277775],[-48.62907028198242,-5.410074234008732],[-48.51070022583008,-5.429666042327881],[-48.3934593200683,-5.394231796264592],[-48.30065536499018,-5.523021221160832],[-48.138099670410156,-5.602708816528263],[-48.17426300048828,-5.70923614501953],[-48.272491455078125,-5.725509166717529],[-48.29172134399413,-5.833617210388127],[-48.2315788269043,-5.946154117584115],[-48.3214111328125,-5.985517024993783],[-48.2831077575683,-6.081573963165282],[-48.43637847900379,-6.193415164947453],[-48.41199493408203,-6.306081771850586],[-48.5001602172851,-6.350944995880127],[-48.613101959228516,-6.453744888305664],[-48.66430282592768,-6.570587158203125],[-48.651908874511605,-6.639966011047362],[-48.81413650512695,-6.751779079437198],[-49.018829345703125,-6.784226894378662],[-49.11521911621094,-6.869965076446533],[-49.20944595336914,-6.925416946411133],[-49.18523025512695,-7.235185146331729],[-49.23142242431635,-7.325801849365233],[-49.37794494628895,-7.496460914611816],[-49.381759643554574,-7.566677093505859],[-49.3415908813476,-7.657280921935977],[-49.160686492919865,-7.791382789611704],[-49.162723541259766,-7.900545120239257],[-49.215801239013615,-8.194225311279297],[-49.283267974853516,-8.379569053649902],[-49.3493537902832,-8.418390274047852],[-49.40983200073242,-8.580012321472111],[-49.59235763549805,-8.839503288268986],[-49.684303283691406,-8.856487274169865],[-49.842533111572266,-9.027338027954045],[-49.90763854980469,-9.173836708068848],[-50.05070114135742,-9.313079833984375],[-50.05278015136719,-9.37268352508539],[-50.10528182983393,-9.475420951843205],[-50.089508056640625,-9.54570484161377],[-50.22717285156244,-9.84562969207758],[-50.842838287353516,-9.800833702087402],[-51.463748931884766,-9.762153625488281],[-52.25528335571289,-9.707819938659611],[-53.133323669433594,-9.644869804382266],[-54.10655212402344,-9.571932792663516],[-54.99549484252929,-9.505422592163029],[-55.79182815551758,-9.440700531005858],[-56.67181777954096,-9.36740779876709],[-56.77225875854492,-9.39097023010248],[-56.820045471191406,-9.246354103088379],[-56.99548339843744,-9.233853340148924],[-57.05776214599603,-9.184202194213867],[-57.03917694091791,-9.09830379486084],[-57.094539642333984,-9.01712512969965],[-57.19279479980463,-8.930065155029297],[-57.420406341552734,-8.849626541137695],[-57.416069030761655,-8.795891761779785],[-57.530323028564396,-8.74818706512451],[-57.59287261962884,-8.756489753723088],[-57.637577056884766,-8.513570785522461],[-57.6815185546875,-8.43313980102539],[-57.6792984008789,-8.318199157714844],[-57.64320755004878,-8.213688850402832],[-57.70457458496093,-8.168040275573729],[-57.72837448120111,-8.094229698181152],[-57.828765869140625,-7.972909927368164],[-57.83491516113275,-7.882768154144286],[-57.87377166748047,-7.801208972930907],[-57.8980827331543,-7.676039218902587],[-57.939491271972656,-7.653149127960147],[-57.972515106201115,-7.534605026245116],[-58.05897140502929,-7.400421142578068],[-58.13698959350585,-7.356139183044376],[-58.16994476318354,-7.313237190246582],[-58.18325424194335,-7.178287029266357],[-58.33872222900385,-6.983938217163086],[-58.434490203857365,-6.908822059631291],[-58.48168945312495,-6.781438827514591],[-58.478408813476555,-6.699629783630314],[-58.42724227905267,-6.61618423461914],[-58.34982299804677,-6.562417030334473],[-58.32557296752925,-6.499310016632023],[-58.26248550415039,-6.468937873840332],[-57.861320495605405,-5.60112285614008],[-57.54801940917968,-4.921609878539925],[-57.24941253662109,-4.287967205047607],[-57.01884460449213,-3.798324108123779],[-56.887176513671875,-3.499067068099976],[-56.57588577270502,-2.824132919311523],[-56.402095794677734,-2.456638097763004],[-56.46442413330078,-2.431615114212036],[-56.384254455566406,-2.270495891570988],[-56.263435363769474,-2.221077919006348],[-56.16936492919922,-2.145530939102116],[-56.09857559204096,-2.02708196640009],[-56.22831344604492,-2.056241989135742],[-56.413818359375,-2.175971984863281],[-56.52700424194335,-2.139218091964721],[-56.612850189208984,-2.210192918777409],[-56.67900848388672,-2.212585926055908],[-56.76936721801752,-2.140695095062256],[-56.72126770019531,-2.04914903640747],[-56.747821807861264,-2.01152491569519],[-56.85898208618164,-2.015949010848885],[-57.03714370727539,-1.91157603263855],[-57.097793579101555,-1.775128960609436],[-57.274333953857365,-1.709761023521423],[-57.352005004882805,-1.733189940452575],[-57.41187286376947,-1.673305988311768],[-57.47513961791992,-1.678024053573608],[-57.5900650024414,-1.580122947692814],[-57.6786155700683,-1.594360947608948],[-57.71310043334961,-1.504171013832092],[-57.773262023925774,-1.508823037147465],[-57.82397460937499,-1.439780950546265],[-57.91846084594721,-1.419831991195622],[-57.99632263183593,-1.344344973564148],[-57.96542739868164,-1.206107974052372],[-58.01747894287109,-1.106174945831242],[-58.081790924072266,-1.126505017280579],[-58.16258239746088,-1.229681015014648],[-58.25470352172845,-1.132614970207101],[-58.323223114013665,-1.143318057060242],[-58.36842727661132,-1.06604599952692],[-58.43001556396479,-1.027140974998474],[-58.4146957397461,-0.967077016830444],[-58.45898056030267,-0.86401700973505],[-58.560569763183544,-0.804641008377018],[-58.731933593749936,-0.62738299369812],[-58.71068572998041,-0.521494984626713],[-58.72515487670893,-0.442243993282261],[-58.87200164794921,-0.3430179953574],[-58.8809700012207,-0.196603998541832],[-58.8638191223144,-0.078055001795292],[-58.89498519897462,-0.010986000299454],[-58.89534759521484,0.263505995273647],[-58.89543151855468,1.227664947509822],[-58.79553222656244,1.176952004432735],[-58.746067047119084,1.199892997741699],[-58.69200897216796,1.288506031036434],[-58.50711059570313,1.264407038688773],[-58.473323822021364,1.29938900470745],[-58.481498718261655,1.463438987731934],[-58.38206100463867,1.470644950866756],[-58.37577438354492,1.546116948127803],[-58.31858444213867,1.593605041503963],[-58.141544342041016,1.50966203212738],[-58.00127029418945,1.505056023597774],[-57.999404907226506,1.666959047317505],[-57.93241882324218,1.646553993225098],[-57.816726684570305,1.680230021476746],[-57.76980209350587,1.719905018806571],[-57.63906097412109,1.691293001174984],[-57.54407501220703,1.702345013618469],[-57.423114776611264,1.906124949455261],[-57.30239868164051,1.990075945854244],[-57.253845214843686,1.945109009742737],[-57.12240600585932,2.014143943786678],[-56.98622512817377,1.910691976547241],[-56.91450119018554,1.917948961257992],[-56.80016326904291,1.863873958587703],[-56.72350692749017,1.919641971588135],[-56.62895584106445,1.939785003662109],[-56.5916748046875,1.915001988411063],[-56.453723907470646,1.944612026214599],[-56.364154815673764,1.938964962959346],[-56.253963470458984,1.886876940727234],[-56.213081359863224,1.895421981811523],[-55.99496841430664,1.831146001815796],[-55.90584945678711,1.891072988510246],[-55.90986251831055,2.032716989517212],[-56.04762649536127,2.228108882904053],[-56.12720489501953,2.253576040267944],[-56.09021759033203,2.352035045623836],[-56.04426574707031,2.344939947128296],[-55.98725509643549,2.427551984786987],[-55.9866600036621,2.518635034561214],[-55.938831329345646,2.531550884246826],[-55.73891448974604,2.401213884353694],[-55.591712951660156,2.433449983596859],[-55.42848587036133,2.439435005188045],[-55.29933547973632,2.521995067596492],[-55.21199417114258,2.512078046798706],[-55.12899780273437,2.569783926010132],[-55.10270690917969,2.52238488197338],[-54.97259521484375,2.604665994644222],[-54.959617614746094,2.54438304901123],[-54.86752319335937,2.441957950592098]]]},"properties":{"ID_0":33,"ISO":"BR-PA","NAME_0":"Brazil","ID_1":14,"NAME_1":"Pará","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-42.9572868347168,-9.43400859832758],[-43.01207733154296,-9.408011436462402],[-43.0145301818847,-9.269787788391113],[-42.98221206665033,-9.252436637878361],[-43.008804321289006,-9.14399623870844],[-42.90069580078125,-9.216512680053711],[-42.898502349853516,-9.280197143554688],[-42.80727005004883,-9.358247756958006],[-42.9572868347168,-9.43400859832758]]],[[[-34.96902847290039,-6.487946033477783],[-34.96319580078124,-6.632916927337646],[-34.932361602783196,-6.687639236450194],[-34.89902877807617,-6.867360115051213],[-34.82541656494135,-7.000693798065186],[-34.8426399230957,-7.051249980926514],[-34.79430389404297,-7.195138931274356],[-34.79513931274414,-7.334860801696776],[-34.82541656494135,-7.549026966094914],[-34.898193359374936,-7.545595169067383],[-34.96052551269531,-7.538756847381592],[-34.9869766235351,-7.463015079498291],[-35.097660064697266,-7.408308982849063],[-35.243553161621094,-7.374392986297551],[-35.42103958129883,-7.474072933196965],[-35.50309753417962,-7.456088066101017],[-35.53146743774413,-7.621676921844426],[-35.657344818115234,-7.697361946105957],[-35.87192153930664,-7.749540805816594],[-35.90423583984369,-7.79225015640253],[-35.99786758422846,-7.813317775726261],[-36.07056427001941,-7.780909061431828],[-36.24989318847656,-7.790602207183838],[-36.42390060424793,-7.815782070159855],[-36.4299430847168,-7.885698795318604],[-36.47998809814453,-7.924765110015869],[-36.5696067810058,-7.90392017364502],[-36.62770080566394,-7.986423015594482],[-36.62845993041981,-8.111055374145451],[-36.753364562988224,-8.191494941711426],[-36.89582443237305,-8.240826606750431],[-36.99103546142572,-8.302967071533203],[-37.08815383911133,-8.255470275878906],[-37.16009902954096,-8.170419692993164],[-37.151702880859375,-8.009385108947697],[-37.29545593261712,-7.96494197845459],[-37.30353164672846,-7.904180049896183],[-37.24454879760742,-7.874267101287842],[-37.23044967651367,-7.806760787963754],[-37.1388320922851,-7.745530128479004],[-37.19540023803705,-7.628345966339111],[-37.12140274047846,-7.536122798919677],[-36.9841194152832,-7.482133865356445],[-37.02614593505848,-7.387947082519474],[-37.165225982666016,-7.336602210998535],[-37.232826232910156,-7.275140762329101],[-37.33152389526367,-7.289721012115479],[-37.38560104370117,-7.356713771820068],[-37.46604156494134,-7.35810184478754],[-37.533050537109375,-7.47300910949707],[-37.65942382812499,-7.523159027099553],[-37.75575637817383,-7.619530200958251],[-37.85839462280268,-7.653636932372989],[-37.97099304199219,-7.777393817901611],[-38.03943634033203,-7.748153209686278],[-38.0770378112793,-7.830574989318791],[-38.164035797119084,-7.779934883117619],[-38.23848724365234,-7.830749034881591],[-38.297657012939396,-7.813955783843994],[-38.3206901550293,-7.697975158691349],[-38.4964981079101,-7.75005578994751],[-38.59354019165039,-7.754361152648869],[-38.626365661621094,-7.694746017456055],[-38.71502685546875,-7.621930122375488],[-38.65525436401367,-7.565553188323917],[-38.64484786987305,-7.46002721786499],[-38.585227966308594,-7.434825897216796],[-38.53451156616211,-7.293803215026742],[-38.67681121826172,-7.16893577575678],[-38.66977691650385,-7.047715187072753],[-38.73051452636712,-7.012038230895996],[-38.75620651245105,-6.903603076934814],[-38.67534637451172,-6.861839771270752],[-38.64186096191395,-6.791251182556151],[-38.67307662963867,-6.697234153747559],[-38.642780303955014,-6.581190109252873],[-38.55485153198236,-6.437374114990234],[-38.40101623535156,-6.409995079040527],[-38.288639068603516,-6.505627155303841],[-38.14780044555664,-6.491498947143555],[-38.107681274414006,-6.604419231414795],[-38.04954528808594,-6.583821773528996],[-38.00814056396473,-6.432205200195312],[-37.9279441833496,-6.421506881713867],[-37.85973739624017,-6.374886989593449],[-37.774784088134766,-6.231585979461613],[-37.70869445800781,-6.177202224731388],[-37.6466178894043,-6.189402103424015],[-37.56952285766596,-6.155449867248421],[-37.45885467529296,-6.145016193389836],[-37.29712295532226,-6.050158023834228],[-37.175464630126896,-6.054951190948486],[-37.165573120117074,-6.170384883880615],[-37.318706512451115,-6.280364036560059],[-37.37721633911133,-6.344388008117676],[-37.39678955078124,-6.514216899871826],[-37.46684646606445,-6.533899784088078],[-37.484596252441406,-6.710048198699894],[-37.31419372558594,-6.688982009887695],[-37.26381301879883,-6.732178211212158],[-37.25503540039062,-6.811069965362492],[-37.19055938720692,-6.825372219085693],[-37.13863754272461,-6.786149978637695],[-37.01034545898437,-6.86951017379755],[-36.908782958984375,-6.756486892700195],[-36.83490371704096,-6.731077194213809],[-36.73006820678711,-6.836400985717773],[-36.76572036743163,-6.936862945556584],[-36.6096572875976,-6.93684196472168],[-36.5733757019043,-6.858174800872803],[-36.506805419921875,-6.813029766082764],[-36.55763626098633,-6.710776805877685],[-36.513671875,-6.594397068023681],[-36.443252563476506,-6.560684204101562],[-36.52571105957031,-6.501166820526123],[-36.499710083007756,-6.358171939849854],[-36.43016052246088,-6.362263202667179],[-36.394416809081974,-6.293980121612491],[-36.307441711425724,-6.281504154205322],[-36.29545974731445,-6.393365859985352],[-36.24961853027344,-6.437365055084172],[-36.061573028564396,-6.410250186920165],[-36.00518035888672,-6.481056213378906],[-35.77314376831055,-6.482806205749512],[-35.658203125,-6.445971012115422],[-35.580337524414006,-6.487113952636604],[-35.40229415893549,-6.491380214691162],[-35.33055877685547,-6.544338226318359],[-35.232124328613274,-6.531774044036808],[-35.14551925659179,-6.552681922912598],[-34.96902847290039,-6.487946033477783]]]]},"properties":{"ID_0":33,"ISO":"BR-PB","NAME_0":"Brazil","ID_1":15,"NAME_1":"Paraíba","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Parahyba"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-48.257637023925724,-25.335136413574162],[-48.25180435180664,-25.465694427490178],[-48.34375,-25.41597175598133],[-48.257637023925724,-25.335136413574162]]],[[[-48.6003532409668,-25.979583740234375],[-48.960723876953125,-25.98102569580078],[-48.99809646606434,-26.011821746826172],[-49.17522811889648,-26.001844406127926],[-49.3874168395996,-26.15595626831049],[-49.4591064453125,-26.162729263305664],[-49.555034637451115,-26.237325668334957],[-49.645641326904176,-26.209596633911076],[-49.86547088623047,-26.03514289855957],[-49.993503570556584,-26.011623382568356],[-50.189247131347656,-26.091751098632812],[-50.14401245117182,-26.200197219848633],[-50.18804931640624,-26.273069381713867],[-50.28460311889637,-26.30893707275385],[-50.38859176635742,-26.152362823486328],[-50.361431121826115,-26.094709396362305],[-50.45967864990228,-26.027074813842717],[-50.591636657714844,-26.022132873535156],[-50.70163726806634,-26.184431076049748],[-50.9091682434082,-26.284881591796818],[-51.000427246093636,-26.230480194091797],[-51.243034362792905,-26.324710845947262],[-51.298721313476506,-26.419946670532227],[-51.22402954101557,-26.593345642089844],[-51.28337097167963,-26.653989791870114],[-51.435302734374886,-26.68812179565424],[-51.46816635131836,-26.62204360961914],[-51.665019989013615,-26.566080093383732],[-51.87356185913086,-26.60023498535156],[-52.01119232177729,-26.566549301147404],[-52.112220764160035,-26.47606086730951],[-52.304996490478516,-26.44073867797846],[-52.46500015258788,-26.437599182128793],[-52.522830963134766,-26.400615692138672],[-52.59408187866205,-26.41533851623535],[-52.67854309082031,-26.352676391601562],[-52.99029159545898,-26.347829818725586],[-53.09056854248041,-26.390493392944332],[-53.30590057373041,-26.25975227355951],[-53.385261535644474,-26.2462158203125],[-53.49715423583984,-26.302829742431584],[-53.598972320556584,-26.257482528686467],[-53.72377395629883,-26.126718521118104],[-53.71821975708007,-26.07321357727045],[-53.836578369140625,-25.96575546264648],[-53.848873138427734,-25.836719512939453],[-53.82233047485345,-25.795211791992184],[-53.875339508056584,-25.641998291015625],[-53.987430572509645,-25.578573226928597],[-54.159690856933594,-25.543689727783146],[-54.28728485107422,-25.5598087310791],[-54.45209503173828,-25.663230895996094],[-54.59564208984375,-25.59211921691883],[-54.6159553527832,-25.45621109008789],[-54.495975494384766,-25.27735710144043],[-54.436279296875,-25.14376449584961],[-54.46498489379882,-25.076322555541992],[-54.404533386230405,-24.83326911926264],[-54.33509063720703,-24.64640235900879],[-54.33230972290039,-24.48994636535639],[-54.26244354248041,-24.37445831298828],[-54.27827072143549,-24.286073684692383],[-54.323379516601506,-24.242517471313477],[-54.33061981201172,-24.148248672485295],[-54.28385925292969,-24.06747436523437],[-54.129642486572266,-23.982101440429684],[-54.07984161376942,-23.88897132873535],[-54.07564544677723,-23.764478683471623],[-53.98279571533203,-23.46000099182129],[-53.771041870117074,-23.372125625610295],[-53.63652420043945,-23.125022888183594],[-53.60735702514643,-22.951326370239258],[-53.53466796875,-22.8825626373291],[-53.35448455810547,-22.777364730834957],[-53.18088912963861,-22.713632583618107],[-53.10512161254883,-22.621923446655273],[-52.97236251831055,-22.570476531982422],[-52.858299255371094,-22.607997894287053],[-52.70118331909174,-22.627479553222543],[-52.58020782470703,-22.568996429443303],[-52.50324249267578,-22.634065628051758],[-52.43523025512684,-22.60738182067865],[-52.22819519042968,-22.665294647216797],[-52.1566162109375,-22.644712448120114],[-52.12561416625976,-22.519262313842717],[-51.94045257568354,-22.567333221435547],[-51.87345504760742,-22.628238677978402],[-51.77337265014642,-22.614557266235238],[-51.72581481933594,-22.66142463684082],[-51.615779876708984,-22.662586212158203],[-51.55950927734375,-22.697172164916992],[-51.446235656738224,-22.65325164794922],[-51.30623626708979,-22.674419403076172],[-51.157756805419865,-22.751663208007812],[-50.94506835937499,-22.804067611694336],[-50.89331054687494,-22.794958114623967],[-50.793079376220646,-22.90511131286615],[-50.709774017333984,-22.953428268432617],[-50.67596817016595,-22.900510787963864],[-50.576946258544915,-22.90396499633789],[-50.43020629882807,-22.945802688598633],[-50.27332687377924,-22.930992126464844],[-50.18327713012695,-22.953750610351562],[-50.06740951538086,-22.927505493163945],[-49.96131896972656,-22.930862426757812],[-49.90147399902338,-22.9991455078125],[-49.91154479980469,-23.05111122131342],[-49.726375579833984,-23.111593246459904],[-49.67826080322265,-23.165054321289006],[-49.595218658447266,-23.366926193237305],[-49.62106704711914,-23.6070499420166],[-49.549785614013615,-23.703712463378906],[-49.562305450439446,-23.81855964660639],[-49.48709487915039,-24.024589538574162],[-49.341453552246094,-24.138324737548825],[-49.34148406982416,-24.203111648559567],[-49.241340637206974,-24.3851318359375],[-49.24712371826172,-24.469139099121094],[-49.31592941284174,-24.555494308471676],[-49.31184005737299,-24.663614273071232],[-49.208850860595646,-24.700832366943303],[-49.0373420715332,-24.660408020019474],[-48.92236709594721,-24.67517471313471],[-48.82869720458979,-24.655588150024357],[-48.77859115600586,-24.69672203063965],[-48.61656188964843,-24.668663024902344],[-48.50228118896473,-24.744714736938477],[-48.555694580078125,-24.806192398071175],[-48.56745910644531,-24.972158432006832],[-48.598426818847656,-25.01905250549305],[-48.52852630615234,-25.100784301757812],[-48.47399139404296,-25.012542724609375],[-48.411010742187386,-24.98011970520014],[-48.21599578857422,-25.076660156249996],[-48.11482620239258,-25.25068855285639],[-48.05773544311518,-25.262081146240178],[-48.186527252197266,-25.40652847290039],[-48.22458267211914,-25.33625030517578],[-48.39208221435547,-25.309858322143555],[-48.44791793823231,-25.377082824706974],[-48.45652770996094,-25.472639083862305],[-48.64263916015619,-25.444583892822262],[-48.65208435058588,-25.49430465698236],[-48.48180389404297,-25.53263854980463],[-48.400138854980355,-25.60819435119629],[-48.56458282470703,-25.857082366943303],[-48.6003532409668,-25.979583740234375]]]]},"properties":{"ID_0":33,"ISO":"BR-PR","NAME_0":"Brazil","ID_1":16,"NAME_1":"Paraná","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-34.898193359374936,-7.545595169067383],[-34.80819320678711,-7.616528034210148],[-34.89097213745117,-7.765695095062255],[-34.84819412231445,-7.817916870117188],[-34.82013702392578,-7.925416946411133],[-34.87180709838867,-8.042637825012207],[-34.95236206054681,-8.294582366943303],[-34.96097183227539,-8.39847183227539],[-35.00763702392578,-8.563472747802733],[-35.096527099609375,-8.689583778381348],[-35.086250305175724,-8.744584083557129],[-35.151824951171875,-8.909582138061467],[-35.51782608032226,-8.817352294921875],[-35.669788360595696,-8.895236968994027],[-35.748203277587834,-8.91714382171625],[-35.78740692138666,-8.85112476348877],[-35.91111755371094,-8.861369132995605],[-36.12674331665038,-8.956012725830078],[-36.123943328857365,-9.03048133850092],[-36.19557571411127,-9.044831275939941],[-36.274009704589844,-9.166200637817326],[-36.36554718017578,-9.222623825073242],[-36.43685531616205,-9.212104797363281],[-36.586120605468636,-9.338085174560547],[-36.69368743896479,-9.275333404541016],[-36.79700469970703,-9.293032646179197],[-36.869724273681584,-9.268610000610352],[-36.95230484008783,-9.382543563842773],[-37.08388137817383,-9.252321243286076],[-37.233440399169865,-9.206595420837402],[-37.31540298461914,-9.094281196594181],[-37.46926498413086,-9.027680397033691],[-37.54106903076172,-8.958485603332463],[-37.643535614013615,-9.018292427062988],[-37.76020812988281,-8.857633590698242],[-37.82899475097656,-8.893792152404783],[-37.839004516601555,-8.978388786315918],[-37.97925186157226,-9.148381233215332],[-38.09219741821289,-9.172728538513127],[-38.20287322998041,-9.296895980834961],[-38.23739242553705,-9.329692840576172],[-38.31856536865223,-9.141016960144043],[-38.32055282592767,-8.991079330444336],[-38.40837860107416,-9.038521766662598],[-38.51937484741205,-8.948366165161133],[-38.469890594482365,-8.865496635437012],[-38.571155548095646,-8.831610679626465],[-38.64063262939453,-8.987286567687931],[-38.69283676147461,-8.935147285461426],[-38.70646286010742,-8.862276077270451],[-38.7945671081543,-8.795634269714299],[-38.94361877441406,-8.804259300231934],[-39.036960601806584,-8.735584259033145],[-39.23371124267567,-8.705780029296873],[-39.288513183593686,-8.56331539154047],[-39.38367080688476,-8.533636093139592],[-39.607524871826115,-8.656001091003361],[-39.691074371337834,-8.66233730316162],[-39.67452621459961,-8.787080764770508],[-39.87300109863281,-8.822653770446777],[-39.87389373779291,-8.93132495880127],[-39.957969665527344,-9.048619270324707],[-40.06558227539057,-9.063199996948185],[-40.12865447998047,-9.109613418579102],[-40.2112197875976,-9.062611579894961],[-40.27166366577142,-9.080998420715332],[-40.307762145996094,-9.271409034729004],[-40.3580589294433,-9.377203941345215],[-40.435829162597656,-9.362183570861816],[-40.62311553955067,-9.482916831970213],[-40.722145080566406,-9.445964813232363],[-40.73722839355469,-9.336896896362248],[-40.68057632446289,-9.25909233093256],[-40.66735458374018,-9.159086227416992],[-40.81993484497064,-9.080411911010742],[-40.851543426513665,-8.952515602111816],[-40.921287536621094,-8.835457801818789],[-41.03618621826172,-8.78588676452631],[-41.10171127319336,-8.781975746154785],[-41.11552429199219,-8.7040433883667],[-41.2269287109375,-8.704716682433968],[-41.281482696533196,-8.73610782623291],[-41.35826873779291,-8.70764446258545],[-41.20659637451172,-8.633453369140511],[-41.14859390258778,-8.533921241760254],[-41.05105209350586,-8.480496406555119],[-40.98078155517578,-8.398433685302678],[-40.92667007446277,-8.446249961853027],[-40.87106323242182,-8.358489036560059],[-40.77981567382812,-8.301959991455078],[-40.63296127319336,-8.13956165313715],[-40.544158935546875,-7.964622974395695],[-40.54368209838867,-7.835585117340088],[-40.653648376464844,-7.782233238220215],[-40.678146362304574,-7.725101947784424],[-40.64435195922846,-7.607750892639161],[-40.69431686401367,-7.538004875183048],[-40.70484924316395,-7.458756923675537],[-40.548408508300724,-7.392722129821776],[-40.319274902343636,-7.374391078948974],[-40.24638366699213,-7.433736801147461],[-39.96141815185547,-7.388984203338566],[-39.915073394775334,-7.338125228881722],[-39.66566085815429,-7.310708999633789],[-39.607246398925724,-7.33622217178339],[-39.47886276245111,-7.446116924285774],[-39.3966064453125,-7.475296974182129],[-39.31715393066395,-7.541469097137394],[-39.271926879882756,-7.660462856292725],[-39.13557052612298,-7.723396778106689],[-39.0906753540039,-7.8092360496521],[-39.00133514404297,-7.840136051177921],[-38.94182205200195,-7.763055801391544],[-38.82188415527338,-7.714819908142032],[-38.71502685546875,-7.621930122375488],[-38.626365661621094,-7.694746017456055],[-38.59354019165039,-7.754361152648869],[-38.4964981079101,-7.75005578994751],[-38.3206901550293,-7.697975158691349],[-38.297657012939396,-7.813955783843994],[-38.23848724365234,-7.830749034881591],[-38.164035797119084,-7.779934883117619],[-38.0770378112793,-7.830574989318791],[-38.03943634033203,-7.748153209686278],[-37.97099304199219,-7.777393817901611],[-37.85839462280268,-7.653636932372989],[-37.75575637817383,-7.619530200958251],[-37.65942382812499,-7.523159027099553],[-37.533050537109375,-7.47300910949707],[-37.46604156494134,-7.35810184478754],[-37.38560104370117,-7.356713771820068],[-37.33152389526367,-7.289721012115479],[-37.232826232910156,-7.275140762329101],[-37.165225982666016,-7.336602210998535],[-37.02614593505848,-7.387947082519474],[-36.9841194152832,-7.482133865356445],[-37.12140274047846,-7.536122798919677],[-37.19540023803705,-7.628345966339111],[-37.1388320922851,-7.745530128479004],[-37.23044967651367,-7.806760787963754],[-37.24454879760742,-7.874267101287842],[-37.30353164672846,-7.904180049896183],[-37.29545593261712,-7.96494197845459],[-37.151702880859375,-8.009385108947697],[-37.16009902954096,-8.170419692993164],[-37.08815383911133,-8.255470275878906],[-36.99103546142572,-8.302967071533203],[-36.89582443237305,-8.240826606750431],[-36.753364562988224,-8.191494941711426],[-36.62845993041981,-8.111055374145451],[-36.62770080566394,-7.986423015594482],[-36.5696067810058,-7.90392017364502],[-36.47998809814453,-7.924765110015869],[-36.4299430847168,-7.885698795318604],[-36.42390060424793,-7.815782070159855],[-36.24989318847656,-7.790602207183838],[-36.07056427001941,-7.780909061431828],[-35.99786758422846,-7.813317775726261],[-35.90423583984369,-7.79225015640253],[-35.87192153930664,-7.749540805816594],[-35.657344818115234,-7.697361946105957],[-35.53146743774413,-7.621676921844426],[-35.50309753417962,-7.456088066101017],[-35.42103958129883,-7.474072933196965],[-35.243553161621094,-7.374392986297551],[-35.097660064697266,-7.408308982849063],[-34.9869766235351,-7.463015079498291],[-34.96052551269531,-7.538756847381592],[-34.898193359374936,-7.545595169067383]]]},"properties":{"ID_0":33,"ISO":"BR-PE","NAME_0":"Brazil","ID_1":17,"NAME_1":"Pernambuco","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Pernambouc"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-41.816806793212834,-2.743750095367432],[-41.63291549682617,-2.883749961853027],[-41.32090759277338,-2.918195009231567],[-41.249732971191406,-3.029058933257943],[-41.2566032409668,-3.088036060333195],[-41.322437286376896,-3.179811954498234],[-41.42346954345703,-3.368026018142643],[-41.34473037719721,-3.41933798789978],[-41.32563018798828,-3.536432981491032],[-41.34169769287104,-3.680790901184082],[-41.255386352539006,-3.703277111053467],[-41.27680587768555,-3.825639963150024],[-41.22019195556634,-3.941526889800968],[-41.24919128417963,-3.989885091781559],[-41.120296478271484,-4.036356925964355],[-41.13748550415039,-4.120007991790715],[-41.11919403076166,-4.313255786895752],[-41.15996170043945,-4.381515979766846],[-41.19072723388666,-4.515548229217472],[-41.23307800292963,-4.609570980072021],[-41.17423248291009,-4.667479038238525],[-41.24912643432617,-4.869112014770508],[-41.221500396728516,-4.936889171600285],[-41.12255096435541,-5.00809383392334],[-41.080078125,-5.091106891632023],[-40.928936004638615,-5.171686172485351],[-40.91315460205078,-5.308066844940129],[-40.93605422973633,-5.36598014831543],[-40.93233108520508,-5.548912048339844],[-40.90101623535145,-5.615784168243407],[-40.938716888427734,-5.673357963562012],[-40.846858978271484,-6.132109165191594],[-40.85217666625971,-6.224236011505127],[-40.7796516418457,-6.344307899475098],[-40.80510330200195,-6.393146991729735],[-40.787616729736264,-6.523797035217285],[-40.74580001831055,-6.565561771392765],[-40.71012496948242,-6.676143169403076],[-40.607070922851506,-6.714086055755615],[-40.4761848449707,-6.734522819519043],[-40.4321174621582,-6.812992095947266],[-40.42766571044922,-7.033895015716553],[-40.48968887329096,-7.11870288848877],[-40.51211929321289,-7.3018159866333],[-40.548408508300724,-7.392722129821776],[-40.70484924316395,-7.458756923675537],[-40.69431686401367,-7.538004875183048],[-40.64435195922846,-7.607750892639161],[-40.678146362304574,-7.725101947784424],[-40.653648376464844,-7.782233238220215],[-40.54368209838867,-7.835585117340088],[-40.544158935546875,-7.964622974395695],[-40.63296127319336,-8.13956165313715],[-40.77981567382812,-8.301959991455078],[-40.87106323242182,-8.358489036560059],[-40.92667007446277,-8.446249961853027],[-40.98078155517578,-8.398433685302678],[-41.05105209350586,-8.480496406555119],[-41.14859390258778,-8.533921241760254],[-41.20659637451172,-8.633453369140511],[-41.35826873779291,-8.70764446258545],[-41.424175262451115,-8.802478790283203],[-41.48779678344721,-8.843913078308104],[-41.5447998046875,-8.937994003295842],[-41.68040084838867,-9.012293815612736],[-41.80001831054682,-9.148036956787053],[-41.83791732788086,-9.242280960083008],[-41.924720764160156,-9.277806282043457],[-41.97221755981445,-9.24864864349365],[-42.10048294067383,-9.281038284301701],[-42.2436790466308,-9.288926124572697],[-42.31911468505853,-9.320263862609863],[-42.451717376708984,-9.462111473083496],[-42.6215934753418,-9.541241645812988],[-42.71684646606445,-9.556286811828612],[-42.76512145996094,-9.616759300231877],[-42.82050704956055,-9.619240760803223],[-42.94620132446289,-9.518424034118596],[-42.9572868347168,-9.43400859832758],[-42.80727005004883,-9.358247756958006],[-42.898502349853516,-9.280197143554688],[-42.90069580078125,-9.216512680053711],[-43.008804321289006,-9.14399623870844],[-42.98221206665033,-9.252436637878361],[-43.0145301818847,-9.269787788391113],[-43.01207733154296,-9.408011436462402],[-43.11994934082031,-9.372548103332463],[-43.28507232666009,-9.420036315917912],[-43.46162033081049,-9.261788368225098],[-43.574531555175724,-9.318100929260197],[-43.68676757812494,-9.41806411743164],[-43.76968002319336,-9.44206142425537],[-43.8496475219726,-9.548064231872502],[-43.841907501220696,-9.637437820434569],[-43.784873962402344,-9.762393951415959],[-43.65319824218744,-9.839065551757756],[-43.708992004394474,-9.913228988647404],[-43.66597747802729,-9.99023723602295],[-43.69287109374994,-10.077402114868164],[-43.759181976318246,-10.074614524841252],[-43.7790412902832,-10.180476188659611],[-43.83609390258789,-10.248900413513184],[-43.83811950683588,-10.303832054138184],[-43.919605255126946,-10.4252347946167],[-44.029273986816406,-10.416398048400877],[-44.0257949829101,-10.475481033325195],[-44.07254028320307,-10.58034133911127],[-44.16549301147461,-10.642908096313477],[-44.26397323608398,-10.624679565429688],[-44.33560180664062,-10.548977851867676],[-44.4795036315918,-10.640474319457951],[-44.58946990966796,-10.632429122924805],[-44.71336364746093,-10.762051582336367],[-44.78801345825195,-10.808530807495059],[-44.80839538574213,-10.86501407623291],[-44.93117141723633,-10.928766250610295],[-45.073184967041016,-10.840432167053164],[-45.24800491333007,-10.821977615356388],[-45.358169555664006,-10.732215881347656],[-45.43587112426758,-10.61988353729248],[-45.44720840454101,-10.507431983947697],[-45.402969360351555,-10.465340614318848],[-45.430271148681584,-10.359477043151799],[-45.51708221435541,-10.286556243896484],[-45.60313415527344,-10.10799503326416],[-45.72283935546875,-10.155317306518553],[-45.74397659301758,-10.23996353149414],[-45.79369354248047,-10.267683029174748],[-45.8778076171875,-10.239345550536996],[-45.94632720947259,-10.258577346801758],[-45.94556808471674,-10.196453094482422],[-45.87849426269525,-10.110310554504338],[-45.84223556518555,-9.941568374633787],[-45.864379882812436,-9.861476898193303],[-45.82137298583979,-9.773135185241642],[-45.831893920898324,-9.536803245544432],[-45.78377532958984,-9.480117797851506],[-45.79779434204101,-9.417263984680176],[-45.907016754150334,-9.29802417755127],[-45.89860916137695,-9.209687232971078],[-45.94341278076172,-9.015324592590275],[-45.994243621826165,-8.926877975463867],[-45.938396453857365,-8.784948348999023],[-45.83989715576166,-8.715288162231445],[-45.81549835205078,-8.6332368850708],[-45.738410949706974,-8.501184463500977],[-45.74225997924804,-8.451149940490723],[-45.68748474121088,-8.355563163757324],[-45.661506652832024,-8.250032424926758],[-45.581417083740234,-8.156057357788029],[-45.57624053955078,-8.029102325439396],[-45.52079772949212,-7.888095855712891],[-45.46886444091797,-7.689144134521483],[-45.339717864990234,-7.580257892608643],[-45.21810150146479,-7.567862033843937],[-45.15540313720703,-7.51349496841425],[-45.04487228393555,-7.511248111724854],[-44.92439651489258,-7.470303058624267],[-44.816684722900334,-7.361218929290771],[-44.68793106079095,-7.394548892974854],[-44.564022064208984,-7.227546215057372],[-44.37998962402338,-7.119038105010986],[-44.30615234375,-7.117186069488525],[-44.173492431640625,-6.924349784850961],[-44.16084671020502,-6.872814178466797],[-43.961162567138615,-6.741913795471191],[-43.87982940673828,-6.757727146148624],[-43.7939834594726,-6.702743053436279],[-43.637466430664,-6.719579219818115],[-43.45725631713867,-6.846337795257568],[-43.27867889404297,-6.796631813049316],[-43.24464797973627,-6.766366958618107],[-43.001121520996094,-6.754475116729736],[-42.91972732543939,-6.670321941375732],[-42.87177658081048,-6.511956214904785],[-42.877708435058594,-6.417881011962891],[-42.84695434570307,-6.282508850097656],[-42.87432861328119,-6.228136062622013],[-42.96854019165039,-6.178270816802922],[-43.04993057250965,-6.099762916564941],[-43.050174713134766,-6.01310396194458],[-43.0993766784668,-5.901104927062875],[-43.0989532470702,-5.63320779800415],[-43.034553527831974,-5.592273235321045],[-42.913204193115234,-5.398845195770207],[-42.82626724243158,-5.346964836120548],[-42.800209045410156,-5.199390888214111],[-42.81856155395502,-5.093526840209904],[-42.948421478271484,-4.766877174377384],[-42.954544067382756,-4.689482212066594],[-42.8678741455077,-4.56358003616333],[-42.871990203857415,-4.428577899932861],[-42.96326446533203,-4.376433849334717],[-42.98914718627924,-4.23406982421875],[-42.862888336181584,-4.092888832092285],[-42.82360076904291,-3.992214918136596],[-42.72615814208973,-3.910024881362915],[-42.66881942749018,-3.729367017745972],[-42.67570495605463,-3.675617933273259],[-42.5065078735351,-3.478835105895996],[-42.39905929565429,-3.472915887832642],[-42.33076095581049,-3.433881044387761],[-42.21004104614258,-3.43632006645197],[-42.152145385742074,-3.387494087219181],[-42.11577987670892,-3.262346982955876],[-42.00017547607422,-3.241106986999512],[-41.92597579956055,-3.115488052368164],[-41.82422637939453,-3.024517059326058],[-41.79674530029297,-2.966576099395752],[-41.86544418334955,-2.8749001026153],[-41.816806793212834,-2.743750095367432]]]},"properties":{"ID_0":33,"ISO":"BR-PI","NAME_0":"Brazil","ID_1":18,"NAME_1":"Piauí","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Piauhy"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-44.23041534423828,-23.0748615264892],[-44.136249542236264,-23.167360305786133],[-44.245418548583984,-23.20069503784174],[-44.340972900390625,-23.153472900390625],[-44.23041534423828,-23.0748615264892]]],[[[-40.95930480957031,-21.29718971252441],[-40.9640274047851,-21.361803054809513],[-41.07374954223633,-21.511249542236328],[-41.012916564941406,-21.626806259155217],[-41.024028778076115,-21.737361907958984],[-40.97458267211914,-21.944026947021484],[-40.988750457763615,-22.00736045837402],[-41.23430633544916,-22.14402770996088],[-41.48374938964844,-22.211805343627873],[-41.67124938964844,-22.289304733276367],[-41.77402877807617,-22.36486053466797],[-41.862640380859375,-22.475973129272404],[-41.959304809570256,-22.53236007690424],[-41.9959716796875,-22.600139617919922],[-41.993473052978516,-22.693471908569336],[-41.910972595214844,-22.7784748077392],[-41.97486114501953,-22.82708358764637],[-42.05541610717768,-22.958471298217773],[-42.3618049621582,-22.934305191039982],[-42.58069610595697,-22.93263816833496],[-42.9154167175293,-22.975139617919922],[-43.0493049621582,-22.964860916137695],[-43.13541793823242,-22.882360458374023],[-43.03125,-22.74625015258789],[-43.085693359374886,-22.67736053466797],[-43.23819351196289,-22.74291610717773],[-43.262916564941406,-22.828750610351562],[-43.167362213134766,-22.894861221313477],[-43.1595840454101,-22.964582443237305],[-43.285137176513665,-23.01625061035156],[-43.37014007568353,-23.010972976684513],[-43.533748626708984,-23.05041885375971],[-43.85910797119135,-23.072360992431584],[-43.86515808105469,-23.04486656188965],[-43.795696258544865,-23.062084197998047],[-43.60347366333008,-23.026250839233338],[-43.70111846923828,-22.980150222778317],[-43.794307708740234,-22.903863906860295],[-44.046806335449105,-22.94208335876465],[-44.1129150390625,-23.023195266723572],[-44.32736206054681,-22.995136260986328],[-44.3470840454101,-22.923749923706055],[-44.426528930664006,-22.956529617309513],[-44.4448623657226,-23.01263809204096],[-44.66875076293945,-23.05486106872553],[-44.71430587768555,-23.229028701782227],[-44.51874923706049,-23.279306411743164],[-44.585414886474545,-23.359861373901367],[-44.63486099243164,-23.332916259765625],[-44.725418090820256,-23.36964607238764],[-44.88888168334955,-23.224496841430604],[-44.825569152831974,-23.162794113159123],[-44.79309463500976,-23.010242462158203],[-44.743797302246094,-22.94758987426752],[-44.60701370239258,-22.88568115234375],[-44.46694564819336,-22.885053634643555],[-44.2699089050293,-22.830293655395508],[-44.25751495361328,-22.76847648620594],[-44.160896301269524,-22.678316116333008],[-44.232868194579964,-22.608882904052617],[-44.39162063598627,-22.573398590087834],[-44.50853729248047,-22.64093780517578],[-44.645305633544865,-22.602554321289006],[-44.75504684448242,-22.4149169921875],[-44.809181213378906,-22.405263900756836],[-44.543464660644474,-22.33175277709961],[-44.432662963867074,-22.2516250610351],[-44.21327972412109,-22.24625778198236],[-44.100032806396484,-22.173301696777287],[-43.98828125,-22.150171279907227],[-43.77738952636712,-22.06677436828613],[-43.46241760253906,-22.072645187377873],[-43.32175064086914,-22.006742477416932],[-43.23656845092762,-22.013248443603516],[-43.154067993164,-22.077974319458008],[-43.074077606201165,-22.09333992004389],[-42.79167556762684,-21.930871963500977],[-42.356487274169865,-21.741891860961914],[-42.2711448669433,-21.715682983398434],[-42.34618759155268,-21.58298492431635],[-42.252681732177734,-21.489831924438477],[-42.292564392089844,-21.460035324096566],[-42.22981262207031,-21.36656761169428],[-42.22893142700195,-21.284427642822266],[-42.164314270019474,-21.101451873779297],[-42.08041763305658,-21.035688400268555],[-42.13835144042969,-20.960554122924805],[-41.967281341552734,-20.916835784912053],[-41.925289154052734,-20.801576614379883],[-41.87485885620117,-20.766815185546875],[-41.74086380004883,-20.818288803100526],[-41.711894989013615,-20.981052398681527],[-41.73497390747064,-21.09881973266596],[-41.54838180541992,-21.1828556060791],[-41.488304138183594,-21.180356979370117],[-41.2412223815918,-21.221155166625977],[-41.205215454101506,-21.243909835815373],[-41.081382751464844,-21.221986770629826],[-40.95930480957031,-21.29718971252441]]]]},"properties":{"ID_0":33,"ISO":"BR-RJ","NAME_0":"Brazil","ID_1":19,"NAME_1":"Rio de Janeiro","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-34.96902847290039,-6.487946033477783],[-35.14551925659179,-6.552681922912598],[-35.232124328613274,-6.531774044036808],[-35.33055877685547,-6.544338226318359],[-35.40229415893549,-6.491380214691162],[-35.580337524414006,-6.487113952636604],[-35.658203125,-6.445971012115422],[-35.77314376831055,-6.482806205749512],[-36.00518035888672,-6.481056213378906],[-36.061573028564396,-6.410250186920165],[-36.24961853027344,-6.437365055084172],[-36.29545974731445,-6.393365859985352],[-36.307441711425724,-6.281504154205322],[-36.394416809081974,-6.293980121612491],[-36.43016052246088,-6.362263202667179],[-36.499710083007756,-6.358171939849854],[-36.52571105957031,-6.501166820526123],[-36.443252563476506,-6.560684204101562],[-36.513671875,-6.594397068023681],[-36.55763626098633,-6.710776805877685],[-36.506805419921875,-6.813029766082764],[-36.5733757019043,-6.858174800872803],[-36.6096572875976,-6.93684196472168],[-36.76572036743163,-6.936862945556584],[-36.73006820678711,-6.836400985717773],[-36.83490371704096,-6.731077194213809],[-36.908782958984375,-6.756486892700195],[-37.01034545898437,-6.86951017379755],[-37.13863754272461,-6.786149978637695],[-37.19055938720692,-6.825372219085693],[-37.25503540039062,-6.811069965362492],[-37.26381301879883,-6.732178211212158],[-37.31419372558594,-6.688982009887695],[-37.484596252441406,-6.710048198699894],[-37.46684646606445,-6.533899784088078],[-37.39678955078124,-6.514216899871826],[-37.37721633911133,-6.344388008117676],[-37.318706512451115,-6.280364036560059],[-37.165573120117074,-6.170384883880615],[-37.175464630126896,-6.054951190948486],[-37.29712295532226,-6.050158023834228],[-37.45885467529296,-6.145016193389836],[-37.56952285766596,-6.155449867248421],[-37.6466178894043,-6.189402103424015],[-37.70869445800781,-6.177202224731388],[-37.774784088134766,-6.231585979461613],[-37.85973739624017,-6.374886989593449],[-37.9279441833496,-6.421506881713867],[-38.00814056396473,-6.432205200195312],[-38.04954528808594,-6.583821773528996],[-38.107681274414006,-6.604419231414795],[-38.14780044555664,-6.491498947143555],[-38.288639068603516,-6.505627155303841],[-38.40101623535156,-6.409995079040527],[-38.55485153198236,-6.437374114990234],[-38.578525543212834,-6.280207157134953],[-38.51963806152343,-6.223051071166992],[-38.44723892211914,-6.085290908813477],[-38.3047256469726,-6.086979866027832],[-38.25158691406244,-6.010366916656494],[-38.124858856201115,-5.887623786926213],[-38.10818862915039,-5.814829826354923],[-38.046993255615234,-5.730422973632812],[-38.08263397216797,-5.672267913818303],[-37.9899559020996,-5.555810928344727],[-37.90469741821289,-5.50115489959711],[-37.84738540649413,-5.340035915374699],[-37.78302001953125,-5.294829845428467],[-37.789943695068246,-5.21095323562622],[-37.72397232055664,-5.069858074188232],[-37.67705154418945,-5.052547931671143],[-37.64024353027344,-4.926418781280461],[-37.25208282470703,-4.832361221313477],[-37.15736007690423,-4.946249961853027],[-37.03569412231445,-4.950139999389648],[-36.958194732666016,-4.920693874359131],[-36.87930679321289,-4.952916145324707],[-36.72069549560546,-5.088749885559024],[-36.61069488525385,-5.097361087799015],[-36.44708251953125,-5.067916870117131],[-36.30986022949219,-5.110139846801701],[-36.12513732910156,-5.091806888580322],[-35.9779167175293,-5.041529178619385],[-35.78625106811518,-5.075417041778564],[-35.48930740356445,-5.157639026641846],[-35.3709716796875,-5.284305095672551],[-35.26124954223627,-5.484027862548771],[-35.22069549560547,-5.679306030273438],[-35.153751373291016,-5.883472919464111],[-35.151248931884766,-5.954861164092961],[-35.106250762939446,-6.007359981536865],[-35.09708404541015,-6.166806221008301],[-35.035972595214844,-6.235692977905273],[-35.03319549560547,-6.323472023010197],[-34.99097061157221,-6.3743062019347],[-34.96902847290039,-6.487946033477783]]]},"properties":{"ID_0":33,"ISO":"BR-RN","NAME_0":"Brazil","ID_1":20,"NAME_1":"Rio Grande do Norte","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-49.713470458984375,-29.326183319091797],[-49.91902923583979,-29.59986114501947],[-49.98625183105469,-29.710973739624023],[-50.16319274902338,-30.075138092041012],[-50.30625152587879,-30.44569206237793],[-50.38013839721674,-30.57013893127441],[-50.69208145141596,-30.995138168334904],[-50.76652908325195,-31.108749389648438],[-50.879306793212834,-31.226528167724606],[-51.03708267211914,-31.357360839843746],[-51.216251373291016,-31.53486061096191],[-51.452915191650334,-31.7126407623291],[-51.76124954223627,-31.877082824707028],[-51.961528778076115,-32.023750305175774],[-52.09791564941395,-31.835416793823185],[-52.002639770507756,-31.819305419921875],[-51.924583435058594,-31.863473892211857],[-51.80430603027344,-31.83875083923334],[-51.803470611572266,-31.78902626037598],[-51.688751220703125,-31.779582977294865],[-51.61347198486328,-31.731250762939336],[-51.44124984741211,-31.5040283203125],[-51.347637176513615,-31.529306411743107],[-51.232639312744084,-31.451803207397457],[-51.15708160400385,-31.271528244018494],[-51.174861907958984,-31.073194503784176],[-51.10736083984375,-31.098194122314396],[-50.979026794433594,-31.03652763366694],[-50.96638870239258,-30.908836364746094],[-50.911228179931584,-30.905748367309567],[-50.74440002441406,-30.812269210815426],[-50.70192337036127,-30.746309280395447],[-50.67947769165039,-30.609153747558533],[-50.70044708251953,-30.424743652343746],[-50.61103439331049,-30.48568916320795],[-50.56860733032215,-30.45840072631836],[-50.537715911865234,-30.273847579956055],[-50.59642791748041,-30.194925308227482],[-50.65882492065418,-30.199905395507752],[-50.67317962646484,-30.29662322998041],[-50.78194427490223,-30.284757614135685],[-50.79691696166981,-30.338363647460934],[-50.90692138671875,-30.323274612426705],[-50.929973602294915,-30.435754776000973],[-51.04708480834961,-30.38152694702148],[-51.02319335937494,-30.28208351135248],[-51.08402633666992,-30.241806030273434],[-51.18402862548828,-30.232639312744087],[-51.23458480834961,-30.058750152587894],[-51.30125045776367,-30.006526947021428],[-51.309028625488224,-30.18263816833496],[-51.29486083984375,-30.30319595336908],[-51.17263793945307,-30.383195877075195],[-51.25763702392578,-30.46347236633295],[-51.30319595336908,-30.62874984741211],[-51.38597106933587,-30.65069580078125],[-51.4059715270996,-30.75875091552734],[-51.37291717529291,-30.875415802001893],[-51.43986129760736,-30.869861602783146],[-51.49958419799805,-30.923194885253846],[-51.4676399230957,-31.09791755676269],[-51.62680435180664,-31.15041732788086],[-51.629859924316406,-31.268749237060547],[-51.799304962158146,-31.274860382080078],[-51.9154167175293,-31.313472747802734],[-51.98236083984375,-31.38652610778803],[-52.01680374145507,-31.530416488647457],[-52.109859466552734,-31.55624961853027],[-52.07125091552734,-31.68097305297846],[-52.226249694824155,-31.752361297607422],[-52.21958160400385,-31.872917175292965],[-52.137359619140625,-31.918193817138672],[-52.239028930664006,-31.98513793945312],[-52.22819519042968,-32.035972595214844],[-52.13680648803705,-32.05958175659174],[-52.10069274902344,-32.16180419921869],[-52.2437515258789,-32.270416259765625],[-52.38208389282221,-32.51319503784179],[-52.48708343505854,-32.84791564941406],[-52.63847351074219,-33.12486267089844],[-52.784027099609375,-33.28874969482421],[-53.15208435058588,-33.58625030517578],[-53.37402725219715,-33.74708175659179],[-53.52365875244129,-33.68610382080078],[-53.5001106262207,-33.39979171752924],[-53.53153610229492,-33.20769882202143],[-53.484397888183594,-33.07806396484375],[-53.29845809936523,-32.94843292236328],[-53.24782180786127,-32.86352920532221],[-53.09424591064453,-32.72418975830072],[-53.17014694213867,-32.652130126953125],[-53.41828155517578,-32.56121826171869],[-53.45887374877924,-32.47697830200195],[-53.51966857910156,-32.484241485595646],[-53.63163375854492,-32.38159942626953],[-53.74139404296874,-32.079097747802734],[-53.82884216308594,-32.051277160644474],[-53.85689163208008,-31.99263572692871],[-54.022468566894524,-31.892795562744084],[-54.095508575439446,-31.9055824279784],[-54.46139526367182,-31.664991378784123],[-54.42051315307617,-31.629465103149414],[-54.50460815429676,-31.513168334960938],[-54.72459411621088,-31.437736511230465],[-54.827922821044915,-31.44510841369629],[-54.9512100219726,-31.358831405639645],[-55.01370620727539,-31.281944274902283],[-55.115127563476506,-31.318918228149354],[-55.24435424804682,-31.253818511962834],[-55.33940505981445,-31.123176574706974],[-55.381790161132756,-31.027887344360355],[-55.600376129150334,-30.84371948242187],[-55.65108871459955,-30.95131301879877],[-55.697608947753906,-30.9582786560058],[-55.8697929382323,-31.079561233520504],[-56.007816314697266,-31.062643051147404],[-56.01482772827142,-30.937009811401367],[-55.9879035949707,-30.861925125122013],[-56.02067184448242,-30.78150177001953],[-56.13026809692383,-30.732589721679688],[-56.142044067382756,-30.676429748535156],[-56.53535079956049,-30.327016830444336],[-56.610740661621094,-30.30054092407221],[-56.6587028503418,-30.197235107421815],[-56.70001220703125,-30.19909477233881],[-56.835083007812436,-30.088199615478512],[-57.10939407348633,-30.111831665039062],[-57.206775665283196,-30.28145408630371],[-57.31235122680664,-30.25683593749994],[-57.39490509033191,-30.299652099609375],[-57.55514526367187,-30.212390899658203],[-57.41203689575189,-30.040691375732422],[-57.34196472167962,-30.00122451782227],[-57.318336486816406,-29.867580413818246],[-57.23598098754883,-29.778366088867184],[-57.10449218749994,-29.748962402343746],[-56.88169860839838,-29.511966705322262],[-56.82871627807617,-29.48898506164545],[-56.765151977539055,-29.380332946777287],[-56.70840072631836,-29.361932754516598],[-56.59306335449219,-29.122995376586857],[-56.42478561401367,-29.072883605956914],[-56.41016769409179,-28.9765682220459],[-56.31401062011713,-28.91596412658691],[-56.28425216674799,-28.791032791137695],[-56.19169616699218,-28.772745132446286],[-56.14143371582031,-28.703012466430664],[-56.01220703125,-28.60419273376459],[-55.99895095825195,-28.50310516357422],[-55.89349365234374,-28.481349945068356],[-55.867664337158146,-28.35382652282709],[-55.76964950561518,-28.36700248718256],[-55.68981170654291,-28.415363311767575],[-55.66825485229486,-28.337144851684513],[-55.76514053344721,-28.271844863891488],[-55.618972778320256,-28.158998489379826],[-55.56794357299798,-28.160516738891545],[-55.378635406494084,-28.040332794189396],[-55.385593414306584,-27.990064620971676],[-55.322998046875,-27.92808532714838],[-55.2030029296875,-27.866584777832028],[-55.148906707763615,-27.890228271484318],[-55.021022796630746,-27.79658508300781],[-54.9471817016601,-27.780012130737244],[-54.90295028686518,-27.646493911743107],[-54.78448867797846,-27.584030151367184],[-54.62035369873041,-27.54797172546381],[-54.44962310791015,-27.476463317871094],[-54.34554672241211,-27.468130111694332],[-54.22220993041986,-27.388364791870004],[-54.18703460693348,-27.273574829101502],[-54.11064147949213,-27.304794311523434],[-53.95955657958979,-27.201583862304574],[-53.948719024658196,-27.155435562133786],[-53.830329895019474,-27.170944213867127],[-53.748844146728516,-27.190977096557617],[-53.666599273681584,-27.1622314453125],[-53.52663421630859,-27.19626045227045],[-53.41115188598632,-27.14082717895502],[-53.38312911987305,-27.096420288085934],[-53.29301071166992,-27.139888763427734],[-53.12996673583979,-27.17852592468256],[-53.003429412841676,-27.13342857360834],[-52.969322204589844,-27.215679168701115],[-52.77402114868164,-27.20727539062494],[-52.676265716552734,-27.246650695800778],[-52.27434921264648,-27.30296516418457],[-52.21265029907226,-27.330820083618104],[-52.121402740478516,-27.303432464599553],[-52.040733337402344,-27.345130920410156],[-51.938747406005746,-27.4439697265625],[-51.79835891723627,-27.491056442260682],[-51.70337295532221,-27.483129501342717],[-51.58647155761719,-27.56099510192871],[-51.47780609130853,-27.57012176513672],[-51.41927337646479,-27.653961181640625],[-51.316562652587834,-27.674728393554688],[-51.27401351928705,-27.749540328979492],[-51.19077301025385,-27.777196884155273],[-51.05212402343749,-27.870363235473633],[-51.056243896484375,-27.901508331298828],[-50.92890167236317,-27.969102859497067],[-50.87733840942383,-28.038301467895508],[-50.85691452026367,-28.137372970580998],[-50.79233169555658,-28.13940811157221],[-50.75204849243164,-28.246370315551697],[-50.66492462158192,-28.337997436523438],[-50.576763153076165,-28.39365577697754],[-50.370052337646364,-28.424541473388615],[-50.27159881591791,-28.45674324035639],[-50.1456069946289,-28.446495056152287],[-50.03719329833979,-28.47841072082508],[-49.97150039672846,-28.4391078948974],[-49.877361297607365,-28.454652786254826],[-49.72825622558594,-28.518453598022404],[-49.7282257080077,-28.623365402221623],[-49.817276000976506,-28.640651702880803],[-49.84635925292963,-28.705461502075142],[-49.93533325195306,-28.728111267089787],[-49.96391296386719,-28.822225570678707],[-49.93775939941406,-28.965431213378906],[-49.96853637695307,-29.11667251586914],[-49.962581634521484,-29.19921493530268],[-49.86899948120117,-29.22446823120117],[-49.84098815917969,-29.277572631835938],[-49.713470458984375,-29.326183319091797]]]},"properties":{"ID_0":33,"ISO":"BR-RS","NAME_0":"Brazil","ID_1":21,"NAME_1":"Rio Grande do Sul","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.58290100097656,-8.798702239990178],[-61.526020050048764,-8.816848754882812],[-61.46843719482422,-8.917381286621094],[-61.554874420166016,-9.090265274047852],[-61.52028274536127,-9.192301750183105],[-61.6131019592284,-9.28001880645752],[-61.625328063964844,-9.339431762695256],[-61.55263137817377,-9.387434959411621],[-61.581661224365234,-9.459136009216309],[-61.5079727172851,-9.54047679901123],[-61.47911453247059,-9.633694648742676],[-61.53236007690429,-9.711790084838809],[-61.547294616699155,-9.787552833557129],[-61.507858276367195,-9.861091613769474],[-61.53113174438476,-9.989865303039494],[-61.60059356689447,-10.1538028717041],[-61.5336799621582,-10.331894874572754],[-61.461719512939396,-10.419917106628361],[-61.47616577148437,-10.607674598693734],[-61.49876022338856,-10.699950218200682],[-61.53002929687494,-10.979029655456543],[-61.428943634033146,-10.987543106079043],[-60.459987640380795,-10.98986530303955],[-60.39149093627929,-11.093803405761662],[-60.15921020507807,-11.095663070678652],[-60.019325256347535,-11.129109382629338],[-59.981964111328125,-11.233511924743596],[-59.92770767211914,-11.310445785522404],[-59.920570373535156,-11.398019790649414],[-60.090717315673764,-11.554890632629395],[-60.12159729003906,-11.712114334106387],[-60.098796844482415,-11.845566749572752],[-59.98510742187501,-11.91435432434082],[-59.979290008544915,-12.029559135436896],[-59.90117263793945,-12.115450859069767],[-59.8862838745116,-12.245482444763182],[-59.79287719726562,-12.345791816711424],[-59.868423461914006,-12.48237133026123],[-59.903095245361335,-12.472520828247069],[-60.02657699584961,-12.561638832092228],[-60.088958740234375,-12.740471839904671],[-60.07904815673828,-12.881149291992188],[-60.11709976196289,-12.959565162658691],[-60.18328094482421,-12.967638015747013],[-60.267551422119084,-13.077292442321777],[-60.28055191040038,-13.135627746581974],[-60.37143325805663,-13.318634033203068],[-60.705120086669915,-13.324747085571289],[-60.8650894165039,-13.541679382324217],[-60.918922424316285,-13.548334121704043],[-61.342578887939446,-13.491901397705078],[-61.49563980102539,-13.553750038146916],[-61.573520660400334,-13.497790336608885],[-61.79841995239257,-13.543508529663084],[-61.86183929443359,-13.450589179992676],[-62.00886154174798,-13.35176086425781],[-62.10808181762695,-13.256900787353514],[-62.119659423828075,-13.153539657592773],[-62.243778228759766,-13.122080802917424],[-62.27849197387695,-13.155490875244027],[-62.41411972045898,-13.129071235656681],[-62.472591400146484,-13.071730613708382],[-62.628780364990234,-13.045329093933105],[-62.674869537353516,-12.990971565246525],[-62.810298919677734,-12.980161666870117],[-62.921318054199155,-12.84086799621582],[-63.00918960571278,-12.837791442871037],[-63.04718017578124,-12.740691184997502],[-63.144821166992195,-12.643161773681584],[-63.245109558105405,-12.71290111541748],[-63.32656097412104,-12.70491981506342],[-63.42650985717768,-12.651011466979979],[-63.476169586181584,-12.562030792236328],[-63.54467010498041,-12.552310943603514],[-63.6604995727539,-12.470610618591252],[-63.773639678955014,-12.454469680786076],[-63.864028930664006,-12.467219352722166],[-63.89912033081048,-12.53394985198969],[-64.13731384277344,-12.52734088897705],[-64.23162841796875,-12.45508956909174],[-64.37339782714838,-12.466940879821777],[-64.51300811767571,-12.347820281982308],[-64.49286651611328,-12.294260025024357],[-64.54711151123047,-12.242711067199707],[-64.69883728027342,-12.187162399291935],[-64.82324981689447,-12.026426315307617],[-65.02263641357422,-11.999151229858398],[-65.01531219482416,-11.902069091796818],[-65.04704284667969,-11.75424861907959],[-65.1845474243164,-11.759127616882324],[-65.18045043945311,-11.607028007507324],[-65.23082733154297,-11.508378028869627],[-65.29854583740227,-11.497219085693303],[-65.36136627197266,-11.251359939575195],[-65.35608673095692,-11.128230094909611],[-65.28636932373036,-11.092209815978947],[-65.3012924194336,-11.032130241394043],[-65.25089263916004,-10.984551429748478],[-65.27558898925774,-10.871161460876465],[-65.34821319580078,-10.77845096588129],[-65.34879302978516,-10.672710418701172],[-65.42971038818348,-10.481014251708984],[-65.38949584960938,-10.387001991271973],[-65.30805206298828,-10.297120094299316],[-65.28225708007807,-10.19779109954834],[-65.3297119140625,-10.046510696411133],[-65.32125091552729,-9.906010627746582],[-65.28607940673822,-9.845491409301701],[-65.35463714599604,-9.723689079284668],[-65.44346618652344,-9.669329643249512],[-65.55304718017578,-9.835400581359863],[-65.630630493164,-9.834380149841252],[-65.71894073486322,-9.755950927734375],[-65.8415069580077,-9.789791107177734],[-65.88597869873047,-9.75247859954834],[-66.03940582275389,-9.787119865417479],[-66.15210723876947,-9.785619735717715],[-66.21340942382807,-9.834250450134277],[-66.31590270996094,-9.831400871276799],[-66.35971832275384,-9.866150856018066],[-66.55554962158203,-9.883980751037598],[-66.58875274658202,-9.903196334838809],[-66.80647277832031,-9.81451988220209],[-66.77551269531244,-9.753079414367619],[-66.50071716308594,-9.633559226989744],[-66.3925170898437,-9.500473022460938],[-66.37487792968744,-9.426360130310059],[-66.25975799560541,-9.410989761352539],[-66.17372131347656,-9.434416770935002],[-66.12397003173822,-9.408774375915527],[-65.97037506103516,-9.41315746307373],[-65.91270446777344,-9.483749389648322],[-65.82514190673828,-9.530090332031193],[-65.80007934570307,-9.585020065307617],[-65.72360229492182,-9.559058189392033],[-65.67948913574219,-9.451392173767033],[-65.59682464599608,-9.413866043090763],[-65.5031967163086,-9.469978332519531],[-65.45664215087889,-9.401209831237734],[-65.44024658203124,-9.311749458312988],[-65.37754821777344,-9.324430465698185],[-65.24668884277338,-9.257667541503906],[-65.21179962158202,-9.278998374938963],[-65.18685150146484,-9.415031433105469],[-65.14290618896479,-9.446814537048283],[-65.05356597900385,-9.402147293090763],[-65.00053405761713,-9.304619789123533],[-64.91969299316406,-9.220285415649357],[-64.93994140625,-9.124572753906193],[-64.87057495117188,-9.012198448181096],[-64.58795928955072,-9.009517669677734],[-64.55011749267572,-8.978278160095101],[-64.44656372070301,-8.97687816619873],[-64.3233871459961,-8.928870201110783],[-64.31130981445307,-8.996479034423828],[-64.2331924438476,-8.992317199706974],[-64.14175415039055,-8.945060729980469],[-64.15818786621094,-8.84317684173584],[-64.14305114746094,-8.743041038513184],[-64.03546142578125,-8.693568229675293],[-63.986186981201165,-8.585645675659178],[-63.92454528808594,-8.575535774230957],[-63.97315597534174,-8.47845935821533],[-63.94081497192377,-8.452274322509766],[-63.94409942626953,-8.33119869232172],[-63.87073516845692,-8.288831710815371],[-63.79120635986328,-8.333227157592773],[-63.72273254394531,-8.249509811401367],[-63.69339370727539,-8.158363342285156],[-63.62174987792968,-8.029622077941893],[-63.62075805664057,-7.969308853149414],[-63.50049972534173,-7.976333141326847],[-62.866573333740234,-7.97588396072382],[-62.69223403930664,-8.092922210693358],[-62.649898529052734,-8.237038612365723],[-62.58533859252925,-8.271894454956053],[-62.51842117309565,-8.384754180908203],[-62.465423583984375,-8.339750289916935],[-62.36075210571283,-8.398563385009652],[-62.36600112915033,-8.493574142455998],[-62.26883697509759,-8.575773239135685],[-62.18833923339838,-8.59057426452631],[-62.12491989135737,-8.801686286926213],[-62.03100585937488,-8.799722671508732],[-61.99016571044916,-8.872673988342285],[-61.85969161987299,-8.852987289428711],[-61.84405136108393,-8.747397422790527],[-61.77454757690423,-8.748244285583437],[-61.74179458618164,-8.695208549499455],[-61.62641143798828,-8.728866577148438],[-61.58290100097656,-8.798702239990178]]]},"properties":{"ID_0":33,"ISO":"BR-RO","NAME_0":"Brazil","ID_1":22,"NAME_1":"Rondônia","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Guaporé"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-58.89543151855468,1.227664947509822],[-58.89534759521484,0.263505995273647],[-59.43348693847656,0.26350998878479],[-60.03789520263666,0.263489991426525],[-60.059017181396484,0.162971004843769],[-60.11622619628906,0.133212000131607],[-60.14316177368163,0.037388000637407],[-60.20321273803712,-0.033615998923722],[-60.22043991088861,-0.135381996631622],[-60.285720825195305,-0.21065500378603],[-60.289882659911996,-0.293161988258305],[-60.34463500976562,-0.440634995698929],[-60.3998908996582,-0.510107994079533],[-60.303565979003906,-0.711292028427067],[-60.434608459472656,-0.772605001926365],[-60.47905731201166,-0.770938992500305],[-60.53100204467774,-0.875101983547154],[-60.591278076171875,-0.85343199968338],[-60.65461349487305,-0.883157014846802],[-60.75266265869135,-0.861208975315037],[-60.76100540161133,-0.761493980884552],[-60.97545242309564,-0.562602996826058],[-61.08739471435547,-0.500109016895181],[-61.22295379638661,-0.505658984184208],[-61.224056243896484,-0.559547007083893],[-61.348411560058594,-0.595547974109536],[-61.45684051513672,-0.657051026821023],[-61.53878784179682,-0.756218016147614],[-61.54351043701172,-0.852321982383728],[-61.578506469726555,-0.910099029540959],[-61.546566009521484,-1.071213006973267],[-61.62684631347657,-1.293992042541447],[-61.58211517333984,-1.35342895984644],[-61.60489654541009,-1.448155045509338],[-61.7979507446289,-1.380653023719731],[-61.89656829833984,-1.395378947257995],[-62.017402648925774,-1.141767978668213],[-62.09962463378906,-1.096766948699951],[-62.17185211181635,-1.005936026573124],[-62.31268692016596,-0.930381000041905],[-62.39574432373047,-0.820378005504551],[-62.50102233886718,-0.781491994857788],[-62.46962738037109,-0.693991005420571],[-62.36713027954101,-0.710099995136147],[-62.287483215332024,-0.638356983661595],[-62.31832122802729,-0.552519977092743],[-62.273880004882756,-0.454183012247029],[-62.22720718383788,-0.425850987434387],[-62.18831634521484,-0.33084499835968],[-62.253597259521484,-0.271405011415482],[-62.244983673095646,-0.174740001559258],[-62.31968307495105,-0.102550998330059],[-62.34656143188471,0.029581999406219],[-62.414897918701165,0.074350997805652],[-62.452686309814396,0.207388997077942],[-62.46684265136719,0.332935005426407],[-62.4462890625,0.379056006669998],[-62.532958984375,0.508795976638908],[-62.528518676757756,0.710179984569663],[-62.45768356323242,0.785170018672943],[-62.486011505126946,0.866508007049561],[-62.44573593139643,0.976824998855591],[-62.521034240722656,1.083786964416561],[-62.58685684204101,1.255452036857719],[-62.63732528686517,1.433696031570491],[-62.73075103759765,1.499606013298035],[-62.80523300170898,1.591317057609558],[-62.72369384765624,1.712357044220028],[-62.73101806640625,1.818204998970146],[-62.70597839355462,1.939694046974239],[-62.838783264160156,2.016442060470638],[-62.94843673706043,2.031012058258113],[-63.02373504638672,2.014641046524162],[-63.119785308837834,2.09642505645752],[-63.14146041870105,2.172419071197567],[-63.28274154663085,2.153851032257194],[-63.37227630615235,2.211709022521973],[-63.42551803588867,2.364233016967773],[-63.40680694580078,2.435909986496029],[-63.49994277954095,2.435955047607479],[-63.655925750732415,2.393882036209106],[-63.780818939208984,2.391247987747249],[-64.02077484130858,2.466536998748893],[-64.0571670532226,2.512928009033146],[-63.99162292480468,2.636245965957755],[-63.98660659790028,2.730709075927848],[-64.1024398803711,2.95153903961176],[-64.23522949218739,3.114319086074829],[-64.20828247070312,3.188760995864868],[-64.25522613525385,3.410975933075064],[-64.1868896484375,3.499587059021053],[-64.18577575683594,3.559587001800537],[-64.28912353515625,3.699589967727661],[-64.4285659790039,3.779867887496948],[-64.47245788574217,3.781533956527823],[-64.56835174560536,3.881722927093506],[-64.5802383422851,3.928262948989925],[-64.67385864257812,4.004589080810604],[-64.73218536376947,4.1201429367066],[-64.8105239868164,4.174582004547119],[-64.82497406005854,4.244025230407772],[-64.78052520751947,4.286530971527156],[-64.69136047363274,4.244587898254508],[-64.62745666503899,4.138475894927979],[-64.56049346923822,4.101533889770508],[-64.4316177368164,4.134590148925895],[-64.28967285156244,4.143753051757926],[-64.171890258789,4.128757953643799],[-64.11272430419922,4.09125280380249],[-64.0356674194336,3.93422889709467],[-63.9499397277832,3.886528968810978],[-63.85021591186517,3.94986891746521],[-63.70049667358392,3.944308042526188],[-63.6527137756347,4.001814842224234],[-63.57159805297852,3.883197069168034],[-63.452713012695256,3.858201980590877],[-63.353370666503785,3.960197925567741],[-63.20492935180663,3.951251983642521],[-63.233535766601555,3.881531000137386],[-63.2043724060058,3.811532020568961],[-63.1232566833496,3.804589986801204],[-63.06075286865228,3.751810073852596],[-63.07297897338861,3.685425043106136],[-62.98491668701172,3.609591960906982],[-62.83575439453124,3.738476991653386],[-62.73102569580078,3.707643985748348],[-62.73538208007807,3.8001549243927],[-62.78880310058593,3.893204927444571],[-62.732173919677734,4.035823822021541],[-62.64139556884765,4.051622867584342],[-62.55615234375,4.029202938079777],[-62.50979614257812,4.087165832519531],[-62.3554573059082,4.150284767150993],[-62.2330703735351,4.131924152374324],[-62.1345596313476,4.09125280380249],[-62.06065368652338,4.156741142273006],[-61.90314865112305,4.164978027343693],[-61.756721496581974,4.255393981933594],[-61.59051513671875,4.250426769256649],[-61.52329635620118,4.282258033752554],[-61.53794860839838,4.383833885192928],[-61.47499847412103,4.438243865966797],[-61.390861511230405,4.430208206176758],[-61.329322814941406,4.463661193847599],[-61.344749450683594,4.531844139099177],[-61.22252655029296,4.527145862579346],[-61.1497116088866,4.484355926513615],[-60.9913330078125,4.516063213348502],[-60.9289665222168,4.6073260307312],[-60.889514923095646,4.712080001831112],[-60.834461212158196,4.712596893310604],[-60.73152542114246,4.765439033508358],[-60.587852478027344,4.965773105621338],[-60.674156188964844,5.170005798339844],[-60.661682128906186,5.221683025360107],[-60.57181549072265,5.189376831054801],[-60.43804550170892,5.176926136016788],[-60.32917404174794,5.199077129364126],[-60.21232604980463,5.264453887939567],[-60.12193298339838,5.243931770324706],[-60.0854263305664,5.148698806762695],[-59.97662353515625,5.034758090973014],[-60.03333663940424,4.790381908416805],[-60.0284461975097,4.709795951843262],[-60.09170150756831,4.595231056213436],[-60.15955734252929,4.51964378356945],[-59.78559875488281,4.444613933563232],[-59.67125701904297,4.376558780670223],[-59.71799850463867,4.296010017395076],[-59.71303939819335,4.171568870544547],[-59.627830505371044,4.139078140258732],[-59.616886138916016,4.059394836425837],[-59.56879043579096,3.965207099914494],[-59.57560348510742,3.825129032135067],[-59.66592025756835,3.776824951171818],[-59.661338806152344,3.713190078735351],[-59.844989776611214,3.603478908538875],[-59.86485290527343,3.561639070510921],[-59.80381393432617,3.497345924377498],[-59.834896087646484,3.440710067748967],[-59.798114776611335,3.356441020965519],[-59.86987686157221,3.270085096359367],[-59.897445678710824,3.159965991973877],[-59.95899963378906,3.06294488906866],[-59.98157501220703,2.929233074188232],[-59.98783874511713,2.679122924804801],[-59.9311904907226,2.565139055252075],[-59.9087028503418,2.392432928085327],[-59.78753280639648,2.28593993186945],[-59.734474182128906,2.284734964370728],[-59.739925384521484,2.177516937255916],[-59.720230102539,2.030178070068303],[-59.752273559570256,1.910222053527775],[-59.67955017089843,1.785308003425598],[-59.61783981323242,1.730952024459896],[-59.548133850097656,1.7301620244981],[-59.37897491455078,1.518102049827576],[-59.33692932128906,1.517428994178829],[-59.25275039672846,1.397390007972717],[-59.15567016601556,1.34834897518158],[-58.91377258300781,1.298509001731929],[-58.89543151855468,1.227664947509822]]]},"properties":{"ID_0":33,"ISO":"BR-RR","NAME_0":"Brazil","ID_1":23,"NAME_1":"Roraima","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Rio Branco"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-47.42930603027344,-24.674585342407113],[-47.721527099609375,-24.87125015258783],[-47.86513900756835,-24.999584197998047],[-47.89374923706055,-24.967081069946175],[-47.73485946655262,-24.83569335937494],[-47.68402862548817,-24.813472747802678],[-47.62652587890624,-24.76180648803711],[-47.518470764160035,-24.69319534301752],[-47.485416412353516,-24.7056941986084],[-47.42930603027344,-24.674585342407113]]],[[[-46.12708282470703,-23.856252670288086],[-46.21263885498047,-23.984861373901307],[-46.300971984863224,-24.016805648803654],[-46.307640075683594,-23.924304962158203],[-46.20847320556635,-23.91875076293934],[-46.12708282470703,-23.856252670288086]]],[[[-45.32902908325195,-23.7220840454101],[-45.23236083984375,-23.776252746581974],[-45.305694580078125,-23.90902709960926],[-45.406806945800724,-23.939027786254883],[-45.46236038208008,-23.88875007629389],[-45.366249084472656,-23.810415267944336],[-45.32902908325195,-23.7220840454101]]],[[[-44.809181213378906,-22.405263900756836],[-44.75504684448242,-22.4149169921875],[-44.645305633544865,-22.602554321289006],[-44.50853729248047,-22.64093780517578],[-44.39162063598627,-22.573398590087834],[-44.232868194579964,-22.608882904052617],[-44.160896301269524,-22.678316116333008],[-44.25751495361328,-22.76847648620594],[-44.2699089050293,-22.830293655395508],[-44.46694564819336,-22.885053634643555],[-44.60701370239258,-22.88568115234375],[-44.743797302246094,-22.94758987426752],[-44.79309463500976,-23.010242462158203],[-44.825569152831974,-23.162794113159123],[-44.88888168334955,-23.224496841430604],[-44.725418090820256,-23.36964607238764],[-44.84430694580078,-23.387361526489258],[-44.90763854980469,-23.33402824401855],[-44.977638244628906,-23.400972366333004],[-45.06069564819336,-23.419584274291992],[-45.074584960937386,-23.48958396911621],[-45.22791671752924,-23.537361145019474],[-45.40736007690429,-23.624027252197262],[-45.43125152587885,-23.686250686645508],[-45.396804809570256,-23.781806945800664],[-45.42124938964843,-23.828470230102482],[-45.53541564941406,-23.829584121704098],[-45.67208480834961,-23.774026870727482],[-45.8176383972168,-23.755695343017575],[-45.91180419921869,-23.765972137451058],[-46.08541488647461,-23.819026947021484],[-46.20680618286133,-23.91402816772461],[-46.33180618286127,-23.901527404785156],[-46.42930603027344,-23.937084197998047],[-46.43152618408203,-24.01625251770014],[-46.54819488525385,-24.061527252197266],[-46.83708190917968,-24.21236038208002],[-47.00152587890624,-24.331249237060547],[-47.003192901611264,-24.410139083862305],[-47.10847091674799,-24.46486091613764],[-47.24625015258789,-24.573472976684513],[-47.47152709960932,-24.694860458374023],[-47.507915496826165,-24.696250915527287],[-47.51708221435547,-24.689861297607365],[-47.529582977294915,-24.69375038146967],[-47.73402786254883,-24.8295841217041],[-47.795696258544865,-24.883193969726506],[-47.86208343505859,-24.890972137451172],[-47.98291778564453,-25.019861221313473],[-48.0131950378418,-25.084583282470646],[-47.90097045898432,-25.104303359985295],[-47.92597198486317,-25.160137176513615],[-48.05773544311518,-25.262081146240178],[-48.11482620239258,-25.25068855285639],[-48.21599578857422,-25.076660156249996],[-48.411010742187386,-24.98011970520014],[-48.47399139404296,-25.012542724609375],[-48.52852630615234,-25.100784301757812],[-48.598426818847656,-25.01905250549305],[-48.56745910644531,-24.972158432006832],[-48.555694580078125,-24.806192398071175],[-48.50228118896473,-24.744714736938477],[-48.61656188964843,-24.668663024902344],[-48.77859115600586,-24.69672203063965],[-48.82869720458979,-24.655588150024357],[-48.92236709594721,-24.67517471313471],[-49.0373420715332,-24.660408020019474],[-49.208850860595646,-24.700832366943303],[-49.31184005737299,-24.663614273071232],[-49.31592941284174,-24.555494308471676],[-49.24712371826172,-24.469139099121094],[-49.241340637206974,-24.3851318359375],[-49.34148406982416,-24.203111648559567],[-49.341453552246094,-24.138324737548825],[-49.48709487915039,-24.024589538574162],[-49.562305450439446,-23.81855964660639],[-49.549785614013615,-23.703712463378906],[-49.62106704711914,-23.6070499420166],[-49.595218658447266,-23.366926193237305],[-49.67826080322265,-23.165054321289006],[-49.726375579833984,-23.111593246459904],[-49.91154479980469,-23.05111122131342],[-49.90147399902338,-22.9991455078125],[-49.96131896972656,-22.930862426757812],[-50.06740951538086,-22.927505493163945],[-50.18327713012695,-22.953750610351562],[-50.27332687377924,-22.930992126464844],[-50.43020629882807,-22.945802688598633],[-50.576946258544915,-22.90396499633789],[-50.67596817016595,-22.900510787963864],[-50.709774017333984,-22.953428268432617],[-50.793079376220646,-22.90511131286615],[-50.89331054687494,-22.794958114623967],[-50.94506835937499,-22.804067611694336],[-51.157756805419865,-22.751663208007812],[-51.30623626708979,-22.674419403076172],[-51.446235656738224,-22.65325164794922],[-51.55950927734375,-22.697172164916992],[-51.615779876708984,-22.662586212158203],[-51.72581481933594,-22.66142463684082],[-51.77337265014642,-22.614557266235238],[-51.87345504760742,-22.628238677978402],[-51.94045257568354,-22.567333221435547],[-52.12561416625976,-22.519262313842717],[-52.1566162109375,-22.644712448120114],[-52.22819519042968,-22.665294647216797],[-52.43523025512684,-22.60738182067865],[-52.50324249267578,-22.634065628051758],[-52.58020782470703,-22.568996429443303],[-52.70118331909174,-22.627479553222543],[-52.858299255371094,-22.607997894287053],[-52.97236251831055,-22.570476531982422],[-53.10512161254883,-22.621923446655273],[-52.99851989746094,-22.493181228637695],[-52.854698181152344,-22.43910598754877],[-52.798267364501896,-22.378267288208008],[-52.57912445068354,-22.251947402954045],[-52.48669815063471,-22.215190887451115],[-52.345371246337834,-22.061962127685547],[-52.319026947021484,-21.97236251831049],[-52.19050216674799,-21.84613609313965],[-52.16120147705078,-21.770769119262695],[-52.10284042358393,-21.74526596069336],[-52.049453735351506,-21.643106460571232],[-52.10322952270502,-21.559055328369084],[-52.05700683593749,-21.503602981567326],[-51.99810791015625,-21.51562309265131],[-51.92861938476557,-21.455810546875],[-51.86763381958008,-21.35165405273426],[-51.848453521728516,-21.266633987426644],[-51.878921508789006,-21.14813232421869],[-51.789608001708984,-21.102115631103516],[-51.71363830566406,-20.97145271301264],[-51.626625061035156,-20.94634437561035],[-51.61342239379877,-20.89007186889637],[-51.63483810424805,-20.754846572875977],[-51.59614562988281,-20.648759841918945],[-51.5234260559082,-20.588636398315373],[-51.35080718994129,-20.363176345825195],[-51.295623779296875,-20.328479766845703],[-51.16730499267572,-20.30636024475092],[-51.0691032409668,-20.25004577636713],[-51.000415802001896,-20.08538055419922],[-50.966400146484375,-20.03452491760254],[-50.783542633056584,-19.937225341796815],[-50.6568374633789,-19.90537261962885],[-50.57592773437494,-19.81601715087885],[-50.47184753417969,-19.779651641845703],[-50.35273742675781,-19.86458587646473],[-50.09957885742182,-19.875988006591793],[-50.04383850097656,-19.916492462158203],[-49.891223907470696,-19.9437198638916],[-49.78239822387684,-19.92445755004877],[-49.641159057617074,-19.931869506835938],[-49.55141067504877,-19.905841827392578],[-49.44032287597656,-19.98080062866211],[-49.297481536865234,-19.960540771484375],[-49.299190521240234,-20.16706275939941],[-49.226993560791016,-20.30353164672846],[-49.12028121948242,-20.269697189331055],[-49.06742477416981,-20.154737472534123],[-48.99219512939453,-20.165388107299748],[-48.96173095703119,-20.26329040527338],[-48.968841552734375,-20.393735885620004],[-48.867385864257805,-20.40009117126459],[-48.885398864746094,-20.26913452148426],[-48.85559082031244,-20.182081222534123],[-48.72948455810547,-20.150243759155217],[-48.31630325317377,-20.11371612548828],[-48.20333099365234,-20.045438766479435],[-48.178760528564396,-20.09579658508295],[-48.07038497924805,-20.14659881591797],[-48.00329589843744,-20.10462951660145],[-47.89432907104492,-20.123830795288026],[-47.8597297668457,-19.99298858642578],[-47.70418167114257,-19.979900360107422],[-47.63591766357422,-20.048376083373963],[-47.57896041870117,-19.995243072509652],[-47.46632385253906,-19.964216232299805],[-47.40305328369134,-20.082788467407227],[-47.30961990356445,-20.124494552612248],[-47.23105239868164,-20.219100952148438],[-47.29815673828119,-20.348440170288086],[-47.29172897338867,-20.44930458068842],[-47.15431976318354,-20.519723892211914],[-47.09732437133778,-20.644332885742188],[-47.11869812011719,-20.707237243652287],[-47.18620300292963,-20.73112869262695],[-47.23999023437494,-20.88527488708496],[-47.14366912841791,-20.982378005981445],[-47.11309814453125,-21.10491371154785],[-47.118736267089844,-21.185768127441406],[-46.93408203125,-21.425212860107422],[-46.776344299316406,-21.36281967163086],[-46.65134048461914,-21.438982009887695],[-46.763034820556584,-21.547195434570312],[-46.694786071777344,-21.61142349243158],[-46.640895843505746,-21.602266311645508],[-46.62598037719726,-21.766199111938473],[-46.690906524658196,-21.836940765380803],[-46.64381408691406,-21.974948883056584],[-46.68535614013671,-22.0373477935791],[-46.61298751831055,-22.15024566650385],[-46.67073822021479,-22.184240341186467],[-46.71789932250976,-22.316934585571286],[-46.63154220581048,-22.43581581115717],[-46.453502655029176,-22.52235031127924],[-46.39626312255854,-22.64597129821777],[-46.43939971923828,-22.726716995239258],[-46.33516311645508,-22.76018714904785],[-46.37675857543945,-22.82782173156738],[-46.34517288208007,-22.904672622680664],[-46.155281066894474,-22.864164352416992],[-46.00838851928705,-22.889215469360238],[-45.92253112792969,-22.824045181274357],[-45.766910552978516,-22.842336654663086],[-45.71674728393555,-22.779970169067383],[-45.729927062988224,-22.727233886718636],[-45.664955139160156,-22.65064811706543],[-45.57666397094721,-22.602342605590763],[-45.52487945556635,-22.646865844726562],[-45.471736907958984,-22.59051513671875],[-45.410442352294865,-22.651664733886662],[-45.17799377441406,-22.549869537353516],[-45.06063461303705,-22.472545623779293],[-44.898929595947266,-22.452819824218746],[-44.809181213378906,-22.405263900756836]]]]},"properties":{"ID_0":33,"ISO":"BR-SP","NAME_0":"Brazil","ID_1":24,"NAME_1":"São Paulo","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-48.41652679443354,-27.380418777465763],[-48.375137329101506,-27.480693817138615],[-48.4993057250976,-27.708471298217773],[-48.526527404785156,-27.638471603393555],[-48.51069259643555,-27.552085876464844],[-48.537082672119084,-27.477083206176758],[-48.41652679443354,-27.380418777465763]]],[[[-48.7551383972168,-28.510414123535153],[-48.832359313964844,-28.6068058013916],[-48.98125076293945,-28.675138473510685],[-49.259860992431584,-28.856805801391545],[-49.45069503784174,-29.02569389343256],[-49.713470458984375,-29.326183319091797],[-49.84098815917969,-29.277572631835938],[-49.86899948120117,-29.22446823120117],[-49.962581634521484,-29.19921493530268],[-49.96853637695307,-29.11667251586914],[-49.93775939941406,-28.965431213378906],[-49.96391296386719,-28.822225570678707],[-49.93533325195306,-28.728111267089787],[-49.84635925292963,-28.705461502075142],[-49.817276000976506,-28.640651702880803],[-49.7282257080077,-28.623365402221623],[-49.72825622558594,-28.518453598022404],[-49.877361297607365,-28.454652786254826],[-49.97150039672846,-28.4391078948974],[-50.03719329833979,-28.47841072082508],[-50.1456069946289,-28.446495056152287],[-50.27159881591791,-28.45674324035639],[-50.370052337646364,-28.424541473388615],[-50.576763153076165,-28.39365577697754],[-50.66492462158192,-28.337997436523438],[-50.75204849243164,-28.246370315551697],[-50.79233169555658,-28.13940811157221],[-50.85691452026367,-28.137372970580998],[-50.87733840942383,-28.038301467895508],[-50.92890167236317,-27.969102859497067],[-51.056243896484375,-27.901508331298828],[-51.05212402343749,-27.870363235473633],[-51.19077301025385,-27.777196884155273],[-51.27401351928705,-27.749540328979492],[-51.316562652587834,-27.674728393554688],[-51.41927337646479,-27.653961181640625],[-51.47780609130853,-27.57012176513672],[-51.58647155761719,-27.56099510192871],[-51.70337295532221,-27.483129501342717],[-51.79835891723627,-27.491056442260682],[-51.938747406005746,-27.4439697265625],[-52.040733337402344,-27.345130920410156],[-52.121402740478516,-27.303432464599553],[-52.21265029907226,-27.330820083618104],[-52.27434921264648,-27.30296516418457],[-52.676265716552734,-27.246650695800778],[-52.77402114868164,-27.20727539062494],[-52.969322204589844,-27.215679168701115],[-53.003429412841676,-27.13342857360834],[-53.12996673583979,-27.17852592468256],[-53.29301071166992,-27.139888763427734],[-53.38312911987305,-27.096420288085934],[-53.41115188598632,-27.14082717895502],[-53.52663421630859,-27.19626045227045],[-53.666599273681584,-27.1622314453125],[-53.748844146728516,-27.190977096557617],[-53.830329895019474,-27.170944213867127],[-53.67757034301752,-26.924072265625],[-53.66417694091797,-26.86813163757313],[-53.74619674682617,-26.745418548583928],[-53.741111755371094,-26.641704559326172],[-53.685997009277344,-26.441516876220703],[-53.68484878540039,-26.336620330810543],[-53.62553405761719,-26.336759567260742],[-53.598972320556584,-26.257482528686467],[-53.49715423583984,-26.302829742431584],[-53.385261535644474,-26.2462158203125],[-53.30590057373041,-26.25975227355951],[-53.09056854248041,-26.390493392944332],[-52.99029159545898,-26.347829818725586],[-52.67854309082031,-26.352676391601562],[-52.59408187866205,-26.41533851623535],[-52.522830963134766,-26.400615692138672],[-52.46500015258788,-26.437599182128793],[-52.304996490478516,-26.44073867797846],[-52.112220764160035,-26.47606086730951],[-52.01119232177729,-26.566549301147404],[-51.87356185913086,-26.60023498535156],[-51.665019989013615,-26.566080093383732],[-51.46816635131836,-26.62204360961914],[-51.435302734374886,-26.68812179565424],[-51.28337097167963,-26.653989791870114],[-51.22402954101557,-26.593345642089844],[-51.298721313476506,-26.419946670532227],[-51.243034362792905,-26.324710845947262],[-51.000427246093636,-26.230480194091797],[-50.9091682434082,-26.284881591796818],[-50.70163726806634,-26.184431076049748],[-50.591636657714844,-26.022132873535156],[-50.45967864990228,-26.027074813842717],[-50.361431121826115,-26.094709396362305],[-50.38859176635742,-26.152362823486328],[-50.28460311889637,-26.30893707275385],[-50.18804931640624,-26.273069381713867],[-50.14401245117182,-26.200197219848633],[-50.189247131347656,-26.091751098632812],[-49.993503570556584,-26.011623382568356],[-49.86547088623047,-26.03514289855957],[-49.645641326904176,-26.209596633911076],[-49.555034637451115,-26.237325668334957],[-49.4591064453125,-26.162729263305664],[-49.3874168395996,-26.15595626831049],[-49.17522811889648,-26.001844406127926],[-48.99809646606434,-26.011821746826172],[-48.960723876953125,-25.98102569580078],[-48.6003532409668,-25.979583740234375],[-48.61041641235346,-26.064306259155273],[-48.58458328247059,-26.173194885253906],[-48.504581451416016,-26.23597335815424],[-48.58874893188471,-26.398473739624023],[-48.598751068115234,-26.459583282470703],[-48.67736053466791,-26.60458374023426],[-48.675140380859375,-26.75625038146967],[-48.63263702392572,-26.84458351135254],[-48.633472442626896,-26.985694885253906],[-48.571529388427734,-27.015693664550724],[-48.612640380859375,-27.097360610961857],[-48.58569335937494,-27.14458274841303],[-48.61597061157226,-27.28847312927246],[-48.525417327880795,-27.339307785034123],[-48.561805725097656,-27.417083740234318],[-48.64597320556635,-27.48763656616211],[-48.6070823669433,-27.56958389282221],[-48.65930557250976,-27.64652633666992],[-48.62930679321278,-27.689861297607365],[-48.622917175292855,-27.81708335876465],[-48.58069610595703,-27.9012508392334],[-48.631805419921875,-27.991249084472653],[-48.608196258544865,-28.062084197997933],[-48.66041564941406,-28.230417251586914],[-48.76597213745106,-28.4637508392334],[-48.7551383972168,-28.510414123535153]]],[[[-58.880996704101506,-2.230698108673096],[-58.78485488891595,-2.263783931732121],[-58.73013305664057,-2.347038984298706],[-58.61033248901361,-2.295039892196655],[-58.56169128417962,-2.319912910461426],[-58.45945739746088,-2.302951097488403],[-58.364166259765625,-2.340750932693425],[-58.33905029296874,-2.40510702133173],[-58.17984390258783,-2.576024055480843],[-58.01646041870117,-2.653731107711735],[-57.938423156738274,-2.620711088180485],[-57.93418502807611,-2.72746300697321],[-57.95814132690424,-2.79679894447321],[-58.04008483886719,-2.807538032531738],[-58.110351562499886,-2.859220027923584],[-58.179023742675774,-2.750073909759465],[-58.195510864257756,-2.66473388671875],[-58.30434036254883,-2.611609935760498],[-58.45517730712885,-2.652472972869759],[-58.503234863281186,-2.702739000320377],[-58.68451309204101,-2.663264036178532],[-58.78046798706048,-2.588226079940739],[-58.84976577758789,-2.602458953857422],[-58.9881134033202,-2.560648918151855],[-59.08237075805664,-2.575264930724984],[-59.19425582885742,-2.471970081329232],[-59.172931671142514,-2.385824918746891],[-59.10951995849598,-2.297424077987671],[-58.880996704101506,-2.230698108673096]]]]},"properties":{"ID_0":33,"ISO":"BR-SC","NAME_0":"Brazil","ID_1":25,"NAME_1":"Santa Catarina","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Santa Catharina"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-36.3912506103515,-10.501435279846078],[-36.528751373291016,-10.540417671203556],[-36.80902862548828,-10.705971717834416],[-36.94819259643549,-10.84402847290039],[-37.27597045898432,-11.313195228576603],[-37.31819534301758,-11.425416946411131],[-37.453472137451115,-11.519860267639103],[-37.54513931274414,-11.54747009277338],[-37.61129379272455,-11.650357246398924],[-37.671234130859375,-11.672359466552734],[-37.67018127441406,-11.564008712768498],[-37.81365585327143,-11.51431274414051],[-37.8679237365722,-11.442428588867186],[-37.96784591674805,-11.390617370605353],[-38.00328826904297,-11.28950309753418],[-37.98110198974609,-11.199104309081974],[-38.072307586669865,-11.152892112731932],[-38.111526489257805,-11.009933471679686],[-38.17595672607416,-10.985304832458494],[-38.24000549316406,-10.880989074707031],[-38.211856842041016,-10.709162712097111],[-38.05820465087885,-10.708579063415527],[-37.99977111816406,-10.764384269714299],[-37.81383514404297,-10.69104957580555],[-37.83033370971679,-10.58470439910883],[-37.81295776367187,-10.50849437713623],[-37.8590202331543,-10.426471710205078],[-37.83060073852539,-10.374975204467717],[-37.73606872558594,-10.33335113525385],[-37.77428436279291,-10.144798278808592],[-37.83168792724604,-10.00092601776123],[-37.967998504638665,-9.962568283081055],[-37.99764251708979,-9.910760879516602],[-37.97256469726557,-9.814451217651367],[-38.02811050415039,-9.776082038879393],[-38.03981399536133,-9.686598777770996],[-38.00691604614258,-9.651735305786076],[-38.04032516479492,-9.573088645935057],[-38.003326416015625,-9.515005111694336],[-37.88607406616199,-9.550169944763127],[-37.785133361816406,-9.638580322265625],[-37.711666107177734,-9.631301879882812],[-37.58171844482416,-9.733977317810059],[-37.41886520385731,-9.762598991394041],[-37.28530502319336,-9.830959320068303],[-37.226463317871094,-9.899447441101074],[-37.1528434753418,-9.900853157043455],[-37.0377311706543,-9.989083290100098],[-36.968685150146484,-9.992102622985783],[-36.954299926757756,-10.07064437866211],[-36.836849212646484,-10.202178001403809],[-36.68416976928711,-10.274503707885742],[-36.642982482910156,-10.252683639526367],[-36.5667839050293,-10.332721710205078],[-36.56361389160145,-10.417773246765137],[-36.431404113769474,-10.424283981323185],[-36.3912506103515,-10.501435279846078]]]},"properties":{"ID_0":33,"ISO":"BR-SE","NAME_0":"Brazil","ID_1":26,"NAME_1":"Sergipe","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-45.94632720947259,-10.258577346801758],[-45.8778076171875,-10.239345550536996],[-45.79369354248047,-10.267683029174748],[-45.74397659301758,-10.23996353149414],[-45.72283935546875,-10.155317306518553],[-45.6960334777832,-10.257701873779297],[-45.75107955932617,-10.351987838745059],[-45.82239913940429,-10.364042282104492],[-45.864749908447266,-10.43889141082758],[-46.024978637695256,-10.542787551879883],[-46.05942535400385,-10.593470573425293],[-46.2109260559082,-10.649677276611271],[-46.19251251220703,-10.719710350036621],[-46.2833671569823,-10.906757354736326],[-46.39888381958008,-10.994400978088377],[-46.472312927246094,-11.191190719604492],[-46.58201217651367,-11.24677944183338],[-46.615894317626896,-11.302206993103027],[-46.549259185791016,-11.380727767944279],[-46.52001190185547,-11.483555793762205],[-46.41714477539057,-11.539184570312443],[-46.31340408325184,-11.539497375488281],[-46.1870002746582,-11.606145858764648],[-46.31504821777344,-11.644654273986816],[-46.37453460693347,-11.868609428405762],[-46.28494644165039,-11.885949134826602],[-46.37356567382806,-12.015480995178164],[-46.37432098388666,-12.289812088012695],[-46.24893188476557,-12.436996459960936],[-46.15962600708008,-12.474560737609806],[-46.16061401367181,-12.528590202331486],[-46.25905990600586,-12.548623085021973],[-46.29014587402344,-12.63176441192627],[-46.26226043701166,-12.831681251525879],[-46.30473709106445,-12.94987869262684],[-46.11459732055664,-12.918439865112248],[-46.19449996948242,-12.956678390502873],[-46.36382293701166,-12.991222381591797],[-46.366142272949105,-12.864859580993596],[-46.417564392089844,-12.823479652404785],[-46.4546012878418,-12.971158981323185],[-46.75056076049799,-12.969160079955998],[-46.819644927978516,-13.002476692199705],[-47.00968551635731,-13.140827178955078],[-47.22909927368158,-13.194874763488713],[-47.32294082641596,-13.258310317993107],[-47.37768173217768,-13.230617523193303],[-47.434795379638615,-13.268231391906681],[-47.47883605957031,-13.185147285461369],[-47.56302261352539,-13.18423557281494],[-47.61793136596673,-13.104711532592772],[-47.66884613037104,-13.2094087600708],[-47.63888549804682,-13.39106273651123],[-47.678932189941406,-13.467717170715275],[-47.823936462402344,-13.311871528625488],[-47.88885116577142,-13.318043708801268],[-48.02251434326172,-13.279841423034668],[-48.15148544311517,-13.306541442871037],[-48.17388534545898,-13.148106575012207],[-48.29255294799799,-13.219557762145996],[-48.44680404663085,-13.283736228942756],[-48.47250366210932,-13.142780303955021],[-48.57861328125,-13.126596450805664],[-48.6382827758789,-13.018381118774355],[-48.73069381713867,-12.989795684814453],[-48.73652267456055,-12.921031951904297],[-48.8698387145996,-12.804408073425236],[-48.97557830810541,-12.95720386505127],[-49.1190299987793,-12.790364265441895],[-49.249465942382756,-12.902787208557015],[-49.33741378784168,-13.066299438476504],[-49.34202194213867,-13.255134582519474],[-49.36944198608393,-13.274602890014648],[-49.939369201660035,-12.956930160522461],[-50.07883834838867,-12.905943870544432],[-50.183372497558594,-12.896775245666447],[-50.31122589111328,-12.798553466796875],[-50.29567337036133,-12.68449878692627],[-50.208293914794865,-12.57303714752197],[-50.21228027343744,-12.437126159667969],[-50.36587142944336,-12.546072959899902],[-50.41859436035144,-12.62460994720459],[-50.511016845703125,-12.860708236694336],[-50.61345291137695,-12.818407058715763],[-50.62322616577143,-12.734309196472111],[-50.7064323425293,-12.609708786010742],[-50.623516082763615,-12.455289840698242],[-50.62681579589844,-12.384039878845101],[-50.678619384765625,-12.218859672546271],[-50.66756439208978,-12.064569473266602],[-50.68218231201166,-11.990894317626951],[-50.63923263549805,-11.884573936462346],[-50.686248779296875,-11.859002113342285],[-50.721534729003906,-11.731719970703068],[-50.663459777831974,-11.672493934631348],[-50.65818405151367,-11.592030525207463],[-50.740116119384766,-11.53861999511713],[-50.74200439453125,-11.454914093017576],[-50.65436553955078,-11.218374252319336],[-50.65796279907215,-11.128582954406738],[-50.6094017028808,-11.06746768951416],[-50.63289260864258,-10.935950279235783],[-50.621952056884766,-10.839422225952092],[-50.5705337524414,-10.752511978149414],[-50.60339736938471,-10.660944938659668],[-50.51967239379877,-10.562488555908203],[-50.516025543212834,-10.505141258239746],[-50.423145294189396,-10.330657005310002],[-50.38262939453119,-10.222892761230469],[-50.39209365844726,-10.134040832519474],[-50.31239700317383,-10.04567241668701],[-50.22717285156244,-9.84562969207758],[-50.089508056640625,-9.54570484161377],[-50.10528182983393,-9.475420951843205],[-50.05278015136719,-9.37268352508539],[-50.05070114135742,-9.313079833984375],[-49.90763854980469,-9.173836708068848],[-49.842533111572266,-9.027338027954045],[-49.684303283691406,-8.856487274169865],[-49.59235763549805,-8.839503288268986],[-49.40983200073242,-8.580012321472111],[-49.3493537902832,-8.418390274047852],[-49.283267974853516,-8.379569053649902],[-49.215801239013615,-8.194225311279297],[-49.162723541259766,-7.900545120239257],[-49.160686492919865,-7.791382789611704],[-49.3415908813476,-7.657280921935977],[-49.381759643554574,-7.566677093505859],[-49.37794494628895,-7.496460914611816],[-49.23142242431635,-7.325801849365233],[-49.18523025512695,-7.235185146331729],[-49.20944595336914,-6.925416946411133],[-49.11521911621094,-6.869965076446533],[-49.018829345703125,-6.784226894378662],[-48.81413650512695,-6.751779079437198],[-48.651908874511605,-6.639966011047362],[-48.66430282592768,-6.570587158203125],[-48.613101959228516,-6.453744888305664],[-48.5001602172851,-6.350944995880127],[-48.41199493408203,-6.306081771850586],[-48.43637847900379,-6.193415164947453],[-48.2831077575683,-6.081573963165282],[-48.3214111328125,-5.985517024993783],[-48.2315788269043,-5.946154117584115],[-48.29172134399413,-5.833617210388127],[-48.272491455078125,-5.725509166717529],[-48.17426300048828,-5.70923614501953],[-48.138099670410156,-5.602708816528263],[-48.30065536499018,-5.523021221160832],[-48.3934593200683,-5.394231796264592],[-48.51070022583008,-5.429666042327881],[-48.62907028198242,-5.410074234008732],[-48.75510025024402,-5.349186897277775],[-48.679386138916016,-5.305838108062687],[-48.6060791015625,-5.336520195007324],[-48.51940917968744,-5.192152023315372],[-48.3638572692871,-5.168396949767953],[-48.1784934997558,-5.260793209075871],[-48.07922363281244,-5.275046825408879],[-48.003093719482365,-5.234705924987736],[-47.88551712036127,-5.260717868804875],[-47.82748794555664,-5.386606216430607],[-47.742176055908146,-5.381310939788818],[-47.6185684204101,-5.459743022918701],[-47.55531692504882,-5.465753078460637],[-47.48320770263672,-5.564914226531982],[-47.493324279785156,-5.730547904968262],[-47.442234039306584,-5.830804824829102],[-47.44791030883789,-5.992932796478215],[-47.41654586791992,-6.177840232849121],[-47.37876892089844,-6.270872116088867],[-47.498592376708984,-6.671247959136963],[-47.50698852539057,-6.872023105621337],[-47.54631423950184,-7.014830112457218],[-47.66032409667969,-7.151381969451904],[-47.745079040527344,-7.162519931793212],[-47.7354888916015,-7.218334197998047],[-47.6517219543457,-7.300271034240723],[-47.58905029296875,-7.264108180999641],[-47.49973678588867,-7.293870925903264],[-47.49790573120117,-7.479200839996338],[-47.38204574584961,-7.5999817848205],[-47.38185501098633,-7.654075145721436],[-47.261268615722656,-7.748301029205265],[-47.2235107421875,-7.826710224151611],[-47.14274597167969,-7.894848823547307],[-47.043453216552734,-8.053603172302246],[-46.99737548828119,-8.067242622375488],[-46.882617950439396,-7.964091777801513],[-46.80009841918945,-7.95543622970581],[-46.708400726318295,-7.909939765930175],[-46.604621887206974,-7.896190166473389],[-46.492080688476555,-7.981707096099854],[-46.47036743164057,-8.084755897521973],[-46.51458740234374,-8.167078018188477],[-46.48751068115229,-8.199920654296875],[-46.54458236694335,-8.319337844848576],[-46.63518524169922,-8.319332122802734],[-46.78238296508789,-8.368098258972111],[-46.8469352722168,-8.532048225402832],[-46.91264724731445,-8.591856956481934],[-46.886898040771484,-8.686503410339355],[-46.931228637695305,-8.726763725280705],[-46.90275573730463,-8.8145494461059],[-46.99250030517572,-8.879414558410588],[-47.05767822265625,-9.05296516418457],[-46.94295120239258,-9.064485549926756],[-46.9262580871582,-9.134954452514648],[-46.861064910888615,-9.14643383026123],[-46.81956481933594,-9.211627006530703],[-46.812870025634766,-9.305959701538086],[-46.75862503051758,-9.38122940063465],[-46.665924072265625,-9.39193153381342],[-46.62754058837884,-9.465735435485838],[-46.573204040527344,-9.47777271270752],[-46.57925415039057,-9.584088325500431],[-46.64273452758789,-9.741473197936955],[-46.51210021972656,-9.798994064331055],[-46.47285079956049,-9.877449035644531],[-46.47753524780262,-9.988312721252441],[-46.443836212158146,-10.07758712768549],[-46.32747268676758,-10.18370342254633],[-46.202030181884766,-10.173930168151855],[-46.164592742919915,-10.212915420532225],[-46.02317047119135,-10.183390617370605],[-46.01767349243153,-10.240401268005371],[-45.94632720947259,-10.258577346801758]]]},"properties":{"ID_0":33,"ISO":"BR-TO","NAME_0":"Brazil","ID_1":27,"NAME_1":"Tocantins","TYPE_1":"Estado","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/china.geojson b/superset/assets/visualizations/countries/china.geojson new file mode 100644 index 0000000000000..c820f185b3af0 --- /dev/null +++ b/superset/assets/visualizations/countries/china.geojson @@ -0,0 +1,33 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.63211059570311,31.139343261718803],[119.6291732788087,31.021799087524524],[119.554443359375,30.889356613159123],[119.57026672363315,30.838838577270565],[119.41265869140635,30.647205352783484],[119.3431854248048,30.67206382751476],[119.23678588867232,30.551254272460934],[119.32295989990246,30.53394317626976],[119.32678985595727,30.37599563598644],[119.20927429199241,30.29532051086443],[119.05308532714865,30.308387756347773],[118.94409942626952,30.363153457641882],[118.87991333007834,30.32014274597196],[118.86558532714855,30.10835075378418],[118.89150238037132,29.951297760009762],[118.74845886230491,29.83928489685064],[118.72238159179733,29.7166423797608],[118.57234954833984,29.635986328125053],[118.47203063964844,29.506912231445426],[118.30193328857422,29.477258682251147],[118.18945312500023,29.39522171020536],[118.1384963989259,29.49219703674339],[118.00888824462902,29.57979393005371],[117.87139892578125,29.548921585083125],[117.70237731933605,29.5515861511231],[117.64278411865244,29.617582321166992],[117.53356170654297,29.60194969177246],[117.449600219727,29.751541137695312],[117.33312988281283,29.850299835205135],[117.24764251708984,29.83720207214384],[117.21170806884788,29.929412841796985],[117.12251281738293,29.89785194396973],[117.1075592041018,29.714485168457202],[116.99089813232432,29.685926437377987],[116.83589935302734,29.573484420776534],[116.70677947998045,29.587591171264588],[116.6518249511722,29.688985824585018],[116.8073425292971,29.814264297485465],[116.89521026611362,29.952171325683594],[116.67045593261764,30.074922561645565],[116.58567047119142,30.05631828308111],[116.54703521728537,29.917903900146655],[116.4651412963867,29.900489807128906],[116.27577972412121,29.791370391845756],[116.12962341308592,29.824850082397575],[116.06858062744139,29.972360610962028],[116.0590591430664,30.209255218505916],[115.87910461425791,30.385009765625057],[115.90872955322298,30.517946243286133],[115.76095581054686,30.674276351928942],[115.83775329589854,30.839673995971737],[116.00116729736374,30.94951629638672],[115.87502288818358,31.144224166870117],[115.75873565673872,31.12035369873058],[115.6955490112307,31.20327758789068],[115.55741119384766,31.159700393676868],[115.36437225341831,31.40503883361816],[115.37071228027344,31.501697540283487],[115.48127746582043,31.612388610839897],[115.49180603027344,31.67566680908203],[115.67327880859398,31.782377243041935],[115.87413024902388,31.77674865722656],[115.90435791015625,31.8200187683106],[115.93076324462913,32.16601943969732],[115.88243865966797,32.419975280761776],[115.82931518554733,32.526969909668026],[115.61597442626953,32.410995483398494],[115.53920745849655,32.42340850830084],[115.40228271484375,32.552547454833984],[115.19152832031249,32.59048080444353],[115.17764282226598,32.796249389648665],[115.13391113281261,32.8995246887207],[114.9339981079106,32.93647766113287],[114.88988494873068,33.08601379394537],[115.10659027099632,33.08357620239258],[115.2856903076174,33.13598632812506],[115.35664367675805,33.32394409179682],[115.30757141113281,33.43203735351574],[115.40752410888672,33.55921554565424],[115.63195037841808,33.58683776855469],[115.59094238281263,33.72902297973633],[115.6263122558596,33.8379364013673],[115.5492858886721,33.89166641235346],[115.59432983398482,34.033966064453175],[115.72204589843751,34.08029937744146],[115.85777282714855,34.00820159912115],[115.95223236083984,34.00925445556634],[115.97711944580101,33.91727066040039],[116.1498565673828,33.711246490478516],[116.36834716796888,33.78225708007824],[116.43643951416027,33.85443878173828],[116.56187438964866,33.90975570678722],[116.63354492187501,33.98846435546869],[116.5594177246096,34.09311294555664],[116.51093292236327,34.297325134277344],[116.38353729248071,34.28071594238281],[116.17365264892611,34.431613922119254],[116.18591308593749,34.57946777343756],[116.36860656738281,34.64086914062506],[116.61669921875,34.48976135253906],[116.72081756591807,34.477474212646484],[116.82304382324264,34.39001083374035],[116.91522979736362,34.40842437744152],[117.01844024658203,34.17945861816412],[117.18663024902355,34.07017898559582],[117.34713745117199,34.09105300903326],[117.40442657470703,34.02824020385742],[117.50904083251953,34.06224822998058],[117.57020568847666,33.98442840576183],[117.75293731689489,33.88705825805675],[117.72579956054699,33.72898101806646],[117.93129730224608,33.73094177246105],[118.11162567138695,33.76447296142584],[118.16163635253918,33.713794708252],[117.96639251708984,33.28302764892584],[118.0342712402347,33.14204406738281],[118.20837402343749,33.19346237182623],[118.25928497314463,32.94922637939459],[118.24067687988281,32.84984970092785],[118.36602020263673,32.72114562988287],[118.70691680908226,32.72151565551775],[118.74137878417969,32.85739898681635],[118.84521484375045,32.95954895019537],[119.00771331787155,32.96199798584007],[119.11176300048827,32.824146270751946],[119.17800140380871,32.83283233642578],[119.21438598632812,32.63367843627935],[119.12901306152366,32.49342727661133],[118.71678161621092,32.61086273193365],[118.55628967285168,32.56743240356445],[118.68303680419945,32.476543426513956],[118.65695190429732,32.22014617919933],[118.50152587890636,32.196231842041186],[118.49331665039072,32.125400543213175],[118.38770294189487,32.083293914795036],[118.36409759521483,31.937202453613338],[118.4591293334962,31.87640190124506],[118.48813629150413,31.78578758239757],[118.68673706054686,31.71233558654785],[118.67173767089844,31.64154243469238],[118.85961151123047,31.624330520629996],[118.8759994506836,31.451343536377234],[118.70227050781249,31.30001449584961],[118.78681945800804,31.232364654541072],[119.08900451660156,31.237642288208065],[119.15931701660166,31.300914764404236],[119.47254943847669,31.15841674804693],[119.63211059570311,31.139343261718803]]]},"properties":{"ID_0":49,"ISO":"CN-34","NAME_0":"China","ID_1":1,"NAME_1":"Anhui","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"安徽|安徽","VARNAME_1":"Ānhuī"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[117.37973785400412,40.22687149047863],[117.3344192504884,40.14122009277344],[117.19398498535168,40.08278274536133],[117.0112533569337,40.03260803222667],[116.83486938476608,40.04358673095703],[116.75610351562511,39.966316223144524],[116.77923583984408,39.90305328369146],[116.91946411132811,39.84259796142584],[116.89429473876953,39.69630813598633],[116.79938507080122,39.610008239746094],[116.599464416504,39.62915420532221],[116.34479522705078,39.44854354858398],[116.13475799560547,39.56499862670904],[115.92529296875011,39.59505462646496],[115.75010681152365,39.5117301940918],[115.6816635131838,39.599796295166016],[115.56856536865256,39.59565353393555],[115.46726226806652,39.67020416259777],[115.53909301757812,39.797416687011776],[115.4408187866211,40.02623367309582],[115.67327880859398,40.13534545898443],[115.82250213623057,40.140216827392635],[115.95513153076172,40.261817932128956],[115.72922515869152,40.50187301635748],[115.90907287597655,40.61767959594738],[115.9893035888673,40.5810317993164],[116.10874938964855,40.62240600585932],[116.24459075927746,40.787345886230575],[116.45445251464842,40.79011154174816],[116.45097351074232,40.97891235351562],[116.66688537597666,40.97671127319336],[116.71550750732433,40.9009628295899],[116.83230590820312,40.840320587158146],[116.99423217773438,40.692958831787166],[117.13343048095736,40.70161437988281],[117.32102966308616,40.6551971435548],[117.29975891113315,40.5773315429688],[117.1950912475586,40.49690246582025],[117.26734161376952,40.307861328125114],[117.37973785400412,40.22687149047863]]]},"properties":{"ID_0":49,"ISO":"CN-11","NAME_0":"China","ID_1":2,"NAME_1":"Beijing","TYPE_1":"Zhíxiáshì","ENGTYPE_1":"Municipality","NL_NAME_1":"北京|北京","VARNAME_1":"Běijīng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.57660675048832,31.733167648315373],[109.71514129638666,31.71221542358404],[109.74819946289062,31.615152359008903],[109.93403625488287,31.5234375],[110.05512237548832,31.41599845886231],[110.13822174072283,31.395578384399474],[110.19042968750028,31.150600433349723],[110.1156921386718,31.0982990264892],[110.16403198242193,30.986728668213004],[110.0757064819336,30.804096221923825],[109.89366149902355,30.89163589477539],[109.77353668212908,30.85263252258295],[109.63980102539057,30.716789245605412],[109.44674682617216,30.61709213256847],[109.37458801269537,30.51461982727062],[109.31575012207026,30.62170791625971],[109.1465530395509,30.53647994995117],[109.11232757568365,30.649772644043026],[108.95596313476568,30.6227264404298],[108.81961822509793,30.49818611145025],[108.72857666015648,30.500770568847713],[108.68711090087908,30.589031219482703],[108.55462646484396,30.47736167907709],[108.4205703735352,30.488988876342884],[108.40393829345709,30.37798500061041],[108.5693817138673,30.25385475158697],[108.5248107910158,30.07951164245605],[108.51653289794949,29.870521545410153],[108.38242340087896,29.854690551757812],[108.45027160644537,29.74233245849626],[108.58754730224626,29.858566284179744],[108.65667724609398,29.85115242004394],[108.67495727539068,29.69368362426763],[108.86813354492205,29.639493942260742],[108.86643981933594,29.44981193542486],[108.97126770019543,29.33089637756376],[109.1050109863283,29.36424255371105],[109.10571289062528,29.21516799926786],[109.22859954834001,29.12245559692388],[109.30027770996105,29.06493949890148],[109.231986999512,28.878896713256896],[109.26481628417963,28.668857574462944],[109.31582641601568,28.593660354614315],[109.2702026367189,28.503477096557617],[109.14983367919939,28.41257667541521],[109.12706756591825,28.309810638427678],[108.99082183837896,28.164127349853516],[108.8902816772461,28.22181892395031],[108.7324829101562,28.235145568847823],[108.77052307128912,28.42908668518072],[108.70655059814446,28.49793052673357],[108.6484375,28.33459281921415],[108.56976318359386,28.532268524169922],[108.63294982910173,28.627798080444446],[108.5006103515625,28.62965011596691],[108.3372192382813,28.67733383178722],[108.37995147705107,28.774686813354663],[108.29673004150396,29.045576095581055],[108.06352233886747,29.085281372070312],[107.86163330078124,28.96476745605491],[107.78807830810551,29.054252624511776],[107.80016326904291,29.1391220092774],[107.58477020263678,29.171329498291126],[107.56458282470732,29.21846580505382],[107.4031372070313,29.15673255920416],[107.36511230468744,29.014030456543022],[107.43206787109392,28.95671463012701],[107.38453674316418,28.85697364807123],[107.22039794921875,28.781482696533317],[107.11875152587895,28.89333152770996],[107.01056671142595,28.887796401977592],[106.81733703613298,28.741485595703235],[106.86291503906266,28.640344619750977],[106.7222518920899,28.533971786498967],[106.58585357666021,28.509456634521598],[106.63005828857422,28.614978790283146],[106.51525878906249,28.797227859497184],[106.50330352783207,28.620204925537337],[106.37358093261741,28.530485153198356],[106.24774932861357,28.799732208252006],[106.2549667358399,28.85392951965326],[106.11216735839838,28.899961471557734],[105.98811340332037,28.980567932128906],[105.79991149902355,28.94122695922857],[105.71887207031244,29.111965179443413],[105.69621276855486,29.27216911315918],[105.44914245605497,29.29393959045421],[105.43341064453124,29.40216636657726],[105.32424926757807,29.44178199768083],[105.28674316406256,29.54547691345215],[105.3824691772461,29.66498756408691],[105.56726074218767,29.739044189453235],[105.61170959472672,29.838090896606555],[105.72458648681634,29.856422424316406],[105.73922729492216,30.027923583984602],[105.59475708007812,30.11006927490251],[105.55877685546879,30.184236526489315],[105.61416625976557,30.266138076782397],[105.71224212646484,30.31063270568848],[105.790786743164,30.42348670959467],[105.9810867309573,30.383621215820312],[106.13938140869146,30.320039749145565],[106.20210266113304,30.212610244751033],[106.35874176025419,30.234788894653605],[106.44360351562506,30.296226501465014],[106.56037902832041,30.306888580322322],[106.72501373291031,30.03719139099121],[106.8717117309572,30.02734184265142],[106.96629333496111,30.082696914672848],[107.02802276611357,30.036109924316406],[107.22763061523438,30.22743988037115],[107.36215972900412,30.470155715942663],[107.48164367675776,30.606313705444506],[107.41993713378912,30.744838714599663],[107.51068115234375,30.844881057739258],[107.86900329589855,30.808849334716797],[107.97001647949224,30.89495468139654],[107.94728088378906,30.987459182739368],[108.04972839355474,31.04863739013683],[108.009780883789,31.105787277221793],[108.08136749267577,31.195667266845703],[108.07116699218778,31.267095565795955],[108.17851257324224,31.334787368774528],[108.23023223876982,31.51310539245605],[108.31633758544938,31.51035881042492],[108.39594268798851,31.609043121337944],[108.53423309326178,31.6771068572998],[108.52720642089872,31.757961273193363],[108.28655242919916,31.929058074951172],[108.3725891113283,32.18421173095708],[108.51454925537115,32.21204376220708],[108.67336273193354,32.10984039306646],[108.74031066894524,32.10990524291998],[108.88356018066423,31.99667358398437],[109.0261383056641,31.96888732910162],[109.27275848388678,31.801454544067436],[109.28453063964844,31.718706130981726],[109.57660675048832,31.733167648315373]]]},"properties":{"ID_0":49,"ISO":"CN-50","NAME_0":"China","ID_1":3,"NAME_1":"Chongqing","TYPE_1":"Zhíxiáshì","ENGTYPE_1":"Municipality","NL_NAME_1":"重慶|重庆","VARNAME_1":"Chóngqìng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[118.17513275146506,24.664859771728455],[118.0943069458009,24.562360763549805],[118.19346618652389,24.527639389038086],[118.13236236572264,24.42374992370611],[117.92402648925814,24.47376060485851],[117.90513610839854,24.39402961730957],[118.05680847167967,24.41208267211925],[118.13458251953138,24.274860382080075],[117.96569061279308,24.204860687255856],[117.89847564697301,24.100694656372127],[117.69071197509778,24.01263999938965],[117.7062530517578,23.952083587646428],[117.62458038330111,23.855419158935547],[117.56069183349608,23.914861679077205],[117.44319152832065,23.78625106811529],[117.27041625976561,23.737922668457088],[117.18708038330077,23.618192672729492],[117.04617309570335,23.703323364257812],[116.96311950683594,23.910654067993107],[116.97557067871116,23.99999809265148],[116.92113494873058,24.077205657958928],[116.98881530761719,24.181470870971733],[116.93659210205111,24.21686744689947],[116.90676879882857,24.365011215210018],[116.84346771240244,24.476814270019588],[116.75096893310545,24.55849838256836],[116.72196197509777,24.66570281982433],[116.50968933105469,24.654195785522575],[116.40973663330088,24.746484756469727],[116.21189117431652,24.852706909179684],[116.0665893554692,24.852714538574276],[116.02613067626976,24.89831924438471],[115.87726593017578,24.93583488464361],[115.90413665771494,25.085796356201286],[115.85150909423862,25.213085174560547],[116.00704193115246,25.325311660766715],[115.9896240234375,25.470994949340934],[116.05012512207054,25.55576896667486],[116.05081939697301,25.69052124023449],[116.13201141357466,25.767911911010856],[116.1324615478519,25.870069503784237],[116.29248809814487,25.924467086792276],[116.42035675048838,26.07698249816906],[116.38374328613293,26.24109077453613],[116.59362030029297,26.489250183105522],[116.56420135498068,26.64577484130859],[116.51040649414085,26.72442436218273],[116.54402160644531,26.84349822998058],[116.67462158203148,26.98192405700695],[116.94204711914085,27.04147338867199],[117.16455841064453,27.29821205139166],[117.09513092041016,27.539754867553768],[117.01541137695312,27.565883636474894],[117.02031707763683,27.66392326354986],[117.19828033447298,27.688455581665096],[117.29500579833983,27.77881813049316],[117.28168487548828,27.875072479248157],[117.47182464599608,27.938741683959957],[117.7354660034182,27.806995391845817],[117.78416442871104,27.89917182922363],[117.92820739746104,27.972093582153377],[118.08811187744139,28.011186599731502],[118.14241027832043,28.066223144531303],[118.3367843627933,28.096084594726502],[118.42427062988293,28.292282104492244],[118.47968292236327,28.242441177368335],[118.60340881347666,28.257303237914982],[118.69368743896483,28.310081481933707],[118.8037033081058,28.229173660278377],[118.79248046874999,28.123294830322266],[118.7124252319337,28.06279945373535],[118.72288513183592,27.978706359863338],[118.82616424560547,27.88200569152832],[118.8965301513673,27.65051651000982],[118.86888122558604,27.537115097045955],[118.91139221191452,27.46161270141596],[119.00635528564476,27.50000953674322],[119.1194076538086,27.442722320556584],[119.23970794677746,27.424690246582145],[119.3717727661135,27.53801727294922],[119.46971893310558,27.542411804199215],[119.55113983154308,27.67979621887207],[119.70047760009778,27.51910972595215],[119.73795318603514,27.367782592773494],[119.87128448486328,27.305782318115178],[120,27.382801055908317],[120.24364471435558,27.434686660766598],[120.3465499877933,27.395959854126144],[120.43459320068382,27.17173385620117],[120.25402832031261,27.043750762939453],[120.23319244384811,26.9348602294923],[120.10902404785202,26.924583435058707],[120.04429626464844,26.82681083679205],[120.11292266845703,26.772079467773665],[120.09874725341795,26.62625122070324],[119.95486450195324,26.609861373901367],[120.03291320800825,26.76041984558111],[119.92457580566452,26.771251678466854],[119.89653015136741,26.662359237671126],[119.79902648925803,26.720140457153434],[119.66541290283213,26.73068809509283],[119.61096954345713,26.640420913696403],[119.71958160400402,26.615695953369084],[119.81540679931639,26.478202819824276],[119.7229232788088,26.444860458374194],[119.83429718017577,26.331251144409233],[119.7193069458009,26.277362823486325],[119.51568603515636,26.082920074463175],[119.71235656738315,26.01152992248541],[119.61875152587889,25.89264106750488],[119.59541320800791,25.689861297607536],[119.47597503662155,25.642360687255973],[119.4979171752931,25.56541824340826],[119.59319305419922,25.532085418701282],[119.57791900634766,25.432918548584098],[119.46375274658226,25.458194732666016],[119.3626403808595,25.527639389038086],[119.24847412109385,25.483472824096737],[119.15013885498068,25.39931106567388],[119.36180877685547,25.26791763305675],[119.26875305175781,25.175970077514705],[119.14013671875011,25.167360305786246],[119.0740280151367,25.236810684204215],[118.84402465820324,25.090974807739254],[118.91347503662132,24.960971832275447],[118.87152862548874,24.89680480957037],[118.66347503662108,24.800695419311637],[118.77569580078124,24.753469467163086],[118.68875122070337,24.66653060913097],[118.6662521362307,24.57736206054699],[118.48568725585949,24.63013839721691],[118.1945800781251,24.56708335876465],[118.17513275146506,24.664859771728455]]]},"properties":{"ID_0":49,"ISO":"CN-35","NAME_0":"China","ID_1":4,"NAME_1":"Fujian","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"福建","VARNAME_1":"Fújiàn"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[97.18472290039067,42.7716903686524],[97.84020996093766,41.65574645996099],[97.62551116943365,41.4967422485351],[97.6553421020509,41.40597915649419],[97.96666717529313,41.10291290283203],[98.33477020263666,40.91304779052745],[98.36934661865233,40.83678436279308],[98.25740051269537,40.52898025512701],[98.63681793212896,40.53940200805664],[98.84620666503912,40.73659515380865],[99.17937469482439,40.86471176147472],[99.56833648681646,40.84878921508795],[99.68782043457043,40.932682037353516],[100.01584625244169,40.90642547607422],[100.11625671386736,40.86449813842785],[100.22425079345703,40.72631454467773],[100.2417984008789,40.605705261230526],[100.0199279785158,40.39704895019537],[99.90689849853537,40.21214675903326],[99.61937713623064,40.06402969360346],[99.46066284179699,39.87522506713867],[99.76493835449219,39.88597488403326],[100.02754974365251,39.735771179199276],[100.25063323974615,39.687465667724716],[100.33266448974636,39.51032638549799],[100.50340270996105,39.47748565673828],[100.49961090087885,39.398361206054744],[100.837646484375,39.40134811401373],[100.82853698730491,39.21221923828131],[100.86227416992193,39.10592269897472],[101.00997161865261,38.95734024047863],[101.18752288818365,38.967781066894474],[101.32752227783207,38.78275299072277],[101.53044128417991,38.72551727294933],[101.61688232421903,38.66196441650396],[101.77305603027366,38.665138244628906],[102.08049011230474,38.89690017700207],[101.81523132324224,39.102142333984425],[102.20078277587906,39.17051696777355],[102.45579528808611,39.2540397644043],[102.60748291015625,39.18165969848644],[103.012504577637,39.10509109497075],[103.13194274902338,39.20756149291998],[103.36135101318388,39.34606933593749],[103.83745574951166,39.458847045898494],[103.94136810302763,39.46476364135742],[104.09106445312504,39.41781616210943],[104.05253601074224,39.297470092773494],[104.20571136474615,39.09294891357422],[104.17420959472679,38.94146347045904],[104.03190612792974,38.89115905761718],[103.87630462646489,38.64512252807628],[103.41771697998047,38.41262435913097],[103.47286224365239,38.34653854370123],[103.54444885253933,38.155284881591854],[103.36228942871122,38.09072113037115],[103.40696716308588,37.85186767578131],[103.66897583007818,37.78575134277355],[103.8916397094726,37.591625213623104],[104.17815399169939,37.40818786621094],[104.2790756225586,37.428287506103516],[104.47420501708984,37.44149017333996],[104.67339324951178,37.408348083496094],[104.70060729980467,37.33039474487316],[104.59353637695307,37.273872375488224],[104.65193176269548,37.20222473144537],[104.79535675048844,37.24415588378906],[104.91059875488281,37.09955215454107],[105.03395843505875,37.01701354980469],[105.16960906982422,36.9855842590332],[105.17917633056645,36.902107238769645],[105.27582550048845,36.86951065063482],[105.32637786865251,36.78458786010742],[105.1989974975586,36.70830535888683],[105.2446212768557,36.54238128662121],[105.35892486572293,36.49019622802734],[105.39843749999994,36.36856460571289],[105.47440338134766,36.286151885986264],[105.50463867187527,36.143032073974666],[105.32534027099638,36.01859283447277],[105.33605957031244,35.884445190429744],[105.48910522460938,35.7248649597168],[105.66387176513678,35.747375488281364],[105.7104873657226,35.65093612670904],[105.81684875488287,35.572719573974666],[105.96811676025419,35.54033279418957],[106.0878601074221,35.41488647460943],[106.2352981567385,35.40990066528332],[106.2427139282227,35.352371215820426],[106.3540344238283,35.23654556274413],[106.47063446044928,35.312320709228516],[106.50755310058588,35.438972473144645],[106.44417572021489,35.52415084838878],[106.47740173339855,35.588520050048885],[106.43910980224626,35.69412994384771],[106.54910278320341,35.74375152587901],[106.74959564208979,35.687606811523494],[106.92334747314463,35.80731201171869],[106.8548202514649,35.89708709716808],[106.93566894531273,35.945045471191406],[106.94766235351568,36.092304229736435],[106.86044311523455,36.20060348510748],[106.46853637695318,36.295066833496094],[106.51650238037121,36.454776763916016],[106.44644927978521,36.5618896484375],[106.52542114257818,36.73141479492182],[106.65255737304705,36.81812286376959],[106.57569885253905,36.94168090820318],[106.64400482177734,37.04540634155284],[106.60285949707037,37.108383178710994],[106.79940032959001,37.151260375976555],[107.02391052246111,37.11317443847661],[107.15986633300776,37.148857116699276],[107.27139282226567,37.08225250244146],[107.29496765136717,36.94154357910162],[107.47282409667997,36.90810775756847],[107.54070281982428,36.82651138305664],[107.89543151855474,36.76015853881836],[107.95442962646513,36.65525054931646],[108.15857696533219,36.56357955932623],[108.33563995361332,36.55873107910162],[108.42691802978509,36.43586730957037],[108.61451721191429,36.434116363525504],[108.71541595459007,36.352073669433594],[108.64480590820311,36.26212692260742],[108.70762634277348,36.13836288452148],[108.64005279541021,35.946445465087834],[108.50100708007818,35.895126342773494],[108.52468109130882,35.63646316528332],[108.6112289428711,35.563209533691406],[108.62655639648443,35.41919708251953],[108.57508850097685,35.308822631835994],[108.23188018798834,35.265869140625],[108.17214965820312,35.31041717529308],[107.95692443847685,35.243011474609425],[107.72364044189482,35.30328750610346],[107.69767761230474,35.19374084472656],[107.74325561523443,35.094215393066406],[107.85124969482449,35.005714416503906],[107.80170440673822,34.95686340332031],[107.57112121582047,34.971679687500114],[107.51925659179705,34.910839080810604],[107.28193664550774,34.93278884887701],[107.19623565673832,34.882575988769645],[106.91616058349608,35.09522247314458],[106.54570770263666,35.08773803710943],[106.48889160156267,34.941974639892635],[106.55184936523455,34.86247253417969],[106.54873657226572,34.75755310058594],[106.31894683837906,34.5910911560058],[106.33836364746105,34.52238464355469],[106.46202087402344,34.531536102295036],[106.71399688720703,34.37443161010742],[106.67990112304709,34.26151657104492],[106.59848022460943,34.25256347656256],[106.58864593505876,34.142406463623104],[106.49768066406267,34.10641479492193],[106.41545104980484,33.875953674316406],[106.47845458984379,33.70890808105469],[106.58400726318388,33.590778350830135],[106.53040313720732,33.50500869750988],[106.44264221191412,33.61472320556646],[106.29929351806658,33.60597229003912],[106.18309020996122,33.54811096191406],[105.95542907714844,33.6101341247558],[105.83818817138695,33.4919052124024],[105.83415222167973,33.412612915039176],[105.72897338867182,33.39280700683611],[105.74388885498064,33.300659179687614],[105.92945861816423,33.19445419311529],[105.91923522949224,33.008152008056754],[105.73158264160162,32.90739440917969],[105.58703613281278,32.87902069091797],[105.49535369873064,32.91073989868164],[105.38031768798821,32.88031768798828],[105.44912719726591,32.736293792724666],[105.14159393310553,32.59889602661133],[105.03254699707037,32.64676666259771],[104.88507843017601,32.598526000976676],[104.84946441650419,32.64872360229498],[104.64373779296892,32.661418914794865],[104.49718475341825,32.757114410400675],[104.30019378662104,32.83144378662121],[104.28546905517605,32.941749572753906],[104.38080596923834,32.99615859985346],[104.37222290039068,33.120979309082145],[104.26432800292963,33.393478393554744],[104.21485900878912,33.406211853027344],[104.15173339843756,33.545970916748104],[104.16682434082058,33.61078262329107],[104.04965972900413,33.68680572509771],[103.76624298095709,33.66038513183605],[103.59117889404325,33.71422958374035],[103.53887176513695,33.67300796508795],[103.43190765380888,33.75435256958008],[103.34721374511724,33.74501800537115],[103.15014648437506,33.811813354492294],[103.12075805664068,33.94302749633789],[103.16744232177751,34.093654632568295],[103.09801483154313,34.183258056640625],[103.00817871093767,34.18482589721674],[102.92523956298828,34.30934524536144],[102.73484802246111,34.26859283447277],[102.59779357910179,34.14724731445318],[102.4213485717774,34.08662033081055],[102.38580322265642,33.9734458923341],[102.30878448486328,33.99384307861328],[102.19335174560564,33.91864395141607],[102.3389739990235,33.72563171386713],[102.33715820312516,33.61697006225597],[102.43913269042997,33.581356048583984],[102.43972015380888,33.45528793334961],[102.3546295166016,33.393226623535156],[102.2216415405274,33.38579559326172],[102.20602416992209,33.23442459106445],[102.10443115234386,33.26874542236334],[102.05314636230463,33.19178009033203],[101.84082794189464,33.1848258972168],[101.76795959472685,33.24454116821289],[101.8753204345706,33.323116302490234],[101.93886566162121,33.44575881958007],[101.83661651611357,33.614463806152344],[101.77423095703152,33.548042297363395],[101.62786865234375,33.50222015380871],[101.61802673339872,33.60977172851568],[101.54747009277372,33.694004058838004],[101.39653778076195,33.649295806884766],[101.24060821533197,33.682319641113395],[101.10863494873064,33.85783767700201],[100.9883728027346,33.903324127197266],[100.81357574462908,34.15047836303722],[100.8104171752932,34.30268478393566],[100.90686798095703,34.38161087036144],[101.0457611083985,34.32815551757807],[101.1620864868164,34.32116317749035],[101.49298095703142,34.20014572143555],[101.6171646118164,34.184055328369084],[101.65080261230474,34.121707916259766],[101.8991088867188,34.132667541503906],[102.00997924804716,34.18645095825201],[102.0761795043948,34.28706359863287],[102.25090789794932,34.35848236083979],[102.07666015625,34.54387664794916],[102,34.54377365112316],[101.71864318847656,34.70427703857433],[101.91433715820312,34.742988586425895],[101.92398071289091,34.84535217285162],[102.00464630126982,34.950431823730526],[102.2791290283206,35.05853652954113],[102.38394927978521,35.23823928833019],[102.28775787353533,35.42110824584972],[102.44130706787126,35.43931198120117],[102.53208923339861,35.56439971923834],[102.72041320800787,35.527885437011655],[102.75676727294916,35.6146354675293],[102.68392181396501,35.76140594482422],[102.77229309082037,35.85988998413086],[102.95399475097673,35.865234375000114],[102.93271636962913,36.1076278686524],[102.99154663085932,36.265727996826286],[102.82682800292969,36.35511779785156],[102.7190246582033,36.61520385742199],[102.5953826904298,36.70555496215832],[102.72365570068365,36.766658782958984],[102.54882812500028,36.92440795898449],[102.47138214111357,36.95798873901373],[102.4861907958985,37.083602905273494],[102.59339904785179,37.15277862548828],[102.36363983154308,37.28149795532232],[102.2884216308596,37.36767578125011],[102.01169586181669,37.48405075073247],[102.07062530517584,37.55881118774419],[102,37.6074714660645],[101.97617340087896,37.74865341186534],[101.87764739990246,37.68978881835943],[101.85254669189452,37.53683853149414],[101.54251861572277,37.65631103515625],[101.11083221435553,37.935676574707145],[100.95064544677763,38.00680160522461],[100.63465881347673,38.10126113891607],[100.58907318115251,38.2494850158692],[100.33118438720696,38.31935501098644],[100.22772216796898,38.449733734130916],[100.11695098876982,38.48994064331055],[100.08118438720703,38.409706115722656],[100.16048431396479,38.328430175781364],[100.18139648437506,38.236789703369084],[99.82931518554716,38.36841583251958],[99.65830230712906,38.44895935058605],[99.44926452636736,38.603973388671925],[99.36062622070318,38.71766662597662],[99.22086334228543,38.78847503662121],[98.81810760498064,39.0838737487793],[98.75200653076195,39.07770919799815],[98.58390808105469,38.93408584594738],[98.45671844482428,38.95230484008789],[98.3831176757813,39.0286598205567],[98.09833526611334,38.81504821777344],[97.49990081787121,39.077648162841854],[97.40038299560563,39.14591217041027],[97.05175781249999,39.20782852172846],[96.9901733398438,39.17162322998058],[96.99402618408209,38.770145416259766],[96.93924713134771,38.62128067016613],[96.99226379394537,38.59049606323248],[96.95970153808622,38.338336944580135],[96.81450653076178,38.35615539550781],[96.70425415039068,38.42199707031256],[96.51573181152338,38.464706420898494],[96.52423095703148,38.534347534179744],[96.3150634765626,38.63799285888683],[96.1990356445313,38.626171112060604],[96.00000000000016,38.75643920898449],[95.89761352539061,38.77037429809575],[95.7732467651367,38.875358581543026],[95.69076538085966,38.87917327880864],[95.2647476196289,39.19168472290044],[95.15735626220703,39.17620468139648],[94.9188156127932,39.24051666259776],[94.73325347900419,39.2387809753418],[94.63012695312494,39.30706024169933],[94.28737640380854,39.306804656982536],[93.87920379638666,39.25775909423828],[93.60808563232445,39.263450622558594],[93.2477111816408,39.18296432495123],[92.97923278808616,39.1475944519043],[92.9505615234375,39.17105484008789],[92.92624664306669,39.292980194091854],[92.94313049316406,39.45827102661133],[92.87683105468778,39.54480361938488],[92.76416015624993,39.87979888916021],[92.91799163818365,40.10373306274413],[92.9138107299807,40.49829864501953],[93.35394287109392,40.47246170043945],[93.64675140380858,40.61911010742199],[93.80673980712906,40.87663650512701],[94.0770111083986,41.158325195312614],[94.41741943359403,41.391883850097656],[94.67984008789068,41.62221145629883],[95.04637145996094,41.77122879028325],[95.539115905762,41.8545875549317],[95.6865921020509,41.822109222412166],[95.8683547973634,41.843002319335994],[95.9896697998048,41.89428329467784],[96.05531311035173,42.0161972045899],[96.02552795410168,42.110931396484375],[96.09664154052763,42.59966659545893],[96.36516571044926,42.71707534790045],[96.69189453125006,42.74230957031256],[96.93282318115263,42.71215438842785],[97.18472290039067,42.7716903686524]]]},"properties":{"ID_0":49,"ISO":"CN-62","NAME_0":"China","ID_1":5,"NAME_1":"Gansu","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"甘肅|甘肃","VARNAME_1":"Gānsù"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[114.9423599243165,22.768751144409233],[114.96680450439499,22.678194046020565],[114.88403320312545,22.600421905517635],[114.75069427490257,22.598472595214897],[114.71347045898449,22.796249389648494],[114.58040618896484,22.740970611572266],[114.54514312744152,22.5715274810791],[114.61458587646518,22.502370834350586],[114.48208618164061,22.46986389160162],[114.4265289306644,22.601804733276424],[114.31180572509788,22.600973129272404],[114.04199218750011,22.505676269531246],[113.84819793701183,22.561809539795036],[113.75653076171875,22.737640380859375],[113.56125640869163,22.735420227050838],[113.64402770996105,22.640140533447322],[113.54541778564464,22.426809310913196],[113.59986114501964,22.328193664550838],[113.55158996582031,22.215900421142635],[113.51735687255882,22.17014122009277],[113.37791442871094,22.133193969726562],[113.40013885498047,22.00986099243164],[113.21679687500023,21.99208068847662],[113.00763702392588,22.097917556762695],[113.00235748291016,21.935970306396598],[112.89875030517578,21.854581832885856],[112.82736206054688,21.947639465332085],[112.74958038330111,21.923194885253906],[112.59208679199219,21.76097106933605],[112.42903137207054,21.820140838623104],[112.40180206298872,21.735139846801754],[112.26235961914085,21.702640533447322],[112.12040710449219,21.800140380859375],[111.91347503662132,21.695972442627006],[111.78597259521501,21.714309692382812],[111.76513671875028,21.619306564331055],[111.62319183349615,21.54319381713873],[111.480972290039,21.507083892822266],[111.26541900634777,21.498195648193416],[111.03152465820318,21.452083587646595],[110.88874816894526,21.387920379638725],[110.77014160156267,21.395971298217773],[110.6315307617188,21.227916717529354],[110.41541290283209,21.192920684814396],[110.3284759521485,21.1045818328858],[110.52819824218778,20.987640380859375],[110.34792327880882,20.995420455932614],[110.16652679443382,20.921527862548828],[110.20263671875027,20.84736061096197],[110.38680267333989,20.819860458374137],[110.40569305419928,20.655700683593864],[110.46485900878912,20.673194885253963],[110.5309829711914,20.481250762939567],[110.44069671630854,20.331809997558707],[110.28263854980469,20.254030227661246],[110.12625122070312,20.240695953369197],[110.0573577880861,20.29319953918457],[109.94958496093767,20.255971908569393],[109.90541839599632,20.4337482452392],[109.82041931152355,20.513200759887752],[109.75541687011736,20.757921218872127],[109.67346954345709,20.870138168335014],[109.71125030517601,21.061807632446403],[109.674858093262,21.119304656982422],[109.7681961059572,21.210971832275447],[109.77153015136723,21.324310302734432],[109.89708709716808,21.374309539794865],[109.75144195556639,21.565696716308707],[109.74053192138689,21.620956420898494],[109.89900207519543,21.657600402832145],[109.93541717529325,21.827411651611385],[110.2848434448245,21.911310195922965],[110.38186645507835,21.893510818481502],[110.34873199462919,22.093097686767635],[110.43418121337918,22.202239990234375],[110.63491821289062,22.150308609008903],[110.72112274169939,22.296020507812614],[110.70876312255864,22.437704086303654],[110.76023864746094,22.57716560363781],[111.05146789550798,22.65404129028326],[111.11331176757818,22.74464607238781],[111.21205902099626,22.750217437744254],[111.35180664062528,22.892566680908203],[111.42479705810553,23.03824806213379],[111.37277984619169,23.09476089477539],[111.35114288330078,23.287715911865348],[111.38588714599615,23.449352264404297],[111.45522308349604,23.513805389404297],[111.49916076660156,23.638370513916016],[111.6110534667968,23.645404815673825],[111.64163208007812,23.820308685302734],[111.80780029296898,23.820842742920036],[111.80680084228514,23.88875007629394],[111.92304229736355,23.968458175659237],[111.87071228027344,24.09034347534191],[111.87199401855486,24.2287921905517],[112.01347351074264,24.295175552368107],[112.05690002441429,24.365119934081974],[111.9803543090822,24.47433853149414],[111.99617767334001,24.549169540405273],[111.92090606689476,24.631265640258786],[112.0159149169923,24.73996162414545],[112.16409301757835,24.91137695312511],[112.14284515380871,25.01593017578125],[112.17819213867188,25.17727851867687],[112.39117431640636,25.142938613891715],[112.65400695800791,25.128871917724723],[112.77394866943371,24.896972656250053],[113.00085449218773,24.930334091186577],[112.96279907226574,25.160791397094723],[112.97397613525402,25.254402160644588],[112.86254882812499,25.247737884521598],[112.8527603149415,25.32934951782238],[113.01506042480479,25.348438262939567],[113.15413665771518,25.487932205200252],[113.29471588134764,25.494749069213977],[113.36460876464866,25.40072631835943],[113.53484344482455,25.365858078002873],[113.58399200439464,25.32307434082037],[113.75487518310592,25.359266281127987],[113.81206512451183,25.32813262939464],[113.89219665527365,25.43996620178217],[113.95921325683605,25.457321166992184],[114.11812591552733,25.312196731567383],[114.23008728027344,25.290590286254996],[114.3857650756836,25.319406509399528],[114.52974700927734,25.418529510498104],[114.732002258301,25.236312866210994],[114.64369201660179,25.077552795410156],[114.39031982421875,24.952095031738338],[114.39538574218761,24.877853393554688],[114.27632904052757,24.70924568176281],[114.16944885253906,24.673164367675724],[114.35216522216795,24.58781623840332],[114.42615509033203,24.487041473388786],[114.52752685546896,24.55403137207037],[114.68016052246092,24.537109375000114],[114.78713989257857,24.608608245849606],[114.87182617187544,24.56470108032238],[114.93382263183604,24.649627685546932],[115.03675079345727,24.696493148803768],[115.10470581054733,24.66470718383789],[115.21117401123045,24.725015640258846],[115.41083526611374,24.78082466125488],[115.47354888916027,24.759233474731385],[115.56167602539074,24.627124786376953],[115.67007446289061,24.59854125976574],[115.72159576416027,24.53724670410162],[115.83157348632834,24.565416336059684],[115.76219940185547,24.665426254272575],[115.76171112060545,24.797672271728512],[115.81189727783226,24.90282058715826],[115.87726593017578,24.93583488464361],[116.02613067626976,24.89831924438471],[116.0665893554692,24.852714538574276],[116.21189117431652,24.852706909179684],[116.40973663330088,24.746484756469727],[116.50968933105469,24.654195785522575],[116.72196197509777,24.66570281982433],[116.75096893310545,24.55849838256836],[116.84346771240244,24.476814270019588],[116.90676879882857,24.365011215210018],[116.93659210205111,24.21686744689947],[116.98881530761719,24.181470870971733],[116.92113494873058,24.077205657958928],[116.97557067871116,23.99999809265148],[116.96311950683594,23.910654067993107],[117.04617309570335,23.703323364257812],[117.18708038330077,23.618192672729492],[117.08319091796898,23.545419692993164],[116.89598083496092,23.543470382690487],[116.84986114501952,23.417642593383786],[116.74986267089878,23.342361450195426],[116.77236175537121,23.257080078125057],[116.60235595703169,23.193750381469783],[116.5318069458009,23.122922897338924],[116.5643081665039,23.019580841064393],[116.45569610595713,22.949310302734375],[116.26541900634764,22.950141906738338],[116.16541290283202,22.862361907959098],[115.87569427490234,22.797082901001087],[115.66291809082033,22.877361297607422],[115.51708221435592,22.75486183166504],[115.39153289794933,22.691528320312557],[115.23069763183592,22.83152961730957],[114.9423599243165,22.768751144409233]]]},"properties":{"ID_0":49,"ISO":"CN-44","NAME_0":"China","ID_1":6,"NAME_1":"Guangdong","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"廣東|广东","VARNAME_1":"Guǎngdōng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[112.0159149169923,24.73996162414545],[111.92090606689476,24.631265640258786],[111.99617767334001,24.549169540405273],[111.9803543090822,24.47433853149414],[112.05690002441429,24.365119934081974],[112.01347351074264,24.295175552368107],[111.87199401855486,24.2287921905517],[111.87071228027344,24.09034347534191],[111.92304229736355,23.968458175659237],[111.80680084228514,23.88875007629394],[111.80780029296898,23.820842742920036],[111.64163208007812,23.820308685302734],[111.6110534667968,23.645404815673825],[111.49916076660156,23.638370513916016],[111.45522308349604,23.513805389404297],[111.38588714599615,23.449352264404297],[111.35114288330078,23.287715911865348],[111.37277984619169,23.09476089477539],[111.42479705810553,23.03824806213379],[111.35180664062528,22.892566680908203],[111.21205902099626,22.750217437744254],[111.11331176757818,22.74464607238781],[111.05146789550798,22.65404129028326],[110.76023864746094,22.57716560363781],[110.70876312255864,22.437704086303654],[110.72112274169939,22.296020507812614],[110.63491821289062,22.150308609008903],[110.43418121337918,22.202239990234375],[110.34873199462919,22.093097686767635],[110.38186645507835,21.893510818481502],[110.2848434448245,21.911310195922965],[109.93541717529325,21.827411651611385],[109.89900207519543,21.657600402832145],[109.74053192138689,21.620956420898494],[109.75144195556639,21.565696716308707],[109.58458709716803,21.582082748413086],[109.54347229003918,21.505971908569336],[109.41929626464855,21.453750610351506],[109.15708160400408,21.402639389038086],[109.04235839843756,21.4515323638916],[109.16764068603521,21.528749465942326],[109.04264068603531,21.6118049621582],[108.91208648681646,21.60958290100109],[108.8487472534182,21.685970306396428],[108.73958587646484,21.608194351196342],[108.7031860351563,21.693201065063477],[108.57347106933594,21.68430328369152],[108.51652526855497,21.586805343628043],[108.39375305175798,21.552917480468864],[108.30097198486334,21.597919464111385],[108.18736267089838,21.5887508392334],[108.13485717773466,21.518749237060543],[107.96765899658219,21.536149978637805],[107.87879943847656,21.638048171997013],[107.7817993164063,21.655660629272575],[107.6757278442385,21.609701156616325],[107.38234710693365,21.595428466796985],[107.30287170410183,21.740751266479435],[107.24111938476555,21.704500198364315],[107.08497619628906,21.809440612793082],[107.06096649169928,21.929410934448242],[106.96045684814459,21.919481277465877],[106.9185028076174,21.97347068786621],[106.81147003173828,21.97340011596674],[106.70754241943364,22.02420043945324],[106.67211151123075,22.181760787963864],[106.70281982421903,22.226980209350586],[106.65067291259766,22.339309692382926],[106.55935668945335,22.44678115844738],[106.6104278564453,22.603790283203182],[106.7333526611331,22.590549468994197],[106.77304077148449,22.816360473632756],[106.59741210937517,22.933120727539062],[106.34645080566406,22.856130599975696],[106.19693756103521,22.990079879760742],[106.00276184082037,22.992019653320256],[105.92183685302751,22.95049285888672],[105.80403900146507,22.993070602417106],[105.71599578857433,23.064620971679744],[105.57733154296886,23.068929672241268],[105.5384597778322,23.193382263183707],[105.5869979858399,23.31438446044922],[105.6827316284182,23.373731613159233],[105.81051635742193,23.504873275756836],[105.88883972167986,23.527698516845646],[106.05941772460943,23.490928649902457],[106.18795013427734,23.83817481994623],[105.99864959716825,24.13204383850109],[105.90697479248064,24.117866516113335],[105.838134765625,24.031015396118164],[105.76200866699236,24.076547622680778],[105.64262390136719,24.06056213378906],[105.62133026123053,24.134126663208065],[105.53104400634766,24.131656646728572],[105.4925308227539,24.028812408447266],[105.40964508056669,24.04160308837902],[105.3184204101563,24.121213912963924],[105.25254058837908,24.075328826904293],[105.19375610351574,24.329828262329215],[105.03990936279295,24.444688796997184],[104.97734069824219,24.415878295898438],[104.76401519775419,24.461069107055778],[104.71868896484392,24.34291648864757],[104.60913848876982,24.38091468811041],[104.50005340576183,24.59066390991205],[104.53002166748041,24.734367370605582],[104.71366119384794,24.623714447021484],[104.84278869628935,24.68211364746105],[104.87314605712885,24.74512481689453],[105.03293609619169,24.797790527343803],[105.03973388671875,24.881359100341797],[105.20810699462908,24.998548507690426],[105.27001190185553,24.935266494751087],[105.42365264892595,24.93633460998541],[105.5066833496096,24.810123443603572],[105.59496307373047,24.809631347656307],[105.77396392822293,24.717266082763786],[105.93656158447264,24.725927352905387],[105.99517059326178,24.648065567016598],[106.17253875732445,24.770753860473686],[106.19887542724615,24.843112945556697],[106.14587402343778,24.949848175048828],[106.30107116699224,24.980848312377987],[106.57819366455077,25.088983535766715],[106.64135742187504,25.166069030761715],[106.89469146728521,25.197292327880916],[107.00714874267578,25.278284072875977],[106.95890808105469,25.417385101318413],[107.05873870849636,25.561948776245117],[107.17170715332024,25.581859588623157],[107.32744598388695,25.502134323120174],[107.32131958007818,25.415100097656364],[107.41652679443364,25.395799636840877],[107.4283370971682,25.291849136352596],[107.50246429443375,25.219079971313587],[107.6051025390625,25.271997451782283],[107.81022644042997,25.133516311645508],[108.1295013427735,25.23711204528803],[108.14017486572271,25.390853881836048],[108.23620605468767,25.427225112915036],[108.30685424804693,25.530017852783317],[108.47271728515642,25.456684112548885],[108.61956024169916,25.335887908935547],[108.59804534912126,25.473947525024414],[108.66473388671903,25.586116790771424],[108.93418121337896,25.558532714843864],[109.02794647216813,25.51806068420416],[109.03469848632818,25.66152954101574],[109.10092163085943,25.807704925537223],[109.23330688476591,25.72507286071777],[109.30762481689457,25.770906448364258],[109.47801971435575,26.03277397155767],[109.70696258544939,26.00746154785162],[109.6570663452149,25.883638381958008],[109.8214721679688,25.914623260498047],[109.77788543701182,26.000400543213058],[109.86648559570318,26.036716461181697],[109.9562225341798,26.1942596435548],[110.08750915527344,26.142990112304684],[110.09620666503935,26.023202896118278],[110.33061218261747,25.995586395263782],[110.37230682373053,26.09749984741211],[110.56656646728526,26.26456069946283],[110.60779571533197,26.337228775024414],[110.75655364990227,26.252420425415096],[110.93292999267584,26.29232215881359],[110.98759460449219,26.333953857421875],[111.16111755371088,26.30673217773443],[111.25716400146489,26.21200752258312],[111.24438476562506,26.065874099731502],[111.19966125488298,26.01690673828125],[111.21540069580082,25.897918701171875],[111.42713165283232,25.880847930908203],[111.41054534912138,25.771030426025447],[111.31177520751964,25.73057937622076],[111.33367919921903,25.60984039306652],[111.28569030761736,25.436988830566463],[111.09198760986334,25.28190803527832],[111.00070190429682,25.16755485534668],[110.94228363037136,25.03656387329113],[110.99164581298851,24.922689437866268],[111.09198760986334,24.944536209106502],[111.09161376953129,25.0276718139649],[111.2711029052735,25.145952224731502],[111.43122863769548,25.101142883300895],[111.45989227294928,25.026561737060547],[111.44398498535173,24.85980033874523],[111.4740753173831,24.800382614135742],[111.4228515625,24.681093215942383],[111.56139373779303,24.64114570617687],[111.68432617187517,24.78155517578125],[111.76525115966803,24.788452148437553],[112.0159149169923,24.73996162414545]]]},"properties":{"ID_0":49,"ISO":"CN-45","NAME_0":"China","ID_1":7,"NAME_1":"Guangxi","TYPE_1":"Zìzhìqu","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"廣西壯族自治區|广西壮族自治区","VARNAME_1":"Guǎngxī Zhuàngzú"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.2702026367189,28.503477096557617],[109.26879119873075,28.318523406982706],[109.37786102294928,28.266525268554744],[109.29934692382807,28.076446533203068],[109.36843872070312,28.023717880249137],[109.29888916015629,27.95776939392107],[109.36629486083979,27.741748809814567],[109.4282836914062,27.744571685791072],[109.45413208007835,27.580150604248104],[109.24102020263689,27.42149543762218],[109.15285491943352,27.445451736450252],[109.05762481689459,27.296564102172965],[108.90032196044916,27.21713447570806],[108.91187286376974,27.162935256958008],[108.82865905761719,27.060491561889762],[108.87377166748075,27.0005283355714],[109.11281585693354,27.12581443786621],[109.16427612304715,27.075754165649414],[109.25971984863281,27.135271072387695],[109.38927459716803,27.1656551361084],[109.50717163085942,27.076116561889705],[109.55052947998058,26.95048141479492],[109.49270629882841,26.826517105102596],[109.35031127929703,26.696563720703182],[109.3762741088867,26.465026855468803],[109.27001190185563,26.31878852844244],[109.33377838134788,26.270935058593864],[109.4244766235351,26.294462203979545],[109.4950790405275,26.14627647399908],[109.47801971435575,26.03277397155767],[109.30762481689457,25.770906448364258],[109.23330688476591,25.72507286071777],[109.10092163085943,25.807704925537223],[109.03469848632818,25.66152954101574],[109.02794647216813,25.51806068420416],[108.93418121337896,25.558532714843864],[108.66473388671903,25.586116790771424],[108.59804534912126,25.473947525024414],[108.61956024169916,25.335887908935547],[108.47271728515642,25.456684112548885],[108.30685424804693,25.530017852783317],[108.23620605468767,25.427225112915036],[108.14017486572271,25.390853881836048],[108.1295013427735,25.23711204528803],[107.81022644042997,25.133516311645508],[107.6051025390625,25.271997451782283],[107.50246429443375,25.219079971313587],[107.4283370971682,25.291849136352596],[107.41652679443364,25.395799636840877],[107.32131958007818,25.415100097656364],[107.32744598388695,25.502134323120174],[107.17170715332024,25.581859588623157],[107.05873870849636,25.561948776245117],[106.95890808105469,25.417385101318413],[107.00714874267578,25.278284072875977],[106.89469146728521,25.197292327880916],[106.64135742187504,25.166069030761715],[106.57819366455077,25.088983535766715],[106.30107116699224,24.980848312377987],[106.14587402343778,24.949848175048828],[106.19887542724615,24.843112945556697],[106.17253875732445,24.770753860473686],[105.99517059326178,24.648065567016598],[105.93656158447264,24.725927352905387],[105.77396392822293,24.717266082763786],[105.59496307373047,24.809631347656307],[105.5066833496096,24.810123443603572],[105.42365264892595,24.93633460998541],[105.27001190185553,24.935266494751087],[105.20810699462908,24.998548507690426],[105.03973388671875,24.881359100341797],[105.03293609619169,24.797790527343803],[104.87314605712885,24.74512481689453],[104.84278869628935,24.68211364746105],[104.71366119384794,24.623714447021484],[104.53002166748041,24.734367370605582],[104.54479217529301,24.826942443847656],[104.70897674560545,24.998239517211914],[104.66259765625016,25.073026657104606],[104.75211334228521,25.2172470092774],[104.65016174316418,25.298894882202262],[104.64119720458994,25.358638763427788],[104.54013061523432,25.411338806152344],[104.55878448486357,25.52507972717285],[104.43321990966803,25.52098464965826],[104.42408752441412,25.583690643310543],[104.30797576904324,25.658769607543945],[104.40510559082047,25.804899215698356],[104.46604156494163,26.020044326782227],[104.5228271484375,26.113374710083065],[104.5381469726563,26.25266838073736],[104.67794036865257,26.37670707702648],[104.55432128906256,26.591611862182674],[104.48223114013678,26.58381271362316],[104.41782379150419,26.711545944213867],[104.30657196044928,26.618005752563477],[104.12743377685547,26.64672660827642],[104.0076751708985,26.51918411254877],[103.81132507324212,26.53918838500988],[103.74365234375016,26.635738372802905],[103.7656021118164,26.735904693603516],[103.70027923584013,26.821123123168945],[103.7624588012698,26.868497848510742],[103.75336456298845,26.962678909301815],[103.63481140136741,27.11949157714855],[103.70276641845732,27.14001274108892],[103.82901000976567,27.267192840576456],[103.92717742919922,27.441984176635856],[104.17899322509771,27.27336311340332],[104.25457763671886,27.31318664550781],[104.3401107788086,27.46142768859863],[104.48960113525406,27.413248062134073],[104.61405944824224,27.312002182007063],[104.7346649169923,27.344867706298942],[104.86380004882807,27.293619155883846],[105.07233428955077,27.42026519775402],[105.23271179199236,27.4316349029541],[105.24489593505854,27.5604190826416],[105.30024719238298,27.709112167358626],[105.48232269287138,27.776836395263956],[105.6208572387697,27.66724586486839],[105.76389312744135,27.720869064330998],[106.18678283691423,27.758264541626033],[106.332748413086,27.8292884826663],[106.31727600097656,27.97634315490734],[106.25861358642605,28.080980300903377],[106.1459732055664,28.16761589050293],[105.97379302978538,28.116268157958984],[105.87796783447283,28.12946319580072],[105.88387298584,28.240835189819336],[105.77892303466825,28.335525512695312],[105.71227264404303,28.275840759277397],[105.63642883300808,28.31930732727068],[105.63368988037115,28.52494812011724],[105.73594665527366,28.614667892456055],[105.86843109130876,28.59096527099615],[105.96365356445312,28.751831054687443],[106.10343933105469,28.634981155395508],[106.28510284423832,28.540290832519645],[106.37358093261741,28.530485153198356],[106.50330352783207,28.620204925537337],[106.51525878906249,28.797227859497184],[106.63005828857422,28.614978790283146],[106.58585357666021,28.509456634521598],[106.7222518920899,28.533971786498967],[106.86291503906266,28.640344619750977],[106.81733703613298,28.741485595703235],[107.01056671142595,28.887796401977592],[107.11875152587895,28.89333152770996],[107.22039794921875,28.781482696533317],[107.38453674316418,28.85697364807123],[107.43206787109392,28.95671463012701],[107.36511230468744,29.014030456543022],[107.4031372070313,29.15673255920416],[107.56458282470732,29.21846580505382],[107.58477020263678,29.171329498291126],[107.80016326904291,29.1391220092774],[107.78807830810551,29.054252624511776],[107.86163330078124,28.96476745605491],[108.06352233886747,29.085281372070312],[108.29673004150396,29.045576095581055],[108.37995147705107,28.774686813354663],[108.3372192382813,28.67733383178722],[108.5006103515625,28.62965011596691],[108.63294982910173,28.627798080444446],[108.56976318359386,28.532268524169922],[108.6484375,28.33459281921415],[108.70655059814446,28.49793052673357],[108.77052307128912,28.42908668518072],[108.7324829101562,28.235145568847823],[108.8902816772461,28.22181892395031],[108.99082183837896,28.164127349853516],[109.12706756591825,28.309810638427678],[109.14983367919939,28.41257667541521],[109.2702026367189,28.503477096557617]]]},"properties":{"ID_0":49,"ISO":"CN-52","NAME_0":"China","ID_1":8,"NAME_1":"Guizhou","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"貴州|贵州","VARNAME_1":"Gùizhōu"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[110.68818664550804,20.16263961791998],[110.78901672363297,20.009029388427678],[110.94040679931652,20.001810073852596],[110.99569702148466,19.822919845580998],[110.98263549804688,19.643194198608512],[110.76180267333989,19.427360534668082],[110.67124938964872,19.382083892822205],[110.58625030517595,19.159309387207088],[110.56709289550786,19.04624938964855],[110.51319122314447,18.969863891601562],[110.53151702880876,18.79458045959467],[110.42846679687528,18.684579849243164],[110.25514221191422,18.65847015380865],[110.10041809082043,18.52986145019537],[110.05069732666016,18.386810302734432],[109.90820312500016,18.415700912475586],[109.76125335693388,18.387638092041016],[109.72735595703118,18.232641220092773],[109.53347015380865,18.211250305175724],[109.47070312500006,18.276531219482536],[109.32430267334013,18.305694580078125],[109.15515136718744,18.293750762939396],[109.10597229003923,18.362361907959098],[108.98957824707043,18.357080459594727],[108.83429718017607,18.462640762329215],[108.68624877929693,18.506811141967887],[108.69652557373053,18.73319435119629],[108.6229171752932,18.84152984619146],[108.6593017578125,18.93569374084484],[108.61429595947264,19.097921371460075],[108.67763519287115,19.182638168334957],[108.63458251953153,19.29153060913086],[108.68347167968744,19.37264060974121],[108.77791595459001,19.395416259765682],[109.00819396972679,19.58347129821783],[109.18125152587918,19.65347099304205],[109.16069793701189,19.787082672119197],[109.2581863403322,19.864032745361442],[109.51680755615251,19.903749465942383],[109.57681274414091,19.977640151977653],[109.71290588378905,20.01152992248541],[109.75930786132835,19.965129852295036],[109.94152832031261,19.993194580078182],[109.98929595947266,19.933750152587887],[110.12763977050787,20.002639770507756],[110.38597869873064,20.0790309906007],[110.51041412353521,20.01791572570812],[110.68818664550804,20.16263961791998]]]},"properties":{"ID_0":49,"ISO":"CN-46","NAME_0":"China","ID_1":9,"NAME_1":"Hainan","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"海南","VARNAME_1":"Hǎinán"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[116.89429473876953,39.69630813598633],[116.91946411132811,39.84259796142584],[116.77923583984408,39.90305328369146],[116.75610351562511,39.966316223144524],[116.83486938476608,40.04358673095703],[117.0112533569337,40.03260803222667],[117.19398498535168,40.08278274536133],[117.13152313232456,39.921825408935604],[117.22265625,39.857101440429744],[117.16275787353527,39.79872894287115],[117.15242004394554,39.62674331665039],[116.97351074218771,39.642501831054744],[116.89429473876953,39.69630813598633]]],[[[119.23310852050804,41.312511444091854],[119.18230438232457,41.19206619262695],[118.88581848144553,40.94926071166992],[118.8355941772461,40.803291320800774],[118.9892196655278,40.690673828125114],[119.13710784912143,40.6328582763673],[119.29592132568405,40.52883529663097],[119.53701019287153,40.54928588867193],[119.59908294677733,40.45381164550781],[119.58081054687499,40.37427520751953],[119.64680480957031,40.217468261718864],[119.73799133300804,40.19283676147461],[119.80721282958984,39.97958374023449],[119.58458709716797,39.91374969482427],[119.3454132080078,39.722640991210994],[119.2576370239259,39.49819946289074],[119.3056869506837,39.420970916748104],[119.18791961669933,39.35792160034191],[119.00319671630871,39.19708251953125],[118.81041717529297,39.143470764160156],[118.63153076171896,39.16791915893565],[118.33597564697266,39.0245819091798],[118.20847320556642,39.07041549682622],[118.14514923095703,39.17124938964855],[118.01268768310545,39.218193054199325],[118.01047515869142,39.361911773681754],[117.86926269531261,39.448425292968864],[117.92980957031251,39.580131530761776],[117.6935958862306,39.5805549621582],[117.57858276367199,39.7279891967774],[117.51319122314487,39.88500595092779],[117.54586791992209,39.98641967773443],[117.80303192138717,39.98414993286133],[117.74359893798864,40.07381439208996],[117.6408462524414,40.09823989868164],[117.55962371826183,40.213554382324276],[117.37973785400412,40.22687149047863],[117.26734161376952,40.307861328125114],[117.1950912475586,40.49690246582025],[117.29975891113315,40.5773315429688],[117.32102966308616,40.6551971435548],[117.13343048095736,40.70161437988281],[116.99423217773438,40.692958831787166],[116.83230590820312,40.840320587158146],[116.71550750732433,40.9009628295899],[116.66688537597666,40.97671127319336],[116.45097351074232,40.97891235351562],[116.45445251464842,40.79011154174816],[116.24459075927746,40.787345886230575],[116.10874938964855,40.62240600585932],[115.9893035888673,40.5810317993164],[115.90907287597655,40.61767959594738],[115.72922515869152,40.50187301635748],[115.95513153076172,40.261817932128956],[115.82250213623057,40.140216827392635],[115.67327880859398,40.13534545898443],[115.4408187866211,40.02623367309582],[115.53909301757812,39.797416687011776],[115.46726226806652,39.67020416259777],[115.56856536865256,39.59565353393555],[115.6816635131838,39.599796295166016],[115.75010681152365,39.5117301940918],[115.92529296875011,39.59505462646496],[116.13475799560547,39.56499862670904],[116.34479522705078,39.44854354858398],[116.599464416504,39.62915420532221],[116.79938507080122,39.610008239746094],[116.79687500000011,39.457607269287166],[116.8808059692385,39.347843170166016],[116.86456298828146,39.1648521423341],[116.90145874023438,39.06421661376959],[116.75588989257834,39.02737426757818],[116.70439910888716,38.9204559326173],[116.75075531005903,38.740154266357415],[116.91632080078136,38.6908073425293],[117.0191421508789,38.7020721435548],[117.10205841064476,38.58654022216797],[117.2062149047854,38.62799072265631],[117.26931762695322,38.56954574584966],[117.56430816650425,38.65569305419933],[117.69458007812534,38.38235855102539],[117.8575439453126,38.26736068725586],[117.87126159667991,38.26144027709961],[117.87111663818382,38.25597381591797],[117.70034027099608,38.07770919799816],[117.57433319091818,38.06839752197271],[117.4482574462893,37.86536026000982],[117.4058151245117,37.84362030029296],[116.89412689209007,37.84426879882818],[116.79441833496115,37.83129501342768],[116.60633850097679,37.62678146362315],[116.43196105957031,37.46987152099615],[116.22567749023449,37.4722633361817],[116.15882873535156,37.37846755981457],[115.98389434814452,37.33635330200195],[115.86469268798827,37.07368087768566],[115.68394470214866,36.81945800781255],[115.4960250854492,36.768993377685604],[115.33660125732432,36.61305999755865],[115.27890777587902,36.49432754516607],[115.36262512207043,36.342380523681754],[115.46441650390646,36.257820129394474],[115.47286987304697,36.16936111450207],[115.35760498046896,36.094387054443416],[115.25508880615234,36.17609405517584],[115.12049865722666,36.211357116699276],[115.00572204589889,36.07243728637701],[114.8892822265625,36.13651275634759],[114.57871246337902,36.125465393066406],[114.32044219970703,36.24585342407238],[114.04631805419966,36.27998733520519],[113.90455627441429,36.351284027099666],[113.72434234619162,36.360000610351676],[113.70201110839854,36.42330932617193],[113.58819580078136,36.45759582519537],[113.58167266845726,36.54844665527355],[113.48027801513682,36.63498687744146],[113.4928207397462,36.74032974243163],[113.6494598388673,36.78556442260748],[113.66993713378906,36.855419158935604],[113.78646850585938,36.894397735595646],[113.75170898437533,37.075168609619254],[113.8960418701173,37.30953216552729],[113.95367431640636,37.34847259521484],[114.11190032958996,37.58973693847656],[114.12183380126976,37.69730758666998],[113.96395111083984,37.83337020874035],[113.87711334228537,38.053985595703125],[113.70291137695312,38.21108627319336],[113.56385040283202,38.236957550048935],[113.51879119873057,38.38246536254894],[113.57701110839844,38.46552658081055],[113.55550384521507,38.55783462524414],[113.60639190673827,38.64554595947271],[113.76902770996094,38.70916748046875],[113.84912872314453,38.82835006713873],[113.7608871459961,38.9588356018067],[113.89168548583996,39.06693649291992],[114.04420471191429,39.13482666015636],[114.1020736694337,39.0512046813966],[114.35786437988314,39.1034507751466],[114.4162826538086,39.30722808837896],[114.54537200927734,39.547451019287166],[114.40162658691418,39.65062713623047],[114.3863754272463,39.867168426513786],[114.30547332763693,39.85608673095703],[114.05168151855479,39.92816925048828],[114.01647186279297,39.99241256713873],[114.08847045898482,40.09930419921881],[114.05783843994175,40.163112640380916],[114.46347045898447,40.26675033569347],[114.5243911743164,40.343955993652344],[114.30792236328125,40.36830520629882],[114.26274108886717,40.48538589477539],[114.2764663696289,40.589458465576286],[114.19120788574219,40.62958908081055],[114.12786102294922,40.73575973510753],[113.96630859375,40.98146057128911],[113.86180114746094,41.067337036132926],[113.9137954711914,41.17041015625],[113.93061065673862,41.38480758666998],[113.86356353759777,41.436580657958984],[114.01346588134787,41.51765441894537],[114.1511459350586,41.52384567260748],[114.23322296142601,41.637542724609375],[114.20509338378906,41.79763031005864],[114.33010864257834,41.920093536376946],[114.4928207397463,41.970363616943416],[114.47077178955112,42.049312591552784],[114.55392456054699,42.13053131103527],[114.76879882812523,42.109020233154354],[114.89532470703136,41.99150085449213],[114.93949127197276,41.820648193359375],[114.88992309570335,41.765785217285206],[114.88935089111351,41.6345481872558],[115.21518707275402,41.57805633544922],[115.3590240478519,41.61180114746094],[115.31996917724608,41.700107574463004],[115.42324066162153,41.726482391357365],[115.80461120605469,41.91062164306652],[115.91017150878929,41.94323348999029],[115.99418640136719,41.81492996215832],[116.18979644775438,41.862461090088004],[116.32083129882858,42.00352478027338],[116.52749633789062,41.93688964843756],[116.70923614501989,41.941905975341854],[116.87339019775435,42.01646423339855],[116.89810943603514,42.388458251953125],[117.0145187377932,42.454704284668026],[117.40394592285155,42.474704742431754],[117.4676284790039,42.5838737487793],[117.67736053466808,42.57886505126958],[117.7731399536134,42.61648941040039],[118.01770782470702,42.38269424438482],[118.0995025634769,42.16967010498047],[118.09095764160156,42.10280609130865],[118.30023193359398,41.977607727050774],[118.3283691406251,41.86101531982433],[118.28584289550793,41.77069854736328],[118.15925598144531,41.811031341552734],[118.12394714355467,41.73998641967785],[118.3426513671875,41.340641021728516],[118.76374816894554,41.351032257080135],[118.88467407226585,41.29891967773449],[119.19430541992197,41.28028106689453],[119.23310852050804,41.312511444091854]]]]},"properties":{"ID_0":49,"ISO":"CN-13","NAME_0":"China","ID_1":10,"NAME_1":"Hebei","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"河北","VARNAME_1":"Héběi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[131.27595520019554,43.47871780395519],[131.16365051269543,43.43925094604503],[130.99462890625023,43.497936248779354],[130.87660217285156,43.43532562255871],[130.73614501953148,43.551612854003956],[130.51580810546875,43.62832260131836],[130.33006286621116,43.94802093505871],[130.00299072265648,43.881027221679744],[129.99787902832043,43.995368957519474],[129.85945129394565,44.01048660278332],[129.6570739746095,43.867465972900504],[129.4636840820316,43.86940765380865],[129.3954315185547,43.813796997070305],[129.23046875,43.80673217773432],[129.20211791992233,43.574462890625],[129.00317382812545,43.51940155029302],[128.84960937500023,43.55955123901372],[128.7337951660156,43.79654312133789],[128.65280151367233,43.884819030761776],[128.51533508300793,44.11908721923834],[128.46276855468773,44.15715408325207],[128.46697998046886,44.37427520751959],[128.35960388183616,44.508617401123104],[128.21028137207054,44.42990112304687],[128.15715026855503,44.33892059326172],[128.04859924316418,44.35000228881847],[128.09790039062523,44.21200561523449],[128.04721069335983,44.10842132568371],[127.86141967773459,44.06307220458979],[127.73556518554697,44.092674255371094],[127.62081146240234,44.183494567871094],[127.61432647705078,44.27439498901373],[127.47427368164062,44.40299606323248],[127.44866943359399,44.607799530029354],[127.21187591552734,44.633880615234425],[127.0243148803712,44.5905380249024],[127.03566741943358,44.70638656616211],[126.98287200927747,44.77508926391607],[126.99614715576206,44.87908554077159],[127.08002471923827,44.95063781738287],[126.96325683593771,45.072299957275504],[126.60437011718783,45.23363494873047],[126.3949661254883,45.216625213623104],[126.23775482177744,45.13749694824219],[126.01431274414084,45.15170669555663],[125.90144348144575,45.19057846069347],[125.69538116455077,45.33446502685558],[125.67999267578146,45.50801086425787],[125.40406799316419,45.43107986450206],[125.06824493408202,45.38916015625006],[125.0384750366211,45.490486145019645],[124.86831665039062,45.43911361694347],[124.74886322021484,45.45964050292963],[124.5395050048828,45.40707397460943],[124.38897705078136,45.437797546386776],[124.33868408203125,45.54535293579113],[124.20967864990246,45.62885665893566],[124.1277084350586,45.6301765441895],[123.95042419433639,45.94403076171881],[124.03059387207065,46.013851165771484],[123.88510894775389,46.301368713378906],[123.72232818603516,46.25339508056646],[123.50250244140625,46.25378036499023],[123.36196136474621,46.220123291015625],[123.17104339599634,46.24668121337896],[123.01202392578136,46.418949127197266],[123.00372314453124,46.57372283935541],[123.26243591308638,46.611534118652344],[123.34964752197277,46.6744995117188],[123.58889770507811,46.68665695190435],[123.62447357177744,46.80361557006847],[123.35256958007812,46.860954284668075],[123.20538330078148,46.84386444091797],[123.15702819824251,46.742782592773494],[123.0269241333009,46.724731445312614],[122.88900756835938,46.815731048583984],[122.89059448242188,46.95026397705078],[122.84196472167969,47.05282592773449],[122.60468292236327,47.12254714965832],[122.38791656494185,47.344146728515625],[122.49520111083986,47.40611648559576],[122.54921722412108,47.52074050903326],[122.81840515136763,47.65956878662104],[123.20001220703148,47.81901931762701],[123.29052734375011,47.9519500732423],[123.57421874999999,48.04172134399414],[123.75467681884787,48.204475402832145],[124.07180023193393,48.429424285888786],[124.2668151855471,48.52974319458019],[124.30473327636719,48.36406326293945],[124.50231933593751,48.124053955078125],[124.57075500488315,48.257568359375],[124.51212310791037,48.40478515625],[124.51280212402344,48.5483283996582],[124.6108627319336,48.67626953125006],[124.64270782470703,48.82167434692383],[124.88232421875023,49.177158355712834],[125.14952850341808,49.143058776855575],[125.26615905761729,49.3585472106933],[125.21549224853516,49.48554229736328],[125.19312286376987,49.73693847656256],[125.27192687988281,50.12553024291992],[125.44105529785168,50.210117340088004],[125.4375915527345,50.265930175781364],[125.6349334716799,50.449859619140625],[125.81913757324219,50.54684448242193],[125.78872680664107,50.73558425903326],[126.06407165527342,50.95911407470703],[125.97352600097678,51.09569931030285],[125.84705352783226,51.20912933349621],[125.75080871582041,51.225524902343864],[125.69090270996094,51.33047866821294],[125.34353637695335,51.622177124023494],[125.12730407714855,51.632411956787166],[125.03956604003918,51.527923583984375],[124.92606353759777,51.49910736083984],[124.85720825195322,51.37818908691406],[124.68614959716831,51.331619262695305],[124.48261260986338,51.37877273559581],[124.39867401123045,51.270305633544915],[124.23169708251977,51.343036651611385],[123.88298797607422,51.317989349365234],[123.70346832275402,51.39673995971673],[123.63520812988314,51.3184928894044],[123.2828292846682,51.2494468688966],[122.96698760986372,51.33358383178722],[122.84770202636719,51.47627258300787],[122.84937286376987,51.60534667968749],[122.74273681640635,51.742351531982365],[122.71907806396496,51.97739410400401],[122.62368774414074,52.135234832763786],[122.76294708251963,52.17710494995123],[122.75592803955078,52.265460968017635],[122.57911682128906,52.26520919799805],[122.33618927001964,52.41145706176758],[122.30334472656249,52.47386169433605],[122.12637329101585,52.474529266357536],[121.9407272338867,52.29719161987299],[121.70687103271518,52.316814422607536],[121.63298034667991,52.443183898925895],[121.51914978027344,52.45304107666021],[121.19284057617222,52.60234069824219],[121.36288452148459,52.680671691894474],[121.61347198486328,52.85200119018565],[121.70822143554686,52.99644470214849],[121.80916595458983,53.06410598754894],[121.64614105224634,53.180465698242244],[121.67065429687499,53.23693466186535],[121.4893798828126,53.33117294311518],[121.69239044189453,53.388511657714844],[122.07605743408224,53.42113876342785],[122.32962036132847,53.49732208251959],[122.44212341308605,53.441848754882926],[122.83354187011751,53.4529037475587],[123.25701904296874,53.560859680175895],[123.52179718017588,53.55316925048834],[123.84442138671886,53.48871994018549],[124.11501312255882,53.34368133544922],[124.24575042724642,53.36550903320318],[124.37548828125,53.24618148803716],[124.53032684326206,53.19488906860357],[124.66304016113291,53.19919204711914],[124.83304595947266,53.13269042968761],[124.98197174072278,53.19285202026378],[125.1882095336914,53.191589355468864],[125.48206329345714,53.09030914306652],[125.579658508301,53.080730438232365],[125.73636627197266,52.984508514404354],[125.66265869140638,52.91595077514648],[125.84910583496095,52.86016082763672],[126.3436813354492,52.39595031738281],[126.30267333984375,52.223281860351506],[126.54995727539074,52.13016891479492],[126.4692077636721,51.93531036376953],[126.56086730957041,51.85640335083002],[126.83277893066428,51.526538848877],[126.78382110595714,51.44036483764659],[126.97986602783249,51.307769775390625],[126.89791107177768,51.188365936279354],[126.92285156250011,51.05799865722661],[127.11181640625021,50.93387222290039],[127.3593521118164,50.58327865600586],[127.28761291503905,50.47747039794933],[127.3610610961914,50.4039306640625],[127.3687973022461,50.29315948486333],[127.5714797973634,50.242759704589844],[127.59432983398438,50.17292022705078],[127.50132751464889,50.061019897460994],[127.51512908935581,49.834640502929744],[127.64972686767624,49.77777099609381],[127.68492126464844,49.67330932617198],[127.80242156982422,49.59124755859381],[127.96154785156271,49.61182022094738],[128.0659179687501,49.54223632812506],[128.26089477539074,49.499950408935604],[128.39202880859398,49.58887863159185],[128.5354461669924,49.60184097290045],[128.70825195312523,49.563720703125],[128.77296447753952,49.47060012817388],[128.99516296386764,49.45048904418945],[129.1181335449221,49.348709106445426],[129.20581054687534,49.39894104003906],[129.31790161132824,49.354351043701115],[129.38406372070335,49.43146133422851],[129.52096557617207,49.41189193725597],[129.54539489746105,49.299720764160156],[129.66775512695324,49.29019165039062],[129.84469604492233,49.167659759521484],[129.9064178466797,49.05399703979492],[130.25747680664062,48.86184692382818],[130.4432373046876,48.90032196044922],[130.63667297363293,48.81423950195324],[130.52542114257835,48.638519287109425],[130.60110473632835,48.51501083374029],[130.7223663330078,48.50586318969732],[130.76588439941406,48.355010986328125],[130.82553100585972,48.30009078979497],[130.65205383300804,48.109340667724666],[130.6846160888672,48.03916931152344],[130.86395263671898,47.93212127685558],[130.95217895507847,47.81850051879894],[130.9541931152346,47.7202720642091],[131.09564208984375,47.681346893310604],[131.25323486328136,47.73376083374029],[131.50099182128926,47.72776031494146],[131.57955932617188,47.660648345947266],[131.6824340820317,47.706150054931754],[131.8037261962893,47.66971206665045],[132.2450866699221,47.70516204833979],[132.37559509277355,47.753879547119254],[132.50482177734398,47.711250305175895],[132.69148254394565,47.953609466552734],[132.78602600097702,47.92716979980463],[132.87658691406273,48.000000000000114],[133.0079040527345,48.01818084716797],[133.16029357910168,48.10570144653326],[133.35501098632812,48.10374069213867],[133.4681549072269,48.06760025024425],[133.80044555664062,48.19977951049815],[134.05769348144543,48.3353843688966],[134.38926696777344,48.38570404052729],[134.57540893554688,48.36321640014654],[134.67109680175793,48.16424179077154],[134.55055236816418,48.02439880371105],[134.5888671875001,47.906829833984375],[134.7715606689455,47.753459930420036],[134.6698455810547,47.58382415771495],[134.4935302734376,47.44380950927746],[134.33404541015636,47.43637084960949],[134.18699645996094,47.33092880249029],[134.1490936279297,47.259510040283146],[134.22261047363304,47.180702209472656],[134.1345825195316,47.087821960449276],[134.02073669433594,46.82228088378906],[134.01470947265648,46.65436172485351],[133.9130096435547,46.58145904541021],[133.85086059570335,46.46068191528332],[133.90849304199264,46.27159118652338],[133.84939575195312,46.20109939575207],[133.7001190185547,46.157814025878956],[133.73445129394528,46.047340393066406],[133.65689086914085,45.93769454956066],[133.4638824462893,45.82897949218756],[133.4761199951173,45.6544189453125],[133.34210205078125,45.54794311523432],[133.21519470214855,45.50911331176769],[133.133026123047,45.41987991333008],[133.09385681152366,45.2875709533692],[133.13555908203125,45.12710952758789],[132.97265625,45.0199089050293],[132.85197448730477,45.055690765380916],[132.6968536376953,44.69006729125988],[132.56057739257858,44.55504226684581],[132.31622314453145,44.61523056030279],[132.1116180419923,44.7406845092774],[132.18359375,44.95685195922857],[132.0585937500001,45.23558807373047],[131.82678222656273,45.308731079101676],[131.68673706054688,45.1141815185548],[131.4698486328125,44.959480285644645],[131.34425354003952,44.98189926147472],[131.2709503173828,44.92235946655279],[131.1379547119144,44.93704223632812],[130.9630126953126,44.81761932373041],[131.10266113281284,44.691558837890625],[131.2931060791018,44.07970046997076],[131.20352172851562,43.823570251464844],[131.22850036621105,43.59860229492199],[131.27595520019554,43.47871780395519]]]},"properties":{"ID_0":49,"ISO":"CN-23","NAME_0":"China","ID_1":11,"NAME_1":"Heilongjiang","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"黑龙江省|黑龍江省","VARNAME_1":"Hēilóngjiāng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[115.47286987304697,36.16936111450207],[115.44036865234385,36.01320648193365],[115.3520736694338,35.97102355957031],[115.33192443847666,35.804111480713004],[115.80311584472656,36.01005172729498],[116.01735687255882,36.06333923339844],[116.03987121582054,35.97148895263683],[115.91765594482423,35.96976470947276],[115.76693725585982,35.863945007324325],[115.66016387939453,35.744159698486385],[115.49507904052733,35.7292098999024],[115.40918731689489,35.64693832397472],[115.3487777709961,35.50680160522455],[115.21638488769531,35.417804718017635],[115.16888427734375,35.44613265991222],[115.01925659179734,35.37437057495123],[114.99708557128929,35.288627624511776],[114.84293365478514,35.17755126953125],[114.88049316406249,35.00461196899414],[115.11365509033224,35.0103874206543],[115.19261932373071,34.92622375488287],[115.42497253417979,34.796310424804744],[115.43881988525412,34.675373077392685],[115.53153228759778,34.57902526855469],[115.67130279541014,34.561328887939396],[116.09555816650412,34.60671997070318],[116.18591308593749,34.57946777343756],[116.17365264892611,34.431613922119254],[116.38353729248071,34.28071594238281],[116.51093292236327,34.297325134277344],[116.5594177246096,34.09311294555664],[116.63354492187501,33.98846435546869],[116.56187438964866,33.90975570678722],[116.43643951416027,33.85443878173828],[116.36834716796888,33.78225708007824],[116.1498565673828,33.711246490478516],[115.97711944580101,33.91727066040039],[115.95223236083984,34.00925445556634],[115.85777282714855,34.00820159912115],[115.72204589843751,34.08029937744146],[115.59432983398482,34.033966064453175],[115.5492858886721,33.89166641235346],[115.6263122558596,33.8379364013673],[115.59094238281263,33.72902297973633],[115.63195037841808,33.58683776855469],[115.40752410888672,33.55921554565424],[115.30757141113281,33.43203735351574],[115.35664367675805,33.32394409179682],[115.2856903076174,33.13598632812506],[115.10659027099632,33.08357620239258],[114.88988494873068,33.08601379394537],[114.9339981079106,32.93647766113287],[115.13391113281261,32.8995246887207],[115.17764282226598,32.796249389648665],[115.19152832031249,32.59048080444353],[115.40228271484375,32.552547454833984],[115.53920745849655,32.42340850830084],[115.61597442626953,32.410995483398494],[115.82931518554733,32.526969909668026],[115.88243865966797,32.419975280761776],[115.93076324462913,32.16601943969732],[115.90435791015625,31.8200187683106],[115.87413024902388,31.77674865722656],[115.67327880859398,31.782377243041935],[115.49180603027344,31.67566680908203],[115.48127746582043,31.612388610839897],[115.37071228027344,31.501697540283487],[115.36437225341831,31.40503883361816],[115.20182037353516,31.440713882446286],[115.22996520996115,31.553312301635913],[115.13275146484419,31.606878280639762],[115.05345153808604,31.509363174438473],[114.83003234863304,31.46220588684093],[114.54058837890659,31.616878509521538],[114.58032989501974,31.756343841552848],[114.42451477050793,31.73444938659679],[114.28305053710938,31.758928298950252],[114.16300201416038,31.853225708007812],[113.98043823242186,31.75673675537109],[113.9458999633789,31.8608970642091],[113.84163665771507,31.849065780639705],[113.7348098754884,32.250343322753906],[113.75866699218773,32.37360382080084],[113.660400390625,32.421482086181584],[113.57417297363281,32.3417854309082],[113.41719818115234,32.275146484375],[113.34838867187511,32.297382354736555],[113.21605682373092,32.42483901977545],[113.14096832275425,32.382629394531364],[112.85492706298828,32.3981094360351],[112.76566314697266,32.350788116455305],[112.54367065429697,32.404361724853516],[112.43756866455077,32.35496520996105],[112.1513595581057,32.38526153564459],[111.94658660888688,32.51931762695318],[111.88416290283214,32.50550842285173],[111.71526336669922,32.606510162353516],[111.57189941406278,32.595813751220646],[111.44577789306645,32.72005462646496],[111.37394714355479,32.830688476562614],[111.24909973144531,32.88604354858404],[111.23239898681669,33.04270172119146],[110.97766113281267,33.259674072265796],[111.02043151855474,33.37694549560558],[110.99770355224608,33.58365631103521],[110.82721710205084,33.67475128173828],[110.77207946777344,33.80183410644537],[110.5877990722658,33.88915634155284],[110.67118072509766,33.95417785644531],[110.58245849609392,34.10277557373047],[110.63906860351555,34.16409301757824],[110.41948699951199,34.28166198730469],[110.4951171875,34.33678054809582],[110.35552215576178,34.52358245849614],[110.38023376464838,34.604488372802734],[110.68240356445328,34.59413909912115],[110.75208282470724,34.656459808349716],[110.8956375122072,34.662040710449276],[111.15017700195318,34.80830383300781],[111.22097778320324,34.79192733764643],[111.567626953125,34.849540710449276],[111.6857528686524,34.99225997924805],[111.82504272460949,35.073120117187614],[112.05079650878929,35.05064392089855],[112.07186126708984,35.229129791259766],[112.43359375,35.229743957519645],[112.76907348632812,35.20890426635742],[112.91504669189474,35.24839401245117],[113.02401733398438,35.363502502441406],[113.10746765136741,35.33320617675781],[113.20276641845737,35.44199371337902],[113.49054718017578,35.53054809570307],[113.55655670166026,35.648105621338004],[113.56907653808615,35.817844390869254],[113.65067291259764,35.836864471435604],[113.65881347656284,36.11945724487305],[113.72434234619162,36.360000610351676],[113.90455627441429,36.351284027099666],[114.04631805419966,36.27998733520519],[114.32044219970703,36.24585342407238],[114.57871246337902,36.125465393066406],[114.8892822265625,36.13651275634759],[115.00572204589889,36.07243728637701],[115.12049865722666,36.211357116699276],[115.25508880615234,36.17609405517584],[115.35760498046896,36.094387054443416],[115.47286987304697,36.16936111450207]]]},"properties":{"ID_0":49,"ISO":"CN-41","NAME_0":"China","ID_1":12,"NAME_1":"Henan","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"河南","VARNAME_1":"Hénán"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[110.97766113281267,33.259674072265796],[111.23239898681669,33.04270172119146],[111.24909973144531,32.88604354858404],[111.37394714355479,32.830688476562614],[111.44577789306645,32.72005462646496],[111.57189941406278,32.595813751220646],[111.71526336669922,32.606510162353516],[111.88416290283214,32.50550842285173],[111.94658660888688,32.51931762695318],[112.1513595581057,32.38526153564459],[112.43756866455077,32.35496520996105],[112.54367065429697,32.404361724853516],[112.76566314697266,32.350788116455305],[112.85492706298828,32.3981094360351],[113.14096832275425,32.382629394531364],[113.21605682373092,32.42483901977545],[113.34838867187511,32.297382354736555],[113.41719818115234,32.275146484375],[113.57417297363281,32.3417854309082],[113.660400390625,32.421482086181584],[113.75866699218773,32.37360382080084],[113.7348098754884,32.250343322753906],[113.84163665771507,31.849065780639705],[113.9458999633789,31.8608970642091],[113.98043823242186,31.75673675537109],[114.16300201416038,31.853225708007812],[114.28305053710938,31.758928298950252],[114.42451477050793,31.73444938659679],[114.58032989501974,31.756343841552848],[114.54058837890659,31.616878509521538],[114.83003234863304,31.46220588684093],[115.05345153808604,31.509363174438473],[115.13275146484419,31.606878280639762],[115.22996520996115,31.553312301635913],[115.20182037353516,31.440713882446286],[115.36437225341831,31.40503883361816],[115.55741119384766,31.159700393676868],[115.6955490112307,31.20327758789068],[115.75873565673872,31.12035369873058],[115.87502288818358,31.144224166870117],[116.00116729736374,30.94951629638672],[115.83775329589854,30.839673995971737],[115.76095581054686,30.674276351928942],[115.90872955322298,30.517946243286133],[115.87910461425791,30.385009765625057],[116.0590591430664,30.209255218505916],[116.06858062744139,29.972360610962028],[116.12962341308592,29.824850082397575],[116.04251098632822,29.750391006469897],[115.87762451171886,29.735132217407394],[115.68840789794932,29.851032257080135],[115.50516510009766,29.841829299926815],[115.40324401855469,29.687685012817383],[115.14984893798827,29.66103744506836],[115.14858245849655,29.51283836364746],[115.00390624999999,29.572092056274414],[114.8637161254883,29.48360824584961],[114.86354827880858,29.40630340576172],[114.75524902343761,29.369329452514936],[114.65571594238325,29.39630126953136],[114.51341247558615,29.32709121704107],[114.28784179687511,29.366165161132923],[114.24340820312511,29.238464355468746],[114.06909942626953,29.214675903320366],[113.9401321411134,29.048280715942322],[113.81707000732433,29.10557556152349],[113.72635650634766,29.074455261230526],[113.59960937500021,29.25536346435558],[113.65735626220726,29.38130187988281],[113.74504089355469,29.450445175170838],[113.67118072509766,29.514804840087944],[113.73174285888693,29.578884124755916],[113.63464355468749,29.6696014404298],[113.54369354248058,29.682418823242298],[113.55618286132824,29.81902503967296],[113.4371566772462,29.763933181762862],[113.21038055419933,29.537681579589844],[113.14346313476562,29.448657989502067],[113.03498077392578,29.50967216491705],[112.93881225585938,29.47407531738287],[112.90138244628918,29.78754043579107],[112.80280303955112,29.741548538208292],[112.6781692504885,29.596908569335994],[112.4431381225588,29.635257720947262],[112.3623733520509,29.539342880249194],[112.0716018676759,29.736671447754137],[111.784896850586,29.911354064941406],[111.54385375976567,29.89404487609863],[111.38594055175808,29.918916702270568],[111.23004913330084,30.045486450195366],[110.92368316650408,30.06740570068382],[110.82026672363276,30.12800407409668],[110.52275848388689,30.062427520752067],[110.50106048583989,29.9149227142334],[110.60893249511713,29.835947036743224],[110.63321685791016,29.763694763183764],[110.37486267089872,29.640249252319336],[110.10845184326166,29.792104721069336],[109.86514282226568,29.777469635009876],[109.65676879882822,29.599243164062614],[109.51831817626946,29.623172760009876],[109.36788940429688,29.428064346313473],[109.32924652099636,29.27114105224615],[109.25901794433616,29.23217582702642],[109.22859954834001,29.12245559692388],[109.10571289062528,29.21516799926786],[109.1050109863283,29.36424255371105],[108.97126770019543,29.33089637756376],[108.86643981933594,29.44981193542486],[108.86813354492205,29.639493942260742],[108.67495727539068,29.69368362426763],[108.65667724609398,29.85115242004394],[108.58754730224626,29.858566284179744],[108.45027160644537,29.74233245849626],[108.38242340087896,29.854690551757812],[108.51653289794949,29.870521545410153],[108.5248107910158,30.07951164245605],[108.5693817138673,30.25385475158697],[108.40393829345709,30.37798500061041],[108.4205703735352,30.488988876342884],[108.55462646484396,30.47736167907709],[108.68711090087908,30.589031219482703],[108.72857666015648,30.500770568847713],[108.81961822509793,30.49818611145025],[108.95596313476568,30.6227264404298],[109.11232757568365,30.649772644043026],[109.1465530395509,30.53647994995117],[109.31575012207026,30.62170791625971],[109.37458801269537,30.51461982727062],[109.44674682617216,30.61709213256847],[109.63980102539057,30.716789245605412],[109.77353668212908,30.85263252258295],[109.89366149902355,30.89163589477539],[110.0757064819336,30.804096221923825],[110.16403198242193,30.986728668213004],[110.1156921386718,31.0982990264892],[110.19042968750028,31.150600433349723],[110.13822174072283,31.395578384399474],[110.05512237548832,31.41599845886231],[109.93403625488287,31.5234375],[109.74819946289062,31.615152359008903],[109.71514129638666,31.71221542358404],[109.57660675048832,31.733167648315373],[109.62648773193376,31.964570999145625],[109.61682128906254,32.10912322998058],[109.49041748046903,32.3025856018067],[109.4954223632812,32.38108444213867],[109.62696075439459,32.6024169921875],[109.90569305419916,32.59506225585943],[110.02306365966797,32.55052947998047],[110.1998367309572,32.62979888916044],[110.13690948486328,32.80475234985357],[110.0223236083985,32.87265777587885],[109.75891876220707,32.909706115722656],[109.78942871093754,33.06887435913086],[109.68303680419928,33.11854553222656],[109.5713272094726,33.112297058105696],[109.43367004394531,33.15377807617199],[109.50920104980469,33.239566802978516],[109.84026336669916,33.248893737793026],[110.02587890625016,33.193675994873104],[110.1597595214843,33.211009979248104],[110.21314239501964,33.16501998901367],[110.4556808471682,33.18463897705084],[110.80570983886724,33.148437500000114],[110.97766113281267,33.259674072265796]]]},"properties":{"ID_0":49,"ISO":"CN-42","NAME_0":"China","ID_1":13,"NAME_1":"Hubei","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"湖北","VARNAME_1":"Húběi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[113.9401321411134,29.048280715942322],[113.95168304443371,28.970525741577266],[114.05625915527355,28.854015350341797],[114.1455535888673,28.820493698120114],[114.11759185791016,28.598354339599723],[114.20749664306686,28.46985816955589],[114.24922943115244,28.332538604736325],[114.0786285400394,28.182449340820426],[114.03450012207077,28.087497711181697],[113.9183273315432,28.000001907348576],[113.80004882812511,27.98008728027355],[113.72681427001976,27.884246826171875],[113.75767517089842,27.802581787109375],[113.60186004638695,27.628822326660156],[113.57796478271483,27.528127670288143],[113.61128997802734,27.348873138427848],[113.69427490234386,27.33539009094244],[113.8673782348634,27.3883056640625],[113.84187316894543,27.22589683532726],[113.77390289306663,27.140529632568416],[113.81130981445335,27.050224304199276],[113.91623687744186,26.96213150024414],[113.83438873291038,26.80258750915533],[113.9014129638673,26.621789932250977],[114.11697387695312,26.59279632568365],[114.08189392089842,26.414947509765565],[113.96507263183638,26.243938446045036],[114.04072570800781,26.190862655639876],[114.16769409179722,26.21220397949213],[114.19464111328124,26.128807067871207],[114.0400085449221,26.076362609863395],[114.02571105957054,25.926094055175724],[113.91043853759766,25.729339599609432],[113.9859848022461,25.554302215576172],[113.95921325683605,25.457321166992184],[113.89219665527365,25.43996620178217],[113.81206512451183,25.32813262939464],[113.75487518310592,25.359266281127987],[113.58399200439464,25.32307434082037],[113.53484344482455,25.365858078002873],[113.36460876464866,25.40072631835943],[113.29471588134764,25.494749069213977],[113.15413665771518,25.487932205200252],[113.01506042480479,25.348438262939567],[112.8527603149415,25.32934951782238],[112.86254882812499,25.247737884521598],[112.97397613525402,25.254402160644588],[112.96279907226574,25.160791397094723],[113.00085449218773,24.930334091186577],[112.77394866943371,24.896972656250053],[112.65400695800791,25.128871917724723],[112.39117431640636,25.142938613891715],[112.17819213867188,25.17727851867687],[112.14284515380871,25.01593017578125],[112.16409301757835,24.91137695312511],[112.0159149169923,24.73996162414545],[111.76525115966803,24.788452148437553],[111.68432617187517,24.78155517578125],[111.56139373779303,24.64114570617687],[111.4228515625,24.681093215942383],[111.4740753173831,24.800382614135742],[111.44398498535173,24.85980033874523],[111.45989227294928,25.026561737060547],[111.43122863769548,25.101142883300895],[111.2711029052735,25.145952224731502],[111.09161376953129,25.0276718139649],[111.09198760986334,24.944536209106502],[110.99164581298851,24.922689437866268],[110.94228363037136,25.03656387329113],[111.00070190429682,25.16755485534668],[111.09198760986334,25.28190803527832],[111.28569030761736,25.436988830566463],[111.33367919921903,25.60984039306652],[111.31177520751964,25.73057937622076],[111.41054534912138,25.771030426025447],[111.42713165283232,25.880847930908203],[111.21540069580082,25.897918701171875],[111.19966125488298,26.01690673828125],[111.24438476562506,26.065874099731502],[111.25716400146489,26.21200752258312],[111.16111755371088,26.30673217773443],[110.98759460449219,26.333953857421875],[110.93292999267584,26.29232215881359],[110.75655364990227,26.252420425415096],[110.60779571533197,26.337228775024414],[110.56656646728526,26.26456069946283],[110.37230682373053,26.09749984741211],[110.33061218261747,25.995586395263782],[110.09620666503935,26.023202896118278],[110.08750915527344,26.142990112304684],[109.9562225341798,26.1942596435548],[109.86648559570318,26.036716461181697],[109.77788543701182,26.000400543213058],[109.8214721679688,25.914623260498047],[109.6570663452149,25.883638381958008],[109.70696258544939,26.00746154785162],[109.47801971435575,26.03277397155767],[109.4950790405275,26.14627647399908],[109.4244766235351,26.294462203979545],[109.33377838134788,26.270935058593864],[109.27001190185563,26.31878852844244],[109.3762741088867,26.465026855468803],[109.35031127929703,26.696563720703182],[109.49270629882841,26.826517105102596],[109.55052947998058,26.95048141479492],[109.50717163085942,27.076116561889705],[109.38927459716803,27.1656551361084],[109.25971984863281,27.135271072387695],[109.16427612304715,27.075754165649414],[109.11281585693354,27.12581443786621],[108.87377166748075,27.0005283355714],[108.82865905761719,27.060491561889762],[108.91187286376974,27.162935256958008],[108.90032196044916,27.21713447570806],[109.05762481689459,27.296564102172965],[109.15285491943352,27.445451736450252],[109.24102020263689,27.42149543762218],[109.45413208007835,27.580150604248104],[109.4282836914062,27.744571685791072],[109.36629486083979,27.741748809814567],[109.29888916015629,27.95776939392107],[109.36843872070312,28.023717880249137],[109.29934692382807,28.076446533203068],[109.37786102294928,28.266525268554744],[109.26879119873075,28.318523406982706],[109.2702026367189,28.503477096557617],[109.31582641601568,28.593660354614315],[109.26481628417963,28.668857574462944],[109.231986999512,28.878896713256896],[109.30027770996105,29.06493949890148],[109.22859954834001,29.12245559692388],[109.25901794433616,29.23217582702642],[109.32924652099636,29.27114105224615],[109.36788940429688,29.428064346313473],[109.51831817626946,29.623172760009876],[109.65676879882822,29.599243164062614],[109.86514282226568,29.777469635009876],[110.10845184326166,29.792104721069336],[110.37486267089872,29.640249252319336],[110.63321685791016,29.763694763183764],[110.60893249511713,29.835947036743224],[110.50106048583989,29.9149227142334],[110.52275848388689,30.062427520752067],[110.82026672363276,30.12800407409668],[110.92368316650408,30.06740570068382],[111.23004913330084,30.045486450195366],[111.38594055175808,29.918916702270568],[111.54385375976567,29.89404487609863],[111.784896850586,29.911354064941406],[112.0716018676759,29.736671447754137],[112.3623733520509,29.539342880249194],[112.4431381225588,29.635257720947262],[112.6781692504885,29.596908569335994],[112.80280303955112,29.741548538208292],[112.90138244628918,29.78754043579107],[112.93881225585938,29.47407531738287],[113.03498077392578,29.50967216491705],[113.14346313476562,29.448657989502067],[113.21038055419933,29.537681579589844],[113.4371566772462,29.763933181762862],[113.55618286132824,29.81902503967296],[113.54369354248058,29.682418823242298],[113.63464355468749,29.6696014404298],[113.73174285888693,29.578884124755916],[113.67118072509766,29.514804840087944],[113.74504089355469,29.450445175170838],[113.65735626220726,29.38130187988281],[113.59960937500021,29.25536346435558],[113.72635650634766,29.074455261230526],[113.81707000732433,29.10557556152349],[113.9401321411134,29.048280715942322]]]},"properties":{"ID_0":49,"ISO":"CN-43","NAME_0":"China","ID_1":14,"NAME_1":"Hunan","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"湖南","VARNAME_1":"Húnán"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.28437805175781,35.08986282348627],[119.22402954101572,35.05764007568365],[119.17180633544935,34.85736083984381],[119.29069519042969,34.7473602294923],[119.44513702392612,34.74402999877941],[119.44957733154295,34.675418853759766],[119.78208160400413,34.469860076904354],[119.94208526611338,34.446804046630916],[120.26403045654318,34.309028625488395],[120.3281936645509,34.12180709838873],[120.48042297363293,33.81792068481451],[120.52791595458996,33.77708435058605],[120.66319274902342,33.50986099243164],[120.62568664550791,33.40568923950195],[120.70735931396528,33.36597061157238],[120.82430267333984,33.1495819091798],[120.82791900634778,33.042083740234375],[120.89597320556663,33.004310607910156],[120.91485595703146,32.878189086914006],[120.85597229003906,32.76541900634777],[120.90484619140625,32.617641448974666],[120.98458099365234,32.552921295166016],[121.31513977050781,32.43097305297863],[121.39319610595714,32.37931060791021],[121.38430786132811,32.18791580200201],[121.43402862548852,32.12430953979486],[121.65791320800783,32.06264114379888],[121.85041809082053,31.91570281982433],[121.92874908447264,31.72847175598156],[121.87069702148447,31.68513870239263],[121.6290283203126,31.73708343505859],[121.32903289794956,31.878749847412163],[121.26875305175815,31.879863739013896],[121.09680175781261,31.783470153808647],[121.08374786376987,31.72347068786621],[121.18125152587889,31.665140151977653],[121.32597351074251,31.505416870117468],[121.20725250244162,31.474849700927848],[121.1216049194338,31.30657577514677],[121.05766296386719,31.26090431213385],[121.04059600830078,31.13811874389654],[120.88040924072277,31.136251449585018],[120.89511871337892,31.01197814941412],[120.70153045654297,30.972934722900447],[120.70520782470727,30.90073013305675],[120.58148193359386,30.8590545654298],[120.50706481933615,30.76718521118175],[120.43340301513695,30.90119361877447],[120.36167144775392,30.951988220214844],[120.15082550048828,30.936313629150447],[119.991981506348,31.026542663574162],[119.90895080566418,31.17524719238287],[119.7831954956057,31.18224334716797],[119.63211059570311,31.139343261718803],[119.47254943847669,31.15841674804693],[119.15931701660166,31.300914764404236],[119.08900451660156,31.237642288208065],[118.78681945800804,31.232364654541072],[118.70227050781249,31.30001449584961],[118.8759994506836,31.451343536377234],[118.85961151123047,31.624330520629996],[118.67173767089844,31.64154243469238],[118.68673706054686,31.71233558654785],[118.48813629150413,31.78578758239757],[118.4591293334962,31.87640190124506],[118.36409759521483,31.937202453613338],[118.38770294189487,32.083293914795036],[118.49331665039072,32.125400543213175],[118.50152587890636,32.196231842041186],[118.65695190429732,32.22014617919933],[118.68303680419945,32.476543426513956],[118.55628967285168,32.56743240356445],[118.71678161621092,32.61086273193365],[119.12901306152366,32.49342727661133],[119.21438598632812,32.63367843627935],[119.17800140380871,32.83283233642578],[119.11176300048827,32.824146270751946],[119.00771331787155,32.96199798584007],[118.84521484375045,32.95954895019537],[118.74137878417969,32.85739898681635],[118.70691680908226,32.72151565551775],[118.36602020263673,32.72114562988287],[118.24067687988281,32.84984970092785],[118.25928497314463,32.94922637939459],[118.20837402343749,33.19346237182623],[118.0342712402347,33.14204406738281],[117.96639251708984,33.28302764892584],[118.16163635253918,33.713794708252],[118.11162567138695,33.76447296142584],[117.93129730224608,33.73094177246105],[117.72579956054699,33.72898101806646],[117.75293731689489,33.88705825805675],[117.57020568847666,33.98442840576183],[117.50904083251953,34.06224822998058],[117.40442657470703,34.02824020385742],[117.34713745117199,34.09105300903326],[117.18663024902355,34.07017898559582],[117.01844024658203,34.17945861816412],[116.91522979736362,34.40842437744152],[116.82304382324264,34.39001083374035],[116.72081756591807,34.477474212646484],[116.61669921875,34.48976135253906],[116.36860656738281,34.64086914062506],[116.40851593017601,34.85988235473632],[116.45969390869186,34.89850997924816],[116.77940368652355,34.9440650939942],[116.96147918701183,34.87654113769531],[117.12274169921885,34.64001464843744],[117.16768646240257,34.482429504394645],[117.24007415771484,34.45858764648449],[117.35250091552756,34.59463882446295],[117.48045349121115,34.48172378540045],[117.55650329589842,34.4671745300293],[117.67935943603516,34.544261932373104],[117.79530334472656,34.52215957641607],[117.81449890136732,34.65426635742199],[117.96543121337889,34.67564010620117],[118.094970703125,34.64862442016607],[118.07673645019575,34.58001708984381],[118.16266632080078,34.39336013793945],[118.39965057373092,34.43804168701172],[118.46082305908227,34.677833557128906],[118.71508026123068,34.7608757019043],[118.92056274414072,35.061733245849666],[119.11466217041038,35.06107330322271],[119.28437805175781,35.08986282348627]]]},"properties":{"ID_0":49,"ISO":"CN-32","NAME_0":"China","ID_1":15,"NAME_1":"Jiangsu","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"江蘇|江苏","VARNAME_1":"Jiāngsū"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[118.18945312500023,29.39522171020536],[118.20594787597656,29.350814819336165],[118.03459930419932,29.210161209106726],[118.04351043701182,29.09466934204113],[118.09647369384764,28.993619918823356],[118.18122100830088,28.982320785522514],[118.36033630371116,28.811964035034237],[118.43223571777355,28.674160003662106],[118.4088363647461,28.575767517089957],[118.46610260009798,28.47573852539068],[118.42427062988293,28.292282104492244],[118.3367843627933,28.096084594726502],[118.14241027832043,28.066223144531303],[118.08811187744139,28.011186599731502],[117.92820739746104,27.972093582153377],[117.78416442871104,27.89917182922363],[117.7354660034182,27.806995391845817],[117.47182464599608,27.938741683959957],[117.28168487548828,27.875072479248157],[117.29500579833983,27.77881813049316],[117.19828033447298,27.688455581665096],[117.02031707763683,27.66392326354986],[117.01541137695312,27.565883636474894],[117.09513092041016,27.539754867553768],[117.16455841064453,27.29821205139166],[116.94204711914085,27.04147338867199],[116.67462158203148,26.98192405700695],[116.54402160644531,26.84349822998058],[116.51040649414085,26.72442436218273],[116.56420135498068,26.64577484130859],[116.59362030029297,26.489250183105522],[116.38374328613293,26.24109077453613],[116.42035675048838,26.07698249816906],[116.29248809814487,25.924467086792276],[116.1324615478519,25.870069503784237],[116.13201141357466,25.767911911010856],[116.05081939697301,25.69052124023449],[116.05012512207054,25.55576896667486],[115.9896240234375,25.470994949340934],[116.00704193115246,25.325311660766715],[115.85150909423862,25.213085174560547],[115.90413665771494,25.085796356201286],[115.87726593017578,24.93583488464361],[115.81189727783226,24.90282058715826],[115.76171112060545,24.797672271728512],[115.76219940185547,24.665426254272575],[115.83157348632834,24.565416336059684],[115.72159576416027,24.53724670410162],[115.67007446289061,24.59854125976574],[115.56167602539074,24.627124786376953],[115.47354888916027,24.759233474731385],[115.41083526611374,24.78082466125488],[115.21117401123045,24.725015640258846],[115.10470581054733,24.66470718383789],[115.03675079345727,24.696493148803768],[114.93382263183604,24.649627685546932],[114.87182617187544,24.56470108032238],[114.78713989257857,24.608608245849606],[114.68016052246092,24.537109375000114],[114.52752685546896,24.55403137207037],[114.42615509033203,24.487041473388786],[114.35216522216795,24.58781623840332],[114.16944885253906,24.673164367675724],[114.27632904052757,24.70924568176281],[114.39538574218761,24.877853393554688],[114.39031982421875,24.952095031738338],[114.64369201660179,25.077552795410156],[114.732002258301,25.236312866210994],[114.52974700927734,25.418529510498104],[114.3857650756836,25.319406509399528],[114.23008728027344,25.290590286254996],[114.11812591552733,25.312196731567383],[113.95921325683605,25.457321166992184],[113.9859848022461,25.554302215576172],[113.91043853759766,25.729339599609432],[114.02571105957054,25.926094055175724],[114.0400085449221,26.076362609863395],[114.19464111328124,26.128807067871207],[114.16769409179722,26.21220397949213],[114.04072570800781,26.190862655639876],[113.96507263183638,26.243938446045036],[114.08189392089842,26.414947509765565],[114.11697387695312,26.59279632568365],[113.9014129638673,26.621789932250977],[113.83438873291038,26.80258750915533],[113.91623687744186,26.96213150024414],[113.81130981445335,27.050224304199276],[113.77390289306663,27.140529632568416],[113.84187316894543,27.22589683532726],[113.8673782348634,27.3883056640625],[113.69427490234386,27.33539009094244],[113.61128997802734,27.348873138427848],[113.57796478271483,27.528127670288143],[113.60186004638695,27.628822326660156],[113.75767517089842,27.802581787109375],[113.72681427001976,27.884246826171875],[113.80004882812511,27.98008728027355],[113.9183273315432,28.000001907348576],[114.03450012207077,28.087497711181697],[114.0786285400394,28.182449340820426],[114.24922943115244,28.332538604736325],[114.20749664306686,28.46985816955589],[114.11759185791016,28.598354339599723],[114.1455535888673,28.820493698120114],[114.05625915527355,28.854015350341797],[113.95168304443371,28.970525741577266],[113.9401321411134,29.048280715942322],[114.06909942626953,29.214675903320366],[114.24340820312511,29.238464355468746],[114.28784179687511,29.366165161132923],[114.51341247558615,29.32709121704107],[114.65571594238325,29.39630126953136],[114.75524902343761,29.369329452514936],[114.86354827880858,29.40630340576172],[114.8637161254883,29.48360824584961],[115.00390624999999,29.572092056274414],[115.14858245849655,29.51283836364746],[115.14984893798827,29.66103744506836],[115.40324401855469,29.687685012817383],[115.50516510009766,29.841829299926815],[115.68840789794932,29.851032257080135],[115.87762451171886,29.735132217407394],[116.04251098632822,29.750391006469897],[116.12962341308592,29.824850082397575],[116.27577972412121,29.791370391845756],[116.4651412963867,29.900489807128906],[116.54703521728537,29.917903900146655],[116.58567047119142,30.05631828308111],[116.67045593261764,30.074922561645565],[116.89521026611362,29.952171325683594],[116.8073425292971,29.814264297485465],[116.6518249511722,29.688985824585018],[116.70677947998045,29.587591171264588],[116.83589935302734,29.573484420776534],[116.99089813232432,29.685926437377987],[117.1075592041018,29.714485168457202],[117.12251281738293,29.89785194396973],[117.21170806884788,29.929412841796985],[117.24764251708984,29.83720207214384],[117.33312988281283,29.850299835205135],[117.449600219727,29.751541137695312],[117.53356170654297,29.60194969177246],[117.64278411865244,29.617582321166992],[117.70237731933605,29.5515861511231],[117.87139892578125,29.548921585083125],[118.00888824462902,29.57979393005371],[118.1384963989259,29.49219703674339],[118.18945312500023,29.39522171020536]]]},"properties":{"ID_0":49,"ISO":"CN-36","NAME_0":"China","ID_1":16,"NAME_1":"Jiangxi","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"江西","VARNAME_1":"Jiāngxī"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[131.27595520019554,43.47871780395519],[131.30575561523438,43.392730712890675],[131.18988037109375,43.20090103149414],[131.20433044433628,43.14319229125982],[131.09658813476562,43.020431518554744],[131.1265869140626,42.930519104003906],[131.02960205078136,42.86328125000006],[130.78915405273438,42.86434555053722],[130.54434204101562,42.807689666748104],[130.53059387207043,42.697570800781364],[130.62303161621116,42.62267303466797],[130.6104888916018,42.55820846557622],[130.41555786132835,42.57017898559576],[130.24824523925804,42.71139144897472],[130.26582336425804,42.886070251464844],[130.11624145507812,42.902774810791016],[130.07073974609386,42.96932220458989],[129.89653015136741,43.0019989013673],[129.7618408203125,42.71091079711914],[129.74058532714844,42.464313507080135],[129.52586364746128,42.38634490966797],[129.44577026367188,42.44118499755865],[129.23498535156284,42.37416076660156],[129.1409149169922,42.14328384399414],[128.9551696777345,42.07561874389654],[128.94512939453125,42.01747894287109],[128.74354553222668,42.04288864135753],[128.5725860595703,41.99794006347667],[128.29060363769543,42.03458023071289],[128.06402587890625,41.96541976928722],[128.08639526367188,41.814525604248104],[128.14413452148438,41.723869323730575],[128.29730224609386,41.63393783569347],[128.3138122558596,41.58303070068364],[128.20202636718747,41.40959930419922],[128.1024627685547,41.36301803588873],[128.00027465820335,41.429031372070256],[127.61698913574253,41.424991607666016],[127.4087066650394,41.45542144775396],[127.15936279296886,41.539051055908196],[127.04412841796898,41.74277877807623],[126.94390106201172,41.78820037841797],[126.75700378417967,41.726505279541016],[126.61067199707065,41.642890930175774],[126.44696044921885,41.35438156127929],[126.30815887451205,41.22368240356457],[126.28719329833984,41.159488677978516],[126.16004943847679,41.0840682983399],[126.00634765625044,40.89154815673828],[125.9125137329106,40.89314270019537],[125.78570556640635,40.90217208862304],[125.70547485351561,40.866161346435604],[125.67092132568393,40.97814559936529],[125.78640747070334,41.160285949706974],[125.63453674316408,41.334068298339844],[125.43860626220736,41.599834442138615],[125.4460220336915,41.66999435424816],[125.31559753417969,41.68470382690424],[125.2836151123048,41.839859008789176],[125.31581115722656,41.97240447998058],[125.47946929931639,42.13902664184581],[125.333808898926,42.14725112915039],[125.26272583007824,42.264778137207145],[125.15403747558592,42.34770965576177],[125.16471862792969,42.429653167724666],[125.07175445556686,42.49752044677729],[124.98367309570325,42.77033233642578],[124.84268188476607,42.86259460449213],[124.86291503906261,42.97772979736334],[124.78251647949217,43.110992431640625],[124.51635742187499,42.86565780639654],[124.36603546142624,42.90604400634777],[124.3315429687501,42.99481201171875],[124.41047668457077,43.076862335205185],[124.2842254638673,43.15907287597662],[124.27725982666016,43.214859008789176],[124.01515197753939,43.28372192382824],[123.75955200195324,43.4728393554688],[123.69683837890625,43.37086868286133],[123.58676910400389,43.3707008361817],[123.4786071777347,43.46884155273443],[123.31695556640646,43.495536804199276],[123.32202148437533,43.556827545166016],[123.50308990478538,43.59367370605463],[123.52735137939476,43.66374206542969],[123.47249603271496,43.857593536376946],[123.34236907958996,44.02139282226568],[123.38014984130858,44.15814590454113],[123.29075622558592,44.19419097900396],[123.11921691894543,44.422187805175895],[123.02581787109375,44.50304794311523],[122.85549163818358,44.39595794677734],[122.43000793457031,44.22442245483404],[122.26073455810547,44.266525268554744],[122.28643035888695,44.47027206420904],[122.09339141845714,44.636604309082145],[122.0802459716799,44.910278320312614],[122.1178741455078,45.15877151489258],[122.23198699951172,45.222103118896484],[122.14030456542979,45.299797058105405],[122.16167449951182,45.43026733398432],[122.01477813720702,45.489044189453125],[121.9461593627932,45.70629501342785],[121.77812194824241,45.68417358398437],[121.66998291015648,45.7176132202149],[121.80608367919922,45.879211425781364],[121.82534790039062,46.02114868164073],[122.07074737548838,45.922912597656364],[122.24613189697264,45.8030624389649],[122.36753845214844,45.90985870361334],[122.48887634277354,45.853805541992244],[122.55725860595724,45.762821197509766],[122.71768951416037,45.713172912597656],[122.79521179199253,45.770717620849666],[122.82079315185548,45.88393402099615],[122.77993774414074,46.067497253418075],[123.03833770751964,46.09715652465832],[123.17104339599634,46.24668121337896],[123.36196136474621,46.220123291015625],[123.50250244140625,46.25378036499023],[123.72232818603516,46.25339508056646],[123.88510894775389,46.301368713378906],[124.03059387207065,46.013851165771484],[123.95042419433639,45.94403076171881],[124.1277084350586,45.6301765441895],[124.20967864990246,45.62885665893566],[124.33868408203125,45.54535293579113],[124.38897705078136,45.437797546386776],[124.5395050048828,45.40707397460943],[124.74886322021484,45.45964050292963],[124.86831665039062,45.43911361694347],[125.0384750366211,45.490486145019645],[125.06824493408202,45.38916015625006],[125.40406799316419,45.43107986450206],[125.67999267578146,45.50801086425787],[125.69538116455077,45.33446502685558],[125.90144348144575,45.19057846069347],[126.01431274414084,45.15170669555663],[126.23775482177744,45.13749694824219],[126.3949661254883,45.216625213623104],[126.60437011718783,45.23363494873047],[126.96325683593771,45.072299957275504],[127.08002471923827,44.95063781738287],[126.99614715576206,44.87908554077159],[126.98287200927747,44.77508926391607],[127.03566741943358,44.70638656616211],[127.0243148803712,44.5905380249024],[127.21187591552734,44.633880615234425],[127.44866943359399,44.607799530029354],[127.47427368164062,44.40299606323248],[127.61432647705078,44.27439498901373],[127.62081146240234,44.183494567871094],[127.73556518554697,44.092674255371094],[127.86141967773459,44.06307220458979],[128.04721069335983,44.10842132568371],[128.09790039062523,44.21200561523449],[128.04859924316418,44.35000228881847],[128.15715026855503,44.33892059326172],[128.21028137207054,44.42990112304687],[128.35960388183616,44.508617401123104],[128.46697998046886,44.37427520751959],[128.46276855468773,44.15715408325207],[128.51533508300793,44.11908721923834],[128.65280151367233,43.884819030761776],[128.7337951660156,43.79654312133789],[128.84960937500023,43.55955123901372],[129.00317382812545,43.51940155029302],[129.20211791992233,43.574462890625],[129.23046875,43.80673217773432],[129.3954315185547,43.813796997070305],[129.4636840820316,43.86940765380865],[129.6570739746095,43.867465972900504],[129.85945129394565,44.01048660278332],[129.99787902832043,43.995368957519474],[130.00299072265648,43.881027221679744],[130.33006286621116,43.94802093505871],[130.51580810546875,43.62832260131836],[130.73614501953148,43.551612854003956],[130.87660217285156,43.43532562255871],[130.99462890625023,43.497936248779354],[131.16365051269543,43.43925094604503],[131.27595520019554,43.47871780395519]]]},"properties":{"ID_0":49,"ISO":"CN-22","NAME_0":"China","ID_1":17,"NAME_1":"Jilin","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"吉林","VARNAME_1":"Jílín"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[121.7179183959962,39.4409637451173],[121.5929183959963,39.43264389038097],[121.53597259521518,39.379585266113224],[121.44069671630871,39.50680541992182],[121.31958007812511,39.59347534179693],[121.52041625976574,39.63042449951172],[121.45458221435547,39.74458694458008],[121.47180938720726,39.80736541748058],[121.7023620605471,39.928474426269645],[121.76985931396484,39.9131965637207],[122.10430908203136,40.24124908447271],[122.08930206298862,40.29430389404308],[122.30124664306642,40.47402954101562],[122.1518020629884,40.599578857421875],[122.15736389160168,40.68069458007818],[121.86930847168014,40.8143043518067],[121.73124694824217,40.84431076049816],[121.55652618408213,40.84097290039074],[121.49624633789074,40.88597106933605],[121.17180633544932,40.92208480834966],[120.93152618408214,40.77264022827148],[120.93708038330077,40.69153213500988],[120.82847595214888,40.6782112121582],[120.67430877685571,40.53792190551763],[120.49819183349645,40.32514190673833],[120.44264221191405,40.195693969726676],[120.3156967163086,40.18680953979503],[120.15319061279297,40.1106948852539],[119.94040679931688,40.053749084472706],[119.80721282958984,39.97958374023449],[119.73799133300804,40.19283676147461],[119.64680480957031,40.217468261718864],[119.58081054687499,40.37427520751953],[119.59908294677733,40.45381164550781],[119.53701019287153,40.54928588867193],[119.29592132568405,40.52883529663097],[119.13710784912143,40.6328582763673],[118.9892196655278,40.690673828125114],[118.8355941772461,40.803291320800774],[118.88581848144553,40.94926071166992],[119.18230438232457,41.19206619262695],[119.23310852050804,41.312511444091854],[119.39688110351597,41.4728736877442],[119.30364990234375,41.66513824462901],[119.28170776367188,41.7842369079591],[119.31414794921875,41.96540069580078],[119.37397766113293,42.08968734741211],[119.22856140136741,42.202850341796875],[119.27729034423861,42.26804733276373],[119.5371322631836,42.355705261230526],[119.60010528564464,42.25545120239258],[119.84078216552734,42.21323394775396],[119.83965301513695,42.09523773193371],[120.12115478515625,41.77027893066406],[120.3309783935549,41.978363037109375],[120.47286987304688,42.02441024780268],[120.46109771728538,42.10309600830078],[120.73976135253929,42.22132873535167],[120.91995239257812,42.27224731445324],[121.024757385254,42.246910095214844],[121.2657699584963,42.37526702880854],[121.40024566650415,42.48287582397472],[121.58621215820335,42.515361785888615],[121.6551895141605,42.43623352050787],[121.85715484619152,42.54022598266607],[121.93098449707064,42.684535980224545],[122.2056350708009,42.722877502441456],[122.33116149902344,42.67255020141601],[122.55168914794922,42.823490142822315],[122.61830139160178,42.77329635620117],[123.06138610839865,42.7733726501466],[123.17356109619186,42.855270385742244],[123.24979400634788,42.9931755065918],[123.43212127685547,43.0376701354981],[123.55663299560545,43.00646209716797],[123.62375640869175,43.07759094238281],[123.69683837890625,43.37086868286133],[123.75955200195324,43.4728393554688],[124.01515197753939,43.28372192382824],[124.27725982666016,43.214859008789176],[124.2842254638673,43.15907287597662],[124.41047668457077,43.076862335205185],[124.3315429687501,42.99481201171875],[124.36603546142624,42.90604400634777],[124.51635742187499,42.86565780639654],[124.78251647949217,43.110992431640625],[124.86291503906261,42.97772979736334],[124.84268188476607,42.86259460449213],[124.98367309570325,42.77033233642578],[125.07175445556686,42.49752044677729],[125.16471862792969,42.429653167724666],[125.15403747558592,42.34770965576177],[125.26272583007824,42.264778137207145],[125.333808898926,42.14725112915039],[125.47946929931639,42.13902664184581],[125.31581115722656,41.97240447998058],[125.2836151123048,41.839859008789176],[125.31559753417969,41.68470382690424],[125.4460220336915,41.66999435424816],[125.43860626220736,41.599834442138615],[125.63453674316408,41.334068298339844],[125.78640747070334,41.160285949706974],[125.67092132568393,40.97814559936529],[125.70547485351561,40.866161346435604],[125.78570556640635,40.90217208862304],[125.9125137329106,40.89314270019537],[125.77462005615244,40.886791229248104],[125.55963134765648,40.76443099975585],[125.4544677734375,40.668151855468864],[125.1899185180664,40.60818099975597],[124.88754272460947,40.470890045166016],[124.38584136962913,40.12308883666998],[124.34039306640624,39.98122024536144],[124.20153045654297,39.86014175415033],[124.00458526611374,39.80041885375987],[123.87180328369163,39.855422973632926],[123.65985870361328,39.85569763183593],[123.41152954101562,39.73096847534191],[123.41069793701183,39.80847167968756],[123.2629165649414,39.78819274902344],[123.26374816894554,39.707920074463004],[123.14514160156295,39.66347122192394],[123.029296875,39.67847061157232],[122.6651382446289,39.52569961547857],[122.57013702392612,39.46485900878906],[122.4318084716798,39.467926025390625],[122.24819183349608,39.342365264892635],[122.24124145507857,39.28208541870117],[122.09347534179699,39.19486618041992],[121.9548568725586,39.0373649597168],[121.73819732666014,39.03847503662115],[121.47207641601595,38.81792068481457],[121.34652709960949,38.8245849609375],[121.19735717773483,38.722358703613274],[121.13375091552733,38.72541809082031],[121.09430694580101,38.92874908447265],[121.20430755615234,38.931804656982536],[121.31708526611351,39.001529693603565],[121.65763854980479,39.07847595214844],[121.6115264892578,39.20486450195307],[121.7579193115239,39.31042480468756],[121.7179183959962,39.4409637451173]]]},"properties":{"ID_0":49,"ISO":"CN-21","NAME_0":"China","ID_1":18,"NAME_1":"Liaoning","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"遼寧|辽宁","VARNAME_1":"Liáoníng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[123.17104339599634,46.24668121337896],[123.03833770751964,46.09715652465832],[122.77993774414074,46.067497253418075],[122.82079315185548,45.88393402099615],[122.79521179199253,45.770717620849666],[122.71768951416037,45.713172912597656],[122.55725860595724,45.762821197509766],[122.48887634277354,45.853805541992244],[122.36753845214844,45.90985870361334],[122.24613189697264,45.8030624389649],[122.07074737548838,45.922912597656364],[121.82534790039062,46.02114868164073],[121.80608367919922,45.879211425781364],[121.66998291015648,45.7176132202149],[121.77812194824241,45.68417358398437],[121.9461593627932,45.70629501342785],[122.01477813720702,45.489044189453125],[122.16167449951182,45.43026733398432],[122.14030456542979,45.299797058105405],[122.23198699951172,45.222103118896484],[122.1178741455078,45.15877151489258],[122.0802459716799,44.910278320312614],[122.09339141845714,44.636604309082145],[122.28643035888695,44.47027206420904],[122.26073455810547,44.266525268554744],[122.43000793457031,44.22442245483404],[122.85549163818358,44.39595794677734],[123.02581787109375,44.50304794311523],[123.11921691894543,44.422187805175895],[123.29075622558592,44.19419097900396],[123.38014984130858,44.15814590454113],[123.34236907958996,44.02139282226568],[123.47249603271496,43.857593536376946],[123.52735137939476,43.66374206542969],[123.50308990478538,43.59367370605463],[123.32202148437533,43.556827545166016],[123.31695556640646,43.495536804199276],[123.4786071777347,43.46884155273443],[123.58676910400389,43.3707008361817],[123.69683837890625,43.37086868286133],[123.62375640869175,43.07759094238281],[123.55663299560545,43.00646209716797],[123.43212127685547,43.0376701354981],[123.24979400634788,42.9931755065918],[123.17356109619186,42.855270385742244],[123.06138610839865,42.7733726501466],[122.61830139160178,42.77329635620117],[122.55168914794922,42.823490142822315],[122.33116149902344,42.67255020141601],[122.2056350708009,42.722877502441456],[121.93098449707064,42.684535980224545],[121.85715484619152,42.54022598266607],[121.6551895141605,42.43623352050787],[121.58621215820335,42.515361785888615],[121.40024566650415,42.48287582397472],[121.2657699584963,42.37526702880854],[121.024757385254,42.246910095214844],[120.91995239257812,42.27224731445324],[120.73976135253929,42.22132873535167],[120.46109771728538,42.10309600830078],[120.47286987304688,42.02441024780268],[120.3309783935549,41.978363037109375],[120.12115478515625,41.77027893066406],[119.83965301513695,42.09523773193371],[119.84078216552734,42.21323394775396],[119.60010528564464,42.25545120239258],[119.5371322631836,42.355705261230526],[119.27729034423861,42.26804733276373],[119.22856140136741,42.202850341796875],[119.37397766113293,42.08968734741211],[119.31414794921875,41.96540069580078],[119.28170776367188,41.7842369079591],[119.30364990234375,41.66513824462901],[119.39688110351597,41.4728736877442],[119.23310852050804,41.312511444091854],[119.19430541992197,41.28028106689453],[118.88467407226585,41.29891967773449],[118.76374816894554,41.351032257080135],[118.3426513671875,41.340641021728516],[118.12394714355467,41.73998641967785],[118.15925598144531,41.811031341552734],[118.28584289550793,41.77069854736328],[118.3283691406251,41.86101531982433],[118.30023193359398,41.977607727050774],[118.09095764160156,42.10280609130865],[118.0995025634769,42.16967010498047],[118.01770782470702,42.38269424438482],[117.7731399536134,42.61648941040039],[117.67736053466808,42.57886505126958],[117.4676284790039,42.5838737487793],[117.40394592285155,42.474704742431754],[117.0145187377932,42.454704284668026],[116.89810943603514,42.388458251953125],[116.87339019775435,42.01646423339855],[116.70923614501989,41.941905975341854],[116.52749633789062,41.93688964843756],[116.32083129882858,42.00352478027338],[116.18979644775438,41.862461090088004],[115.99418640136719,41.81492996215832],[115.91017150878929,41.94323348999029],[115.80461120605469,41.91062164306652],[115.42324066162153,41.726482391357365],[115.31996917724608,41.700107574463004],[115.3590240478519,41.61180114746094],[115.21518707275402,41.57805633544922],[114.88935089111351,41.6345481872558],[114.88992309570335,41.765785217285206],[114.93949127197276,41.820648193359375],[114.89532470703136,41.99150085449213],[114.76879882812523,42.109020233154354],[114.55392456054699,42.13053131103527],[114.47077178955112,42.049312591552784],[114.4928207397463,41.970363616943416],[114.33010864257834,41.920093536376946],[114.20509338378906,41.79763031005864],[114.23322296142601,41.637542724609375],[114.1511459350586,41.52384567260748],[114.01346588134787,41.51765441894537],[113.86356353759777,41.436580657958984],[113.93061065673862,41.38480758666998],[113.9137954711914,41.17041015625],[113.86180114746094,41.067337036132926],[113.96630859375,40.98146057128911],[114.12786102294922,40.73575973510753],[114.05723571777355,40.70555496215826],[114.05509948730513,40.527389526367294],[113.84435272216808,40.459472656250114],[113.7838745117192,40.50125503540039],[113.55307769775436,40.347541809082145],[113.31632995605491,40.31749343872082],[113.24909973144541,40.41027450561523],[112.89204406738293,40.32830047607416],[112.83833312988281,40.202842712402344],[112.72182464599621,40.16704177856445],[112.44920349121094,40.29874038696294],[112.30272674560547,40.25146484375],[111.97008514404297,39.79625701904302],[111.92712402343767,39.61918258667003],[111.76055908203153,39.58994674682623],[111.48661041259788,39.658477783203125],[111.33066558837884,39.4188346862793],[111.21085357666043,39.42956924438482],[111.13376617431646,39.36773300170904],[111.06042480468767,39.408031463623104],[111.13012695312523,39.52239990234386],[111.0276718139649,39.565837860107365],[110.86275482177761,39.48997116088867],[110.61533355712913,39.2487525939942],[110.53153228759783,39.374588012695426],[110.38414764404303,39.312988281250114],[110.2311935424807,39.446189880371094],[110.11435699462884,39.43654632568365],[110.2112884521486,39.283725738525504],[110.0106430053711,39.21313858032238],[109.84896087646507,39.090114593505966],[109.71360015869152,39.06563568115229],[109.67360687255876,38.93149948120117],[109.42097473144536,38.8035621643067],[109.38880157470697,38.71052932739269],[109.14798736572271,38.55510330200207],[108.96966552734396,38.33824539184582],[108.9410934448245,38.16735839843756],[109.05448150634783,38.08185577392578],[108.94341278076183,37.92190933227538],[108.87333679199224,37.993030548095646],[108.77796173095707,37.949836730956974],[108.77864837646479,37.68402862548833],[108.25249481201178,37.666648864746094],[108.14290618896496,37.61661911010748],[108.01074981689447,37.670696258544865],[107.95917510986334,37.79476165771479],[107.65174865722685,37.874370574951286],[107.4252853393557,37.94097900390631],[107.32537841796902,38.09282302856445],[107.16729736328136,38.15775680541998],[106.99632263183616,38.12188720703124],[106.78393554687494,38.17107772827154],[106.54116058349626,38.272808074951286],[106.50563049316418,38.36300277709972],[106.61534881591814,38.43887710571295],[106.68863677978516,38.57799911499035],[106.67697143554705,38.67112350463867],[106.8064956665039,38.82532501220703],[106.9643554687501,38.957740783691406],[106.96534729003923,39.05124664306646],[106.84243774414091,39.092735290527344],[106.78829193115261,39.23233413696295],[106.78872680664078,39.35830688476568],[106.59067535400419,39.364078521728516],[106.50195312500006,39.30188751220709],[106.27547454834001,39.26128387451183],[106.29103088378935,39.16716384887707],[106.1414413452149,39.1523056030274],[106.06916046142601,38.972263336181584],[105.96900177001959,38.910896301269645],[105.84742736816399,38.61778259277338],[105.8224868774414,38.425018310546875],[105.84873199462919,38.25043106079107],[105.77106475830082,38.18635559082031],[105.7764434814456,38.08433914184581],[105.83579254150385,38.00751495361334],[105.75645446777337,37.79936981201171],[105.63972473144524,37.77935028076172],[105.59505462646513,37.69903182983404],[105.31082916259771,37.701457977294915],[105.10706329345702,37.63306808471691],[104.98526000976591,37.544406890869254],[104.68183898925776,37.505451202392635],[104.57798004150396,37.538665771484375],[104.40944671630888,37.515586853027344],[104.2790756225586,37.428287506103516],[104.17815399169939,37.40818786621094],[103.8916397094726,37.591625213623104],[103.66897583007818,37.78575134277355],[103.40696716308588,37.85186767578131],[103.36228942871122,38.09072113037115],[103.54444885253933,38.155284881591854],[103.47286224365239,38.34653854370123],[103.41771697998047,38.41262435913097],[103.87630462646489,38.64512252807628],[104.03190612792974,38.89115905761718],[104.17420959472679,38.94146347045904],[104.20571136474615,39.09294891357422],[104.05253601074224,39.297470092773494],[104.09106445312504,39.41781616210943],[103.94136810302763,39.46476364135742],[103.83745574951166,39.458847045898494],[103.36135101318388,39.34606933593749],[103.13194274902338,39.20756149291998],[103.012504577637,39.10509109497075],[102.60748291015625,39.18165969848644],[102.45579528808611,39.2540397644043],[102.20078277587906,39.17051696777355],[101.81523132324224,39.102142333984425],[102.08049011230474,38.89690017700207],[101.77305603027366,38.665138244628906],[101.61688232421903,38.66196441650396],[101.53044128417991,38.72551727294933],[101.32752227783207,38.78275299072277],[101.18752288818365,38.967781066894474],[101.00997161865261,38.95734024047863],[100.86227416992193,39.10592269897472],[100.82853698730491,39.21221923828131],[100.837646484375,39.40134811401373],[100.49961090087885,39.398361206054744],[100.50340270996105,39.47748565673828],[100.33266448974636,39.51032638549799],[100.25063323974615,39.687465667724716],[100.02754974365251,39.735771179199276],[99.76493835449219,39.88597488403326],[99.46066284179699,39.87522506713867],[99.61937713623064,40.06402969360346],[99.90689849853537,40.21214675903326],[100.0199279785158,40.39704895019537],[100.2417984008789,40.605705261230526],[100.22425079345703,40.72631454467773],[100.11625671386736,40.86449813842785],[100.01584625244169,40.90642547607422],[99.68782043457043,40.932682037353516],[99.56833648681646,40.84878921508795],[99.17937469482439,40.86471176147472],[98.84620666503912,40.73659515380865],[98.63681793212896,40.53940200805664],[98.25740051269537,40.52898025512701],[98.36934661865233,40.83678436279308],[98.33477020263666,40.91304779052745],[97.96666717529313,41.10291290283203],[97.6553421020509,41.40597915649419],[97.62551116943365,41.4967422485351],[97.84020996093766,41.65574645996099],[97.18472290039067,42.7716903686524],[98.01983642578136,42.683349609375],[98.24787902832037,42.63785934448242],[99.01644897460932,42.60411071777355],[99.4962768554688,42.57008361816412],[99.99502563476585,42.64761352539074],[100.2826766967774,42.63079071044933],[100.32646179199219,42.68333053588872],[100.91158294677729,42.645259857177734],[101.81681823730462,42.47360992431646],[102.06329345703125,42.21868896484375],[102.41458129882807,42.140525817871094],[102.73903656005876,42.13415908813482],[102.97598266601562,42.02602005004888],[103.32208251953135,41.90747070312506],[103.86239624023466,41.80794143676758],[103.98348999023443,41.80713272094738],[104.54374694824213,41.88379287719737],[104.53401184082043,41.6626205444337],[104.94488525390642,41.64532470703119],[105.03448486328153,41.56768798828119],[105.26548767089838,41.73874664306652],[105.30593109130854,41.73463058471691],[105.80189514160156,41.95764541625971],[106.00920104980486,42.018299102783146],[106.68363189697283,42.259391784668026],[107.26647186279308,42.35665893554693],[107.29492187499994,42.407287597656364],[107.45279693603544,42.4618873596192],[107.55423736572271,42.426956176757756],[107.91242218017601,42.41201019287115],[108.23854827880858,42.46195220947271],[108.29219818115239,42.43943023681646],[108.52535247802729,42.45534133911133],[108.78234863281256,42.409713745117244],[108.96829986572266,42.45653152465825],[109.23860931396507,42.429569244384766],[109.54747772216808,42.471664428710994],[109.83471679687511,42.624961853027344],[110.14359283447266,42.636798858642685],[110.41650390625017,42.768920898437614],[110.45240020751952,42.85855865478527],[110.62195587158203,42.929962158203125],[110.70346832275395,43.0570678710938],[110.81427001953148,43.13012695312506],[111.04714202880865,43.343456268310604],[111.4383468627932,43.47341156005865],[111.57450866699224,43.48953247070307],[111.7539367675783,43.690742492675895],[111.97027587890625,43.7388916015625],[112.01568603515624,43.79132080078125],[111.85216522216814,43.99282836914074],[111.67044067382812,44.03451156616222],[111.39395141601591,44.32161331176752],[111.38784027099638,44.392890930175774],[111.51686096191423,44.588943481445305],[111.5598754882813,44.72308349609375],[111.74047851562523,44.96209716796881],[111.8331298828125,45.04852294921881],[111.97607421875028,45.09008789062506],[112.41552734375023,45.061523437500114],[112.55487060546875,44.96612548828131],[112.75808715820335,44.870479583740284],[112.90032958984396,44.865112304687436],[113.12091064453125,44.799682617187614],[113.46167755126964,44.79184341430664],[113.62380981445324,44.743957519531364],[113.79145812988293,44.84782409667968],[114.00749206542969,44.93271636962896],[114.3792724609375,45.165283203125114],[114.54870605468773,45.39849853515631],[114.75189208984386,45.45312500000011],[115.00012207031249,45.365173339843864],[115.33930206298851,45.38307571411133],[115.72115325927757,45.43843841552746],[115.76531982421875,45.50292968749994],[116.06511688232432,45.67551040649414],[116.1982955932617,45.686294555664055],[116.27349853515636,45.76110839843756],[116.26206970214866,45.95033264160162],[116.60528564453159,46.297119140625114],[116.93890380859375,46.351318359374936],[117.37146759033237,46.35477066040045],[117.43295288085959,46.57503890991216],[117.61551666259787,46.58037948608404],[117.70111083984375,46.507873535156364],[118.0410766601567,46.630310058593864],[118.27005004882811,46.787563323974666],[118.56262969970703,46.769142150878956],[118.67047119140646,46.80447006225586],[118.8014831542971,46.781379699707145],[118.93591308593749,46.819526672363395],[119.21196746826195,46.73436355590832],[119.40370178222666,46.63362121582031],[119.40284729003906,46.45494079589844],[119.51092529296886,46.46087646484381],[119.60554504394565,46.5564575195313],[119.77449035644541,46.62205886840832],[119.92072296142591,46.743499755859375],[119.80391693115268,46.923274993896484],[119.85070800781271,47.1016845703125],[119.70147705078136,47.19311523437506],[119.8271484375,47.26261138916027],[119.71611785888683,47.320999145507926],[119.49969482421909,47.33550262451183],[119.32192993164095,47.43679046630853],[119.33630371093773,47.53131103515631],[119.18785095214844,47.518459320068416],[119.12408447265636,47.70330810546875],[118.77584838867222,47.80654907226568],[118.47869873046875,48.00012207031256],[118.25292968750023,48.001892089843864],[118.06724548339854,48.0394401550293],[117.75969696044932,47.99018859863287],[117.55658721923851,47.7889404296875],[117.37451171875011,47.63805770874034],[117.1082763671875,47.80987548828119],[116.82678222656249,47.898399353027344],[116.64216613769554,47.89036178588873],[116.44989013671874,47.8428192138673],[116.25628662109375,47.87670898437506],[116.13771057128928,47.83546447753906],[115.94937133789062,47.679122924804744],[115.55377960205078,47.94832611083996],[115.51489257812499,48.18389892578119],[115.81250000000024,48.261474609375114],[115.8214950561528,48.53166580200206],[116.11102294921922,48.792751312255916],[116.05310058593761,48.8770751953125],[116.70027160644564,49.839855194091854],[116.93340301513672,49.72518920898449],[117.27426910400413,49.63154983520508],[117.47849273681642,49.62837600708019],[117.84203338623047,49.506931304931584],[118.15896606445324,49.660980224609375],[118.54898834228538,49.91485214233404],[118.67079925537108,49.948379516601676],[119.07359313964876,49.98377990722662],[119.19748687744162,50.01208877563482],[119.36380767822287,50.17494964599621],[119.34559631347656,50.34682083129888],[119.18374633789085,50.345920562744254],[119.2734909057617,50.60175323486333],[119.42825317382824,50.69343948364269],[119.58075714111361,50.975570678710994],[119.74944305419933,51.10062026977545],[119.75689697265646,51.21081161499023],[119.8677368164067,51.297435760498104],[119.9873733520509,51.45269012451183],[120.0864028930664,51.66909027099614],[120.17446899414061,51.68162155151373],[120.47400665283203,51.88294219970709],[120.65203094482443,51.934108734130916],[120.76122283935547,52.11244964599621],[120.75633239746107,52.2444801330567],[120.61812591552733,52.315029144287166],[120.71965026855467,52.52878952026367],[120.45249176025403,52.641300201416016],[120.06121063232456,52.58407211303711],[120.02459716796908,52.75965118408203],[120.28043365478537,52.866298675537216],[120.52926635742199,53.071357727050774],[120.87671661376976,53.28703308105469],[121.21849060058605,53.28129196166998],[121.69239044189453,53.388511657714844],[121.4893798828126,53.33117294311518],[121.67065429687499,53.23693466186535],[121.64614105224634,53.180465698242244],[121.80916595458983,53.06410598754894],[121.70822143554686,52.99644470214849],[121.61347198486328,52.85200119018565],[121.36288452148459,52.680671691894474],[121.19284057617222,52.60234069824219],[121.51914978027344,52.45304107666021],[121.63298034667991,52.443183898925895],[121.70687103271518,52.316814422607536],[121.9407272338867,52.29719161987299],[122.12637329101585,52.474529266357536],[122.30334472656249,52.47386169433605],[122.33618927001964,52.41145706176758],[122.57911682128906,52.26520919799805],[122.75592803955078,52.265460968017635],[122.76294708251963,52.17710494995123],[122.62368774414074,52.135234832763786],[122.71907806396496,51.97739410400401],[122.74273681640635,51.742351531982365],[122.84937286376987,51.60534667968749],[122.84770202636719,51.47627258300787],[122.96698760986372,51.33358383178722],[123.2828292846682,51.2494468688966],[123.63520812988314,51.3184928894044],[123.70346832275402,51.39673995971673],[123.88298797607422,51.317989349365234],[124.23169708251977,51.343036651611385],[124.39867401123045,51.270305633544915],[124.48261260986338,51.37877273559581],[124.68614959716831,51.331619262695305],[124.85720825195322,51.37818908691406],[124.92606353759777,51.49910736083984],[125.03956604003918,51.527923583984375],[125.12730407714855,51.632411956787166],[125.34353637695335,51.622177124023494],[125.69090270996094,51.33047866821294],[125.75080871582041,51.225524902343864],[125.84705352783226,51.20912933349621],[125.97352600097678,51.09569931030285],[126.06407165527342,50.95911407470703],[125.78872680664107,50.73558425903326],[125.81913757324219,50.54684448242193],[125.6349334716799,50.449859619140625],[125.4375915527345,50.265930175781364],[125.44105529785168,50.210117340088004],[125.27192687988281,50.12553024291992],[125.19312286376987,49.73693847656256],[125.21549224853516,49.48554229736328],[125.26615905761729,49.3585472106933],[125.14952850341808,49.143058776855575],[124.88232421875023,49.177158355712834],[124.64270782470703,48.82167434692383],[124.6108627319336,48.67626953125006],[124.51280212402344,48.5483283996582],[124.51212310791037,48.40478515625],[124.57075500488315,48.257568359375],[124.50231933593751,48.124053955078125],[124.30473327636719,48.36406326293945],[124.2668151855471,48.52974319458019],[124.07180023193393,48.429424285888786],[123.75467681884787,48.204475402832145],[123.57421874999999,48.04172134399414],[123.29052734375011,47.9519500732423],[123.20001220703148,47.81901931762701],[122.81840515136763,47.65956878662104],[122.54921722412108,47.52074050903326],[122.49520111083986,47.40611648559576],[122.38791656494185,47.344146728515625],[122.60468292236327,47.12254714965832],[122.84196472167969,47.05282592773449],[122.89059448242188,46.95026397705078],[122.88900756835938,46.815731048583984],[123.0269241333009,46.724731445312614],[123.15702819824251,46.742782592773494],[123.20538330078148,46.84386444091797],[123.35256958007812,46.860954284668075],[123.62447357177744,46.80361557006847],[123.58889770507811,46.68665695190435],[123.34964752197277,46.6744995117188],[123.26243591308638,46.611534118652344],[123.00372314453124,46.57372283935541],[123.01202392578136,46.418949127197266],[123.17104339599634,46.24668121337896]]]},"properties":{"ID_0":49,"ISO":"CN-15","NAME_0":"China","ID_1":19,"NAME_1":"Nei Mongol","TYPE_1":"Zìzhìqu","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"內蒙古自治區|内蒙古自治区","VARNAME_1":"Inner Mongol|Nèiměnggǔ"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[107.65174865722685,37.874370574951286],[107.62453460693376,37.781639099121094],[107.49404144287104,37.76507568359375],[107.47991180419933,37.70582962036133],[107.31051635742216,37.593761444091854],[107.25147247314453,37.32836532592773],[107.32924652099604,37.1686897277832],[107.27139282226567,37.08225250244146],[107.15986633300776,37.148857116699276],[107.02391052246111,37.11317443847661],[106.79940032959001,37.151260375976555],[106.60285949707037,37.108383178710994],[106.64400482177734,37.04540634155284],[106.57569885253905,36.94168090820318],[106.65255737304705,36.81812286376959],[106.52542114257818,36.73141479492182],[106.44644927978521,36.5618896484375],[106.51650238037121,36.454776763916016],[106.46853637695318,36.295066833496094],[106.86044311523455,36.20060348510748],[106.94766235351568,36.092304229736435],[106.93566894531273,35.945045471191406],[106.8548202514649,35.89708709716808],[106.92334747314463,35.80731201171869],[106.74959564208979,35.687606811523494],[106.54910278320341,35.74375152587901],[106.43910980224626,35.69412994384771],[106.47740173339855,35.588520050048885],[106.44417572021489,35.52415084838878],[106.50755310058588,35.438972473144645],[106.47063446044928,35.312320709228516],[106.3540344238283,35.23654556274413],[106.2427139282227,35.352371215820426],[106.2352981567385,35.40990066528332],[106.0878601074221,35.41488647460943],[105.96811676025419,35.54033279418957],[105.81684875488287,35.572719573974666],[105.7104873657226,35.65093612670904],[105.66387176513678,35.747375488281364],[105.48910522460938,35.7248649597168],[105.33605957031244,35.884445190429744],[105.32534027099638,36.01859283447277],[105.50463867187527,36.143032073974666],[105.47440338134766,36.286151885986264],[105.39843749999994,36.36856460571289],[105.35892486572293,36.49019622802734],[105.2446212768557,36.54238128662121],[105.1989974975586,36.70830535888683],[105.32637786865251,36.78458786010742],[105.27582550048845,36.86951065063482],[105.17917633056645,36.902107238769645],[105.16960906982422,36.9855842590332],[105.03395843505875,37.01701354980469],[104.91059875488281,37.09955215454107],[104.79535675048844,37.24415588378906],[104.65193176269548,37.20222473144537],[104.59353637695307,37.273872375488224],[104.70060729980467,37.33039474487316],[104.67339324951178,37.408348083496094],[104.47420501708984,37.44149017333996],[104.2790756225586,37.428287506103516],[104.40944671630888,37.515586853027344],[104.57798004150396,37.538665771484375],[104.68183898925776,37.505451202392635],[104.98526000976591,37.544406890869254],[105.10706329345702,37.63306808471691],[105.31082916259771,37.701457977294915],[105.59505462646513,37.69903182983404],[105.63972473144524,37.77935028076172],[105.75645446777337,37.79936981201171],[105.83579254150385,38.00751495361334],[105.7764434814456,38.08433914184581],[105.77106475830082,38.18635559082031],[105.84873199462919,38.25043106079107],[105.8224868774414,38.425018310546875],[105.84742736816399,38.61778259277338],[105.96900177001959,38.910896301269645],[106.06916046142601,38.972263336181584],[106.1414413452149,39.1523056030274],[106.29103088378935,39.16716384887707],[106.27547454834001,39.26128387451183],[106.50195312500006,39.30188751220709],[106.59067535400419,39.364078521728516],[106.78872680664078,39.35830688476568],[106.78829193115261,39.23233413696295],[106.84243774414091,39.092735290527344],[106.96534729003923,39.05124664306646],[106.9643554687501,38.957740783691406],[106.8064956665039,38.82532501220703],[106.67697143554705,38.67112350463867],[106.68863677978516,38.57799911499035],[106.61534881591814,38.43887710571295],[106.50563049316418,38.36300277709972],[106.54116058349626,38.272808074951286],[106.78393554687494,38.17107772827154],[106.99632263183616,38.12188720703124],[107.16729736328136,38.15775680541998],[107.32537841796902,38.09282302856445],[107.4252853393557,37.94097900390631],[107.65174865722685,37.874370574951286]]]},"properties":{"ID_0":49,"ISO":"CN-64","NAME_0":"China","ID_1":20,"NAME_1":"Ningxia Hui","TYPE_1":"Zìzhìqu","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"寧夏回族自治區|宁夏回族自治区","VARNAME_1":"Níngxià Húizú"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[101.77423095703152,33.548042297363395],[101.7749252319336,33.45697402954096],[101.68192291259793,33.41849136352539],[101.64779663085965,33.3287353515625],[101.73433685302757,33.27802658081066],[101.62555694580078,33.11393737792963],[101.48286437988298,33.22781753540045],[101.40853881835943,33.22873306274414],[101.16474914550781,33.16185379028349],[101.11636352539068,33.02778244018566],[101.11996459960943,32.912651062011776],[101.2371749877929,32.81775283813482],[101.21690368652372,32.716075897216854],[101.07468414306658,32.682334899902344],[100.93308258056646,32.60490417480469],[100.71881866455077,32.66272354125988],[100.65566253662126,32.602462768554915],[100.62380218505876,32.47063064575223],[100.53984832763666,32.41204833984392],[100.45097351074213,32.45735549926758],[100.54104614257811,32.571933746338004],[100.40502929687517,32.74549484252941],[100.23624420166016,32.715652465820426],[100.2217559814453,32.623817443847656],[100.11845397949224,32.63982009887706],[100.10599517822264,32.863166809082024],[99.97196960449224,32.94028854370134],[99.76866149902371,32.952419281005916],[99.78752899169928,32.863464355468864],[99.74240112304705,32.746673583984425],[99.36031341552761,32.91181945800781],[99.2709045410158,32.888332366943416],[99.1961669921875,33.03200149536144],[98.85239410400402,33.15933609008794],[98.76844024658232,33.28194808959961],[98.78303527832031,33.36363983154296],[98.72745513916044,33.50987243652355],[98.64933776855469,33.55310440063471],[98.66270446777344,33.65229415893549],[98.52503967285178,33.798118591308594],[98.41116333007835,33.87202835083008],[98.25473022460943,33.84984588623046],[98.25678253173845,33.915351867675895],[98.02371978759764,33.95146560668951],[97.81569671630882,33.85822677612316],[97.66010284423857,33.96232986450201],[97.53282165527348,33.90663909912104],[97.38832855224621,33.88874435424816],[97.37087249755865,33.83550262451172],[97.42955780029314,33.68623352050787],[97.51348876953142,33.58653259277355],[97.55538177490263,33.469425201416016],[97.76994323730497,33.42061996459984],[97.61968994140636,33.33772659301769],[97.60908508300781,33.276981353759766],[97.48731994628918,33.16833877563505],[97.54212951660155,33.05335998535179],[97.51634979248064,32.992546081543026],[97.3629608154298,32.950981140136776],[97.38430023193388,32.78768920898443],[97.48752593994135,32.65393829345703],[97.72996520996111,32.529659271240234],[97.64865875244169,32.478321075439396],[97.3977127075197,32.5204429626466],[97.4086532592774,32.29731369018549],[97.28708648681658,32.28674697875982],[97.26210784912126,32.18583679199236],[97.3019256591798,32.08260726928711],[96.96399688720703,32.02000045776367],[96.81362915039072,32.0182991027832],[96.73630523681646,31.983194351196513],[96.80891418457048,31.894855499267518],[96.76213836669932,31.829656600952262],[96.83872222900396,31.726831436157227],[96.73613739013695,31.67774009704596],[96.68083190917974,31.73003578186035],[96.56983947753935,31.71659088134777],[96.43717193603533,31.797254562377873],[96.31795501709,31.942878723144528],[96.25008392333983,31.93286705017084],[96.1353759765626,31.81841850280756],[96.2497711181641,31.695831298828068],[96.06051635742193,31.72340965271007],[95.85890197753906,31.717830657959098],[95.6384048461914,31.78522682189947],[95.52100372314482,31.751422882080018],[95.37197875976568,31.964406967163313],[95.44856262207026,32.06494903564453],[95.43338775634771,32.16000747680664],[95.28946685791027,32.25958251953153],[95.08084869384783,32.250434875488395],[94.95648956298845,32.342052459716854],[94.8959350585938,32.46239089965826],[94.81520080566406,32.48447036743164],[94.6223754882813,32.67022705078131],[94.54284667968756,32.60404586791992],[94.39097595214861,32.60127258300781],[94.36606597900413,32.52442932128906],[94.20251464843767,32.51846313476557],[94.13578033447266,32.435955047607536],[93.96201324462908,32.489112854003906],[93.85662078857428,32.47676467895519],[93.81033325195324,32.556056976318416],[93.65404510498068,32.57497787475597],[93.51541900634793,32.48030853271496],[93.38574218750011,32.52799224853527],[93.24640655517578,32.662952423095646],[93.0602951049807,32.632339477539006],[93.01750183105486,32.73899841308594],[92.85727691650408,32.70330810546875],[92.69166564941418,32.767780303955135],[92.6539382934572,32.72504043579107],[92.35968780517584,32.76605606079107],[92.20345306396484,32.751903533935774],[92.20835113525402,32.86090850830101],[92.12519836425776,32.88182449340826],[91.96720123291021,32.820003509521534],[91.79296875000017,32.945423126220646],[91.56113433837896,33.05408859252958],[91.3781509399414,33.238750457763786],[91.36598205566412,33.323455810546925],[91.18637084960966,33.305435180664006],[91.16146087646501,33.24025344848644],[90.94387054443365,33.217208862304744],[90.85399627685563,33.11772537231445],[90.70668029785185,33.13914108276373],[90.48712158203153,33.26638412475597],[90.40686035156261,33.25701904296875],[90.26480865478533,33.36758041381836],[90.18244934082037,33.54906845092785],[89.98716735839866,33.63319396972662],[90.00730133056658,33.689498901367244],[89.93082427978533,33.79388809204107],[89.73954772949219,33.91717147827159],[89.657211303711,34.023685455322266],[89.65811920166021,34.0953636169433],[89.8117065429688,34.16849136352545],[89.81417083740257,34.540431976318416],[89.73016357421892,34.73450851440441],[89.8569030761721,34.80925750732422],[89.81427001953142,34.90872955322277],[89.5919952392581,34.894687652588004],[89.56469726562523,34.95976257324224],[89.58079528808588,35.121234893798885],[89.45832061767607,35.23912429809576],[89.49705505371105,35.365894317626946],[89.68804168701172,35.421749114990234],[89.73441314697271,35.47107696533203],[89.71098327636741,35.577720642089844],[89.7855987548831,35.86180877685558],[89.67651367187528,35.85014724731445],[89.42065429687506,35.92338180541992],[89.40850067138678,36.03224182128906],[89.52570343017595,36.032970428466854],[89.73124694824247,36.08474349975586],[89.8720245361331,36.08062744140619],[89.98883056640625,36.15573883056652],[90.03012084960966,36.27914428710949],[90.2330169677735,36.16516113281249],[90.46916198730491,36.13347244262701],[90.67725372314476,36.13246917724621],[90.84373474121098,36.02142333984381],[90.96553039550776,36.10243606567394],[91.09886169433587,36.09480667114269],[91.09320831298834,36.21501541137695],[91.02243041992188,36.3355331420899],[91.02778625488287,36.53701400756836],[90.7301864624025,36.59137725830089],[90.71454620361344,36.79302215576166],[90.8472976684572,36.9190292358399],[90.97371673583996,36.916915893554744],[91.13368225097678,37.01247406005865],[91.30413055419938,37.01863479614258],[91.27729797363304,37.152542114257926],[91.18340301513672,37.21862411499035],[91.0907821655274,37.46339797973633],[90.94044494628912,37.479305267334034],[90.78543090820341,37.64322280883783],[90.52237701416038,37.73019027709972],[90.4132461547852,37.83528518676769],[90.48061370849614,37.958194732666016],[90.33097839355486,38.135093688964844],[90.23654937744134,38.308174133300895],[90.14225006103521,38.402130126953125],[90.41613769531271,38.494232177734375],[90.6306228637697,38.67548370361333],[90.75071716308622,38.66246795654297],[91.11454772949219,38.713237762451286],[91.29625701904308,38.75331878662115],[91.43598937988304,38.815647125244254],[91.7913436889649,38.868598937988224],[92.03942108154297,38.95489883422863],[92.3856201171875,39.00488662719721],[92.5000305175783,39.109432220458984],[92.85248565673844,39.140197753906364],[92.9505615234375,39.17105484008789],[92.97923278808616,39.1475944519043],[93.2477111816408,39.18296432495123],[93.60808563232445,39.263450622558594],[93.87920379638666,39.25775909423828],[94.28737640380854,39.306804656982536],[94.63012695312494,39.30706024169933],[94.73325347900419,39.2387809753418],[94.9188156127932,39.24051666259776],[95.15735626220703,39.17620468139648],[95.2647476196289,39.19168472290044],[95.69076538085966,38.87917327880864],[95.7732467651367,38.875358581543026],[95.89761352539061,38.77037429809575],[96.00000000000016,38.75643920898449],[96.1990356445313,38.626171112060604],[96.3150634765626,38.63799285888683],[96.52423095703148,38.534347534179744],[96.51573181152338,38.464706420898494],[96.70425415039068,38.42199707031256],[96.81450653076178,38.35615539550781],[96.95970153808622,38.338336944580135],[96.99226379394537,38.59049606323248],[96.93924713134771,38.62128067016613],[96.99402618408209,38.770145416259766],[96.9901733398438,39.17162322998058],[97.05175781249999,39.20782852172846],[97.40038299560563,39.14591217041027],[97.49990081787121,39.077648162841854],[98.09833526611334,38.81504821777344],[98.3831176757813,39.0286598205567],[98.45671844482428,38.95230484008789],[98.58390808105469,38.93408584594738],[98.75200653076195,39.07770919799815],[98.81810760498064,39.0838737487793],[99.22086334228543,38.78847503662121],[99.36062622070318,38.71766662597662],[99.44926452636736,38.603973388671925],[99.65830230712906,38.44895935058605],[99.82931518554716,38.36841583251958],[100.18139648437506,38.236789703369084],[100.16048431396479,38.328430175781364],[100.08118438720703,38.409706115722656],[100.11695098876982,38.48994064331055],[100.22772216796898,38.449733734130916],[100.33118438720696,38.31935501098644],[100.58907318115251,38.2494850158692],[100.63465881347673,38.10126113891607],[100.95064544677763,38.00680160522461],[101.11083221435553,37.935676574707145],[101.54251861572277,37.65631103515625],[101.85254669189452,37.53683853149414],[101.87764739990246,37.68978881835943],[101.97617340087896,37.74865341186534],[102,37.6074714660645],[102.07062530517584,37.55881118774419],[102.01169586181669,37.48405075073247],[102.2884216308596,37.36767578125011],[102.36363983154308,37.28149795532232],[102.59339904785179,37.15277862548828],[102.4861907958985,37.083602905273494],[102.47138214111357,36.95798873901373],[102.54882812500028,36.92440795898449],[102.72365570068365,36.766658782958984],[102.5953826904298,36.70555496215832],[102.7190246582033,36.61520385742199],[102.82682800292969,36.35511779785156],[102.99154663085932,36.265727996826286],[102.93271636962913,36.1076278686524],[102.95399475097673,35.865234375000114],[102.77229309082037,35.85988998413086],[102.68392181396501,35.76140594482422],[102.75676727294916,35.6146354675293],[102.72041320800787,35.527885437011655],[102.53208923339861,35.56439971923834],[102.44130706787126,35.43931198120117],[102.28775787353533,35.42110824584972],[102.38394927978521,35.23823928833019],[102.2791290283206,35.05853652954113],[102.00464630126982,34.950431823730526],[101.92398071289091,34.84535217285162],[101.91433715820312,34.742988586425895],[101.71864318847656,34.70427703857433],[102,34.54377365112316],[102.07666015625,34.54387664794916],[102.25090789794932,34.35848236083979],[102.0761795043948,34.28706359863287],[102.00997924804716,34.18645095825201],[101.8991088867188,34.132667541503906],[101.65080261230474,34.121707916259766],[101.6171646118164,34.184055328369084],[101.49298095703142,34.20014572143555],[101.1620864868164,34.32116317749035],[101.0457611083985,34.32815551757807],[100.90686798095703,34.38161087036144],[100.8104171752932,34.30268478393566],[100.81357574462908,34.15047836303722],[100.9883728027346,33.903324127197266],[101.10863494873064,33.85783767700201],[101.24060821533197,33.682319641113395],[101.39653778076195,33.649295806884766],[101.54747009277372,33.694004058838004],[101.61802673339872,33.60977172851568],[101.62786865234375,33.50222015380871],[101.77423095703152,33.548042297363395]]]},"properties":{"ID_0":49,"ISO":"CN-63","NAME_0":"China","ID_1":21,"NAME_1":"Qinghai","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"青海","VARNAME_1":"Qīnghǎi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[111.13376617431646,39.36773300170904],[111.20724487304699,39.23205566406256],[111.0954971313476,39.03009414672851],[110.97500610351562,38.97599411010748],[111.01371002197283,38.878551483154354],[110.87973022460965,38.62424468994152],[110.90679168701178,38.56518173217785],[110.84567260742203,38.43996810913086],[110.76875305175793,38.434734344482536],[110.66458892822294,38.31017684936535],[110.56798553466797,38.2904281616212],[110.50572204589855,38.192474365234375],[110.49893951416014,38.02187347412121],[110.66639709472656,37.79426193237316],[110.78576660156267,37.551132202148494],[110.74752807617193,37.466781616210994],[110.64065551757812,37.43668365478521],[110.69488525390629,37.352291107177784],[110.644790649414,37.25016403198242],[110.40833282470702,36.9943733215332],[110.42528533935564,36.65648651123047],[110.50008392333984,36.581142425537166],[110.44464111328129,36.164859771728516],[110.51223754882807,35.887783050537166],[110.55033111572293,35.86775970458996],[110.60104370117193,35.60580062866205],[110.51608276367205,35.405281066894524],[110.40204620361328,35.27748107910156],[110.31427764892595,35.011295318603516],[110.27056121826166,34.96877288818365],[110.28881072998053,34.62031173706055],[110.38023376464838,34.604488372802734],[110.35552215576178,34.52358245849614],[110.4951171875,34.33678054809582],[110.41948699951199,34.28166198730469],[110.63906860351555,34.16409301757824],[110.58245849609392,34.10277557373047],[110.67118072509766,33.95417785644531],[110.5877990722658,33.88915634155284],[110.77207946777344,33.80183410644537],[110.82721710205084,33.67475128173828],[110.99770355224608,33.58365631103521],[111.02043151855474,33.37694549560558],[110.97766113281267,33.259674072265796],[110.80570983886724,33.148437500000114],[110.4556808471682,33.18463897705084],[110.21314239501964,33.16501998901367],[110.1597595214843,33.211009979248104],[110.02587890625016,33.193675994873104],[109.84026336669916,33.248893737793026],[109.50920104980469,33.239566802978516],[109.43367004394531,33.15377807617199],[109.5713272094726,33.112297058105696],[109.68303680419928,33.11854553222656],[109.78942871093754,33.06887435913086],[109.75891876220707,32.909706115722656],[110.0223236083985,32.87265777587885],[110.13690948486328,32.80475234985357],[110.1998367309572,32.62979888916044],[110.02306365966797,32.55052947998047],[109.90569305419916,32.59506225585943],[109.62696075439459,32.6024169921875],[109.4954223632812,32.38108444213867],[109.49041748046903,32.3025856018067],[109.61682128906254,32.10912322998058],[109.62648773193376,31.964570999145625],[109.57660675048832,31.733167648315373],[109.28453063964844,31.718706130981726],[109.27275848388678,31.801454544067436],[109.0261383056641,31.96888732910162],[108.88356018066423,31.99667358398437],[108.74031066894524,32.10990524291998],[108.67336273193354,32.10984039306646],[108.51454925537115,32.21204376220708],[108.47605895996098,32.272045135498104],[108.23412322998063,32.27865600585966],[108.17733764648443,32.228519439697266],[108.01764678955095,32.21660232543957],[107.99150085449236,32.15409088134771],[107.84605407714865,32.20866012573242],[107.66918182373047,32.39353561401373],[107.52066040039085,32.38473129272461],[107.37308502197294,32.540969848632756],[107.25935363769553,32.40550994873058],[107.08066558837918,32.531551361083984],[107.10303497314447,32.60278320312517],[107.05493164062527,32.7119979858399],[106.78601837158214,32.703178405761776],[106.72840881347668,32.73145294189459],[106.58933258056669,32.66182327270507],[106.43012237548822,32.61944580078131],[106.32637023925776,32.67256927490245],[106.17360687255876,32.69555664062506],[105.95511627197271,32.84763717651367],[105.81519317626947,32.8092041015625],[105.61859130859375,32.69981384277355],[105.49535369873064,32.91073989868164],[105.58703613281278,32.87902069091797],[105.73158264160162,32.90739440917969],[105.91923522949224,33.008152008056754],[105.92945861816423,33.19445419311529],[105.74388885498064,33.300659179687614],[105.72897338867182,33.39280700683611],[105.83415222167973,33.412612915039176],[105.83818817138695,33.4919052124024],[105.95542907714844,33.6101341247558],[106.18309020996122,33.54811096191406],[106.29929351806658,33.60597229003912],[106.44264221191412,33.61472320556646],[106.53040313720732,33.50500869750988],[106.58400726318388,33.590778350830135],[106.47845458984379,33.70890808105469],[106.41545104980484,33.875953674316406],[106.49768066406267,34.10641479492193],[106.58864593505876,34.142406463623104],[106.59848022460943,34.25256347656256],[106.67990112304709,34.26151657104492],[106.71399688720703,34.37443161010742],[106.46202087402344,34.531536102295036],[106.33836364746105,34.52238464355469],[106.31894683837906,34.5910911560058],[106.54873657226572,34.75755310058594],[106.55184936523455,34.86247253417969],[106.48889160156267,34.941974639892635],[106.54570770263666,35.08773803710943],[106.91616058349608,35.09522247314458],[107.19623565673832,34.882575988769645],[107.28193664550774,34.93278884887701],[107.51925659179705,34.910839080810604],[107.57112121582047,34.971679687500114],[107.80170440673822,34.95686340332031],[107.85124969482449,35.005714416503906],[107.74325561523443,35.094215393066406],[107.69767761230474,35.19374084472656],[107.72364044189482,35.30328750610346],[107.95692443847685,35.243011474609425],[108.17214965820312,35.31041717529308],[108.23188018798834,35.265869140625],[108.57508850097685,35.308822631835994],[108.62655639648443,35.41919708251953],[108.6112289428711,35.563209533691406],[108.52468109130882,35.63646316528332],[108.50100708007818,35.895126342773494],[108.64005279541021,35.946445465087834],[108.70762634277348,36.13836288452148],[108.64480590820311,36.26212692260742],[108.71541595459007,36.352073669433594],[108.61451721191429,36.434116363525504],[108.42691802978509,36.43586730957037],[108.33563995361332,36.55873107910162],[108.15857696533219,36.56357955932623],[107.95442962646513,36.65525054931646],[107.89543151855474,36.76015853881836],[107.54070281982428,36.82651138305664],[107.47282409667997,36.90810775756847],[107.29496765136717,36.94154357910162],[107.27139282226567,37.08225250244146],[107.32924652099604,37.1686897277832],[107.25147247314453,37.32836532592773],[107.31051635742216,37.593761444091854],[107.47991180419933,37.70582962036133],[107.49404144287104,37.76507568359375],[107.62453460693376,37.781639099121094],[107.65174865722685,37.874370574951286],[107.95917510986334,37.79476165771479],[108.01074981689447,37.670696258544865],[108.14290618896496,37.61661911010748],[108.25249481201178,37.666648864746094],[108.77864837646479,37.68402862548833],[108.77796173095707,37.949836730956974],[108.87333679199224,37.993030548095646],[108.94341278076183,37.92190933227538],[109.05448150634783,38.08185577392578],[108.9410934448245,38.16735839843756],[108.96966552734396,38.33824539184582],[109.14798736572271,38.55510330200207],[109.38880157470697,38.71052932739269],[109.42097473144536,38.8035621643067],[109.67360687255876,38.93149948120117],[109.71360015869152,39.06563568115229],[109.84896087646507,39.090114593505966],[110.0106430053711,39.21313858032238],[110.2112884521486,39.283725738525504],[110.11435699462884,39.43654632568365],[110.2311935424807,39.446189880371094],[110.38414764404303,39.312988281250114],[110.53153228759783,39.374588012695426],[110.61533355712913,39.2487525939942],[110.86275482177761,39.48997116088867],[111.0276718139649,39.565837860107365],[111.13012695312523,39.52239990234386],[111.06042480468767,39.408031463623104],[111.13376617431646,39.36773300170904]]]},"properties":{"ID_0":49,"ISO":"CN-61","NAME_0":"China","ID_1":22,"NAME_1":"Shaanxi","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"陝西|陕西","VARNAME_1":"Shǎnxī"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.28437805175781,35.08986282348627],[119.11466217041038,35.06107330322271],[118.92056274414072,35.061733245849666],[118.71508026123068,34.7608757019043],[118.46082305908227,34.677833557128906],[118.39965057373092,34.43804168701172],[118.16266632080078,34.39336013793945],[118.07673645019575,34.58001708984381],[118.094970703125,34.64862442016607],[117.96543121337889,34.67564010620117],[117.81449890136732,34.65426635742199],[117.79530334472656,34.52215957641607],[117.67935943603516,34.544261932373104],[117.55650329589842,34.4671745300293],[117.48045349121115,34.48172378540045],[117.35250091552756,34.59463882446295],[117.24007415771484,34.45858764648449],[117.16768646240257,34.482429504394645],[117.12274169921885,34.64001464843744],[116.96147918701183,34.87654113769531],[116.77940368652355,34.9440650939942],[116.45969390869186,34.89850997924816],[116.40851593017601,34.85988235473632],[116.36860656738281,34.64086914062506],[116.18591308593749,34.57946777343756],[116.09555816650412,34.60671997070318],[115.67130279541014,34.561328887939396],[115.53153228759778,34.57902526855469],[115.43881988525412,34.675373077392685],[115.42497253417979,34.796310424804744],[115.19261932373071,34.92622375488287],[115.11365509033224,35.0103874206543],[114.88049316406249,35.00461196899414],[114.84293365478514,35.17755126953125],[114.99708557128929,35.288627624511776],[115.01925659179734,35.37437057495123],[115.16888427734375,35.44613265991222],[115.21638488769531,35.417804718017635],[115.3487777709961,35.50680160522455],[115.40918731689489,35.64693832397472],[115.49507904052733,35.7292098999024],[115.66016387939453,35.744159698486385],[115.76693725585982,35.863945007324325],[115.91765594482423,35.96976470947276],[116.03987121582054,35.97148895263683],[116.01735687255882,36.06333923339844],[115.80311584472656,36.01005172729498],[115.33192443847666,35.804111480713004],[115.3520736694338,35.97102355957031],[115.44036865234385,36.01320648193365],[115.47286987304697,36.16936111450207],[115.46441650390646,36.257820129394474],[115.36262512207043,36.342380523681754],[115.27890777587902,36.49432754516607],[115.33660125732432,36.61305999755865],[115.4960250854492,36.768993377685604],[115.68394470214866,36.81945800781255],[115.86469268798827,37.07368087768566],[115.98389434814452,37.33635330200195],[116.15882873535156,37.37846755981457],[116.22567749023449,37.4722633361817],[116.43196105957031,37.46987152099615],[116.60633850097679,37.62678146362315],[116.79441833496115,37.83129501342768],[116.89412689209007,37.84426879882818],[117.4058151245117,37.84362030029296],[117.4482574462893,37.86536026000982],[117.57433319091818,38.06839752197271],[117.70034027099608,38.07770919799816],[117.87111663818382,38.25597381591797],[118.1112518310549,38.14403152465826],[118.47430419921908,38.11208343505865],[118.84625244140625,38.14458465576172],[118.94403076171886,38.10069274902355],[118.99986267089855,37.95791625976568],[119.08985900878906,37.91292190551752],[119.09847259521496,37.83430480957031],[119.18541717529297,37.795700073242294],[119.28930664062536,37.68653106689459],[119.03652954101575,37.685699462890625],[118.93041992187523,37.52875137329112],[118.96679687499999,37.27624893188471],[119.24402618408226,37.134860992431754],[119.30652618408205,37.055690765380916],[119.43013000488281,37.11569976806652],[119.74903106689453,37.122920989990234],[119.88791656494152,37.23847198486334],[119.84513854980469,37.37597274780285],[120.08486175537142,37.44403076171875],[120.3156967163086,37.61069488525402],[120.31319427490234,37.68708419799816],[120.4562530517578,37.746810913085994],[120.56487274169966,37.75403213500988],[120.74652862548862,37.83097076416027],[120.94653320312544,37.80736160278326],[121.03597259521506,37.70653152465832],[121.13930511474608,37.70847320556646],[121.1415252685548,37.59847259521496],[121.3756942749028,37.55819320678711],[121.45903015136741,37.47819519042969],[121.59348297119162,37.427921295166016],[121.93680572509787,37.47124862670898],[122.06513977050805,37.5326385498048],[122.15735626220702,37.43542098999029],[122.24180603027365,37.462360382080185],[122.32596588134777,37.40874862670904],[122.47875213623057,37.41986083984381],[122.57125091552746,37.36180877685547],[122.55458068847668,37.272361755371094],[122.62124633789075,37.205421447753906],[122.45680236816405,37.14597320556646],[122.5031890869144,36.93069076538086],[122.42402648925791,36.86653137207037],[122.28680419921898,36.835693359375114],[122.19097137451172,36.86958312988287],[122.13846588134764,36.9473609924317],[122.00958251953125,36.967922210693416],[121.75930786132824,36.8806991577149],[121.62486267089878,36.809310913085994],[121.59847259521528,36.74402999877935],[121.46958160400402,36.774311065673885],[121.18596649169932,36.685424804687614],[120.97429656982422,36.539859771728516],[120.9031906127932,36.450141906738274],[120.742919921875,36.46097183227545],[120.68013763427746,36.38042068481445],[120.66735839843761,36.241249084472656],[120.70291900634788,36.1301383972168],[120.28569793701182,36.06042098999029],[120.367080688477,36.179027557373104],[120.2148590087893,36.21902847290039],[120.1015167236328,36.137641906738395],[120.21402740478514,36.02014541625982],[120.17958831787156,35.94792175292969],[120.05403137207054,35.88042449951172],[120.0090255737307,35.71986007690424],[119.91319274902355,35.635974884033196],[119.74124908447277,35.634304046630916],[119.63540649414087,35.586532592773494],[119.55847167968749,35.381805419921875],[119.40486145019531,35.26652908325195],[119.37319183349608,35.09930038452154],[119.28437805175781,35.08986282348627]]]},"properties":{"ID_0":49,"ISO":"CN-37","NAME_0":"China","ID_1":23,"NAME_1":"Shandong","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"山東|山东","VARNAME_1":"Shāndōng"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[121.26490020751953,30.689582824707255],[121.19924926757835,30.78400611877441],[121.0775604248049,30.851522445678768],[120.98263549804699,30.832660675048768],[120.9938354492192,31.004228591919063],[120.89511871337892,31.01197814941412],[120.88040924072277,31.136251449585018],[121.04059600830078,31.13811874389654],[121.05766296386719,31.26090431213385],[121.1216049194338,31.30657577514677],[121.20725250244162,31.474849700927848],[121.32597351074251,31.505416870117468],[121.51596832275389,31.388750076294055],[121.66680908203135,31.328193664550835],[121.8623580932617,31.11347007751459],[121.92263793945312,30.972085952758786],[121.89041900634764,30.847917556762695],[121.81485748291016,30.85874748229986],[121.52680206298838,30.82152938842779],[121.26490020751953,30.689582824707255]]],[[[121.29569244384764,31.869306564331165],[121.6665267944337,31.64958381652832],[121.8915328979492,31.593200683593864],[121.96514129638672,31.492370605468746],[121.8320770263673,31.438472747802734],[121.38957977294933,31.616529464721737],[121.16124725341818,31.787639617920036],[121.29569244384764,31.869306564331165]]]]},"properties":{"ID_0":49,"ISO":"CN-31","NAME_0":"China","ID_1":24,"NAME_1":"Shanghai","TYPE_1":"Zhíxiáshì","ENGTYPE_1":"Municipality","NL_NAME_1":"上海|上海","VARNAME_1":"Shànghǎi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[114.12786102294922,40.73575973510753],[114.19120788574219,40.62958908081055],[114.2764663696289,40.589458465576286],[114.26274108886717,40.48538589477539],[114.30792236328125,40.36830520629882],[114.5243911743164,40.343955993652344],[114.46347045898447,40.26675033569347],[114.05783843994175,40.163112640380916],[114.08847045898482,40.09930419921881],[114.01647186279297,39.99241256713873],[114.05168151855479,39.92816925048828],[114.30547332763693,39.85608673095703],[114.3863754272463,39.867168426513786],[114.40162658691418,39.65062713623047],[114.54537200927734,39.547451019287166],[114.4162826538086,39.30722808837896],[114.35786437988314,39.1034507751466],[114.1020736694337,39.0512046813966],[114.04420471191429,39.13482666015636],[113.89168548583996,39.06693649291992],[113.7608871459961,38.9588356018067],[113.84912872314453,38.82835006713873],[113.76902770996094,38.70916748046875],[113.60639190673827,38.64554595947271],[113.55550384521507,38.55783462524414],[113.57701110839844,38.46552658081055],[113.51879119873057,38.38246536254894],[113.56385040283202,38.236957550048935],[113.70291137695312,38.21108627319336],[113.87711334228537,38.053985595703125],[113.96395111083984,37.83337020874035],[114.12183380126976,37.69730758666998],[114.11190032958996,37.58973693847656],[113.95367431640636,37.34847259521484],[113.8960418701173,37.30953216552729],[113.75170898437533,37.075168609619254],[113.78646850585938,36.894397735595646],[113.66993713378906,36.855419158935604],[113.6494598388673,36.78556442260748],[113.4928207397462,36.74032974243163],[113.48027801513682,36.63498687744146],[113.58167266845726,36.54844665527355],[113.58819580078136,36.45759582519537],[113.70201110839854,36.42330932617193],[113.72434234619162,36.360000610351676],[113.65881347656284,36.11945724487305],[113.65067291259764,35.836864471435604],[113.56907653808615,35.817844390869254],[113.55655670166026,35.648105621338004],[113.49054718017578,35.53054809570307],[113.20276641845737,35.44199371337902],[113.10746765136741,35.33320617675781],[113.02401733398438,35.363502502441406],[112.91504669189474,35.24839401245117],[112.76907348632812,35.20890426635742],[112.43359375,35.229743957519645],[112.07186126708984,35.229129791259766],[112.05079650878929,35.05064392089855],[111.82504272460949,35.073120117187614],[111.6857528686524,34.99225997924805],[111.567626953125,34.849540710449276],[111.22097778320324,34.79192733764643],[111.15017700195318,34.80830383300781],[110.8956375122072,34.662040710449276],[110.75208282470724,34.656459808349716],[110.68240356445328,34.59413909912115],[110.38023376464838,34.604488372802734],[110.28881072998053,34.62031173706055],[110.27056121826166,34.96877288818365],[110.31427764892595,35.011295318603516],[110.40204620361328,35.27748107910156],[110.51608276367205,35.405281066894524],[110.60104370117193,35.60580062866205],[110.55033111572293,35.86775970458996],[110.51223754882807,35.887783050537166],[110.44464111328129,36.164859771728516],[110.50008392333984,36.581142425537166],[110.42528533935564,36.65648651123047],[110.40833282470702,36.9943733215332],[110.644790649414,37.25016403198242],[110.69488525390629,37.352291107177784],[110.64065551757812,37.43668365478521],[110.74752807617193,37.466781616210994],[110.78576660156267,37.551132202148494],[110.66639709472656,37.79426193237316],[110.49893951416014,38.02187347412121],[110.50572204589855,38.192474365234375],[110.56798553466797,38.2904281616212],[110.66458892822294,38.31017684936535],[110.76875305175793,38.434734344482536],[110.84567260742203,38.43996810913086],[110.90679168701178,38.56518173217785],[110.87973022460965,38.62424468994152],[111.01371002197283,38.878551483154354],[110.97500610351562,38.97599411010748],[111.0954971313476,39.03009414672851],[111.20724487304699,39.23205566406256],[111.13376617431646,39.36773300170904],[111.21085357666043,39.42956924438482],[111.33066558837884,39.4188346862793],[111.48661041259788,39.658477783203125],[111.76055908203153,39.58994674682623],[111.92712402343767,39.61918258667003],[111.97008514404297,39.79625701904302],[112.30272674560547,40.25146484375],[112.44920349121094,40.29874038696294],[112.72182464599621,40.16704177856445],[112.83833312988281,40.202842712402344],[112.89204406738293,40.32830047607416],[113.24909973144541,40.41027450561523],[113.31632995605491,40.31749343872082],[113.55307769775436,40.347541809082145],[113.7838745117192,40.50125503540039],[113.84435272216808,40.459472656250114],[114.05509948730513,40.527389526367294],[114.05723571777355,40.70555496215826],[114.12786102294922,40.73575973510753]]]},"properties":{"ID_0":49,"ISO":"CN-14","NAME_0":"China","ID_1":25,"NAME_1":"Shanxi","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"山西","VARNAME_1":"Shānxī"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[105.49535369873064,32.91073989868164],[105.61859130859375,32.69981384277355],[105.81519317626947,32.8092041015625],[105.95511627197271,32.84763717651367],[106.17360687255876,32.69555664062506],[106.32637023925776,32.67256927490245],[106.43012237548822,32.61944580078131],[106.58933258056669,32.66182327270507],[106.72840881347668,32.73145294189459],[106.78601837158214,32.703178405761776],[107.05493164062527,32.7119979858399],[107.10303497314447,32.60278320312517],[107.08066558837918,32.531551361083984],[107.25935363769553,32.40550994873058],[107.37308502197294,32.540969848632756],[107.52066040039085,32.38473129272461],[107.66918182373047,32.39353561401373],[107.84605407714865,32.20866012573242],[107.99150085449236,32.15409088134771],[108.01764678955095,32.21660232543957],[108.17733764648443,32.228519439697266],[108.23412322998063,32.27865600585966],[108.47605895996098,32.272045135498104],[108.51454925537115,32.21204376220708],[108.3725891113283,32.18421173095708],[108.28655242919916,31.929058074951172],[108.52720642089872,31.757961273193363],[108.53423309326178,31.6771068572998],[108.39594268798851,31.609043121337944],[108.31633758544938,31.51035881042492],[108.23023223876982,31.51310539245605],[108.17851257324224,31.334787368774528],[108.07116699218778,31.267095565795955],[108.08136749267577,31.195667266845703],[108.009780883789,31.105787277221793],[108.04972839355474,31.04863739013683],[107.94728088378906,30.987459182739368],[107.97001647949224,30.89495468139654],[107.86900329589855,30.808849334716797],[107.51068115234375,30.844881057739258],[107.41993713378912,30.744838714599663],[107.48164367675776,30.606313705444506],[107.36215972900412,30.470155715942663],[107.22763061523438,30.22743988037115],[107.02802276611357,30.036109924316406],[106.96629333496111,30.082696914672848],[106.8717117309572,30.02734184265142],[106.72501373291031,30.03719139099121],[106.56037902832041,30.306888580322322],[106.44360351562506,30.296226501465014],[106.35874176025419,30.234788894653605],[106.20210266113304,30.212610244751033],[106.13938140869146,30.320039749145565],[105.9810867309573,30.383621215820312],[105.790786743164,30.42348670959467],[105.71224212646484,30.31063270568848],[105.61416625976557,30.266138076782397],[105.55877685546879,30.184236526489315],[105.59475708007812,30.11006927490251],[105.73922729492216,30.027923583984602],[105.72458648681634,29.856422424316406],[105.61170959472672,29.838090896606555],[105.56726074218767,29.739044189453235],[105.3824691772461,29.66498756408691],[105.28674316406256,29.54547691345215],[105.32424926757807,29.44178199768083],[105.43341064453124,29.40216636657726],[105.44914245605497,29.29393959045421],[105.69621276855486,29.27216911315918],[105.71887207031244,29.111965179443413],[105.79991149902355,28.94122695922857],[105.98811340332037,28.980567932128906],[106.11216735839838,28.899961471557734],[106.2549667358399,28.85392951965326],[106.24774932861357,28.799732208252006],[106.37358093261741,28.530485153198356],[106.28510284423832,28.540290832519645],[106.10343933105469,28.634981155395508],[105.96365356445312,28.751831054687443],[105.86843109130876,28.59096527099615],[105.73594665527366,28.614667892456055],[105.63368988037115,28.52494812011724],[105.63642883300808,28.31930732727068],[105.71227264404303,28.275840759277397],[105.77892303466825,28.335525512695312],[105.88387298584,28.240835189819336],[105.87796783447283,28.12946319580072],[105.97379302978538,28.116268157958984],[106.1459732055664,28.16761589050293],[106.25861358642605,28.080980300903377],[106.31727600097656,27.97634315490734],[106.332748413086,27.8292884826663],[106.18678283691423,27.758264541626033],[105.76389312744135,27.720869064330998],[105.6208572387697,27.66724586486839],[105.48232269287138,27.776836395263956],[105.30024719238298,27.709112167358626],[105.17595672607443,28.068841934204215],[105.05834197998058,28.099634170532223],[104.97012329101568,28.059192657470874],[104.875717163086,27.912342071533203],[104.72583007812506,27.900220870971676],[104.56137847900396,27.852773666381893],[104.31070709228533,28.03518295288086],[104.3845291137697,28.06200408935547],[104.45614624023443,28.17436408996582],[104.43637847900385,28.275659561157223],[104.25334167480474,28.397077560424805],[104.26107025146496,28.6456298828125],[103.87841033935553,28.62539100646984],[103.78363800048857,28.518131256103516],[103.8640975952149,28.306711196899357],[103.69735717773443,28.20534324646013],[103.56365203857428,28.228448867798136],[103.42749023437523,28.055618286132926],[103.49340057373064,28.0204181671142],[103.50244140625023,27.84023094177257],[103.4399032592774,27.75361633300787],[103.27442169189447,27.632938385009762],[103.13661956787132,27.425537109375227],[102.98589324951172,27.37384033203125],[102.88175964355469,27.303371429443587],[102.90791320800787,27.15058326721197],[102.86739349365229,27.032140731811523],[102.89497375488287,26.91550254821783],[102.97955322265642,26.799079895019645],[103.01662445068365,26.591283798217887],[102.98928070068376,26.36440086364746],[102.77985382080095,26.306201934814453],[102.70614624023443,26.217643737793026],[102.59899139404325,26.253160476684624],[102.62078857421892,26.345222473144588],[102.4005355834961,26.30599975585949],[102.25107574462919,26.222623825073356],[102.12990570068365,26.09490966796892],[101.81679534912121,26.090187072753903],[101.7342605590822,26.22133445739746],[101.62286376953142,26.23652648925787],[101.6395034790039,26.388837814331055],[101.39495849609375,26.559118270874023],[101.48163604736334,26.680433273315426],[101.37313079834013,26.765348434448242],[101.36657714843756,26.887445449829045],[101.13964843750006,27.033498764038082],[101.16567230224626,27.20093345642107],[101.0467147827149,27.222856521606502],[100.8296508789063,27.684648513794],[100.71102905273443,27.805879592895508],[100.67755889892572,27.926382064819393],[100.54777526855491,27.815065383911357],[100.44800567626959,27.872024536132812],[100.32546234130854,27.72199058532726],[100.18659973144541,27.955966949463004],[100.08011627197271,28.04192543029796],[100.02705383300787,28.17434120178217],[100.16327667236334,28.216581344604435],[100.17864990234375,28.315002441406364],[100.05937957763683,28.376356124877987],[99.9564437866211,28.57198143005371],[99.83000946044926,28.60941123962408],[99.83236694335966,28.667627334594723],[99.73358154296903,28.732809066772514],[99.72283935546898,28.83901786804199],[99.62186431884783,28.81273460388189],[99.53871154785172,28.68799209594738],[99.51906585693375,28.585510253906193],[99.3909606933596,28.548915863037166],[99.38807678222662,28.396894454956055],[99.4205627441409,28.28846740722662],[99.30883026123058,28.22509956359863],[99.17343902587908,28.415414810180774],[99.19222259521507,28.496875762939567],[99.10897827148453,28.856487274169922],[99.12959289550798,28.904745101928825],[99.11231231689476,29.25111961364757],[99.0758743286135,29.296464920043945],[99.05204010009788,29.56004905700689],[98.99391174316435,29.67295265197771],[99.02009582519548,29.844123840332145],[99.07112884521489,29.931365966796875],[99.04269409179709,30.08236122131353],[98.98809814453125,30.152858734130973],[98.93891143798834,30.593173980712947],[98.9040985107423,30.697721481323246],[98.96224975585966,30.733436584472653],[98.77465820312499,30.90786743164074],[98.80412292480496,31.000701904296932],[98.6023406982423,31.23885536193859],[98.68820190429682,31.338266372680664],[98.78009033203152,31.2549667358399],[98.88133239746116,31.36942291259794],[98.84212493896479,31.432546615600696],[98.70890045166037,31.516067504882873],[98.56581878662115,31.64849472045898],[98.3977890014649,31.90719985961942],[98.43197631835943,32.01350402832037],[98.29969787597673,32.12960433959972],[98.21236419677734,32.34500122070318],[97.96907806396513,32.474918365478516],[97.72996520996111,32.529659271240234],[97.48752593994135,32.65393829345703],[97.38430023193388,32.78768920898443],[97.3629608154298,32.950981140136776],[97.51634979248064,32.992546081543026],[97.54212951660155,33.05335998535179],[97.48731994628918,33.16833877563505],[97.60908508300781,33.276981353759766],[97.61968994140636,33.33772659301769],[97.76994323730497,33.42061996459984],[97.55538177490263,33.469425201416016],[97.51348876953142,33.58653259277355],[97.42955780029314,33.68623352050787],[97.37087249755865,33.83550262451172],[97.38832855224621,33.88874435424816],[97.53282165527348,33.90663909912104],[97.66010284423857,33.96232986450201],[97.81569671630882,33.85822677612316],[98.02371978759764,33.95146560668951],[98.25678253173845,33.915351867675895],[98.25473022460943,33.84984588623046],[98.41116333007835,33.87202835083008],[98.52503967285178,33.798118591308594],[98.66270446777344,33.65229415893549],[98.64933776855469,33.55310440063471],[98.72745513916044,33.50987243652355],[98.78303527832031,33.36363983154296],[98.76844024658232,33.28194808959961],[98.85239410400402,33.15933609008794],[99.1961669921875,33.03200149536144],[99.2709045410158,32.888332366943416],[99.36031341552761,32.91181945800781],[99.74240112304705,32.746673583984425],[99.78752899169928,32.863464355468864],[99.76866149902371,32.952419281005916],[99.97196960449224,32.94028854370134],[100.10599517822264,32.863166809082024],[100.11845397949224,32.63982009887706],[100.2217559814453,32.623817443847656],[100.23624420166016,32.715652465820426],[100.40502929687517,32.74549484252941],[100.54104614257811,32.571933746338004],[100.45097351074213,32.45735549926758],[100.53984832763666,32.41204833984392],[100.62380218505876,32.47063064575223],[100.65566253662126,32.602462768554915],[100.71881866455077,32.66272354125988],[100.93308258056646,32.60490417480469],[101.07468414306658,32.682334899902344],[101.21690368652372,32.716075897216854],[101.2371749877929,32.81775283813482],[101.11996459960943,32.912651062011776],[101.11636352539068,33.02778244018566],[101.16474914550781,33.16185379028349],[101.40853881835943,33.22873306274414],[101.48286437988298,33.22781753540045],[101.62555694580078,33.11393737792963],[101.73433685302757,33.27802658081066],[101.64779663085965,33.3287353515625],[101.68192291259793,33.41849136352539],[101.7749252319336,33.45697402954096],[101.77423095703152,33.548042297363395],[101.83661651611357,33.614463806152344],[101.93886566162121,33.44575881958007],[101.8753204345706,33.323116302490234],[101.76795959472685,33.24454116821289],[101.84082794189464,33.1848258972168],[102.05314636230463,33.19178009033203],[102.10443115234386,33.26874542236334],[102.20602416992209,33.23442459106445],[102.2216415405274,33.38579559326172],[102.3546295166016,33.393226623535156],[102.43972015380888,33.45528793334961],[102.43913269042997,33.581356048583984],[102.33715820312516,33.61697006225597],[102.3389739990235,33.72563171386713],[102.19335174560564,33.91864395141607],[102.30878448486328,33.99384307861328],[102.38580322265642,33.9734458923341],[102.4213485717774,34.08662033081055],[102.59779357910179,34.14724731445318],[102.73484802246111,34.26859283447277],[102.92523956298828,34.30934524536144],[103.00817871093767,34.18482589721674],[103.09801483154313,34.183258056640625],[103.16744232177751,34.093654632568295],[103.12075805664068,33.94302749633789],[103.15014648437506,33.811813354492294],[103.34721374511724,33.74501800537115],[103.43190765380888,33.75435256958008],[103.53887176513695,33.67300796508795],[103.59117889404325,33.71422958374035],[103.76624298095709,33.66038513183605],[104.04965972900413,33.68680572509771],[104.16682434082058,33.61078262329107],[104.15173339843756,33.545970916748104],[104.21485900878912,33.406211853027344],[104.26432800292963,33.393478393554744],[104.37222290039068,33.120979309082145],[104.38080596923834,32.99615859985346],[104.28546905517605,32.941749572753906],[104.30019378662104,32.83144378662121],[104.49718475341825,32.757114410400675],[104.64373779296892,32.661418914794865],[104.84946441650419,32.64872360229498],[104.88507843017601,32.598526000976676],[105.03254699707037,32.64676666259771],[105.14159393310553,32.59889602661133],[105.44912719726591,32.736293792724666],[105.38031768798821,32.88031768798828],[105.49535369873064,32.91073989868164]]]},"properties":{"ID_0":49,"ISO":"CN-51","NAME_0":"China","ID_1":26,"NAME_1":"Sichuan","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"四川","VARNAME_1":"Sìchuān"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[118.01268768310545,39.218193054199325],[117.83403015136717,39.17626190185541],[117.7468032836914,39.09735870361328],[117.72152709960936,38.97013854980469],[117.58013916015658,38.77208328247076],[117.56430816650425,38.65569305419933],[117.26931762695322,38.56954574584966],[117.2062149047854,38.62799072265631],[117.10205841064476,38.58654022216797],[117.0191421508789,38.7020721435548],[116.91632080078136,38.6908073425293],[116.75075531005903,38.740154266357415],[116.70439910888716,38.9204559326173],[116.75588989257834,39.02737426757818],[116.90145874023438,39.06421661376959],[116.86456298828146,39.1648521423341],[116.8808059692385,39.347843170166016],[116.79687500000011,39.457607269287166],[116.79938507080122,39.610008239746094],[116.89429473876953,39.69630813598633],[116.97351074218771,39.642501831054744],[117.15242004394554,39.62674331665039],[117.16275787353527,39.79872894287115],[117.22265625,39.857101440429744],[117.13152313232456,39.921825408935604],[117.19398498535168,40.08278274536133],[117.3344192504884,40.14122009277344],[117.37973785400412,40.22687149047863],[117.55962371826183,40.213554382324276],[117.6408462524414,40.09823989868164],[117.74359893798864,40.07381439208996],[117.80303192138717,39.98414993286133],[117.54586791992209,39.98641967773443],[117.51319122314487,39.88500595092779],[117.57858276367199,39.7279891967774],[117.6935958862306,39.5805549621582],[117.92980957031251,39.580131530761776],[117.86926269531261,39.448425292968864],[118.01047515869142,39.361911773681754],[118.01268768310545,39.218193054199325]]]},"properties":{"ID_0":49,"ISO":"CN-12","NAME_0":"China","ID_1":27,"NAME_1":"Tianjin","TYPE_1":"Zhíxiáshì","ENGTYPE_1":"Municipality","NL_NAME_1":"天津|天津","VARNAME_1":"Tiānjīn"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[96.36516571044926,42.71707534790045],[96.09664154052763,42.59966659545893],[96.02552795410168,42.110931396484375],[96.05531311035173,42.0161972045899],[95.9896697998048,41.89428329467784],[95.8683547973634,41.843002319335994],[95.6865921020509,41.822109222412166],[95.539115905762,41.8545875549317],[95.04637145996094,41.77122879028325],[94.67984008789068,41.62221145629883],[94.41741943359403,41.391883850097656],[94.0770111083986,41.158325195312614],[93.80673980712906,40.87663650512701],[93.64675140380858,40.61911010742199],[93.35394287109392,40.47246170043945],[92.9138107299807,40.49829864501953],[92.91799163818365,40.10373306274413],[92.76416015624993,39.87979888916021],[92.87683105468778,39.54480361938488],[92.94313049316406,39.45827102661133],[92.92624664306669,39.292980194091854],[92.9505615234375,39.17105484008789],[92.85248565673844,39.140197753906364],[92.5000305175783,39.109432220458984],[92.3856201171875,39.00488662719721],[92.03942108154297,38.95489883422863],[91.7913436889649,38.868598937988224],[91.43598937988304,38.815647125244254],[91.29625701904308,38.75331878662115],[91.11454772949219,38.713237762451286],[90.75071716308622,38.66246795654297],[90.6306228637697,38.67548370361333],[90.41613769531271,38.494232177734375],[90.14225006103521,38.402130126953125],[90.23654937744134,38.308174133300895],[90.33097839355486,38.135093688964844],[90.48061370849614,37.958194732666016],[90.4132461547852,37.83528518676769],[90.52237701416038,37.73019027709972],[90.78543090820341,37.64322280883783],[90.94044494628912,37.479305267334034],[91.0907821655274,37.46339797973633],[91.18340301513672,37.21862411499035],[91.27729797363304,37.152542114257926],[91.30413055419938,37.01863479614258],[91.13368225097678,37.01247406005865],[90.97371673583996,36.916915893554744],[90.8472976684572,36.9190292358399],[90.71454620361344,36.79302215576166],[90.7301864624025,36.59137725830089],[91.02778625488287,36.53701400756836],[91.02243041992188,36.3355331420899],[91.09320831298834,36.21501541137695],[91.09886169433587,36.09480667114269],[90.96553039550776,36.10243606567394],[90.84373474121098,36.02142333984381],[90.67725372314476,36.13246917724621],[90.46916198730491,36.13347244262701],[90.2330169677735,36.16516113281249],[90.03012084960966,36.27914428710949],[89.98883056640625,36.15573883056652],[89.8720245361331,36.08062744140619],[89.73124694824247,36.08474349975586],[89.48770904541027,36.15145492553722],[89.23417663574247,36.29521942138672],[89.16053009033226,36.24711990356451],[88.93024444580095,36.3599739074707],[88.76565551757812,36.30178070068365],[88.62131500244163,36.389949798583984],[88.57082366943388,36.461677551269645],[88.46800231933622,36.48248672485357],[88.23899078369158,36.468994140625],[88.13172912597685,36.427383422851506],[87.97315216064453,36.436103820800895],[87.90692138671892,36.37609100341797],[87.72917175292986,36.385295867920036],[87.55146789550787,36.342540740966854],[87.3761291503908,36.41680145263677],[87.14658355712919,36.29771804809576],[86.99362182617216,36.30913543701166],[86.74362945556658,36.29245376586914],[86.67237091064459,36.23704910278325],[86.39032745361357,36.207294464111385],[86.1957473754885,36.12948608398437],[86.17725372314459,36.03277206420904],[86.05230712890648,35.84610748291021],[85.9533157348635,35.78454971313476],[85.69716644287132,35.75167465209972],[85.61204528808594,35.65629577636719],[85.26630401611334,35.78048706054693],[85.03217315673845,35.747024536132926],[84.83635711669928,35.640121459960994],[84.4456253051759,35.543003082275504],[84.44983673095696,35.47875976562506],[84.33398437500023,35.41498184204107],[84.09380340576172,35.36454010009771],[84.06267547607439,35.407478332519645],[83.88502502441435,35.366985321045036],[83.53900146484398,35.342594146728516],[83.2394256591798,35.420680999755916],[83.12372589111328,35.39918899536144],[82.99623870849621,35.485298156738395],[82.96472167968778,35.66818237304693],[82.78639221191435,35.686157226562614],[82.72863769531261,35.63856506347656],[82.62599182128935,35.69311141967784],[82.40589904785183,35.699996948242244],[82.32532501220709,35.56008911132824],[82.0455856323245,35.44977569580084],[82.04818725585943,35.363407135009766],[81.85121917724638,35.25978469848644],[81.68378448486338,35.23654556274413],[81.5320663452149,35.25843429565441],[81.44589996337919,35.354331970214844],[81.21689605712908,35.32008361816412],[81.05199432373051,35.40310668945323],[81.03451538085966,35.312324523925895],[80.84226989746105,35.3464241027832],[80.6871261596682,35.339969635009766],[80.52110290527361,35.45596694946295],[80.43515777587896,35.447147369384766],[80.29357147216814,35.360706329345646],[80.29506683349604,35.26585388183594],[80.14865112304692,35.09882354736334],[80.05039978027344,35.060012817382756],[79.99201965332048,34.86211013793957],[79.89976501464848,34.86171340942394],[79.86662292480497,34.749565124511776],[79.91581726074223,34.7082405090332],[79.79914855957026,34.480712890625114],[79.67353057861334,34.452995300293026],[79.50239562988298,34.456565856933594],[79.22739410400389,34.41580200195318],[79.07736206054716,34.415466308593864],[79.03726196289068,34.3362655639649],[78.92743682861357,34.37163543701183],[78.83809661865234,34.40652847290045],[78.56933593750017,34.611949920654354],[78.41812896728521,34.605400085449276],[78.28436279296892,34.66736221313488],[78.20732116699236,34.76610946655279],[78.18464660644531,34.88151931762707],[78.08287048339872,35.08248901367199],[77.99028778076172,35.379032135009766],[77.88862609863281,35.42887115478527],[77.81575012207031,35.51786041259771],[77.62321472167997,35.47655868530279],[77.42727661132835,35.469039916992244],[77.26693725585949,35.53540420532237],[77.18669891357439,35.52833938598644],[77.0567169189456,35.59941482543951],[76.76377105712919,35.669647216796875],[76.57852935791021,35.813060760498104],[76.5905151367188,35.89311599731451],[76.22182464599615,35.85093307495117],[76.08006286621094,36.018375396728516],[76.00155639648443,36.01816940307611],[75.93306732177756,36.12530899047863],[76.0530166625977,36.23731994628912],[75.98311614990229,36.33754348754888],[76.00837707519537,36.45330047607433],[75.91886901855486,36.62047958374034],[75.72970581054693,36.746459960937614],[75.54621887207037,36.76655197143566],[75.45449829101568,36.721614837646484],[75.37235260009794,36.94361877441412],[75.23030090332048,36.959739685058594],[75.14686584472662,37.019889831543026],[75.03984832763695,37.01552963256836],[74.922416687012,36.93455886840826],[74.82159423828124,37.06029891967785],[74.7294692993164,37.024898529052734],[74.67674255371122,37.09701156616211],[74.52906799316428,37.075340270996094],[74.43309783935553,37.115760803222656],[74.50798034667963,37.23918914794921],[74.89290618896501,37.22194290161132],[74.93490600585938,37.289508819580135],[75.11624908447283,37.32025146484375],[75.13382720947266,37.43743896484381],[75.05546569824224,37.52715301513683],[74.92801666259783,37.55624008178722],[74.89659881591803,37.65766143798828],[74.99507904052763,37.76279067993175],[74.90542602539091,37.842868804931754],[74.91455078125006,38.00902557373047],[74.82287597656244,38.083057403564396],[74.78579711914085,38.18553924560558],[74.78778076171868,38.35453033447277],[74.86943054199236,38.4035263061524],[74.86725616455084,38.49841690063482],[74.71865844726585,38.52225112915044],[74.6309967041015,38.583023071289176],[74.38221740722662,38.65303039550792],[74.13407135009771,38.66843414306646],[74.06979370117193,38.53106689453125],[73.92433929443376,38.53609085083008],[73.80670928955078,38.63349914550787],[73.70677947998053,38.88555145263683],[73.84552001953153,38.947700500488395],[73.74483489990246,39.03039550781249],[73.61621093750023,39.23781967163086],[73.66996765136724,39.390819549560604],[73.65153503417997,39.4539527893067],[73.86383056640653,39.47890472412121],[73.94136810302734,39.60290908813482],[73.91511535644558,39.71462631225586],[73.83508300781267,39.75947952270508],[73.84229278564463,39.83875274658208],[74.02391052246111,40.098304748535156],[74.25164031982438,40.13319015502935],[74.3404388427735,40.08385086059581],[74.52365875244156,40.204280853271484],[74.68321228027372,40.34507751464838],[74.89945983886724,40.33708953857422],[74.81200408935541,40.45386505126953],[74.82811737060553,40.52474975585932],[74.98786926269526,40.45056915283203],[75.19393920898443,40.43875122070312],[75.59310913085955,40.658714294433594],[75.64081573486328,40.50736618041992],[75.71948242187528,40.48509216308594],[75.66290283203142,40.35647583007824],[75.72240447998064,40.28881835937494],[75.92230224609392,40.327178955078125],[75.97482299804692,40.380111694335994],[76.32480621337896,40.370609283447266],[76.52132415771513,40.462623596191406],[76.53820037841814,40.53485488891607],[76.64036560058622,40.622840881347656],[76.63398742675787,40.75733947753912],[76.78881835937517,40.86001205444336],[76.78607177734402,40.9606552124024],[76.86404418945335,41.02094268798834],[77.04727935791014,41.0597038269043],[77.15281677246115,41.01639556884771],[77.33203125000017,41.030059814453125],[77.46984100341825,41.00110244750988],[77.6697540283206,41.00105667114269],[77.87751770019547,41.0732040405274],[78.07094573974626,41.04732131958008],[78.1900329589846,41.079029083252],[78.27237701416016,41.21327972412121],[78.3855133056641,41.27106857299804],[78.40503692626982,41.41349029541021],[78.63984680175793,41.469600677490234],[78.7084350585938,41.55069351196295],[78.83637237548828,41.575511932373104],[78.93701171875011,41.645545959472656],[79.45201873779291,41.849201202392635],[79.6704940795899,41.79009628295904],[79.8815231323245,42.0380096435548],[80.12651824951172,42.03474044799805],[80.28093719482433,42.072792053222656],[80.24562835693388,42.22089004516601],[80.2890167236328,42.26013183593756],[80.20852661132812,42.427730560302784],[80.2213134765625,42.53625869750982],[80.16732788085938,42.63658905029297],[80.25833129882818,42.828430175781364],[80.39808654785173,42.82738876342785],[80.56831359863287,42.92402648925781],[80.3949203491213,42.99540710449219],[80.40970611572283,43.05728912353527],[80.59308624267584,43.131755828857536],[80.79944610595709,43.17541885375982],[80.74475860595732,43.297882080078125],[80.66073608398455,43.31282043457037],[80.74595642089838,43.448501586914176],[80.59010314941435,43.74141311645507],[80.51973724365246,43.83420944213873],[80.4027862548831,44.19795989990234],[80.34282684326178,44.48129653930664],[80.48973846435553,44.71142959594738],[80.34062194824246,44.82025909423839],[80.24667358398438,44.83958435058594],[80.04017639160162,44.800418853759766],[79.96040344238287,44.878940582275334],[80.08183288574236,45.04956054687494],[80.40277862548857,45.0528297424317],[80.44513702392607,45.10269165039068],[80.60604858398443,45.11034393310558],[80.7514266967774,45.15773010253906],[80.85411071777338,45.12795257568353],[81.0752029418947,45.1744003295899],[81.11258697509783,45.21973037719737],[81.4527664184573,45.26869964599621],[81.68958282470703,45.366630554199276],[81.78814697265642,45.30688858032232],[81.82784271240251,45.19998931884776],[82.0082397460937,45.158466339111385],[82.24082183837896,45.23535919189453],[82.48620605468761,45.120670318603516],[82.59252166748047,45.231460571289176],[82.630859375,45.35965728759777],[82.590141296387,45.44562149047846],[82.42965698242192,45.46862030029297],[82.27571868896484,45.5453987121582],[82.28911590576193,45.632480621338004],[82.50444030761724,45.98337936401373],[82.52902984619146,46.18402099609386],[82.73902893066412,46.51768493652343],[82.8073120117188,46.74961853027344],[82.9798889160158,47.0307121276856],[83.0308761596682,47.212120056152344],[83.1746673583985,47.22366333007818],[83.34348297119146,47.17607116699218],[83.55531311035172,47.068309783935604],[84.03821563720714,46.96535110473644],[84.4204406738284,47.01091003417969],[84.50701904296903,46.97783279418945],[84.70473480224615,46.99623489379894],[84.82668304443388,46.8323478698731],[84.96259307861328,46.87163925170904],[85.2194137573245,47.05139923095709],[85.52972412109402,47.05939865112316],[85.57649993896496,47.190666198730526],[85.690658569336,47.218231201171875],[85.69830322265648,47.39778137207037],[85.603500366211,47.51965713500988],[85.62123870849614,47.60763549804699],[85.54159545898449,47.93943786621094],[85.61039733886724,48.156730651855526],[85.7354507446289,48.37100219726574],[85.83935546875017,48.42549514770508],[86.21438598632812,48.43546676635748],[86.31805419921903,48.50098419189458],[86.5847473144533,48.541519165039176],[86.76307678222649,48.71483993530273],[86.81044006347656,48.85033035278326],[86.72323608398455,48.990669250488395],[86.85520172119135,49.10752105712896],[86.98599243164091,49.103130340576286],[87.13469696044928,49.150798797607536],[87.43810272216813,49.08467102050787],[87.70231628417969,49.16968154907238],[87.832260131836,49.17500686645519],[87.8331909179688,49.05994033813482],[87.91448974609403,48.985900878906364],[87.75003051757818,48.89054107666027],[87.92465972900408,48.76227951049816],[88.07332611083989,48.691680908203125],[88.00425720214848,48.56599044799816],[88.34957885742215,48.47064208984375],[88.60107421875006,48.344116210937436],[88.57527160644547,48.27587890625],[88.67424011230463,48.17456054687494],[88.8991088867187,48.119873046875],[89.02851104736334,48.039772033691406],[89.04107666015625,47.94732666015631],[89.19303894042963,47.95016098022455],[89.3184204101563,48.02838897705084],[89.56591796874994,48.0487060546875],[89.61727142334001,47.94583892822277],[89.79641723632818,47.818149566650504],[89.93029785156254,47.816528320312614],[90.32345581054692,47.666992187500114],[90.4569091796875,47.487121582031364],[90.51784515380888,47.244155883789006],[90.73431396484403,47.001525878906364],[90.88115692138678,46.97636413574213],[90.95353698730486,46.826980590820426],[91.05173492431652,46.72601318359381],[91.07763671875028,46.563964843750114],[90.95587158203124,46.33648681640625],[90.93476867675808,46.20563888549816],[91.021484375,46.11309814453119],[91.01149749755854,46.0005340576173],[90.84808349609392,45.88330078125],[90.69985198974626,45.69068145751953],[90.66369628906256,45.51690673828125],[90.76786041259771,45.42153549194347],[90.813217163086,45.28636932373052],[90.93829345703142,45.18244171142589],[91.15808105468756,45.19413757324213],[91.37432861328125,45.10467529296869],[91.48205566406267,45.13571166992199],[91.65202331542986,45.05670928955083],[92.01647949218744,45.0692749023438],[92.17221832275396,45.03053665161144],[92.34112548828142,45.05072021484375],[92.51457977294928,45.00998687744146],[93.06984710693365,45.01840972900402],[93.50827026367186,44.96534347534174],[94.19741821289068,44.66250228881836],[94.33400726318365,44.5230598449707],[94.57597351074236,44.44833374023449],[94.69549560546903,44.34771728515624],[94.99050903320318,44.25455093383795],[95.42366027832037,44.28926849365246],[95.37063598632818,44.20970916748058],[95.37479400634766,44.021148681640625],[95.5507812500001,43.9886589050293],[95.67650604248064,43.70642852783203],[95.88110351562528,43.40209960937506],[95.91645050048844,43.233505249023494],[96.07395172119168,43.12535095214849],[96.15444183349638,43.01053619384771],[96.32444763183611,42.88243103027338],[96.36516571044926,42.71707534790045]]]},"properties":{"ID_0":49,"ISO":"CN-65","NAME_0":"China","ID_1":28,"NAME_1":"Xinjiang Uygur","TYPE_1":"Zìzhìqu","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"新疆維吾爾自治區|新疆维吾尔自治区","VARNAME_1":"Xīnjiāng Wéiwúěr"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[89.73124694824247,36.08474349975586],[89.52570343017595,36.032970428466854],[89.40850067138678,36.03224182128906],[89.42065429687506,35.92338180541992],[89.67651367187528,35.85014724731445],[89.7855987548831,35.86180877685558],[89.71098327636741,35.577720642089844],[89.73441314697271,35.47107696533203],[89.68804168701172,35.421749114990234],[89.49705505371105,35.365894317626946],[89.45832061767607,35.23912429809576],[89.58079528808588,35.121234893798885],[89.56469726562523,34.95976257324224],[89.5919952392581,34.894687652588004],[89.81427001953142,34.90872955322277],[89.8569030761721,34.80925750732422],[89.73016357421892,34.73450851440441],[89.81417083740257,34.540431976318416],[89.8117065429688,34.16849136352545],[89.65811920166021,34.0953636169433],[89.657211303711,34.023685455322266],[89.73954772949219,33.91717147827159],[89.93082427978533,33.79388809204107],[90.00730133056658,33.689498901367244],[89.98716735839866,33.63319396972662],[90.18244934082037,33.54906845092785],[90.26480865478533,33.36758041381836],[90.40686035156261,33.25701904296875],[90.48712158203153,33.26638412475597],[90.70668029785185,33.13914108276373],[90.85399627685563,33.11772537231445],[90.94387054443365,33.217208862304744],[91.16146087646501,33.24025344848644],[91.18637084960966,33.305435180664006],[91.36598205566412,33.323455810546925],[91.3781509399414,33.238750457763786],[91.56113433837896,33.05408859252958],[91.79296875000017,32.945423126220646],[91.96720123291021,32.820003509521534],[92.12519836425776,32.88182449340826],[92.20835113525402,32.86090850830101],[92.20345306396484,32.751903533935774],[92.35968780517584,32.76605606079107],[92.6539382934572,32.72504043579107],[92.69166564941418,32.767780303955135],[92.85727691650408,32.70330810546875],[93.01750183105486,32.73899841308594],[93.0602951049807,32.632339477539006],[93.24640655517578,32.662952423095646],[93.38574218750011,32.52799224853527],[93.51541900634793,32.48030853271496],[93.65404510498068,32.57497787475597],[93.81033325195324,32.556056976318416],[93.85662078857428,32.47676467895519],[93.96201324462908,32.489112854003906],[94.13578033447266,32.435955047607536],[94.20251464843767,32.51846313476557],[94.36606597900413,32.52442932128906],[94.39097595214861,32.60127258300781],[94.54284667968756,32.60404586791992],[94.6223754882813,32.67022705078131],[94.81520080566406,32.48447036743164],[94.8959350585938,32.46239089965826],[94.95648956298845,32.342052459716854],[95.08084869384783,32.250434875488395],[95.28946685791027,32.25958251953153],[95.43338775634771,32.16000747680664],[95.44856262207026,32.06494903564453],[95.37197875976568,31.964406967163313],[95.52100372314482,31.751422882080018],[95.6384048461914,31.78522682189947],[95.85890197753906,31.717830657959098],[96.06051635742193,31.72340965271007],[96.2497711181641,31.695831298828068],[96.1353759765626,31.81841850280756],[96.25008392333983,31.93286705017084],[96.31795501709,31.942878723144528],[96.43717193603533,31.797254562377873],[96.56983947753935,31.71659088134777],[96.68083190917974,31.73003578186035],[96.73613739013695,31.67774009704596],[96.83872222900396,31.726831436157227],[96.76213836669932,31.829656600952262],[96.80891418457048,31.894855499267518],[96.73630523681646,31.983194351196513],[96.81362915039072,32.0182991027832],[96.96399688720703,32.02000045776367],[97.3019256591798,32.08260726928711],[97.26210784912126,32.18583679199236],[97.28708648681658,32.28674697875982],[97.4086532592774,32.29731369018549],[97.3977127075197,32.5204429626466],[97.64865875244169,32.478321075439396],[97.72996520996111,32.529659271240234],[97.96907806396513,32.474918365478516],[98.21236419677734,32.34500122070318],[98.29969787597673,32.12960433959972],[98.43197631835943,32.01350402832037],[98.3977890014649,31.90719985961942],[98.56581878662115,31.64849472045898],[98.70890045166037,31.516067504882873],[98.84212493896479,31.432546615600696],[98.88133239746116,31.36942291259794],[98.78009033203152,31.2549667358399],[98.68820190429682,31.338266372680664],[98.6023406982423,31.23885536193859],[98.80412292480496,31.000701904296932],[98.77465820312499,30.90786743164074],[98.96224975585966,30.733436584472653],[98.9040985107423,30.697721481323246],[98.93891143798834,30.593173980712947],[98.98809814453125,30.152858734130973],[99.04269409179709,30.08236122131353],[99.07112884521489,29.931365966796875],[99.02009582519548,29.844123840332145],[98.99391174316435,29.67295265197771],[99.05204010009788,29.56004905700689],[99.0758743286135,29.296464920043945],[99.11231231689476,29.25111961364757],[98.96210479736345,29.14582633972179],[99.01165771484386,29.034524917602653],[98.9209289550783,28.978324890136772],[98.90444946289091,28.804208755493164],[98.84078216552729,28.81069183349615],[98.77833557128928,29.003118515014933],[98.6559143066409,28.977781295776477],[98.6465454101563,28.886396408081165],[98.68777465820341,28.734224319458065],[98.59285736084001,28.673072814941573],[98.62803649902366,28.493793487548885],[98.75309753417969,28.33836174011236],[98.71213531494146,28.23954391479498],[98.39566802978516,28.112482070923132],[98.37372589111328,28.255189895629993],[98.27863311767607,28.393327713012695],[98.2023315429688,28.344818115234542],[98.26612854003923,28.24566650390625],[98.1647109985352,28.203407287597713],[98.14321136474636,28.04865264892578],[98.15088653564464,28.113918304443303],[97.90506744384783,28.37210273742687],[97.79055786132841,28.344070434570312],[97.71797943115234,28.503860473632923],[97.5485305786134,28.495832443237475],[97.47708129882812,28.369539260864315],[97.46086120605467,28.268100738525387],[97.35135650634783,28.234300613403544],[97.12593841552734,28.356220245361328],[96.99649810791021,28.31623077392578],[96.89866638183622,28.385900497436808],[96.77437591552751,28.37407112121582],[96.66456604003906,28.46577072143583],[96.37094116210947,28.394300460815543],[96.40077209472656,28.562370300293026],[96.58593750000017,28.721588134765682],[96.60838317871122,28.798070907592827],[96.52121734619169,28.965209960937784],[96.43579101562511,29.03758811950689],[96.34670257568388,29.032268524170036],[96.2281494140625,28.929330825805664],[96.15039062500021,29.05314064025885],[96.21749877929693,29.138099670410153],[96.34635925292962,29.17103004455572],[96.39280700683616,29.25650024414074],[96.23416900634794,29.243459701538196],[96.09281921386747,29.456430435180778],[95.9571075439453,29.38266754150413],[95.77762603759766,29.35639953613287],[95.58580017089848,29.217992782592773],[95.54502868652372,29.215589523315487],[95.45433807373047,29.03699111938482],[95.2501068115235,29.068571090698352],[95.25076293945324,29.109880447387813],[94.87180328369156,29.184289932251147],[94.62815856933622,29.348590850830078],[94.55789947509766,29.22891044616705],[94.43118286132805,29.22682189941406],[94.35016632080078,29.15020942688011],[94.21469116210947,29.084089279174805],[94.15513610839872,28.954761505127006],[93.99491119384771,28.841369628906303],[93.93456268310545,28.67709922790533],[93.84403991699224,28.707389831542912],[93.606986999512,28.655878067016655],[93.4955062866211,28.68402290344238],[93.33230590820341,28.633680343628043],[93.19375610351561,28.318040847778374],[93.02191162109375,28.299930572509762],[92.89525604248047,28.20461082458496],[92.7830276489259,28.183740615844727],[92.66293334960936,28.062770843505973],[92.739486694336,27.989410400390906],[92.56069183349626,27.82104110717779],[92.30738830566423,27.779239654541016],[92.25515747070312,27.862169265747067],[92.15609741210932,27.83702087402355],[92.05539703369135,27.75913047790533],[91.87864685058594,27.721839904785266],[91.82794952392601,27.807550430297795],[91.70957183837902,27.813289642334098],[91.6257934570313,27.89198493957525],[91.48600769042997,27.946329116821346],[91.46733093261747,28.00578117370617],[91.31130218505888,28.064329147338977],[91.20848083496122,27.988225936889762],[90.9805450439456,28.002061843872184],[90.93096923828153,28.043130874633786],[90.68881988525408,28.077556610107422],[90.59156036376953,28.02525138854992],[90.50657653808622,28.06843948364263],[90.3819351196289,28.061439514160156],[90.2960586547851,28.157180786132812],[90.12445068359375,28.14297866821289],[89.86026763916033,28.23016929626465],[89.71891021728533,28.174335479736442],[89.6138763427735,28.170415878296012],[89.46048736572283,28.037160873413086],[89.38732147216803,27.890411376953182],[89.2246780395509,27.78155136108404],[89.16954040527372,27.66936683654791],[89.03395080566418,27.5795955657959],[88.96806335449223,27.404869079589787],[88.88986206054693,27.336400985717773],[88.809326171875,27.405189514160437],[88.76706695556669,27.564960479736442],[88.8466110229495,27.668899536132812],[88.88018798828153,27.895240783691346],[88.84088134765653,27.991001129150447],[88.75108337402355,28.073312759399414],[88.5748367309573,28.085609436035323],[88.38880157470709,27.97784042358404],[88.24388885498075,27.948539733886776],[88.13906097412126,27.963479995727592],[88.03041839599632,27.905515670776367],[87.86851501464872,27.910615921020508],[87.726615905762,27.805114746093807],[87.58131408691418,27.861755371093807],[87.42174530029297,27.86026382446289],[87.32031250000023,27.825510025024414],[87.12883758544928,27.833919525146428],[87.04161834716803,27.950115203857422],[86.79254913330101,28.01871299743658],[86.69151306152372,28.108438491821346],[86.5788040161134,28.11266517639166],[86.44483184814459,27.905500411987248],[86.23981475830084,27.972814559936637],[86.1995162963867,28.138015747070426],[86.09291839599615,28.033016204834098],[86.12631988525413,27.92737197875988],[86.06741333007841,27.89951515197754],[85.89803314209013,28.066932678222656],[85.85067749023443,28.183111190795955],[85.66431427001953,28.304716110229663],[85.50921630859392,28.33301544189453],[85.25740051269543,28.29422760009777],[85.11038208007828,28.3467960357666],[85.12802886962896,28.487722396850643],[85.19985961914062,28.627033233642578],[85.0607986450197,28.682334899902404],[84.95107269287121,28.580038070678768],[84.85931396484403,28.5703144073488],[84.70301055908203,28.634365081787166],[84.6285705566408,28.736415863037166],[84.49398803710942,28.73465347290045],[84.41109466552763,28.853418350219727],[84.22260284423834,28.91559982299805],[84.25003814697271,29.03713607788086],[84.16603088378899,29.19396972656267],[84.20318603515652,29.240074157714954],[83.96481323242205,29.33131599426281],[83.8144607543948,29.301618576050085],[83.63550567626976,29.158428192138672],[83.53807067871122,29.2037868499757],[83.44040679931646,29.30871772766119],[83.41548156738276,29.421415328979602],[83.28421783447294,29.49870872497553],[83.19882202148455,29.611118316650447],[83.07142639160173,29.609912872314453],[82.91691589355486,29.70631599426264],[82.76481628417974,29.73111534118658],[82.69873046875017,29.855230331420895],[82.60415649414062,29.88915634155273],[82.38481140136719,30.025733947754016],[82.1725463867188,30.067626953125053],[82.11191558837913,30.345615386962944],[82.00005340576189,30.320764541626033],[81.63581848144537,30.445116043090874],[81.54931640625011,30.3721160888673],[81.40892028808622,30.420015335083118],[81.42466735839848,30.304491043090817],[81.39535522460966,30.206050872802848],[81.28852081298851,30.114337921142695],[81.2758178710937,30.044515609741268],[81.13436889648443,30.016540527344034],[81.01097869873053,30.26279067993164],[80.81128692626959,30.31998062133789],[80.73129272460955,30.402219772338814],[80.59355926513666,30.48223114013672],[80.53058624267607,30.46108818054205],[80.27799987792991,30.574480056762752],[80.21096038818376,30.582300186157283],[80.23726654052729,30.74065971374517],[80.15937042236351,30.812089920044002],[79.87998962402372,30.925279617309684],[79.74559020996111,31.006151199340934],[79.5848159790039,30.943990707397518],[79.49706268310564,31.041362762451175],[79.2996215820312,31.149240493774588],[79.24809265136747,31.296619415283256],[79.1288604736331,31.43873023986828],[79.05677795410185,31.472259521484485],[78.98056030273453,31.356981277465817],[78.87953948974632,31.270719528198295],[78.79547882080107,31.452762603759766],[78.72126007080105,31.54095077514654],[78.82688903808616,31.627990722656246],[78.73439788818365,31.691980361938533],[78.6913528442384,31.79335021972656],[78.73706817626959,32.00408172607422],[78.57431030273438,32.15861892700207],[78.59291076660183,32.218669891357706],[78.4643173217774,32.277778625488274],[78.51876068115251,32.41849899292015],[78.43811035156267,32.45639038085943],[78.41223907470726,32.556060791015625],[78.63233947753929,32.61106109619146],[78.73645019531256,32.69593048095709],[78.78032684326176,32.598320007324276],[78.78118133544933,32.47529983520508],[78.97096252441418,32.34428024291992],[79.06754302978516,32.384979248046875],[79.20295715332048,32.510829925537166],[79.34697723388672,32.52664184570323],[79.54535675048834,32.60736083984392],[79.54052734375017,32.74869155883795],[79.36503601074213,32.9569206237793],[79.40983581542997,33.178771972656364],[79.14144134521511,33.20009994506835],[79.06659698486327,33.29589080810558],[78.82325744628912,33.48348999023443],[78.70929718017572,33.6796112060548],[78.77522277832037,33.746219635009815],[78.71724700927763,33.890480041503906],[78.76362609863308,34.001510620117244],[78.72923278808615,34.09569931030285],[78.95619964599615,34.217830657958984],[78.9934005737307,34.28874206542969],[78.92743682861357,34.37163543701183],[79.03726196289068,34.3362655639649],[79.07736206054716,34.415466308593864],[79.22739410400389,34.41580200195318],[79.50239562988298,34.456565856933594],[79.67353057861334,34.452995300293026],[79.79914855957026,34.480712890625114],[79.91581726074223,34.7082405090332],[79.86662292480497,34.749565124511776],[79.89976501464848,34.86171340942394],[79.99201965332048,34.86211013793957],[80.05039978027344,35.060012817382756],[80.14865112304692,35.09882354736334],[80.29506683349604,35.26585388183594],[80.29357147216814,35.360706329345646],[80.43515777587896,35.447147369384766],[80.52110290527361,35.45596694946295],[80.6871261596682,35.339969635009766],[80.84226989746105,35.3464241027832],[81.03451538085966,35.312324523925895],[81.05199432373051,35.40310668945323],[81.21689605712908,35.32008361816412],[81.44589996337919,35.354331970214844],[81.5320663452149,35.25843429565441],[81.68378448486338,35.23654556274413],[81.85121917724638,35.25978469848644],[82.04818725585943,35.363407135009766],[82.0455856323245,35.44977569580084],[82.32532501220709,35.56008911132824],[82.40589904785183,35.699996948242244],[82.62599182128935,35.69311141967784],[82.72863769531261,35.63856506347656],[82.78639221191435,35.686157226562614],[82.96472167968778,35.66818237304693],[82.99623870849621,35.485298156738395],[83.12372589111328,35.39918899536144],[83.2394256591798,35.420680999755916],[83.53900146484398,35.342594146728516],[83.88502502441435,35.366985321045036],[84.06267547607439,35.407478332519645],[84.09380340576172,35.36454010009771],[84.33398437500023,35.41498184204107],[84.44983673095696,35.47875976562506],[84.4456253051759,35.543003082275504],[84.83635711669928,35.640121459960994],[85.03217315673845,35.747024536132926],[85.26630401611334,35.78048706054693],[85.61204528808594,35.65629577636719],[85.69716644287132,35.75167465209972],[85.9533157348635,35.78454971313476],[86.05230712890648,35.84610748291021],[86.17725372314459,36.03277206420904],[86.1957473754885,36.12948608398437],[86.39032745361357,36.207294464111385],[86.67237091064459,36.23704910278325],[86.74362945556658,36.29245376586914],[86.99362182617216,36.30913543701166],[87.14658355712919,36.29771804809576],[87.3761291503908,36.41680145263677],[87.55146789550787,36.342540740966854],[87.72917175292986,36.385295867920036],[87.90692138671892,36.37609100341797],[87.97315216064453,36.436103820800895],[88.13172912597685,36.427383422851506],[88.23899078369158,36.468994140625],[88.46800231933622,36.48248672485357],[88.57082366943388,36.461677551269645],[88.62131500244163,36.389949798583984],[88.76565551757812,36.30178070068365],[88.93024444580095,36.3599739074707],[89.16053009033226,36.24711990356451],[89.23417663574247,36.29521942138672],[89.48770904541027,36.15145492553722],[89.73124694824247,36.08474349975586]]]},"properties":{"ID_0":49,"ISO":"CN-54","NAME_0":"China","ID_1":29,"NAME_1":"Xizang","TYPE_1":"Zìzhìqu","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"西藏自治區|西藏自治区","VARNAME_1":"Tibet|Xīzàng"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[105.30024719238298,27.709112167358626],[105.24489593505854,27.5604190826416],[105.23271179199236,27.4316349029541],[105.07233428955077,27.42026519775402],[104.86380004882807,27.293619155883846],[104.7346649169923,27.344867706298942],[104.61405944824224,27.312002182007063],[104.48960113525406,27.413248062134073],[104.3401107788086,27.46142768859863],[104.25457763671886,27.31318664550781],[104.17899322509771,27.27336311340332],[103.92717742919922,27.441984176635856],[103.82901000976567,27.267192840576456],[103.70276641845732,27.14001274108892],[103.63481140136741,27.11949157714855],[103.75336456298845,26.962678909301815],[103.7624588012698,26.868497848510742],[103.70027923584013,26.821123123168945],[103.7656021118164,26.735904693603516],[103.74365234375016,26.635738372802905],[103.81132507324212,26.53918838500988],[104.0076751708985,26.51918411254877],[104.12743377685547,26.64672660827642],[104.30657196044928,26.618005752563477],[104.41782379150419,26.711545944213867],[104.48223114013678,26.58381271362316],[104.55432128906256,26.591611862182674],[104.67794036865257,26.37670707702648],[104.5381469726563,26.25266838073736],[104.5228271484375,26.113374710083065],[104.46604156494163,26.020044326782227],[104.40510559082047,25.804899215698356],[104.30797576904324,25.658769607543945],[104.42408752441412,25.583690643310543],[104.43321990966803,25.52098464965826],[104.55878448486357,25.52507972717285],[104.54013061523432,25.411338806152344],[104.64119720458994,25.358638763427788],[104.65016174316418,25.298894882202262],[104.75211334228521,25.2172470092774],[104.66259765625016,25.073026657104606],[104.70897674560545,24.998239517211914],[104.54479217529301,24.826942443847656],[104.53002166748041,24.734367370605582],[104.50005340576183,24.59066390991205],[104.60913848876982,24.38091468811041],[104.71868896484392,24.34291648864757],[104.76401519775419,24.461069107055778],[104.97734069824219,24.415878295898438],[105.03990936279295,24.444688796997184],[105.19375610351574,24.329828262329215],[105.25254058837908,24.075328826904293],[105.3184204101563,24.121213912963924],[105.40964508056669,24.04160308837902],[105.4925308227539,24.028812408447266],[105.53104400634766,24.131656646728572],[105.62133026123053,24.134126663208065],[105.64262390136719,24.06056213378906],[105.76200866699236,24.076547622680778],[105.838134765625,24.031015396118164],[105.90697479248064,24.117866516113335],[105.99864959716825,24.13204383850109],[106.18795013427734,23.83817481994623],[106.05941772460943,23.490928649902457],[105.88883972167986,23.527698516845646],[105.81051635742193,23.504873275756836],[105.6827316284182,23.373731613159233],[105.5869979858399,23.31438446044922],[105.5384597778322,23.193382263183707],[105.3244705200197,23.39269065856945],[105.212257385254,23.2672500610351],[105.08943176269543,23.270870208740288],[105.024658203125,23.22073936462408],[104.8009872436524,23.122470855712947],[104.83001708984402,22.98573112487793],[104.72223663330107,22.820240020752067],[104.5472412109375,22.839508056640682],[104.39894866943386,22.702264785766655],[104.2777709960938,22.74012947082519],[104.26963806152372,22.837600708007866],[104.11379241943388,22.811098098754883],[104.0383529663086,22.722509384155273],[104.00718688964872,22.571479797363278],[103.96203613281267,22.506719589233512],[103.63845825195317,22.793989181518498],[103.5316009521485,22.594932556152344],[103.33245086669922,22.80796051025385],[103.27954864501964,22.67908096313488],[103.19362640380865,22.649370193481445],[103.18274688720709,22.55914115905773],[103.0245513916015,22.44621086120611],[102.92182922363287,22.507730484008846],[102.86106109619169,22.611850738525387],[102.50965118408209,22.77812194824224],[102.45400238037115,22.756731033325195],[102.40431976318376,22.63443946838373],[102.27440643310564,22.50007057189947],[102.26895904541037,22.424240112304684],[102.02439880371094,22.456890106201282],[101.86360931396484,22.39015960693365],[101.80690002441399,22.485900878906303],[101.69529724121104,22.474269866943303],[101.6797714233399,22.37304115295416],[101.61871337890625,22.274351119995174],[101.58200073242199,22.102310180664062],[101.62166595459013,21.976160049438587],[101.7814559936524,21.832490921020565],[101.75076293945318,21.738540649414062],[101.82670593261747,21.602979660034237],[101.77822113037115,21.513320922851562],[101.74030303955107,21.314830780029297],[101.84710693359402,21.25210952758789],[101.78785705566423,21.14003181457514],[101.70564270019548,21.14932060241699],[101.57991790771477,21.244949340820312],[101.38620758056639,21.22165107727062],[101.29039764404291,21.17806053161632],[101.23803710937523,21.25073051452648],[101.25984954833996,21.364160537719727],[101.19708251953152,21.416759490966854],[101.21362304687523,21.561260223388672],[101.12123870849625,21.65455818176275],[101.12654113769526,21.77544021606445],[101.01802062988276,21.712150573730582],[100.8918228149414,21.684900283813533],[100.71866607666037,21.50843048095714],[100.57778930664074,21.45025062561041],[100.36158752441412,21.536582946777344],[100.20258331298857,21.43935012817377],[100.11479187011724,21.586610794067383],[100.14003753662138,21.693990707397575],[99.98615264892572,21.718660354614315],[99.94966125488308,21.866020202636776],[100,21.97711753845215],[99.97059631347662,22.052030563354432],[99.85661315917979,22.023740768432674],[99.6526107788086,22.104871749877873],[99.21894073486334,22.118749618530387],[99.16896057128929,22.15524291992199],[99.23683929443365,22.253429412841797],[99.2896499633789,22.403280258178768],[99.38951873779308,22.49942016601562],[99.32546234130876,22.75107002258306],[99.45101165771484,22.85798263549816],[99.51864624023449,23.003999710083065],[99.51126861572264,23.083738327026364],[99.36086273193388,23.133808135986442],[99.10981750488304,23.093709945678768],[99.0405502319336,23.165739059448185],[98.89743041992182,23.21968078613287],[98.9307479858399,23.274179458618164],[98.92304992675781,23.42311286926281],[98.81105041503923,23.551168441772575],[98.88289642334011,23.59087944030756],[98.8036193847658,23.775249481201286],[98.70450592041021,23.789779663085994],[98.69281005859392,23.920351028442496],[98.84646606445341,24.13429069519037],[98.60822296142607,24.094741821289116],[98.53591918945317,24.129579544067496],[98.34590148925786,24.102199554443303],[98.23092651367209,24.11689949035644],[98.02976226806652,24.071229934692496],[97.88526153564453,24.010219573974723],[97.6731262207033,23.862070083618164],[97.5340881347658,23.94261169433605],[97.63262939453153,23.99999809265148],[97.73426818847662,24.117031097412223],[97.76146697998047,24.278789520263786],[97.67356109619146,24.453189849853516],[97.55757904052733,24.495992660522518],[97.57589721679688,24.76333045959478],[97.68678283691435,24.82523918151861],[97.76772308349626,24.823471069335934],[97.71743774414067,24.980840682983455],[97.84503173828129,25.267892837524528],[97.94904327392605,25.223720550537053],[98.1418762207034,25.40410041809076],[98.1826629638674,25.62532043457031],[98.32022857666043,25.546270370483512],[98.36915588378906,25.57299995422369],[98.47576904296874,25.797702789306637],[98.55204772949236,25.848430633544922],[98.63758087158209,25.804229736328125],[98.71266174316406,25.898082733154354],[98.61067199707054,25.98987007141113],[98.57286071777344,26.11908149719244],[98.73275756835943,26.1878604888916],[98.67279815673827,26.249950408935604],[98.73718261718778,26.3845405578615],[98.78105926513683,26.619880676269588],[98.73362731933611,27.005161285400504],[98.68685150146496,27.21372985839855],[98.7321701049807,27.317199707031477],[98.69644927978516,27.391059875488338],[98.69291687011747,27.58967018127447],[98.58091735839865,27.609790802002067],[98.46758270263672,27.69016265869152],[98.4247207641602,27.58872985839838],[98.31881713867193,27.54277038574213],[98.29535675048834,27.639631271362305],[98.22135925292974,27.732229232788143],[98.20735168457026,27.905109405517578],[98.13844299316435,27.96882057189947],[98.14321136474636,28.04865264892578],[98.1647109985352,28.203407287597713],[98.26612854003923,28.24566650390625],[98.2023315429688,28.344818115234542],[98.27863311767607,28.393327713012695],[98.37372589111328,28.255189895629993],[98.39566802978516,28.112482070923132],[98.71213531494146,28.23954391479498],[98.75309753417969,28.33836174011236],[98.62803649902366,28.493793487548885],[98.59285736084001,28.673072814941573],[98.68777465820341,28.734224319458065],[98.6465454101563,28.886396408081165],[98.6559143066409,28.977781295776477],[98.77833557128928,29.003118515014933],[98.84078216552729,28.81069183349615],[98.90444946289091,28.804208755493164],[98.9209289550783,28.978324890136772],[99.01165771484386,29.034524917602653],[98.96210479736345,29.14582633972179],[99.11231231689476,29.25111961364757],[99.12959289550798,28.904745101928825],[99.10897827148453,28.856487274169922],[99.19222259521507,28.496875762939567],[99.17343902587908,28.415414810180774],[99.30883026123058,28.22509956359863],[99.4205627441409,28.28846740722662],[99.38807678222662,28.396894454956055],[99.3909606933596,28.548915863037166],[99.51906585693375,28.585510253906193],[99.53871154785172,28.68799209594738],[99.62186431884783,28.81273460388189],[99.72283935546898,28.83901786804199],[99.73358154296903,28.732809066772514],[99.83236694335966,28.667627334594723],[99.83000946044926,28.60941123962408],[99.9564437866211,28.57198143005371],[100.05937957763683,28.376356124877987],[100.17864990234375,28.315002441406364],[100.16327667236334,28.216581344604435],[100.02705383300787,28.17434120178217],[100.08011627197271,28.04192543029796],[100.18659973144541,27.955966949463004],[100.32546234130854,27.72199058532726],[100.44800567626959,27.872024536132812],[100.54777526855491,27.815065383911357],[100.67755889892572,27.926382064819393],[100.71102905273443,27.805879592895508],[100.8296508789063,27.684648513794],[101.0467147827149,27.222856521606502],[101.16567230224626,27.20093345642107],[101.13964843750006,27.033498764038082],[101.36657714843756,26.887445449829045],[101.37313079834013,26.765348434448242],[101.48163604736334,26.680433273315426],[101.39495849609375,26.559118270874023],[101.6395034790039,26.388837814331055],[101.62286376953142,26.23652648925787],[101.7342605590822,26.22133445739746],[101.81679534912121,26.090187072753903],[102.12990570068365,26.09490966796892],[102.25107574462919,26.222623825073356],[102.4005355834961,26.30599975585949],[102.62078857421892,26.345222473144588],[102.59899139404325,26.253160476684624],[102.70614624023443,26.217643737793026],[102.77985382080095,26.306201934814453],[102.98928070068376,26.36440086364746],[103.01662445068365,26.591283798217887],[102.97955322265642,26.799079895019645],[102.89497375488287,26.91550254821783],[102.86739349365229,27.032140731811523],[102.90791320800787,27.15058326721197],[102.88175964355469,27.303371429443587],[102.98589324951172,27.37384033203125],[103.13661956787132,27.425537109375227],[103.27442169189447,27.632938385009762],[103.4399032592774,27.75361633300787],[103.50244140625023,27.84023094177257],[103.49340057373064,28.0204181671142],[103.42749023437523,28.055618286132926],[103.56365203857428,28.228448867798136],[103.69735717773443,28.20534324646013],[103.8640975952149,28.306711196899357],[103.78363800048857,28.518131256103516],[103.87841033935553,28.62539100646984],[104.26107025146496,28.6456298828125],[104.25334167480474,28.397077560424805],[104.43637847900385,28.275659561157223],[104.45614624023443,28.17436408996582],[104.3845291137697,28.06200408935547],[104.31070709228533,28.03518295288086],[104.56137847900396,27.852773666381893],[104.72583007812506,27.900220870971676],[104.875717163086,27.912342071533203],[104.97012329101568,28.059192657470874],[105.05834197998058,28.099634170532223],[105.17595672607443,28.068841934204215],[105.30024719238298,27.709112167358626]]]},"properties":{"ID_0":49,"ISO":"CN-53","NAME_0":"China","ID_1":30,"NAME_1":"Yunnan","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"雲南|云南","VARNAME_1":"Yúnnán"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[121.23542022705078,28.21820068359375],[121.27847290039072,28.085140228271484],[121.1843032836914,28.043750762939453],[121.15125274658214,28.138469696045203],[121.23542022705078,28.21820068359375]]],[[[121.9487533569336,30.184860229492188],[122.09735870361327,30.15902519226069],[122.28736114501964,30.066810607910153],[122.33403015136717,30.015970230102592],[122.29708099365256,29.927370071411246],[122.1634750366212,29.99430465698248],[122.02401733398449,29.993461608887003],[121.9487533569336,30.184860229492188]]],[[[121.82986450195312,29.54458427429205],[121.9504165649415,29.512359619140625],[121.97624969482422,29.468194961547905],[121.91430664062524,29.349582672119197],[121.96901702880882,29.26457977294922],[121.93541717529298,29.194311141967773],[121.8090286254885,29.157083511352596],[121.66152954101564,29.172639846801697],[121.59819793701172,29.244863510131836],[121.52569580078125,29.198194503784237],[121.68235778808605,29.01736259460472],[121.63764190673861,28.75152969360363],[121.51013946533226,28.664861679077145],[121.57569122314453,28.4545841217041],[121.65069580078136,28.302089691162166],[121.4773559570317,28.332918167114315],[121.358467102051,28.13904953002941],[121.27540588378919,28.20514106750494],[121.21514129638682,28.32263946533214],[121.01847076416016,28.12902832031278],[120.95486450195312,27.98097229003912],[120.87959289550827,27.998750686645565],[120.86597442626953,27.867082595825195],[120.68374633789072,27.698474884033317],[120.60736083984398,27.57152938842773],[120.68152618408203,27.47236061096197],[120.53263854980514,27.22458267211914],[120.43459320068382,27.17173385620117],[120.3465499877933,27.395959854126144],[120.24364471435558,27.434686660766598],[120,27.382801055908317],[119.87128448486328,27.305782318115178],[119.73795318603514,27.367782592773494],[119.70047760009778,27.51910972595215],[119.55113983154308,27.67979621887207],[119.46971893310558,27.542411804199215],[119.3717727661135,27.53801727294922],[119.23970794677746,27.424690246582145],[119.1194076538086,27.442722320556584],[119.00635528564476,27.50000953674322],[118.91139221191452,27.46161270141596],[118.86888122558604,27.537115097045955],[118.8965301513673,27.65051651000982],[118.82616424560547,27.88200569152832],[118.72288513183592,27.978706359863338],[118.7124252319337,28.06279945373535],[118.79248046874999,28.123294830322266],[118.8037033081058,28.229173660278377],[118.69368743896483,28.310081481933707],[118.60340881347666,28.257303237914982],[118.47968292236327,28.242441177368335],[118.42427062988293,28.292282104492244],[118.46610260009798,28.47573852539068],[118.4088363647461,28.575767517089957],[118.43223571777355,28.674160003662106],[118.36033630371116,28.811964035034237],[118.18122100830088,28.982320785522514],[118.09647369384764,28.993619918823356],[118.04351043701182,29.09466934204113],[118.03459930419932,29.210161209106726],[118.20594787597656,29.350814819336165],[118.18945312500023,29.39522171020536],[118.30193328857422,29.477258682251147],[118.47203063964844,29.506912231445426],[118.57234954833984,29.635986328125053],[118.72238159179733,29.7166423797608],[118.74845886230491,29.83928489685064],[118.89150238037132,29.951297760009762],[118.86558532714855,30.10835075378418],[118.87991333007834,30.32014274597196],[118.94409942626952,30.363153457641882],[119.05308532714865,30.308387756347773],[119.20927429199241,30.29532051086443],[119.32678985595727,30.37599563598644],[119.32295989990246,30.53394317626976],[119.23678588867232,30.551254272460934],[119.3431854248048,30.67206382751476],[119.41265869140635,30.647205352783484],[119.57026672363315,30.838838577270565],[119.554443359375,30.889356613159123],[119.6291732788087,31.021799087524524],[119.63211059570311,31.139343261718803],[119.7831954956057,31.18224334716797],[119.90895080566418,31.17524719238287],[119.991981506348,31.026542663574162],[120.15082550048828,30.936313629150447],[120.36167144775392,30.951988220214844],[120.43340301513695,30.90119361877447],[120.50706481933615,30.76718521118175],[120.58148193359386,30.8590545654298],[120.70520782470727,30.90073013305675],[120.70153045654297,30.972934722900447],[120.89511871337892,31.01197814941412],[120.9938354492192,31.004228591919063],[120.98263549804699,30.832660675048768],[121.0775604248049,30.851522445678768],[121.19924926757835,30.78400611877441],[121.26490020751953,30.689582824707255],[121.11207580566428,30.588470458984375],[121.00818634033216,30.57125091552729],[120.9334716796875,30.47680282592773],[120.90791320800781,30.372360229492184],[120.74874877929732,30.327083587646484],[120.68958282470714,30.261810302734432],[120.90178680419956,30.16597175598156],[121.17597198486351,30.32847213745123],[121.25680541992209,30.34347152709961],[121.42514038085949,30.288194656372355],[121.5929183959963,30.10847282409679],[121.67708587646486,29.988193511962947],[121.91401672363315,29.92291831970215],[121.99624633789064,29.82236099243164],[121.86042022705112,29.735139846801758],[121.700965881348,29.560689926147404],[121.82986450195312,29.54458427429205]]]]},"properties":{"ID_0":49,"ISO":"CN-33","NAME_0":"China","ID_1":31,"NAME_1":"Zhejiang","TYPE_1":"Shěng","ENGTYPE_1":"Province","NL_NAME_1":"浙江","VARNAME_1":"Zhèjiāng"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/egypt.geojson b/superset/assets/visualizations/countries/egypt.geojson new file mode 100644 index 0000000000000..4635d9a4974d7 --- /dev/null +++ b/superset/assets/visualizations/countries/egypt.geojson @@ -0,0 +1,34 @@ +{ +"type": "FeatureCollection", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, + +"features": [ +{ "type": "Feature", "properties": { "OBJECTID": "1", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "1", "NAME_1": "Ad Daqahliyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "", "VARNAME_1": "Al Daqahliyah|Dacahlia|Dagahlia|Dakahlieh|Dakahliya|Dakalieh|Daqaliya|Dakahlia|Dekahlia" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "2", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "2", "NAME_1": "Al Bahr al Ahmar", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Mar Rojo|Mar Vermelho|Mer Rouge|Red Sea" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "3", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "3", "NAME_1": "Al Buhayrah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "", "VARNAME_1": "Beheira|Behera|El Buhayra|Béhéra" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "4", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "4", "NAME_1": "Al Fayyum", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "El Faiyum|el Fayoum|Faium|Faiyum|Fayum|Fayoum|Fayyum" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "5", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "5", "NAME_1": "Al Gharbiyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "al-Garbiyah|El Gharbiya|Garbia|Gharbieh|Gharbiya|Gharbia" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "6", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "6", "NAME_1": "Al Iskandariyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Alexandria|Alexandrie|El Iskandariya" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "7", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "7", "NAME_1": "Al Isma`iliyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "As Ismailiyah|Ismailia|Ismaïlia|Isma'iliya" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "8", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "8", "NAME_1": "Al Jizah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "El Giza|El Gizah|Gizeh|Giza|Guizèh" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "9", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "9", "NAME_1": "Al Minufiyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Menoufieh|Menufia|Menufiya|Minufiya|Munufia|Menoufia|Minufia" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "10", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "10", "NAME_1": "Al Minya", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Minia|Minieh|Menia|Minya" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "11", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "11", "NAME_1": "Al Qahirah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Cairo|El Cairo|El Qahira|Le Caire" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "12", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "12", "NAME_1": "Al Qalyubiyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Caliubia|Kalioubieh|Kalioubiya|Qaliyubia|Qalyubiya|Kalyoubia|Kalyubia" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "13", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "13", "NAME_1": "Al Uqsur", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Luxor" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "14", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "14", "NAME_1": "Al Wadi al Jadid", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Al Wadi\/Al Jadid|El-Wadi El-Gidid|New Valley|Novo Vale|Ouadi El Guedid|Southern Desert" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "15", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "15", "NAME_1": "As Suways", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "El Suweiz|Es Suweis|Suez" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "16", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "16", "NAME_1": "Ash Sharqiyah", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Charkieh|Sharqia|Sharqiya|Sharquia|Sharkia" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "17", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "17", "NAME_1": "Aswan", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Assouan|Assuã|Assuán|Syene" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "18", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "18", "NAME_1": "Asyut", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Asyiut|Assiout|Assiut|Assyut|Asyout" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "19", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "19", "NAME_1": "Bani Suwayf", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Beni Suwayf|Beni Souef|Beni Suef" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "20", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "20", "NAME_1": "Bur Sa`id", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Bur Said|Canal|Port Said|Port-Saïd" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "21", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "21", "NAME_1": "Dumyat", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Damietta|Damiette|Dumiat" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "22", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "22", "NAME_1": "Janub Sina'", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Janub Sina|Sina al-Janubiyah|Sina' al-Janubiyah|Sinai al Janubia|South Sinai|Sud Sinai" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "23", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "23", "NAME_1": "Kafr ash Shaykh", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Kafr-El-Sheikh|Kafr ash Shaikh|Kafr ash-Shayk|Kafr el Sheik|Kafr el Sheikh" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "24", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "24", "NAME_1": "Matrouh", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Marsa Matruh|Mersa Matruh|Western Desert|Matrouh" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "25", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "25", "NAME_1": "Qina", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Kena|Qena|Quena" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "26", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "26", "NAME_1": "Shamal Sina'", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": " ", "VARNAME_1": "Shamal Sina|Nord Sinaï|North Sinai|Sina ash-Shamaliyah|Sinai ash Shamaliya" }, "geometry": null }, +{ "type": "Feature", "properties": { "OBJECTID": "27", "ID_0": "69", "ISO": "EGY", "NAME_0": "Egypt", "ID_1": "27", "NAME_1": "Suhaj", "TYPE_1": "Muhafazah", "ENGTYPE_1": "Governorate", "NL_NAME_1": "NA", "VARNAME_1": "Girga|Girgeh|Sawhaj|Sohag|Suhag" }, "geometry": null } +] +} diff --git a/superset/assets/visualizations/countries/france.geojson b/superset/assets/visualizations/countries/france.geojson new file mode 100644 index 0000000000000..bffaa86439261 --- /dev/null +++ b/superset/assets/visualizations/countries/france.geojson @@ -0,0 +1,98 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.635286331176758,49.05416870117199],[7.671083927154541,49.04597091674805],[7.730602264404354,49.05445861816406],[7.766453742981013,49.04668045043957],[7.799933910369872,49.06416320800781],[7.867407798767147,49.03349304199219],[7.890090465545767,49.0479469299317],[7.91527080535883,49.041908264160206],[7.937040328979606,49.05623245239252],[7.976319313049316,49.02830123901373],[8.051136016845703,49.01275634765631],[8.091376304626579,48.98925781250006],[8.19351768493658,48.976474761963],[8.197396278381404,48.95710372924805],[8.141568183898926,48.896072387695426],[8.121443748474178,48.86494064331055],[8.101068496704102,48.815814971923885],[8.062413215637207,48.78918838500988],[8.031856536865234,48.78814697265619],[8.017477035522518,48.762752532958984],[7.970248699188289,48.75622940063476],[7.961741924285889,48.72025680541998],[7.896251678466797,48.6672096252442],[7.845043659210204,48.645530700683594],[7.800177097320614,48.58316802978515],[7.805161952972468,48.513500213623104],[7.766868114471549,48.48680114746094],[7.766161918640136,48.46397399902349],[7.733546733856258,48.39868545532232],[7.730966091156062,48.382205963134766],[7.745231628418083,48.32982635498047],[7.693936824798699,48.302120208740234],[7.666151046752987,48.22109985351557],[7.641849994659537,48.20399475097656],[7.599499702453612,48.15563201904308],[7.598897457122859,48.13542938232433],[7.577859401702937,48.12139129638672],[7.518594741821346,48.12776565551758],[7.520334243774471,48.1494979858399],[7.47013950347906,48.16017532348633],[7.476943492889518,48.2035369873048],[7.35151195526123,48.24745559692394],[7.313147544860897,48.252143859863395],[7.299948692321833,48.28285598754882],[7.274333477020264,48.305076599121094],[7.198282241821233,48.310478210449276],[7.178990840911979,48.32862091064464],[7.117123603820801,48.33413314819336],[7.075964450836238,48.352584838867244],[7.100822448730469,48.37374496459972],[7.095686912536678,48.426532745361385],[7.125453948974723,48.499603271484375],[7.123165130615348,48.513591766357365],[7.077105522155989,48.51633453369151],[7.07936000823986,48.536418914795036],[7.168498992919978,48.528694152832145],[7.193254470825251,48.54924392700207],[7.21657133102417,48.552364349365234],[7.25628185272211,48.58867645263671],[7.280715942382869,48.63721847534179],[7.304355621338004,48.66020965576171],[7.26627588272106,48.66230010986328],[7.260134220123405,48.694713592529354],[7.308582782745418,48.76787948608398],[7.290898799896297,48.793907165527344],[7.245234966278132,48.81003189086913],[7.227121353149414,48.82846069335937],[7.203428268432674,48.826957702636776],[7.148854255676326,48.844596862793075],[7.147360801696834,48.82225036621105],[7.126799583435115,48.80115127563482],[7.087958335876408,48.80617141723627],[7.04711723327631,48.82063674926769],[7.055009841919059,48.864917755126896],[6.987973690033016,48.891368865966854],[6.957379817962646,48.89415740966808],[6.955067157745361,48.919960021972656],[6.977410316467285,48.93305587768555],[6.992516994476432,48.96052932739258],[7.032219409942627,48.95605087280285],[7.031687259674015,48.986366271972656],[7.052350997924862,49.008701324463004],[7.054912567138671,49.03062820434582],[7.078660011291446,49.050361633300895],[7.068600177764892,49.06338882446295],[7.099342346191463,49.077892303466854],[7.106357574463004,49.0453453063966],[7.12995100021385,49.0053596496582],[7.174240112304687,49.006366729736385],[7.209311485290527,48.98008728027344],[7.237987995147762,48.98765182495123],[7.293926715850887,48.972618103027344],[7.290202617645264,48.95651626586914],[7.326852798461914,48.94338226318371],[7.359096050262508,48.956470489501896],[7.379917621612605,48.95119857788086],[7.451631069183463,48.967971801757926],[7.536513805389404,48.9336395263673],[7.57992601394659,48.96161270141613],[7.588737010955754,48.99104690551758],[7.635286331176758,49.05416870117199]]]},"properties":{"ID_0":79,"ISO":"FR-67","NAME_0":"France","ID_1":1,"NAME_1":"Alsace","ID_2":1,"NAME_2":"Bas-Rhin","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Unterelsaá"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.577859401702937,48.12139129638672],[7.569315433502311,48.0806770324707],[7.568590164184626,48.036338806152344],[7.608582973480337,48.00032424926752],[7.622157096862792,47.97365951538085],[7.582633972168026,47.92988967895519],[7.582515239715689,47.89826202392584],[7.557729244232235,47.88094711303711],[7.562403202056942,47.841018676757805],[7.530228137969971,47.78344345092785],[7.548590183258113,47.735408782958984],[7.513751983642692,47.702819824218864],[7.524673938751163,47.660194396972656],[7.567355155944937,47.631736755371094],[7.593035697937068,47.60082244873041],[7.584266185760554,47.57571411132812],[7.517362594604549,47.54576873779297],[7.523452281951961,47.51704025268555],[7.507921218872127,47.4962272644043],[7.453484535217285,47.473575592041016],[7.42254638671875,47.44775390625006],[7.38629770278942,47.43196868896495],[7.338911056518668,47.44057083129883],[7.303975582122803,47.43825531005865],[7.247142314910945,47.421134948730575],[7.235901832580623,47.43687820434582],[7.174731731414908,47.44266891479492],[7.168905258178767,47.489501953125],[7.130345821380729,47.503025054931754],[7.142173290252742,47.52502441406256],[7.106215476989859,47.55133819580084],[7.085388183593807,47.593051910400504],[7.009212493896541,47.5993919372558],[7.005052566528433,47.619598388671925],[7.019805431365967,47.650680541992244],[7.045281887054499,47.67037582397461],[7.027565479278621,47.70536804199219],[7.03741788864147,47.721557617187436],[7.011684894561881,47.74163055419921],[6.974351882934513,47.75160217285162],[6.938450336456413,47.7711563110351],[6.864959716796989,47.78460693359381],[6.846179962158316,47.82294464111334],[6.896086215973128,47.832973480224666],[6.920047760009709,47.850288391113395],[6.898328304290828,47.888694763183594],[6.92751312255865,47.91213226318359],[6.920379638671874,47.945999145507926],[6.943508625030574,47.99873733520519],[7.002565860748291,48.023250579833984],[7.034357547759953,48.0753898620606],[7.051650047302303,48.082607269287166],[7.084163188934269,48.12922286987316],[7.059046268463192,48.139179229736264],[7.086996555328426,48.183753967285156],[7.106290340423698,48.19430923461914],[7.148723125457821,48.264339447021484],[7.198282241821233,48.310478210449276],[7.274333477020264,48.305076599121094],[7.299948692321833,48.28285598754882],[7.313147544860897,48.252143859863395],[7.35151195526123,48.24745559692394],[7.476943492889518,48.2035369873048],[7.47013950347906,48.16017532348633],[7.520334243774471,48.1494979858399],[7.518594741821346,48.12776565551758],[7.577859401702937,48.12139129638672]]]},"properties":{"ID_0":79,"ISO":"FR-68","NAME_0":"France","ID_1":1,"NAME_1":"Alsace","ID_2":2,"NAME_2":"Haut-Rhin","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Oberelsaá"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.253151893615779,45.444217681884815],[1.288270592689571,45.43352890014654],[1.260222077369804,45.40024948120117],[1.281683087349052,45.385089874267635],[1.323230504989738,45.383117675781364],[1.315957784652653,45.36117553710949],[1.285155534744263,45.352050781250114],[1.241603016853333,45.30130767822277],[1.227059960365352,45.271842956543026],[1.239384651184196,45.26044845581055],[1.2762850522995,45.25569915771496],[1.277687430381832,45.24208450317394],[1.233607888221798,45.22219467163091],[1.233455657959098,45.19842529296881],[1.272147893905696,45.20114517211914],[1.291399955749625,45.18564605712896],[1.254436254501343,45.15850448608409],[1.308754444122371,45.137016296386776],[1.320997476577759,45.14245223999029],[1.4130939245224,45.12491226196295],[1.392447471618652,45.105876922607536],[1.399564027786312,45.06118392944341],[1.448261499405021,45.01931381225597],[1.409130334854183,45.00672912597662],[1.414261221885738,44.97391510009771],[1.441561818122921,44.91878128051769],[1.421835780143851,44.89641189575201],[1.436070442199707,44.87298583984375],[1.405578136444149,44.863059997558594],[1.402507305145377,44.84904861450195],[1.365459203720093,44.84497070312506],[1.36410295963293,44.81156921386719],[1.30116593837738,44.797744750976676],[1.29715359210968,44.77696990966808],[1.321535348892269,44.7610969543457],[1.316050887107849,44.740375518798885],[1.287021398544255,44.71446228027343],[1.270040988922233,44.72208786010747],[1.224550008773917,44.684265136718864],[1.180560827255363,44.68268585205084],[1.146732687950134,44.67079544067394],[1.150893211364803,44.632854461670036],[1.075140833854675,44.57732391357421],[1.071130633354301,44.596229553222656],[1.012501597404423,44.61582946777337],[0.977296352386588,44.642990112304744],[0.927099049091396,44.63523483276367],[0.86999583244318,44.597316741943416],[0.835145711898804,44.60220336914068],[0.817003905773163,44.627010345458984],[0.835655510425568,44.63687896728521],[0.844563245773315,44.66583633422863],[0.828610479831809,44.68976974487305],[0.799457252025604,44.70078277587896],[0.778602540492955,44.684291839599666],[0.729133725166378,44.67599105834972],[0.65743404626852,44.6778564453125],[0.648099720478115,44.70217514038085],[0.576468050479889,44.69306182861339],[0.567171096801871,44.671512603759815],[0.546558022499141,44.6651496887207],[0.511835038661957,44.67776870727539],[0.470530122518539,44.66957855224621],[0.41695365309721,44.64521026611328],[0.366564273834285,44.661308288574276],[0.359541267156601,44.69131469726574],[0.336662083864326,44.73557281494152],[0.297325074672813,44.762294769287166],[0.28022626042366,44.774398803710994],[0.263719290494976,44.82641983032232],[0.281958401203269,44.82385253906255],[0.315055727958622,44.84537506103521],[0.288047045469398,44.86317825317383],[0.256445854902267,44.86751937866211],[0.209732785820961,44.84137344360346],[0.192843526601905,44.82080078125006],[0.148828119039592,44.82909393310547],[0.039303470402956,44.8276405334472],[0.022247236222029,44.84941864013683],[-0.010036071762386,44.85979080200201],[0.033907145261878,44.91496276855469],[0.005126500967947,44.94623947143565],[0.017709184438047,44.98063278198242],[0.040106356143951,44.99354934692394],[0.035640764981508,45.01434326171881],[0.073296248912811,45.070129394531364],[0.045793093741054,45.11346435546875],[-0.002243476454169,45.11936187744135],[-0.040200341492834,45.102382659912166],[-0.036750011146069,45.1407470703125],[0.004330746363905,45.19163131713873],[0.055581782013235,45.22716522216797],[0.100036896765289,45.22607421875006],[0.115843661129531,45.213573455810604],[0.145485624671039,45.214485168457145],[0.174738436937446,45.23920822143566],[0.172293275594711,45.25171279907232],[0.204415708780289,45.26360321044922],[0.220911905169601,45.290225982666016],[0.252620726823807,45.28940582275396],[0.270634382963181,45.31460571289068],[0.249430790543556,45.36358642578131],[0.270859807729664,45.41892623901367],[0.310780584812107,45.45875930786144],[0.356706649065018,45.466220855712834],[0.378383815288657,45.48412704467785],[0.432763397693748,45.50164794921875],[0.465736716985759,45.53962326049815],[0.506549119949398,45.55434036254877],[0.516323685646171,45.58806228637707],[0.501440644264278,45.61535263061535],[0.512656629085541,45.631458282470696],[0.538447558879852,45.62873840332037],[0.575447082519588,45.64092636108392],[0.587921559810752,45.66767501831055],[0.629742443561611,45.71456909179693],[0.662086367607174,45.68748092651367],[0.744137287140006,45.68826293945318],[0.775643348693791,45.667747497558594],[0.764133989811,45.631412506103516],[0.750612974166984,45.616874694824276],[0.777188122272548,45.592170715332145],[0.805857419967708,45.59496688842767],[0.811500310897884,45.57587051391613],[0.839995682239532,45.58130264282232],[0.869353055954093,45.62352752685547],[0.893740236759186,45.601032257080185],[0.946144878864402,45.612552642822266],[0.983447432518005,45.60362243652355],[1.023588418960571,45.607219696044915],[1.047748565673828,45.55783081054699],[1.086023807525692,45.534744262695426],[1.119312405586356,45.545963287353516],[1.16536366939539,45.52640151977544],[1.118435740470943,45.48790359497082],[1.135644912719727,45.47116851806646],[1.162444353103751,45.47834777832031],[1.185123085975704,45.455101013183594],[1.212122678756771,45.462371826171875],[1.253151893615779,45.444217681884815]]]},"properties":{"ID_0":79,"ISO":"FR-24","NAME_0":"France","ID_1":2,"NAME_1":"Aquitaine","ID_2":3,"NAME_2":"Dordogne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.717361986637002,45.328521728515675],[-0.6505326628685,45.32249069213873],[-0.568966627120858,45.331523895263786],[-0.567662417888585,45.29742050170892],[-0.513430058956146,45.28638458251959],[-0.472985565662327,45.293632507324276],[-0.416122585535049,45.267391204834034],[-0.405947506427765,45.24208068847662],[-0.419172704219704,45.21039199829112],[-0.378419399261475,45.156856536865234],[-0.362699329853058,45.17036056518565],[-0.275359451770782,45.14141082763677],[-0.257078230381012,45.11462020874029],[-0.191442385315838,45.0947494506837],[-0.143537327647209,45.0903434753418],[-0.111029207706395,45.115379333496094],[-0.087573483586311,45.12158203125005],[-0.065618291497174,45.10070419311529],[-0.040200341492834,45.102382659912166],[-0.002243476454169,45.11936187744135],[0.045793093741054,45.11346435546875],[0.073296248912811,45.070129394531364],[0.035640764981508,45.01434326171881],[0.040106356143951,44.99354934692394],[0.017709184438047,44.98063278198242],[0.005126500967947,44.94623947143565],[0.033907145261878,44.91496276855469],[-0.010036071762386,44.85979080200201],[0.022247236222029,44.84941864013683],[0.039303470402956,44.8276405334472],[0.148828119039592,44.82909393310547],[0.192843526601905,44.82080078125006],[0.209732785820961,44.84137344360346],[0.256445854902267,44.86751937866211],[0.288047045469398,44.86317825317383],[0.315055727958622,44.84537506103521],[0.281958401203269,44.82385253906255],[0.263719290494976,44.82641983032232],[0.28022626042366,44.774398803710994],[0.297325074672813,44.762294769287166],[0.253651082515773,44.7503929138183],[0.235944241285381,44.76419448852545],[0.194269537925834,44.74258041381836],[0.152620062232131,44.73082351684576],[0.136039108037949,44.711204528808594],[0.100344926118964,44.70098114013677],[0.107043243944702,44.685424804687614],[0.134422272443828,44.68241882324219],[0.182751506567115,44.66136169433605],[0.154362857341766,44.614910125732536],[0.110282234847546,44.59008026123041],[0.082236126065538,44.58391189575195],[0.068686962127686,44.54822158813476],[0.037738110870123,44.55414962768554],[-0.015564993023816,44.50479125976574],[-0.011696432717144,44.459861755371094],[0.006215024273956,44.45392608642578],[-0.011803831905013,44.42033004760748],[0.018551558256206,44.389328002929744],[-0.028820725157743,44.36019134521496],[-0.078819222748223,44.353694915771484],[-0.085752077400628,44.337608337402344],[-0.034811250865403,44.2967262268067],[-0.03360828384757,44.274013519287166],[-0.088479816913548,44.23847198486334],[-0.140688970685005,44.22641372680675],[-0.194665998220444,44.270393371582145],[-0.226004436612129,44.26478576660162],[-0.223447099327984,44.2058982849121],[-0.273620516061726,44.194015502929744],[-0.310572355985641,44.20306015014654],[-0.38961735367775,44.2094841003418],[-0.396314412355423,44.237468719482536],[-0.383387833833694,44.28631973266613],[-0.429624944925251,44.301544189453125],[-0.431839555501881,44.32257843017584],[-0.479411005973816,44.32509231567382],[-0.517635464668274,44.339111328125],[-0.528103113174382,44.364654541015625],[-0.625806272029763,44.40824508666992],[-0.628063917159977,44.44285583496094],[-0.671949684619847,44.456378936767635],[-0.685636758804208,44.44322204589844],[-0.726967811584473,44.44753646850586],[-0.774076759815159,44.44010162353527],[-0.780281484126931,44.4281120300293],[-0.84474736452097,44.41863250732422],[-0.919170439243317,44.44334411621105],[-0.971419095993042,44.429180145263786],[-1.007737636566162,44.436515808105575],[-0.981032907962685,44.48478698730463],[-0.991430282592773,44.5118293762207],[-1.03002226352686,44.50857925415039],[-1.085166454315185,44.53219604492193],[-1.106984972953683,44.50263595581055],[-1.253749251365662,44.46763610839844],[-1.251528024673405,44.54735946655279],[-1.223749995231628,44.57958221435541],[-1.205137968063354,44.61430740356451],[-1.191805005073491,44.66097259521496],[-1.143193960189706,44.660415649414176],[-1.141528010368233,44.64764022827148],[-1.083470940589791,44.64347076416027],[-1.030694961547795,44.654304504394645],[-1.019304037094059,44.66958236694336],[-1.057361006736755,44.685974121093864],[-1.044860005378666,44.69874954223633],[-1.152637958526554,44.766487121582145],[-1.170971989631596,44.76069259643549],[-1.20430600643158,44.717918395996094],[-1.221806049346924,44.7095832824707],[-1.237082958221436,44.68180465698248],[-1.238473057746887,44.656806945800895],[-1.260138034820557,44.65041732788097],[-1.252362012863102,44.70735931396495],[-1.222918033599854,44.86041641235363],[-1.202638030052185,44.99486160278332],[-1.180137991905212,45.17736053466797],[-1.161527037620544,45.301528930664055],[-1.160138964653015,45.415695190429744],[-1.150972008705082,45.44235992431646],[-1.155972957611084,45.46847152709972],[-1.138749003410339,45.5051383972168],[-1.101529002189636,45.53985977172851],[-1.088750004768371,45.5654182434082],[-1.037915945053101,45.53486251831066],[-1.068750023841801,45.51958465576172],[-0.970417022705078,45.45291519165039],[-0.938472986221257,45.44319534301757],[-0.903194010257664,45.40847396850586],[-0.84291702508915,45.378749847412166],[-0.802637994289341,45.345417022705135],[-0.761249005794468,45.27763748168945],[-0.746806025504952,45.23597335815441],[-0.744584023952484,45.19819259643565],[-0.68958401679987,45.08902740478527],[-0.652360975742226,45.0493049621582],[-0.607915997505188,45.014862060546875],[-0.585416018962746,45.01680374145519],[-0.603470981121063,45.04819488525402],[-0.63735997676838,45.07485961914068],[-0.668749988079071,45.12930679321294],[-0.669582009315491,45.167362213134766],[-0.687084019184112,45.2151374816895],[-0.697916984558105,45.26847076416027],[-0.717361986637002,45.328521728515675]]]},"properties":{"ID_0":79,"ISO":"FR-33","NAME_0":"France","ID_1":2,"NAME_1":"Aquitaine","ID_2":4,"NAME_2":"Gironde","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Bec-D'Ambes"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.140688970685005,44.22641372680675],[-0.1296426653862,44.20261383056646],[-0.129154518246651,44.15240859985363],[-0.087749987840652,44.15599060058593],[-0.003539166646078,44.14989852905285],[0.034593842923641,44.13065338134765],[0.135797336697578,44.12419509887707],[0.136731222271976,44.10987091064453],[0.100820630788917,44.086769104003906],[0.076223194599379,44.030735015869254],[0.060222655534801,44.02487564086914],[0.076045610010738,43.98314285278326],[0.055424667894897,43.957138061523494],[0.075081668794269,43.914680480956974],[0.058618139475584,43.89838027954095],[0.033177878707704,43.899978637695426],[-0.020385520532727,43.92929458618164],[0.005599549505916,43.95558547973644],[-0.036168925464096,43.983741760253906],[-0.044189833104554,43.9636688232423],[-0.102561041712704,43.92727661132806],[-0.125395178794861,43.943504333496094],[-0.177077353000641,43.935680389404354],[-0.200575128197613,43.91463851928711],[-0.232803344726506,43.90158462524425],[-0.193995684385243,43.8816871643067],[-0.208908215165081,43.85766983032232],[-0.189844444394112,43.833698272705185],[-0.194708436727467,43.809211730956974],[-0.218646913766861,43.79658889770508],[-0.2156824767589,43.77240753173828],[-0.194143295288029,43.73701858520502],[-0.247380658984184,43.70924377441417],[-0.239730194211006,43.67124176025396],[-0.274354100227299,43.61604309082031],[-0.24720419943327,43.61595916748058],[-0.242837071418762,43.58498382568365],[-0.283324629068318,43.58416366577154],[-0.305984854698181,43.55947875976574],[-0.33652526140213,43.5512313842774],[-0.353597313165665,43.56179046630871],[-0.406041949987411,43.5682258605957],[-0.449712991714478,43.54986953735363],[-0.460427254438343,43.56451416015625],[-0.431717306375504,43.58354568481451],[-0.449232310056686,43.59626770019537],[-0.552764296531677,43.54315948486328],[-0.567071855068093,43.55821609497076],[-0.60003882646555,43.53865432739252],[-0.657889127731266,43.55974960327154],[-0.707608759403229,43.55788040161144],[-0.708209633827153,43.54130554199224],[-0.770304560661316,43.57916641235357],[-0.803350985050201,43.55619049072271],[-0.820949554443303,43.56118392944336],[-0.85571300983429,43.54190063476568],[-0.893691062927189,43.550273895263786],[-0.923683226108551,43.534614562988274],[-0.988199651241246,43.54019927978521],[-0.992383241653385,43.504028320312436],[-1.046070218086242,43.51156234741205],[-1.107330203056335,43.51432037353527],[-1.116329073905945,43.5034294128418],[-1.169662237167245,43.49303054809582],[-1.164920330047551,43.508358001708984],[-1.134033560752755,43.52017974853521],[-1.174183845519963,43.54604721069347],[-1.291381478309575,43.498386383056754],[-1.322410583496094,43.504947662353516],[-1.369649648666382,43.49502182006836],[-1.417658448219186,43.49690628051757],[-1.428906202316284,43.51226043701172],[-1.456638097763062,43.517963409423885],[-1.479604840278569,43.53917694091797],[-1.523193955421448,43.52950668334961],[-1.48874902725214,43.57624816894536],[-1.446527957916146,43.645137786865234],[-1.43847203254694,43.70264053344738],[-1.418194055557194,43.777084350585994],[-1.369860053062439,43.93069458007824],[-1.309862017631531,44.15458297729492],[-1.270694971084595,44.35958480834961],[-1.253749251365662,44.46763610839844],[-1.106984972953683,44.50263595581055],[-1.085166454315185,44.53219604492193],[-1.03002226352686,44.50857925415039],[-0.991430282592773,44.5118293762207],[-0.981032907962685,44.48478698730463],[-1.007737636566162,44.436515808105575],[-0.971419095993042,44.429180145263786],[-0.919170439243317,44.44334411621105],[-0.84474736452097,44.41863250732422],[-0.780281484126931,44.4281120300293],[-0.774076759815159,44.44010162353527],[-0.726967811584473,44.44753646850586],[-0.685636758804208,44.44322204589844],[-0.671949684619847,44.456378936767635],[-0.628063917159977,44.44285583496094],[-0.625806272029763,44.40824508666992],[-0.528103113174382,44.364654541015625],[-0.517635464668274,44.339111328125],[-0.479411005973816,44.32509231567382],[-0.431839555501881,44.32257843017584],[-0.429624944925251,44.301544189453125],[-0.383387833833694,44.28631973266613],[-0.396314412355423,44.237468719482536],[-0.38961735367775,44.2094841003418],[-0.310572355985641,44.20306015014654],[-0.273620516061726,44.194015502929744],[-0.223447099327984,44.2058982849121],[-0.226004436612129,44.26478576660162],[-0.194665998220444,44.270393371582145],[-0.140688970685005,44.22641372680675]]]},"properties":{"ID_0":79,"ISO":"FR-40","NAME_0":"France","ID_1":2,"NAME_1":"Aquitaine","ID_2":5,"NAME_2":"Landes","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Landas"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.297325074672813,44.762294769287166],[0.336662083864326,44.73557281494152],[0.359541267156601,44.69131469726574],[0.366564273834285,44.661308288574276],[0.41695365309721,44.64521026611328],[0.470530122518539,44.66957855224621],[0.511835038661957,44.67776870727539],[0.546558022499141,44.6651496887207],[0.567171096801871,44.671512603759815],[0.576468050479889,44.69306182861339],[0.648099720478115,44.70217514038085],[0.65743404626852,44.6778564453125],[0.729133725166378,44.67599105834972],[0.778602540492955,44.684291839599666],[0.799457252025604,44.70078277587896],[0.828610479831809,44.68976974487305],[0.844563245773315,44.66583633422863],[0.835655510425568,44.63687896728521],[0.817003905773163,44.627010345458984],[0.835145711898804,44.60220336914068],[0.86999583244318,44.597316741943416],[0.927099049091396,44.63523483276367],[0.977296352386588,44.642990112304744],[1.012501597404423,44.61582946777337],[1.071130633354301,44.596229553222656],[1.075140833854675,44.57732391357421],[1.013166308403015,44.53613662719738],[1.021679401397648,44.44659805297851],[1.057488083839473,44.427677154541016],[1.064083814620972,44.37851333618164],[1.060229063034058,44.36606597900396],[0.950215697288627,44.35957717895502],[0.919845402240753,44.38441848754883],[0.887319982051906,44.364646911621094],[0.896113157272396,44.34622955322271],[0.869445145130214,44.30925369262695],[0.950788080692405,44.275070190429744],[0.919089794159049,44.238269805908146],[0.929239213466701,44.2302513122558],[0.903111338615474,44.19005584716808],[0.882225215434971,44.1739501953125],[0.888351321220512,44.14881134033209],[0.869091689586639,44.12651443481445],[0.796567738056183,44.14515304565441],[0.793164968490657,44.11845779418957],[0.754382967949027,44.104804992675895],[0.741884768009129,44.06520080566406],[0.707922756671906,44.058288574218864],[0.662558913230953,44.0245933532716],[0.652207732200736,44.04290771484374],[0.592675149440765,44.07926177978527],[0.566978871822471,44.06061553955078],[0.538427472114563,44.0529518127442],[0.5115802884103,44.06273651123046],[0.459759086370582,44.05537796020507],[0.442449927330074,44.02876281738281],[0.418932557106075,44.02828979492193],[0.382336765527782,44.00823974609381],[0.357013463973999,44.015411376953125],[0.32474011182785,44.00780105590832],[0.303003638982773,43.99123764038097],[0.232994541525898,44.009391784668026],[0.214733630418777,44.02278518676758],[0.189806640148277,44.01500701904291],[0.138624876737708,43.97659683227539],[0.107387967407817,43.985382080078175],[0.076045610010738,43.98314285278326],[0.060222655534801,44.02487564086914],[0.076223194599379,44.030735015869254],[0.100820630788917,44.086769104003906],[0.136731222271976,44.10987091064453],[0.135797336697578,44.12419509887707],[0.034593842923641,44.13065338134765],[-0.003539166646078,44.14989852905285],[-0.087749987840652,44.15599060058593],[-0.129154518246651,44.15240859985363],[-0.1296426653862,44.20261383056646],[-0.140688970685005,44.22641372680675],[-0.088479816913548,44.23847198486334],[-0.03360828384757,44.274013519287166],[-0.034811250865403,44.2967262268067],[-0.085752077400628,44.337608337402344],[-0.078819222748223,44.353694915771484],[-0.028820725157743,44.36019134521496],[0.018551558256206,44.389328002929744],[-0.011803831905013,44.42033004760748],[0.006215024273956,44.45392608642578],[-0.011696432717144,44.459861755371094],[-0.015564993023816,44.50479125976574],[0.037738110870123,44.55414962768554],[0.068686962127686,44.54822158813476],[0.082236126065538,44.58391189575195],[0.110282234847546,44.59008026123041],[0.154362857341766,44.614910125732536],[0.182751506567115,44.66136169433605],[0.134422272443828,44.68241882324219],[0.107043243944702,44.685424804687614],[0.100344926118964,44.70098114013677],[0.136039108037949,44.711204528808594],[0.152620062232131,44.73082351684576],[0.194269537925834,44.74258041381836],[0.235944241285381,44.76419448852545],[0.253651082515773,44.7503929138183],[0.297325074672813,44.762294769287166]]]},"properties":{"ID_0":79,"ISO":"FR-47","NAME_0":"France","ID_1":2,"NAME_1":"Aquitaine","ID_2":6,"NAME_2":"Lot-et-Garonne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.096782974898815,43.582405090332145],[-0.0871227607131,43.542377471923885],[-0.06973043829197,43.54675292968744],[-0.043700430542174,43.52298736572271],[-0.049103256314993,43.4919052124024],[-0.032106522470713,43.46603775024414],[-0.065754115581512,43.46348953247081],[-0.069604225456601,43.43420028686529],[-0.042983438819647,43.41020965576172],[-0.016534095629993,43.44394683837885],[0.009655310772473,43.42220306396479],[-0.004652889911085,43.375709533691406],[0.028665335849041,43.346618652343864],[0.012767912820038,43.32753372192383],[-0.02537138201285,43.32961654663086],[-0.044395878911018,43.30294036865245],[-0.04102635756135,43.28369522094726],[-0.018516158685088,43.26938629150402],[-0.044946491718292,43.233795166015625],[-0.07397249341011,43.22237777709972],[-0.067873999476433,43.17712020874029],[-0.116243176162243,43.17928695678722],[-0.146313965320587,43.12818527221674],[-0.197562798857689,43.099967956543026],[-0.190722703933716,43.05125045776373],[-0.223951518535614,43.03368759155279],[-0.26050540804863,43.038272857666065],[-0.264715641736984,43.01000976562511],[-0.287669211625939,43.00555419921881],[-0.289621949195805,42.96112060546881],[-0.279270291328373,42.942344665527344],[-0.324323385953846,42.90332794189459],[-0.307293713092804,42.86897659301752],[-0.313442856073323,42.84937667846679],[-0.293132483959198,42.8388290405274],[-0.350817173719349,42.83335876464855],[-0.384153068065643,42.803859710693416],[-0.414649367332345,42.80543518066406],[-0.444918990135193,42.796031951904354],[-0.509380161762181,42.825286865234425],[-0.529672980308533,42.791545867919865],[-0.567746877670174,42.7808723449707],[-0.57361793518055,42.80739974975586],[-0.600372016429901,42.802497863769645],[-0.602346956729889,42.83008575439458],[-0.648710012435856,42.855106353759766],[-0.679441630840245,42.882930755615234],[-0.698395013809204,42.878963470458984],[-0.733008027076664,42.897994995117244],[-0.733271777629795,42.94615936279296],[-0.752805233001595,42.966960906982536],[-0.7844140529632,42.96428680419921],[-0.808800995349884,42.95145416259777],[-0.864740014076233,42.95095443725597],[-0.910014152526855,42.963802337646484],[-0.934530019760018,42.952678680420036],[-0.974991023540497,42.96329879760748],[-1.010465979576054,42.99109649658214],[-1.07197105884552,42.99789428710943],[-1.113268375396729,43.02121734619146],[-1.181146025657597,43.03224945068365],[-1.212408661842289,43.05139541625982],[-1.247508406639099,43.04235839843756],[-1.308544993400517,43.06922149658203],[-1.299494028091374,43.09227752685547],[-1.2704980373382,43.11832046508789],[-1.3196120262146,43.112789154052734],[-1.345170617103576,43.092971801757926],[-1.34411883354187,43.05593872070324],[-1.353703975677433,43.02801895141612],[-1.441393017768746,43.046195983886776],[-1.472216010093632,43.081558227539006],[-1.471323013305664,43.091773986816456],[-1.415738105773926,43.12852859497082],[-1.401859998703003,43.17848587036144],[-1.384948015213013,43.18828964233398],[-1.384181141853275,43.25322341918951],[-1.413205623626652,43.27341461181652],[-1.438305020332336,43.26667404174805],[-1.491320013999882,43.28133010864269],[-1.505856394767704,43.29327774047857],[-1.55623197555542,43.27979660034191],[-1.574738979339543,43.25046539306646],[-1.616579055786133,43.25727081298828],[-1.63018798828125,43.28492355346691],[-1.623861193656865,43.303966522216854],[-1.669399142265263,43.31418991088867],[-1.694653034210205,43.31184768676769],[-1.728865027427616,43.29613113403325],[-1.73881995677948,43.32903671264643],[-1.78597104549408,43.35374832153326],[-1.78597104549408,43.37208175659191],[-1.739583969116097,43.37958145141596],[-1.629027962684631,43.413192749023544],[-1.599027991294861,43.43264007568371],[-1.567916989326477,43.475692749023494],[-1.546527981758061,43.49402618408209],[-1.523193955421448,43.52950668334961],[-1.479604840278569,43.53917694091797],[-1.456638097763062,43.517963409423885],[-1.428906202316284,43.51226043701172],[-1.417658448219186,43.49690628051757],[-1.369649648666382,43.49502182006836],[-1.322410583496094,43.504947662353516],[-1.291381478309575,43.498386383056754],[-1.174183845519963,43.54604721069347],[-1.134033560752755,43.52017974853521],[-1.164920330047551,43.508358001708984],[-1.169662237167245,43.49303054809582],[-1.116329073905945,43.5034294128418],[-1.107330203056335,43.51432037353527],[-1.046070218086242,43.51156234741205],[-0.992383241653385,43.504028320312436],[-0.988199651241246,43.54019927978521],[-0.923683226108551,43.534614562988274],[-0.893691062927189,43.550273895263786],[-0.85571300983429,43.54190063476568],[-0.820949554443303,43.56118392944336],[-0.803350985050201,43.55619049072271],[-0.770304560661316,43.57916641235357],[-0.708209633827153,43.54130554199224],[-0.707608759403229,43.55788040161144],[-0.657889127731266,43.55974960327154],[-0.60003882646555,43.53865432739252],[-0.567071855068093,43.55821609497076],[-0.552764296531677,43.54315948486328],[-0.449232310056686,43.59626770019537],[-0.431717306375504,43.58354568481451],[-0.460427254438343,43.56451416015625],[-0.449712991714478,43.54986953735363],[-0.406041949987411,43.5682258605957],[-0.353597313165665,43.56179046630871],[-0.33652526140213,43.5512313842774],[-0.305984854698181,43.55947875976574],[-0.283324629068318,43.58416366577154],[-0.242837071418762,43.58498382568365],[-0.176560878753605,43.59683227539068],[-0.162107899785042,43.58166503906244],[-0.096782974898815,43.582405090332145]],[[-0.093096010386887,43.373886108398494],[-0.087270952761116,43.33384323120117],[-0.109901435673123,43.31280517578131],[-0.075832143425941,43.306938171386776],[-0.06448258459568,43.35361480712896],[-0.093096010386887,43.373886108398494]],[[-0.089286983013039,43.30106353759777],[-0.117817156016827,43.30734634399414],[-0.140602961182537,43.271675109863395],[-0.118389882147198,43.24137496948248],[-0.089981473982277,43.254005432128906],[-0.079629443585759,43.27164840698242],[-0.089286983013039,43.30106353759777]]]},"properties":{"ID_0":79,"ISO":"FR-64","NAME_0":"France","ID_1":2,"NAME_1":"Aquitaine","ID_2":7,"NAME_2":"Pyrénées-Atlantiques","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Basses-Pyrénées|Pirinio Atlantiarrak"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.032068252563477,46.7949104309082],[3.049694061279297,46.75780868530279],[3.083478212356681,46.73777389526373],[3.129056215286369,46.72749328613281],[3.167414426803703,46.69096755981445],[3.204426527023372,46.67875289916992],[3.268544197082576,46.71592330932617],[3.298052310943547,46.7158775329591],[3.318052530288753,46.68844223022455],[3.366416215896606,46.69067764282238],[3.380713224411068,46.71232986450195],[3.434214115142936,46.71221923828124],[3.449235200881958,46.690788269043075],[3.455299139022884,46.652397155761776],[3.486833810806274,46.660560607910156],[3.520472288131828,46.68523788452148],[3.547825336456299,46.67943572998047],[3.548900365829581,46.70555114746094],[3.595874309539794,46.725543975830135],[3.578034639358521,46.74962234497082],[3.629423618316764,46.74945831298834],[3.62280178070074,46.740894317626896],[3.670168876648006,46.67237472534191],[3.695942640304622,46.66140747070324],[3.713443994522208,46.61072158813482],[3.734557390213013,46.60377883911133],[3.741006374359188,46.560218811035156],[3.75577640533453,46.536151885986385],[3.811745882034359,46.52058410644537],[3.837014198303279,46.53160476684581],[3.863827466964835,46.51267623901373],[3.865262031555119,46.489646911621094],[3.892563343048096,46.48088455200207],[3.916492223739568,46.49610137939453],[3.958134889602718,46.49059295654297],[3.998722076416129,46.46490478515631],[4.002691268920955,46.44049835205084],[3.977568626403865,46.39786911010748],[3.991544485092163,46.37041854858404],[3.983718633651677,46.31798553466797],[3.949013710022029,46.319343566894524],[3.947858572006226,46.303672790527344],[3.901973485946769,46.29315948486328],[3.899533510208187,46.27591323852539],[3.868897676467895,46.26366043090832],[3.807686805725154,46.2572135925293],[3.80270004272461,46.238510131835994],[3.773352622985953,46.22718811035156],[3.794089078903311,46.20851135253906],[3.791627168655396,46.15658569335932],[3.802830457687321,46.11013793945318],[3.821294069290161,46.090240478515625],[3.805605649948233,46.053062438964844],[3.827341794967765,46.000213623046875],[3.823220252990723,45.98815917968744],[3.781713008880672,45.97279357910162],[3.742071390152091,45.96669006347661],[3.709611654281673,45.97414016723627],[3.693891525268611,45.93095779418951],[3.678015947342032,45.955955505371094],[3.639159917831477,45.96542739868164],[3.601154088974113,46.01495742797846],[3.577777385711727,46.01784515380865],[3.486672639846802,46.014320373535156],[3.467401027679387,46.02788162231457],[3.453592777252254,46.06379318237299],[3.419741868972778,46.0743789672851],[3.369134187698364,46.05448532104492],[3.332797050476131,46.05355072021496],[3.28437256813055,46.06595611572277],[3.23308348655712,46.06406402587901],[3.214510917663631,46.074943542480405],[3.160065889358464,46.06643295288097],[3.100844860076961,46.08229827880865],[3.090955257415885,46.11173248291027],[3.050355195999259,46.100746154785156],[3.016919374465885,46.102458953857536],[2.994263172149715,46.123195648193416],[2.971743822097835,46.12168884277343],[2.943464994430542,46.168659210205185],[2.915694475173893,46.17413330078119],[2.915816783905086,46.21279144287121],[2.936353683471793,46.22090148925781],[2.936743259429932,46.24313354492199],[2.859759569168091,46.25658798217784],[2.819163084030095,46.24179077148449],[2.817312955856437,46.20502090454107],[2.786781787872428,46.19864654541021],[2.732597589492912,46.22341156005865],[2.723104953765869,46.181518554687614],[2.676567554473991,46.17219924926763],[2.654374599456844,46.1252555847168],[2.637202024459782,46.11938476562494],[2.565378904342708,46.1430397033692],[2.559154748916626,46.17440795898443],[2.528499126434326,46.184940338134766],[2.51520299911499,46.23854446411133],[2.488920211792106,46.250007629394645],[2.470214605331534,46.286350250244254],[2.443031549453849,46.294998168945426],[2.386079788208008,46.33197021484381],[2.357931852340698,46.32336807250988],[2.31458568572998,46.33464050292974],[2.312478780746517,46.37606048583995],[2.286935806274471,46.383304595947266],[2.2810475826264,46.42040634155284],[2.284665584564265,46.45135879516596],[2.305465459823608,46.47543334960949],[2.368300199508724,46.51843643188482],[2.44614839553833,46.52104568481445],[2.48292875289917,46.53269577026373],[2.536651849746761,46.519710540771484],[2.611052274704036,46.55150985717773],[2.598460674285832,46.595310211181754],[2.57738041877758,46.60673141479498],[2.593100547790471,46.6465797424317],[2.570550680160579,46.659267425537045],[2.631837844848746,46.672203063964844],[2.677795410156364,46.70461273193359],[2.704833030700797,46.73903656005871],[2.730642080307064,46.747993469238395],[2.74379754066473,46.73054885864269],[2.774749755859375,46.71895217895519],[2.793416023254451,46.73355484008795],[2.82748532295227,46.735332489013786],[2.880421876907349,46.77003097534191],[2.959914684295711,46.80387496948242],[3.032068252563477,46.7949104309082]]]},"properties":{"ID_0":79,"ISO":"FR-03","NAME_0":"France","ID_1":3,"NAME_1":"Auvergne","ID_2":8,"NAME_2":"Allier","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Basses-Alpes"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.103498220443726,45.354373931884815],[3.113416910171622,45.32708740234375],[3.100695848465023,45.31613540649414],[3.112195491790771,45.284751892089844],[3.161341428756657,45.28908538818371],[3.226851940155029,45.2719459533692],[3.222768068313599,45.24560546875011],[3.238011121749992,45.21836471557622],[3.272226095199642,45.20946121215832],[3.261231422424373,45.17374801635748],[3.288033246994075,45.120426177978516],[3.300835847854557,45.124370574951286],[3.351855278015194,45.10483551025402],[3.312027215957755,45.08086013793951],[3.298442125320435,45.03573226928705],[3.337173938751278,45.025348663330135],[3.363227128982601,44.99016189575195],[3.361342668533382,44.971412658691406],[3.285642385482788,44.92630767822277],[3.244564771652222,44.931716918945305],[3.226427555084285,44.90997695922863],[3.234992504119986,44.88877487182623],[3.190283536911011,44.862522125244254],[3.164672613144034,44.875179290771484],[3.142848491668701,44.902282714843864],[3.103126049041805,44.88463592529297],[3.094844818115348,44.85548019409174],[3.048270702362174,44.80426406860357],[3.048236608505362,44.76432418823242],[3.031344890594539,44.749637603759766],[3.029445171356258,44.716552734375],[3.016110181808472,44.71205520629877],[2.981677055359,44.644676208496094],[2.93934607505804,44.67757415771496],[2.923264503479118,44.72864913940424],[2.933773994445801,44.780647277832024],[2.920190811157283,44.794315338134766],[2.889642000198364,44.78832626342785],[2.855560064315796,44.851230621338004],[2.851404428482113,44.871952056884766],[2.804778099060172,44.87378692626959],[2.778589725494442,44.88749694824219],[2.776095151901245,44.90963745117193],[2.737687826156729,44.94036483764643],[2.716765642166138,44.9288330078125],[2.706372261047363,44.90708923339844],[2.681867837905884,44.90734863281255],[2.65304875373846,44.86977005004894],[2.629077434539852,44.87225723266613],[2.604162216186523,44.84309005737298],[2.600122690200806,44.79366683959972],[2.564486026763859,44.778091430664176],[2.553678035736027,44.75742340087896],[2.556230068206901,44.722229003906364],[2.500495910644531,44.68880844116211],[2.489523649215698,44.65871429443371],[2.468039989471549,44.6428947448731],[2.43565034866333,44.639743804931754],[2.380878210067692,44.64966964721691],[2.350984096527213,44.6412353515625],[2.324130058288574,44.66915512084961],[2.286239624023381,44.6664390563966],[2.208414077758903,44.6438446044923],[2.207475185394344,44.615531921386776],[2.169419050216788,44.63798522949219],[2.166010141372681,44.661285400390625],[2.17915225028986,44.6744499206544],[2.15466570854187,44.69936752319341],[2.148087263107413,44.722850799560604],[2.15349197387701,44.753108978271484],[2.171632766723746,44.79026031494146],[2.16628980636608,44.81206893920904],[2.13980054855358,44.823825836181584],[2.085555553436336,44.8849601745606],[2.108110427856559,44.91059875488286],[2.076351404190177,44.93478393554687],[2.080703020095825,44.951576232910156],[2.062914371490479,44.976505279541065],[2.093554258346671,44.98571014404297],[2.133292675018424,44.98574829101568],[2.140895843505916,45.00540924072271],[2.116937875747794,45.02196884155284],[2.095159292221183,45.056037902831974],[2.143402814865112,45.0863151550293],[2.172775745391903,45.08127975463878],[2.187932252884025,45.11671447753906],[2.178792953491325,45.13630294799805],[2.210419416427669,45.147159576416016],[2.221619606018066,45.1707115173341],[2.202461004257202,45.181419372558594],[2.19450759887701,45.220844268798885],[2.239868164062614,45.24879837036133],[2.269695043563843,45.2898902893067],[2.29032826423645,45.28847122192383],[2.316080331802482,45.3220329284668],[2.353415012359733,45.32979202270519],[2.368799448013306,45.386005401611385],[2.35025000572216,45.40960693359386],[2.380990982055721,45.413536071777344],[2.441551446914616,45.38452529907238],[2.523371696472282,45.38154602050787],[2.517482280731258,45.402050018310604],[2.487537860870361,45.41817092895507],[2.508408546447868,45.47850799560558],[2.543963193893433,45.47898101806646],[2.582689046859741,45.45267486572271],[2.605762958526611,45.45357131958019],[2.660432100296077,45.43479537963867],[2.688463926315421,45.437694549560604],[2.681746244430485,45.40910339355469],[2.714525461197013,45.38146591186529],[2.741279363632145,45.39295959472662],[2.785147666931266,45.38457870483393],[2.815353870391903,45.40039825439458],[2.852378606796321,45.392341613769524],[2.873529672622738,45.375373840332024],[2.892967462539787,45.37924194335943],[2.920385599136466,45.3621826171875],[2.948624849319515,45.30912399291997],[3.018304586410522,45.287067413330185],[3.059399366378784,45.306835174560604],[3.063178777694816,45.33137130737299],[3.103498220443726,45.354373931884815]]]},"properties":{"ID_0":79,"ISO":"FR-15","NAME_0":"France","ID_1":3,"NAME_1":"Auvergne","ID_2":9,"NAME_2":"Cantal","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.897408485412597,45.35708236694347],[3.918387413024902,45.35436630249029],[3.938752412796077,45.3713951110841],[3.978267669677791,45.37569427490246],[3.992932558059692,45.356170654296925],[4.02343225479126,45.34497070312511],[4.045380592346305,45.355667114257926],[4.080170631408691,45.35552597045904],[4.120395183563232,45.36837768554693],[4.144443035125788,45.384109497070256],[4.180821418762263,45.39170074462902],[4.200926303863525,45.382228851318416],[4.244341373443604,45.385276794433594],[4.27163124084484,45.35976409912114],[4.308199405670165,45.37098693847656],[4.348395824432373,45.36045837402338],[4.363379478454589,45.3374862670899],[4.331653118133659,45.31847763061529],[4.366258144378719,45.30128097534179],[4.350182533264274,45.27770233154297],[4.371186256408635,45.259887695312614],[4.419654846191406,45.275402069091854],[4.483134746551514,45.236446380615234],[4.472579002380485,45.17989349365234],[4.448111057281494,45.161960601806754],[4.438930988311768,45.12035751342785],[4.411158561706543,45.1408309936524],[4.376558780670223,45.144359588623104],[4.372570514678955,45.12807464599615],[4.39713716506958,45.105236053466854],[4.359231948852539,45.09957122802734],[4.347736835479736,45.06525039672862],[4.378729820251579,45.05286407470703],[4.379067897796745,45.03617477416992],[4.351543426513729,45.02766036987315],[4.318085670471248,45.029933929443416],[4.291110038757438,44.99732971191406],[4.314365386963003,44.97316741943365],[4.256587028503531,44.95987701416027],[4.223854541778564,44.9628791809082],[4.216572284698543,44.93357849121105],[4.184321403503418,44.90832519531256],[4.179478645324764,44.886512756347656],[4.156636714935303,44.87397766113287],[4.108429431915226,44.87793350219738],[4.069305419921932,44.867694854736264],[4.038909912109375,44.872764587402344],[3.998603105545101,44.82357406616222],[3.945542573928833,44.82434463500988],[3.924917936325187,44.769622802734375],[3.876486539840811,44.756801605224666],[3.862527370452937,44.743873596191406],[3.839418649673519,44.74711990356457],[3.833253145217952,44.775276184081974],[3.806989908218384,44.767581939697266],[3.743865728378353,44.83780288696289],[3.666364908218497,44.828777313232365],[3.673640251159725,44.85412597656256],[3.644297122955322,44.87713241577154],[3.595023632049618,44.87579345703119],[3.597830057144221,44.85870742797863],[3.568770170211849,44.834182739257926],[3.507375001907405,44.82423400878912],[3.486966848373526,44.80647277832037],[3.456170082092398,44.83122634887707],[3.435711383819637,44.88024520874035],[3.410380125045833,44.91778564453124],[3.403222322464103,44.956863403320256],[3.386025190353394,44.95290756225597],[3.361342668533382,44.971412658691406],[3.363227128982601,44.99016189575195],[3.337173938751278,45.025348663330135],[3.298442125320435,45.03573226928705],[3.312027215957755,45.08086013793951],[3.351855278015194,45.10483551025402],[3.300835847854557,45.124370574951286],[3.288033246994075,45.120426177978516],[3.261231422424373,45.17374801635748],[3.272226095199642,45.20946121215832],[3.238011121749992,45.21836471557622],[3.222768068313599,45.24560546875011],[3.226851940155029,45.2719459533692],[3.161341428756657,45.28908538818371],[3.112195491790771,45.284751892089844],[3.100695848465023,45.31613540649414],[3.113416910171622,45.32708740234375],[3.103498220443726,45.354373931884815],[3.181127786636466,45.35231018066406],[3.218652248382682,45.36948776245128],[3.236170768737736,45.394630432128906],[3.287523269653377,45.39960479736328],[3.30897331237793,45.41844177246087],[3.330263853073177,45.39720916748058],[3.355951070785579,45.422702789306754],[3.380009651184195,45.401157379150504],[3.455852270126456,45.40033721923828],[3.479402542114315,45.42029190063476],[3.555819988250732,45.39387893676769],[3.569313049316349,45.40229415893566],[3.590793371200618,45.35708618164062],[3.617813825607356,45.338165283203125],[3.663180112838745,45.36297607421875],[3.758874654770011,45.35595703125006],[3.789194107055721,45.358528137207145],[3.791406393051205,45.38477325439459],[3.836298942565975,45.38309478759777],[3.852785587310847,45.36156463623058],[3.897408485412597,45.35708236694347]]]},"properties":{"ID_0":79,"ISO":"FR-43","NAME_0":"France","ID_1":3,"NAME_1":"Auvergne","ID_2":10,"NAME_2":"Haute-Loire","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.693891525268611,45.93095779418951],[3.721349954605103,45.922744750976506],[3.754370689392147,45.886032104492244],[3.71912407875061,45.85006713867182],[3.72689151763916,45.83026885986328],[3.70039343833929,45.78355407714844],[3.728468418121337,45.7760124206543],[3.727105855941772,45.75557708740239],[3.755838155746403,45.74660873413086],[3.782380342483634,45.71165084838878],[3.777585029602051,45.690567016601676],[3.823924064636287,45.63214492797862],[3.856866359710807,45.625],[3.881631135940552,45.60369110107421],[3.908086538314933,45.5966911315918],[3.95447421073925,45.555828094482536],[3.946430206298942,45.54340362548828],[3.96567702293396,45.50056457519537],[3.985629320144654,45.4861793518067],[3.967553377151546,45.471549987793026],[3.975105762481633,45.44826889038097],[3.898540496826229,45.40981674194336],[3.890368223190308,45.39366531372076],[3.897408485412597,45.35708236694347],[3.852785587310847,45.36156463623058],[3.836298942565975,45.38309478759777],[3.791406393051205,45.38477325439459],[3.789194107055721,45.358528137207145],[3.758874654770011,45.35595703125006],[3.663180112838745,45.36297607421875],[3.617813825607356,45.338165283203125],[3.590793371200618,45.35708618164062],[3.569313049316349,45.40229415893566],[3.555819988250732,45.39387893676769],[3.479402542114315,45.42029190063476],[3.455852270126456,45.40033721923828],[3.380009651184195,45.401157379150504],[3.355951070785579,45.422702789306754],[3.330263853073177,45.39720916748058],[3.30897331237793,45.41844177246087],[3.287523269653377,45.39960479736328],[3.236170768737736,45.394630432128906],[3.218652248382682,45.36948776245128],[3.181127786636466,45.35231018066406],[3.103498220443726,45.354373931884815],[3.063178777694816,45.33137130737299],[3.059399366378784,45.306835174560604],[3.018304586410522,45.287067413330185],[2.948624849319515,45.30912399291997],[2.920385599136466,45.3621826171875],[2.892967462539787,45.37924194335943],[2.873529672622738,45.375373840332024],[2.852378606796321,45.392341613769524],[2.815353870391903,45.40039825439458],[2.785147666931266,45.38457870483393],[2.741279363632145,45.39295959472662],[2.714525461197013,45.38146591186529],[2.681746244430485,45.40910339355469],[2.688463926315421,45.437694549560604],[2.660432100296077,45.43479537963867],[2.605762958526611,45.45357131958019],[2.582689046859741,45.45267486572271],[2.543963193893433,45.47898101806646],[2.508408546447868,45.47850799560558],[2.518362283706608,45.5189094543457],[2.515879631042537,45.55388259887701],[2.496293544769344,45.55683135986334],[2.463471889495906,45.594680786132756],[2.478431940078792,45.60791778564458],[2.48628664016735,45.640823364257926],[2.513976573944148,45.63944244384777],[2.514567375183219,45.665775299072266],[2.528683662414608,45.682197570800895],[2.521507024765128,45.71134185791021],[2.49212551116949,45.737670898437614],[2.434118747711125,45.76985549926769],[2.430863142013607,45.78861618041992],[2.388020515441838,45.82737731933588],[2.447822809219474,45.845821380615234],[2.44342398643505,45.86674499511724],[2.492225408554077,45.86402893066406],[2.511872291565055,45.886955261230526],[2.553195714950618,45.91139221191411],[2.542185306549072,45.91991424560546],[2.568712472915706,45.95787429809582],[2.606830358505306,45.966423034667905],[2.593142747879085,45.99606323242193],[2.602696418762264,46.03287506103521],[2.5733420848847,46.04692459106451],[2.550607204437313,46.086448669433594],[2.550522565841788,46.118957519531364],[2.565378904342708,46.1430397033692],[2.637202024459782,46.11938476562494],[2.654374599456844,46.1252555847168],[2.676567554473991,46.17219924926763],[2.723104953765869,46.181518554687614],[2.732597589492912,46.22341156005865],[2.786781787872428,46.19864654541021],[2.817312955856437,46.20502090454107],[2.819163084030095,46.24179077148449],[2.859759569168091,46.25658798217784],[2.936743259429932,46.24313354492199],[2.936353683471793,46.22090148925781],[2.915816783905086,46.21279144287121],[2.915694475173893,46.17413330078119],[2.943464994430542,46.168659210205185],[2.971743822097835,46.12168884277343],[2.994263172149715,46.123195648193416],[3.016919374465885,46.102458953857536],[3.050355195999259,46.100746154785156],[3.090955257415885,46.11173248291027],[3.100844860076961,46.08229827880865],[3.160065889358464,46.06643295288097],[3.214510917663631,46.074943542480405],[3.23308348655712,46.06406402587901],[3.28437256813055,46.06595611572277],[3.332797050476131,46.05355072021496],[3.369134187698364,46.05448532104492],[3.419741868972778,46.0743789672851],[3.453592777252254,46.06379318237299],[3.467401027679387,46.02788162231457],[3.486672639846802,46.014320373535156],[3.577777385711727,46.01784515380865],[3.601154088974113,46.01495742797846],[3.639159917831477,45.96542739868164],[3.678015947342032,45.955955505371094],[3.693891525268611,45.93095779418951]]]},"properties":{"ID_0":79,"ISO":"FR-63","NAME_0":"France","ID_1":3,"NAME_1":"Auvergne","ID_2":11,"NAME_2":"Puy-de-Dôme","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.320718050003109,48.74875640869146],[2.353948116302604,48.73865890502924],[2.370706796646118,48.72017669677739],[2.51005482673645,48.73466110229492],[2.531076669692993,48.69978713989258],[2.571660280227718,48.692024230956974],[2.547460794448909,48.671920776367244],[2.5406653881073,48.63381958007824],[2.517495632171745,48.62981414794933],[2.541450262069702,48.59688568115234],[2.518276929855347,48.583259582519645],[2.51794362068182,48.56203460693365],[2.497610330581665,48.51724243164068],[2.513822793960571,48.50952911376953],[2.502459526062012,48.484249114990234],[2.505029201507625,48.429866790771484],[2.521783828735465,48.40404129028326],[2.482460737228507,48.382453918456974],[2.449840068817252,48.37370681762701],[2.402664184570369,48.320720672607536],[2.369945526123104,48.308673858642635],[2.312424421310481,48.33011627197271],[2.300207614898795,48.3112411499024],[2.269118309021052,48.315048217773494],[2.207089424133358,48.344944000244254],[2.182797908783016,48.323879241943416],[2.154723405838013,48.314529418945426],[2.161589384079093,48.29843521118158],[2.052708387374878,48.295475006103565],[2.043235778808537,48.28616714477545],[1.994084715843314,48.28658676147472],[1.959227204322872,48.308689117431754],[1.982344508171138,48.32831573486328],[1.97061991691595,48.33999252319347],[1.987355947494563,48.363811492920036],[1.977244138717765,48.39916610717773],[1.939015626907405,48.42216110229498],[1.922148942947331,48.457599639892635],[1.916825771331844,48.47369384765625],[1.962064623832703,48.53499603271496],[1.937964797019958,48.56177902221685],[2.017574071884155,48.557598114013786],[2.035012960434074,48.60485076904291],[2.057564258575496,48.61724853515619],[2.020277023315543,48.64208984375],[2.033637046814079,48.678668975830135],[2.082078695297298,48.68545532226568],[2.110332727432194,48.71438217163097],[2.100445508956966,48.73600387573242],[2.175249576568604,48.75751876831065],[2.187626838684139,48.77251434326166],[2.226559400558585,48.77610015869152],[2.269288539886531,48.76063919067382],[2.283447265625057,48.734130859375114],[2.320718050003109,48.74875640869146]]]},"properties":{"ID_0":79,"ISO":"FR-91","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":12,"NAME_2":"Essonne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.331908941269035,48.81701278686534],[2.320718050003109,48.74875640869146],[2.283447265625057,48.734130859375114],[2.269288539886531,48.76063919067382],[2.226559400558585,48.77610015869152],[2.176739215850944,48.81401062011724],[2.150744438171386,48.818847656250114],[2.150387287140006,48.87086868286133],[2.16934871673584,48.89581298828131],[2.200591087341309,48.90867996215826],[2.267584562301692,48.94608688354498],[2.290973663330078,48.950965881347706],[2.334910154342651,48.941543579101555],[2.313758373260612,48.914020538330135],[2.319884538650513,48.900459289550895],[2.231736421585197,48.86906814575207],[2.224224567413444,48.85351562500011],[2.25356054306036,48.83685684204113],[2.331908941269035,48.81701278686534]]]},"properties":{"ID_0":79,"ISO":"FR-92","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":13,"NAME_2":"Hauts-de-Seine","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.416339635849112,48.84923934936535],[2.467259645462036,48.839088439941406],[2.461247444152945,48.81834793090832],[2.403295755386466,48.82924270629894],[2.364139080047664,48.81638717651373],[2.331908941269035,48.81701278686534],[2.25356054306036,48.83685684204113],[2.224224567413444,48.85351562500011],[2.231736421585197,48.86906814575207],[2.319884538650513,48.900459289550895],[2.389444351196403,48.901157379150334],[2.413277149200496,48.87311935424798],[2.416339635849112,48.84923934936535]]]},"properties":{"ID_0":79,"ISO":"FR-75","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":14,"NAME_2":"Paris","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.485187530517635,48.851909637451286],[3.485241413116455,48.825504302978516],[3.444479703903311,48.81180191040045],[3.442154169082642,48.784854888916016],[3.409984111786002,48.78372192382824],[3.397129535675049,48.7613983154298],[3.467395544052181,48.738628387451286],[3.470862388610783,48.687267303466854],[3.442698001861629,48.67250442504883],[3.476752996444645,48.63752746582031],[3.492137432098446,48.64695739746105],[3.555613756179866,48.6202850341798],[3.508512735366821,48.605510711670036],[3.46551609039318,48.570484161376946],[3.482364177703857,48.54980850219738],[3.450707197189331,48.52866744995117],[3.405398130416927,48.52802276611328],[3.434908628463745,48.49685287475585],[3.384093523025626,48.47802734375],[3.405714035034237,48.453289031982536],[3.392912864685059,48.42522048950207],[3.420679807663021,48.41545104980463],[3.414791584015006,48.390274047851506],[3.385177135467529,48.39886474609369],[3.363938093185482,48.37532424926758],[3.310689926147461,48.37291336059576],[3.283174753189087,48.38138580322271],[3.251020669937133,48.36510086059576],[3.204450368881282,48.36420059204112],[3.180979967117366,48.374557495117244],[3.139868736267147,48.372600555420036],[3.098776817321777,48.3577499389649],[3.049451351165771,48.360031127929744],[3.040571212768554,48.32892990112316],[3.01568508148199,48.30731582641607],[3.043708086013794,48.27184295654297],[3.00599050521862,48.20942306518555],[2.971666336059627,48.203411102295036],[2.934748649597282,48.17882156372081],[2.936314344406241,48.16339111328131],[2.866823434829769,48.15603637695324],[2.820879936218375,48.12966537475586],[2.780977487564087,48.16736221313488],[2.755198240280208,48.14565277099614],[2.706547021865958,48.12482070922863],[2.664748191833552,48.120540618896484],[2.639666080474854,48.1389503479005],[2.577867984771729,48.131782531738395],[2.537505388259887,48.14051818847662],[2.522209644317684,48.12521362304687],[2.461097478866577,48.13820648193365],[2.523010969162044,48.19876098632824],[2.506191730499268,48.23853683471691],[2.484178543090877,48.23897171020508],[2.420108795166072,48.26670455932623],[2.420761823654232,48.299251556396484],[2.402664184570369,48.320720672607536],[2.449840068817252,48.37370681762701],[2.482460737228507,48.382453918456974],[2.521783828735465,48.40404129028326],[2.505029201507625,48.429866790771484],[2.502459526062012,48.484249114990234],[2.513822793960571,48.50952911376953],[2.497610330581665,48.51724243164068],[2.51794362068182,48.56203460693365],[2.518276929855347,48.583259582519645],[2.541450262069702,48.59688568115234],[2.517495632171745,48.62981414794933],[2.5406653881073,48.63381958007824],[2.547460794448909,48.671920776367244],[2.571660280227718,48.692024230956974],[2.568137168884277,48.70897293090826],[2.594679117202758,48.731803894043026],[2.587756872177181,48.74407577514654],[2.606440067291203,48.77330780029297],[2.592280387878418,48.807437896728565],[2.595794916153068,48.81426620483404],[2.559406518936214,48.8853378295899],[2.586001396179199,48.895164489746094],[2.591905355453548,48.94934844970703],[2.566334962844905,48.97525405883795],[2.579969167709407,48.98692321777344],[2.553060531616211,49.0098152160645],[2.579623937606755,49.04650115966802],[2.590524196624813,49.07965469360363],[2.633272886276302,49.10837554931652],[2.692186594009513,49.076568603515625],[2.724357128143367,49.08045959472662],[2.735012531280631,49.06045913696289],[2.760833501815853,49.063003540039006],[2.809254169464111,49.09753799438482],[2.844946384430045,49.0848846435548],[2.856089353561458,49.070034027099666],[2.901507854461784,49.08537292480468],[2.974612236023063,49.07483673095703],[3.056320667266959,49.10191726684576],[3.07188439369213,49.11755371093744],[3.165230274200553,49.09965896606456],[3.155808210372925,49.085502624511655],[3.190666913986149,49.0499725341798],[3.171569347381592,49.01249694824219],[3.249521970748901,48.9742317199707],[3.269479513168335,48.93745422363292],[3.30474948883068,48.94877243041997],[3.313075780868587,48.92121505737305],[3.33019924163824,48.907958984375],[3.361698389053458,48.91955947875982],[3.382333993911743,48.8736305236817],[3.485187530517635,48.851909637451286]]]},"properties":{"ID_0":79,"ISO":"FR-77","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":15,"NAME_2":"Seine-et-Marne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.592280387878418,48.807437896728565],[2.568665742874146,48.824413299560604],[2.496392011642399,48.85990905761719],[2.416339635849112,48.84923934936535],[2.413277149200496,48.87311935424798],[2.389444351196403,48.901157379150334],[2.319884538650513,48.900459289550895],[2.313758373260612,48.914020538330135],[2.334910154342651,48.941543579101555],[2.290973663330078,48.950965881347706],[2.298617124557609,48.96635437011719],[2.382446527481079,48.971294403076286],[2.407383680343742,48.95613098144542],[2.459489822387695,48.9550552368164],[2.511558294296321,48.98099899291998],[2.553060531616211,49.0098152160645],[2.579969167709407,48.98692321777344],[2.566334962844905,48.97525405883795],[2.591905355453548,48.94934844970703],[2.586001396179199,48.895164489746094],[2.559406518936214,48.8853378295899],[2.595794916153068,48.81426620483404],[2.592280387878418,48.807437896728565]]]},"properties":{"ID_0":79,"ISO":"FR-93","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":16,"NAME_2":"Seine-Saint-Denis","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.590524196624813,49.07965469360363],[2.579623937606755,49.04650115966802],[2.553060531616211,49.0098152160645],[2.511558294296321,48.98099899291998],[2.459489822387695,48.9550552368164],[2.407383680343742,48.95613098144542],[2.382446527481079,48.971294403076286],[2.298617124557609,48.96635437011719],[2.290973663330078,48.950965881347706],[2.267584562301692,48.94608688354498],[2.200591087341309,48.90867996215826],[2.20585823059082,48.949741363525504],[2.173141479492187,48.95329666137695],[2.175023317336979,48.97324752807628],[2.12745285034174,48.98905181884765],[2.126808881759643,49.00867080688482],[2.084914922714347,49.014678955078175],[2.026444911956787,49.00070190429693],[1.981510281562805,49.0192756652832],[1.937802195549011,49.0217781066895],[1.908522486686763,49.048023223876896],[1.86244094371807,49.020195007324276],[1.851334214210567,49.03336334228521],[1.865468740463313,49.05747222900385],[1.823601126670894,49.0766716003418],[1.723457217216492,49.044975280761776],[1.693668246269283,49.05667877197276],[1.670822381973267,49.078910827636776],[1.608796119689941,49.077892303466854],[1.655990839004573,49.13039016723644],[1.676291346550101,49.212188720703125],[1.704364180564824,49.232200622558594],[1.740453124046269,49.22344207763672],[1.715608477592525,49.20623779296869],[1.742694616317749,49.179801940918026],[1.776924133300895,49.1852264404298],[1.882568359375057,49.16249465942383],[1.974085569381714,49.18331527709961],[1.999445199966544,49.175571441650504],[2.021784305572623,49.188674926757926],[2.0807688236236,49.20720291137701],[2.095874547958488,49.19006347656249],[2.153026103973446,49.183925628662166],[2.168270587921199,49.16475296020502],[2.220277070999259,49.17919921875],[2.241582632064876,49.1515731811524],[2.286412954330501,49.15991973876953],[2.301197052002067,49.183887481689446],[2.321776866912955,49.184436798095696],[2.359295606613272,49.14734649658203],[2.440902709961051,49.1458015441895],[2.499226570129395,49.122268676757926],[2.489930868148746,49.106361389160156],[2.559478759765681,49.0976181030274],[2.590524196624813,49.07965469360363]]]},"properties":{"ID_0":79,"ISO":"FR-95","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":17,"NAME_2":"Val-d'Oise","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.592280387878418,48.807437896728565],[2.606440067291203,48.77330780029297],[2.587756872177181,48.74407577514654],[2.594679117202758,48.731803894043026],[2.568137168884277,48.70897293090826],[2.571660280227718,48.692024230956974],[2.531076669692993,48.69978713989258],[2.51005482673645,48.73466110229492],[2.370706796646118,48.72017669677739],[2.353948116302604,48.73865890502924],[2.320718050003109,48.74875640869146],[2.331908941269035,48.81701278686534],[2.364139080047664,48.81638717651373],[2.403295755386466,48.82924270629894],[2.461247444152945,48.81834793090832],[2.467259645462036,48.839088439941406],[2.416339635849112,48.84923934936535],[2.496392011642399,48.85990905761719],[2.568665742874146,48.824413299560604],[2.592280387878418,48.807437896728565]]]},"properties":{"ID_0":79,"ISO":"FR-94","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":18,"NAME_2":"Val-de-Marne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.608796119689941,49.077892303466854],[1.670822381973267,49.078910827636776],[1.693668246269283,49.05667877197276],[1.723457217216492,49.044975280761776],[1.823601126670894,49.0766716003418],[1.865468740463313,49.05747222900385],[1.851334214210567,49.03336334228521],[1.86244094371807,49.020195007324276],[1.908522486686763,49.048023223876896],[1.937802195549011,49.0217781066895],[1.981510281562805,49.0192756652832],[2.026444911956787,49.00070190429693],[2.084914922714347,49.014678955078175],[2.126808881759643,49.00867080688482],[2.12745285034174,48.98905181884765],[2.175023317336979,48.97324752807628],[2.173141479492187,48.95329666137695],[2.20585823059082,48.949741363525504],[2.200591087341309,48.90867996215826],[2.16934871673584,48.89581298828131],[2.150387287140006,48.87086868286133],[2.150744438171386,48.818847656250114],[2.176739215850944,48.81401062011724],[2.226559400558585,48.77610015869152],[2.187626838684139,48.77251434326166],[2.175249576568604,48.75751876831065],[2.100445508956966,48.73600387573242],[2.110332727432194,48.71438217163097],[2.082078695297298,48.68545532226568],[2.033637046814079,48.678668975830135],[2.020277023315543,48.64208984375],[2.057564258575496,48.61724853515619],[2.035012960434074,48.60485076904291],[2.017574071884155,48.557598114013786],[1.937964797019958,48.56177902221685],[1.962064623832703,48.53499603271496],[1.916825771331844,48.47369384765625],[1.922148942947331,48.457599639892635],[1.904506683349609,48.44026184082031],[1.847221136093196,48.44667434692383],[1.834566354751644,48.46723556518548],[1.802130699157658,48.468093872070256],[1.776842474937439,48.512874603271484],[1.787245035171622,48.55374526977545],[1.761452198028564,48.57168960571295],[1.709252834320068,48.57802581787109],[1.715143442153931,48.613147735595646],[1.666354537010307,48.61370849609381],[1.640838384628353,48.64488983154308],[1.602706551551819,48.66309738159191],[1.611295104026908,48.688457489013786],[1.582495450973624,48.70430374145519],[1.624960064888057,48.749031066894645],[1.584907293319702,48.76329803466808],[1.57701563835144,48.78525161743164],[1.590482711792049,48.817333221435604],[1.582962155342102,48.85749816894536],[1.546231389045658,48.872436523437614],[1.563741922378483,48.89062881469738],[1.538249373435974,48.92169189453125],[1.501523852348441,48.94105529785162],[1.49522519111639,48.96574401855469],[1.470889449119682,48.9748153686524],[1.477095484733638,49.014801025390625],[1.457762360572872,49.026298522949276],[1.447279453277588,49.05351257324219],[1.486533403396606,49.05173873901373],[1.52134740352642,49.06835174560547],[1.604106664657649,49.08377456665045],[1.608796119689941,49.077892303466854]]]},"properties":{"ID_0":79,"ISO":"FR-78","NAME_0":"France","ID_1":4,"NAME_1":"Île-de-France","ID_2":19,"NAME_2":"Yvelines","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.412814527750072,48.950626373291016],[0.377446562051887,48.97255706787121],[0.356623172760067,48.94962692260742],[0.333231478929576,48.94278335571289],[0.308721601963043,48.95422744750976],[0.238900318741798,48.94249725341797],[0.187315776944217,48.94107437133789],[0.15521219372755,48.925151824951286],[0.136288017034644,48.9504013061524],[0.065764389932212,48.92614364624018],[0.056447435170412,48.9025535583496],[-0.009860503487289,48.88379669189459],[-0.013320349156857,48.87662124633789],[-0.083340704441014,48.84433364868164],[-0.144832596182823,48.83246231079112],[-0.268018245696965,48.85318374633794],[-0.298548251390457,48.84915924072276],[-0.345416009426117,48.82183456420898],[-0.410851985216141,48.869960784912166],[-0.464764505624714,48.87098693847656],[-0.509979069232941,48.84597396850591],[-0.549649894237461,48.84627151489258],[-0.624501228332463,48.82697296142584],[-0.691249072551727,48.846233367919865],[-0.682171523570958,48.82183456420898],[-0.743942260742187,48.791923522949325],[-0.780626654624882,48.786651611328125],[-0.808230042457524,48.76011276245123],[-0.840936005115509,48.75222778320318],[-0.922325611114445,48.77135467529308],[-0.948841512203217,48.78706741333019],[-0.975072145462036,48.774517059326115],[-1.05873441696167,48.773349761963004],[-1.084108233451843,48.77931213378912],[-1.102298140525818,48.81427001953136],[-1.157974243164006,48.82535934448248],[-1.101994752883911,48.866359710693416],[-1.059165954589787,48.87725830078125],[-1.021892428398132,48.90512466430675],[-1.021219730377197,48.92628097534191],[-1.065538048744088,48.93190765380871],[-1.056539297103882,48.958621978759766],[-0.99047410488123,48.95084762573247],[-0.944261848926544,48.96699142456055],[-0.915084302425328,48.9895477294923],[-0.905113041400909,49.011398315429744],[-0.862558603286743,49.02641296386719],[-0.876058459281921,49.05484008789062],[-0.886705636978149,49.128360748291016],[-0.937614500522557,49.150062561035206],[-0.901575684547424,49.2048225402832],[-0.920925438404083,49.221584320068466],[-0.972219824790898,49.193447113037166],[-1.023564338684082,49.20336532592779],[-1.036842465400696,49.22140121459955],[-1.07454240322113,49.23258972167969],[-1.095279455184937,49.25262832641613],[-1.133356332778874,49.27149963378906],[-1.139452099800053,49.30960464477545],[-1.113307952880859,49.32669067382818],[-1.117220044135991,49.344581604003906],[-1.117640018463135,49.359306335449276],[-1.070693969726505,49.39069366455078],[-1.008749961853027,49.39625167846691],[-0.934028029441833,49.394584655761776],[-0.89597100019455,49.37541580200201],[-0.831529021263066,49.358470916748104],[-0.724307000637054,49.347412109375],[-0.647082984447366,49.34652709960943],[-0.594582974910736,49.33986282348632],[-0.516804993152618,49.34541702270508],[-0.450138002633992,49.33541488647472],[-0.412082999944687,49.33597183227545],[-0.36625000834465,49.32513809204113],[-0.287084013223648,49.29375076293945],[-0.227362006902638,49.277084350585994],[-0.210137993097305,49.285694122314446],[-0.153750002384186,49.28708267211913],[-0.09680599719286,49.2984733581543],[0.0095840003342,49.33013916015631],[0.06875000149023,49.362083435058594],[0.128472998738346,49.403194427490234],[0.223471999168453,49.428470611572315],[0.293195009231681,49.43337631225585],[0.297141581773872,49.43361282348638],[0.309067577123699,49.38688278198248],[0.301713615656013,49.37130355834972],[0.323661744594688,49.34011840820324],[0.307059824466762,49.3187980651856],[0.322438538074607,49.29633331298828],[0.365656018257255,49.295124053955135],[0.382786750793571,49.26401519775401],[0.321765959262962,49.24859237670904],[0.337502598762512,49.23117446899414],[0.393431842327175,49.20693969726568],[0.387361347675323,49.15317916870117],[0.432367354631367,49.14220046997082],[0.399783194065208,49.10081481933594],[0.408114433288688,49.076675415039176],[0.379250437021255,49.07092285156255],[0.384958535432816,49.03701400756835],[0.4245461523534,49.032032012939446],[0.446051925420818,49.01901245117193],[0.426760137081203,48.985717773437614],[0.432199895381871,48.971908569335994],[0.412814527750072,48.950626373291016]]]},"properties":{"ID_0":79,"ISO":"FR-14","NAME_0":"France","ID_1":5,"NAME_1":"Basse-Normandie","ID_2":20,"NAME_2":"Calvados","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.117220044135991,49.344581604003906],[-1.113307952880859,49.32669067382818],[-1.139452099800053,49.30960464477545],[-1.133356332778874,49.27149963378906],[-1.095279455184937,49.25262832641613],[-1.07454240322113,49.23258972167969],[-1.036842465400696,49.22140121459955],[-1.023564338684082,49.20336532592779],[-0.972219824790898,49.193447113037166],[-0.920925438404083,49.221584320068466],[-0.901575684547424,49.2048225402832],[-0.937614500522557,49.150062561035206],[-0.886705636978149,49.128360748291016],[-0.876058459281921,49.05484008789062],[-0.862558603286743,49.02641296386719],[-0.905113041400909,49.011398315429744],[-0.915084302425328,48.9895477294923],[-0.944261848926544,48.96699142456055],[-0.99047410488123,48.95084762573247],[-1.056539297103882,48.958621978759766],[-1.065538048744088,48.93190765380871],[-1.021219730377197,48.92628097534191],[-1.021892428398132,48.90512466430675],[-1.059165954589787,48.87725830078125],[-1.101994752883911,48.866359710693416],[-1.157974243164006,48.82535934448248],[-1.102298140525818,48.81427001953136],[-1.084108233451843,48.77931213378912],[-1.05873441696167,48.773349761963004],[-0.975072145462036,48.774517059326115],[-0.948841512203217,48.78706741333019],[-0.922325611114445,48.77135467529308],[-0.840936005115509,48.75222778320318],[-0.796915590763035,48.70907592773443],[-0.741063296794891,48.68077468872076],[-0.773293912410736,48.65670394897461],[-0.75300395488739,48.61964035034173],[-0.775711894035283,48.56183624267584],[-0.805632650852147,48.54975128173828],[-0.847514986991825,48.52085113525396],[-0.860362887382507,48.501457214355575],[-0.896032691001835,48.49487304687505],[-0.923879265785217,48.51313781738281],[-0.953884124755802,48.51679229736328],[-0.973776161670628,48.494834899902344],[-1.00297474861145,48.48907089233404],[-1.060748457908573,48.515392303466854],[-1.070164561271667,48.50849533081055],[-1.117276906967163,48.5216522216798],[-1.145708680152893,48.517654418945426],[-1.166723966598511,48.53007888793951],[-1.249492645263672,48.54369735717785],[-1.272910118103027,48.53372192382812],[-1.279003739356995,48.50917816162115],[-1.341414928436279,48.48920822143555],[-1.346532940864563,48.47311782836925],[-1.382966637611389,48.45687484741216],[-1.427751541137695,48.46234893798839],[-1.454089283943119,48.48772430419933],[-1.489947438239994,48.48937606811523],[-1.49573278427124,48.5083122253418],[-1.533109784126225,48.54943847656256],[-1.521005153656006,48.56705474853527],[-1.538887023925781,48.59745788574219],[-1.566049337387028,48.61482620239269],[-1.578202247619629,48.64097213745128],[-1.52791595458973,48.64180374145508],[-1.507639050483647,48.63124847412115],[-1.472916007041931,48.63930511474614],[-1.409584045410156,48.643196105956974],[-1.460139036178589,48.67088317871094],[-1.501528024673462,48.684860229492244],[-1.534031033515873,48.73070526123058],[-1.571527957916203,48.742916107177734],[-1.573472023010254,48.81930541992187],[-1.584028959274292,48.85013961791998],[-1.573194026947021,48.8804168701173],[-1.55791699886322,48.99402618408209],[-1.586807012557983,49.00819396972662],[-1.60930597782135,49.07430648803722],[-1.61041605472559,49.097637176513665],[-1.592360973358097,49.134090423583984],[-1.614029049873295,49.21680450439459],[-1.640138983726501,49.21958160400402],[-1.659584045410099,49.256526947021484],[-1.707362055778503,49.318473815918026],[-1.774860978126412,49.3698616027832],[-1.808472990989628,49.37152862548834],[-1.822916030883732,49.39989852905285],[-1.827082037925663,49.455696105957145],[-1.844861984252873,49.470973968505916],[-1.852084994316101,49.50958251953131],[-1.889304995536747,49.53347396850586],[-1.84069299697876,49.57402801513672],[-1.84597194194788,49.62125015258788],[-1.875694036483764,49.65847396850591],[-1.938750982284546,49.67097091674799],[-1.948470950126648,49.707637786865234],[-1.922083973884582,49.726806640625],[-1.872084021568299,49.707916259765625],[-1.838749051094055,49.710971832275504],[-1.824859976768437,49.690692901611385],[-1.774307012557983,49.68069458007818],[-1.713750004768372,49.67902755737305],[-1.672083020210209,49.657917022705135],[-1.629583954811096,49.65958404541027],[-1.603749990463257,49.64541625976568],[-1.570140004157963,49.65652847290038],[-1.509582996368351,49.660972595214844],[-1.436249017715454,49.69958496093756],[-1.381526947021371,49.70624923706049],[-1.288193941116333,49.69235992431646],[-1.242638945579529,49.65541839599604],[-1.229027986526489,49.60597229003917],[-1.254583954810983,49.6123619079591],[-1.266527056693974,49.59180450439458],[-1.30458402633667,49.572917938232536],[-1.302083969116211,49.53347396850586],[-1.247640013694649,49.47708511352545],[-1.181251049041748,49.42291641235357],[-1.158751010894775,49.39152908325207],[-1.176249980926457,49.36652755737316],[-1.145972013473454,49.36291503906256],[-1.117220044135991,49.344581604003906]]]},"properties":{"ID_0":79,"ISO":"FR-50","NAME_0":"France","ID_1":5,"NAME_1":"Basse-Normandie","ID_2":21,"NAME_2":"Manche","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.412814527750072,48.950626373291016],[0.386114388704414,48.91054916381836],[0.443109124898967,48.88128662109375],[0.47437018156046,48.88705825805664],[0.496543794870377,48.87878036499029],[0.549868464470023,48.87471008300792],[0.585984230041561,48.87860107421875],[0.619440674781913,48.85274887084961],[0.607868492603359,48.83248901367193],[0.690171241760368,48.79405975341791],[0.730522811412811,48.78559112548834],[0.775034308433646,48.73735809326183],[0.751169919967765,48.703979492187614],[0.767301619052887,48.69582366943371],[0.768455088138694,48.67072296142578],[0.814819097519035,48.67016983032237],[0.82356470823288,48.650665283203125],[0.822398364544028,48.60887527465826],[0.84590852260601,48.609016418457145],[0.849312484264487,48.585941314697266],[0.867284238338584,48.57394409179699],[0.925711214542389,48.55965423583979],[0.924195051193237,48.538040161132926],[0.967740058898983,48.52388000488287],[0.953055024147034,48.48015594482421],[0.935709059238548,48.4755096435548],[0.955576777458305,48.445301055908146],[0.948381423950252,48.40164566040039],[0.907346844673157,48.37010192871094],[0.827866911888236,48.3423118591308],[0.785431504249573,48.34043502807617],[0.756839871406612,48.30046463012701],[0.797485589981136,48.291446685791016],[0.787321388721409,48.26144409179693],[0.829446434974784,48.21136856079107],[0.797655463218746,48.19446182250988],[0.75920873880392,48.18009185791009],[0.723637044429893,48.19814300537115],[0.687393724918422,48.24078369140625],[0.652469277382011,48.26338958740246],[0.613135278225002,48.24273681640631],[0.546795129776058,48.250164031982536],[0.49442341923708,48.28348922729498],[0.505824327468986,48.29365921020519],[0.429964780807609,48.30867767333984],[0.395362317562103,48.3212890625],[0.372679382562637,48.410133361816406],[0.381724506616706,48.42478942871105],[0.363204777240867,48.45156097412109],[0.297909289598465,48.47981643676769],[0.217967852950153,48.4738006591798],[0.172326982021332,48.4638290405274],[0.153319001197872,48.437942504882926],[0.111593373119831,48.43231582641613],[0.103347465396098,48.4133186340332],[0.067361883819103,48.40605926513683],[0.023083170875964,48.38020706176769],[0.003370246384236,48.39599609374994],[-0.054531205445528,48.382003784179744],[-0.057580254971981,48.42908477783208],[-0.05069895833725,48.45058822631847],[-0.108255140483323,48.44802474975586],[-0.148946359753609,48.45878982543957],[-0.166668266057911,48.5147056579591],[-0.144603967666626,48.527751922607415],[-0.207346305251065,48.562519073486385],[-0.242639139294567,48.568000793457145],[-0.260578185319844,48.549133300781364],[-0.243056803941727,48.53706359863287],[-0.268389731645527,48.52066802978521],[-0.32023906707758,48.522930145263615],[-0.336825251579285,48.50242233276373],[-0.368081152439117,48.49311065673828],[-0.446882694959641,48.51493835449224],[-0.478198140859604,48.501571655273494],[-0.509293854236603,48.508842468261776],[-0.553156673908234,48.47296524047846],[-0.593207120895329,48.47084045410162],[-0.654215216636658,48.444545745849545],[-0.658167600631657,48.474845886230526],[-0.725250840187073,48.473468780517635],[-0.715918183326664,48.45089721679699],[-0.75648307800293,48.436935424804744],[-0.77787405252451,48.465412139892635],[-0.816024899482613,48.47118759155285],[-0.860362887382507,48.501457214355575],[-0.847514986991825,48.52085113525396],[-0.805632650852147,48.54975128173828],[-0.775711894035283,48.56183624267584],[-0.75300395488739,48.61964035034173],[-0.773293912410736,48.65670394897461],[-0.741063296794891,48.68077468872076],[-0.796915590763035,48.70907592773443],[-0.840936005115509,48.75222778320318],[-0.808230042457524,48.76011276245123],[-0.780626654624882,48.786651611328125],[-0.743942260742187,48.791923522949325],[-0.682171523570958,48.82183456420898],[-0.691249072551727,48.846233367919865],[-0.624501228332463,48.82697296142584],[-0.549649894237461,48.84627151489258],[-0.509979069232941,48.84597396850591],[-0.464764505624714,48.87098693847656],[-0.410851985216141,48.869960784912166],[-0.345416009426117,48.82183456420898],[-0.298548251390457,48.84915924072276],[-0.268018245696965,48.85318374633794],[-0.144832596182823,48.83246231079112],[-0.083340704441014,48.84433364868164],[-0.013320349156857,48.87662124633789],[-0.009860503487289,48.88379669189459],[0.056447435170412,48.9025535583496],[0.065764389932212,48.92614364624018],[0.136288017034644,48.9504013061524],[0.15521219372755,48.925151824951286],[0.187315776944217,48.94107437133789],[0.238900318741798,48.94249725341797],[0.308721601963043,48.95422744750976],[0.333231478929576,48.94278335571289],[0.356623172760067,48.94962692260742],[0.377446562051887,48.97255706787121],[0.412814527750072,48.950626373291016]]]},"properties":{"ID_0":79,"ISO":"FR-61","NAME_0":"France","ID_1":5,"NAME_1":"Basse-Normandie","ID_2":22,"NAME_2":"Orne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[4.115967273712215,47.123336791992244],[4.115067481994629,47.14616394042969],[4.181901931762752,47.1505126953125],[4.186563968658504,47.13448333740229],[4.150014400482235,47.11404418945324],[4.115967273712215,47.123336791992244]]],[[[4.704238414764518,48.02024078369151],[4.749530792236328,48.00431060791021],[4.789420604705867,48.007869720459034],[4.787781238556022,47.96525573730474],[4.845032691955566,47.9604263305664],[4.86520957946783,47.941562652588004],[4.834023952484131,47.90679550170904],[4.856782436370906,47.895633697509766],[4.874586105346737,47.91952133178716],[4.905961036682243,47.916469573974666],[4.954094409942741,47.86676788330078],[4.961502075195312,47.84057235717779],[4.994125366210938,47.819747924804794],[4.986103057861385,47.80359649658203],[4.917957782745475,47.77709579467779],[4.924775123596248,47.760623931884766],[4.958989620208854,47.761875152588004],[4.971535205841064,47.731079101562614],[4.954513549804744,47.70288848876953],[4.971371173858756,47.69023513793945],[5.056238174438533,47.6948127746582],[5.046803951263428,47.67556762695324],[5.12756538391119,47.64847183227539],[5.160201072692814,47.678153991699276],[5.173409938812313,47.653533935546875],[5.211390972137451,47.64165878295904],[5.236942291259879,47.61677551269537],[5.256230354309196,47.5765495300293],[5.306356430053768,47.60727691650402],[5.374078750610465,47.604541778564396],[5.39980506896984,47.597164154052734],[5.425594806671143,47.63207244873058],[5.478564262390194,47.60538482666026],[5.496639728546255,47.54713058471673],[5.447459697723332,47.496200561523494],[5.399215698242131,47.49901580810547],[5.379534244537297,47.466140747070426],[5.441021919250544,47.44655990600597],[5.430425643921012,47.421356201171875],[5.451393604278508,47.38397216796875],[5.496919155120906,47.38854980468749],[5.495005130767878,47.34143447875982],[5.474295139312744,47.31529617309576],[5.518538951873779,47.3041877746582],[5.488452434539909,47.28814697265631],[5.479135990142822,47.21851348876959],[5.449262142181396,47.20321655273443],[5.458915710449162,47.181934356689446],[5.438985347747803,47.14298629760742],[5.414566516876334,47.132762908935604],[5.41039323806757,47.113834381103516],[5.3856458663941,47.0817489624024],[5.323974609375057,47.073791503906364],[5.283483982086294,47.04631805419933],[5.275326728820914,47.02693557739263],[5.317198276519832,47.015804290771484],[5.275070190429688,46.99802780151367],[5.255236148834229,46.979888916015675],[5.222071647644157,46.9888534545899],[5.164630889892635,46.96423339843756],[5.074944972991943,46.961162567138786],[5.049303531646785,46.98158645629894],[5.003406524658202,46.97214508056652],[4.997223377227897,46.96112823486328],[4.914753913879451,46.96775817871105],[4.893081665039119,46.9514999389649],[4.80623197555542,46.93318176269537],[4.779335021972599,46.91888427734381],[4.744315147399959,46.924434661865234],[4.685219764709529,46.90095520019536],[4.666216373443604,46.912326812744254],[4.678434848785514,46.9304313659669],[4.595808506012019,46.95216369628906],[4.568143844604435,46.99090576171874],[4.547687530517521,46.9953231811524],[4.554809093475399,47.02005386352545],[4.512144565582389,47.01200485229498],[4.489643573760986,47.03200912475586],[4.427280426025504,47.040412902832145],[4.406283378601188,47.049999237060604],[4.402867317199764,47.08227920532238],[4.344250679016113,47.07242965698242],[4.3493847846986,47.096954345703125],[4.276623249053955,47.10799026489263],[4.251650333404598,47.131511688232536],[4.209834098816032,47.155410766601676],[4.21216869354248,47.18112945556646],[4.230875492096061,47.197021484375114],[4.219202518463192,47.219402313232536],[4.177722454071159,47.25273895263666],[4.135148525238151,47.2373619079591],[4.125355720520076,47.24950408935547],[4.115373611450309,47.30753707885753],[4.130406856536922,47.32057571411133],[4.106085777282772,47.33925628662115],[4.10567045211792,47.36601638793951],[4.078052997589111,47.38175201416021],[4.072978019714355,47.41365051269537],[4.119426727295036,47.44355392456066],[4.128831863403319,47.47046279907221],[4.115965843200684,47.48445892333996],[4.11463117599493,47.514755249023544],[4.13772010803234,47.51947402954096],[4.155973434448242,47.55053329467785],[4.172574520111141,47.55081939697277],[4.21257829666132,47.62784576416021],[4.247804641723576,47.65877532958996],[4.265892028808594,47.70395278930664],[4.241387844085807,47.724277496338],[4.260371685028076,47.74061965942388],[4.293037891388053,47.73284530639654],[4.331032752990779,47.75608825683588],[4.319976806640682,47.811428070068416],[4.324863433838004,47.84719848632824],[4.262689590454102,47.844013214111385],[4.264439582824821,47.87150192260748],[4.293424129486084,47.92567443847656],[4.312801837921086,47.962497711181754],[4.352546691894588,47.95663070678722],[4.416409969329834,47.96820068359375],[4.446962356567383,47.956199645996094],[4.495481967926082,47.968048095703125],[4.559968948364315,47.97142410278326],[4.53577423095703,48.006565093994254],[4.578579425811824,48.02833938598644],[4.616806983947867,48.03137588500987],[4.67296028137207,48.015018463134766],[4.704238414764518,48.02024078369151]]]]},"properties":{"ID_0":79,"ISO":"FR-21","NAME_0":"France","ID_1":6,"NAME_1":"Bourgogne","ID_2":23,"NAME_2":"Côte-d'Or","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.106085777282772,47.33925628662115],[4.130406856536922,47.32057571411133],[4.115373611450309,47.30753707885753],[4.125355720520076,47.24950408935547],[4.135148525238151,47.2373619079591],[4.177722454071159,47.25273895263666],[4.219202518463192,47.219402313232536],[4.230875492096061,47.197021484375114],[4.21216869354248,47.18112945556646],[4.209834098816032,47.155410766601676],[4.181901931762752,47.1505126953125],[4.115067481994629,47.14616394042969],[4.115967273712215,47.123336791992244],[4.060379028320369,47.120735168457145],[4.038853168487663,47.07973861694341],[4.071133136749381,47.057842254638786],[4.057330608368034,47.01577758789068],[4.037143707275391,46.98468780517583],[4.053854942321834,46.95977783203125],[4.039772987365779,46.94696426391607],[4.044686794281063,46.901168823242294],[4.06820917129528,46.89682769775385],[4.095235347747803,46.87240600585932],[4.09092712402355,46.8573379516601],[4.048388481140194,46.83795166015625],[4.062137126922721,46.78556060791021],[4.038512706756649,46.78684997558599],[3.963221549987906,46.766029357910156],[3.92824363708496,46.74138259887701],[3.889191389083862,46.728229522705135],[3.844924211502189,46.72198867797863],[3.82655239105236,46.703826904296875],[3.794654130935669,46.702033996582145],[3.783666133880672,46.73604965209966],[3.738632917404288,46.75196075439458],[3.661100625991821,46.73773574829107],[3.629423618316764,46.74945831298834],[3.578034639358521,46.74962234497082],[3.595874309539794,46.725543975830135],[3.548900365829581,46.70555114746094],[3.547825336456299,46.67943572998047],[3.520472288131828,46.68523788452148],[3.486833810806274,46.660560607910156],[3.455299139022884,46.652397155761776],[3.449235200881958,46.690788269043075],[3.434214115142936,46.71221923828124],[3.380713224411068,46.71232986450195],[3.366416215896606,46.69067764282238],[3.318052530288753,46.68844223022455],[3.298052310943547,46.7158775329591],[3.268544197082576,46.71592330932617],[3.204426527023372,46.67875289916992],[3.167414426803703,46.69096755981445],[3.129056215286369,46.72749328613281],[3.083478212356681,46.73777389526373],[3.049694061279297,46.75780868530279],[3.032068252563477,46.7949104309082],[3.057639598846549,46.82513809204107],[3.069401502609367,46.852256774902344],[3.061144828796444,46.89738082885748],[3.050227165222168,46.90915298461913],[3.078275442123413,46.953426361083984],[3.063970804214534,46.97694396972656],[3.074778556823844,47.02999496459972],[3.063618421554622,47.046169281005916],[3.022240638732967,47.063652038574276],[3.031362056732235,47.09288406372076],[3.028282880783138,47.12843704223644],[2.997741222381705,47.20085144042963],[2.979025840759277,47.22906494140636],[2.983390808105469,47.25963592529297],[2.912961483001766,47.30831909179693],[2.882418632507324,47.318023681640625],[2.870246887207145,47.34234237670898],[2.919770956039486,47.410469055175724],[2.931561231613102,47.44067001342785],[2.874625205993596,47.52042388916021],[2.851701736450252,47.53526687622082],[2.856629610061646,47.55141067504888],[2.897469282150382,47.554344177246094],[2.914297342300529,47.56597137451172],[2.958658218383789,47.55738067626953],[2.976537942886353,47.56942749023443],[3.017047405242977,47.55782699584961],[3.058680772781372,47.56875991821295],[3.088024616241512,47.58698654174816],[3.11158108711254,47.583896636963004],[3.123026609420776,47.5394287109375],[3.165190696716365,47.51750183105469],[3.204517126083374,47.523193359374936],[3.235027551651058,47.48963928222656],[3.274682283401603,47.49195480346691],[3.285251617431641,47.50393676757807],[3.339520692825317,47.47926330566412],[3.380385398864803,47.48783111572271],[3.391332387924251,47.50655746459961],[3.449537992477474,47.50387191772461],[3.488276720047053,47.493831634521534],[3.494746446609554,47.52128601074213],[3.514191865921077,47.527225494384815],[3.552142143249569,47.50341033935547],[3.579953908920288,47.497974395751946],[3.583275556564388,47.46149826049799],[3.679358243942318,47.44724273681652],[3.714782238006591,47.4068336486817],[3.738898038864193,47.39682769775396],[3.783302545547543,47.405170440673935],[3.813743352890128,47.38037490844738],[3.864382743835506,47.43432998657232],[3.893396615982112,47.410289764404354],[3.861455440521297,47.39337158203125],[3.871410369873104,47.36717224121088],[3.908792257309074,47.38205718994135],[3.963999271392879,47.365856170654354],[3.972953796386719,47.334999084472656],[4.000779628753719,47.312347412109425],[4.025465965271109,47.313606262207024],[4.048066616058406,47.33953475952154],[4.106085777282772,47.33925628662115]]]},"properties":{"ID_0":79,"ISO":"FR-58","NAME_0":"France","ID_1":6,"NAME_1":"Bourgogne","ID_2":24,"NAME_2":"Nièvre","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.255236148834229,46.979888916015675],[5.26313400268549,46.95352172851562],[5.307367324829102,46.93645858764648],[5.328718662261963,46.88931655883789],[5.360337257385197,46.88433837890631],[5.39160251617443,46.89407348632818],[5.415234565734862,46.861808776855526],[5.459286212921256,46.855243682861385],[5.459489822387809,46.830810546875114],[5.375267505645866,46.82698822021496],[5.328584671020565,46.81291580200201],[5.332496166229362,46.797714233398494],[5.39024829864502,46.770591735839844],[5.366759777069149,46.752395629882926],[5.361726284027213,46.73311233520507],[5.390789508819694,46.726360321045036],[5.42209005355835,46.673030853271484],[5.415008068084717,46.654144287109425],[5.44060134887701,46.63791275024414],[5.413790225982723,46.61464309692383],[5.405690670013541,46.581668853759766],[5.367879867553824,46.56694793701177],[5.359177589416617,46.52014541625982],[5.421061038971061,46.50043869018555],[5.420044422149715,46.48018264770508],[5.373790264129751,46.46044921875],[5.323350906372013,46.46250534057622],[5.310561180114746,46.44677352905285],[5.273676872253474,46.44858932495123],[5.215064048767147,46.46836090087896],[5.201220512390194,46.50782012939458],[5.141041755676383,46.508586883544865],[5.054751396179256,46.48427963256841],[4.980215549469108,46.51520538330078],[4.95371055603033,46.504112243652344],[4.935598850250187,46.51422882080078],[4.915284633636475,46.488235473632926],[4.914447784423942,46.46216201782232],[4.894443511962834,46.44537353515625],[4.888207912445068,46.40298080444336],[4.858530044555607,46.36801528930658],[4.851423263549804,46.32607650756836],[4.810817241668701,46.25454711914068],[4.780213356018123,46.176677703857536],[4.729059219360351,46.1794319152832],[4.721488475799561,46.19683837890625],[4.736181259155217,46.2332000732423],[4.705231189727897,46.25087356567394],[4.707479953765812,46.28470611572277],[4.679780006408805,46.30451583862305],[4.638724803924617,46.30142211914068],[4.617019176483211,46.280620574951286],[4.586510658264274,46.268692016601676],[4.557791709899959,46.29455184936535],[4.537996292114315,46.27025985717779],[4.504000663757324,46.26713943481445],[4.488464355468693,46.28799438476557],[4.435655593872184,46.29940795898449],[4.398757457733154,46.28432083129883],[4.388079643249511,46.21978759765631],[4.363353252410889,46.19856262207031],[4.326642513275203,46.18489456176769],[4.28243160247814,46.156814575195305],[4.245367527008057,46.18822479248058],[4.224992752075252,46.177631378173935],[4.20621538162237,46.19449234008789],[4.1781325340271,46.17368698120117],[4.133393287658691,46.177322387695426],[4.103832244873161,46.19844436645502],[4.059972286224365,46.18845748901373],[4.027487754821777,46.169593811035156],[3.988528490066528,46.169857025146484],[3.965168237686214,46.202865600585994],[3.917106151580754,46.203884124755916],[3.890132427215576,46.2144889831543],[3.908760309219417,46.2606239318847],[3.899533510208187,46.27591323852539],[3.901973485946769,46.29315948486328],[3.947858572006226,46.303672790527344],[3.949013710022029,46.319343566894524],[3.983718633651677,46.31798553466797],[3.991544485092163,46.37041854858404],[3.977568626403865,46.39786911010748],[4.002691268920955,46.44049835205084],[3.998722076416129,46.46490478515631],[3.958134889602718,46.49059295654297],[3.916492223739568,46.49610137939453],[3.892563343048096,46.48088455200207],[3.865262031555119,46.489646911621094],[3.863827466964835,46.51267623901373],[3.837014198303279,46.53160476684581],[3.811745882034359,46.52058410644537],[3.75577640533453,46.536151885986385],[3.741006374359188,46.560218811035156],[3.734557390213013,46.60377883911133],[3.713443994522208,46.61072158813482],[3.695942640304622,46.66140747070324],[3.670168876648006,46.67237472534191],[3.62280178070074,46.740894317626896],[3.629423618316764,46.74945831298834],[3.661100625991821,46.73773574829107],[3.738632917404288,46.75196075439458],[3.783666133880672,46.73604965209966],[3.794654130935669,46.702033996582145],[3.82655239105236,46.703826904296875],[3.844924211502189,46.72198867797863],[3.889191389083862,46.728229522705135],[3.92824363708496,46.74138259887701],[3.963221549987906,46.766029357910156],[4.038512706756649,46.78684997558599],[4.062137126922721,46.78556060791021],[4.048388481140194,46.83795166015625],[4.09092712402355,46.8573379516601],[4.095235347747803,46.87240600585932],[4.06820917129528,46.89682769775385],[4.044686794281063,46.901168823242294],[4.039772987365779,46.94696426391607],[4.053854942321834,46.95977783203125],[4.037143707275391,46.98468780517583],[4.057330608368034,47.01577758789068],[4.071133136749381,47.057842254638786],[4.038853168487663,47.07973861694341],[4.060379028320369,47.120735168457145],[4.115967273712215,47.123336791992244],[4.150014400482235,47.11404418945324],[4.186563968658504,47.13448333740229],[4.181901931762752,47.1505126953125],[4.209834098816032,47.155410766601676],[4.251650333404598,47.131511688232536],[4.276623249053955,47.10799026489263],[4.3493847846986,47.096954345703125],[4.344250679016113,47.07242965698242],[4.402867317199764,47.08227920532238],[4.406283378601188,47.049999237060604],[4.427280426025504,47.040412902832145],[4.489643573760986,47.03200912475586],[4.512144565582389,47.01200485229498],[4.554809093475399,47.02005386352545],[4.547687530517521,46.9953231811524],[4.568143844604435,46.99090576171874],[4.595808506012019,46.95216369628906],[4.678434848785514,46.9304313659669],[4.666216373443604,46.912326812744254],[4.685219764709529,46.90095520019536],[4.744315147399959,46.924434661865234],[4.779335021972599,46.91888427734381],[4.80623197555542,46.93318176269537],[4.893081665039119,46.9514999389649],[4.914753913879451,46.96775817871105],[4.997223377227897,46.96112823486328],[5.003406524658202,46.97214508056652],[5.049303531646785,46.98158645629894],[5.074944972991943,46.961162567138786],[5.164630889892635,46.96423339843756],[5.222071647644157,46.9888534545899],[5.255236148834229,46.979888916015675]]]},"properties":{"ID_0":79,"ISO":"FR-71","NAME_0":"France","ID_1":6,"NAME_1":"Bourgogne","ID_2":25,"NAME_2":"Saône-et-Loire","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.293424129486084,47.92567443847656],[4.264439582824821,47.87150192260748],[4.262689590454102,47.844013214111385],[4.324863433838004,47.84719848632824],[4.319976806640682,47.811428070068416],[4.331032752990779,47.75608825683588],[4.293037891388053,47.73284530639654],[4.260371685028076,47.74061965942388],[4.241387844085807,47.724277496338],[4.265892028808594,47.70395278930664],[4.247804641723576,47.65877532958996],[4.21257829666132,47.62784576416021],[4.172574520111141,47.55081939697277],[4.155973434448242,47.55053329467785],[4.13772010803234,47.51947402954096],[4.11463117599493,47.514755249023544],[4.115965843200684,47.48445892333996],[4.128831863403319,47.47046279907221],[4.119426727295036,47.44355392456066],[4.072978019714355,47.41365051269537],[4.078052997589111,47.38175201416021],[4.10567045211792,47.36601638793951],[4.106085777282772,47.33925628662115],[4.048066616058406,47.33953475952154],[4.025465965271109,47.313606262207024],[4.000779628753719,47.312347412109425],[3.972953796386719,47.334999084472656],[3.963999271392879,47.365856170654354],[3.908792257309074,47.38205718994135],[3.871410369873104,47.36717224121088],[3.861455440521297,47.39337158203125],[3.893396615982112,47.410289764404354],[3.864382743835506,47.43432998657232],[3.813743352890128,47.38037490844738],[3.783302545547543,47.405170440673935],[3.738898038864193,47.39682769775396],[3.714782238006591,47.4068336486817],[3.679358243942318,47.44724273681652],[3.583275556564388,47.46149826049799],[3.579953908920288,47.497974395751946],[3.552142143249569,47.50341033935547],[3.514191865921077,47.527225494384815],[3.494746446609554,47.52128601074213],[3.488276720047053,47.493831634521534],[3.449537992477474,47.50387191772461],[3.391332387924251,47.50655746459961],[3.380385398864803,47.48783111572271],[3.339520692825317,47.47926330566412],[3.285251617431641,47.50393676757807],[3.274682283401603,47.49195480346691],[3.235027551651058,47.48963928222656],[3.204517126083374,47.523193359374936],[3.165190696716365,47.51750183105469],[3.123026609420776,47.5394287109375],[3.11158108711254,47.583896636963004],[3.088024616241512,47.58698654174816],[3.058680772781372,47.56875991821295],[3.017047405242977,47.55782699584961],[2.976537942886353,47.56942749023443],[2.94035530090332,47.59820938110362],[2.93232083320629,47.62704467773443],[2.954234361648616,47.6456871032716],[2.918154954910335,47.66979980468756],[2.924160003662109,47.6824951171875],[2.848968982696647,47.71685028076172],[2.856477022171021,47.76173782348633],[2.912915229797306,47.76938629150401],[2.935591697692928,47.763248443603516],[2.988902330398559,47.786125183105526],[3.023797988891715,47.786373138427734],[3.013874053955135,47.83183670043951],[3.03382396697998,47.8438720703125],[3.011490821838379,47.87509918212885],[3.011818408966121,47.90482330322277],[3.105272054672241,47.94694137573242],[3.128118753433341,47.97251129150402],[3.120845317840689,48.00936126708996],[3.102175712585506,48.022457122802734],[3.095364570617733,48.05397415161133],[3.050471305847225,48.07233428955078],[3.027273178100643,48.130695343017635],[3.013229846954289,48.14347839355469],[2.936314344406241,48.16339111328131],[2.934748649597282,48.17882156372081],[2.971666336059627,48.203411102295036],[3.00599050521862,48.20942306518555],[3.043708086013794,48.27184295654297],[3.01568508148199,48.30731582641607],[3.040571212768554,48.32892990112316],[3.049451351165771,48.360031127929744],[3.098776817321777,48.3577499389649],[3.139868736267147,48.372600555420036],[3.180979967117366,48.374557495117244],[3.204450368881282,48.36420059204112],[3.251020669937133,48.36510086059576],[3.283174753189087,48.38138580322271],[3.310689926147461,48.37291336059576],[3.363938093185482,48.37532424926758],[3.385177135467529,48.39886474609369],[3.414791584015006,48.390274047851506],[3.450114965438956,48.37285232543945],[3.504410505294913,48.365489959716854],[3.545108795166072,48.33454895019542],[3.54390382766735,48.319789886474716],[3.587536334991512,48.29848098754883],[3.582508802414055,48.282840728759766],[3.615187406540031,48.27253723144542],[3.624601602554435,48.25600433349603],[3.601701259613038,48.238765716552734],[3.621602296829224,48.22561264038086],[3.575186491012573,48.188739776611435],[3.59396672248846,48.17869567871105],[3.623548269271965,48.192005157470646],[3.640509605407772,48.1846160888673],[3.667869567871207,48.13921356201183],[3.705728054046688,48.14519882202154],[3.745480060577449,48.16753387451172],[3.76893258094799,48.132854461670036],[3.80165958404541,48.106731414795036],[3.798608064651603,48.086170196533196],[3.826351881027222,48.06351470947277],[3.821979761123771,48.0439186096192],[3.870242118835506,48.01631164550781],[3.839811325073299,48.00389099121093],[3.850027084350529,47.98365783691406],[3.914165973663273,47.975589752197266],[3.902393102645874,47.93829345703125],[3.985625267028922,47.930515289306584],[4.054893970489502,47.93007659912109],[4.089797496795711,47.9439697265625],[4.113698482513371,47.92815780639654],[4.167336463928223,47.96001052856451],[4.223899841308707,47.9484977722168],[4.246209621429443,47.93040847778325],[4.293424129486084,47.92567443847656]]]},"properties":{"ID_0":79,"ISO":"FR-89","NAME_0":"France","ID_1":6,"NAME_1":"Bourgogne","ID_2":26,"NAME_2":"Yonne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.125972986221313,48.606597900390625],[-2.124900341033822,48.59341430664057],[-2.094321966171208,48.57175445556646],[-2.06006908416748,48.57009887695324],[-2.033971071243286,48.55110549926769],[-2.002640008926392,48.568771362304794],[-1.969861030578556,48.5360679626466],[-1.924801707267704,48.54517364501953],[-1.911376714706421,48.51651763916026],[-1.922972083091736,48.49943542480468],[-1.925874710083008,48.45744705200201],[-1.948634743690491,48.446456909179744],[-1.938068509101867,48.41984558105462],[-1.946466326713505,48.367122650146484],[-1.930317640304509,48.34813690185547],[-1.966897368430978,48.34281921386719],[-1.955451130866891,48.31879806518566],[-1.964571714401245,48.30143737792968],[-1.99603271484375,48.296649932861385],[-2.014100551605168,48.279533386230526],[-2.07761549949646,48.29175949096674],[-2.108601808547974,48.25479888916027],[-2.150047063827515,48.2587509155274],[-2.187172174453735,48.24399948120123],[-2.191934585571289,48.20822525024408],[-2.213881969451791,48.21365737915044],[-2.224738121032601,48.17060470581066],[-2.283247947692871,48.14529800415039],[-2.287278413772526,48.133747100830135],[-2.31692886352539,48.13411712646479],[-2.330117702484131,48.120361328125114],[-2.373472452163696,48.12441635131841],[-2.375704765319711,48.1414413452149],[-2.42090916633606,48.173244476318416],[-2.447034358978271,48.172519683838004],[-2.488395690917968,48.15791702270508],[-2.534345626830998,48.15694046020507],[-2.514927625656071,48.131233215332145],[-2.551780462265014,48.095745086669915],[-2.548678874969426,48.076480865478516],[-2.579224109649601,48.06974029541021],[-2.623323917388916,48.036903381347656],[-2.668667554855233,48.046779632568416],[-2.651993036270142,48.11997222900401],[-2.666523694992065,48.132453918457024],[-2.702304124832153,48.11872482299815],[-2.74816632270813,48.11386871337902],[-2.775248765945378,48.0870361328125],[-2.784963607788029,48.122615814208984],[-2.810400485992432,48.14655303955078],[-2.849796772003117,48.141212463378906],[-2.891453027725219,48.16473388671881],[-2.943871259689274,48.171703338623104],[-2.99975323677063,48.16071319580084],[-3.018382072448674,48.19109344482433],[-3.055000066757202,48.20650100708002],[-3.12992525100708,48.19867324829113],[-3.130223274230957,48.17687225341797],[-3.147882223129216,48.1610946655274],[-3.192225217819214,48.16396331787115],[-3.214832305908146,48.15190505981457],[-3.284694433212223,48.14376449584961],[-3.336929321289006,48.1715660095216],[-3.417596340179443,48.1456413269044],[-3.422076940536499,48.17334747314459],[-3.480453729629517,48.18585968017578],[-3.532567739486694,48.17832946777355],[-3.564838886260986,48.18574523925787],[-3.541258335113469,48.20918655395508],[-3.553804874420166,48.24085998535162],[-3.526511907577515,48.2610969543457],[-3.522957086562997,48.28171539306651],[-3.553027868270874,48.29301452636719],[-3.548160314559936,48.31487274169927],[-3.562813997268619,48.347023010253906],[-3.555155277252197,48.37691497802746],[-3.607681751251164,48.38832855224621],[-3.59876799583435,48.42264556884777],[-3.550496101379395,48.447830200195426],[-3.592162609100341,48.464504241943416],[-3.604167461395264,48.494049072265625],[-3.559418916702271,48.52703857421869],[-3.553823709487915,48.54128265380871],[-3.594583034515381,48.58574676513683],[-3.629297494888305,48.58836364746099],[-3.6541810035705,48.61729431152343],[-3.663535594940129,48.653800964355526],[-3.649798393249455,48.66708374023437],[-3.580694913864079,48.67041778564464],[-3.567915916442871,48.685417175293026],[-3.584861040115356,48.719860076904354],[-3.549860954284611,48.73236083984381],[-3.54958510398859,48.746528625488395],[-3.5881929397583,48.77125167846691],[-3.565972089767399,48.80875015258794],[-3.526251077651864,48.83097076416021],[-3.491250038146915,48.82958221435547],[-3.433471918106022,48.813472747802734],[-3.427361965179387,48.798473358154354],[-3.351249933242798,48.8212509155274],[-3.323194026947021,48.8381958007813],[-3.292917966842651,48.831249237060604],[-3.247915983200073,48.857639312744254],[-3.216805934905949,48.86541748046875],[-3.212084054946843,48.84069442749017],[-3.190416097640934,48.83874893188488],[-3.093194961547795,48.8704185485841],[-3.075695991516113,48.85874938964844],[-3.094583034515381,48.834304809570256],[-3.040138959884644,48.820137023925895],[-3.012083053588867,48.822082519531364],[-3.029027938842717,48.784027099609425],[-3.012917041778564,48.76680374145513],[-2.952084064483643,48.76541519165039],[-2.926805973052921,48.70958328247076],[-2.89069390296936,48.69958496093755],[-2.879582881927433,48.67458343505865],[-2.856249094009399,48.67430496215826],[-2.818471908569222,48.65013885498052],[-2.82013797760004,48.594306945800895],[-2.778470993041992,48.585140228271484],[-2.761528015136719,48.56597137451172],[-2.712915897369271,48.55236053466808],[-2.71402907371521,48.523193359375114],[-2.688194990158024,48.50097274780284],[-2.663194894790649,48.53402709960943],[-2.602361917495728,48.55402755737299],[-2.551527976989689,48.59624862670904],[-2.494859933853149,48.609027862548885],[-2.472359895706177,48.6243057250976],[-2.467916011810303,48.65069580078125],[-2.435139894485474,48.652637481689396],[-2.418751001358032,48.64097213745128],[-2.328471899032479,48.6734733581543],[-2.287082910537662,48.66847229003912],[-2.312361001968384,48.63291549682622],[-2.297084093093758,48.62680435180669],[-2.260694980621338,48.645694732666065],[-2.243192911148071,48.62069320678716],[-2.202359914779663,48.58402633666992],[-2.179305076599121,48.57680511474621],[-2.153750896453857,48.616806030273494],[-2.125972986221313,48.606597900390625]]]},"properties":{"ID_0":79,"ISO":"FR-22","NAME_0":"France","ID_1":7,"NAME_1":"Bretagne","ID_2":27,"NAME_2":"Côtes-d'Armor","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Cotes-Du-Nord"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.070693969726506,48.4859733581543],[-5.047083854675293,48.46429443359375],[-5.087360858917236,48.444305419921875],[-5.134028911590462,48.45958328247082],[-5.070693969726506,48.4859733581543]]],[[[-3.649798393249455,48.66708374023437],[-3.663535594940129,48.653800964355526],[-3.6541810035705,48.61729431152343],[-3.629297494888305,48.58836364746099],[-3.594583034515381,48.58574676513683],[-3.553823709487915,48.54128265380871],[-3.559418916702271,48.52703857421869],[-3.604167461395264,48.494049072265625],[-3.592162609100341,48.464504241943416],[-3.550496101379395,48.447830200195426],[-3.59876799583435,48.42264556884777],[-3.607681751251164,48.38832855224621],[-3.555155277252197,48.37691497802746],[-3.562813997268619,48.347023010253906],[-3.548160314559936,48.31487274169927],[-3.553027868270874,48.29301452636719],[-3.522957086562997,48.28171539306651],[-3.526511907577515,48.2610969543457],[-3.553804874420166,48.24085998535162],[-3.541258335113469,48.20918655395508],[-3.564838886260986,48.18574523925787],[-3.620747566223087,48.170978546142685],[-3.671561717987004,48.15147781372076],[-3.696016788482666,48.15201950073242],[-3.73248553276062,48.11294937133795],[-3.70804214477539,48.09815216064459],[-3.701509237289371,48.0648651123048],[-3.674598932266235,48.0549201965332],[-3.641040563583374,47.985794067382805],[-3.554116010665894,47.99188232421875],[-3.497449398040715,47.97672653198242],[-3.479923963546696,47.95079803466808],[-3.417730331420842,47.972167968750114],[-3.393208265304565,47.95728302001964],[-3.388025522231998,47.927036285400504],[-3.411355972289982,47.90480804443371],[-3.403891563415527,47.86838531494151],[-3.449854373931885,47.86132812500011],[-3.457661867141724,47.836631774902344],[-3.485876321792545,47.82529449462902],[-3.518946886062622,47.839061737060604],[-3.538018941879272,47.835231781005916],[-3.519305944442692,47.80306243896484],[-3.532639026641789,47.76652908325195],[-3.55125093460083,47.76235961914074],[-3.688194990158081,47.778751373291016],[-3.735137939453125,47.80347061157238],[-3.757361888885498,47.790416717529354],[-3.83847188949585,47.796806335449276],[-3.895138025283813,47.83291625976573],[-3.90819501876831,47.86458206176758],[-3.95847296714777,47.896526336670036],[-3.98902702331543,47.88208389282226],[-3.9809730052948,47.85374832153326],[-4.042082786560059,47.84652709960937],[-4.080694198608398,47.86458206176758],[-4.128193855285588,47.86375045776361],[-4.162360191345215,47.84986114501958],[-4.160416126251164,47.822917938232536],[-4.191805839538574,47.79541778564453],[-4.294861793518066,47.7918052673341],[-4.346250057220345,47.80014038085932],[-4.37375020980835,47.79430389404302],[-4.390139102935677,47.809860229492294],[-4.346528053283691,47.835414886474666],[-4.362916946411076,47.88930511474615],[-4.423470973968449,47.96291732788097],[-4.451806068420296,47.98152923583979],[-4.541250228881779,48.01263809204107],[-4.559028148651066,47.998748779296875],[-4.643194198608398,48.022914886474666],[-4.698194026947021,48.025138854980526],[-4.713472843170166,48.03291702270519],[-4.716248989105168,48.065418243408196],[-4.672359943389836,48.06180572509777],[-4.536528110504037,48.09013748168957],[-4.488471984863224,48.08736038208008],[-4.477362155914307,48.09708404541027],[-4.434028148651066,48.09736251831066],[-4.417638778686523,48.107360839843864],[-4.375137805938721,48.110694885253906],[-4.306805133819523,48.089305877685604],[-4.28680515289301,48.10347366333019],[-4.274581909179631,48.15569305419922],[-4.316805839538517,48.203750610351555],[-4.361804962158203,48.20597076416027],[-4.378471851348877,48.21847152709972],[-4.465694904327336,48.2379150390625],[-4.490694999694823,48.23569488525396],[-4.51847314834589,48.191249847412045],[-4.550416946411076,48.19402694702154],[-4.561528205871582,48.236526489257926],[-4.618750095367432,48.26680374145508],[-4.570694923400822,48.2823600769044],[-4.579583168029728,48.317916870117244],[-4.545138835906982,48.32513809204095],[-4.551805019378662,48.2940292358399],[-4.51847314834589,48.297916412353516],[-4.494861125945988,48.28180694580078],[-4.449862003326416,48.29319381713873],[-4.40930700302124,48.27597045898448],[-4.367361068725586,48.27791595458996],[-4.309027194976807,48.29735946655273],[-4.255972862243539,48.28152847290039],[-4.230416774749756,48.29624938964838],[-4.287640094757023,48.31375122070324],[-4.32791614532465,48.31513977050781],[-4.305973052978516,48.34263992309581],[-4.365971088409424,48.34458160400396],[-4.371806144714299,48.327083587646484],[-4.440694808959961,48.3265266418457],[-4.444582939147892,48.349861145019524],[-4.422639846801701,48.36708450317394],[-4.435416221618596,48.382915496826286],[-4.501804828643799,48.377082824707145],[-4.532916069030648,48.357917785644524],[-4.552639007568359,48.359027862548885],[-4.608194828033446,48.337638854980405],[-4.680417060852051,48.35569381713867],[-4.709582805633545,48.32986068725597],[-4.769583225250187,48.32791519165045],[-4.781527996063176,48.35402679443371],[-4.762639045715331,48.37874984741211],[-4.796248912811279,48.41430664062494],[-4.78430700302124,48.444026947021484],[-4.760694980621338,48.470138549804794],[-4.780694007873478,48.49514007568371],[-4.776805877685547,48.519584655761825],[-4.750693798065186,48.54402923583984],[-4.705138206481877,48.570693969726676],[-4.612915992736816,48.573192596435604],[-4.547916889190617,48.63597106933593],[-4.522360801696777,48.63680648803705],[-4.502360820770264,48.62152862548834],[-4.463472843170108,48.62736129760748],[-4.429862022399902,48.65319442749034],[-4.395970821380615,48.655693054199276],[-4.346806049346924,48.67708206176758],[-4.324028015136719,48.67708206176758],[-4.275972843170109,48.650417327880916],[-4.224027156829834,48.65347290039073],[-4.190415859222298,48.68430709838867],[-4.116250991821289,48.69625091552734],[-4.042916774749756,48.70291519165045],[-3.992640018463077,48.725692749023494],[-3.963195085525513,48.722637176513615],[-3.97569394111622,48.69874954223644],[-3.968749999999886,48.675415039062614],[-3.917083978652897,48.6731948852539],[-3.897082090377807,48.645694732666065],[-3.857083082199097,48.65124893188488],[-3.856805086135864,48.68624877929699],[-3.84263801574707,48.7073593139649],[-3.815694093704224,48.716526031494084],[-3.781527996063118,48.702362060546875],[-3.737360000610351,48.70958328247076],[-3.684307098388672,48.68847274780285],[-3.656250953674202,48.6973609924317],[-3.649798393249455,48.66708374023437]]]]},"properties":{"ID_0":79,"ISO":"FR-29","NAME_0":"France","ID_1":7,"NAME_1":"Bretagne","ID_2":28,"NAME_2":"Finistère","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.002640008926392,48.568771362304794],[-2.033971071243286,48.55110549926769],[-2.06006908416748,48.57009887695324],[-2.094321966171208,48.57175445556646],[-2.124900341033822,48.59341430664057],[-2.125972986221313,48.606597900390625],[-2.132082939147949,48.638748168945426],[-2.086250066757202,48.63486099243175],[-2.055696010589543,48.640693664550895],[-2.026248931884766,48.616806030273494],[-2.002640008926392,48.568771362304794]]],[[[-1.578202247619629,48.64097213745128],[-1.566049337387028,48.61482620239269],[-1.538887023925781,48.59745788574219],[-1.521005153656006,48.56705474853527],[-1.533109784126225,48.54943847656256],[-1.49573278427124,48.5083122253418],[-1.489947438239994,48.48937606811523],[-1.454089283943119,48.48772430419933],[-1.427751541137695,48.46234893798839],[-1.382966637611389,48.45687484741216],[-1.346532940864563,48.47311782836925],[-1.341414928436279,48.48920822143555],[-1.279003739356995,48.50917816162115],[-1.272910118103027,48.53372192382812],[-1.249492645263672,48.54369735717785],[-1.166723966598511,48.53007888793951],[-1.145708680152893,48.517654418945426],[-1.117276906967163,48.5216522216798],[-1.070164561271667,48.50849533081055],[-1.07739245891571,48.49109649658208],[-1.06464946269989,48.466911315918075],[-1.080219030380249,48.44190216064459],[-1.079734683036747,48.41738128662109],[-1.052792549133244,48.380928039550724],[-1.059720516204834,48.35104370117187],[-1.045829653739929,48.329654693603565],[-1.083227038383427,48.29624176025384],[-1.098671793937683,48.25130844116222],[-1.074356555938607,48.20046997070324],[-1.0782293081283,48.179965972900504],[-1.064167499542236,48.1584930419923],[-1.049132823944035,48.089595794677734],[-1.021497130393925,48.068405151367244],[-1.03355431556696,48.032608032226676],[-1.021712303161621,47.99540328979492],[-1.068830132484436,47.98294830322271],[-1.107516050338688,47.988876342773494],[-1.156194806098938,47.96445465087896],[-1.189162731170654,47.867710113525504],[-1.238251686096191,47.80998992919927],[-1.245882391929626,47.77671813964844],[-1.364081025123596,47.80070114135748],[-1.391528964042664,47.82831954956055],[-1.481872677802983,47.831802368164006],[-1.468448042869511,47.80590438842785],[-1.504019498825073,47.80105972290039],[-1.530422329902535,47.78477859497082],[-1.594141364097595,47.77603149414068],[-1.627131342887822,47.75982666015631],[-1.638130903243905,47.722209930420036],[-1.729713439941293,47.69934082031256],[-1.771608114242554,47.698677062988224],[-1.862789273262024,47.70733261108409],[-1.884930491447392,47.696010589599666],[-1.935304403304997,47.68680572509776],[-1.956328749656621,47.6711883544923],[-1.973400950431824,47.69415283203125],[-2.01228404045105,47.666454315185604],[-2.047413110732975,47.663787841796875],[-2.082051515579167,47.649421691894645],[-2.097035646438542,47.631359100341854],[-2.112425327301025,47.64754486083996],[-2.103850126266423,47.67618942260748],[-2.122663259506226,47.68267059326172],[-2.109456777572518,47.735877990722656],[-2.059859752654915,47.73831558227539],[-2.11009836196888,47.77859878540045],[-2.072891712188721,47.791828155517685],[-2.07046365737915,47.81140518188482],[-2.036044836044255,47.83346176147461],[-2.053929567336979,47.85095214843756],[-2.095195531845036,47.84325790405279],[-2.114176511764526,47.878829956054744],[-2.078951597213688,47.91949081420898],[-2.104672670364323,47.951976776123104],[-2.146601915359497,47.983940124511776],[-2.176728725433293,47.98005294799816],[-2.238196849822884,47.99933624267578],[-2.287538766860961,47.99150466918957],[-2.273288488388062,48.031070709228516],[-2.242425680160522,48.0526008605957],[-2.191350221633854,48.05244827270508],[-2.171431303024292,48.063194274902344],[-2.181674480438232,48.0831413269043],[-2.249160289764347,48.0841178894043],[-2.25633001327509,48.110321044921875],[-2.287278413772526,48.133747100830135],[-2.283247947692871,48.14529800415039],[-2.224738121032601,48.17060470581066],[-2.213881969451791,48.21365737915044],[-2.191934585571289,48.20822525024408],[-2.187172174453735,48.24399948120123],[-2.150047063827515,48.2587509155274],[-2.108601808547974,48.25479888916027],[-2.07761549949646,48.29175949096674],[-2.014100551605168,48.279533386230526],[-1.99603271484375,48.296649932861385],[-1.964571714401245,48.30143737792968],[-1.955451130866891,48.31879806518566],[-1.966897368430978,48.34281921386719],[-1.930317640304509,48.34813690185547],[-1.946466326713505,48.367122650146484],[-1.938068509101867,48.41984558105462],[-1.948634743690491,48.446456909179744],[-1.925874710083008,48.45744705200201],[-1.922972083091736,48.49943542480468],[-1.911376714706421,48.51651763916026],[-1.924801707267704,48.54517364501953],[-1.969861030578556,48.5360679626466],[-1.960973024368286,48.54902648925781],[-2.027360916137695,48.64097213745128],[-1.989583015441837,48.664028167724716],[-1.974583983421325,48.68291854858409],[-1.938472986221313,48.694358825683594],[-1.896528005599976,48.69180679321294],[-1.862082958221436,48.70069503784173],[-1.836526989936829,48.67874908447271],[-1.8626389503479,48.66708374023437],[-1.868749976158142,48.643196105956974],[-1.836248993873596,48.61319351196289],[-1.779304981231633,48.605693817138786],[-1.706527948379517,48.60680389404296],[-1.639307022094726,48.61819458007824],[-1.604027986526489,48.63902664184576],[-1.578202247619629,48.64097213745128]]]]},"properties":{"ID_0":79,"ISO":"FR-35","NAME_0":"France","ID_1":7,"NAME_1":"Bretagne","ID_2":29,"NAME_2":"Ille-et-Vilaine","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-3.252082109451237,47.39097213745117],[-3.193749904632568,47.365970611572266],[-3.155694961547738,47.362640380859375],[-3.14625096321106,47.333473205566406],[-3.103195905685425,47.31569290161138],[-3.057915925979614,47.31180572509777],[-3.074583053588867,47.286529541015625],[-3.137084007263127,47.2870826721192],[-3.175138950347844,47.301250457763786],[-3.21875,47.29319381713873],[-3.2501380443573,47.31652832031256],[-3.264305114746094,47.35208511352545],[-3.252082109451237,47.39097213745117]]],[[[-3.49680495262146,47.65430450439458],[-3.427361965179387,47.64152908325207],[-3.46347188949585,47.6198616027832],[-3.505970954895019,47.63791656494146],[-3.49680495262146,47.65430450439458]]],[[[-2.287278413772526,48.133747100830135],[-2.25633001327509,48.110321044921875],[-2.249160289764347,48.0841178894043],[-2.181674480438232,48.0831413269043],[-2.171431303024292,48.063194274902344],[-2.191350221633854,48.05244827270508],[-2.242425680160522,48.0526008605957],[-2.273288488388062,48.031070709228516],[-2.287538766860961,47.99150466918957],[-2.238196849822884,47.99933624267578],[-2.176728725433293,47.98005294799816],[-2.146601915359497,47.983940124511776],[-2.104672670364323,47.951976776123104],[-2.078951597213688,47.91949081420898],[-2.114176511764526,47.878829956054744],[-2.095195531845036,47.84325790405279],[-2.053929567336979,47.85095214843756],[-2.036044836044255,47.83346176147461],[-2.07046365737915,47.81140518188482],[-2.072891712188721,47.791828155517685],[-2.11009836196888,47.77859878540045],[-2.059859752654915,47.73831558227539],[-2.109456777572518,47.735877990722656],[-2.122663259506226,47.68267059326172],[-2.103850126266423,47.67618942260748],[-2.112425327301025,47.64754486083996],[-2.097035646438542,47.631359100341854],[-2.086480855941772,47.60325622558605],[-2.10252404212946,47.595302581787166],[-2.098851680755615,47.533451080322266],[-2.153398513793945,47.52202606201183],[-2.155189990997314,47.497817993164176],[-2.189703941345158,47.49587631225585],[-2.216831922531128,47.50705718994146],[-2.244283676147461,47.493610382080135],[-2.259483098983708,47.51185226440423],[-2.298099279403687,47.515476226806584],[-2.316133260726929,47.46251678466808],[-2.410409450531006,47.45883178710943],[-2.423027276992798,47.47712326049815],[-2.457982301711979,47.447639465332145],[-2.498193979263305,47.456806182861385],[-2.489027976989746,47.47263717651372],[-2.444581985473633,47.49958419799816],[-2.520694017410221,47.5268058776856],[-2.557917118072453,47.51347351074213],[-2.662360906600952,47.51958465576172],[-2.68069410324091,47.49680709838867],[-2.716804981231689,47.50652694702148],[-2.814028024673405,47.48569488525396],[-2.850972890853882,47.49874877929699],[-2.847081899642944,47.51180648803722],[-2.885138988494816,47.53791809082031],[-2.912360906600952,47.5412483215332],[-2.909027099609261,47.56041717529297],[-2.82013797760004,47.54291534423834],[-2.787637948989868,47.552917480468864],[-2.752917051315251,47.537639617919915],[-2.713193893432617,47.582916259765625],[-2.758749961853027,47.61430740356445],[-2.782083988189697,47.620693206787166],[-2.849307060241699,47.61875152587885],[-2.887548923492432,47.603473663330135],[-2.905694961547852,47.58180618286144],[-2.92736005783081,47.60152816772461],[-2.962639093398991,47.589862823486264],[-2.929582118988037,47.55402755737305],[-2.967638969421329,47.55819320678705],[-3.05124902725214,47.57819366455078],[-3.097917079925537,47.564582824706974],[-3.124583005905151,47.56680679321288],[-3.132917881011963,47.533195495605526],[-3.108472108840942,47.489028930664176],[-3.133471965789738,47.476806640625114],[-3.151804924011117,47.50180435180663],[-3.153194904327393,47.52763748168957],[-3.135694026947021,47.544303894043026],[-3.139859914779663,47.579029083251946],[-3.163471937179565,47.609306335449276],[-3.194859981536808,47.62097167968756],[-3.211527109146061,47.64236068725586],[-3.209027051925659,47.669303894042905],[-3.168194055557137,47.68041610717785],[-3.124305009841919,47.72097396850591],[-3.167360067367497,47.7301406860351],[-3.218472003936711,47.6654167175293],[-3.281528949737492,47.68652725219738],[-3.287360906600895,47.699306488037216],[-3.327362060546875,47.70763778686529],[-3.344027042388859,47.720417022705135],[-3.374305963516235,47.719860076904354],[-3.382637977600041,47.70180511474615],[-3.453192949294987,47.69541549682623],[-3.500972986221313,47.73041534423834],[-3.530972957611084,47.779582977295036],[-3.519305944442692,47.80306243896484],[-3.538018941879272,47.835231781005916],[-3.518946886062622,47.839061737060604],[-3.485876321792545,47.82529449462902],[-3.457661867141724,47.836631774902344],[-3.449854373931885,47.86132812500011],[-3.403891563415527,47.86838531494151],[-3.411355972289982,47.90480804443371],[-3.388025522231998,47.927036285400504],[-3.393208265304565,47.95728302001964],[-3.417730331420842,47.972167968750114],[-3.479923963546696,47.95079803466808],[-3.497449398040715,47.97672653198242],[-3.554116010665894,47.99188232421875],[-3.641040563583374,47.985794067382805],[-3.674598932266235,48.0549201965332],[-3.701509237289371,48.0648651123048],[-3.70804214477539,48.09815216064459],[-3.73248553276062,48.11294937133795],[-3.696016788482666,48.15201950073242],[-3.671561717987004,48.15147781372076],[-3.620747566223087,48.170978546142685],[-3.564838886260986,48.18574523925787],[-3.532567739486694,48.17832946777355],[-3.480453729629517,48.18585968017578],[-3.422076940536499,48.17334747314459],[-3.417596340179443,48.1456413269044],[-3.336929321289006,48.1715660095216],[-3.284694433212223,48.14376449584961],[-3.214832305908146,48.15190505981457],[-3.192225217819214,48.16396331787115],[-3.147882223129216,48.1610946655274],[-3.130223274230957,48.17687225341797],[-3.12992525100708,48.19867324829113],[-3.055000066757202,48.20650100708002],[-3.018382072448674,48.19109344482433],[-2.99975323677063,48.16071319580084],[-2.943871259689274,48.171703338623104],[-2.891453027725219,48.16473388671881],[-2.849796772003117,48.141212463378906],[-2.810400485992432,48.14655303955078],[-2.784963607788029,48.122615814208984],[-2.775248765945378,48.0870361328125],[-2.74816632270813,48.11386871337902],[-2.702304124832153,48.11872482299815],[-2.666523694992065,48.132453918457024],[-2.651993036270142,48.11997222900401],[-2.668667554855233,48.046779632568416],[-2.623323917388916,48.036903381347656],[-2.579224109649601,48.06974029541021],[-2.548678874969426,48.076480865478516],[-2.551780462265014,48.095745086669915],[-2.514927625656071,48.131233215332145],[-2.534345626830998,48.15694046020507],[-2.488395690917968,48.15791702270508],[-2.447034358978271,48.172519683838004],[-2.42090916633606,48.173244476318416],[-2.375704765319711,48.1414413452149],[-2.373472452163696,48.12441635131841],[-2.330117702484131,48.120361328125114],[-2.31692886352539,48.13411712646479],[-2.287278413772526,48.133747100830135]]]]},"properties":{"ID_0":79,"ISO":"FR-56","NAME_0":"France","ID_1":7,"NAME_1":"Bretagne","ID_2":30,"NAME_2":"Morbihan","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.874625205993596,47.52042388916021],[2.931561231613102,47.44067001342785],[2.919770956039486,47.410469055175724],[2.870246887207145,47.34234237670898],[2.882418632507324,47.318023681640625],[2.912961483001766,47.30831909179693],[2.983390808105469,47.25963592529297],[2.979025840759277,47.22906494140636],[2.997741222381705,47.20085144042963],[3.028282880783138,47.12843704223644],[3.031362056732235,47.09288406372076],[3.022240638732967,47.063652038574276],[3.063618421554622,47.046169281005916],[3.074778556823844,47.02999496459972],[3.063970804214534,46.97694396972656],[3.078275442123413,46.953426361083984],[3.050227165222168,46.90915298461913],[3.061144828796444,46.89738082885748],[3.069401502609367,46.852256774902344],[3.057639598846549,46.82513809204107],[3.032068252563477,46.7949104309082],[2.959914684295711,46.80387496948242],[2.880421876907349,46.77003097534191],[2.82748532295227,46.735332489013786],[2.793416023254451,46.73355484008795],[2.774749755859375,46.71895217895519],[2.74379754066473,46.73054885864269],[2.730642080307064,46.747993469238395],[2.704833030700797,46.73903656005871],[2.677795410156364,46.70461273193359],[2.631837844848746,46.672203063964844],[2.570550680160579,46.659267425537045],[2.593100547790471,46.6465797424317],[2.57738041877758,46.60673141479498],[2.598460674285832,46.595310211181754],[2.611052274704036,46.55150985717773],[2.536651849746761,46.519710540771484],[2.48292875289917,46.53269577026373],[2.44614839553833,46.52104568481445],[2.368300199508724,46.51843643188482],[2.305465459823608,46.47543334960949],[2.284665584564265,46.45135879516596],[2.2810475826264,46.42040634155284],[2.197830677032584,46.42829895019537],[2.167785644531193,46.42407608032238],[2.151401996612492,46.457698822021484],[2.19319391250616,46.47064208984381],[2.203788518905583,46.489494323730526],[2.15870022773754,46.5573463439942],[2.167145252227783,46.5889892578125],[2.184614181518612,46.60256576538097],[2.189446687698364,46.642139434814446],[2.166748523712101,46.64732742309576],[2.137272119522094,46.672313690185604],[2.155447959899959,46.69216156005854],[2.065751314163264,46.74249649047857],[2.114007234573421,46.77537536621094],[2.104204654693717,46.79355239868164],[2.071567773819083,46.80985260009759],[2.047998666763363,46.83233261108404],[2.077816724777335,46.838005065918026],[2.08796310424799,46.86588287353527],[2.140070199966431,46.88984680175787],[2.154965162277279,46.91167449951183],[2.110318660736141,46.91316604614257],[2.070684909820613,46.93402481079107],[2.070202827453727,46.954421997070256],[2.090839385986328,46.966690063476555],[2.096888780593929,47.01241302490228],[2.029379844665584,47.04553222656256],[2.055652856826782,47.07672119140625],[2.0462903976441,47.10606002807623],[2.026691198348942,47.103324890136776],[1.996660113334656,47.126998901367294],[1.963139772415161,47.12417984008795],[1.920261263847408,47.10403442382818],[1.88306808471691,47.100513458252],[1.828447580337524,47.121303558349666],[1.774451494216976,47.130756378173764],[1.842237114906311,47.17758178710932],[1.839079260826224,47.21930694580089],[1.875333309173641,47.207077026367244],[1.902768850326538,47.21515655517572],[1.915639042854423,47.23418426513683],[1.895493149757385,47.25480270385742],[1.922685146331787,47.26385498046875],[1.941373109817448,47.29006195068371],[1.996609449386596,47.26575088500987],[2.026877880096549,47.268302917480526],[2.07332634925848,47.28466415405284],[2.132894754409733,47.28119277954113],[2.157150983810482,47.30021286010748],[2.119390726089478,47.33343124389654],[2.126704454422111,47.345417022705135],[2.102738618850765,47.391616821289055],[2.188242435455379,47.435699462890625],[2.204829216003532,47.406078338623104],[2.243691682815609,47.41482543945324],[2.238214492797795,47.46894073486334],[2.247745037078857,47.49173355102544],[2.219440460205078,47.49544525146489],[2.214491367340145,47.52042770385736],[2.193774938583317,47.54856872558588],[2.131381988525447,47.550697326660156],[2.119575262069759,47.58295059204113],[2.156289577484074,47.6010475158692],[2.239213705062923,47.62097930908209],[2.28963232040411,47.62905502319341],[2.37268948555004,47.58544158935547],[2.438079357147274,47.60977172851574],[2.490300893783626,47.571773529052734],[2.550065517425594,47.574703216552784],[2.592984199523983,47.55813598632812],[2.612017631530819,47.52639007568371],[2.655870914459229,47.510395050048885],[2.6576087474823,47.49005889892578],[2.686362028121948,47.483188629150504],[2.727407455444335,47.498893737793026],[2.723601579666251,47.523376464843864],[2.76255822181696,47.52495574951171],[2.7975208759309,47.49734115600597],[2.826261997222844,47.49807357788097],[2.874625205993596,47.52042388916021]]]},"properties":{"ID_0":79,"ISO":"FR-18","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":31,"NAME_2":"Cher","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.922148942947331,48.457599639892635],[1.939015626907405,48.42216110229498],[1.977244138717765,48.39916610717773],[1.987355947494563,48.363811492920036],[1.97061991691595,48.33999252319347],[1.982344508171138,48.32831573486328],[1.959227204322872,48.308689117431754],[1.994084715843314,48.28658676147472],[1.965903282165584,48.254444122314446],[1.962595343589726,48.222595214843864],[1.976353526115417,48.20060729980474],[1.971245884895438,48.17812728881836],[1.937050342559928,48.16909790039068],[1.89946806430811,48.12756347656256],[1.889713525772095,48.10558700561535],[1.828698396682853,48.080074310302734],[1.748593330383357,48.066146850585994],[1.67796707153326,48.0661506652832],[1.655995726585388,48.075317382812614],[1.62168562412262,48.06387710571289],[1.62123167514801,48.04832077026373],[1.591873407363892,48.03075408935546],[1.545306921005249,48.04458999633788],[1.514657258987427,48.02857208251959],[1.52012383937847,47.98227691650402],[1.441395878791809,48.01163101196289],[1.43724095821392,47.976497650146484],[1.407286286354179,47.970497131347656],[1.386946320533752,47.98128128051758],[1.370015859603996,47.95375061035156],[1.349708318710327,47.96344757080078],[1.308631062507573,47.95376205444347],[1.299580097198429,47.96816253662121],[1.265399932861385,47.9628639221192],[1.248007178306523,47.97857666015631],[1.205214977264518,47.96863937377941],[1.163611531257743,48.02854156494146],[1.124885797500724,48.035285949707145],[1.106606602668819,48.06079101562505],[1.112233281135616,48.08073043823248],[1.064873099327144,48.08575820922863],[1.009408950805721,48.08415985107421],[0.992331385612431,48.09591293334961],[1.044489502906799,48.118564605713004],[1.008922100067139,48.13171386718756],[0.955081343650875,48.10048294067383],[0.944029271602574,48.112380981445256],[0.888905465602931,48.1022682189942],[0.841217219829502,48.10306167602544],[0.850372314453239,48.13307952880865],[0.914338350296134,48.13584899902344],[0.884465754032135,48.161842346191406],[0.840574383735657,48.165531158447266],[0.797655463218746,48.19446182250988],[0.829446434974784,48.21136856079107],[0.787321388721409,48.26144409179693],[0.797485589981136,48.291446685791016],[0.756839871406612,48.30046463012701],[0.785431504249573,48.34043502807617],[0.827866911888236,48.3423118591308],[0.907346844673157,48.37010192871094],[0.948381423950252,48.40164566040039],[0.955576777458305,48.445301055908146],[0.935709059238548,48.4755096435548],[0.953055024147034,48.48015594482421],[0.967740058898983,48.52388000488287],[0.924195051193237,48.538040161132926],[0.925711214542389,48.55965423583979],[0.867284238338584,48.57394409179699],[0.849312484264487,48.585941314697266],[0.84590852260601,48.609016418457145],[0.822398364544028,48.60887527465826],[0.82356470823288,48.650665283203125],[0.814819097519035,48.67016983032237],[0.862586736679077,48.68807601928722],[0.876703202724457,48.71559143066412],[0.921202719211578,48.709178924560604],[0.963956236839408,48.726345062255916],[1.01592493057251,48.72905349731451],[1.063026547431946,48.75896835327154],[1.113736271858272,48.74630355834961],[1.118686676025391,48.78296279907226],[1.152118086814937,48.785739898681754],[1.162975311279354,48.76930999755859],[1.246022224426326,48.76967620849609],[1.258414506912231,48.7580299377442],[1.296934962272587,48.76801300048834],[1.327389359474182,48.760437011718864],[1.37680900096899,48.791938781738395],[1.356839895248527,48.81558609008789],[1.359781384468192,48.83119583129883],[1.404821634292716,48.86071395874034],[1.457628130912781,48.87151718139654],[1.470635771751517,48.898002624511825],[1.447959303855896,48.92464065551757],[1.461308479309139,48.9375572204591],[1.501523852348441,48.94105529785162],[1.538249373435974,48.92169189453125],[1.563741922378483,48.89062881469738],[1.546231389045658,48.872436523437614],[1.582962155342102,48.85749816894536],[1.590482711792049,48.817333221435604],[1.57701563835144,48.78525161743164],[1.584907293319702,48.76329803466808],[1.624960064888057,48.749031066894645],[1.582495450973624,48.70430374145519],[1.611295104026908,48.688457489013786],[1.602706551551819,48.66309738159191],[1.640838384628353,48.64488983154308],[1.666354537010307,48.61370849609381],[1.715143442153931,48.613147735595646],[1.709252834320068,48.57802581787109],[1.761452198028564,48.57168960571295],[1.787245035171622,48.55374526977545],[1.776842474937439,48.512874603271484],[1.802130699157658,48.468093872070256],[1.834566354751644,48.46723556518548],[1.847221136093196,48.44667434692383],[1.904506683349609,48.44026184082031],[1.922148942947331,48.457599639892635]]]},"properties":{"ID_0":79,"ISO":"FR-28","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":32,"NAME_2":"Eure-et-Loir","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.32666552066803,47.186225891113274],[1.343526721000728,47.17355346679699],[1.363751530647278,47.13508605957031],[1.355669379234257,47.10847854614258],[1.317499756813106,47.1029510498048],[1.276096940040588,47.04080581665045],[1.23222029209137,47.01414489746093],[1.181068658828792,47.041042327880916],[1.160983085632324,47.0393638610841],[1.077615499496517,47.0158424377442],[1.056375980377197,46.9964370727539],[1.058043956756592,46.94968032836919],[1.03743505477911,46.94206237792969],[1.033831596374569,46.90735244750988],[1.010198593139648,46.83528137207031],[1.008930087089595,46.81444549560547],[0.985331594944114,46.801651000976506],[1.011689782142696,46.7578125],[0.982563257217407,46.76254653930669],[0.961023986339569,46.7400016784668],[0.907236635685081,46.75813674926763],[0.867468893528041,46.74821853637701],[0.813353598117885,46.79167938232433],[0.807996571063938,46.829139709472656],[0.753422677516937,46.86058425903326],[0.704670250415916,46.90288543701183],[0.706179261207637,46.936107635498104],[0.690171778202,46.974979400634766],[0.623983800411168,46.99368667602539],[0.618489921092987,47.00751495361328],[0.566949963569641,47.002540588378906],[0.573683023452759,46.983386993408196],[0.598804414272422,46.97492218017584],[0.598205327987671,46.95642852783209],[0.505189836025238,46.95991134643554],[0.44480341672903,46.94115829467784],[0.438709646463394,46.929580688476676],[0.364629656076374,46.94856643676769],[0.325352251529807,46.93094253540045],[0.310568571090698,46.9397087097168],[0.298205822706223,46.97126388549816],[0.309935390949306,47.028030395507926],[0.298426210880223,47.05397796630871],[0.264221280813217,47.046432495117244],[0.243871793151015,47.07094955444341],[0.208198502659798,47.05323791503906],[0.176861792802754,47.07371902465832],[0.200456321239585,47.091678619384766],[0.181687563657874,47.115356445312614],[0.161916881799812,47.1001091003418],[0.132102236151695,47.121391296386776],[0.07807111740118,47.12374114990246],[0.053739786148071,47.16461181640619],[0.072875916957969,47.21449279785162],[0.082382224500179,47.28687286376947],[0.117462240159625,47.33234405517584],[0.147298365831432,47.34537506103526],[0.153859853744621,47.363094329833984],[0.182142674923,47.38194274902349],[0.153864458203259,47.39872741699224],[0.180943384766579,47.416603088378906],[0.180874109268188,47.453224182128906],[0.220109254121724,47.50195312500005],[0.224843129515648,47.52727890014659],[0.20008730888361,47.543167114257926],[0.214089363813343,47.568786621093686],[0.234568119049129,47.57861328125006],[0.230001732707024,47.608398437500114],[0.259114831686077,47.61230087280279],[0.275411963462943,47.59910202026372],[0.322103917598724,47.59523773193371],[0.339106649160442,47.57973861694347],[0.378483653068656,47.56852722167974],[0.402577012777385,47.57851409912104],[0.364557266235408,47.62207031250006],[0.382787764072475,47.643104553222706],[0.422197550535316,47.61956405639659],[0.451411038637104,47.62145614624029],[0.461177259683552,47.64380645751953],[0.49841791391384,47.64476394653332],[0.593340694904441,47.671844482421875],[0.614431202411652,47.69421386718756],[0.62878125906002,47.708030700683594],[0.674774110317287,47.69901275634777],[0.712153255939597,47.68181228637695],[0.735651314258632,47.6955451965332],[0.787170708179417,47.680828094482536],[0.834168910980225,47.67693328857416],[0.85935032367712,47.66671752929693],[0.844708025455589,47.645111083984375],[0.864282011985892,47.59982681274414],[0.899154901504573,47.60371780395513],[0.919604957103672,47.63275527954112],[0.991789221763725,47.62002563476568],[0.987656772136745,47.591167449951286],[1.033352494239864,47.60700988769536],[1.076556801795959,47.561901092529354],[1.045035123825187,47.531574249267635],[1.068831562996024,47.51947402954096],[1.068855047226066,47.50299453735357],[1.093745589256343,47.47048568725585],[1.133366107940731,47.44895172119152],[1.110523343086356,47.40863037109375],[1.122414112091121,47.35507202148443],[1.094853281974906,47.328536987304744],[1.108126759529114,47.29840850830084],[1.131214499473685,47.29454040527344],[1.162064194679374,47.27220535278326],[1.223335146903935,47.29417800903332],[1.294761538505611,47.23598861694347],[1.32666552066803,47.186225891113274]]]},"properties":{"ID_0":79,"ISO":"FR-37","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":33,"NAME_2":"Indre-et-Loire","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.839079260826224,47.21930694580089],[1.842237114906311,47.17758178710932],[1.774451494216976,47.130756378173764],[1.828447580337524,47.121303558349666],[1.88306808471691,47.100513458252],[1.920261263847408,47.10403442382818],[1.963139772415161,47.12417984008795],[1.996660113334656,47.126998901367294],[2.026691198348942,47.103324890136776],[2.0462903976441,47.10606002807623],[2.055652856826782,47.07672119140625],[2.029379844665584,47.04553222656256],[2.096888780593929,47.01241302490228],[2.090839385986328,46.966690063476555],[2.070202827453727,46.954421997070256],[2.070684909820613,46.93402481079107],[2.110318660736141,46.91316604614257],[2.154965162277279,46.91167449951183],[2.140070199966431,46.88984680175787],[2.08796310424799,46.86588287353527],[2.077816724777335,46.838005065918026],[2.047998666763363,46.83233261108404],[2.071567773819083,46.80985260009759],[2.104204654693717,46.79355239868164],[2.114007234573421,46.77537536621094],[2.065751314163264,46.74249649047857],[2.155447959899959,46.69216156005854],[2.137272119522094,46.672313690185604],[2.166748523712101,46.64732742309576],[2.189446687698364,46.642139434814446],[2.184614181518612,46.60256576538097],[2.167145252227783,46.5889892578125],[2.15870022773754,46.5573463439942],[2.203788518905583,46.489494323730526],[2.19319391250616,46.47064208984381],[2.151401996612492,46.457698822021484],[2.167785644531193,46.42407608032238],[2.072452068328857,46.420108795166016],[1.993082404136771,46.43091583251953],[1.97875273227703,46.44152450561529],[1.926118493080196,46.4319114685058],[1.818454504013062,46.43142318725591],[1.798244357109127,46.454906463623104],[1.747590184211731,46.45001983642584],[1.75973749160778,46.42748641967785],[1.750548720359859,46.40559387207037],[1.709384679794368,46.393428802490234],[1.683602571487427,46.41817855834955],[1.641089677810726,46.38558959960943],[1.600772142410335,46.41961669921875],[1.546187400817871,46.395931243896534],[1.543673634529227,46.41649627685558],[1.510587811469975,46.41925811767578],[1.436632752418518,46.356006622314446],[1.415190458297786,46.347217559814396],[1.40700268745428,46.362640380859375],[1.344678044319153,46.4015998840332],[1.310512185096854,46.37437438964855],[1.250655889511222,46.376750946045036],[1.217970013618583,46.36825561523449],[1.177279949188346,46.38395309448248],[1.213065862655753,46.43308258056646],[1.150917053222713,46.45029830932623],[1.135514140129146,46.47089004516607],[1.149143099784908,46.50221252441406],[1.090093851089591,46.537582397460994],[1.020409345626888,46.53714752197265],[1.01476442813879,46.56776428222667],[0.990254223346767,46.56590270996088],[0.941367268562374,46.58087921142583],[0.915865302085876,46.5966300964356],[0.894059300422668,46.62862396240246],[0.915637850761413,46.65067291259771],[0.902261495590153,46.67766571044916],[0.924812436103878,46.700218200683594],[0.898324728012142,46.73579788208008],[0.867468893528041,46.74821853637701],[0.907236635685081,46.75813674926763],[0.961023986339569,46.7400016784668],[0.982563257217407,46.76254653930669],[1.011689782142696,46.7578125],[0.985331594944114,46.801651000976506],[1.008930087089595,46.81444549560547],[1.010198593139648,46.83528137207031],[1.033831596374569,46.90735244750988],[1.03743505477911,46.94206237792969],[1.058043956756592,46.94968032836919],[1.056375980377197,46.9964370727539],[1.077615499496517,47.0158424377442],[1.160983085632324,47.0393638610841],[1.181068658828792,47.041042327880916],[1.23222029209137,47.01414489746093],[1.276096940040588,47.04080581665045],[1.317499756813106,47.1029510498048],[1.355669379234257,47.10847854614258],[1.363751530647278,47.13508605957031],[1.343526721000728,47.17355346679699],[1.32666552066803,47.186225891113274],[1.392843484878483,47.20869445800781],[1.421207785606384,47.22916412353521],[1.48293578624731,47.238677978515625],[1.534446120262203,47.22359085083019],[1.523952603340149,47.25534057617193],[1.593135595321769,47.274417877197266],[1.649460911750907,47.271484375],[1.6657009124757,47.2588882446289],[1.700437664985657,47.264080047607365],[1.715820074081478,47.276821136474716],[1.776110768318233,47.23138427734375],[1.79582071304327,47.23781967163086],[1.839079260826224,47.21930694580089]]]},"properties":{"ID_0":79,"ISO":"FR-36","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":34,"NAME_2":"Indre","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.52012383937847,47.98227691650402],[1.56481862068182,47.989772796630966],[1.55595600605011,47.95531463623052],[1.526237845420894,47.94464111328131],[1.525423526763916,47.929115295410156],[1.579184412956351,47.903530120849666],[1.583626508712825,47.86848831176769],[1.535838484764156,47.838520050048935],[1.540854215622005,47.81701278686535],[1.570240736007804,47.796718597412166],[1.547817349433956,47.76953506469721],[1.596397399902344,47.7430877685548],[1.629261851310787,47.75941085815441],[1.673132181167659,47.73947906494151],[1.712264776229801,47.732616424560604],[1.746726393699703,47.65675354003906],[1.811414957046565,47.65250778198247],[1.845385670661983,47.659362792968864],[1.86585891246807,47.675949096679794],[1.937186121940726,47.67758178710943],[1.942070364952144,47.66182708740246],[1.995229840278739,47.66426086425787],[2.008922815322876,47.67745590209961],[2.064654111862183,47.67486190795904],[2.074550151824951,47.68215179443365],[2.149203538894767,47.67074584960943],[2.203685283660889,47.67854690551752],[2.24070930480957,47.64125823974604],[2.239213705062923,47.62097930908209],[2.156289577484074,47.6010475158692],[2.119575262069759,47.58295059204113],[2.131381988525447,47.550697326660156],[2.193774938583317,47.54856872558588],[2.214491367340145,47.52042770385736],[2.219440460205078,47.49544525146489],[2.247745037078857,47.49173355102544],[2.238214492797795,47.46894073486334],[2.243691682815609,47.41482543945324],[2.204829216003532,47.406078338623104],[2.188242435455379,47.435699462890625],[2.102738618850765,47.391616821289055],[2.126704454422111,47.345417022705135],[2.119390726089478,47.33343124389654],[2.157150983810482,47.30021286010748],[2.132894754409733,47.28119277954113],[2.07332634925848,47.28466415405284],[2.026877880096549,47.268302917480526],[1.996609449386596,47.26575088500987],[1.941373109817448,47.29006195068371],[1.922685146331787,47.26385498046875],[1.895493149757385,47.25480270385742],[1.915639042854423,47.23418426513683],[1.902768850326538,47.21515655517572],[1.875333309173641,47.207077026367244],[1.839079260826224,47.21930694580089],[1.79582071304327,47.23781967163086],[1.776110768318233,47.23138427734375],[1.715820074081478,47.276821136474716],[1.700437664985657,47.264080047607365],[1.6657009124757,47.2588882446289],[1.649460911750907,47.271484375],[1.593135595321769,47.274417877197266],[1.523952603340149,47.25534057617193],[1.534446120262203,47.22359085083019],[1.48293578624731,47.238677978515625],[1.421207785606384,47.22916412353521],[1.392843484878483,47.20869445800781],[1.32666552066803,47.186225891113274],[1.294761538505611,47.23598861694347],[1.223335146903935,47.29417800903332],[1.162064194679374,47.27220535278326],[1.131214499473685,47.29454040527344],[1.108126759529114,47.29840850830084],[1.094853281974906,47.328536987304744],[1.122414112091121,47.35507202148443],[1.110523343086356,47.40863037109375],[1.133366107940731,47.44895172119152],[1.093745589256343,47.47048568725585],[1.068855047226066,47.50299453735357],[1.068831562996024,47.51947402954096],[1.045035123825187,47.531574249267635],[1.076556801795959,47.561901092529354],[1.033352494239864,47.60700988769536],[0.987656772136745,47.591167449951286],[0.991789221763725,47.62002563476568],[0.919604957103672,47.63275527954112],[0.899154901504573,47.60371780395513],[0.864282011985892,47.59982681274414],[0.844708025455589,47.645111083984375],[0.85935032367712,47.66671752929693],[0.834168910980225,47.67693328857416],[0.787170708179417,47.680828094482536],[0.735651314258632,47.6955451965332],[0.712153255939597,47.68181228637695],[0.674774110317287,47.69901275634777],[0.62878125906002,47.708030700683594],[0.614431202411652,47.69421386718756],[0.580315470695552,47.71237945556652],[0.608728349208832,47.72529983520507],[0.626330792904014,47.75135803222656],[0.651199519634361,47.75511932373058],[0.712824046611843,47.7904891967774],[0.768412888050079,47.83110809326172],[0.77385222911829,47.850646972656364],[0.759813487529868,47.89809036254877],[0.786997556686458,47.91175079345703],[0.810550570487976,47.90824127197277],[0.81634867191309,47.93427658081066],[0.845574200153408,47.95390319824219],[0.820382893085536,47.98803329467779],[0.840563178062439,48.019035339355526],[0.794879317283744,48.04693222045904],[0.803562462329921,48.07159805297863],[0.843022644519806,48.0726432800293],[0.841217219829502,48.10306167602544],[0.888905465602931,48.1022682189942],[0.944029271602574,48.112380981445256],[0.955081343650875,48.10048294067383],[1.008922100067139,48.13171386718756],[1.044489502906799,48.118564605713004],[0.992331385612431,48.09591293334961],[1.009408950805721,48.08415985107421],[1.064873099327144,48.08575820922863],[1.112233281135616,48.08073043823248],[1.106606602668819,48.06079101562505],[1.124885797500724,48.035285949707145],[1.163611531257743,48.02854156494146],[1.205214977264518,47.96863937377941],[1.248007178306523,47.97857666015631],[1.265399932861385,47.9628639221192],[1.299580097198429,47.96816253662121],[1.308631062507573,47.95376205444347],[1.349708318710327,47.96344757080078],[1.370015859603996,47.95375061035156],[1.386946320533752,47.98128128051758],[1.407286286354179,47.970497131347656],[1.43724095821392,47.976497650146484],[1.441395878791809,48.01163101196289],[1.52012383937847,47.98227691650402]]]},"properties":{"ID_0":79,"ISO":"FR-41","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":35,"NAME_2":"Loir-et-Cher","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.402664184570369,48.320720672607536],[2.420761823654232,48.299251556396484],[2.420108795166072,48.26670455932623],[2.484178543090877,48.23897171020508],[2.506191730499268,48.23853683471691],[2.523010969162044,48.19876098632824],[2.461097478866577,48.13820648193365],[2.522209644317684,48.12521362304687],[2.537505388259887,48.14051818847662],[2.577867984771729,48.131782531738395],[2.639666080474854,48.1389503479005],[2.664748191833552,48.120540618896484],[2.706547021865958,48.12482070922863],[2.755198240280208,48.14565277099614],[2.780977487564087,48.16736221313488],[2.820879936218375,48.12966537475586],[2.866823434829769,48.15603637695324],[2.936314344406241,48.16339111328131],[3.013229846954289,48.14347839355469],[3.027273178100643,48.130695343017635],[3.050471305847225,48.07233428955078],[3.095364570617733,48.05397415161133],[3.102175712585506,48.022457122802734],[3.120845317840689,48.00936126708996],[3.128118753433341,47.97251129150402],[3.105272054672241,47.94694137573242],[3.011818408966121,47.90482330322277],[3.011490821838379,47.87509918212885],[3.03382396697998,47.8438720703125],[3.013874053955135,47.83183670043951],[3.023797988891715,47.786373138427734],[2.988902330398559,47.786125183105526],[2.935591697692928,47.763248443603516],[2.912915229797306,47.76938629150401],[2.856477022171021,47.76173782348633],[2.848968982696647,47.71685028076172],[2.924160003662109,47.6824951171875],[2.918154954910335,47.66979980468756],[2.954234361648616,47.6456871032716],[2.93232083320629,47.62704467773443],[2.94035530090332,47.59820938110362],[2.976537942886353,47.56942749023443],[2.958658218383789,47.55738067626953],[2.914297342300529,47.56597137451172],[2.897469282150382,47.554344177246094],[2.856629610061646,47.55141067504888],[2.851701736450252,47.53526687622082],[2.874625205993596,47.52042388916021],[2.826261997222844,47.49807357788097],[2.7975208759309,47.49734115600597],[2.76255822181696,47.52495574951171],[2.723601579666251,47.523376464843864],[2.727407455444335,47.498893737793026],[2.686362028121948,47.483188629150504],[2.6576087474823,47.49005889892578],[2.655870914459229,47.510395050048885],[2.612017631530819,47.52639007568371],[2.592984199523983,47.55813598632812],[2.550065517425594,47.574703216552784],[2.490300893783626,47.571773529052734],[2.438079357147274,47.60977172851574],[2.37268948555004,47.58544158935547],[2.28963232040411,47.62905502319341],[2.239213705062923,47.62097930908209],[2.24070930480957,47.64125823974604],[2.203685283660889,47.67854690551752],[2.149203538894767,47.67074584960943],[2.074550151824951,47.68215179443365],[2.064654111862183,47.67486190795904],[2.008922815322876,47.67745590209961],[1.995229840278739,47.66426086425787],[1.942070364952144,47.66182708740246],[1.937186121940726,47.67758178710943],[1.86585891246807,47.675949096679794],[1.845385670661983,47.659362792968864],[1.811414957046565,47.65250778198247],[1.746726393699703,47.65675354003906],[1.712264776229801,47.732616424560604],[1.673132181167659,47.73947906494151],[1.629261851310787,47.75941085815441],[1.596397399902344,47.7430877685548],[1.547817349433956,47.76953506469721],[1.570240736007804,47.796718597412166],[1.540854215622005,47.81701278686535],[1.535838484764156,47.838520050048935],[1.583626508712825,47.86848831176769],[1.579184412956351,47.903530120849666],[1.525423526763916,47.929115295410156],[1.526237845420894,47.94464111328131],[1.55595600605011,47.95531463623052],[1.56481862068182,47.989772796630966],[1.52012383937847,47.98227691650402],[1.514657258987427,48.02857208251959],[1.545306921005249,48.04458999633788],[1.591873407363892,48.03075408935546],[1.62123167514801,48.04832077026373],[1.62168562412262,48.06387710571289],[1.655995726585388,48.075317382812614],[1.67796707153326,48.0661506652832],[1.748593330383357,48.066146850585994],[1.828698396682853,48.080074310302734],[1.889713525772095,48.10558700561535],[1.89946806430811,48.12756347656256],[1.937050342559928,48.16909790039068],[1.971245884895438,48.17812728881836],[1.976353526115417,48.20060729980474],[1.962595343589726,48.222595214843864],[1.965903282165584,48.254444122314446],[1.994084715843314,48.28658676147472],[2.043235778808537,48.28616714477545],[2.052708387374878,48.295475006103565],[2.161589384079093,48.29843521118158],[2.154723405838013,48.314529418945426],[2.182797908783016,48.323879241943416],[2.207089424133358,48.344944000244254],[2.269118309021052,48.315048217773494],[2.300207614898795,48.3112411499024],[2.312424421310481,48.33011627197271],[2.369945526123104,48.308673858642635],[2.402664184570369,48.320720672607536]]]},"properties":{"ID_0":79,"ISO":"FR-45","NAME_0":"France","ID_1":8,"NAME_1":"Centre","ID_2":36,"NAME_2":"Loiret","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.393536567688045,49.61708831787103],[5.377237319946346,49.59262084960948],[5.339980602264347,49.594188690185604],[5.308170795440731,49.56284713745117],[5.262710094452018,49.54182052612315],[5.234343528747672,49.56909179687506],[5.15988731384283,49.56669235229492],[5.145609378814754,49.58919525146496],[5.119714736938476,49.592678070068416],[5.09607982635498,49.55778503417969],[5.097719669342097,49.53364562988287],[5.059871673583984,49.504707336425895],[5.109860420227051,49.45624923706054],[5.100886344909725,49.44083404541027],[5.115028381347599,49.42058181762695],[5.084472179412899,49.4045867919923],[5.104149341583308,49.38977813720703],[5.088621616363525,49.369625091552734],[5.055816173553467,49.35943603515625],[5.027099609374943,49.33561325073253],[5.030794143676758,49.30817031860363],[5.05663633346569,49.29336547851574],[5.051180839538688,49.27405166625971],[5.011029243469238,49.26928710937505],[4.950989246368464,49.23686599731445],[4.913374900817985,49.26471710205084],[4.882242679596061,49.2576522827149],[4.86183691024786,49.238849639892635],[4.827131271362418,49.23530960083019],[4.744232177734318,49.24147415161133],[4.690096378326416,49.25748443603521],[4.670503139495963,49.24124145507818],[4.622180461883545,49.23657608032232],[4.606979846954459,49.26883697509765],[4.577483654022217,49.29552459716797],[4.541319370269889,49.286479949951165],[4.454542636871451,49.27601242065429],[4.425334453582764,49.28073883056646],[4.390817642212027,49.298797607421875],[4.375618934631348,49.32380676269537],[4.353710651397762,49.31654739379894],[4.308294296264705,49.32660293579107],[4.247956275940055,49.38080215454113],[4.201307773590088,49.38379287719732],[4.188997268676871,49.39870071411138],[4.143169879913387,49.4041976928712],[4.047973155975342,49.40564346313488],[4.037578582763729,49.438083648681584],[4.06140995025646,49.446731567382926],[4.042112350463867,49.47072601318365],[4.040711879730338,49.50853347778325],[4.074503898620605,49.51858520507818],[4.075648307800293,49.53895950317394],[4.051908016204777,49.54507446289068],[4.076769828796387,49.57072067260748],[4.064444065094051,49.59411621093756],[4.026275157928524,49.61992263793951],[4.050554752349853,49.63492965698242],[4.115690231323356,49.63326263427746],[4.12702131271368,49.67792129516607],[4.185269355774039,49.69887161254883],[4.191380977630615,49.71564483642589],[4.225406169891471,49.727275848388665],[4.242039203643742,49.765468597412166],[4.206332206726131,49.779621124267635],[4.233669757843018,49.84868621826172],[4.249004364013672,49.85695648193364],[4.255733966827506,49.90397644042969],[4.217773914337158,49.91625595092768],[4.233068466186523,49.95782470703131],[4.310615062713623,49.968570709228516],[4.349362373352051,49.952232360839844],[4.380828857421989,49.95372009277355],[4.445803642272892,49.93716812133795],[4.511319160461426,49.94680786132824],[4.540829181671199,49.9682350158692],[4.595972061157283,49.98596191406244],[4.633237838745116,49.98746490478527],[4.686140537261963,50.00494384765631],[4.697027683258057,50.0592880249024],[4.681884288787899,50.067626953125],[4.702781200408936,50.095653533935604],[4.751345634460563,50.111740112304744],[4.765172958373967,50.13739395141607],[4.802541255950985,50.1510620117188],[4.874876022338867,50.15338516235351],[4.872434616088924,50.092166900634766],[4.840224266052302,50.092983245849666],[4.840087890625057,50.04034423828125],[4.820602416992244,50.02365493774414],[4.815224170684871,49.9924812316895],[4.79558706283575,49.982219696045036],[4.790924072265739,49.95839691162115],[4.84519624710083,49.948928833007926],[4.878683567047176,49.921905517578125],[4.88287687301647,49.898448944091854],[4.851549625396841,49.86268997192383],[4.873641490936222,49.81897354125971],[4.85510158538824,49.79457092285162],[4.931437492370605,49.78670883178722],[4.955675601959342,49.80054092407226],[4.991471767425594,49.80022048950201],[5.014911651611385,49.77950668334961],[5.069024562835693,49.761581420898494],[5.089717388153133,49.76479339599615],[5.143624305725211,49.709281921386776],[5.166208267211914,49.692916870117244],[5.208661079406738,49.69443511962896],[5.246232032775993,49.68694305419921],[5.26838397979742,49.69595336914068],[5.332622051239127,49.65350341796886],[5.346857547760067,49.63084411621094],[5.393536567688045,49.61708831787103]]]},"properties":{"ID_0":79,"ISO":"FR-08","NAME_0":"France","ID_1":9,"NAME_1":"Champagne-Ardenne","ID_2":37,"NAME_2":"Ardennes","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.670183181762752,48.53188705444347],[4.653469085693416,48.47055816650401],[4.635781764984245,48.456611633300895],[4.673884868621826,48.444129943847656],[4.716525077819824,48.39434432983409],[4.760187625885123,48.3876113891601],[4.754580497741813,48.366546630859425],[4.84147119522089,48.339462280273494],[4.814217567443961,48.32300949096691],[4.850845336914176,48.29625320434576],[4.842941284179744,48.28351593017578],[4.851517200470084,48.22941207885742],[4.839345455169735,48.21566772460943],[4.862336158752441,48.198181152343864],[4.838845252990835,48.16885757446295],[4.85009384155279,48.141578674316406],[4.828601360321102,48.12907791137695],[4.81497955322277,48.10356521606445],[4.731874465942496,48.11944961547857],[4.69115781784069,48.07195281982422],[4.723154544830379,48.045761108398544],[4.704238414764518,48.02024078369151],[4.67296028137207,48.015018463134766],[4.616806983947867,48.03137588500987],[4.578579425811824,48.02833938598644],[4.53577423095703,48.006565093994254],[4.559968948364315,47.97142410278326],[4.495481967926082,47.968048095703125],[4.446962356567383,47.956199645996094],[4.416409969329834,47.96820068359375],[4.352546691894588,47.95663070678722],[4.312801837921086,47.962497711181754],[4.293424129486084,47.92567443847656],[4.246209621429443,47.93040847778325],[4.223899841308707,47.9484977722168],[4.167336463928223,47.96001052856451],[4.113698482513371,47.92815780639654],[4.089797496795711,47.9439697265625],[4.054893970489502,47.93007659912109],[3.985625267028922,47.930515289306584],[3.902393102645874,47.93829345703125],[3.914165973663273,47.975589752197266],[3.850027084350529,47.98365783691406],[3.839811325073299,48.00389099121093],[3.870242118835506,48.01631164550781],[3.821979761123771,48.0439186096192],[3.826351881027222,48.06351470947277],[3.798608064651603,48.086170196533196],[3.80165958404541,48.106731414795036],[3.76893258094799,48.132854461670036],[3.745480060577449,48.16753387451172],[3.705728054046688,48.14519882202154],[3.667869567871207,48.13921356201183],[3.640509605407772,48.1846160888673],[3.623548269271965,48.192005157470646],[3.59396672248846,48.17869567871105],[3.575186491012573,48.188739776611435],[3.621602296829224,48.22561264038086],[3.601701259613038,48.238765716552734],[3.624601602554435,48.25600433349603],[3.615187406540031,48.27253723144542],[3.582508802414055,48.282840728759766],[3.587536334991512,48.29848098754883],[3.54390382766735,48.319789886474716],[3.545108795166072,48.33454895019542],[3.504410505294913,48.365489959716854],[3.450114965438956,48.37285232543945],[3.414791584015006,48.390274047851506],[3.420679807663021,48.41545104980463],[3.392912864685059,48.42522048950207],[3.405714035034237,48.453289031982536],[3.384093523025626,48.47802734375],[3.434908628463745,48.49685287475585],[3.405398130416927,48.52802276611328],[3.450707197189331,48.52866744995117],[3.482364177703857,48.54980850219738],[3.46551609039318,48.570484161376946],[3.508512735366821,48.605510711670036],[3.555613756179866,48.6202850341798],[3.579891920089722,48.604858398437436],[3.60424447059637,48.572452545166065],[3.631398916244507,48.57156372070318],[3.643639326095695,48.53626251220709],[3.73176097869873,48.53754425048828],[3.796300172805786,48.527961730957145],[3.825896024704036,48.51517486572277],[3.8521764278413,48.52502059936535],[3.86383414268505,48.570049285888615],[3.898482322692985,48.575649261474666],[3.90842437744152,48.601753234863395],[3.949240207672176,48.60343170166021],[4.001695632934684,48.66388320922846],[4.044291019439754,48.66095352172857],[4.062843799591008,48.671817779541065],[4.079788208007869,48.701126098632926],[4.13109111785883,48.68614959716797],[4.177518367767391,48.708072662353565],[4.23304080963146,48.70231246948248],[4.296804428100643,48.71316909790045],[4.326948165893612,48.697410583496094],[4.333541870117301,48.674083709716854],[4.318393707275504,48.64973831176769],[4.33128738403326,48.629821777343864],[4.31491756439209,48.61621856689459],[4.392437934875602,48.56742095947277],[4.423309803009147,48.55414581298828],[4.495280742645376,48.538722991943466],[4.557946681976374,48.54247283935558],[4.592934131622314,48.55233764648443],[4.670183181762752,48.53188705444347]]]},"properties":{"ID_0":79,"ISO":"FR-10","NAME_0":"France","ID_1":9,"NAME_1":"Champagne-Ardenne","ID_2":38,"NAME_2":"Aube","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.98842811584467,48.684429168701286],[5.006401062011776,48.61138916015625],[5.032918930053825,48.61355590820318],[5.05173921585083,48.632911682128906],[5.070285797119254,48.595924377441406],[5.117875099182242,48.58689117431652],[5.143528461456356,48.563133239746094],[5.165067672729548,48.56534194946288],[5.229124546051139,48.5307731628418],[5.272637367248535,48.514316558838004],[5.327370643615723,48.50932312011718],[5.349470138549861,48.48198699951183],[5.398074150085505,48.47318649291992],[5.409501552581787,48.44554138183605],[5.445930480957145,48.424839019775504],[5.470061779022159,48.42092895507823],[5.409779071807861,48.392620086670036],[5.442883968353385,48.37938690185558],[5.418554782867432,48.36069488525402],[5.426048278808651,48.33106231689459],[5.474495887756404,48.354568481445426],[5.526526927947941,48.34685516357422],[5.533514022827148,48.325103759765625],[5.58552980422985,48.280433654785156],[5.611651897430534,48.29181671142589],[5.653809070587158,48.26852416992193],[5.640901088714656,48.242355346679744],[5.710844039916992,48.219936370849666],[5.730982780456486,48.18970108032238],[5.680172920227107,48.1786727905274],[5.685355663299674,48.150619506835994],[5.656557559967098,48.120552062988395],[5.633142948150692,48.08429718017589],[5.692103862762508,48.07552719116211],[5.740804195404166,48.049011230468864],[5.776419162750244,48.02240753173828],[5.794785022735596,47.99679565429682],[5.778491973876896,47.978008270263615],[5.788412094116325,47.952697753906364],[5.833769321441594,47.959617614746094],[5.884726524353084,47.926048278808594],[5.883190155029411,47.90024948120117],[5.851327419281063,47.90592575073242],[5.821859836578426,47.86911010742193],[5.828521251678467,47.85194778442382],[5.761191844940186,47.85934448242193],[5.748488426208495,47.8297691345216],[5.73142862319952,47.817634582519645],[5.698266029358024,47.82335662841808],[5.676611423492375,47.77915954589838],[5.70729303359991,47.76771926879888],[5.709419727325553,47.74494934082037],[5.689648151397762,47.733901977539176],[5.688783168792781,47.684780120849666],[5.596813678741569,47.67164611816406],[5.583657264709586,47.70088195800787],[5.567389488220329,47.707122802734375],[5.530594348907471,47.674007415771484],[5.482769966125545,47.68464279174815],[5.469339847564811,47.67483139038091],[5.406486034393367,47.67362213134771],[5.374919891357422,47.62135696411133],[5.374078750610465,47.604541778564396],[5.306356430053768,47.60727691650402],[5.256230354309196,47.5765495300293],[5.236942291259879,47.61677551269537],[5.211390972137451,47.64165878295904],[5.173409938812313,47.653533935546875],[5.160201072692814,47.678153991699276],[5.12756538391119,47.64847183227539],[5.046803951263428,47.67556762695324],[5.056238174438533,47.6948127746582],[4.971371173858756,47.69023513793945],[4.954513549804744,47.70288848876953],[4.971535205841064,47.731079101562614],[4.958989620208854,47.761875152588004],[4.924775123596248,47.760623931884766],[4.917957782745475,47.77709579467779],[4.986103057861385,47.80359649658203],[4.994125366210938,47.819747924804794],[4.961502075195312,47.84057235717779],[4.954094409942741,47.86676788330078],[4.905961036682243,47.916469573974666],[4.874586105346737,47.91952133178716],[4.856782436370906,47.895633697509766],[4.834023952484131,47.90679550170904],[4.86520957946783,47.941562652588004],[4.845032691955566,47.9604263305664],[4.787781238556022,47.96525573730474],[4.789420604705867,48.007869720459034],[4.749530792236328,48.00431060791021],[4.704238414764518,48.02024078369151],[4.723154544830379,48.045761108398544],[4.69115781784069,48.07195281982422],[4.731874465942496,48.11944961547857],[4.81497955322277,48.10356521606445],[4.828601360321102,48.12907791137695],[4.85009384155279,48.141578674316406],[4.838845252990835,48.16885757446295],[4.862336158752441,48.198181152343864],[4.839345455169735,48.21566772460943],[4.851517200470084,48.22941207885742],[4.842941284179744,48.28351593017578],[4.850845336914176,48.29625320434576],[4.814217567443961,48.32300949096691],[4.84147119522089,48.339462280273494],[4.754580497741813,48.366546630859425],[4.760187625885123,48.3876113891601],[4.716525077819824,48.39434432983409],[4.673884868621826,48.444129943847656],[4.635781764984245,48.456611633300895],[4.653469085693416,48.47055816650401],[4.670183181762752,48.53188705444347],[4.724835872650146,48.54140853881847],[4.799180507659969,48.52978897094738],[4.768135547638053,48.59343719482422],[4.85437917709362,48.612709045410156],[4.84196138381958,48.649665832519645],[4.77262115478527,48.65181732177734],[4.798326015472526,48.677494049072266],[4.867775917053279,48.66720581054699],[4.911001682281437,48.68885040283209],[4.98842811584467,48.684429168701286]]]},"properties":{"ID_0":79,"ISO":"FR-52","NAME_0":"France","ID_1":9,"NAME_1":"Champagne-Ardenne","ID_2":39,"NAME_2":"Haute-Marne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.047973155975342,49.40564346313488],[4.143169879913387,49.4041976928712],[4.188997268676871,49.39870071411138],[4.201307773590088,49.38379287719732],[4.247956275940055,49.38080215454113],[4.308294296264705,49.32660293579107],[4.353710651397762,49.31654739379894],[4.375618934631348,49.32380676269537],[4.390817642212027,49.298797607421875],[4.425334453582764,49.28073883056646],[4.454542636871451,49.27601242065429],[4.541319370269889,49.286479949951165],[4.577483654022217,49.29552459716797],[4.606979846954459,49.26883697509765],[4.622180461883545,49.23657608032232],[4.670503139495963,49.24124145507818],[4.690096378326416,49.25748443603521],[4.744232177734318,49.24147415161133],[4.827131271362418,49.23530960083019],[4.86183691024786,49.238849639892635],[4.882242679596061,49.2576522827149],[4.913374900817985,49.26471710205084],[4.950989246368464,49.23686599731445],[4.970838069915885,49.23553466796881],[4.991859436035156,49.21083831787109],[4.942377567291203,49.18677139282232],[4.996342658996582,49.106502532959034],[5.010010719299316,49.03468704223633],[5.035267353057975,49.02256011962885],[5.037756443023738,48.97412490844732],[5.030943393707389,48.954326629638786],[4.973320007324219,48.92886734008789],[4.936209201812743,48.92214202880865],[4.913592338562069,48.89767837524425],[4.912255764007568,48.869461059570305],[4.935492515564079,48.840499877929744],[4.88876104354864,48.81721115112316],[4.893365383148193,48.796958923339844],[4.93437576293951,48.790588378906364],[4.989574909210205,48.742046356201286],[5.009220123291128,48.741390228271484],[4.98842811584467,48.684429168701286],[4.911001682281437,48.68885040283209],[4.867775917053279,48.66720581054699],[4.798326015472526,48.677494049072266],[4.77262115478527,48.65181732177734],[4.84196138381958,48.649665832519645],[4.85437917709362,48.612709045410156],[4.768135547638053,48.59343719482422],[4.799180507659969,48.52978897094738],[4.724835872650146,48.54140853881847],[4.670183181762752,48.53188705444347],[4.592934131622314,48.55233764648443],[4.557946681976374,48.54247283935558],[4.495280742645376,48.538722991943466],[4.423309803009147,48.55414581298828],[4.392437934875602,48.56742095947277],[4.31491756439209,48.61621856689459],[4.33128738403326,48.629821777343864],[4.318393707275504,48.64973831176769],[4.333541870117301,48.674083709716854],[4.326948165893612,48.697410583496094],[4.296804428100643,48.71316909790045],[4.23304080963146,48.70231246948248],[4.177518367767391,48.708072662353565],[4.13109111785883,48.68614959716797],[4.079788208007869,48.701126098632926],[4.062843799591008,48.671817779541065],[4.044291019439754,48.66095352172857],[4.001695632934684,48.66388320922846],[3.949240207672176,48.60343170166021],[3.90842437744152,48.601753234863395],[3.898482322692985,48.575649261474666],[3.86383414268505,48.570049285888615],[3.8521764278413,48.52502059936535],[3.825896024704036,48.51517486572277],[3.796300172805786,48.527961730957145],[3.73176097869873,48.53754425048828],[3.643639326095695,48.53626251220709],[3.631398916244507,48.57156372070318],[3.60424447059637,48.572452545166065],[3.579891920089722,48.604858398437436],[3.555613756179866,48.6202850341798],[3.492137432098446,48.64695739746105],[3.476752996444645,48.63752746582031],[3.442698001861629,48.67250442504883],[3.470862388610783,48.687267303466854],[3.467395544052181,48.738628387451286],[3.397129535675049,48.7613983154298],[3.409984111786002,48.78372192382824],[3.442154169082642,48.784854888916016],[3.444479703903311,48.81180191040045],[3.485241413116455,48.825504302978516],[3.485187530517635,48.851909637451286],[3.528576374054012,48.91213989257812],[3.566684484481755,48.91349411010747],[3.574443340301457,48.939025878906186],[3.601246356964168,48.946681976318416],[3.621205806732291,48.9660301208496],[3.639824628830069,49.00399780273443],[3.677718877792415,49.01602935791027],[3.650133132934627,49.041358947753956],[3.614683628082332,49.03355026245117],[3.58520412445074,49.038867950439396],[3.587706327438468,49.05934906005871],[3.63224029541027,49.086090087890625],[3.610413551330624,49.12749862670904],[3.624456405639705,49.15135192871094],[3.683834791183471,49.15449142456055],[3.70329737663269,49.14320373535162],[3.748676300048942,49.15853118896496],[3.751147747039851,49.177700042724716],[3.706489801406974,49.180316925048885],[3.676669836044368,49.20726394653331],[3.654800891876278,49.21294784545904],[3.67701888084423,49.23708343505871],[3.655254602432365,49.26285171508789],[3.643261671066341,49.29588317871087],[3.669160604476986,49.324748992920036],[3.736195564270019,49.33555221557623],[3.803095340728873,49.35882186889654],[3.851309537887687,49.344944000244254],[3.859844207763786,49.38152313232416],[3.910301685333252,49.39533233642584],[3.924819469451961,49.4077262878419],[3.961308956146183,49.37734603881841],[3.986643791198787,49.37892150878906],[4.01272869110113,49.358306884765625],[4.035496234893799,49.35990524291992],[4.047973155975342,49.40564346313488]]]},"properties":{"ID_0":79,"ISO":"FR-51","NAME_0":"France","ID_1":9,"NAME_1":"Champagne-Ardenne","ID_2":40,"NAME_2":"Marne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.402084350585994,41.859306335449325],[9.406526565551815,41.81708526611334],[9.394583702087402,41.79819488525396],[9.408473014831598,41.76652908325189],[9.401249885559139,41.69235992431646],[9.372362136840875,41.67930603027344],[9.386804580688477,41.66041564941406],[9.35513877868658,41.643196105957145],[9.319581985473746,41.60514068603515],[9.368472099304142,41.59597396850597],[9.331526756286735,41.56013870239269],[9.2968044281007,41.540695190429744],[9.275138854980412,41.5040283203125],[9.284861564636287,41.47847366333019],[9.266249656677303,41.470417022705135],[9.229026794433594,41.426250457763786],[9.259584426879883,41.41347122192394],[9.236249923706055,41.394027709960994],[9.2209730148316,41.36791610717773],[9.17986202239996,41.36541748046881],[9.165416717529297,41.385417938232536],[9.09069538116455,41.39902877807617],[9.10541629791254,41.42847061157232],[9.090970993042049,41.44569396972662],[9.027638435363883,41.46263885498047],[8.992918014526424,41.48374938964855],[8.92319488525402,41.494583129882926],[8.890693664550838,41.50819396972656],[8.854027748107853,41.53625106811529],[8.78569507598877,41.564304351806754],[8.78125,41.58486175537103],[8.79458332061779,41.62458419799816],[8.851248741150016,41.648193359375],[8.878195762634219,41.651805877685604],[8.877915382385252,41.69597244262695],[8.844026565551815,41.69652938842768],[8.812359809875488,41.71458435058594],[8.783193588256779,41.708473205566406],[8.772084236145133,41.74124908447277],[8.722915649414176,41.72375106811534],[8.682916641235465,41.74708175659174],[8.712917327880973,41.760692596435604],[8.749305725097656,41.81180572509777],[8.774306297302246,41.81236267089855],[8.789583206176701,41.85235977172845],[8.785138130187988,41.87958145141613],[8.804306030273494,41.89236068725597],[8.783193588256779,41.92541503906256],[8.74041652679449,41.91902923583978],[8.718470573425293,41.9073600769043],[8.64124965667736,41.9098625183106],[8.594305992126522,41.965972900390625],[8.647638320922965,41.96847152709972],[8.668749809265194,41.983196258545036],[8.65541744232172,42.010139465332145],[8.685694694519043,42.02763748168957],[8.714583396911621,42.029861450195305],[8.747916221618594,42.05014038085943],[8.721805572509822,42.07263946533209],[8.70930480957037,42.09902954101574],[8.688195228576717,42.11041641235363],[8.664304733276479,42.10625076293945],[8.623750686645565,42.12236022949219],[8.57923412322998,42.15763854980463],[8.582082748413143,42.17847061157238],[8.570416450500543,42.20458221435547],[8.573748588562012,42.23930740356457],[8.604305267334041,42.250137329101506],[8.688195228576717,42.2634735107423],[8.686248779296932,42.282638549804744],[8.65819454193121,42.302082061767685],[8.607083320617788,42.30791854858404],[8.627361297607422,42.331806182861385],[8.601248741149846,42.35291671752929],[8.561528205871525,42.332084655761776],[8.551251411437988,42.3448600769043],[8.574238777160701,42.3801383972168],[8.57404804229742,42.38042831420904],[8.60111141204834,42.370136260986385],[8.63709831237793,42.37284088134765],[8.683479309081974,42.34803009033203],[8.714449882507267,42.34845352172863],[8.756263732910213,42.33844375610357],[8.771169662475529,42.32540893554693],[8.820055007934682,42.316665649414176],[8.86145114898676,42.32962799072277],[8.860726356506348,42.29912567138683],[8.904767990112362,42.2538681030274],[8.923216819763127,42.256607055664176],[8.948619842529354,42.23402404785161],[8.97232627868658,42.23233032226568],[9.023251533508414,42.20357513427746],[9.045742988586483,42.20772933959961],[9.04812240600586,42.17570877075195],[9.065062522888296,42.16587829589844],[9.092106819152946,42.11672210693365],[9.123633384704704,42.10540390014654],[9.133687973022518,42.090553283691406],[9.131868362426815,42.052871704101676],[9.16021156311035,42.02680206298828],[9.22108459472662,42.02760696411144],[9.215611457824707,41.994953155517635],[9.226045608520508,41.9722137451173],[9.213279724121149,41.91746139526367],[9.246355056762809,41.90930557250982],[9.227497100830192,41.85559082031256],[9.30909538269043,41.832145690918026],[9.377328872680721,41.86607742309582],[9.402084350585994,41.859306335449325]]]},"properties":{"ID_0":79,"ISO":"FR-2A","NAME_0":"France","ID_1":10,"NAME_1":"Corse","ID_2":41,"NAME_2":"Corse-du-Sud","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.57404804229742,42.38042831420904],[8.60819530487072,42.38735961914068],[8.605417251586971,42.41624832153326],[8.661526679992676,42.42514038085943],[8.676527976989803,42.476249694824276],[8.664584159851131,42.51263809204113],[8.704306602478027,42.52680587768548],[8.729027748107967,42.563194274902344],[8.75736045837408,42.57041549682623],[8.7837495803833,42.55680465698242],[8.803471565246637,42.569305419921875],[8.809860229492244,42.605140686035156],[8.869029045105037,42.607917785644645],[8.879584312438965,42.62930679321295],[8.92125129699707,42.63902664184575],[8.947639465331974,42.63319396972656],[9.020416259765682,42.643196105957145],[9.060138702392578,42.66125106811535],[9.053194046020508,42.68208312988287],[9.123472213745117,42.73263931274414],[9.16763877868658,42.73708343505854],[9.202083587646541,42.725418090820426],[9.256806373596305,42.718750000000114],[9.259028434753418,42.70124816894531],[9.285415649414176,42.67541503906256],[9.322360038757324,42.69652938842784],[9.321249961853141,42.71486282348627],[9.345137596130371,42.73513793945324],[9.337362289428766,42.765693664550724],[9.34263992309576,42.79708480834961],[9.309582710266055,42.8337516784668],[9.330416679382381,42.871250152588004],[9.332638740539663,42.906250000000114],[9.354582786560115,42.91652679443371],[9.35875129699707,42.94402694702154],[9.345693588256836,42.95819473266613],[9.343194007873592,43.00041580200195],[9.418471336364803,43.012084960937614],[9.461251258850153,42.98819351196283],[9.456804275512695,42.951248168945426],[9.469305038452148,42.936248779296875],[9.491805076599121,42.79375076293951],[9.47124862670904,42.769027709960994],[9.44680595397949,42.68652725219732],[9.449305534362907,42.657917022705135],[9.475418090820256,42.622917175293026],[9.510416030883789,42.589862823486385],[9.52763843536377,42.56486129760748],[9.534028053283691,42.5179176330567],[9.529583930969295,42.48875045776373],[9.540972709655762,42.455970764160156],[9.541251182556152,42.420139312744254],[9.532361984253043,42.381526947021484],[9.539306640624943,42.33680725097662],[9.559862136840877,42.284862518310604],[9.552914619445914,42.2426376342774],[9.559306144714412,42.197360992431754],[9.55486202239996,42.124305725097656],[9.535971641540584,42.092082977295036],[9.45736026763916,42.00208282470708],[9.4004163742066,41.94708251953125],[9.415693283081055,41.93319320678722],[9.397640228271598,41.880416870117244],[9.402084350585994,41.859306335449325],[9.377328872680721,41.86607742309582],[9.30909538269043,41.832145690918026],[9.227497100830192,41.85559082031256],[9.246355056762809,41.90930557250982],[9.213279724121149,41.91746139526367],[9.226045608520508,41.9722137451173],[9.215611457824707,41.994953155517635],[9.22108459472662,42.02760696411144],[9.16021156311035,42.02680206298828],[9.131868362426815,42.052871704101676],[9.133687973022518,42.090553283691406],[9.123633384704704,42.10540390014654],[9.092106819152946,42.11672210693365],[9.065062522888296,42.16587829589844],[9.04812240600586,42.17570877075195],[9.045742988586483,42.20772933959961],[9.023251533508414,42.20357513427746],[8.97232627868658,42.23233032226568],[8.948619842529354,42.23402404785161],[8.923216819763127,42.256607055664176],[8.904767990112362,42.2538681030274],[8.860726356506348,42.29912567138683],[8.86145114898676,42.32962799072277],[8.820055007934682,42.316665649414176],[8.771169662475529,42.32540893554693],[8.756263732910213,42.33844375610357],[8.714449882507267,42.34845352172863],[8.683479309081974,42.34803009033203],[8.63709831237793,42.37284088134765],[8.60111141204834,42.370136260986385],[8.57404804229742,42.38042831420904]]]},"properties":{"ID_0":79,"ISO":"FR-2B","NAME_0":"France","ID_1":10,"NAME_1":"Corse","ID_2":42,"NAME_2":"Haute-Corse","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.807005405426082,47.562801361083984],[6.816659927368163,47.54792404174805],[6.903906822204533,47.54837417602545],[6.925321578979549,47.519527435302734],[6.90761041641241,47.49455642700195],[6.939178943634033,47.43370056152355],[6.94000339508051,47.4097061157226],[6.883793830871696,47.371337890625114],[6.920492649078426,47.35556411743169],[6.999339103698844,47.36487197875982],[7.048191547393799,47.36053085327154],[7.060264110565186,47.34188461303722],[7.043934345245304,47.32695770263671],[7.009734630584717,47.32435607910162],[7.008409500122127,47.30272674560547],[6.94091892242443,47.2866325378418],[6.955122947692928,47.24316024780273],[6.88216066360485,47.20095825195318],[6.844374179840145,47.172069549560604],[6.85295581817627,47.159931182861435],[6.802145957946834,47.129459381103516],[6.740549564361629,47.10703659057623],[6.696344375610408,47.06650924682617],[6.715973854064998,47.05102920532221],[6.654189586639404,47.022373199463],[6.6339111328125,46.998569488525504],[6.505959033966178,46.96612930297862],[6.496685981750488,46.97418975830084],[6.433014392852839,46.92781829833989],[6.464538574218749,46.88991165161133],[6.459761142730655,46.85159301757824],[6.441891670226994,46.83004760742199],[6.434491157531738,46.802383422851676],[6.457247257232666,46.78857040405284],[6.424077033996809,46.754516601562614],[6.342652797699031,46.71078109741211],[6.270490646362305,46.68319320678716],[6.267798423767033,46.67675399780285],[6.17513704299921,46.613979339599666],[6.137713909149284,46.596374511718864],[6.112953662872371,46.57511901855469],[6.138108730316162,46.55765914916992],[6.131093502044791,46.553573608398494],[6.048566818237418,46.6077232360841],[6.059153556823958,46.6248512268067],[6.103265285492,46.65248870849603],[6.071210861206112,46.687568664550895],[6.137484550476074,46.72386550903332],[6.180197715759391,46.74144363403332],[6.2065749168396,46.76633834838873],[6.152239799499569,46.81953048706055],[6.105555057525692,46.84529876708996],[6.062986373901367,46.85820007324224],[6.023230552673454,46.85335922241216],[6.008435726165885,46.895561218261776],[5.981950283050594,46.90820693969726],[5.997221946716365,46.933498382568466],[5.965485095977782,46.94744873046881],[5.979788780212346,46.96347808837896],[5.968590736389102,46.980281829833984],[5.924782276153678,46.9810676574707],[5.907691478729305,46.9995994567871],[5.840656757354736,47.00851440429693],[5.791865825653132,47.022640228271484],[5.749513626098633,47.017242431640625],[5.750931262970027,47.040668487548885],[5.784717082977295,47.05491256713867],[5.768988609314078,47.090038299560604],[5.790199756622314,47.10229110717785],[5.816596984863281,47.13479614257818],[5.81146764755249,47.16905212402344],[5.779403686523438,47.19277191162115],[5.761384010314998,47.19418716430669],[5.720454216003532,47.22004318237305],[5.718945980072021,47.241474151611385],[5.698726177215576,47.26500701904297],[5.735195636749324,47.26343917846685],[5.795302391052359,47.28969573974621],[5.845067501068115,47.300891876220646],[5.926703929901123,47.344760894775334],[6.023554801941032,47.33235168457037],[6.038896083831787,47.34491348266613],[6.079537868499756,47.354652404785156],[6.082015991211051,47.3717155456543],[6.106090545654353,47.3832359313966],[6.168869972229004,47.391719818115234],[6.177622318267822,47.41604232788097],[6.260834693908691,47.4284934997558],[6.334475517272949,47.50600051879882],[6.368082523346061,47.51349258422857],[6.389786720275879,47.506156921386776],[6.411148548126334,47.52189636230469],[6.460669040680045,47.51244354248052],[6.47582912445074,47.49525070190424],[6.50056934356695,47.51025009155279],[6.517722129821777,47.496669769287166],[6.573512077331543,47.4954948425293],[6.581558227539175,47.540985107421875],[6.627004623413143,47.529846191406364],[6.670176029205379,47.55789947509777],[6.740108489990291,47.55680084228515],[6.781101703643742,47.53636550903326],[6.807005405426082,47.562801361083984]]]},"properties":{"ID_0":79,"ISO":"FR-25","NAME_0":"France","ID_1":11,"NAME_1":"Franche-Comté","ID_2":43,"NAME_2":"Doubs","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.823538780212459,47.813053131103516],[6.786245822906607,47.7822875976563],[6.757638454437256,47.747879028320256],[6.759074211120605,47.72280883789068],[6.7801513671875,47.68976974487316],[6.777236938476675,47.66598510742193],[6.798334598541487,47.64399719238281],[6.785643100738582,47.611358642578125],[6.807005405426082,47.562801361083984],[6.781101703643742,47.53636550903326],[6.740108489990291,47.55680084228515],[6.670176029205379,47.55789947509777],[6.627004623413143,47.529846191406364],[6.581558227539175,47.540985107421875],[6.573512077331543,47.4954948425293],[6.517722129821777,47.496669769287166],[6.50056934356695,47.51025009155279],[6.47582912445074,47.49525070190424],[6.460669040680045,47.51244354248052],[6.411148548126334,47.52189636230469],[6.389786720275879,47.506156921386776],[6.368082523346061,47.51349258422857],[6.334475517272949,47.50600051879882],[6.260834693908691,47.4284934997558],[6.177622318267822,47.41604232788097],[6.168869972229004,47.391719818115234],[6.106090545654353,47.3832359313966],[6.082015991211051,47.3717155456543],[6.079537868499756,47.354652404785156],[6.038896083831787,47.34491348266613],[6.023554801941032,47.33235168457037],[5.926703929901123,47.344760894775334],[5.845067501068115,47.300891876220646],[5.795302391052359,47.28969573974621],[5.735195636749324,47.26343917846685],[5.698726177215576,47.26500701904297],[5.676645278930664,47.27572250366205],[5.642305374145508,47.256191253662166],[5.601314067840633,47.260204315185604],[5.533237934112605,47.286529541015625],[5.518538951873779,47.3041877746582],[5.474295139312744,47.31529617309576],[5.495005130767878,47.34143447875982],[5.496919155120906,47.38854980468749],[5.451393604278508,47.38397216796875],[5.430425643921012,47.421356201171875],[5.441021919250544,47.44655990600597],[5.379534244537297,47.466140747070426],[5.399215698242131,47.49901580810547],[5.447459697723332,47.496200561523494],[5.496639728546255,47.54713058471673],[5.478564262390194,47.60538482666026],[5.425594806671143,47.63207244873058],[5.39980506896984,47.597164154052734],[5.374078750610465,47.604541778564396],[5.374919891357422,47.62135696411133],[5.406486034393367,47.67362213134771],[5.469339847564811,47.67483139038091],[5.482769966125545,47.68464279174815],[5.530594348907471,47.674007415771484],[5.567389488220329,47.707122802734375],[5.583657264709586,47.70088195800787],[5.596813678741569,47.67164611816406],[5.688783168792781,47.684780120849666],[5.689648151397762,47.733901977539176],[5.709419727325553,47.74494934082037],[5.70729303359991,47.76771926879888],[5.676611423492375,47.77915954589838],[5.698266029358024,47.82335662841808],[5.73142862319952,47.817634582519645],[5.748488426208495,47.8297691345216],[5.761191844940186,47.85934448242193],[5.828521251678467,47.85194778442382],[5.821859836578426,47.86911010742193],[5.851327419281063,47.90592575073242],[5.883190155029411,47.90024948120117],[5.884726524353084,47.926048278808594],[5.918042659759635,47.94736099243164],[5.921330451965446,47.971027374267635],[5.947534561157283,47.979709625244254],[5.970777988433838,47.957206726074276],[6.002262115478516,47.95608901977539],[6.036863803863639,48.00145339965832],[6.072221279144401,48.01554870605469],[6.109234809875602,48.01247024536144],[6.131397247314453,48.024085998535156],[6.156057834625358,48.00694274902344],[6.161246776580924,47.95829772949219],[6.182055950164851,47.95693206787104],[6.237987041473446,47.932842254638665],[6.277333736419735,47.95380783081055],[6.322461128234976,47.95008087158203],[6.364992618560847,47.96257400512695],[6.408420085906982,47.943195343017635],[6.431921482086125,47.943809509277344],[6.478261947631893,47.88544082641613],[6.542013645172119,47.902534484863395],[6.568707942962646,47.93449783325207],[6.601244449615479,47.944377899170036],[6.629285335540884,47.928180694580185],[6.645202636718807,47.90408706665045],[6.70367431640625,47.88142395019531],[6.738163948059082,47.8620491027832],[6.784952163696232,47.849575042724666],[6.79194593429571,47.83016586303722],[6.823538780212459,47.813053131103516]]]},"properties":{"ID_0":79,"ISO":"FR-70","NAME_0":"France","ID_1":11,"NAME_1":"Franche-Comté","ID_2":44,"NAME_2":"Haute-Saône","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.698726177215576,47.26500701904297],[5.718945980072021,47.241474151611385],[5.720454216003532,47.22004318237305],[5.761384010314998,47.19418716430669],[5.779403686523438,47.19277191162115],[5.81146764755249,47.16905212402344],[5.816596984863281,47.13479614257818],[5.790199756622314,47.10229110717785],[5.768988609314078,47.090038299560604],[5.784717082977295,47.05491256713867],[5.750931262970027,47.040668487548885],[5.749513626098633,47.017242431640625],[5.791865825653132,47.022640228271484],[5.840656757354736,47.00851440429693],[5.907691478729305,46.9995994567871],[5.924782276153678,46.9810676574707],[5.968590736389102,46.980281829833984],[5.979788780212346,46.96347808837896],[5.965485095977782,46.94744873046881],[5.997221946716365,46.933498382568466],[5.981950283050594,46.90820693969726],[6.008435726165885,46.895561218261776],[6.023230552673454,46.85335922241216],[6.062986373901367,46.85820007324224],[6.105555057525692,46.84529876708996],[6.152239799499569,46.81953048706055],[6.2065749168396,46.76633834838873],[6.180197715759391,46.74144363403332],[6.137484550476074,46.72386550903332],[6.071210861206112,46.687568664550895],[6.103265285492,46.65248870849603],[6.059153556823958,46.6248512268067],[6.048566818237418,46.6077232360841],[6.131093502044791,46.553573608398494],[6.138108730316162,46.55765914916992],[6.155487060546818,46.545558929443466],[6.120829582214469,46.51694107055675],[6.097317218780461,46.482456207275334],[6.073783874511776,46.464408874511825],[6.086247444152889,46.4431495666505],[6.064008712768612,46.41622543334972],[6.031020164489973,46.38809967041027],[5.984117031097526,46.36265563964849],[5.941530704498347,46.30926513671881],[5.918933391571159,46.30929565429693],[5.909197807312069,46.283943176269645],[5.850658416748047,46.26169967651373],[5.766045093536434,46.268329620361385],[5.725181102752742,46.26069259643555],[5.714552879333552,46.30807113647472],[5.684582233428955,46.31093215942394],[5.649797916412467,46.334190368652344],[5.612518310546875,46.326557159423885],[5.597891330718994,46.2978973388673],[5.564674377441463,46.29276657104498],[5.539301395416317,46.26890182495123],[5.475361824035701,46.2652206420899],[5.45767164230341,46.276847839355526],[5.475304603576774,46.31538391113287],[5.437145709991569,46.31512832641613],[5.42353439331049,46.34773254394531],[5.400996208191032,46.339298248291065],[5.373462200164738,46.352237701416016],[5.377880573272705,46.38232421875006],[5.348115921020621,46.399417877197315],[5.309145927429256,46.41025543212885],[5.321727275848502,46.42895507812494],[5.310561180114746,46.44677352905285],[5.323350906372013,46.46250534057622],[5.373790264129751,46.46044921875],[5.420044422149715,46.48018264770508],[5.421061038971061,46.50043869018555],[5.359177589416617,46.52014541625982],[5.367879867553824,46.56694793701177],[5.405690670013541,46.581668853759766],[5.413790225982723,46.61464309692383],[5.44060134887701,46.63791275024414],[5.415008068084717,46.654144287109425],[5.42209005355835,46.673030853271484],[5.390789508819694,46.726360321045036],[5.361726284027213,46.73311233520507],[5.366759777069149,46.752395629882926],[5.39024829864502,46.770591735839844],[5.332496166229362,46.797714233398494],[5.328584671020565,46.81291580200201],[5.375267505645866,46.82698822021496],[5.459489822387809,46.830810546875114],[5.459286212921256,46.855243682861385],[5.415234565734862,46.861808776855526],[5.39160251617443,46.89407348632818],[5.360337257385197,46.88433837890631],[5.328718662261963,46.88931655883789],[5.307367324829102,46.93645858764648],[5.26313400268549,46.95352172851562],[5.255236148834229,46.979888916015675],[5.275070190429688,46.99802780151367],[5.317198276519832,47.015804290771484],[5.275326728820914,47.02693557739263],[5.283483982086294,47.04631805419933],[5.323974609375057,47.073791503906364],[5.3856458663941,47.0817489624024],[5.41039323806757,47.113834381103516],[5.414566516876334,47.132762908935604],[5.438985347747803,47.14298629760742],[5.458915710449162,47.181934356689446],[5.449262142181396,47.20321655273443],[5.479135990142822,47.21851348876959],[5.488452434539909,47.28814697265631],[5.518538951873779,47.3041877746582],[5.533237934112605,47.286529541015625],[5.601314067840633,47.260204315185604],[5.642305374145508,47.256191253662166],[5.676645278930664,47.27572250366205],[5.698726177215576,47.26500701904297]]]},"properties":{"ID_0":79,"ISO":"FR-39","NAME_0":"France","ID_1":11,"NAME_1":"Franche-Comté","ID_2":45,"NAME_2":"Jura","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.130345821380729,47.503025054931754],[7.078799724578971,47.48905944824213],[7.024394512176571,47.50421524047845],[6.982897281646729,47.49425506591797],[6.998209476471003,47.45164108276367],[6.939178943634033,47.43370056152355],[6.90761041641241,47.49455642700195],[6.925321578979549,47.519527435302734],[6.903906822204533,47.54837417602545],[6.816659927368163,47.54792404174805],[6.807005405426082,47.562801361083984],[6.785643100738582,47.611358642578125],[6.798334598541487,47.64399719238281],[6.777236938476675,47.66598510742193],[6.7801513671875,47.68976974487316],[6.759074211120605,47.72280883789068],[6.757638454437256,47.747879028320256],[6.786245822906607,47.7822875976563],[6.823538780212459,47.813053131103516],[6.846179962158316,47.82294464111334],[6.864959716796989,47.78460693359381],[6.938450336456413,47.7711563110351],[6.974351882934513,47.75160217285162],[7.011684894561881,47.74163055419921],[7.03741788864147,47.721557617187436],[7.027565479278621,47.70536804199219],[7.045281887054499,47.67037582397461],[7.019805431365967,47.650680541992244],[7.005052566528433,47.619598388671925],[7.009212493896541,47.5993919372558],[7.085388183593807,47.593051910400504],[7.106215476989859,47.55133819580084],[7.142173290252742,47.52502441406256],[7.130345821380729,47.503025054931754]]]},"properties":{"ID_0":79,"ISO":"FR-90","NAME_0":"France","ID_1":11,"NAME_1":"Franche-Comté","ID_2":46,"NAME_2":"Territoire de Belfort","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.713937520980892,49.40922546386719],[1.720028877258414,49.395282745361385],[1.759340763092155,49.36824035644531],[1.774004220962638,49.335693359375114],[1.772390365600586,49.293663024902344],[1.802660226821899,49.27343368530285],[1.790288925170898,49.25369262695324],[1.75471997261053,49.27000808715831],[1.711645603179932,49.26452255249023],[1.704364180564824,49.232200622558594],[1.676291346550101,49.212188720703125],[1.655990839004573,49.13039016723644],[1.608796119689941,49.077892303466854],[1.604106664657649,49.08377456665045],[1.52134740352642,49.06835174560547],[1.486533403396606,49.05173873901373],[1.447279453277588,49.05351257324219],[1.457762360572872,49.026298522949276],[1.477095484733638,49.014801025390625],[1.470889449119682,48.9748153686524],[1.49522519111639,48.96574401855469],[1.501523852348441,48.94105529785162],[1.461308479309139,48.9375572204591],[1.447959303855896,48.92464065551757],[1.470635771751517,48.898002624511825],[1.457628130912781,48.87151718139654],[1.404821634292716,48.86071395874034],[1.359781384468192,48.83119583129883],[1.356839895248527,48.81558609008789],[1.37680900096899,48.791938781738395],[1.327389359474182,48.760437011718864],[1.296934962272587,48.76801300048834],[1.258414506912231,48.7580299377442],[1.246022224426326,48.76967620849609],[1.162975311279354,48.76930999755859],[1.152118086814937,48.785739898681754],[1.118686676025391,48.78296279907226],[1.113736271858272,48.74630355834961],[1.063026547431946,48.75896835327154],[1.01592493057251,48.72905349731451],[0.963956236839408,48.726345062255916],[0.921202719211578,48.709178924560604],[0.876703202724457,48.71559143066412],[0.862586736679077,48.68807601928722],[0.814819097519035,48.67016983032237],[0.768455088138694,48.67072296142578],[0.767301619052887,48.69582366943371],[0.751169919967765,48.703979492187614],[0.775034308433646,48.73735809326183],[0.730522811412811,48.78559112548834],[0.690171241760368,48.79405975341791],[0.607868492603359,48.83248901367193],[0.619440674781913,48.85274887084961],[0.585984230041561,48.87860107421875],[0.549868464470023,48.87471008300792],[0.496543794870377,48.87878036499029],[0.47437018156046,48.88705825805664],[0.443109124898967,48.88128662109375],[0.386114388704414,48.91054916381836],[0.412814527750072,48.950626373291016],[0.432199895381871,48.971908569335994],[0.426760137081203,48.985717773437614],[0.446051925420818,49.01901245117193],[0.4245461523534,49.032032012939446],[0.384958535432816,49.03701400756835],[0.379250437021255,49.07092285156255],[0.408114433288688,49.076675415039176],[0.399783194065208,49.10081481933594],[0.432367354631367,49.14220046997082],[0.387361347675323,49.15317916870117],[0.393431842327175,49.20693969726568],[0.337502598762512,49.23117446899414],[0.321765959262962,49.24859237670904],[0.382786750793571,49.26401519775401],[0.365656018257255,49.295124053955135],[0.322438538074607,49.29633331298828],[0.307059824466762,49.3187980651856],[0.323661744594688,49.34011840820324],[0.301713615656013,49.37130355834972],[0.309067577123699,49.38688278198248],[0.297141581773872,49.43361282348638],[0.386600673198643,49.447238922119084],[0.435335397720394,49.46041107177739],[0.493775337934551,49.48446655273448],[0.522109389305115,49.4796257019044],[0.581252694130058,49.43396377563482],[0.634685695171413,49.43386077880865],[0.660915970802421,49.40307617187494],[0.738287627696934,49.40806579589844],[0.767648577690181,49.418987274170036],[0.800941646099204,49.41494750976562],[0.818878650665283,49.39818954467785],[0.918119370937461,49.3854598999024],[0.920092701911983,49.33861160278326],[0.859372794628086,49.345390319824276],[0.844435155391807,49.32640457153325],[0.896387994289398,49.316204071044865],[0.937321841716766,49.32001495361334],[0.962375104427394,49.285423278808594],[0.999109447002468,49.2519760131837],[1.051249861717338,49.26162338256847],[1.065027117729301,49.28116989135742],[1.04814887046814,49.29788208007818],[1.094995021820182,49.309753417968864],[1.13399350643158,49.309841156005916],[1.145475864410514,49.335510253906364],[1.212223410606441,49.34972381591797],[1.272155284881705,49.347377777099666],[1.286130309104863,49.38692855834972],[1.308008551597595,49.39633560180663],[1.309631824493408,49.42873382568365],[1.344091296195984,49.446273803710994],[1.411997079849357,49.45563125610346],[1.476221203804016,49.451313018798885],[1.501866102218628,49.439544677734375],[1.576197028160095,49.440055847168075],[1.606956601142826,49.41085433959961],[1.62804818153387,49.41195678710943],[1.694283723831177,49.394863128662166],[1.713937520980892,49.40922546386719]]]},"properties":{"ID_0":79,"ISO":"FR-27","NAME_0":"France","ID_1":12,"NAME_1":"Haute-Normandie","ID_2":47,"NAME_2":"Eure","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.784845352172794,49.75790405273437],[1.749885678291321,49.76211547851568],[1.742890834808406,49.73855590820324],[1.712556719780025,49.7301483154298],[1.714367032051143,49.70719909667974],[1.752184510231075,49.68096542358404],[1.724131345749015,49.67180633544933],[1.708078145980949,49.64614868164068],[1.72168505191803,49.62332153320324],[1.69372546672821,49.60106658935541],[1.719389319419918,49.5822868347168],[1.726378798484916,49.54237365722656],[1.749279260635319,49.49359893798834],[1.787550449371338,49.506229400634766],[1.775770783424491,49.47343826293951],[1.726078152656498,49.43806457519537],[1.713937520980892,49.40922546386719],[1.694283723831177,49.394863128662166],[1.62804818153387,49.41195678710943],[1.606956601142826,49.41085433959961],[1.576197028160095,49.440055847168075],[1.501866102218628,49.439544677734375],[1.476221203804016,49.451313018798885],[1.411997079849357,49.45563125610346],[1.344091296195984,49.446273803710994],[1.309631824493408,49.42873382568365],[1.308008551597595,49.39633560180663],[1.286130309104863,49.38692855834972],[1.272155284881705,49.347377777099666],[1.212223410606441,49.34972381591797],[1.145475864410514,49.335510253906364],[1.13399350643158,49.309841156005916],[1.094995021820182,49.309753417968864],[1.04814887046814,49.29788208007818],[1.065027117729301,49.28116989135742],[1.051249861717338,49.26162338256847],[0.999109447002468,49.2519760131837],[0.962375104427394,49.285423278808594],[0.937321841716766,49.32001495361334],[0.896387994289398,49.316204071044865],[0.844435155391807,49.32640457153325],[0.859372794628086,49.345390319824276],[0.920092701911983,49.33861160278326],[0.918119370937461,49.3854598999024],[0.818878650665283,49.39818954467785],[0.800941646099204,49.41494750976562],[0.767648577690181,49.418987274170036],[0.738287627696934,49.40806579589844],[0.660915970802421,49.40307617187494],[0.634685695171413,49.43386077880865],[0.581252694130058,49.43396377563482],[0.522109389305115,49.4796257019044],[0.493775337934551,49.48446655273448],[0.435335397720394,49.46041107177739],[0.386600673198643,49.447238922119084],[0.297141581773872,49.43361282348638],[0.293195009231681,49.43337631225585],[0.287360996008033,49.44180679321295],[0.216804996132907,49.45236206054693],[0.160695001483077,49.45430374145508],[0.14708399772644,49.467361450195256],[0.093750000000171,49.488193511963004],[0.065416000783614,49.511249542236385],[0.071805000305403,49.53319549560547],[0.15319499373436,49.64541625976568],[0.162639006972256,49.68652725219732],[0.205972999334392,49.71458435058594],[0.277361989021415,49.73597335815441],[0.31986099481594,49.74152755737316],[0.380692988634166,49.769584655761776],[0.522361993789787,49.824028015136655],[0.569584012031612,49.84930419921881],[0.68819397687912,49.87125015258789],[0.76513797044754,49.872081756591854],[0.830973029136658,49.8890266418457],[0.931528985500393,49.907081604003956],[0.960138976574001,49.91986083984381],[1.019860982894954,49.915695190429744],[1.105692982673702,49.93652725219726],[1.205973029136658,49.97319412231451],[1.328611016273555,50.04624938964844],[1.379722952842712,50.06502914428705],[1.422133922576904,50.069377899170036],[1.459145903587398,50.0625],[1.452256202697811,50.04266738891613],[1.526949524879569,49.996578216552734],[1.574389457702694,49.97365570068365],[1.596047759056148,49.94798660278326],[1.678450703621024,49.918132781982536],[1.712090253829899,49.88640213012701],[1.73385405540472,49.81349945068371],[1.784845352172794,49.75790405273437]]]},"properties":{"ID_0":79,"ISO":"FR-76","NAME_0":"France","ID_1":12,"NAME_1":"Haute-Normandie","ID_2":48,"NAME_2":"Seine-Maritime","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Seine-Inférieure"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.565787315368766,43.42295837402355],[2.583821058273429,43.412666320800724],[2.557056903839225,43.389781951904354],[2.55523943901062,43.36636352539062],[2.5400807857514,43.34523391723644],[2.583539247512931,43.33391189575201],[2.60117506980896,43.298255920410156],[2.659253358841056,43.29296875000005],[2.677216291427555,43.31361389160161],[2.697157621383781,43.31675720214844],[2.70030331611639,43.282814025878906],[2.752520561218262,43.254592895507805],[2.772493362426758,43.258029937744254],[2.787239313125667,43.28768920898449],[2.837394952774105,43.32242965698248],[2.885118722915649,43.33324813842773],[2.946079254150334,43.31195831298822],[3.004423141479549,43.31970977783209],[3.005738258361816,43.28624343872075],[3.054346561431885,43.2800407409668],[3.0769784450531,43.26292800903326],[3.146507501602116,43.24738311767584],[3.201526165008659,43.2477645874024],[3.239354848861751,43.21347045898443],[3.159028053283805,43.15208435058605],[3.081249952316398,43.0759735107423],[3.009860992431697,43.11013793945323],[3.014862060546875,43.13347244262707],[2.98763990402233,43.14847183227538],[2.988193035125732,43.09513854980469],[2.960971117019767,43.0904159545899],[2.964584112167472,43.06986236572277],[3.006251096725578,43.047359466552734],[3.010416984558162,43.029582977294865],[3.042639970779476,43.02986145019525],[3.0612509250642,43.008750915527344],[3.031805038452148,42.962638854980526],[3.032361030578613,42.93902587890636],[3.060972929000854,42.91624832153332],[3.048749923705998,42.90180587768555],[3.005139112472648,42.895694732666016],[2.98902797698986,42.864540100097656],[2.917114973068351,42.88486099243164],[2.884215831756705,42.89927291870128],[2.865273952484131,42.91834259033203],[2.787163734436035,42.894412994384766],[2.761908531188908,42.873325347900504],[2.754346370697021,42.85170745849621],[2.727429866790885,42.83440399169922],[2.68201136589056,42.83071899414074],[2.664347171783504,42.8367538452149],[2.600078582763786,42.836593627929794],[2.558602333068961,42.845504760742244],[2.518538713455314,42.84313964843744],[2.500451564788875,42.850429534912216],[2.456819534301758,42.83747482299816],[2.382167577743644,42.848464965820426],[2.336096286773682,42.84070968627941],[2.321924686431885,42.82577514648432],[2.343922853469905,42.80122756958019],[2.34332537651062,42.77411270141607],[2.355345964431762,42.72805023193365],[2.322489976882991,42.70811080932623],[2.256681919098014,42.6982688903808],[2.244450807571354,42.6798324584962],[2.176088333129883,42.65300750732422],[2.16605377197277,42.66391754150396],[2.175521373748779,42.68274688720703],[2.161494493484497,42.700523376464844],[2.058119058608952,42.755485534668026],[2.003780126571769,42.73352813720703],[1.950255036354122,42.73765945434575],[1.909520149230957,42.76843643188488],[1.928959369659538,42.774604797363395],[1.895569682121277,42.80892944335943],[1.860177874565181,42.82742691040039],[1.875897049903983,42.852325439453125],[1.947126030921936,42.856689453125],[1.985040664672909,42.87085723876953],[1.989327311515922,42.910488128662166],[1.980574369430656,42.929580688476555],[1.933731198310852,42.93914413452159],[1.936138391494864,42.952056884765625],[1.979381680488586,42.9605064392091],[1.985468149185238,43.023479461669865],[1.975929021835384,43.04230499267578],[1.945866227150077,43.049396514892685],[1.961180686950797,43.06669998168951],[1.945064544677848,43.12235641479498],[1.91626942157751,43.133430480956974],[1.890102863311767,43.12347030639648],[1.874489903450069,43.14264678955078],[1.826187610626277,43.1456871032716],[1.711779952049369,43.186840057373104],[1.724626421928519,43.212497711181584],[1.688419699668884,43.273551940918026],[1.735951542854366,43.316017150878906],[1.746554732322693,43.343482971191406],[1.772272706031913,43.33697509765625],[1.805040955543632,43.359279632568416],[1.804530382156486,43.39160919189459],[1.856453418731689,43.443454742431754],[1.90211462974554,43.40870285034191],[1.958169817924556,43.425613403320426],[1.990858674049434,43.40938568115246],[2.012605428695736,43.41502761840832],[2.029132843017635,43.436897277831974],[2.053070545196476,43.43030929565424],[2.072800636291618,43.39569473266607],[2.108784675598088,43.394458770751896],[2.170411348342896,43.415813446044865],[2.186801910400391,43.39481353759771],[2.215023756027222,43.382614135742244],[2.229334115982056,43.40826797485357],[2.22249889373785,43.428283691406364],[2.256686687469482,43.45364379882824],[2.282011032104492,43.441226959228516],[2.304118156433162,43.44792938232433],[2.367331504821777,43.423179626464844],[2.398735046386832,43.41704940795904],[2.427590131759644,43.434490203857536],[2.494383096694946,43.43693542480469],[2.518988370895499,43.423717498779354],[2.565787315368766,43.42295837402355]]]},"properties":{"ID_0":79,"ISO":"FR-11","NAME_0":"France","ID_1":13,"NAME_1":"Languedoc-Roussillon","ID_2":49,"NAME_2":"Aude","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.649223804473877,44.27035903930664],[4.699935913086051,44.21610641479503],[4.716250896453857,44.17604446411144],[4.718133449554499,44.14067840576183],[4.705081939697266,44.10817337036144],[4.723213195800895,44.07935333251953],[4.762887001037654,44.07486724853527],[4.842254161834774,44.011100769043026],[4.840941429138184,43.98591613769537],[4.812966823577938,43.988006591796925],[4.814368724822998,43.96467590332031],[4.77728796005249,43.93819808959972],[4.739061355590877,43.92406845092784],[4.693608283996696,43.88521957397455],[4.641909599304199,43.867477416992244],[4.66667461395258,43.84721755981457],[4.642970085144156,43.832115173339844],[4.654428958892822,43.80915832519542],[4.651798248291129,43.784358978271484],[4.628118038177433,43.75771331787103],[4.612276077270621,43.724754333496094],[4.626948356628532,43.69167709350585],[4.598219871521053,43.686695098876946],[4.537796974182186,43.70703887939453],[4.486420631408691,43.69885253906255],[4.477648258209285,43.67280197143555],[4.451532840728817,43.66433334350597],[4.426920890808048,43.625835418701165],[4.43852519989025,43.61135482788085],[4.474191665649528,43.60398483276372],[4.448892593383789,43.58343887329113],[4.425405025482178,43.5847740173341],[4.372169971466178,43.549457550048885],[4.35365009307867,43.547393798828125],[4.293263912200985,43.51435852050781],[4.244232654571476,43.50146102905268],[4.229757785797119,43.45986175537115],[4.172917842865047,43.469306945800895],[4.136528968811149,43.482082366943416],[4.113194942474365,43.507362365722706],[4.140971183776969,43.528472900390625],[4.101309776306152,43.554862976074276],[4.099889278411922,43.585273742675895],[4.150215625762939,43.585563659668026],[4.193817615509089,43.65174484252941],[4.163625717163086,43.690139770507926],[4.141502857208309,43.73815917968756],[4.111703395843449,43.74017715454107],[4.083861827850342,43.76770782470709],[3.974202871322631,43.82721328735363],[3.958993434906063,43.85351181030285],[3.923111438751278,43.8587875366212],[3.919554233550969,43.88197326660162],[3.857115745544434,43.87616348266607],[3.830809593200683,43.86642456054682],[3.799542427063045,43.890823364257926],[3.828286409378108,43.92406082153326],[3.820307016372738,43.94240951538097],[3.795517921447867,43.94227600097662],[3.787337541580314,43.96686935424805],[3.73113656044012,43.97068023681646],[3.684487342834586,43.951660156250114],[3.67159104347229,43.91017913818365],[3.623588562011776,43.91697692871088],[3.582958459854239,43.87743377685558],[3.578907728195134,43.84356307983404],[3.521645069122371,43.86494827270519],[3.511682987213135,43.89563751220703],[3.482081651687565,43.890453338623104],[3.435181617736873,43.862960815429794],[3.435777902603206,43.90036773681651],[3.423923015594596,43.9113121032716],[3.358359336853027,43.91383361816412],[3.351584196090812,43.93761444091796],[3.377508640289307,43.96690368652355],[3.405615091323966,43.96968078613281],[3.418529033660945,43.99229431152355],[3.443552255630493,44.00233840942382],[3.450981378555298,44.02254104614252],[3.386653900146598,44.05496215820318],[3.337653160095272,44.058509826660156],[3.323059558868465,44.079849243164176],[3.295949459075985,44.069450378418026],[3.263300418853873,44.09255599975586],[3.323849201202336,44.108917236328125],[3.320353746414185,44.13594818115234],[3.336682081222477,44.15813064575206],[3.373648166656608,44.1707649230957],[3.428468227386588,44.14866638183605],[3.438627481460685,44.130371093750114],[3.505160331726074,44.12619781494152],[3.544308900833073,44.11437225341808],[3.565196275711173,44.12305068969738],[3.606166839599723,44.11590194702154],[3.632837533950863,44.121223449707145],[3.647169113159237,44.144290924072266],[3.630543470382804,44.1588706970216],[3.637706041336173,44.175434112548885],[3.671052694320736,44.18420028686529],[3.703778028488216,44.16622924804699],[3.759624004364127,44.151191711425724],[3.79699516296381,44.12738800048828],[3.832118272781372,44.13733673095703],[3.872730970382747,44.12866592407232],[3.927274465560913,44.16129684448248],[3.928445816040095,44.181720733642635],[3.950924158096257,44.21686935424816],[3.946433067321777,44.24104309082031],[3.97470068931591,44.259616851806754],[3.940030097961368,44.2838745117188],[3.922858953476066,44.30522537231445],[3.943703889846859,44.317886352539176],[3.911306858062857,44.370326995849666],[3.885817289352531,44.3879737854005],[3.917546510696525,44.40532302856457],[3.945338249206543,44.40086364746087],[3.998162984848079,44.45979690551763],[4.045418739318848,44.43349456787109],[4.037812709808406,44.420917510986385],[4.06843996047985,44.40505981445306],[4.042393207550049,44.394073486328175],[4.057089328765869,44.36414337158208],[4.051451683044546,44.31732177734369],[4.073842048645075,44.32902526855469],[4.126751899719181,44.337734222412166],[4.142867565155086,44.31335067749029],[4.177990436553955,44.31774139404297],[4.186579227447567,44.29973602294933],[4.216383934021053,44.28903961181652],[4.245138168335018,44.268074035644645],[4.27377271652216,44.27175140380859],[4.288995742797795,44.29214477539057],[4.28837442398077,44.315017700195426],[4.318097591400203,44.321750640869254],[4.325771331787165,44.33832550048828],[4.402346611022948,44.3350067138673],[4.391594409942684,44.304759979248104],[4.403570175170898,44.288177490234375],[4.448757171630858,44.29671096801763],[4.451067924499569,44.33409500122075],[4.506097316742057,44.340251922607536],[4.545630931854248,44.31970977783209],[4.557167530059871,44.30416870117182],[4.632679462432861,44.28499221801752],[4.649223804473877,44.27035903930664]]]},"properties":{"ID_0":79,"ISO":"FR-30","NAME_0":"France","ID_1":13,"NAME_1":"Languedoc-Roussillon","ID_2":50,"NAME_2":"Gard","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.101309776306152,43.554862976074276],[4.054305076599235,43.55791854858392],[3.970138072967529,43.54152679443365],[3.901526927947998,43.51486206054699],[3.833750009536856,43.475139617919865],[3.801527976989803,43.443473815918026],[3.729304075241202,43.41791534423834],[3.690972089767399,43.39152908325201],[3.656249046325797,43.390415191650504],[3.632917881011963,43.37819290161144],[3.564028024673576,43.32569503784185],[3.515417098999137,43.27402877807623],[3.479027986526489,43.27430725097662],[3.432917118072509,43.28958511352539],[3.368750095367432,43.27930450439464],[3.308470964431763,43.25430679321289],[3.239354848861751,43.21347045898443],[3.201526165008659,43.2477645874024],[3.146507501602116,43.24738311767584],[3.0769784450531,43.26292800903326],[3.054346561431885,43.2800407409668],[3.005738258361816,43.28624343872075],[3.004423141479549,43.31970977783209],[2.946079254150334,43.31195831298822],[2.885118722915649,43.33324813842773],[2.837394952774105,43.32242965698248],[2.787239313125667,43.28768920898449],[2.772493362426758,43.258029937744254],[2.752520561218262,43.254592895507805],[2.70030331611639,43.282814025878906],[2.697157621383781,43.31675720214844],[2.677216291427555,43.31361389160161],[2.659253358841056,43.29296875000005],[2.60117506980896,43.298255920410156],[2.583539247512931,43.33391189575201],[2.5400807857514,43.34523391723644],[2.55523943901062,43.36636352539062],[2.557056903839225,43.389781951904354],[2.583821058273429,43.412666320800724],[2.565787315368766,43.42295837402355],[2.606371402740535,43.43199539184582],[2.664626359939689,43.46388626098627],[2.655180931091365,43.494186401367244],[2.658852338791007,43.51692199707037],[2.616642713546867,43.56537628173834],[2.630437612533569,43.58291625976568],[2.616909265518302,43.601448059082145],[2.653636455535889,43.650016784668026],[2.722670078277702,43.64263916015636],[2.754523515701237,43.61413955688487],[2.795155286789054,43.62465286254894],[2.814752578735465,43.63930892944347],[2.8730788230896,43.646492004394645],[2.918087005615234,43.66099548339855],[2.919908761978263,43.68773651123047],[2.93546295166027,43.694667816162045],[2.982088088989201,43.70803070068365],[3.031300067901611,43.692451477050895],[3.060678243637085,43.69280624389648],[3.056274890899715,43.75495147705084],[3.074304819107056,43.76761245727545],[3.048567771911735,43.80149841308599],[3.064907550811824,43.83556747436535],[3.0882666110993,43.83510208129883],[3.127710819244498,43.81740570068354],[3.205308198928833,43.81296157836914],[3.249037027359122,43.829578399658196],[3.236856937408447,43.85407638549816],[3.242139577865601,43.87399673461914],[3.26643943786621,43.89609527587896],[3.34256815910345,43.89419174194336],[3.358359336853027,43.91383361816412],[3.423923015594596,43.9113121032716],[3.435777902603206,43.90036773681651],[3.435181617736873,43.862960815429794],[3.482081651687565,43.890453338623104],[3.511682987213135,43.89563751220703],[3.521645069122371,43.86494827270519],[3.578907728195134,43.84356307983404],[3.582958459854239,43.87743377685558],[3.623588562011776,43.91697692871088],[3.67159104347229,43.91017913818365],[3.684487342834586,43.951660156250114],[3.73113656044012,43.97068023681646],[3.787337541580314,43.96686935424805],[3.795517921447867,43.94227600097662],[3.820307016372738,43.94240951538097],[3.828286409378108,43.92406082153326],[3.799542427063045,43.890823364257926],[3.830809593200683,43.86642456054682],[3.857115745544434,43.87616348266607],[3.919554233550969,43.88197326660162],[3.923111438751278,43.8587875366212],[3.958993434906063,43.85351181030285],[3.974202871322631,43.82721328735363],[4.083861827850342,43.76770782470709],[4.111703395843449,43.74017715454107],[4.141502857208309,43.73815917968756],[4.163625717163086,43.690139770507926],[4.193817615509089,43.65174484252941],[4.150215625762939,43.585563659668026],[4.099889278411922,43.585273742675895],[4.101309776306152,43.554862976074276]]]},"properties":{"ID_0":79,"ISO":"FR-34","NAME_0":"France","ID_1":13,"NAME_1":"Languedoc-Roussillon","ID_2":51,"NAME_2":"Hérault","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.862527370452937,44.743873596191406],[3.871647119522095,44.6793365478515],[3.89477801322937,44.64996337890619],[3.894139766693229,44.61528778076172],[3.923566818237361,44.571884155273494],[3.948773860931396,44.572887420654354],[3.986860036850089,44.502166748046875],[3.998162984848079,44.45979690551763],[3.945338249206543,44.40086364746087],[3.917546510696525,44.40532302856457],[3.885817289352531,44.3879737854005],[3.911306858062857,44.370326995849666],[3.943703889846859,44.317886352539176],[3.922858953476066,44.30522537231445],[3.940030097961368,44.2838745117188],[3.97470068931591,44.259616851806754],[3.946433067321777,44.24104309082031],[3.950924158096257,44.21686935424816],[3.928445816040095,44.181720733642635],[3.927274465560913,44.16129684448248],[3.872730970382747,44.12866592407232],[3.832118272781372,44.13733673095703],[3.79699516296381,44.12738800048828],[3.759624004364127,44.151191711425724],[3.703778028488216,44.16622924804699],[3.671052694320736,44.18420028686529],[3.637706041336173,44.175434112548885],[3.630543470382804,44.1588706970216],[3.647169113159237,44.144290924072266],[3.632837533950863,44.121223449707145],[3.606166839599723,44.11590194702154],[3.565196275711173,44.12305068969738],[3.544308900833073,44.11437225341808],[3.505160331726074,44.12619781494152],[3.438627481460685,44.130371093750114],[3.428468227386588,44.14866638183605],[3.373648166656608,44.1707649230957],[3.360412120819092,44.201492309570426],[3.301043033599967,44.20647048950195],[3.239261150360164,44.19066238403326],[3.219211339950562,44.204502105712834],[3.230540037155265,44.23033905029308],[3.160531759262199,44.24628067016596],[3.154268264770621,44.27304077148448],[3.125306129455509,44.28541946411133],[3.154266595840568,44.30922698974615],[3.120220899581909,44.363311767578125],[3.137053251266479,44.39162063598627],[3.135486364364624,44.45551681518548],[3.117325305938834,44.473785400390625],[3.068931818008422,44.502704620361385],[3.083469867706412,44.560317993164006],[3.037130594253654,44.59553527832037],[2.981677055359,44.644676208496094],[3.016110181808472,44.71205520629877],[3.029445171356258,44.716552734375],[3.031344890594539,44.749637603759766],[3.048236608505362,44.76432418823242],[3.048270702362174,44.80426406860357],[3.094844818115348,44.85548019409174],[3.103126049041805,44.88463592529297],[3.142848491668701,44.902282714843864],[3.164672613144034,44.875179290771484],[3.190283536911011,44.862522125244254],[3.234992504119986,44.88877487182623],[3.226427555084285,44.90997695922863],[3.244564771652222,44.931716918945305],[3.285642385482788,44.92630767822277],[3.361342668533382,44.971412658691406],[3.386025190353394,44.95290756225597],[3.403222322464103,44.956863403320256],[3.410380125045833,44.91778564453124],[3.435711383819637,44.88024520874035],[3.456170082092398,44.83122634887707],[3.486966848373526,44.80647277832037],[3.507375001907405,44.82423400878912],[3.568770170211849,44.834182739257926],[3.597830057144221,44.85870742797863],[3.595023632049618,44.87579345703119],[3.644297122955322,44.87713241577154],[3.673640251159725,44.85412597656256],[3.666364908218497,44.828777313232365],[3.743865728378353,44.83780288696289],[3.806989908218384,44.767581939697266],[3.833253145217952,44.775276184081974],[3.839418649673519,44.74711990356457],[3.862527370452937,44.743873596191406]]]},"properties":{"ID_0":79,"ISO":"FR-48","NAME_0":"France","ID_1":13,"NAME_1":"Languedoc-Roussillon","ID_2":52,"NAME_2":"Lozère","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.027637958526554,42.84544372558594],[3.032361030578613,42.8432731628418],[3.035139083862362,42.841999053955135],[3.042083978653011,42.83880615234375],[3.034027099609432,42.67680740356451],[3.036791086196956,42.60985946655279],[3.058249950408935,42.5367317199707],[3.137082099914551,42.51652908325195],[3.131912708282471,42.482704162597656],[3.154305934906063,42.478195190429744],[3.174070119857788,42.43519210815441],[3.10809159278881,42.433589935302734],[3.085840940475464,42.42583847045904],[3.047425985336417,42.45684432983398],[2.986752748489494,42.4730682373048],[2.967549085617179,42.46552276611328],[2.945468902588004,42.480087280273494],[2.918404102325553,42.45623397827143],[2.839868068695182,42.45898818969732],[2.793810606002807,42.41819381713873],[2.77116703987133,42.41215133667003],[2.751865625381527,42.42537307739258],[2.72396111488348,42.422725677490234],[2.674422264099121,42.4047470092774],[2.653826713562125,42.38768005371094],[2.67544794082653,42.34234619140631],[2.616355419158935,42.34597396850597],[2.582230091094971,42.35707473754883],[2.555202484130916,42.35268020629882],[2.542030096054134,42.33394241333019],[2.498432397842521,42.3426246643067],[2.410337686538753,42.392154693603516],[2.356267929077205,42.40428161621094],[2.310598134994507,42.42844772338867],[2.291224956512451,42.422924041748104],[2.257082462310791,42.43848800659174],[2.201349496841487,42.416664123535156],[2.156949043273983,42.423377990722656],[2.13316917419445,42.41434097290045],[2.11365985870367,42.38169479370117],[2.08593320846569,42.36374664306646],[2.023496389388981,42.35522842407232],[1.985820055007934,42.36217880249034],[1.964365005493164,42.38256072998047],[1.933844804763794,42.454166412353516],[1.915668964385986,42.44618606567383],[1.84731495380413,42.46834564208978],[1.805248141288814,42.48865509033208],[1.730936050415096,42.49245071411144],[1.724010586738586,42.52024841308594],[1.73871898651123,42.56552886962896],[1.784208893775883,42.57571792602545],[1.838153481483459,42.58401107788097],[1.86532902717596,42.579887390136825],[1.91076564788824,42.60806274414068],[1.969060301780758,42.61674118041998],[1.997955799102726,42.66090393066412],[2.027051925659237,42.65262222290045],[2.073887109756583,42.665622711181754],[2.127885103225765,42.67203903198248],[2.16605377197277,42.66391754150396],[2.176088333129883,42.65300750732422],[2.244450807571354,42.6798324584962],[2.256681919098014,42.6982688903808],[2.322489976882991,42.70811080932623],[2.355345964431762,42.72805023193365],[2.34332537651062,42.77411270141607],[2.343922853469905,42.80122756958019],[2.321924686431885,42.82577514648432],[2.336096286773682,42.84070968627941],[2.382167577743644,42.848464965820426],[2.456819534301758,42.83747482299816],[2.500451564788875,42.850429534912216],[2.518538713455314,42.84313964843744],[2.558602333068961,42.845504760742244],[2.600078582763786,42.836593627929794],[2.664347171783504,42.8367538452149],[2.68201136589056,42.83071899414074],[2.727429866790885,42.83440399169922],[2.754346370697021,42.85170745849621],[2.761908531188908,42.873325347900504],[2.787163734436035,42.894412994384766],[2.865273952484131,42.91834259033203],[2.884215831756705,42.89927291870128],[2.917114973068351,42.88486099243164],[2.98902797698986,42.864540100097656],[2.957082986831665,42.84763717651367],[2.974859952926749,42.804306030273494],[3.02680611610424,42.809581756591854],[3.014027118682918,42.827915191650504],[3.027637958526554,42.84544372558594]],[[1.980405569076538,42.494445800781364],[1.956866025924683,42.45812988281256],[2.005080938339233,42.44804000854492],[1.980405569076538,42.494445800781364]]]},"properties":{"ID_0":79,"ISO":"FR-66","NAME_0":"France","ID_1":13,"NAME_1":"Languedoc-Roussillon","ID_2":53,"NAME_2":"Pyrénées-Orientales","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.49212551116949,45.737670898437614],[2.521507024765128,45.71134185791021],[2.528683662414608,45.682197570800895],[2.514567375183219,45.665775299072266],[2.513976573944148,45.63944244384777],[2.48628664016735,45.640823364257926],[2.478431940078792,45.60791778564458],[2.463471889495906,45.594680786132756],[2.496293544769344,45.55683135986334],[2.515879631042537,45.55388259887701],[2.518362283706608,45.5189094543457],[2.508408546447868,45.47850799560558],[2.487537860870361,45.41817092895507],[2.517482280731258,45.402050018310604],[2.523371696472282,45.38154602050787],[2.441551446914616,45.38452529907238],[2.380990982055721,45.413536071777344],[2.35025000572216,45.40960693359386],[2.368799448013306,45.386005401611385],[2.353415012359733,45.32979202270519],[2.316080331802482,45.3220329284668],[2.29032826423645,45.28847122192383],[2.269695043563843,45.2898902893067],[2.239868164062614,45.24879837036133],[2.19450759887701,45.220844268798885],[2.202461004257202,45.181419372558594],[2.221619606018066,45.1707115173341],[2.210419416427669,45.147159576416016],[2.178792953491325,45.13630294799805],[2.187932252884025,45.11671447753906],[2.172775745391903,45.08127975463878],[2.143402814865112,45.0863151550293],[2.095159292221183,45.056037902831974],[2.116937875747794,45.02196884155284],[2.140895843505916,45.00540924072271],[2.133292675018424,44.98574829101568],[2.093554258346671,44.98571014404297],[2.062914371490479,44.976505279541065],[2.045120716094971,44.98366546630865],[1.984336376190299,44.97372055053722],[1.940149903297424,44.97183990478521],[1.907779097557125,44.9782447814942],[1.887090682983455,44.956336975097656],[1.83157217502594,44.94342041015631],[1.824450731277466,44.9281005859375],[1.784546136856136,44.93051910400402],[1.753982305526847,44.94084930419922],[1.748795270919857,44.95682907104492],[1.708766579628104,44.96963500976557],[1.703376650810355,44.986576080322266],[1.671410918235836,45.00430679321289],[1.651891469955558,45.02528762817383],[1.540315151214656,45.04466629028332],[1.505799889564628,45.03949737548828],[1.460356593132133,45.013969421386776],[1.448261499405021,45.01931381225597],[1.399564027786312,45.06118392944341],[1.392447471618652,45.105876922607536],[1.4130939245224,45.12491226196295],[1.320997476577759,45.14245223999029],[1.308754444122371,45.137016296386776],[1.254436254501343,45.15850448608409],[1.291399955749625,45.18564605712896],[1.272147893905696,45.20114517211914],[1.233455657959098,45.19842529296881],[1.233607888221798,45.22219467163091],[1.277687430381832,45.24208450317394],[1.2762850522995,45.25569915771496],[1.239384651184196,45.26044845581055],[1.227059960365352,45.271842956543026],[1.241603016853333,45.30130767822277],[1.285155534744263,45.352050781250114],[1.315957784652653,45.36117553710949],[1.323230504989738,45.383117675781364],[1.281683087349052,45.385089874267635],[1.260222077369804,45.40024948120117],[1.288270592689571,45.43352890014654],[1.253151893615779,45.444217681884815],[1.285317420959473,45.490280151367244],[1.350077629089412,45.4668960571289],[1.372020363807678,45.49210357666015],[1.389600038528442,45.49615859985346],[1.408944010734501,45.52633285522461],[1.452689170837516,45.53505325317394],[1.45341527462017,45.552219390869254],[1.51134717464447,45.55213546752935],[1.517393827438411,45.56427764892584],[1.558782696723995,45.55094528198242],[1.584891438484249,45.556076049804744],[1.600403428077698,45.579444885253906],[1.625187277793998,45.578685760498104],[1.658936858177185,45.5969352722168],[1.664764881134033,45.61169433593749],[1.710733413696346,45.64133834838867],[1.750204801559448,45.64570999145508],[1.776995897293148,45.66109848022472],[1.785834431648368,45.68266296386719],[1.826436638832149,45.665046691894645],[1.874815821647758,45.66466522216808],[1.898730754852352,45.69827651977545],[1.918947458267326,45.71205520629894],[1.944381952285823,45.706954956054744],[1.956387162208671,45.72399520874029],[1.990889310836905,45.72302246093761],[2.01410174369812,45.75447845458996],[2.060475826263428,45.753902435302734],[2.113220930099487,45.72657394409173],[2.203400850296021,45.71713256835932],[2.210923671722469,45.70256042480474],[2.271074295043945,45.69164657592785],[2.271640777587834,45.664237976074325],[2.320097923278865,45.670539855957145],[2.367804527282829,45.71312332153326],[2.435855865478629,45.6992759704591],[2.49212551116949,45.737670898437614]]]},"properties":{"ID_0":79,"ISO":"FR-19","NAME_0":"France","ID_1":14,"NAME_1":"Limousin","ID_2":54,"NAME_2":"Corrèze","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.167785644531193,46.42407608032238],[2.197830677032584,46.42829895019537],[2.2810475826264,46.42040634155284],[2.286935806274471,46.383304595947266],[2.312478780746517,46.37606048583995],[2.31458568572998,46.33464050292974],[2.357931852340698,46.32336807250988],[2.386079788208008,46.33197021484381],[2.443031549453849,46.294998168945426],[2.470214605331534,46.286350250244254],[2.488920211792106,46.250007629394645],[2.51520299911499,46.23854446411133],[2.528499126434326,46.184940338134766],[2.559154748916626,46.17440795898443],[2.565378904342708,46.1430397033692],[2.550522565841788,46.118957519531364],[2.550607204437313,46.086448669433594],[2.5733420848847,46.04692459106451],[2.602696418762264,46.03287506103521],[2.593142747879085,45.99606323242193],[2.606830358505306,45.966423034667905],[2.568712472915706,45.95787429809582],[2.542185306549072,45.91991424560546],[2.553195714950618,45.91139221191411],[2.511872291565055,45.886955261230526],[2.492225408554077,45.86402893066406],[2.44342398643505,45.86674499511724],[2.447822809219474,45.845821380615234],[2.388020515441838,45.82737731933588],[2.430863142013607,45.78861618041992],[2.434118747711125,45.76985549926769],[2.49212551116949,45.737670898437614],[2.435855865478629,45.6992759704591],[2.367804527282829,45.71312332153326],[2.320097923278865,45.670539855957145],[2.271640777587834,45.664237976074325],[2.271074295043945,45.69164657592785],[2.210923671722469,45.70256042480474],[2.203400850296021,45.71713256835932],[2.113220930099487,45.72657394409173],[2.060475826263428,45.753902435302734],[2.01410174369812,45.75447845458996],[1.990889310836905,45.72302246093761],[1.956387162208671,45.72399520874029],[1.944381952285823,45.706954956054744],[1.918947458267326,45.71205520629894],[1.898730754852352,45.69827651977545],[1.873468518257084,45.72771835327143],[1.896354317665214,45.76007080078125],[1.883804917335624,45.79470825195324],[1.8430917263031,45.8139762878418],[1.815598845481929,45.814403533935604],[1.777870416641292,45.833263397216854],[1.755836963653621,45.85566711425781],[1.72966921329504,45.843494415283146],[1.652828097343445,45.84563064575195],[1.602398514747563,45.85746383666992],[1.602084875106925,45.88967514038086],[1.64156973361969,45.89622116088873],[1.604933738708496,45.933059692382805],[1.573382616043205,45.915824890136825],[1.547265052795467,45.91683197021479],[1.513821601867789,45.93107223510742],[1.518655657768249,45.95049667358393],[1.566240549087581,45.96368408203131],[1.56838762760168,45.99683761596673],[1.537903070449829,45.997337341308594],[1.5477232933045,46.03605651855469],[1.533002972602901,46.058986663818466],[1.541189193725586,46.07567596435558],[1.488492250442562,46.10815429687499],[1.504851460456962,46.123195648193416],[1.470089673996085,46.14960098266613],[1.452574014663696,46.181148529052734],[1.398495793342647,46.185882568359425],[1.379038929939327,46.21940994262707],[1.407696127891597,46.25443649291997],[1.425424695014897,46.29804229736334],[1.44238471984869,46.30341720581055],[1.440265893936271,46.335350036621094],[1.415190458297786,46.347217559814396],[1.436632752418518,46.356006622314446],[1.510587811469975,46.41925811767578],[1.543673634529227,46.41649627685558],[1.546187400817871,46.395931243896534],[1.600772142410335,46.41961669921875],[1.641089677810726,46.38558959960943],[1.683602571487427,46.41817855834955],[1.709384679794368,46.393428802490234],[1.750548720359859,46.40559387207037],[1.75973749160778,46.42748641967785],[1.747590184211731,46.45001983642584],[1.798244357109127,46.454906463623104],[1.818454504013062,46.43142318725591],[1.926118493080196,46.4319114685058],[1.97875273227703,46.44152450561529],[1.993082404136771,46.43091583251953],[2.072452068328857,46.420108795166016],[2.167785644531193,46.42407608032238]]]},"properties":{"ID_0":79,"ISO":"FR-23","NAME_0":"France","ID_1":14,"NAME_1":"Limousin","ID_2":55,"NAME_2":"Creuse","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.415190458297786,46.347217559814396],[1.440265893936271,46.335350036621094],[1.44238471984869,46.30341720581055],[1.425424695014897,46.29804229736334],[1.407696127891597,46.25443649291997],[1.379038929939327,46.21940994262707],[1.398495793342647,46.185882568359425],[1.452574014663696,46.181148529052734],[1.470089673996085,46.14960098266613],[1.504851460456962,46.123195648193416],[1.488492250442562,46.10815429687499],[1.541189193725586,46.07567596435558],[1.533002972602901,46.058986663818466],[1.5477232933045,46.03605651855469],[1.537903070449829,45.997337341308594],[1.56838762760168,45.99683761596673],[1.566240549087581,45.96368408203131],[1.518655657768249,45.95049667358393],[1.513821601867789,45.93107223510742],[1.547265052795467,45.91683197021479],[1.573382616043205,45.915824890136825],[1.604933738708496,45.933059692382805],[1.64156973361969,45.89622116088873],[1.602084875106925,45.88967514038086],[1.602398514747563,45.85746383666992],[1.652828097343445,45.84563064575195],[1.72966921329504,45.843494415283146],[1.755836963653621,45.85566711425781],[1.777870416641292,45.833263397216854],[1.815598845481929,45.814403533935604],[1.8430917263031,45.8139762878418],[1.883804917335624,45.79470825195324],[1.896354317665214,45.76007080078125],[1.873468518257084,45.72771835327143],[1.898730754852352,45.69827651977545],[1.874815821647758,45.66466522216808],[1.826436638832149,45.665046691894645],[1.785834431648368,45.68266296386719],[1.776995897293148,45.66109848022472],[1.750204801559448,45.64570999145508],[1.710733413696346,45.64133834838867],[1.664764881134033,45.61169433593749],[1.658936858177185,45.5969352722168],[1.625187277793998,45.578685760498104],[1.600403428077698,45.579444885253906],[1.584891438484249,45.556076049804744],[1.558782696723995,45.55094528198242],[1.517393827438411,45.56427764892584],[1.51134717464447,45.55213546752935],[1.45341527462017,45.552219390869254],[1.452689170837516,45.53505325317394],[1.408944010734501,45.52633285522461],[1.389600038528442,45.49615859985346],[1.372020363807678,45.49210357666015],[1.350077629089412,45.4668960571289],[1.285317420959473,45.490280151367244],[1.253151893615779,45.444217681884815],[1.212122678756771,45.462371826171875],[1.185123085975704,45.455101013183594],[1.162444353103751,45.47834777832031],[1.135644912719727,45.47116851806646],[1.118435740470943,45.48790359497082],[1.16536366939539,45.52640151977544],[1.119312405586356,45.545963287353516],[1.086023807525692,45.534744262695426],[1.047748565673828,45.55783081054699],[1.023588418960571,45.607219696044915],[0.983447432518005,45.60362243652355],[0.946144878864402,45.612552642822266],[0.893740236759186,45.601032257080185],[0.869353055954093,45.62352752685547],[0.839995682239532,45.58130264282232],[0.811500310897884,45.57587051391613],[0.805857419967708,45.59496688842767],[0.777188122272548,45.592170715332145],[0.750612974166984,45.616874694824276],[0.764133989811,45.631412506103516],[0.775643348693791,45.667747497558594],[0.744137287140006,45.68826293945318],[0.662086367607174,45.68748092651367],[0.629742443561611,45.71456909179693],[0.652866542339268,45.73937606811523],[0.695378899574337,45.76211929321294],[0.710514545440731,45.802200317382756],[0.742600083351249,45.8043785095216],[0.783778727054653,45.79347610473644],[0.782117664813995,45.82040405273443],[0.795988976955414,45.82988357543951],[0.827373206615505,45.8827476501466],[0.813539981841984,45.896884918213004],[0.821936547756195,45.931560516357536],[0.861097455024833,45.91978454589849],[0.884575426578579,45.923812866210994],[0.941492617130336,45.96058654785162],[0.924509346485252,46.01022720336914],[0.856265008449668,46.02972030639654],[0.817909300327358,46.04788589477545],[0.819170773029441,46.07739639282226],[0.832307457924003,46.104339599609375],[0.823433399200439,46.12858963012707],[0.84585261344921,46.13837051391596],[0.813373327255363,46.19768905639643],[0.80839920043951,46.22800445556646],[0.843548536300773,46.238883972168026],[0.861633241176605,46.26181793212902],[0.889699697494564,46.26854705810541],[0.901247560977993,46.28750610351568],[0.934185385704154,46.281326293945256],[1.00588679313671,46.280975341796875],[1.027162790298462,46.34344100952148],[1.048636555671806,46.356548309326286],[1.128578662872258,46.362220764160156],[1.177279949188346,46.38395309448248],[1.217970013618583,46.36825561523449],[1.250655889511222,46.376750946045036],[1.310512185096854,46.37437438964855],[1.344678044319153,46.4015998840332],[1.40700268745428,46.362640380859375],[1.415190458297786,46.347217559814396]]]},"properties":{"ID_0":79,"ISO":"FR-87","NAME_0":"France","ID_1":14,"NAME_1":"Limousin","ID_2":56,"NAME_2":"Haute-Vienne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.893401622772274,49.49691772460932],[5.929609298705998,49.48534774780285],[5.941791057586784,49.452636718750114],[5.911839962005671,49.40753555297863],[5.962819576263541,49.3448600769043],[5.951097965240535,49.327445983886776],[5.985220909118709,49.305171966552734],[6.000446319580135,49.275527954101555],[6.029171943664551,49.25003433227539],[6.02787542343151,49.23330688476574],[5.978771686554012,49.194858551025504],[6.017338752746582,49.17189025878917],[6.010886192321721,49.153678894043026],[5.982731342315674,49.14473724365239],[5.998959541320914,49.108333587646484],[5.93160343170166,49.10910415649414],[5.957571029663143,49.04782485961925],[6.005444526672476,49.034423828125],[6.044677734375,49.01244354248058],[6.043435096740779,48.97747802734381],[6.081322669982909,48.96304702758795],[6.114486217498835,48.967491149902344],[6.128252029418888,48.94935989379894],[6.175165176391715,48.936237335205185],[6.262561798095817,48.933509826660156],[6.311500549316349,48.89220428466802],[6.310247421264705,48.86348724365229],[6.288013458251953,48.84366989135748],[6.339646816253776,48.83348846435558],[6.332639694213867,48.81474685668957],[6.394874095916805,48.77476119995117],[6.433110237121696,48.7891006469726],[6.461365222930908,48.76732635498058],[6.491111278533936,48.76512527465831],[6.534210205078182,48.749599456787166],[6.562183856964111,48.75611114501947],[6.598965644836483,48.71569061279296],[6.661575317382869,48.70607757568371],[6.694580554962272,48.673019409179744],[6.726081371307373,48.66442108154297],[6.755129337310791,48.669876098632926],[6.782625675201415,48.64271926879877],[6.834289550781364,48.64362716674816],[6.847890853881893,48.623844146728516],[6.893295288085938,48.625003814697266],[6.930006980896109,48.63555145263683],[6.960798263549861,48.60828781127935],[7.034244537353629,48.5804176330567],[7.07936000823986,48.536418914795036],[7.077105522155989,48.51633453369151],[7.123165130615348,48.513591766357365],[7.09268665313715,48.51185607910162],[6.965266227722168,48.47154617309576],[6.892111301422233,48.41921234130871],[6.84918928146385,48.42383193969732],[6.815027236938533,48.39506912231451],[6.765889644622802,48.40163803100586],[6.712978839874381,48.42140197753906],[6.698643684387207,48.412860870361435],[6.647632122039795,48.4351310729981],[6.620753288268985,48.472408294677734],[6.584728717804011,48.45993041992187],[6.568589687347412,48.43822860717784],[6.534393787383975,48.43146133422857],[6.501791477203369,48.41456222534191],[6.456866264343375,48.41701507568359],[6.387394428253288,48.39214324951183],[6.308257579803524,48.411891937255966],[6.297321319580077,48.43374252319341],[6.270297527313176,48.426101684570426],[6.26044321060175,48.40640258789068],[6.178419589996452,48.39760971069347],[6.117049694061279,48.35383987426763],[6.079825401306209,48.36363983154297],[6.005126953125114,48.36041641235363],[5.964810371399039,48.35006332397466],[5.944654464721793,48.375816345214844],[5.949584960937557,48.39649963378912],[5.859340190887507,48.41650009155268],[5.897486686706486,48.44855117797846],[5.888674259185791,48.46940994262701],[5.904300212860107,48.482925415039176],[5.857234954834098,48.50685119628906],[5.810772418975886,48.49830245971691],[5.787024021148795,48.48291015625005],[5.765154838562012,48.49649429321295],[5.760970592498779,48.52146911621105],[5.776375293731803,48.540626525878906],[5.715484619140625,48.5623016357423],[5.717987537384147,48.59120941162115],[5.754817962646598,48.60630416870117],[5.760946273803825,48.63113784790039],[5.744509696960563,48.65689849853527],[5.76460170745861,48.701084136962834],[5.719037055969237,48.73291015625006],[5.740988731384221,48.75403213500982],[5.740039348602409,48.77224349975586],[5.7661590576173,48.78905487060558],[5.781350135803222,48.83536911010742],[5.765202999115047,48.87298965454101],[5.786585330963134,48.878200531005916],[5.751909255981559,48.92112350463872],[5.776647567749023,48.92515945434582],[5.799580097198429,48.94631958007812],[5.831350803375244,48.943973541259815],[5.849167823791618,48.96123123168957],[5.802735805511588,48.98711395263672],[5.821200370788517,49.01998519897455],[5.853476524353141,49.04045486450195],[5.82321310043335,49.08868408203131],[5.817852973937988,49.11104202270513],[5.760140419006348,49.109169006347656],[5.748301029205379,49.123123168945305],[5.758934974670524,49.152153015136776],[5.746400356292781,49.161479949951286],[5.765773296356315,49.19749832153326],[5.730303764343319,49.19516754150402],[5.719916343689022,49.21716308593749],[5.740555763244686,49.230117797851555],[5.720933437347355,49.24770736694347],[5.72472190856945,49.269786834716854],[5.760904788971004,49.27961349487305],[5.762899875640925,49.314331054687614],[5.732039451599121,49.310932159423885],[5.7208189964295,49.33008193969738],[5.737563610076961,49.35568237304693],[5.693565845489558,49.39720535278331],[5.691799640655631,49.41508865356451],[5.63355398178112,49.43787002563488],[5.584344863891602,49.41880798339849],[5.531253337860107,49.40774154663097],[5.493941783905029,49.407070159912166],[5.471244335174561,49.42803955078136],[5.464133739471549,49.4525985717774],[5.470910549163818,49.49721527099614],[5.531455516815298,49.512519836425895],[5.553982734680289,49.527870178222656],[5.593825817108268,49.5213623046875],[5.660805702209472,49.55235290527349],[5.701262950897217,49.53951644897472],[5.75715541839611,49.54256820678722],[5.772744655609188,49.56255340576171],[5.836172580719051,49.54177856445312],[5.836045742034969,49.51995849609386],[5.864011764526367,49.50125122070324],[5.893401622772274,49.49691772460932]]]},"properties":{"ID_0":79,"ISO":"FR-54","NAME_0":"France","ID_1":15,"NAME_1":"Lorraine","ID_2":57,"NAME_2":"Meurthe-et-Moselle","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.470910549163818,49.49721527099614],[5.464133739471549,49.4525985717774],[5.471244335174561,49.42803955078136],[5.493941783905029,49.407070159912166],[5.531253337860107,49.40774154663097],[5.584344863891602,49.41880798339849],[5.63355398178112,49.43787002563488],[5.691799640655631,49.41508865356451],[5.693565845489558,49.39720535278331],[5.737563610076961,49.35568237304693],[5.7208189964295,49.33008193969738],[5.732039451599121,49.310932159423885],[5.762899875640925,49.314331054687614],[5.760904788971004,49.27961349487305],[5.72472190856945,49.269786834716854],[5.720933437347355,49.24770736694347],[5.740555763244686,49.230117797851555],[5.719916343689022,49.21716308593749],[5.730303764343319,49.19516754150402],[5.765773296356315,49.19749832153326],[5.746400356292781,49.161479949951286],[5.758934974670524,49.152153015136776],[5.748301029205379,49.123123168945305],[5.760140419006348,49.109169006347656],[5.817852973937988,49.11104202270513],[5.82321310043335,49.08868408203131],[5.853476524353141,49.04045486450195],[5.821200370788517,49.01998519897455],[5.802735805511588,48.98711395263672],[5.849167823791618,48.96123123168957],[5.831350803375244,48.943973541259815],[5.799580097198429,48.94631958007812],[5.776647567749023,48.92515945434582],[5.751909255981559,48.92112350463872],[5.786585330963134,48.878200531005916],[5.765202999115047,48.87298965454101],[5.781350135803222,48.83536911010742],[5.7661590576173,48.78905487060558],[5.740039348602409,48.77224349975586],[5.740988731384221,48.75403213500982],[5.719037055969237,48.73291015625006],[5.76460170745861,48.701084136962834],[5.744509696960563,48.65689849853527],[5.760946273803825,48.63113784790039],[5.754817962646598,48.60630416870117],[5.717987537384147,48.59120941162115],[5.715484619140625,48.5623016357423],[5.776375293731803,48.540626525878906],[5.760970592498779,48.52146911621105],[5.765154838562012,48.49649429321295],[5.740233421325627,48.46586990356457],[5.715582370758056,48.46084594726556],[5.676377773284968,48.4715309143067],[5.615055084228516,48.4405136108399],[5.560826778411865,48.44147109985363],[5.515346527099609,48.42991256713867],[5.504005432128963,48.40933609008795],[5.470061779022159,48.42092895507823],[5.445930480957145,48.424839019775504],[5.409501552581787,48.44554138183605],[5.398074150085505,48.47318649291992],[5.349470138549861,48.48198699951183],[5.327370643615723,48.50932312011718],[5.272637367248535,48.514316558838004],[5.229124546051139,48.5307731628418],[5.165067672729548,48.56534194946288],[5.143528461456356,48.563133239746094],[5.117875099182242,48.58689117431652],[5.070285797119254,48.595924377441406],[5.05173921585083,48.632911682128906],[5.032918930053825,48.61355590820318],[5.006401062011776,48.61138916015625],[4.98842811584467,48.684429168701286],[5.009220123291128,48.741390228271484],[4.989574909210205,48.742046356201286],[4.93437576293951,48.790588378906364],[4.893365383148193,48.796958923339844],[4.88876104354864,48.81721115112316],[4.935492515564079,48.840499877929744],[4.912255764007568,48.869461059570305],[4.913592338562069,48.89767837524425],[4.936209201812743,48.92214202880865],[4.973320007324219,48.92886734008789],[5.030943393707389,48.954326629638786],[5.037756443023738,48.97412490844732],[5.035267353057975,49.02256011962885],[5.010010719299316,49.03468704223633],[4.996342658996582,49.106502532959034],[4.942377567291203,49.18677139282232],[4.991859436035156,49.21083831787109],[4.970838069915885,49.23553466796881],[4.950989246368464,49.23686599731445],[5.011029243469238,49.26928710937505],[5.051180839538688,49.27405166625971],[5.05663633346569,49.29336547851574],[5.030794143676758,49.30817031860363],[5.027099609374943,49.33561325073253],[5.055816173553467,49.35943603515625],[5.088621616363525,49.369625091552734],[5.104149341583308,49.38977813720703],[5.084472179412899,49.4045867919923],[5.115028381347599,49.42058181762695],[5.100886344909725,49.44083404541027],[5.109860420227051,49.45624923706054],[5.059871673583984,49.504707336425895],[5.097719669342097,49.53364562988287],[5.09607982635498,49.55778503417969],[5.119714736938476,49.592678070068416],[5.145609378814754,49.58919525146496],[5.15988731384283,49.56669235229492],[5.234343528747672,49.56909179687506],[5.262710094452018,49.54182052612315],[5.308170795440731,49.56284713745117],[5.339980602264347,49.594188690185604],[5.377237319946346,49.59262084960948],[5.393536567688045,49.61708831787103],[5.430971622467098,49.59238433837896],[5.442548751831112,49.55027389526367],[5.465261459350643,49.536308288574276],[5.447196483612061,49.51788330078136],[5.470910549163818,49.49721527099614]]]},"properties":{"ID_0":79,"ISO":"FR-55","NAME_0":"France","ID_1":15,"NAME_1":"Lorraine","ID_2":58,"NAME_2":"Meuse","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.635286331176758,49.05416870117199],[7.588737010955754,48.99104690551758],[7.57992601394659,48.96161270141613],[7.536513805389404,48.9336395263673],[7.451631069183463,48.967971801757926],[7.379917621612605,48.95119857788086],[7.359096050262508,48.956470489501896],[7.326852798461914,48.94338226318371],[7.290202617645264,48.95651626586914],[7.293926715850887,48.972618103027344],[7.237987995147762,48.98765182495123],[7.209311485290527,48.98008728027344],[7.174240112304687,49.006366729736385],[7.12995100021385,49.0053596496582],[7.106357574463004,49.0453453063966],[7.099342346191463,49.077892303466854],[7.068600177764892,49.06338882446295],[7.078660011291446,49.050361633300895],[7.054912567138671,49.03062820434582],[7.052350997924862,49.008701324463004],[7.031687259674015,48.986366271972656],[7.032219409942627,48.95605087280285],[6.992516994476432,48.96052932739258],[6.977410316467285,48.93305587768555],[6.955067157745361,48.919960021972656],[6.957379817962646,48.89415740966808],[6.987973690033016,48.891368865966854],[7.055009841919059,48.864917755126896],[7.04711723327631,48.82063674926769],[7.087958335876408,48.80617141723627],[7.126799583435115,48.80115127563482],[7.147360801696834,48.82225036621105],[7.148854255676326,48.844596862793075],[7.203428268432674,48.826957702636776],[7.227121353149414,48.82846069335937],[7.245234966278132,48.81003189086913],[7.290898799896297,48.793907165527344],[7.308582782745418,48.76787948608398],[7.260134220123405,48.694713592529354],[7.26627588272106,48.66230010986328],[7.304355621338004,48.66020965576171],[7.280715942382869,48.63721847534179],[7.25628185272211,48.58867645263671],[7.21657133102417,48.552364349365234],[7.193254470825251,48.54924392700207],[7.168498992919978,48.528694152832145],[7.07936000823986,48.536418914795036],[7.034244537353629,48.5804176330567],[6.960798263549861,48.60828781127935],[6.930006980896109,48.63555145263683],[6.893295288085938,48.625003814697266],[6.847890853881893,48.623844146728516],[6.834289550781364,48.64362716674816],[6.782625675201415,48.64271926879877],[6.755129337310791,48.669876098632926],[6.726081371307373,48.66442108154297],[6.694580554962272,48.673019409179744],[6.661575317382869,48.70607757568371],[6.598965644836483,48.71569061279296],[6.562183856964111,48.75611114501947],[6.534210205078182,48.749599456787166],[6.491111278533936,48.76512527465831],[6.461365222930908,48.76732635498058],[6.433110237121696,48.7891006469726],[6.394874095916805,48.77476119995117],[6.332639694213867,48.81474685668957],[6.339646816253776,48.83348846435558],[6.288013458251953,48.84366989135748],[6.310247421264705,48.86348724365229],[6.311500549316349,48.89220428466802],[6.262561798095817,48.933509826660156],[6.175165176391715,48.936237335205185],[6.128252029418888,48.94935989379894],[6.114486217498835,48.967491149902344],[6.081322669982909,48.96304702758795],[6.043435096740779,48.97747802734381],[6.044677734375,49.01244354248058],[6.005444526672476,49.034423828125],[5.957571029663143,49.04782485961925],[5.93160343170166,49.10910415649414],[5.998959541320914,49.108333587646484],[5.982731342315674,49.14473724365239],[6.010886192321721,49.153678894043026],[6.017338752746582,49.17189025878917],[5.978771686554012,49.194858551025504],[6.02787542343151,49.23330688476574],[6.029171943664551,49.25003433227539],[6.000446319580135,49.275527954101555],[5.985220909118709,49.305171966552734],[5.951097965240535,49.327445983886776],[5.962819576263541,49.3448600769043],[5.911839962005671,49.40753555297863],[5.941791057586784,49.452636718750114],[5.929609298705998,49.48534774780285],[5.893401622772274,49.49691772460932],[5.945434093475342,49.49964141845703],[5.97020149230957,49.49022293090825],[5.974236488342342,49.46641540527343],[6.042151451110954,49.447807312011776],[6.056343555450495,49.46540451049804],[6.100008487701416,49.46677780151373],[6.144611835479849,49.487735748291016],[6.156764030456543,49.50283813476557],[6.235638618469295,49.50806808471691],[6.276154041290282,49.503536224365234],[6.295624732971247,49.48171615600597],[6.333777427673454,49.46689224243164],[6.40320014953619,49.46595764160162],[6.422406673431396,49.47601318359381],[6.468185901641959,49.46473312377941],[6.535418987274113,49.434162139892635],[6.554641246795654,49.41904830932617],[6.540528297424373,49.40114593505871],[6.584013462066707,49.384719848632926],[6.599329471588135,49.366619110107415],[6.565380573272648,49.34928894042962],[6.615992069244611,49.30268478393555],[6.66784572601324,49.28043746948248],[6.661530017853011,49.257331848144645],[6.684309005737418,49.25207519531249],[6.692921638488769,49.21754837036144],[6.730622768402213,49.206710815429744],[6.712838172912541,49.189559936523494],[6.737987518310604,49.16456985473627],[6.784133911132926,49.1681480407716],[6.834462642669735,49.15137863159191],[6.860935211181641,49.17862701416015],[6.837654113769588,49.21126174926769],[6.858445644378776,49.22163009643555],[6.894287586212271,49.21019744873058],[6.934805393219222,49.222129821777344],[6.957561016082764,49.20380401611328],[7.033706188201847,49.18826293945324],[7.028265476227034,49.17131423950201],[7.058024406433162,49.1125869750976],[7.104239463806152,49.1386833190918],[7.158799171447754,49.1207733154298],[7.245446205139216,49.12971115112305],[7.293400287628287,49.115158081054744],[7.32595539093012,49.1434440612793],[7.362774372100886,49.14517593383789],[7.366178035736084,49.17201232910162],[7.445586204528752,49.18402481079096],[7.456798076629752,49.16413116455078],[7.491343021392765,49.16851043701172],[7.503565311431829,49.150531768798885],[7.489583015442008,49.13652801513677],[7.517829895019588,49.11877441406256],[7.531178951263484,49.097133636474666],[7.568486213684139,49.07990646362304],[7.599774837493897,49.083007812500114],[7.627396106720028,49.07339859008783],[7.635286331176758,49.05416870117199]]]},"properties":{"ID_0":79,"ISO":"FR-57","NAME_0":"France","ID_1":15,"NAME_1":"Lorraine","ID_2":59,"NAME_2":"Moselle","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Lothringen"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.123165130615348,48.513591766357365],[7.125453948974723,48.499603271484375],[7.095686912536678,48.426532745361385],[7.100822448730469,48.37374496459972],[7.075964450836238,48.352584838867244],[7.117123603820801,48.33413314819336],[7.178990840911979,48.32862091064464],[7.198282241821233,48.310478210449276],[7.148723125457821,48.264339447021484],[7.106290340423698,48.19430923461914],[7.086996555328426,48.183753967285156],[7.059046268463192,48.139179229736264],[7.084163188934269,48.12922286987316],[7.051650047302303,48.082607269287166],[7.034357547759953,48.0753898620606],[7.002565860748291,48.023250579833984],[6.943508625030574,47.99873733520519],[6.920379638671874,47.945999145507926],[6.92751312255865,47.91213226318359],[6.898328304290828,47.888694763183594],[6.920047760009709,47.850288391113395],[6.896086215973128,47.832973480224666],[6.846179962158316,47.82294464111334],[6.823538780212459,47.813053131103516],[6.79194593429571,47.83016586303722],[6.784952163696232,47.849575042724666],[6.738163948059082,47.8620491027832],[6.70367431640625,47.88142395019531],[6.645202636718807,47.90408706665045],[6.629285335540884,47.928180694580185],[6.601244449615479,47.944377899170036],[6.568707942962646,47.93449783325207],[6.542013645172119,47.902534484863395],[6.478261947631893,47.88544082641613],[6.431921482086125,47.943809509277344],[6.408420085906982,47.943195343017635],[6.364992618560847,47.96257400512695],[6.322461128234976,47.95008087158203],[6.277333736419735,47.95380783081055],[6.237987041473446,47.932842254638665],[6.182055950164851,47.95693206787104],[6.161246776580924,47.95829772949219],[6.156057834625358,48.00694274902344],[6.131397247314453,48.024085998535156],[6.109234809875602,48.01247024536144],[6.072221279144401,48.01554870605469],[6.036863803863639,48.00145339965832],[6.002262115478516,47.95608901977539],[5.970777988433838,47.957206726074276],[5.947534561157283,47.979709625244254],[5.921330451965446,47.971027374267635],[5.918042659759635,47.94736099243164],[5.884726524353084,47.926048278808594],[5.833769321441594,47.959617614746094],[5.788412094116325,47.952697753906364],[5.778491973876896,47.978008270263615],[5.794785022735596,47.99679565429682],[5.776419162750244,48.02240753173828],[5.740804195404166,48.049011230468864],[5.692103862762508,48.07552719116211],[5.633142948150692,48.08429718017589],[5.656557559967098,48.120552062988395],[5.685355663299674,48.150619506835994],[5.680172920227107,48.1786727905274],[5.730982780456486,48.18970108032238],[5.710844039916992,48.219936370849666],[5.640901088714656,48.242355346679744],[5.653809070587158,48.26852416992193],[5.611651897430534,48.29181671142589],[5.58552980422985,48.280433654785156],[5.533514022827148,48.325103759765625],[5.526526927947941,48.34685516357422],[5.474495887756404,48.354568481445426],[5.426048278808651,48.33106231689459],[5.418554782867432,48.36069488525402],[5.442883968353385,48.37938690185558],[5.409779071807861,48.392620086670036],[5.470061779022159,48.42092895507823],[5.504005432128963,48.40933609008795],[5.515346527099609,48.42991256713867],[5.560826778411865,48.44147109985363],[5.615055084228516,48.4405136108399],[5.676377773284968,48.4715309143067],[5.715582370758056,48.46084594726556],[5.740233421325627,48.46586990356457],[5.765154838562012,48.49649429321295],[5.787024021148795,48.48291015625005],[5.810772418975886,48.49830245971691],[5.857234954834098,48.50685119628906],[5.904300212860107,48.482925415039176],[5.888674259185791,48.46940994262701],[5.897486686706486,48.44855117797846],[5.859340190887507,48.41650009155268],[5.949584960937557,48.39649963378912],[5.944654464721793,48.375816345214844],[5.964810371399039,48.35006332397466],[6.005126953125114,48.36041641235363],[6.079825401306209,48.36363983154297],[6.117049694061279,48.35383987426763],[6.178419589996452,48.39760971069347],[6.26044321060175,48.40640258789068],[6.270297527313176,48.426101684570426],[6.297321319580077,48.43374252319341],[6.308257579803524,48.411891937255966],[6.387394428253288,48.39214324951183],[6.456866264343375,48.41701507568359],[6.501791477203369,48.41456222534191],[6.534393787383975,48.43146133422857],[6.568589687347412,48.43822860717784],[6.584728717804011,48.45993041992187],[6.620753288268985,48.472408294677734],[6.647632122039795,48.4351310729981],[6.698643684387207,48.412860870361435],[6.712978839874381,48.42140197753906],[6.765889644622802,48.40163803100586],[6.815027236938533,48.39506912231451],[6.84918928146385,48.42383193969732],[6.892111301422233,48.41921234130871],[6.965266227722168,48.47154617309576],[7.09268665313715,48.51185607910162],[7.123165130615348,48.513591766357365]]]},"properties":{"ID_0":79,"ISO":"FR-88","NAME_0":"France","ID_1":15,"NAME_1":"Lorraine","ID_2":60,"NAME_2":"Vosges","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.688419699668884,43.273551940918026],[1.724626421928519,43.212497711181584],[1.711779952049369,43.186840057373104],[1.826187610626277,43.1456871032716],[1.874489903450069,43.14264678955078],[1.890102863311767,43.12347030639648],[1.91626942157751,43.133430480956974],[1.945064544677848,43.12235641479498],[1.961180686950797,43.06669998168951],[1.945866227150077,43.049396514892685],[1.975929021835384,43.04230499267578],[1.985468149185238,43.023479461669865],[1.979381680488586,42.9605064392091],[1.936138391494864,42.952056884765625],[1.933731198310852,42.93914413452159],[1.980574369430656,42.929580688476555],[1.989327311515922,42.910488128662166],[1.985040664672909,42.87085723876953],[1.947126030921936,42.856689453125],[1.875897049903983,42.852325439453125],[1.860177874565181,42.82742691040039],[1.895569682121277,42.80892944335943],[1.928959369659538,42.774604797363395],[1.909520149230957,42.76843643188488],[1.950255036354122,42.73765945434575],[2.003780126571769,42.73352813720703],[2.058119058608952,42.755485534668026],[2.161494493484497,42.700523376464844],[2.175521373748779,42.68274688720703],[2.16605377197277,42.66391754150396],[2.127885103225765,42.67203903198248],[2.073887109756583,42.665622711181754],[2.027051925659237,42.65262222290045],[1.997955799102726,42.66090393066412],[1.969060301780758,42.61674118041998],[1.91076564788824,42.60806274414068],[1.86532902717596,42.579887390136825],[1.838153481483459,42.58401107788097],[1.784208893775883,42.57571792602545],[1.728249907493648,42.58957290649414],[1.722918033599967,42.61171722412121],[1.690446734428519,42.622329711914055],[1.605046987533569,42.62314605712896],[1.575307488441581,42.64736557006835],[1.551056981086845,42.65231704711914],[1.478919982910156,42.634738922119254],[1.479483008384761,42.610874176025504],[1.448205947875977,42.60021972656256],[1.428884029388541,42.61336135864269],[1.413033246994018,42.6526451110841],[1.392752051353568,42.66743087768555],[1.387916922569275,42.68730545043951],[1.351433992385921,42.704677581787166],[1.357378125190735,42.71942138671881],[1.251881957054195,42.71484756469738],[1.229292750358582,42.727722167968864],[1.165018081665039,42.70952606201177],[1.133241057396049,42.7282600402832],[1.12919294834137,42.75265502929693],[1.107016444206238,42.771453857421875],[1.073248028755188,42.78236389160162],[1.00707995891571,42.79023742675787],[0.984495997429008,42.786155700683594],[0.960393071174678,42.80515670776373],[0.925827205181179,42.789672851562614],[0.858305692672843,42.82571792602538],[0.842883288860321,42.88958358764643],[0.826681554317588,42.915500640869254],[0.877979457378387,42.92782592773432],[0.874911367893333,42.957775115966854],[0.912638902664298,42.959396362304744],[0.979101359844208,42.97443008422863],[1.005528807640189,43.00608825683594],[0.989041686058101,43.023395538330135],[0.985586166381836,43.062465667724666],[0.991670012474174,43.09117126464849],[1.009500741958732,43.11348342895519],[1.038230061531067,43.10030746459972],[1.062937736511174,43.13866806030285],[1.087976813316402,43.13382339477545],[1.124082088470572,43.15690612792968],[1.145858645439262,43.13853454589855],[1.174984216690063,43.140975952148494],[1.210750937461967,43.11509704589855],[1.22357106208807,43.08592605590826],[1.261853694915771,43.09165191650402],[1.260736584663448,43.10799026489258],[1.290166020393428,43.12343978881836],[1.273872494697628,43.14838790893566],[1.223737716674918,43.15207290649414],[1.230324387550468,43.187385559082145],[1.253253817558289,43.18379211425775],[1.276631951332206,43.195549011230526],[1.314607858657837,43.189994812011776],[1.327822327613944,43.20455932617199],[1.370204210281486,43.21067047119152],[1.374902963638363,43.238639831543026],[1.318422198295593,43.25115203857422],[1.294111132621765,43.264926910400504],[1.301558256149406,43.287563323974666],[1.323968291282767,43.30939865112305],[1.345491409301815,43.31549072265631],[1.426046729087886,43.255790710449276],[1.417138576507682,43.22647476196289],[1.468744039535466,43.209564208984375],[1.504521846771297,43.24952697753912],[1.488674044609127,43.26860427856445],[1.545386075973511,43.27679824829101],[1.565423369407767,43.25539016723644],[1.582583427429256,43.268871307373104],[1.637143492698669,43.25400924682623],[1.67361319065094,43.281345367431584],[1.688419699668884,43.273551940918026]]]},"properties":{"ID_0":79,"ISO":"FR-09","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":61,"NAME_2":"Ariège","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.981677055359,44.644676208496094],[3.037130594253654,44.59553527832037],[3.083469867706412,44.560317993164006],[3.068931818008422,44.502704620361385],[3.117325305938834,44.473785400390625],[3.135486364364624,44.45551681518548],[3.137053251266479,44.39162063598627],[3.120220899581909,44.363311767578125],[3.154266595840568,44.30922698974615],[3.125306129455509,44.28541946411133],[3.154268264770621,44.27304077148448],[3.160531759262199,44.24628067016596],[3.230540037155265,44.23033905029308],[3.219211339950562,44.204502105712834],[3.239261150360164,44.19066238403326],[3.301043033599967,44.20647048950195],[3.360412120819092,44.201492309570426],[3.373648166656608,44.1707649230957],[3.336682081222477,44.15813064575206],[3.320353746414185,44.13594818115234],[3.323849201202336,44.108917236328125],[3.263300418853873,44.09255599975586],[3.295949459075985,44.069450378418026],[3.323059558868465,44.079849243164176],[3.337653160095272,44.058509826660156],[3.386653900146598,44.05496215820318],[3.450981378555298,44.02254104614252],[3.443552255630493,44.00233840942382],[3.418529033660945,43.99229431152355],[3.405615091323966,43.96968078613281],[3.377508640289307,43.96690368652355],[3.351584196090812,43.93761444091796],[3.358359336853027,43.91383361816412],[3.34256815910345,43.89419174194336],[3.26643943786621,43.89609527587896],[3.242139577865601,43.87399673461914],[3.236856937408447,43.85407638549816],[3.249037027359122,43.829578399658196],[3.205308198928833,43.81296157836914],[3.127710819244498,43.81740570068354],[3.0882666110993,43.83510208129883],[3.064907550811824,43.83556747436535],[3.048567771911735,43.80149841308599],[3.074304819107056,43.76761245727545],[3.056274890899715,43.75495147705084],[3.060678243637085,43.69280624389648],[3.031300067901611,43.692451477050895],[2.982088088989201,43.70803070068365],[2.93546295166027,43.694667816162045],[2.919138908386344,43.732467651367244],[2.902605056762695,43.742271423339844],[2.87045335769659,43.73916244506836],[2.814518213272208,43.76158523559582],[2.781498908996525,43.736957550048935],[2.740542888641471,43.72895812988281],[2.713823318481502,43.74196624755865],[2.681730508804378,43.743515014648494],[2.629212617874259,43.780254364013786],[2.609146595001278,43.806808471679744],[2.561801910400391,43.84597396850585],[2.576271295547485,43.881759643554744],[2.552006721496696,43.89157104492199],[2.553841829299984,43.921085357666016],[2.508499145507812,43.94527435302739],[2.523254871368408,43.98014831542969],[2.501797914505005,43.98663330078125],[2.484887838363704,44.02468872070324],[2.460870742797852,44.050323486328125],[2.410210132598934,44.055858612060604],[2.389214754104671,44.09457015991216],[2.357738494873104,44.10155487060558],[2.332443237304687,44.123023986816406],[2.307294845581112,44.118537902832145],[2.284880399703979,44.14533615112316],[2.237414836883545,44.13430404663097],[2.237613677978572,44.15862655639654],[2.180790424346924,44.17827987670904],[2.15814995765686,44.17923355102545],[2.149213075637931,44.20054244995117],[2.114063739776611,44.195800781250114],[2.030249834060783,44.157573699951286],[1.990170717239494,44.14945220947277],[1.973979711532649,44.18139266967785],[1.912990093231201,44.18841171264654],[1.908349752426261,44.21245574951172],[1.932162523269596,44.24264526367193],[1.962021231651306,44.24234008789074],[1.970633387565613,44.27634811401373],[1.940270781517029,44.28255081176758],[1.901390552520865,44.279117584228516],[1.860482931137198,44.321937561035156],[1.882082700729313,44.34007263183594],[1.90823853015911,44.36341857910162],[1.868874788284359,44.397212982177734],[1.873185753822327,44.424140930175724],[1.850807547569275,44.43733215332031],[1.84075832366949,44.47948837280285],[1.920824050903434,44.49192047119146],[1.938833951950016,44.51609802246093],[1.957918286323661,44.51904296875006],[1.984238862991333,44.54726028442377],[2.01884222030651,44.555561065673885],[2.054844617843685,44.58019256591797],[2.084695816040039,44.5850715637207],[2.104022741317806,44.57147216796881],[2.15256190299999,44.57158660888672],[2.169551610946598,44.59132385253912],[2.198402643203735,44.593173980713004],[2.207475185394344,44.615531921386776],[2.208414077758903,44.6438446044923],[2.286239624023381,44.6664390563966],[2.324130058288574,44.66915512084961],[2.350984096527213,44.6412353515625],[2.380878210067692,44.64966964721691],[2.43565034866333,44.639743804931754],[2.468039989471549,44.6428947448731],[2.489523649215698,44.65871429443371],[2.500495910644531,44.68880844116211],[2.556230068206901,44.722229003906364],[2.553678035736027,44.75742340087896],[2.564486026763859,44.778091430664176],[2.600122690200806,44.79366683959972],[2.604162216186523,44.84309005737298],[2.629077434539852,44.87225723266613],[2.65304875373846,44.86977005004894],[2.681867837905884,44.90734863281255],[2.706372261047363,44.90708923339844],[2.716765642166138,44.9288330078125],[2.737687826156729,44.94036483764643],[2.776095151901245,44.90963745117193],[2.778589725494442,44.88749694824219],[2.804778099060172,44.87378692626959],[2.851404428482113,44.871952056884766],[2.855560064315796,44.851230621338004],[2.889642000198364,44.78832626342785],[2.920190811157283,44.794315338134766],[2.933773994445801,44.780647277832024],[2.923264503479118,44.72864913940424],[2.93934607505804,44.67757415771496],[2.981677055359,44.644676208496094]]]},"properties":{"ID_0":79,"ISO":"FR-12","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":62,"NAME_2":"Aveyron","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.741884768009129,44.06520080566406],[0.764047920703945,44.02964019775402],[0.822057127952689,44.05559539794933],[0.849297761917228,44.0344734191895],[0.81455105543148,44.02281570434576],[0.826871812343597,43.99749374389654],[0.760114133358115,43.945304870605526],[0.770003974437714,43.922142028808594],[0.809297919273433,43.93230056762707],[0.840336859226284,43.91600418090826],[0.864677667617855,43.9231796264649],[0.889230489730949,43.90424728393566],[0.886032879352683,43.87224578857427],[0.904105901718253,43.86095428466797],[0.895239293575287,43.83989715576183],[0.925163149833793,43.832027435302734],[0.897291123867092,43.7885360717774],[0.953983128070888,43.78737258911127],[0.95909887552267,43.77180480957042],[1.027387976646423,43.71043395996094],[1.065703153610229,43.70022964477538],[1.049022436141968,43.6760139465332],[1.090188384056091,43.64419174194336],[1.146710634231681,43.63558197021495],[1.158654093742484,43.60517501831066],[1.180900216102714,43.614101409912166],[1.200300693511963,43.595874786376896],[1.199342727661133,43.56918334960943],[1.163915634155273,43.57196426391607],[1.156430244445914,43.556827545166016],[1.125247001648063,43.55449295043945],[1.097081542015189,43.533229827880916],[1.059616446495056,43.53932571411138],[1.051385164260921,43.48913192749029],[1.017532825470084,43.4735946655274],[1.041670083999747,43.46081542968756],[1.018913507461548,43.43065643310547],[1.022787809371948,43.41170501708996],[1.001607060432491,43.39102172851568],[0.993662059307041,43.36653137207031],[0.966509282588959,43.37118148803705],[0.917251110076904,43.40633392333996],[0.864437758922634,43.41583251953131],[0.820541322231406,43.416984558105526],[0.80729699134838,43.39972305297857],[0.770421624183768,43.416809082031364],[0.731535673141479,43.372188568115234],[0.715342760086059,43.37888717651373],[0.674718856811523,43.32951354980463],[0.644252777099723,43.31239318847656],[0.606810986995811,43.310886383056754],[0.54706913232809,43.32980728149414],[0.505965948104915,43.3331871032716],[0.493539661169109,43.32548141479498],[0.444980084896201,43.34073638916027],[0.442971318960247,43.3279266357423],[0.395822793245316,43.334243774414176],[0.378548383712825,43.35536575317383],[0.331350296735764,43.34265518188482],[0.325406849384422,43.374774932861435],[0.298759490251655,43.38858032226574],[0.231704190373421,43.367713928222656],[0.182031214237327,43.37118148803705],[0.173804938793239,43.40277099609375],[0.15695665776741,43.39892959594732],[0.134548753500042,43.42248916625971],[0.166064128279743,43.442378997802734],[0.13074146211153,43.47406387329107],[0.127468124032021,43.49899673461914],[0.112247779965514,43.51737213134777],[0.053621441125927,43.518768310546875],[0.030054572969789,43.54456710815423],[-0.001665770076215,43.56532287597656],[-0.015008710324707,43.60552597045904],[-0.074212595820313,43.606178283691456],[-0.096782974898815,43.582405090332145],[-0.162107899785042,43.58166503906244],[-0.176560878753605,43.59683227539068],[-0.242837071418762,43.58498382568365],[-0.24720419943327,43.61595916748058],[-0.274354100227299,43.61604309082031],[-0.239730194211006,43.67124176025396],[-0.247380658984184,43.70924377441417],[-0.194143295288029,43.73701858520502],[-0.2156824767589,43.77240753173828],[-0.218646913766861,43.79658889770508],[-0.194708436727467,43.809211730956974],[-0.189844444394112,43.833698272705185],[-0.208908215165081,43.85766983032232],[-0.193995684385243,43.8816871643067],[-0.232803344726506,43.90158462524425],[-0.200575128197613,43.91463851928711],[-0.177077353000641,43.935680389404354],[-0.125395178794861,43.943504333496094],[-0.102561041712704,43.92727661132806],[-0.044189833104554,43.9636688232423],[-0.036168925464096,43.983741760253906],[0.005599549505916,43.95558547973644],[-0.020385520532727,43.92929458618164],[0.033177878707704,43.899978637695426],[0.058618139475584,43.89838027954095],[0.075081668794269,43.914680480956974],[0.055424667894897,43.957138061523494],[0.076045610010738,43.98314285278326],[0.107387967407817,43.985382080078175],[0.138624876737708,43.97659683227539],[0.189806640148277,44.01500701904291],[0.214733630418777,44.02278518676758],[0.232994541525898,44.009391784668026],[0.303003638982773,43.99123764038097],[0.32474011182785,44.00780105590832],[0.357013463973999,44.015411376953125],[0.382336765527782,44.00823974609381],[0.418932557106075,44.02828979492193],[0.442449927330074,44.02876281738281],[0.459759086370582,44.05537796020507],[0.5115802884103,44.06273651123046],[0.538427472114563,44.0529518127442],[0.566978871822471,44.06061553955078],[0.592675149440765,44.07926177978527],[0.652207732200736,44.04290771484374],[0.662558913230953,44.0245933532716],[0.707922756671906,44.058288574218864],[0.741884768009129,44.06520080566406]]]},"properties":{"ID_0":79,"ISO":"FR-32","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":63,"NAME_2":"Gers","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.555617213249207,43.91831588745123],[1.547523379325924,43.899723052978516],[1.555085539817867,43.86849212646496],[1.593170404434204,43.843139648437614],[1.588588714599723,43.81717681884777],[1.625502228736991,43.80180740356457],[1.655761480331535,43.76688766479498],[1.659742832183838,43.74218750000005],[1.706445574760494,43.716220855712834],[1.663572669029349,43.69405746459972],[1.720704436302299,43.68834686279297],[1.728840708732662,43.6575660705567],[1.702793240547294,43.65068817138683],[1.687770843505973,43.6307106018067],[1.806152582168693,43.57936859130854],[1.839145183563176,43.57787322998047],[1.850710630416927,43.549190521240234],[1.887719273567313,43.51694107055664],[1.987313747406006,43.479011535644645],[2.048094272613525,43.49829483032232],[2.048289775848446,43.48573303222656],[2.019332170486507,43.47006225585948],[2.029132843017635,43.436897277831974],[2.012605428695736,43.41502761840832],[1.990858674049434,43.40938568115246],[1.958169817924556,43.425613403320426],[1.90211462974554,43.40870285034191],[1.856453418731689,43.443454742431754],[1.804530382156486,43.39160919189459],[1.805040955543632,43.359279632568416],[1.772272706031913,43.33697509765625],[1.746554732322693,43.343482971191406],[1.735951542854366,43.316017150878906],[1.688419699668884,43.273551940918026],[1.67361319065094,43.281345367431584],[1.637143492698669,43.25400924682623],[1.582583427429256,43.268871307373104],[1.565423369407767,43.25539016723644],[1.545386075973511,43.27679824829101],[1.488674044609127,43.26860427856445],[1.504521846771297,43.24952697753912],[1.468744039535466,43.209564208984375],[1.417138576507682,43.22647476196289],[1.426046729087886,43.255790710449276],[1.345491409301815,43.31549072265631],[1.323968291282767,43.30939865112305],[1.301558256149406,43.287563323974666],[1.294111132621765,43.264926910400504],[1.318422198295593,43.25115203857422],[1.374902963638363,43.238639831543026],[1.370204210281486,43.21067047119152],[1.327822327613944,43.20455932617199],[1.314607858657837,43.189994812011776],[1.276631951332206,43.195549011230526],[1.253253817558289,43.18379211425775],[1.230324387550468,43.187385559082145],[1.223737716674918,43.15207290649414],[1.273872494697628,43.14838790893566],[1.290166020393428,43.12343978881836],[1.260736584663448,43.10799026489258],[1.261853694915771,43.09165191650402],[1.22357106208807,43.08592605590826],[1.210750937461967,43.11509704589855],[1.174984216690063,43.140975952148494],[1.145858645439262,43.13853454589855],[1.124082088470572,43.15690612792968],[1.087976813316402,43.13382339477545],[1.062937736511174,43.13866806030285],[1.038230061531067,43.10030746459972],[1.009500741958732,43.11348342895519],[0.991670012474174,43.09117126464849],[0.985586166381836,43.062465667724666],[0.989041686058101,43.023395538330135],[1.005528807640189,43.00608825683594],[0.979101359844208,42.97443008422863],[0.912638902664298,42.959396362304744],[0.874911367893333,42.957775115966854],[0.877979457378387,42.92782592773432],[0.826681554317588,42.915500640869254],[0.842883288860321,42.88958358764643],[0.858305692672843,42.82571792602538],[0.801482975482997,42.840480804443416],[0.778810977935905,42.83606719970714],[0.708183944225425,42.86132812500005],[0.662559688091278,42.841106414795036],[0.671307981014252,42.80588912963867],[0.659865736961365,42.75216293334966],[0.680190026760101,42.7232780456543],[0.668712019920349,42.68893814086914],[0.525922417640686,42.70210647583008],[0.516216158866882,42.691677093505916],[0.476842820644379,42.69961929321288],[0.481716126203651,42.7120475769043],[0.462124705314693,42.73920440673828],[0.455184578895682,42.770919799804744],[0.46343427896511,42.80238723754894],[0.456171065569038,42.8176002502442],[0.477356582880134,42.87824249267578],[0.5040283203125,42.86878204345709],[0.562340736389274,42.86075592041021],[0.575935125351009,42.870826721191406],[0.600186765193996,42.9280166625976],[0.645958542823735,42.96133422851574],[0.620120525360221,42.97243499755871],[0.627396285533962,42.99973297119135],[0.591825366020203,43.02237319946289],[0.567477464675903,43.02074432373047],[0.542022526264191,43.00101852416992],[0.535120189190024,43.037052154541016],[0.563853740692252,43.07424545288086],[0.504590213298854,43.09535980224615],[0.489289671182689,43.11518096923828],[0.441704839468116,43.13097000122076],[0.459566384553909,43.148948669433594],[0.520654857158661,43.19326019287115],[0.517385303974152,43.21238327026373],[0.551874876022453,43.20914840698247],[0.550957083702087,43.2360076904298],[0.635725378990287,43.299137115478516],[0.606810986995811,43.310886383056754],[0.644252777099723,43.31239318847656],[0.674718856811523,43.32951354980463],[0.715342760086059,43.37888717651373],[0.731535673141479,43.372188568115234],[0.770421624183768,43.416809082031364],[0.80729699134838,43.39972305297857],[0.820541322231406,43.416984558105526],[0.864437758922634,43.41583251953131],[0.917251110076904,43.40633392333996],[0.966509282588959,43.37118148803705],[0.993662059307041,43.36653137207031],[1.001607060432491,43.39102172851568],[1.022787809371948,43.41170501708996],[1.018913507461548,43.43065643310547],[1.041670083999747,43.46081542968756],[1.017532825470084,43.4735946655274],[1.051385164260921,43.48913192749029],[1.059616446495056,43.53932571411138],[1.097081542015189,43.533229827880916],[1.125247001648063,43.55449295043945],[1.156430244445914,43.556827545166016],[1.163915634155273,43.57196426391607],[1.199342727661133,43.56918334960943],[1.200300693511963,43.595874786376896],[1.180900216102714,43.614101409912166],[1.158654093742484,43.60517501831066],[1.146710634231681,43.63558197021495],[1.090188384056091,43.64419174194336],[1.049022436141968,43.6760139465332],[1.065703153610229,43.70022964477538],[1.027387976646423,43.71043395996094],[0.95909887552267,43.77180480957042],[0.953983128070888,43.78737258911127],[1.036771297454777,43.80302810668945],[1.059131979942265,43.79859542846691],[1.083305716514587,43.81633377075206],[1.115083098411674,43.79777526855469],[1.157369494438228,43.81832885742199],[1.183189988136348,43.794071197509766],[1.215753436088505,43.7902717590332],[1.212776422500724,43.76824188232422],[1.274345517158508,43.786327362060604],[1.36003136634838,43.817207336425895],[1.354418754577637,43.836433410644645],[1.314450740814323,43.83312988281256],[1.319412350654659,43.85806655883794],[1.365184187889213,43.88957214355469],[1.418123483657837,43.87187576293945],[1.44774162769329,43.873504638671875],[1.476999878883476,43.90829467773443],[1.496654748916683,43.88858413696295],[1.555617213249207,43.91831588745123]]]},"properties":{"ID_0":79,"ISO":"FR-31","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":64,"NAME_2":"Haute-Garonne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Alto Garona"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-0.089286983013039,43.30106353759777],[-0.079629443585759,43.27164840698242],[-0.089981473982277,43.254005432128906],[-0.118389882147198,43.24137496948248],[-0.140602961182537,43.271675109863395],[-0.117817156016827,43.30734634399414],[-0.089286983013039,43.30106353759777]]],[[[-0.093096010386887,43.373886108398494],[-0.06448258459568,43.35361480712896],[-0.075832143425941,43.306938171386776],[-0.109901435673123,43.31280517578131],[-0.087270952761116,43.33384323120117],[-0.093096010386887,43.373886108398494]]],[[[0.606810986995811,43.310886383056754],[0.635725378990287,43.299137115478516],[0.550957083702087,43.2360076904298],[0.551874876022453,43.20914840698247],[0.517385303974152,43.21238327026373],[0.520654857158661,43.19326019287115],[0.459566384553909,43.148948669433594],[0.441704839468116,43.13097000122076],[0.489289671182689,43.11518096923828],[0.504590213298854,43.09535980224615],[0.563853740692252,43.07424545288086],[0.535120189190024,43.037052154541016],[0.542022526264191,43.00101852416992],[0.567477464675903,43.02074432373047],[0.591825366020203,43.02237319946289],[0.627396285533962,42.99973297119135],[0.620120525360221,42.97243499755871],[0.645958542823735,42.96133422851574],[0.600186765193996,42.9280166625976],[0.575935125351009,42.870826721191406],[0.562340736389274,42.86075592041021],[0.5040283203125,42.86878204345709],[0.477356582880134,42.87824249267578],[0.456171065569038,42.8176002502442],[0.46343427896511,42.80238723754894],[0.455184578895682,42.770919799804744],[0.462124705314693,42.73920440673828],[0.481716126203651,42.7120475769043],[0.476842820644379,42.69961929321288],[0.435333013534546,42.68955612182617],[0.396131992340088,42.69387817382818],[0.392268985509929,42.71189498901373],[0.360368013382015,42.72373199462885],[0.327709823846931,42.70531845092785],[0.326972007751579,42.69092178344732],[0.293188005685863,42.676197052001946],[0.263457000255642,42.693805694580135],[0.259584814310074,42.71584320068365],[0.22373907268053,42.718498229980526],[0.175992712378616,42.73564529418957],[0.156258001923675,42.72354507446294],[0.107144996523857,42.710033416748104],[0.088760025799388,42.71669006347656],[0.049532998353357,42.6957359313966],[0.015264134854078,42.700820922851676],[0.000748000398744,42.68521118164057],[-0.061586000025159,42.694717407226676],[-0.068820819258633,42.716060638427734],[-0.10313352197403,42.72157669067382],[-0.14766700565815,42.77390289306635],[-0.210436567664146,42.796764373779354],[-0.293132483959198,42.8388290405274],[-0.313442856073323,42.84937667846679],[-0.307293713092804,42.86897659301752],[-0.324323385953846,42.90332794189459],[-0.279270291328373,42.942344665527344],[-0.289621949195805,42.96112060546881],[-0.287669211625939,43.00555419921881],[-0.264715641736984,43.01000976562511],[-0.26050540804863,43.038272857666065],[-0.223951518535614,43.03368759155279],[-0.190722703933716,43.05125045776373],[-0.197562798857689,43.099967956543026],[-0.146313965320587,43.12818527221674],[-0.116243176162243,43.17928695678722],[-0.067873999476433,43.17712020874029],[-0.07397249341011,43.22237777709972],[-0.044946491718292,43.233795166015625],[-0.018516158685088,43.26938629150402],[-0.04102635756135,43.28369522094726],[-0.044395878911018,43.30294036865245],[-0.02537138201285,43.32961654663086],[0.012767912820038,43.32753372192383],[0.028665335849041,43.346618652343864],[-0.004652889911085,43.375709533691406],[0.009655310772473,43.42220306396479],[-0.016534095629993,43.44394683837885],[-0.042983438819647,43.41020965576172],[-0.069604225456601,43.43420028686529],[-0.065754115581512,43.46348953247081],[-0.032106522470713,43.46603775024414],[-0.049103256314993,43.4919052124024],[-0.043700430542174,43.52298736572271],[-0.06973043829197,43.54675292968744],[-0.0871227607131,43.542377471923885],[-0.096782974898815,43.582405090332145],[-0.074212595820313,43.606178283691456],[-0.015008710324707,43.60552597045904],[-0.001665770076215,43.56532287597656],[0.030054572969789,43.54456710815423],[0.053621441125927,43.518768310546875],[0.112247779965514,43.51737213134777],[0.127468124032021,43.49899673461914],[0.13074146211153,43.47406387329107],[0.166064128279743,43.442378997802734],[0.134548753500042,43.42248916625971],[0.15695665776741,43.39892959594732],[0.173804938793239,43.40277099609375],[0.182031214237327,43.37118148803705],[0.231704190373421,43.367713928222656],[0.298759490251655,43.38858032226574],[0.325406849384422,43.374774932861435],[0.331350296735764,43.34265518188482],[0.378548383712825,43.35536575317383],[0.395822793245316,43.334243774414176],[0.442971318960247,43.3279266357423],[0.444980084896201,43.34073638916027],[0.493539661169109,43.32548141479498],[0.505965948104915,43.3331871032716],[0.54706913232809,43.32980728149414],[0.606810986995811,43.310886383056754]]]]},"properties":{"ID_0":79,"ISO":"FR-65","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":65,"NAME_2":"Hautes-Pyrénées","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Altos Pirineos"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.062914371490479,44.976505279541065],[2.080703020095825,44.951576232910156],[2.076351404190177,44.93478393554687],[2.108110427856559,44.91059875488286],[2.085555553436336,44.8849601745606],[2.13980054855358,44.823825836181584],[2.16628980636608,44.81206893920904],[2.171632766723746,44.79026031494146],[2.15349197387701,44.753108978271484],[2.148087263107413,44.722850799560604],[2.15466570854187,44.69936752319341],[2.17915225028986,44.6744499206544],[2.166010141372681,44.661285400390625],[2.169419050216788,44.63798522949219],[2.207475185394344,44.615531921386776],[2.198402643203735,44.593173980713004],[2.169551610946598,44.59132385253912],[2.15256190299999,44.57158660888672],[2.104022741317806,44.57147216796881],[2.084695816040039,44.5850715637207],[2.054844617843685,44.58019256591797],[2.01884222030651,44.555561065673885],[1.984238862991333,44.54726028442377],[1.957918286323661,44.51904296875006],[1.938833951950016,44.51609802246093],[1.920824050903434,44.49192047119146],[1.84075832366949,44.47948837280285],[1.850807547569275,44.43733215332031],[1.873185753822327,44.424140930175724],[1.868874788284359,44.397212982177734],[1.90823853015911,44.36341857910162],[1.882082700729313,44.34007263183594],[1.826465249061698,44.32358932495117],[1.793702840805167,44.33391952514654],[1.782668471336365,44.31625366210943],[1.740953922271729,44.32629776000982],[1.70232081413269,44.31450653076172],[1.650052189826965,44.283203125],[1.616192936897392,44.27797317504883],[1.616652488708553,44.297668457031364],[1.573824405670166,44.30095672607422],[1.585915565490723,44.250942230224666],[1.573018431663513,44.23535537719738],[1.537462949752808,44.230258941650334],[1.509262919426078,44.273784637451165],[1.473533987998962,44.284214019775504],[1.452111840248165,44.25588226318371],[1.377170920372066,44.22283172607427],[1.341077685356197,44.224098205566406],[1.281317591667175,44.23534393310546],[1.302968740463314,44.26299667358404],[1.304015755653381,44.294189453125114],[1.258367061615104,44.28298950195307],[1.250491499900875,44.2697372436524],[1.184411764144897,44.28679656982433],[1.169065356254691,44.30401992797863],[1.109471559524593,44.324691772460994],[1.096261620521659,44.34902572631847],[1.10341584682476,44.36697006225597],[1.134424090385494,44.37446212768554],[1.132478117942924,44.39387512207031],[1.102329611778316,44.3918914794923],[1.064083814620972,44.37851333618164],[1.057488083839473,44.427677154541016],[1.021679401397648,44.44659805297851],[1.013166308403015,44.53613662719738],[1.075140833854675,44.57732391357421],[1.150893211364803,44.632854461670036],[1.146732687950134,44.67079544067394],[1.180560827255363,44.68268585205084],[1.224550008773917,44.684265136718864],[1.270040988922233,44.72208786010747],[1.287021398544255,44.71446228027343],[1.316050887107849,44.740375518798885],[1.321535348892269,44.7610969543457],[1.29715359210968,44.77696990966808],[1.30116593837738,44.797744750976676],[1.36410295963293,44.81156921386719],[1.365459203720093,44.84497070312506],[1.402507305145377,44.84904861450195],[1.405578136444149,44.863059997558594],[1.436070442199707,44.87298583984375],[1.421835780143851,44.89641189575201],[1.441561818122921,44.91878128051769],[1.414261221885738,44.97391510009771],[1.409130334854183,45.00672912597662],[1.448261499405021,45.01931381225597],[1.460356593132133,45.013969421386776],[1.505799889564628,45.03949737548828],[1.540315151214656,45.04466629028332],[1.651891469955558,45.02528762817383],[1.671410918235836,45.00430679321289],[1.703376650810355,44.986576080322266],[1.708766579628104,44.96963500976557],[1.748795270919857,44.95682907104492],[1.753982305526847,44.94084930419922],[1.784546136856136,44.93051910400402],[1.824450731277466,44.9281005859375],[1.83157217502594,44.94342041015631],[1.887090682983455,44.956336975097656],[1.907779097557125,44.9782447814942],[1.940149903297424,44.97183990478521],[1.984336376190299,44.97372055053722],[2.045120716094971,44.98366546630865],[2.062914371490479,44.976505279541065]]]},"properties":{"ID_0":79,"ISO":"FR-46","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":66,"NAME_2":"Lot","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.882082700729313,44.34007263183594],[1.860482931137198,44.321937561035156],[1.901390552520865,44.279117584228516],[1.940270781517029,44.28255081176758],[1.970633387565613,44.27634811401373],[1.962021231651306,44.24234008789074],[1.932162523269596,44.24264526367193],[1.908349752426261,44.21245574951172],[1.912990093231201,44.18841171264654],[1.973979711532649,44.18139266967785],[1.990170717239494,44.14945220947277],[1.941393733024597,44.14785766601568],[1.919064283371029,44.16307830810547],[1.806013822555599,44.12644958496094],[1.777958393096924,44.09676742553711],[1.746524572372437,44.11468505859381],[1.671048045158443,44.116127014160156],[1.666837692260856,44.064929962158196],[1.693526268005428,44.060111999511776],[1.704208016395625,44.0443572998048],[1.689730763435421,44.02325820922863],[1.651180624961853,44.011276245117244],[1.618637323379573,43.97283172607433],[1.622719168663025,43.96070480346691],[1.55229127407074,43.96303558349615],[1.538735985755977,43.94734573364269],[1.577520132064933,43.93881225585943],[1.555617213249207,43.91831588745123],[1.496654748916683,43.88858413696295],[1.476999878883476,43.90829467773443],[1.44774162769329,43.873504638671875],[1.418123483657837,43.87187576293945],[1.365184187889213,43.88957214355469],[1.319412350654659,43.85806655883794],[1.314450740814323,43.83312988281256],[1.354418754577637,43.836433410644645],[1.36003136634838,43.817207336425895],[1.274345517158508,43.786327362060604],[1.212776422500724,43.76824188232422],[1.215753436088505,43.7902717590332],[1.183189988136348,43.794071197509766],[1.157369494438228,43.81832885742199],[1.115083098411674,43.79777526855469],[1.083305716514587,43.81633377075206],[1.059131979942265,43.79859542846691],[1.036771297454777,43.80302810668945],[0.953983128070888,43.78737258911127],[0.897291123867092,43.7885360717774],[0.925163149833793,43.832027435302734],[0.895239293575287,43.83989715576183],[0.904105901718253,43.86095428466797],[0.886032879352683,43.87224578857427],[0.889230489730949,43.90424728393566],[0.864677667617855,43.9231796264649],[0.840336859226284,43.91600418090826],[0.809297919273433,43.93230056762707],[0.770003974437714,43.922142028808594],[0.760114133358115,43.945304870605526],[0.826871812343597,43.99749374389654],[0.81455105543148,44.02281570434576],[0.849297761917228,44.0344734191895],[0.822057127952689,44.05559539794933],[0.764047920703945,44.02964019775402],[0.741884768009129,44.06520080566406],[0.754382967949027,44.104804992675895],[0.793164968490657,44.11845779418957],[0.796567738056183,44.14515304565441],[0.869091689586639,44.12651443481445],[0.888351321220512,44.14881134033209],[0.882225215434971,44.1739501953125],[0.903111338615474,44.19005584716808],[0.929239213466701,44.2302513122558],[0.919089794159049,44.238269805908146],[0.950788080692405,44.275070190429744],[0.869445145130214,44.30925369262695],[0.896113157272396,44.34622955322271],[0.887319982051906,44.364646911621094],[0.919845402240753,44.38441848754883],[0.950215697288627,44.35957717895502],[1.060229063034058,44.36606597900396],[1.064083814620972,44.37851333618164],[1.102329611778316,44.3918914794923],[1.132478117942924,44.39387512207031],[1.134424090385494,44.37446212768554],[1.10341584682476,44.36697006225597],[1.096261620521659,44.34902572631847],[1.109471559524593,44.324691772460994],[1.169065356254691,44.30401992797863],[1.184411764144897,44.28679656982433],[1.250491499900875,44.2697372436524],[1.258367061615104,44.28298950195307],[1.304015755653381,44.294189453125114],[1.302968740463314,44.26299667358404],[1.281317591667175,44.23534393310546],[1.341077685356197,44.224098205566406],[1.377170920372066,44.22283172607427],[1.452111840248165,44.25588226318371],[1.473533987998962,44.284214019775504],[1.509262919426078,44.273784637451165],[1.537462949752808,44.230258941650334],[1.573018431663513,44.23535537719738],[1.585915565490723,44.250942230224666],[1.573824405670166,44.30095672607422],[1.616652488708553,44.297668457031364],[1.616192936897392,44.27797317504883],[1.650052189826965,44.283203125],[1.70232081413269,44.31450653076172],[1.740953922271729,44.32629776000982],[1.782668471336365,44.31625366210943],[1.793702840805167,44.33391952514654],[1.826465249061698,44.32358932495117],[1.882082700729313,44.34007263183594]]]},"properties":{"ID_0":79,"ISO":"FR-82","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":67,"NAME_2":"Tarn-et-Garonne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.93546295166027,43.694667816162045],[2.919908761978263,43.68773651123047],[2.918087005615234,43.66099548339855],[2.8730788230896,43.646492004394645],[2.814752578735465,43.63930892944347],[2.795155286789054,43.62465286254894],[2.754523515701237,43.61413955688487],[2.722670078277702,43.64263916015636],[2.653636455535889,43.650016784668026],[2.616909265518302,43.601448059082145],[2.630437612533569,43.58291625976568],[2.616642713546867,43.56537628173834],[2.658852338791007,43.51692199707037],[2.655180931091365,43.494186401367244],[2.664626359939689,43.46388626098627],[2.606371402740535,43.43199539184582],[2.565787315368766,43.42295837402355],[2.518988370895499,43.423717498779354],[2.494383096694946,43.43693542480469],[2.427590131759644,43.434490203857536],[2.398735046386832,43.41704940795904],[2.367331504821777,43.423179626464844],[2.304118156433162,43.44792938232433],[2.282011032104492,43.441226959228516],[2.256686687469482,43.45364379882824],[2.22249889373785,43.428283691406364],[2.229334115982056,43.40826797485357],[2.215023756027222,43.382614135742244],[2.186801910400391,43.39481353759771],[2.170411348342896,43.415813446044865],[2.108784675598088,43.394458770751896],[2.072800636291618,43.39569473266607],[2.053070545196476,43.43030929565424],[2.029132843017635,43.436897277831974],[2.019332170486507,43.47006225585948],[2.048289775848446,43.48573303222656],[2.048094272613525,43.49829483032232],[1.987313747406006,43.479011535644645],[1.887719273567313,43.51694107055664],[1.850710630416927,43.549190521240234],[1.839145183563176,43.57787322998047],[1.806152582168693,43.57936859130854],[1.687770843505973,43.6307106018067],[1.702793240547294,43.65068817138683],[1.728840708732662,43.6575660705567],[1.720704436302299,43.68834686279297],[1.663572669029349,43.69405746459972],[1.706445574760494,43.716220855712834],[1.659742832183838,43.74218750000005],[1.655761480331535,43.76688766479498],[1.625502228736991,43.80180740356457],[1.588588714599723,43.81717681884777],[1.593170404434204,43.843139648437614],[1.555085539817867,43.86849212646496],[1.547523379325924,43.899723052978516],[1.555617213249207,43.91831588745123],[1.577520132064933,43.93881225585943],[1.538735985755977,43.94734573364269],[1.55229127407074,43.96303558349615],[1.622719168663025,43.96070480346691],[1.618637323379573,43.97283172607433],[1.651180624961853,44.011276245117244],[1.689730763435421,44.02325820922863],[1.704208016395625,44.0443572998048],[1.693526268005428,44.060111999511776],[1.666837692260856,44.064929962158196],[1.671048045158443,44.116127014160156],[1.746524572372437,44.11468505859381],[1.777958393096924,44.09676742553711],[1.806013822555599,44.12644958496094],[1.919064283371029,44.16307830810547],[1.941393733024597,44.14785766601568],[1.990170717239494,44.14945220947277],[2.030249834060783,44.157573699951286],[2.114063739776611,44.195800781250114],[2.149213075637931,44.20054244995117],[2.15814995765686,44.17923355102545],[2.180790424346924,44.17827987670904],[2.237613677978572,44.15862655639654],[2.237414836883545,44.13430404663097],[2.284880399703979,44.14533615112316],[2.307294845581112,44.118537902832145],[2.332443237304687,44.123023986816406],[2.357738494873104,44.10155487060558],[2.389214754104671,44.09457015991216],[2.410210132598934,44.055858612060604],[2.460870742797852,44.050323486328125],[2.484887838363704,44.02468872070324],[2.501797914505005,43.98663330078125],[2.523254871368408,43.98014831542969],[2.508499145507812,43.94527435302739],[2.553841829299984,43.921085357666016],[2.552006721496696,43.89157104492199],[2.576271295547485,43.881759643554744],[2.561801910400391,43.84597396850585],[2.609146595001278,43.806808471679744],[2.629212617874259,43.780254364013786],[2.681730508804378,43.743515014648494],[2.713823318481502,43.74196624755865],[2.740542888641471,43.72895812988281],[2.781498908996525,43.736957550048935],[2.814518213272208,43.76158523559582],[2.87045335769659,43.73916244506836],[2.902605056762695,43.742271423339844],[2.919138908386344,43.732467651367244],[2.93546295166027,43.694667816162045]]]},"properties":{"ID_0":79,"ISO":"FR-81","NAME_0":"France","ID_1":16,"NAME_1":"Midi-Pyrénées","ID_2":68,"NAME_2":"Tarn","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.095886230468864,50.163131713867294],[3.03703618049633,50.13058090209972],[3.000530719757194,50.12010955810546],[3.003745555877742,50.15015792846679],[3.039526939392146,50.15362548828119],[3.062725782394523,50.17377471923834],[3.095886230468864,50.163131713867294]]],[[[4.140979290008545,49.978805541992244],[4.084444046020565,49.970657348632926],[4.055109500885009,49.98535919189464],[4.0311217308045,49.98206710815429],[3.980143785476685,50.00356292724609],[3.995236396789608,50.028446197509766],[3.982312440872249,50.04443359375005],[3.949834346771353,50.02688598632818],[3.922870874405021,50.02625656127941],[3.887292385101375,50.00969314575207],[3.882319211959782,50.03236770629894],[3.837058544158936,50.04780960083019],[3.745751619339046,50.053573608398494],[3.715184688568172,50.06927490234386],[3.66396427154541,50.0537109375],[3.614123582839966,50.02505874633794],[3.594225406646843,50.04391860961913],[3.541758060455436,50.05197525024419],[3.490106105804443,50.01895904541009],[3.427791595459041,50.022087097168026],[3.398473978042602,50.03458023071294],[3.353106498718262,50.03571701049805],[3.337102174758968,50.017402648925895],[3.280355453491211,50.01520919799816],[3.270715713500977,50.029468536377],[3.229350328445378,50.03018951416026],[3.172707319259757,50.01199340820318],[3.123577833175773,50.024486541748104],[3.090253591537589,50.05374145507812],[3.087668657302913,50.075565338134766],[3.114054679870719,50.09238433837901],[3.095967054367009,50.12451553344738],[3.135333061218262,50.14074325561518],[3.137514114379996,50.166946411132926],[3.156377315521354,50.181568145751896],[3.131195068359318,50.19949340820318],[3.142792224884033,50.219238281249936],[3.17888522148138,50.219074249267635],[3.186850786209163,50.23492813110363],[3.147167205810546,50.24622344970709],[3.149091243743953,50.26248168945324],[3.046235799789486,50.276168823242244],[3.036142110824699,50.287548065185604],[3.084305763244629,50.31119155883795],[3.013458490371761,50.35941314697277],[2.990422010421809,50.39494705200207],[3.068519353866691,50.42564773559581],[3.008267641067562,50.455856323242244],[3.024815797805843,50.48131942749029],[2.964709758758545,50.51277923583979],[2.910143375396729,50.499835968017635],[2.882077217102051,50.507755279541016],[2.886964559555111,50.53765869140631],[2.824770689010677,50.525611877441406],[2.808234691619873,50.57885360717785],[2.808434963226318,50.60771942138683],[2.841275215148983,50.627590179443416],[2.869737863540763,50.63109588623047],[2.835401535034237,50.659053802490284],[2.809187889099235,50.669372558593686],[2.769690513610954,50.66362380981451],[2.747182369232235,50.60524749755871],[2.718602180480957,50.629364013671875],[2.630516052246037,50.61795043945318],[2.613140106201229,50.634033203125114],[2.546332120895386,50.62701416015636],[2.534782409667969,50.641662597656364],[2.491412639618034,50.63193511962902],[2.43018746376049,50.65679931640625],[2.386166572570801,50.698577880859375],[2.355647802353019,50.71612930297857],[2.342194795608464,50.74069976806635],[2.411477565765495,50.76673507690424],[2.319057941436711,50.78244018554699],[2.288578271865902,50.77703857421881],[2.213430404663143,50.810546875],[2.203616380691528,50.849712371826115],[2.121341466903687,50.97895050048828],[2.075006246566829,51.00763702392584],[2.166945934295654,51.01930618286133],[2.203609943390006,51.033195495605526],[2.328054904937858,51.05263900756847],[2.365833997726384,51.04291534423833],[2.546031475067139,51.08939743041998],[2.559218406677246,51.07005310058605],[2.578288316726741,51.00001907348633],[2.606478214263916,50.98890686035156],[2.630090236663818,50.94580841064453],[2.590013027191105,50.919097900390625],[2.606653213501033,50.91270065307617],[2.599248647689876,50.85335159301757],[2.624824285507259,50.836063385009815],[2.634982824325562,50.8127555847168],[2.670175313949528,50.82103729248047],[2.7198264598847,50.81205368041998],[2.725020170211906,50.79572677612299],[2.813275337219295,50.71694946289068],[2.848567724227848,50.72175979614258],[2.870172977447623,50.70291519165044],[2.909936189651546,50.69436264038091],[2.930072069168205,50.711738586425774],[2.937651157379093,50.74257278442382],[3.058744907379264,50.780708312988395],[3.080667972564697,50.77286148071289],[3.147109031677303,50.78990554809576],[3.199032545089722,50.73401260375982],[3.210946798324585,50.71276473999018],[3.248501777648982,50.709506988525504],[3.261831045150814,50.67596435546881],[3.243893384933529,50.669754028320256],[3.244402408599967,50.64086914062506],[3.278310537338371,50.59420013427745],[3.275957345962581,50.558536529541065],[3.286531448364258,50.5275764465332],[3.377262353897094,50.49098968505871],[3.43563008308405,50.50912475585949],[3.474889516830501,50.53318023681634],[3.517192840576172,50.51802062988286],[3.521455526351929,50.49460220336914],[3.568602323532218,50.500114440918026],[3.607936859130802,50.49653244018555],[3.668833494186515,50.436450958251946],[3.672951936721744,50.38906478881847],[3.657830238342228,50.37057876586908],[3.67367601394659,50.33493041992193],[3.710424423217773,50.303184509277344],[3.731720447540397,50.31190109252929],[3.742773294448909,50.348075866699276],[3.84014987945568,50.35386276245117],[3.886059761047363,50.327060699463004],[3.961807012557983,50.34807968139643],[3.986870288848934,50.34245681762701],[4.02521991729742,50.35789489746088],[4.077095508575553,50.320522308349666],[4.118358612060547,50.302268981933594],[4.124011516571045,50.27276229858398],[4.163658142089844,50.25728988647455],[4.17957592010498,50.27677154541021],[4.205972194671631,50.27251052856457],[4.220833778381461,50.25430297851574],[4.16592454910284,50.21508407592784],[4.15004491806036,50.17659378051769],[4.153213977813834,50.160373687744254],[4.126905918121338,50.134902954101676],[4.19524717330944,50.13459777832031],[4.205374717712516,50.097988128662216],[4.227538585662898,50.079677581787216],[4.224308967590389,50.06438827514654],[4.19062185287487,50.04942321777355],[4.160781383514461,50.04752349853527],[4.137324333190975,50.02178192138683],[4.156285285949821,49.98721313476568],[4.140979290008545,49.978805541992244]]]]},"properties":{"ID_0":79,"ISO":"FR-59","NAME_0":"France","ID_1":17,"NAME_1":"Nord-Pas-de-Calais","ID_2":69,"NAME_2":"Nord","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[3.090253591537589,50.05374145507812],[3.074492216110229,50.045299530029354],[3.011969804763907,50.05804061889654],[2.971535921096859,50.041366577148494],[2.948889255523795,50.0533218383789],[2.916974067687988,50.035530090332145],[2.876192808151188,50.044254302978516],[2.855413675308228,50.07799148559564],[2.80719780921936,50.062458038330135],[2.794509887695426,50.05005264282232],[2.752195358276367,50.0403213500976],[2.760424852371273,50.069633483886776],[2.781835794448852,50.09111404418956],[2.780897855758781,50.11115646362315],[2.729929685592651,50.12586212158209],[2.691648960113525,50.09206771850597],[2.647546529769897,50.09440994262695],[2.630727767944393,50.10727691650385],[2.57567143440258,50.11333084106445],[2.568370103836116,50.13596343994146],[2.532332181930599,50.115077972412166],[2.514949321746826,50.1408195495606],[2.455049514770621,50.13117599487316],[2.429657936096305,50.08818435668951],[2.394888162612972,50.11019134521484],[2.375459671020565,50.10926055908209],[2.389776945114136,50.1554832458496],[2.414845943450928,50.17311096191406],[2.495690345764103,50.19456100463867],[2.452066183090267,50.2302131652832],[2.38231992721569,50.22606658935558],[2.361731052398738,50.20707702636719],[2.331300735473576,50.22172546386719],[2.301693201065063,50.21295547485357],[2.269351243972892,50.22764968872075],[2.173296689987296,50.20788574218756],[2.096638441085872,50.206630706787166],[2.068487167358455,50.227092742920036],[2.048668146133423,50.256771087646484],[1.945648431777954,50.287746429443466],[1.93445813655859,50.29935073852545],[1.96393442153942,50.31805419921874],[1.946194767952079,50.33148956298834],[1.919496178627128,50.312664031982415],[1.875354409217834,50.32272720336914],[1.869130969047546,50.33446884155279],[1.804678559303284,50.35960388183605],[1.761848688125667,50.361606597900504],[1.677249193191585,50.33382034301758],[1.646498680114746,50.340076446533196],[1.615832805633545,50.36854934692383],[1.582499980926571,50.37763977050787],[1.555277943611202,50.40152740478526],[1.568055033683777,50.43097305297857],[1.578611969947815,50.52541732788097],[1.605278015136832,50.546527862548885],[1.575832962989921,50.572639465332145],[1.576390027999821,50.64069366455084],[1.559721946716309,50.70013809204113],[1.606389999389762,50.76708221435547],[1.605834007263297,50.79097366333007],[1.578055977821293,50.854026794433594],[1.584722042083854,50.87236022949219],[1.639165997505188,50.877082824706974],[1.709167003631592,50.9281959533692],[1.770833969116211,50.952640533447315],[1.893610954284668,50.98014068603515],[1.954722046852169,51.00152587890631],[2.016387939453125,50.99958419799816],[2.075006246566829,51.00763702392584],[2.121341466903687,50.97895050048828],[2.203616380691528,50.849712371826115],[2.213430404663143,50.810546875],[2.288578271865902,50.77703857421881],[2.319057941436711,50.78244018554699],[2.411477565765495,50.76673507690424],[2.342194795608464,50.74069976806635],[2.355647802353019,50.71612930297857],[2.386166572570801,50.698577880859375],[2.43018746376049,50.65679931640625],[2.491412639618034,50.63193511962902],[2.534782409667969,50.641662597656364],[2.546332120895386,50.62701416015636],[2.613140106201229,50.634033203125114],[2.630516052246037,50.61795043945318],[2.718602180480957,50.629364013671875],[2.747182369232235,50.60524749755871],[2.769690513610954,50.66362380981451],[2.809187889099235,50.669372558593686],[2.835401535034237,50.659053802490284],[2.869737863540763,50.63109588623047],[2.841275215148983,50.627590179443416],[2.808434963226318,50.60771942138683],[2.808234691619873,50.57885360717785],[2.824770689010677,50.525611877441406],[2.886964559555111,50.53765869140631],[2.882077217102051,50.507755279541016],[2.910143375396729,50.499835968017635],[2.964709758758545,50.51277923583979],[3.024815797805843,50.48131942749029],[3.008267641067562,50.455856323242244],[3.068519353866691,50.42564773559581],[2.990422010421809,50.39494705200207],[3.013458490371761,50.35941314697277],[3.084305763244629,50.31119155883795],[3.036142110824699,50.287548065185604],[3.046235799789486,50.276168823242244],[3.149091243743953,50.26248168945324],[3.147167205810546,50.24622344970709],[3.186850786209163,50.23492813110363],[3.17888522148138,50.219074249267635],[3.142792224884033,50.219238281249936],[3.131195068359318,50.19949340820318],[3.156377315521354,50.181568145751896],[3.137514114379996,50.166946411132926],[3.135333061218262,50.14074325561518],[3.095967054367009,50.12451553344738],[3.114054679870719,50.09238433837901],[3.087668657302913,50.075565338134766],[3.090253591537589,50.05374145507812]],[[3.095886230468864,50.163131713867294],[3.062725782394523,50.17377471923834],[3.039526939392146,50.15362548828119],[3.003745555877742,50.15015792846679],[3.000530719757194,50.12010955810546],[3.03703618049633,50.13058090209972],[3.095886230468864,50.163131713867294]]]},"properties":{"ID_0":79,"ISO":"FR-62","NAME_0":"France","ID_1":17,"NAME_1":"Nord-Pas-de-Calais","ID_2":70,"NAME_2":"Pas-de-Calais","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.245882391929626,47.77671813964844],[-1.236525297164917,47.75577545166021],[-1.254460453987122,47.732681274414055],[-1.195449709892273,47.71202850341791],[-1.180204153060913,47.69679260253906],[-1.181369423866272,47.66860961914068],[-1.162947773933297,47.66048812866211],[-1.157394409179631,47.63599014282238],[-1.137894034385681,47.61892700195324],[-1.10312914848322,47.620513916015625],[-1.075125932693425,47.60610198974615],[-1.025254607200623,47.599018096923764],[-1.00816535949707,47.587757110595646],[-1.04216110706318,47.56326675415044],[-1.172934055328369,47.57281875610357],[-1.178346157073975,47.54802322387701],[-1.15423405170435,47.50932312011719],[-1.106345415115356,47.50090026855468],[-1.0444575548172,47.50550079345703],[-1.011518120765686,47.48984909057623],[-0.965479850768986,47.491794586181754],[-0.967867195606175,47.46805572509777],[-0.948346734046936,47.42274475097656],[-0.923455655574798,47.39877319335943],[-0.97623419761652,47.3710289001466],[-1.032117962837219,47.3650016784668],[-1.078530192375126,47.370800018310604],[-1.169933199882507,47.364711761474666],[-1.182960152625981,47.35430908203131],[-1.228372693061829,47.349979400634766],[-1.306547999382019,47.3344841003418],[-1.337292790412846,47.31747055053722],[-1.339312791824341,47.3009757995606],[-1.295173645019531,47.304565429687614],[-1.276402354240361,47.26960372924815],[-1.231266736984196,47.23957824707025],[-1.204918384551888,47.253044128418026],[-1.181105971336308,47.24089431762701],[-1.188465595245361,47.22000122070318],[-1.169554471969604,47.17051315307623],[-1.23098707199091,47.13130187988281],[-1.228114247322083,47.0997695922851],[-1.170548677444401,47.0929527282716],[-1.148527741432133,47.06962203979498],[-1.115538597106934,47.06269836425787],[-1.117890000343323,47.040283203125],[-1.148571133613473,47.029552459716854],[-1.196768760681096,47.03976440429693],[-1.267883658409119,47.08426666259776],[-1.287281870841923,47.0583114624024],[-1.317961215972844,47.034301757812614],[-1.336458444595337,47.04406738281244],[-1.375943660736084,47.029655456543026],[-1.359058737754822,46.98113632202154],[-1.366159915924072,46.956691741943416],[-1.415447592735234,46.94435119628906],[-1.458267688751221,46.925838470459034],[-1.458497881889286,46.956230163574276],[-1.475257635116577,46.98094558715826],[-1.462753176689034,46.9900360107423],[-1.473130226135254,47.03112411499029],[-1.499844908714294,47.040691375732536],[-1.543657422065735,47.0037727355957],[-1.554271936416569,46.9786529541015],[-1.521631360054016,46.941036224365234],[-1.52982044219965,46.908199310302734],[-1.500791311263981,46.88339233398443],[-1.546307563781681,46.87297439575201],[-1.548511028289795,46.860080718994254],[-1.640486240386906,46.878494262695426],[-1.664177656173706,46.874702453613224],[-1.690871477127075,46.89009475708008],[-1.720345139503479,46.884696960449276],[-1.736008882522583,46.89605712890619],[-1.750432610511723,46.930370330810604],[-1.7798796892165,46.92522048950201],[-1.832106113433838,46.932086944580135],[-1.831169366836548,46.95326995849621],[-1.871775269508305,46.95317459106456],[-1.913175225257874,46.97221755981456],[-1.916717767715454,46.99215698242199],[-1.949818849563599,47.00087738037115],[-1.982360005378723,47.02774810791021],[-2.001527070999146,47.058193206787166],[-2.052639007568359,47.093193054199276],[-2.09708309173584,47.10625076293951],[-2.158195018768311,47.113471984863395],[-2.17736101150507,47.12125015258789],[-2.244306087493896,47.13013839721691],[-2.223472118377686,47.154026031494084],[-2.167083978652897,47.16652679443354],[-2.159305095672551,47.20986175537109],[-2.178194999694767,47.22930526733404],[-2.171250104904175,47.266250610351676],[-2.133749008178711,47.275138854980526],[-2.062916040420532,47.28208160400402],[-2.040971994399968,47.30236053466797],[-2.119584083557072,47.30458450317383],[-2.162362098693848,47.292640686035156],[-2.292083024978638,47.234306335449276],[-2.335416078567505,47.25152969360351],[-2.35486197471613,47.271804809570256],[-2.380140066146851,47.27986145019531],[-2.419581890106144,47.27652740478527],[-2.432084083557072,47.257362365722656],[-2.499304056167546,47.280693054199276],[-2.431248903274536,47.29291534423834],[-2.468194007873535,47.325138092041016],[-2.505973100662231,47.312637329101555],[-2.504304885864201,47.3359718322755],[-2.531250953674316,47.36513900756847],[-2.552916049957275,47.37014007568365],[-2.445972919464111,47.438472747802734],[-2.457982301711979,47.447639465332145],[-2.423027276992798,47.47712326049815],[-2.410409450531006,47.45883178710943],[-2.316133260726929,47.46251678466808],[-2.298099279403687,47.515476226806584],[-2.259483098983708,47.51185226440423],[-2.244283676147461,47.493610382080135],[-2.216831922531128,47.50705718994146],[-2.189703941345158,47.49587631225585],[-2.155189990997314,47.497817993164176],[-2.153398513793945,47.52202606201183],[-2.098851680755615,47.533451080322266],[-2.10252404212946,47.595302581787166],[-2.086480855941772,47.60325622558605],[-2.097035646438542,47.631359100341854],[-2.082051515579167,47.649421691894645],[-2.047413110732975,47.663787841796875],[-2.01228404045105,47.666454315185604],[-1.973400950431824,47.69415283203125],[-1.956328749656621,47.6711883544923],[-1.935304403304997,47.68680572509776],[-1.884930491447392,47.696010589599666],[-1.862789273262024,47.70733261108409],[-1.771608114242554,47.698677062988224],[-1.729713439941293,47.69934082031256],[-1.638130903243905,47.722209930420036],[-1.627131342887822,47.75982666015631],[-1.594141364097595,47.77603149414068],[-1.530422329902535,47.78477859497082],[-1.504019498825073,47.80105972290039],[-1.468448042869511,47.80590438842785],[-1.481872677802983,47.831802368164006],[-1.391528964042664,47.82831954956055],[-1.364081025123596,47.80070114135748],[-1.245882391929626,47.77671813964844]]]},"properties":{"ID_0":79,"ISO":"FR-44","NAME_0":"France","ID_1":18,"NAME_1":"Pays de la Loire","ID_2":71,"NAME_2":"Loire-Atlantique","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Loire-Inferieure"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.381703853607121,47.76057052612299],[-0.373778074979782,47.73987197875982],[-0.333662599325123,47.72094345092773],[-0.287626624107361,47.71913146972656],[-0.236765995621681,47.70463180542003],[-0.202373191714287,47.725242614746094],[-0.184351623058319,47.70539474487315],[-0.215837866067886,47.6829223632813],[-0.196696996688786,47.650035858154354],[-0.114099979400635,47.63547515869146],[-0.105482287704945,47.65708160400402],[-0.052378285676241,47.648681640625114],[-0.004507638514042,47.64768981933605],[0.012965098954851,47.62868881225591],[0.052261415869282,47.606224060058594],[0.115650631487483,47.605628967285156],[0.148488059639931,47.581295013427734],[0.183975532651004,47.59901046752924],[0.18583424389368,47.61654663085943],[0.230001732707024,47.608398437500114],[0.234568119049129,47.57861328125006],[0.214089363813343,47.568786621093686],[0.20008730888361,47.543167114257926],[0.224843129515648,47.52727890014659],[0.220109254121724,47.50195312500005],[0.180874109268188,47.453224182128906],[0.180943384766579,47.416603088378906],[0.153864458203259,47.39872741699224],[0.182142674923,47.38194274902349],[0.153859853744621,47.363094329833984],[0.147298365831432,47.34537506103526],[0.117462240159625,47.33234405517584],[0.082382224500179,47.28687286376947],[0.072875916957969,47.21449279785162],[0.053739786148071,47.16461181640619],[0.019014857709408,47.175758361816456],[-0.011722300201654,47.15624237060546],[-0.033735625445843,47.127563476562614],[-0.044239372014886,47.09315109252941],[-0.085541151463985,47.10043334960943],[-0.102121472358647,47.0648078918457],[-0.128896117210388,47.054237365722656],[-0.166736051440182,47.08099365234381],[-0.140891328454018,47.096763610839844],[-0.18524041771883,47.10841751098644],[-0.206268787384033,47.093193054199276],[-0.240407645702362,47.105144500732536],[-0.283180445432606,47.102340698242244],[-0.340140908956528,47.087272644043026],[-0.354752242565155,47.09500503540044],[-0.396030902862549,47.090240478515625],[-0.400779515504837,47.07077026367182],[-0.483751922845784,47.06659317016607],[-0.491782009601593,47.08285140991222],[-0.559717416763249,47.061698913574276],[-0.561547577381134,47.02950668334961],[-0.595491945743561,46.99790954589838],[-0.62017697095871,46.99336242675781],[-0.671041071414834,47.00098419189453],[-0.714539766311646,46.98598098754894],[-0.733897387981415,46.99715423583979],[-0.761534631252232,46.99314498901373],[-0.787577092647439,47.005138397216854],[-0.808483839035034,46.99180984497075],[-0.847720384597778,46.98615646362316],[-0.85891538858408,46.97046661376953],[-0.891960620880127,46.97582626342785],[-0.901293694972992,46.99143981933594],[-0.93487769365305,47.00756072998052],[-0.959132194519043,46.99812316894531],[-1.002263784408569,47.02128982543945],[-1.016110062599125,47.00364303588873],[-1.110118746757507,47.016010284423885],[-1.148571133613473,47.029552459716854],[-1.117890000343323,47.040283203125],[-1.115538597106934,47.06269836425787],[-1.148527741432133,47.06962203979498],[-1.170548677444401,47.0929527282716],[-1.228114247322083,47.0997695922851],[-1.23098707199091,47.13130187988281],[-1.169554471969604,47.17051315307623],[-1.188465595245361,47.22000122070318],[-1.181105971336308,47.24089431762701],[-1.204918384551888,47.253044128418026],[-1.231266736984196,47.23957824707025],[-1.276402354240361,47.26960372924815],[-1.295173645019531,47.304565429687614],[-1.339312791824341,47.3009757995606],[-1.337292790412846,47.31747055053722],[-1.306547999382019,47.3344841003418],[-1.228372693061829,47.349979400634766],[-1.182960152625981,47.35430908203131],[-1.169933199882507,47.364711761474666],[-1.078530192375126,47.370800018310604],[-1.032117962837219,47.3650016784668],[-0.97623419761652,47.3710289001466],[-0.923455655574798,47.39877319335943],[-0.948346734046936,47.42274475097656],[-0.967867195606175,47.46805572509777],[-0.965479850768986,47.491794586181754],[-1.011518120765686,47.48984909057623],[-1.0444575548172,47.50550079345703],[-1.106345415115356,47.50090026855468],[-1.15423405170435,47.50932312011719],[-1.178346157073975,47.54802322387701],[-1.172934055328369,47.57281875610357],[-1.04216110706318,47.56326675415044],[-1.00816535949707,47.587757110595646],[-1.025254607200623,47.599018096923764],[-1.075125932693425,47.60610198974615],[-1.10312914848322,47.620513916015625],[-1.137894034385681,47.61892700195324],[-1.157394409179631,47.63599014282238],[-1.162947773933297,47.66048812866211],[-1.181369423866272,47.66860961914068],[-1.180204153060913,47.69679260253906],[-1.195449709892273,47.71202850341791],[-1.254460453987122,47.732681274414055],[-1.236525297164917,47.75577545166021],[-1.245882391929626,47.77671813964844],[-1.238251686096191,47.80998992919927],[-1.193038702011108,47.78621292114263],[-1.139720320701542,47.785018920898544],[-1.075037360191288,47.77419281005871],[-1.020897626876774,47.77479553222656],[-0.978456556797027,47.76199722290044],[-0.959760844707489,47.79632568359369],[-0.89583516120905,47.77461624145513],[-0.893169939517975,47.76450729370123],[-0.839294791221619,47.752281188964844],[-0.816067636013031,47.771224975585994],[-0.759625494480019,47.75293350219721],[-0.749701738357544,47.741607666015625],[-0.610818266868591,47.735687255859375],[-0.584648072719517,47.75840377807622],[-0.53292220830906,47.75069046020507],[-0.50713407993311,47.78506851196295],[-0.453929156064987,47.75723648071295],[-0.429174870252609,47.76721572875988],[-0.381703853607121,47.76057052612299]]]},"properties":{"ID_0":79,"ISO":"FR-49","NAME_0":"France","ID_1":18,"NAME_1":"Pays de la Loire","ID_2":72,"NAME_2":"Maine-et-Loire","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.054531205445528,48.382003784179744],[-0.078790724277439,48.37020111083996],[-0.112164452671891,48.37424468994152],[-0.136316701769829,48.362724304199276],[-0.132776573300362,48.34571075439453],[-0.15799847245205,48.33452224731445],[-0.138609185814801,48.294952392578125],[-0.164580494165421,48.259159088134766],[-0.145406126976013,48.221904754638786],[-0.14683707058424,48.205009460449276],[-0.18590818345541,48.1834373474121],[-0.231430649757272,48.168594360351676],[-0.241138681769314,48.12695312500006],[-0.218366071581784,48.10644149780279],[-0.230942443013191,48.058986663818416],[-0.274232596158981,48.0644645690918],[-0.334475040435791,48.03237533569336],[-0.33815407752985,48.012138366699276],[-0.308992683887368,48.00560379028332],[-0.297832310199738,47.943416595459034],[-0.338703483343067,47.93249893188482],[-0.384840279817524,47.9308433532716],[-0.406500011682397,47.91039276123041],[-0.376838505267983,47.88726806640636],[-0.37496638298029,47.85761642456065],[-0.41203036904335,47.85763168334972],[-0.44791400432581,47.83203506469738],[-0.434080183506012,47.80905532836913],[-0.388200581073704,47.805316925048885],[-0.381703853607121,47.76057052612299],[-0.429174870252609,47.76721572875988],[-0.453929156064987,47.75723648071295],[-0.50713407993311,47.78506851196295],[-0.53292220830906,47.75069046020507],[-0.584648072719517,47.75840377807622],[-0.610818266868591,47.735687255859375],[-0.749701738357544,47.741607666015625],[-0.759625494480019,47.75293350219721],[-0.816067636013031,47.771224975585994],[-0.839294791221619,47.752281188964844],[-0.893169939517975,47.76450729370123],[-0.89583516120905,47.77461624145513],[-0.959760844707489,47.79632568359369],[-0.978456556797027,47.76199722290044],[-1.020897626876774,47.77479553222656],[-1.075037360191288,47.77419281005871],[-1.139720320701542,47.785018920898544],[-1.193038702011108,47.78621292114263],[-1.238251686096191,47.80998992919927],[-1.189162731170654,47.867710113525504],[-1.156194806098938,47.96445465087896],[-1.107516050338688,47.988876342773494],[-1.068830132484436,47.98294830322271],[-1.021712303161621,47.99540328979492],[-1.03355431556696,48.032608032226676],[-1.021497130393925,48.068405151367244],[-1.049132823944035,48.089595794677734],[-1.064167499542236,48.1584930419923],[-1.0782293081283,48.179965972900504],[-1.074356555938607,48.20046997070324],[-1.098671793937683,48.25130844116222],[-1.083227038383427,48.29624176025384],[-1.045829653739929,48.329654693603565],[-1.059720516204834,48.35104370117187],[-1.052792549133244,48.380928039550724],[-1.079734683036747,48.41738128662109],[-1.080219030380249,48.44190216064459],[-1.06464946269989,48.466911315918075],[-1.07739245891571,48.49109649658208],[-1.070164561271667,48.50849533081055],[-1.060748457908573,48.515392303466854],[-1.00297474861145,48.48907089233404],[-0.973776161670628,48.494834899902344],[-0.953884124755802,48.51679229736328],[-0.923879265785217,48.51313781738281],[-0.896032691001835,48.49487304687505],[-0.860362887382507,48.501457214355575],[-0.816024899482613,48.47118759155285],[-0.77787405252451,48.465412139892635],[-0.75648307800293,48.436935424804744],[-0.715918183326664,48.45089721679699],[-0.725250840187073,48.473468780517635],[-0.658167600631657,48.474845886230526],[-0.654215216636658,48.444545745849545],[-0.593207120895329,48.47084045410162],[-0.553156673908234,48.47296524047846],[-0.509293854236603,48.508842468261776],[-0.478198140859604,48.501571655273494],[-0.446882694959641,48.51493835449224],[-0.368081152439117,48.49311065673828],[-0.336825251579285,48.50242233276373],[-0.32023906707758,48.522930145263615],[-0.268389731645527,48.52066802978521],[-0.243056803941727,48.53706359863287],[-0.260578185319844,48.549133300781364],[-0.242639139294567,48.568000793457145],[-0.207346305251065,48.562519073486385],[-0.144603967666626,48.527751922607415],[-0.166668266057911,48.5147056579591],[-0.148946359753609,48.45878982543957],[-0.108255140483323,48.44802474975586],[-0.05069895833725,48.45058822631847],[-0.057580254971981,48.42908477783208],[-0.054531205445528,48.382003784179744]]]},"properties":{"ID_0":79,"ISO":"FR-53","NAME_0":"France","ID_1":18,"NAME_1":"Pays de la Loire","ID_2":73,"NAME_2":"Mayenne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.797655463218746,48.19446182250988],[0.840574383735657,48.165531158447266],[0.884465754032135,48.161842346191406],[0.914338350296134,48.13584899902344],[0.850372314453239,48.13307952880865],[0.841217219829502,48.10306167602544],[0.843022644519806,48.0726432800293],[0.803562462329921,48.07159805297863],[0.794879317283744,48.04693222045904],[0.840563178062439,48.019035339355526],[0.820382893085536,47.98803329467779],[0.845574200153408,47.95390319824219],[0.81634867191309,47.93427658081066],[0.810550570487976,47.90824127197277],[0.786997556686458,47.91175079345703],[0.759813487529868,47.89809036254877],[0.77385222911829,47.850646972656364],[0.768412888050079,47.83110809326172],[0.712824046611843,47.7904891967774],[0.651199519634361,47.75511932373058],[0.626330792904014,47.75135803222656],[0.608728349208832,47.72529983520507],[0.580315470695552,47.71237945556652],[0.614431202411652,47.69421386718756],[0.593340694904441,47.671844482421875],[0.49841791391384,47.64476394653332],[0.461177259683552,47.64380645751953],[0.451411038637104,47.62145614624029],[0.422197550535316,47.61956405639659],[0.382787764072475,47.643104553222706],[0.364557266235408,47.62207031250006],[0.402577012777385,47.57851409912104],[0.378483653068656,47.56852722167974],[0.339106649160442,47.57973861694347],[0.322103917598724,47.59523773193371],[0.275411963462943,47.59910202026372],[0.259114831686077,47.61230087280279],[0.230001732707024,47.608398437500114],[0.18583424389368,47.61654663085943],[0.183975532651004,47.59901046752924],[0.148488059639931,47.581295013427734],[0.115650631487483,47.605628967285156],[0.052261415869282,47.606224060058594],[0.012965098954851,47.62868881225591],[-0.004507638514042,47.64768981933605],[-0.052378285676241,47.648681640625114],[-0.105482287704945,47.65708160400402],[-0.114099979400635,47.63547515869146],[-0.196696996688786,47.650035858154354],[-0.215837866067886,47.6829223632813],[-0.184351623058319,47.70539474487315],[-0.202373191714287,47.725242614746094],[-0.236765995621681,47.70463180542003],[-0.287626624107361,47.71913146972656],[-0.333662599325123,47.72094345092773],[-0.373778074979782,47.73987197875982],[-0.381703853607121,47.76057052612299],[-0.388200581073704,47.805316925048885],[-0.434080183506012,47.80905532836913],[-0.44791400432581,47.83203506469738],[-0.41203036904335,47.85763168334972],[-0.37496638298029,47.85761642456065],[-0.376838505267983,47.88726806640636],[-0.406500011682397,47.91039276123041],[-0.384840279817524,47.9308433532716],[-0.338703483343067,47.93249893188482],[-0.297832310199738,47.943416595459034],[-0.308992683887368,48.00560379028332],[-0.33815407752985,48.012138366699276],[-0.334475040435791,48.03237533569336],[-0.274232596158981,48.0644645690918],[-0.230942443013191,48.058986663818416],[-0.218366071581784,48.10644149780279],[-0.241138681769314,48.12695312500006],[-0.231430649757272,48.168594360351676],[-0.18590818345541,48.1834373474121],[-0.14683707058424,48.205009460449276],[-0.145406126976013,48.221904754638786],[-0.164580494165421,48.259159088134766],[-0.138609185814801,48.294952392578125],[-0.15799847245205,48.33452224731445],[-0.132776573300362,48.34571075439453],[-0.136316701769829,48.362724304199276],[-0.112164452671891,48.37424468994152],[-0.078790724277439,48.37020111083996],[-0.054531205445528,48.382003784179744],[0.003370246384236,48.39599609374994],[0.023083170875964,48.38020706176769],[0.067361883819103,48.40605926513683],[0.103347465396098,48.4133186340332],[0.111593373119831,48.43231582641613],[0.153319001197872,48.437942504882926],[0.172326982021332,48.4638290405274],[0.217967852950153,48.4738006591798],[0.297909289598465,48.47981643676769],[0.363204777240867,48.45156097412109],[0.381724506616706,48.42478942871105],[0.372679382562637,48.410133361816406],[0.395362317562103,48.3212890625],[0.429964780807609,48.30867767333984],[0.505824327468986,48.29365921020519],[0.49442341923708,48.28348922729498],[0.546795129776058,48.250164031982536],[0.613135278225002,48.24273681640631],[0.652469277382011,48.26338958740246],[0.687393724918422,48.24078369140625],[0.723637044429893,48.19814300537115],[0.75920873880392,48.18009185791009],[0.797655463218746,48.19446182250988]]]},"properties":{"ID_0":79,"ISO":"FR-72","NAME_0":"France","ID_1":18,"NAME_1":"Pays de la Loire","ID_2":74,"NAME_2":"Sarthe","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.377083063125554,46.73625183105469],[-2.319860935211182,46.71986007690441],[-2.296248912811222,46.70486068725585],[-2.332083940505868,46.685417175293026],[-2.392638921737614,46.70958328247081],[-2.400970935821533,46.72680664062505],[-2.377083063125554,46.73625183105469]]],[[[-2.257638931274414,47.02930450439459],[-2.219305992126351,47.01124954223638],[-2.221528053283635,46.97347259521496],[-2.156527042388859,46.95013809204096],[-2.147638082504272,46.91347122192394],[-2.219305992126351,46.964027404785156],[-2.260694980621338,46.957637786865234],[-2.303194046020451,46.99402618408208],[-2.287360906600895,47.02486038208019],[-2.257638931274414,47.02930450439459]]],[[[-1.09291398525238,46.31485366821289],[-1.094859957695007,46.314266204833984],[-1.097638010978699,46.31447982788085],[-1.104861021041813,46.31558990478521],[-1.107632279396,46.3160133361817],[-1.108194947242623,46.31610107421875],[-1.114458203315678,46.31763839721691],[-1.115417957305908,46.31944656372076],[-1.134027004241943,46.30541610717785],[-1.163470983505249,46.31291580200195],[-1.197124361991825,46.29877853393549],[-1.215695023536625,46.27264022827142],[-1.28263795375824,46.310695648193416],[-1.295694947242737,46.2904167175293],[-1.328192949295044,46.328193664550895],[-1.36735999584198,46.345695495605526],[-1.402361035346928,46.34069442749035],[-1.469027996063175,46.34291839599621],[-1.503751039504948,46.398471832275504],[-1.625417947769165,46.41236114501947],[-1.648748993873596,46.43458175659174],[-1.689306020736694,46.441806793213004],[-1.756526947021484,46.474304199218864],[-1.771528005599975,46.489582061767635],[-1.816249966621399,46.49902725219738],[-1.828194975852966,46.544029235839844],[-1.854303956031799,46.60597229003906],[-1.892083048820439,46.635139465331974],[-1.933472037315312,46.68402862548828],[-1.981250047683716,46.70458221435547],[-1.979583978652954,46.717361450195305],[-2.072082996368351,46.78291702270508],[-2.142637968063297,46.81874847412114],[-2.154304981231689,46.89014053344732],[-2.12819504737854,46.893196105956974],[-2.084028005599976,46.937637329101506],[-2.05819392204279,46.9509735107423],[-2.028748989105224,47.00958251953124],[-1.982360005378723,47.02774810791021],[-1.949818849563599,47.00087738037115],[-1.916717767715454,46.99215698242199],[-1.913175225257874,46.97221755981456],[-1.871775269508305,46.95317459106456],[-1.831169366836548,46.95326995849621],[-1.832106113433838,46.932086944580135],[-1.7798796892165,46.92522048950201],[-1.750432610511723,46.930370330810604],[-1.736008882522583,46.89605712890619],[-1.720345139503479,46.884696960449276],[-1.690871477127075,46.89009475708008],[-1.664177656173706,46.874702453613224],[-1.640486240386906,46.878494262695426],[-1.548511028289795,46.860080718994254],[-1.546307563781681,46.87297439575201],[-1.500791311263981,46.88339233398443],[-1.52982044219965,46.908199310302734],[-1.521631360054016,46.941036224365234],[-1.554271936416569,46.9786529541015],[-1.543657422065735,47.0037727355957],[-1.499844908714294,47.040691375732536],[-1.473130226135254,47.03112411499029],[-1.462753176689034,46.9900360107423],[-1.475257635116577,46.98094558715826],[-1.458497881889286,46.956230163574276],[-1.458267688751221,46.925838470459034],[-1.415447592735234,46.94435119628906],[-1.366159915924072,46.956691741943416],[-1.359058737754822,46.98113632202154],[-1.375943660736084,47.029655456543026],[-1.336458444595337,47.04406738281244],[-1.317961215972844,47.034301757812614],[-1.287281870841923,47.0583114624024],[-1.267883658409119,47.08426666259776],[-1.196768760681096,47.03976440429693],[-1.148571133613473,47.029552459716854],[-1.110118746757507,47.016010284423885],[-1.016110062599125,47.00364303588873],[-1.002263784408569,47.02128982543945],[-0.959132194519043,46.99812316894531],[-0.93487769365305,47.00756072998052],[-0.901293694972992,46.99143981933594],[-0.891960620880127,46.97582626342785],[-0.881000161170959,46.9464683532716],[-0.830605626106205,46.93114471435558],[-0.815466463565826,46.878860473632926],[-0.781428396701813,46.84307861328125],[-0.729630768299046,46.82155227661144],[-0.71004003286356,46.82157135009771],[-0.726563572883549,46.76876449584961],[-0.695491254329681,46.745368957519645],[-0.688669443130436,46.72584915161133],[-0.655832231044712,46.70033645629883],[-0.67875242233265,46.686683654785156],[-0.636989057064,46.663330078125114],[-0.648476839065495,46.64703750610363],[-0.61396545171732,46.62012481689453],[-0.627151370048523,46.60560226440435],[-0.613426685333195,46.58761215209961],[-0.60212862491602,46.533279418945256],[-0.628197550773564,46.52816390991216],[-0.644359588623047,46.51089477539068],[-0.625532507896423,46.49676513671881],[-0.620234310626984,46.439216613769645],[-0.611005187034607,46.41305160522461],[-0.537800490856114,46.38646697998047],[-0.559595406055394,46.360935211181754],[-0.602836191654205,46.35958480834972],[-0.637084722518921,46.33445739746099],[-0.643541216850281,46.31945037841808],[-0.697337746620121,46.32518768310541],[-0.726248919963837,46.30320739746105],[-0.750475525856018,46.30426025390625],[-0.759919106960297,46.312206268310604],[-0.840741693973541,46.33969116210932],[-0.848986387252751,46.318325042724666],[-0.886848092079106,46.3267059326173],[-0.933909475803262,46.312629699707024],[-0.958678126335087,46.323345184326286],[-0.934229910373688,46.36011123657232],[-0.96451336145401,46.3654022216798],[-0.978339016437531,46.3511962890625],[-1.017638683319092,46.35301208496105],[-1.050719857215881,46.343265533447266],[-1.09291398525238,46.31485366821289]]]]},"properties":{"ID_0":79,"ISO":"FR-85","NAME_0":"France","ID_1":18,"NAME_1":"Pays de la Loire","ID_2":75,"NAME_2":"Vendée","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Vendéia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.140979290008545,49.978805541992244],[4.233068466186523,49.95782470703131],[4.217773914337158,49.91625595092768],[4.255733966827506,49.90397644042969],[4.249004364013672,49.85695648193364],[4.233669757843018,49.84868621826172],[4.206332206726131,49.779621124267635],[4.242039203643742,49.765468597412166],[4.225406169891471,49.727275848388665],[4.191380977630615,49.71564483642589],[4.185269355774039,49.69887161254883],[4.12702131271368,49.67792129516607],[4.115690231323356,49.63326263427746],[4.050554752349853,49.63492965698242],[4.026275157928524,49.61992263793951],[4.064444065094051,49.59411621093756],[4.076769828796387,49.57072067260748],[4.051908016204777,49.54507446289068],[4.075648307800293,49.53895950317394],[4.074503898620605,49.51858520507818],[4.040711879730338,49.50853347778325],[4.042112350463867,49.47072601318365],[4.06140995025646,49.446731567382926],[4.037578582763729,49.438083648681584],[4.047973155975342,49.40564346313488],[4.035496234893799,49.35990524291992],[4.01272869110113,49.358306884765625],[3.986643791198787,49.37892150878906],[3.961308956146183,49.37734603881841],[3.924819469451961,49.4077262878419],[3.910301685333252,49.39533233642584],[3.859844207763786,49.38152313232416],[3.851309537887687,49.344944000244254],[3.803095340728873,49.35882186889654],[3.736195564270019,49.33555221557623],[3.669160604476986,49.324748992920036],[3.643261671066341,49.29588317871087],[3.655254602432365,49.26285171508789],[3.67701888084423,49.23708343505871],[3.654800891876278,49.21294784545904],[3.676669836044368,49.20726394653331],[3.706489801406974,49.180316925048885],[3.751147747039851,49.177700042724716],[3.748676300048942,49.15853118896496],[3.70329737663269,49.14320373535162],[3.683834791183471,49.15449142456055],[3.624456405639705,49.15135192871094],[3.610413551330624,49.12749862670904],[3.63224029541027,49.086090087890625],[3.587706327438468,49.05934906005871],[3.58520412445074,49.038867950439396],[3.614683628082332,49.03355026245117],[3.650133132934627,49.041358947753956],[3.677718877792415,49.01602935791027],[3.639824628830069,49.00399780273443],[3.621205806732291,48.9660301208496],[3.601246356964168,48.946681976318416],[3.574443340301457,48.939025878906186],[3.566684484481755,48.91349411010747],[3.528576374054012,48.91213989257812],[3.485187530517635,48.851909637451286],[3.382333993911743,48.8736305236817],[3.361698389053458,48.91955947875982],[3.33019924163824,48.907958984375],[3.313075780868587,48.92121505737305],[3.30474948883068,48.94877243041997],[3.269479513168335,48.93745422363292],[3.249521970748901,48.9742317199707],[3.171569347381592,49.01249694824219],[3.190666913986149,49.0499725341798],[3.155808210372925,49.085502624511655],[3.165230274200553,49.09965896606456],[3.07188439369213,49.11755371093744],[3.093913316726798,49.14210128784179],[3.139471054077205,49.154483795166016],[3.110953330993596,49.17056274414074],[3.102450370788687,49.19730758666998],[3.015699863433838,49.216316223144645],[2.991714954376221,49.19196319580078],[2.971813678741455,49.18753051757824],[2.964349031448478,49.23191070556646],[3.039328813552856,49.230461120605405],[3.026756525039673,49.260574340820426],[3.034602642059383,49.28589630126959],[2.99371957778942,49.2884178161621],[2.964259624481315,49.32138442993164],[3.001788377761955,49.34014892578125],[3.031483411789054,49.331569671630916],[3.068640947342033,49.34730529785162],[3.094371318817082,49.37853240966797],[3.094432115554866,49.43426895141595],[3.126730442047119,49.431819915771484],[3.155214309692496,49.45418548583996],[3.107085466384945,49.46823120117193],[3.121280908584595,49.493679046630916],[3.097789525985775,49.511245727539055],[3.122465372085571,49.521682739257926],[3.13148021697998,49.54337692260742],[3.122532606124878,49.60203552246093],[3.093575239181632,49.6225471496582],[3.112766265869254,49.63132858276367],[3.099381685257072,49.656555175781364],[3.127082824707088,49.66953277587885],[3.11865234375,49.70583343505859],[3.094681501388663,49.75726699829107],[3.061328649520931,49.78138351440441],[3.085932970046997,49.791748046875114],[3.087836265564079,49.86569213867193],[3.11913371086132,49.88302230834972],[3.117620229721126,49.91396331787115],[3.164916038513297,49.94754028320318],[3.163644313812313,49.96335983276361],[3.192717313766423,49.977535247802734],[3.155682563781852,49.99175262451172],[3.172707319259757,50.01199340820318],[3.229350328445378,50.03018951416026],[3.270715713500977,50.029468536377],[3.280355453491211,50.01520919799816],[3.337102174758968,50.017402648925895],[3.353106498718262,50.03571701049805],[3.398473978042602,50.03458023071294],[3.427791595459041,50.022087097168026],[3.490106105804443,50.01895904541009],[3.541758060455436,50.05197525024419],[3.594225406646843,50.04391860961913],[3.614123582839966,50.02505874633794],[3.66396427154541,50.0537109375],[3.715184688568172,50.06927490234386],[3.745751619339046,50.053573608398494],[3.837058544158936,50.04780960083019],[3.882319211959782,50.03236770629894],[3.887292385101375,50.00969314575207],[3.922870874405021,50.02625656127941],[3.949834346771353,50.02688598632818],[3.982312440872249,50.04443359375005],[3.995236396789608,50.028446197509766],[3.980143785476685,50.00356292724609],[4.0311217308045,49.98206710815429],[4.055109500885009,49.98535919189464],[4.084444046020565,49.970657348632926],[4.140979290008545,49.978805541992244]]]},"properties":{"ID_0":79,"ISO":"FR-02","NAME_0":"France","ID_1":19,"NAME_1":"Picardie","ID_2":76,"NAME_2":"Aisne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.784845352172794,49.75790405273437],[1.809601545333862,49.75384521484369],[1.838350534439087,49.7307243347168],[1.848986029624996,49.7016372680664],[1.894761323928833,49.69979476928711],[1.933066010475216,49.71987915039074],[1.949091553688163,49.700798034668075],[1.977684736251888,49.71134948730469],[2.034014701843262,49.71062088012706],[2.058854579925537,49.69510269165045],[2.124042034149284,49.6880378723145],[2.155584096908626,49.702091217041016],[2.229620695114192,49.70219421386719],[2.305654048919735,49.6827392578125],[2.332294702530021,49.68099212646484],[2.373909711837882,49.656036376953125],[2.412371635437125,49.66123199462896],[2.445587396621704,49.65297698974609],[2.478122711181697,49.6207885742188],[2.505775928497371,49.636280059814446],[2.526593446731567,49.62944412231445],[2.571631669998169,49.59708023071295],[2.615460395813045,49.611614227295036],[2.631943225860709,49.579116821289176],[2.670723199844417,49.58142089843744],[2.669194221496582,49.59991073608404],[2.688934087753353,49.6256561279298],[2.74435210227972,49.62520217895508],[2.786193132400513,49.61289978027344],[2.800428867340145,49.66136550903326],[2.839633703231812,49.660766601562436],[2.860636472702083,49.68488311767584],[2.886761903762874,49.68841552734369],[2.913415431976375,49.70950698852539],[2.95027399063116,49.69279098510748],[2.992365837097282,49.70765304565429],[3.028304815292472,49.68006515502941],[3.052434444427604,49.71376800537121],[3.11865234375,49.70583343505859],[3.127082824707088,49.66953277587885],[3.099381685257072,49.656555175781364],[3.112766265869254,49.63132858276367],[3.093575239181632,49.6225471496582],[3.122532606124878,49.60203552246093],[3.13148021697998,49.54337692260742],[3.122465372085571,49.521682739257926],[3.097789525985775,49.511245727539055],[3.121280908584595,49.493679046630916],[3.107085466384945,49.46823120117193],[3.155214309692496,49.45418548583996],[3.126730442047119,49.431819915771484],[3.094432115554866,49.43426895141595],[3.094371318817082,49.37853240966797],[3.068640947342033,49.34730529785162],[3.031483411789054,49.331569671630916],[3.001788377761955,49.34014892578125],[2.964259624481315,49.32138442993164],[2.99371957778942,49.2884178161621],[3.034602642059383,49.28589630126959],[3.026756525039673,49.260574340820426],[3.039328813552856,49.230461120605405],[2.964349031448478,49.23191070556646],[2.971813678741455,49.18753051757824],[2.991714954376221,49.19196319580078],[3.015699863433838,49.216316223144645],[3.102450370788687,49.19730758666998],[3.110953330993596,49.17056274414074],[3.139471054077205,49.154483795166016],[3.093913316726798,49.14210128784179],[3.07188439369213,49.11755371093744],[3.056320667266959,49.10191726684576],[2.974612236023063,49.07483673095703],[2.901507854461784,49.08537292480468],[2.856089353561458,49.070034027099666],[2.844946384430045,49.0848846435548],[2.809254169464111,49.09753799438482],[2.760833501815853,49.063003540039006],[2.735012531280631,49.06045913696289],[2.724357128143367,49.08045959472662],[2.692186594009513,49.076568603515625],[2.633272886276302,49.10837554931652],[2.590524196624813,49.07965469360363],[2.559478759765681,49.0976181030274],[2.489930868148746,49.106361389160156],[2.499226570129395,49.122268676757926],[2.440902709961051,49.1458015441895],[2.359295606613272,49.14734649658203],[2.321776866912955,49.184436798095696],[2.301197052002067,49.183887481689446],[2.286412954330501,49.15991973876953],[2.241582632064876,49.1515731811524],[2.220277070999259,49.17919921875],[2.168270587921199,49.16475296020502],[2.153026103973446,49.183925628662166],[2.095874547958488,49.19006347656249],[2.0807688236236,49.20720291137701],[2.021784305572623,49.188674926757926],[1.999445199966544,49.175571441650504],[1.974085569381714,49.18331527709961],[1.882568359375057,49.16249465942383],[1.776924133300895,49.1852264404298],[1.742694616317749,49.179801940918026],[1.715608477592525,49.20623779296869],[1.740453124046269,49.22344207763672],[1.704364180564824,49.232200622558594],[1.711645603179932,49.26452255249023],[1.75471997261053,49.27000808715831],[1.790288925170898,49.25369262695324],[1.802660226821899,49.27343368530285],[1.772390365600586,49.293663024902344],[1.774004220962638,49.335693359375114],[1.759340763092155,49.36824035644531],[1.720028877258414,49.395282745361385],[1.713937520980892,49.40922546386719],[1.726078152656498,49.43806457519537],[1.775770783424491,49.47343826293951],[1.787550449371338,49.506229400634766],[1.749279260635319,49.49359893798834],[1.726378798484916,49.54237365722656],[1.719389319419918,49.5822868347168],[1.69372546672821,49.60106658935541],[1.72168505191803,49.62332153320324],[1.708078145980949,49.64614868164068],[1.724131345749015,49.67180633544933],[1.752184510231075,49.68096542358404],[1.714367032051143,49.70719909667974],[1.712556719780025,49.7301483154298],[1.742890834808406,49.73855590820324],[1.749885678291321,49.76211547851568],[1.784845352172794,49.75790405273437]]]},"properties":{"ID_0":79,"ISO":"FR-60","NAME_0":"France","ID_1":19,"NAME_1":"Picardie","ID_2":77,"NAME_2":"Oise","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.615832805633545,50.36854934692383],[1.646498680114746,50.340076446533196],[1.677249193191585,50.33382034301758],[1.761848688125667,50.361606597900504],[1.804678559303284,50.35960388183605],[1.869130969047546,50.33446884155279],[1.875354409217834,50.32272720336914],[1.919496178627128,50.312664031982415],[1.946194767952079,50.33148956298834],[1.96393442153942,50.31805419921874],[1.93445813655859,50.29935073852545],[1.945648431777954,50.287746429443466],[2.048668146133423,50.256771087646484],[2.068487167358455,50.227092742920036],[2.096638441085872,50.206630706787166],[2.173296689987296,50.20788574218756],[2.269351243972892,50.22764968872075],[2.301693201065063,50.21295547485357],[2.331300735473576,50.22172546386719],[2.361731052398738,50.20707702636719],[2.38231992721569,50.22606658935558],[2.452066183090267,50.2302131652832],[2.495690345764103,50.19456100463867],[2.414845943450928,50.17311096191406],[2.389776945114136,50.1554832458496],[2.375459671020565,50.10926055908209],[2.394888162612972,50.11019134521484],[2.429657936096305,50.08818435668951],[2.455049514770621,50.13117599487316],[2.514949321746826,50.1408195495606],[2.532332181930599,50.115077972412166],[2.568370103836116,50.13596343994146],[2.57567143440258,50.11333084106445],[2.630727767944393,50.10727691650385],[2.647546529769897,50.09440994262695],[2.691648960113525,50.09206771850597],[2.729929685592651,50.12586212158209],[2.780897855758781,50.11115646362315],[2.781835794448852,50.09111404418956],[2.760424852371273,50.069633483886776],[2.752195358276367,50.0403213500976],[2.794509887695426,50.05005264282232],[2.80719780921936,50.062458038330135],[2.855413675308228,50.07799148559564],[2.876192808151188,50.044254302978516],[2.916974067687988,50.035530090332145],[2.948889255523795,50.0533218383789],[2.971535921096859,50.041366577148494],[3.011969804763907,50.05804061889654],[3.074492216110229,50.045299530029354],[3.090253591537589,50.05374145507812],[3.123577833175773,50.024486541748104],[3.172707319259757,50.01199340820318],[3.155682563781852,49.99175262451172],[3.192717313766423,49.977535247802734],[3.163644313812313,49.96335983276361],[3.164916038513297,49.94754028320318],[3.117620229721126,49.91396331787115],[3.11913371086132,49.88302230834972],[3.087836265564079,49.86569213867193],[3.085932970046997,49.791748046875114],[3.061328649520931,49.78138351440441],[3.094681501388663,49.75726699829107],[3.11865234375,49.70583343505859],[3.052434444427604,49.71376800537121],[3.028304815292472,49.68006515502941],[2.992365837097282,49.70765304565429],[2.95027399063116,49.69279098510748],[2.913415431976375,49.70950698852539],[2.886761903762874,49.68841552734369],[2.860636472702083,49.68488311767584],[2.839633703231812,49.660766601562436],[2.800428867340145,49.66136550903326],[2.786193132400513,49.61289978027344],[2.74435210227972,49.62520217895508],[2.688934087753353,49.6256561279298],[2.669194221496582,49.59991073608404],[2.670723199844417,49.58142089843744],[2.631943225860709,49.579116821289176],[2.615460395813045,49.611614227295036],[2.571631669998169,49.59708023071295],[2.526593446731567,49.62944412231445],[2.505775928497371,49.636280059814446],[2.478122711181697,49.6207885742188],[2.445587396621704,49.65297698974609],[2.412371635437125,49.66123199462896],[2.373909711837882,49.656036376953125],[2.332294702530021,49.68099212646484],[2.305654048919735,49.6827392578125],[2.229620695114192,49.70219421386719],[2.155584096908626,49.702091217041016],[2.124042034149284,49.6880378723145],[2.058854579925537,49.69510269165045],[2.034014701843262,49.71062088012706],[1.977684736251888,49.71134948730469],[1.949091553688163,49.700798034668075],[1.933066010475216,49.71987915039074],[1.894761323928833,49.69979476928711],[1.848986029624996,49.7016372680664],[1.838350534439087,49.7307243347168],[1.809601545333862,49.75384521484369],[1.784845352172794,49.75790405273437],[1.73385405540472,49.81349945068371],[1.712090253829899,49.88640213012701],[1.678450703621024,49.918132781982536],[1.596047759056148,49.94798660278326],[1.574389457702694,49.97365570068365],[1.526949524879569,49.996578216552734],[1.452256202697811,50.04266738891613],[1.459145903587398,50.0625],[1.422133922576904,50.069377899170036],[1.379722952842712,50.06502914428705],[1.45416605472559,50.11013793945306],[1.481387972831783,50.17069625854486],[1.501943945884761,50.194862365722656],[1.556388020515385,50.21680450439453],[1.622501015663204,50.19569396972662],[1.615834951400871,50.218471527099666],[1.580278038978633,50.257915496826165],[1.544167041778678,50.26208496093756],[1.53805494308483,50.28708267211914],[1.55694401264185,50.364860534668026],[1.615832805633545,50.36854934692383]]]},"properties":{"ID_0":79,"ISO":"FR-80","NAME_0":"France","ID_1":19,"NAME_1":"Picardie","ID_2":78,"NAME_2":"Somme","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.406249046325683,46.049304962158196],[-1.334861993789673,46.01458358764643],[-1.315695047378483,45.993751525878906],[-1.234307050704899,45.98236083984381],[-1.242082953453064,45.95458221435558],[-1.231528043746835,45.924861907959034],[-1.187638998031503,45.88597106933593],[-1.207082033157235,45.84875106811529],[-1.195693016052189,45.82819366455078],[-1.244583010673523,45.8095817565918],[-1.261250972747803,45.870140075683594],[-1.3848619461059,45.946804046630916],[-1.395972967147827,45.975971221923885],[-1.387915968894958,45.999584197998104],[-1.413193941116333,46.04180526733409],[-1.406249046325683,46.049304962158196]]],[[[-1.512639045715332,46.25958251953119],[-1.481528997421265,46.248474121093864],[-1.492915987968445,46.2293052673341],[-1.414584040641785,46.23152923583996],[-1.42986094951624,46.20624923706065],[-1.363471984863224,46.206527709961044],[-1.321249008178711,46.187084197998104],[-1.293751001358032,46.18847274780285],[-1.268473029136658,46.15513992309582],[-1.278193950653019,46.143470764160156],[-1.322082996368408,46.143470764160156],[-1.392637968063354,46.17736053466808],[-1.461804986000061,46.20236206054682],[-1.502637982368469,46.192638397216854],[-1.535972952842656,46.20124816894531],[-1.55930495262146,46.230972290039006],[-1.512639045715332,46.25958251953119]]],[[[-0.750475525856018,46.30426025390625],[-0.735993087291717,46.26781845092784],[-0.751461982727051,46.245071411132926],[-0.690944850444737,46.21932983398432],[-0.682412207126617,46.19769287109381],[-0.61585396528244,46.13845062255871],[-0.546856462955475,46.14386367797863],[-0.526792585849762,46.13555526733398],[-0.50363111495966,46.10726928710943],[-0.450340807437897,46.10205841064453],[-0.401450693607273,46.08424758911133],[-0.280022770166397,46.07690048217784],[-0.27302822470665,46.05731964111333],[-0.210661366581917,46.04543304443359],[-0.189131736755371,46.02614212036138],[-0.144795343279839,46.00466918945318],[-0.135610625147763,45.97853851318365],[-0.102936878800392,45.96966171264654],[-0.095793038606587,45.93088912963867],[-0.151134848594666,45.92662048339844],[-0.147453740239143,45.900848388671875],[-0.114735990762711,45.872375488281364],[-0.138513684272766,45.845645904541016],[-0.13609904050827,45.82064056396496],[-0.161583900451603,45.790767669677784],[-0.192106619477272,45.788387298583984],[-0.221083238720894,45.77521514892584],[-0.248029530048314,45.80548095703125],[-0.29179048538208,45.8056640625],[-0.312174886465073,45.786293029785206],[-0.365849077701569,45.779827117919915],[-0.401994526386261,45.78652191162121],[-0.404643356800023,45.770355224609375],[-0.449333965778294,45.7660026550294],[-0.460010170936584,45.739276885986385],[-0.415838629007339,45.74166870117193],[-0.419214904308262,45.723838806152344],[-0.408930063247681,45.65618896484381],[-0.43192362785328,45.624473571777344],[-0.387369245290756,45.62668228149414],[-0.376310378313008,45.60942840576172],[-0.296574324369431,45.5644989013673],[-0.319911032915115,45.534889221191456],[-0.254715621471405,45.51939392089844],[-0.251365512609368,45.491542816162216],[-0.268344849348011,45.45587539672863],[-0.248304113745689,45.435073852539055],[-0.251231133937779,45.41881179809576],[-0.310640484094563,45.37657928466802],[-0.271085679531097,45.357822418213004],[-0.283171564340591,45.30831909179693],[-0.228746742010117,45.32166290283209],[-0.196193069219532,45.30578231811535],[-0.161724537610951,45.30666351318354],[-0.108813494443837,45.289672851562614],[-0.115385264158192,45.24807357788086],[-0.049742344766855,45.24882125854492],[-0.03266728296876,45.23439025878906],[0.003707139520031,45.2284049987793],[0.004330746363905,45.19163131713873],[-0.036750011146069,45.1407470703125],[-0.040200341492834,45.102382659912166],[-0.065618291497174,45.10070419311529],[-0.087573483586311,45.12158203125005],[-0.111029207706395,45.115379333496094],[-0.143537327647209,45.0903434753418],[-0.191442385315838,45.0947494506837],[-0.257078230381012,45.11462020874029],[-0.275359451770782,45.14141082763677],[-0.362699329853058,45.17036056518565],[-0.378419399261475,45.156856536865234],[-0.419172704219704,45.21039199829112],[-0.405947506427765,45.24208068847662],[-0.416122585535049,45.267391204834034],[-0.472985565662327,45.293632507324276],[-0.513430058956146,45.28638458251959],[-0.567662417888585,45.29742050170892],[-0.568966627120858,45.331523895263786],[-0.6505326628685,45.32249069213873],[-0.717361986637002,45.328521728515675],[-0.747084021568298,45.395973205566406],[-0.77736002206791,45.435974121093864],[-0.829859972000122,45.48902893066406],[-0.902083992958069,45.530418395996094],[-0.915973007678986,45.550415039062614],[-0.946527004241943,45.551250457763786],[-0.991806983947754,45.5759735107423],[-0.995416998863107,45.599861145019524],[-1.017915964126587,45.620418548584034],[-1.042083978652954,45.61680603027337],[-1.071805953979435,45.63375091552746],[-1.115417957305908,45.64597320556652],[-1.161249041557198,45.67569351196289],[-1.214583039283752,45.69708251953136],[-1.239305019378662,45.71374893188487],[-1.244583010673523,45.782917022705135],[-1.21430504322052,45.79347229003906],[-1.188194990158081,45.79013824462902],[-1.136526942253113,45.81847381591797],[-1.167639970779362,45.844028472900504],[-1.154582023620605,45.86347198486328],[-1.123749971389771,45.85825347900402],[-1.080139040946847,45.900417327880916],[-1.072360038757324,45.950138092041016],[-1.08374905586237,45.96513748168957],[-1.081804990768319,45.99736022949219],[-1.052639007568359,46.011249542236385],[-1.060418009757882,46.04513931274414],[-1.090139985084477,46.05347061157238],[-1.100695013999882,46.09402847290044],[-1.171249985694828,46.1381950378418],[-1.230972051620426,46.15069580078125],[-1.199584007263184,46.213195800781364],[-1.174584031104985,46.222362518310604],[-1.123193979263306,46.26347351074224],[-1.132361054420471,46.30263900756836],[-1.122496366500798,46.32041549682623],[-1.121933579444885,46.32263946533209],[-1.10263895988453,46.315246582031364],[-1.100415945053101,46.314907073974666],[-1.093194007873535,46.31476974487315],[-1.09291398525238,46.31485366821289],[-1.050719857215881,46.343265533447266],[-1.017638683319092,46.35301208496105],[-0.978339016437531,46.3511962890625],[-0.96451336145401,46.3654022216798],[-0.934229910373688,46.36011123657232],[-0.958678126335087,46.323345184326286],[-0.933909475803262,46.312629699707024],[-0.886848092079106,46.3267059326173],[-0.848986387252751,46.318325042724666],[-0.840741693973541,46.33969116210932],[-0.759919106960297,46.312206268310604],[-0.750475525856018,46.30426025390625]]]]},"properties":{"ID_0":79,"ISO":"FR-17","NAME_0":"France","ID_1":20,"NAME_1":"Poitou-Charentes","ID_2":79,"NAME_2":"Charente-Maritime","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Charente-Inférieure"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.823433399200439,46.12858963012707],[0.832307457924003,46.104339599609375],[0.819170773029441,46.07739639282226],[0.817909300327358,46.04788589477545],[0.856265008449668,46.02972030639654],[0.924509346485252,46.01022720336914],[0.941492617130336,45.96058654785162],[0.884575426578579,45.923812866210994],[0.861097455024833,45.91978454589849],[0.821936547756195,45.931560516357536],[0.813539981841984,45.896884918213004],[0.827373206615505,45.8827476501466],[0.795988976955414,45.82988357543951],[0.782117664813995,45.82040405273443],[0.783778727054653,45.79347610473644],[0.742600083351249,45.8043785095216],[0.710514545440731,45.802200317382756],[0.695378899574337,45.76211929321294],[0.652866542339268,45.73937606811523],[0.629742443561611,45.71456909179693],[0.587921559810752,45.66767501831055],[0.575447082519588,45.64092636108392],[0.538447558879852,45.62873840332037],[0.512656629085541,45.631458282470696],[0.501440644264278,45.61535263061535],[0.516323685646171,45.58806228637707],[0.506549119949398,45.55434036254877],[0.465736716985759,45.53962326049815],[0.432763397693748,45.50164794921875],[0.378383815288657,45.48412704467785],[0.356706649065018,45.466220855712834],[0.310780584812107,45.45875930786144],[0.270859807729664,45.41892623901367],[0.249430790543556,45.36358642578131],[0.270634382963181,45.31460571289068],[0.252620726823807,45.28940582275396],[0.220911905169601,45.290225982666016],[0.204415708780289,45.26360321044922],[0.172293275594711,45.25171279907232],[0.174738436937446,45.23920822143566],[0.145485624671039,45.214485168457145],[0.115843661129531,45.213573455810604],[0.100036896765289,45.22607421875006],[0.055581782013235,45.22716522216797],[0.004330746363905,45.19163131713873],[0.003707139520031,45.2284049987793],[-0.03266728296876,45.23439025878906],[-0.049742344766855,45.24882125854492],[-0.115385264158192,45.24807357788086],[-0.108813494443837,45.289672851562614],[-0.161724537610951,45.30666351318354],[-0.196193069219532,45.30578231811535],[-0.228746742010117,45.32166290283209],[-0.283171564340591,45.30831909179693],[-0.271085679531097,45.357822418213004],[-0.310640484094563,45.37657928466802],[-0.251231133937779,45.41881179809576],[-0.248304113745689,45.435073852539055],[-0.268344849348011,45.45587539672863],[-0.251365512609368,45.491542816162216],[-0.254715621471405,45.51939392089844],[-0.319911032915115,45.534889221191456],[-0.296574324369431,45.5644989013673],[-0.376310378313008,45.60942840576172],[-0.387369245290756,45.62668228149414],[-0.43192362785328,45.624473571777344],[-0.408930063247681,45.65618896484381],[-0.419214904308262,45.723838806152344],[-0.415838629007339,45.74166870117193],[-0.460010170936584,45.739276885986385],[-0.449333965778294,45.7660026550294],[-0.404643356800023,45.770355224609375],[-0.401994526386261,45.78652191162121],[-0.365849077701569,45.779827117919915],[-0.312174886465073,45.786293029785206],[-0.29179048538208,45.8056640625],[-0.248029530048314,45.80548095703125],[-0.221083238720894,45.77521514892584],[-0.192106619477272,45.788387298583984],[-0.161583900451603,45.790767669677784],[-0.13609904050827,45.82064056396496],[-0.138513684272766,45.845645904541016],[-0.114735990762711,45.872375488281364],[-0.147453740239143,45.900848388671875],[-0.151134848594666,45.92662048339844],[-0.095793038606587,45.93088912963867],[-0.102936878800392,45.96966171264654],[-0.05886036157608,45.98605346679699],[-0.026206960901618,46.05634689331049],[0.019143542274833,46.05284500122075],[0.072972260415838,46.093894958496094],[0.09955890476715,46.09151458740246],[0.13581603765499,46.104049682617244],[0.167522802948952,46.0845565795899],[0.197353050112781,46.095558166503906],[0.21985170245182,46.09424591064453],[0.291330635547638,46.0595474243164],[0.314395427703971,46.06509017944347],[0.402776449918861,46.06312942504888],[0.413286954164505,46.04908752441412],[0.466101467609406,46.060966491699325],[0.475702792406139,46.0846672058106],[0.447431147098655,46.08704376220709],[0.472302705049628,46.130134582519524],[0.508685290813446,46.13193893432617],[0.539972841739711,46.0855598449707],[0.607352674007529,46.0777816772462],[0.608968436717987,46.08973693847662],[0.687452912330741,46.09725570678716],[0.676446795463619,46.11253356933593],[0.707183480262756,46.12899780273443],[0.74788343906414,46.13872146606457],[0.823433399200439,46.12858963012707]]]},"properties":{"ID_0":79,"ISO":"FR-16","NAME_0":"France","ID_1":20,"NAME_1":"Poitou-Charentes","ID_2":80,"NAME_2":"Charente","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.102121472358647,47.0648078918457],[-0.081341162323952,47.013130187988395],[-0.033123657107353,46.98025131225597],[-0.04483038187027,46.95951461791992],[-0.022142764180899,46.93811035156256],[-0.009123077616039,46.907924652099716],[-0.028286425396686,46.8791770935058],[0.02374417893617,46.85394287109375],[-0.010672212578299,46.84741592407232],[-0.045391917228642,46.824005126953125],[0.006810002028999,46.810543060302734],[-0.02424474991858,46.786392211914006],[-0.021371716633439,46.76661682128906],[0.024149354547262,46.74094772338867],[-0.000478385278257,46.71582412719732],[-0.00960560888052,46.68267059326172],[-0.035516712814513,46.651042938232536],[-0.058854382485151,46.638366699218864],[-0.010081548243704,46.61660003662121],[0.022854639217485,46.61453247070307],[0.020516727119968,46.58464431762706],[-0.003314514178783,46.57173156738287],[0.007113028783465,46.54534149169922],[-0.006269237026515,46.52397537231457],[-0.031351257115602,46.52498245239252],[-0.040101245045605,46.470058441162045],[-0.010465725325048,46.46833038330084],[-0.020217953249812,46.40587615966791],[0.034219980239925,46.373497009277344],[0.01384846307343,46.35701370239258],[0.029353862628454,46.32867431640625],[0.078217528760661,46.3049430847168],[0.123317316174621,46.34679031372082],[0.156198382377738,46.3432731628418],[0.17736878991127,46.32811355590832],[0.152945980429649,46.3040504455567],[0.172320276498795,46.27860260009777],[0.12883676588541,46.267230987548885],[0.14269715547556,46.2304458618164],[0.113431528210697,46.21220779418945],[0.107702337205353,46.185997009277344],[0.139626309275684,46.17960357666027],[0.155111372470969,46.157169342041065],[0.216310471296367,46.142131805420036],[0.188853532075996,46.111305236816456],[0.197353050112781,46.095558166503906],[0.167522802948952,46.0845565795899],[0.13581603765499,46.104049682617244],[0.09955890476715,46.09151458740246],[0.072972260415838,46.093894958496094],[0.019143542274833,46.05284500122075],[-0.026206960901618,46.05634689331049],[-0.05886036157608,45.98605346679699],[-0.102936878800392,45.96966171264654],[-0.135610625147763,45.97853851318365],[-0.144795343279839,46.00466918945318],[-0.189131736755371,46.02614212036138],[-0.210661366581917,46.04543304443359],[-0.27302822470665,46.05731964111333],[-0.280022770166397,46.07690048217784],[-0.401450693607273,46.08424758911133],[-0.450340807437897,46.10205841064453],[-0.50363111495966,46.10726928710943],[-0.526792585849762,46.13555526733398],[-0.546856462955475,46.14386367797863],[-0.61585396528244,46.13845062255871],[-0.682412207126617,46.19769287109381],[-0.690944850444737,46.21932983398432],[-0.751461982727051,46.245071411132926],[-0.735993087291717,46.26781845092784],[-0.750475525856018,46.30426025390625],[-0.726248919963837,46.30320739746105],[-0.697337746620121,46.32518768310541],[-0.643541216850281,46.31945037841808],[-0.637084722518921,46.33445739746099],[-0.602836191654205,46.35958480834972],[-0.559595406055394,46.360935211181754],[-0.537800490856114,46.38646697998047],[-0.611005187034607,46.41305160522461],[-0.620234310626984,46.439216613769645],[-0.625532507896423,46.49676513671881],[-0.644359588623047,46.51089477539068],[-0.628197550773564,46.52816390991216],[-0.60212862491602,46.533279418945256],[-0.613426685333195,46.58761215209961],[-0.627151370048523,46.60560226440435],[-0.61396545171732,46.62012481689453],[-0.648476839065495,46.64703750610363],[-0.636989057064,46.663330078125114],[-0.67875242233265,46.686683654785156],[-0.655832231044712,46.70033645629883],[-0.688669443130436,46.72584915161133],[-0.695491254329681,46.745368957519645],[-0.726563572883549,46.76876449584961],[-0.71004003286356,46.82157135009771],[-0.729630768299046,46.82155227661144],[-0.781428396701813,46.84307861328125],[-0.815466463565826,46.878860473632926],[-0.830605626106205,46.93114471435558],[-0.881000161170959,46.9464683532716],[-0.891960620880127,46.97582626342785],[-0.85891538858408,46.97046661376953],[-0.847720384597778,46.98615646362316],[-0.808483839035034,46.99180984497075],[-0.787577092647439,47.005138397216854],[-0.761534631252232,46.99314498901373],[-0.733897387981415,46.99715423583979],[-0.714539766311646,46.98598098754894],[-0.671041071414834,47.00098419189453],[-0.62017697095871,46.99336242675781],[-0.595491945743561,46.99790954589838],[-0.561547577381134,47.02950668334961],[-0.559717416763249,47.061698913574276],[-0.491782009601593,47.08285140991222],[-0.483751922845784,47.06659317016607],[-0.400779515504837,47.07077026367182],[-0.396030902862549,47.090240478515625],[-0.354752242565155,47.09500503540044],[-0.340140908956528,47.087272644043026],[-0.283180445432606,47.102340698242244],[-0.240407645702362,47.105144500732536],[-0.206268787384033,47.093193054199276],[-0.18524041771883,47.10841751098644],[-0.140891328454018,47.096763610839844],[-0.166736051440182,47.08099365234381],[-0.128896117210388,47.054237365722656],[-0.102121472358647,47.0648078918457]]]},"properties":{"ID_0":79,"ISO":"FR-79","NAME_0":"France","ID_1":20,"NAME_1":"Poitou-Charentes","ID_2":81,"NAME_2":"Deux-Sèvres","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.053739786148071,47.16461181640619],[0.07807111740118,47.12374114990246],[0.132102236151695,47.121391296386776],[0.161916881799812,47.1001091003418],[0.181687563657874,47.115356445312614],[0.200456321239585,47.091678619384766],[0.176861792802754,47.07371902465832],[0.208198502659798,47.05323791503906],[0.243871793151015,47.07094955444341],[0.264221280813217,47.046432495117244],[0.298426210880223,47.05397796630871],[0.309935390949306,47.028030395507926],[0.298205822706223,46.97126388549816],[0.310568571090698,46.9397087097168],[0.325352251529807,46.93094253540045],[0.364629656076374,46.94856643676769],[0.438709646463394,46.929580688476676],[0.44480341672903,46.94115829467784],[0.505189836025238,46.95991134643554],[0.598205327987671,46.95642852783209],[0.598804414272422,46.97492218017584],[0.573683023452759,46.983386993408196],[0.566949963569641,47.002540588378906],[0.618489921092987,47.00751495361328],[0.623983800411168,46.99368667602539],[0.690171778202,46.974979400634766],[0.706179261207637,46.936107635498104],[0.704670250415916,46.90288543701183],[0.753422677516937,46.86058425903326],[0.807996571063938,46.829139709472656],[0.813353598117885,46.79167938232433],[0.867468893528041,46.74821853637701],[0.898324728012142,46.73579788208008],[0.924812436103878,46.700218200683594],[0.902261495590153,46.67766571044916],[0.915637850761413,46.65067291259771],[0.894059300422668,46.62862396240246],[0.915865302085876,46.5966300964356],[0.941367268562374,46.58087921142583],[0.990254223346767,46.56590270996088],[1.01476442813879,46.56776428222667],[1.020409345626888,46.53714752197265],[1.090093851089591,46.537582397460994],[1.149143099784908,46.50221252441406],[1.135514140129146,46.47089004516607],[1.150917053222713,46.45029830932623],[1.213065862655753,46.43308258056646],[1.177279949188346,46.38395309448248],[1.128578662872258,46.362220764160156],[1.048636555671806,46.356548309326286],[1.027162790298462,46.34344100952148],[1.00588679313671,46.280975341796875],[0.934185385704154,46.281326293945256],[0.901247560977993,46.28750610351568],[0.889699697494564,46.26854705810541],[0.861633241176605,46.26181793212902],[0.843548536300773,46.238883972168026],[0.80839920043951,46.22800445556646],[0.813373327255363,46.19768905639643],[0.84585261344921,46.13837051391596],[0.823433399200439,46.12858963012707],[0.74788343906414,46.13872146606457],[0.707183480262756,46.12899780273443],[0.676446795463619,46.11253356933593],[0.687452912330741,46.09725570678716],[0.608968436717987,46.08973693847662],[0.607352674007529,46.0777816772462],[0.539972841739711,46.0855598449707],[0.508685290813446,46.13193893432617],[0.472302705049628,46.130134582519524],[0.447431147098655,46.08704376220709],[0.475702792406139,46.0846672058106],[0.466101467609406,46.060966491699325],[0.413286954164505,46.04908752441412],[0.402776449918861,46.06312942504888],[0.314395427703971,46.06509017944347],[0.291330635547638,46.0595474243164],[0.21985170245182,46.09424591064453],[0.197353050112781,46.095558166503906],[0.188853532075996,46.111305236816456],[0.216310471296367,46.142131805420036],[0.155111372470969,46.157169342041065],[0.139626309275684,46.17960357666027],[0.107702337205353,46.185997009277344],[0.113431528210697,46.21220779418945],[0.14269715547556,46.2304458618164],[0.12883676588541,46.267230987548885],[0.172320276498795,46.27860260009777],[0.152945980429649,46.3040504455567],[0.17736878991127,46.32811355590832],[0.156198382377738,46.3432731628418],[0.123317316174621,46.34679031372082],[0.078217528760661,46.3049430847168],[0.029353862628454,46.32867431640625],[0.01384846307343,46.35701370239258],[0.034219980239925,46.373497009277344],[-0.020217953249812,46.40587615966791],[-0.010465725325048,46.46833038330084],[-0.040101245045605,46.470058441162045],[-0.031351257115602,46.52498245239252],[-0.006269237026515,46.52397537231457],[0.007113028783465,46.54534149169922],[-0.003314514178783,46.57173156738287],[0.020516727119968,46.58464431762706],[0.022854639217485,46.61453247070307],[-0.010081548243704,46.61660003662121],[-0.058854382485151,46.638366699218864],[-0.035516712814513,46.651042938232536],[-0.00960560888052,46.68267059326172],[-0.000478385278257,46.71582412719732],[0.024149354547262,46.74094772338867],[-0.021371716633439,46.76661682128906],[-0.02424474991858,46.786392211914006],[0.006810002028999,46.810543060302734],[-0.045391917228642,46.824005126953125],[-0.010672212578299,46.84741592407232],[0.02374417893617,46.85394287109375],[-0.028286425396686,46.8791770935058],[-0.009123077616039,46.907924652099716],[-0.022142764180899,46.93811035156256],[-0.04483038187027,46.95951461791992],[-0.033123657107353,46.98025131225597],[-0.081341162323952,47.013130187988395],[-0.102121472358647,47.0648078918457],[-0.085541151463985,47.10043334960943],[-0.044239372014886,47.09315109252941],[-0.033735625445843,47.127563476562614],[-0.011722300201654,47.15624237060546],[0.019014857709408,47.175758361816456],[0.053739786148071,47.16461181640619]]]},"properties":{"ID_0":79,"ISO":"FR-86","NAME_0":"France","ID_1":20,"NAME_1":"Poitou-Charentes","ID_2":82,"NAME_2":"Vienne","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.95426702499401,44.65407943725586],[6.961511135101318,44.62145996093756],[6.941470146179256,44.57603073120128],[6.920465946197623,44.55873489379883],[6.889470577239933,44.55382919311529],[6.86726903915411,44.53113174438482],[6.88905906677246,44.485641479492244],[6.917470932006836,44.47103881835948],[6.953364849090575,44.42924880981445],[6.907470226287842,44.419750213623104],[6.900650024414176,44.36719131469738],[6.854558467864933,44.34377288818365],[6.840886592864989,44.34568786621105],[6.796833992004508,44.316699981689446],[6.786443710327148,44.28876495361328],[6.756922245025692,44.262248992920036],[6.724806785583439,44.250385284423885],[6.717369556427002,44.20864486694347],[6.68723821640026,44.16830062866211],[6.707956314086914,44.12438964843756],[6.75648307800293,44.079593658447266],[6.745687484741268,44.042831420898544],[6.788984775543213,44.02128219604498],[6.795561790466252,44.008113861083984],[6.838726997375545,43.98970413208019],[6.848904609680289,43.95507049560558],[6.912989139556998,43.92705917358404],[6.942272186279353,43.897262573242244],[6.89259243011486,43.88998031616205],[6.832286357879696,43.918460845947266],[6.801382064819393,43.91035079956066],[6.781622409820613,43.8835563659668],[6.748080730438176,43.87186050415033],[6.695946693420466,43.87490081787115],[6.667906284332275,43.83061218261718],[6.700319290161133,43.82477951049805],[6.709830284118709,43.810661315918026],[6.636395931243896,43.7889518737793],[6.623513221740836,43.80445098876953],[6.586912631988581,43.80532073974615],[6.554070472717342,43.78343582153325],[6.520383834838924,43.806976318359375],[6.487236022949219,43.79228591918957],[6.415852546691951,43.79004669189459],[6.412788391113224,43.76225662231445],[6.383541107177734,43.73443603515619],[6.354509830474909,43.73651504516607],[6.267786502838078,43.778545379638786],[6.249629974365234,43.80157852172857],[6.21067476272583,43.79766464233393],[6.169112682342472,43.751762390136825],[6.140605926513729,43.73760986328131],[6.110866546631086,43.745750427246094],[6.07040452957159,43.70494461059582],[6.034615039825553,43.692710876464844],[6.021735668182372,43.66828918457031],[5.98777246475231,43.69542312622082],[5.984534263610953,43.71449279785162],[5.951862335205192,43.721534729003906],[5.938253402709961,43.74835586547857],[5.90500164031988,43.7527809143067],[5.888624668121394,43.726364135742244],[5.855748653411865,43.72319030761713],[5.831820011138916,43.745956420898494],[5.781343460083007,43.755657196045036],[5.757332801818904,43.72940826416021],[5.716274261474723,43.7569313049317],[5.713558197021541,43.78112030029308],[5.684297561645565,43.78945159912115],[5.654445171356201,43.82511138916021],[5.627681732177733,43.83080291748047],[5.571718692779598,43.82929229736328],[5.548647403717098,43.84796524047863],[5.57273721694952,43.863510131836044],[5.606559753417969,43.91608428955078],[5.58338308334362,43.91591262817394],[5.567633152008113,43.9426383972168],[5.51267385482788,43.94540405273437],[5.519569396972599,43.99401092529308],[5.542867660522518,44.024448394775334],[5.54459810256958,44.069892883300895],[5.502637386321965,44.0634498596192],[5.498787879943961,44.11571884155279],[5.542145729064941,44.13326263427729],[5.575815677642822,44.18619537353521],[5.609326362609976,44.19070816040045],[5.63879489898693,44.166282653808594],[5.631136417388916,44.150577545166016],[5.678605556488036,44.146099090576286],[5.682728290557861,44.163486480713004],[5.645830154419059,44.167446136474716],[5.65159273147583,44.1895751953125],[5.676037311553955,44.191432952880916],[5.69238996505743,44.18626785278326],[5.754536628723145,44.20982742309582],[5.810880184173584,44.21075820922863],[5.830738544464111,44.20042800903326],[5.909914493560905,44.191604614257926],[5.880200862884578,44.2119407653808],[5.859308242797965,44.2454071044923],[5.83122110366827,44.25931167602539],[5.823013305664176,44.27646636962902],[5.849039077758789,44.300662994384766],[5.875487804412899,44.29096603393554],[5.880136489868164,44.271144866943416],[5.91223335266119,44.24951171875006],[5.913496017456112,44.28825378417974],[5.925138950347844,44.313400268554744],[5.897084712982178,44.31824874877929],[5.937459945678711,44.359901428222656],[5.953542709350643,44.39501953125],[6.019295215606746,44.41915130615245],[6.082678318023625,44.47740173339844],[6.155615329742488,44.46196746826172],[6.227243900299129,44.38173675537121],[6.262495040893555,44.41225814819336],[6.233524799346924,44.46374511718755],[6.262168884277344,44.46566772460949],[6.293492317199821,44.48092651367198],[6.313231945037899,44.4664421081543],[6.337659835815487,44.4708137512207],[6.361999988555908,44.52207183837896],[6.398808479309081,44.49415588378906],[6.415901660919303,44.46913909912121],[6.438481330871582,44.47212219238287],[6.481649398803711,44.454021453857415],[6.557482242584341,44.44599533081054],[6.632299900055159,44.44691467285162],[6.64166975021385,44.485546112060604],[6.668497085571346,44.5003013610841],[6.683020591735954,44.53165435791027],[6.738555431366024,44.55425643920909],[6.769219398498592,44.58610153198247],[6.821003913879451,44.608058929443466],[6.845108509063721,44.61017990112316],[6.858737945556868,44.627902984619254],[6.882274150848446,44.63133239746094],[6.915266513824462,44.65979766845708],[6.95426702499401,44.65407943725586]]]},"properties":{"ID_0":79,"ISO":"FR-04","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":83,"NAME_2":"Alpes-de-Haute-Provence","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.933195114135856,43.48015594482433],[6.884230136871395,43.5025367736817],[6.89521026611328,43.52193069458007],[6.87913513183588,43.53245544433588],[6.907830715179557,43.57094192504883],[6.911990642547607,43.59833145141613],[6.894469738006534,43.611022949218864],[6.85315799713146,43.606399536132926],[6.813587665557861,43.62970352172857],[6.799868106842097,43.62834930419933],[6.761134624481258,43.66588973999023],[6.774703979492243,43.69385147094738],[6.754161834716797,43.73785781860357],[6.71245193481451,43.74034118652355],[6.682462215423698,43.757583618164055],[6.657423496246338,43.748718261718864],[6.636395931243896,43.7889518737793],[6.709830284118709,43.810661315918026],[6.700319290161133,43.82477951049805],[6.667906284332275,43.83061218261718],[6.695946693420466,43.87490081787115],[6.748080730438176,43.87186050415033],[6.781622409820613,43.8835563659668],[6.801382064819393,43.91035079956066],[6.832286357879696,43.918460845947266],[6.89259243011486,43.88998031616205],[6.942272186279353,43.897262573242244],[6.912989139556998,43.92705917358404],[6.848904609680289,43.95507049560558],[6.838726997375545,43.98970413208019],[6.795561790466252,44.008113861083984],[6.788984775543213,44.02128219604498],[6.745687484741268,44.042831420898544],[6.75648307800293,44.079593658447266],[6.707956314086914,44.12438964843756],[6.68723821640026,44.16830062866211],[6.717369556427002,44.20864486694347],[6.724806785583439,44.250385284423885],[6.756922245025692,44.262248992920036],[6.786443710327148,44.28876495361328],[6.796833992004508,44.316699981689446],[6.840886592864989,44.34568786621105],[6.854558467864933,44.34377288818365],[6.900650024414176,44.36719131469738],[6.93236780166626,44.35435104370123],[6.939465045928954,44.33314895629888],[6.967559814453182,44.312950134277344],[6.968370914459229,44.299049377441406],[7.003346920013428,44.27945709228521],[7.01095008850109,44.243850708007926],[7.037686347961482,44.22556686401373],[7.076442718505803,44.23175811767584],[7.141895771026839,44.20177078247076],[7.195740222930965,44.19765090942383],[7.219533920288199,44.17205810546881],[7.242229938507137,44.170848846435604],[7.264095783233642,44.1476669311524],[7.345231056213435,44.14596176147461],[7.360407829284781,44.11706161499029],[7.412460327148438,44.11783218383795],[7.432788372039909,44.12934875488287],[7.462122440338248,44.12738800048828],[7.506918907165584,44.14566040039057],[7.569507122039852,44.15636062622076],[7.614704132080022,44.15456008911132],[7.634099960327205,44.176250457763786],[7.68419981002802,44.17726135253912],[7.669038772583008,44.12797927856457],[7.714300155639592,44.087760925293026],[7.70163536071783,44.043029785156364],[7.665332794189509,44.029380798339844],[7.668847560882682,43.99761581420898],[7.652744770050163,43.97601318359381],[7.611951351165885,43.956485748291065],[7.57154083251953,43.94533920288085],[7.561345577240046,43.89956665039074],[7.498899936676025,43.87236785888672],[7.529827117919865,43.78401565551763],[7.489305973052979,43.76551055908214],[7.436300277710018,43.750888824463004],[7.404984474182243,43.718002319336044],[7.357675552368277,43.721248626708984],[7.305973052978572,43.68486022949219],[7.287917137145996,43.69374847412115],[7.247916221618709,43.69097137451172],[7.211804866790714,43.64764022827154],[7.165972232818604,43.656806945800724],[7.134583950042781,43.62874984741216],[7.126248836517391,43.57402801513666],[7.084584236145076,43.569305419921875],[7.034028053283635,43.53569412231451],[7.028749942779597,43.548473358154354],[6.990971088409423,43.549026489257926],[6.958473205566349,43.539859771728516],[6.937917232513371,43.50930404663086],[6.95708179473877,43.501251220703175],[6.933195114135856,43.48015594482433]]]},"properties":{"ID_0":79,"ISO":"FR-06","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":84,"NAME_2":"Alpes-Maritimes","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.753650665283317,43.72462081909173],[5.7840771675111,43.71636581420909],[5.788631916046199,43.69672012329113],[5.813248634338436,43.689052581787166],[5.799205780029353,43.65992736816406],[5.770087718963566,43.66045761108404],[5.700600624084415,43.64252471923828],[5.680883884429988,43.610881805420036],[5.68757677078247,43.584213256835994],[5.656919479370117,43.5752792358399],[5.716864109039307,43.55120086669922],[5.714278221130485,43.50122070312499],[5.698802947998047,43.48217773437505],[5.727213859558105,43.46708297729503],[5.751574039459284,43.43427658081066],[5.778915405273551,43.41007232666021],[5.749995708465576,43.40151214599615],[5.703262805938778,43.40798950195318],[5.682787895202636,43.39916610717785],[5.703628063201961,43.35400772094738],[5.688144683837891,43.3409996032716],[5.691040515899715,43.312961578369254],[5.726601123809928,43.317363739013786],[5.762794017791862,43.282356262207145],[5.760929584503174,43.267345428466854],[5.70121955871582,43.247158050537216],[5.682416439056453,43.23545455932623],[5.670959949493408,43.17958450317388],[5.623192787170409,43.18680572509777],[5.600140094757079,43.16097259521489],[5.572361946105957,43.17235946655279],[5.531528949737606,43.21236038208008],[5.510971069336051,43.1973609924317],[5.458195209503174,43.210971832275334],[5.423750877380485,43.2048606872558],[5.403472900390624,43.21291732788086],[5.362360000610408,43.20680618286133],[5.348195075988883,43.23069381713873],[5.380416870117243,43.261528015136776],[5.345417022705134,43.28097152709955],[5.363749980926513,43.30958175659174],[5.339583873748892,43.34486007690424],[5.307640075683707,43.361526489257926],[5.259860038757267,43.337638854980526],[5.225416183471623,43.32791519165039],[5.197361946105957,43.33180618286138],[5.041528224945012,43.32791519165039],[5.020139217376709,43.34236145019537],[5.011806011200065,43.36847305297863],[4.977639198303279,43.40069580078125],[4.967916965484676,43.42652893066412],[4.923748970031794,43.43264007568371],[4.85014009475708,43.3976402282716],[4.84041690826416,43.37652969360345],[4.868195056915283,43.36819458007824],[4.865417003631705,43.34319305419933],[4.827082157135067,43.334583282470696],[4.781805038452148,43.34763717651373],[4.725139141082876,43.35041809082036],[4.658472061157227,43.346248626708984],[4.579862117767277,43.3623619079591],[4.556528091430721,43.3768043518067],[4.585693836212158,43.39847183227539],[4.579028129577694,43.433750152587834],[4.532083988189811,43.452083587646484],[4.441805839538517,43.4554176330567],[4.42958307266241,43.448749542236385],[4.229757785797119,43.45986175537115],[4.244232654571476,43.50146102905268],[4.293263912200985,43.51435852050781],[4.35365009307867,43.547393798828125],[4.372169971466178,43.549457550048885],[4.425405025482178,43.5847740173341],[4.448892593383789,43.58343887329113],[4.474191665649528,43.60398483276372],[4.43852519989025,43.61135482788085],[4.426920890808048,43.625835418701165],[4.451532840728817,43.66433334350597],[4.477648258209285,43.67280197143555],[4.486420631408691,43.69885253906255],[4.537796974182186,43.70703887939453],[4.598219871521053,43.686695098876946],[4.626948356628532,43.69167709350585],[4.612276077270621,43.724754333496094],[4.628118038177433,43.75771331787103],[4.651798248291129,43.784358978271484],[4.654428958892822,43.80915832519542],[4.642970085144156,43.832115173339844],[4.66667461395258,43.84721755981457],[4.641909599304199,43.867477416992244],[4.693608283996696,43.88521957397455],[4.739061355590877,43.92406845092784],[4.854805469512939,43.91079330444336],[4.902945518493652,43.887668609619254],[4.969653129577694,43.869743347168026],[5.027721405029411,43.82858276367193],[5.048139095306396,43.78972625732433],[5.186262130737418,43.73550796508789],[5.236377716064567,43.747470855713004],[5.315299987792911,43.73656463623047],[5.343698978424071,43.71877288818371],[5.44529294967657,43.68009567260748],[5.530508041381892,43.65923309326183],[5.606943607330322,43.658687591552734],[5.641422271728516,43.671989440918026],[5.673112869262809,43.69350814819347],[5.712026119232291,43.690643310546925],[5.753650665283317,43.72462081909173]]]},"properties":{"ID_0":79,"ISO":"FR-13","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":85,"NAME_2":"Bouches-du-Rhône","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.632041454315186,45.10973739624018],[6.670689105987549,45.06070709228521],[6.686503410339469,45.020915985107415],[6.739580154418945,45.02360916137701],[6.762772083282528,44.97071075439459],[6.762279987335204,44.913608551025504],[6.812376022338867,44.88661575317383],[6.825379848480281,44.872310638427734],[6.869470119476375,44.853916168213004],[6.912002563476562,44.84551239013672],[6.948660850524959,44.8636207580567],[7.003598213195914,44.839836120605526],[7.022010803222656,44.82304763793957],[7.009140014648493,44.79302215576166],[7.025538921356258,44.77362060546875],[7.024250984191894,44.74722671508795],[7.064780235290583,44.71176147460931],[7.074412345886287,44.69167327880865],[7.059867858886946,44.68048095703119],[7.030571460723934,44.6905136108399],[6.999599933624324,44.68677139282232],[6.95426702499401,44.65407943725586],[6.915266513824462,44.65979766845708],[6.882274150848446,44.63133239746094],[6.858737945556868,44.627902984619254],[6.845108509063721,44.61017990112316],[6.821003913879451,44.608058929443466],[6.769219398498592,44.58610153198247],[6.738555431366024,44.55425643920909],[6.683020591735954,44.53165435791027],[6.668497085571346,44.5003013610841],[6.64166975021385,44.485546112060604],[6.632299900055159,44.44691467285162],[6.557482242584341,44.44599533081054],[6.481649398803711,44.454021453857415],[6.438481330871582,44.47212219238287],[6.415901660919303,44.46913909912121],[6.398808479309081,44.49415588378906],[6.361999988555908,44.52207183837896],[6.337659835815487,44.4708137512207],[6.313231945037899,44.4664421081543],[6.293492317199821,44.48092651367198],[6.262168884277344,44.46566772460949],[6.233524799346924,44.46374511718755],[6.262495040893555,44.41225814819336],[6.227243900299129,44.38173675537121],[6.155615329742488,44.46196746826172],[6.082678318023625,44.47740173339844],[6.019295215606746,44.41915130615245],[5.953542709350643,44.39501953125],[5.937459945678711,44.359901428222656],[5.897084712982178,44.31824874877929],[5.925138950347844,44.313400268554744],[5.913496017456112,44.28825378417974],[5.91223335266119,44.24951171875006],[5.880136489868164,44.271144866943416],[5.875487804412899,44.29096603393554],[5.849039077758789,44.300662994384766],[5.823013305664176,44.27646636962902],[5.83122110366827,44.25931167602539],[5.859308242797965,44.2454071044923],[5.880200862884578,44.2119407653808],[5.909914493560905,44.191604614257926],[5.830738544464111,44.20042800903326],[5.810880184173584,44.21075820922863],[5.754536628723145,44.20982742309582],[5.69238996505743,44.18626785278326],[5.676037311553955,44.191432952880916],[5.681132793426514,44.23069381713867],[5.672644138336182,44.24567031860363],[5.68665266036993,44.26607131958019],[5.646781444549617,44.26708984375006],[5.640211582183838,44.293701171875],[5.613215923309269,44.31577301025401],[5.615752220153865,44.33240127563482],[5.539977550506649,44.332420349121094],[5.521000862121695,44.34923171997081],[5.492944240570181,44.33713531494152],[5.442621707916373,44.381267547607536],[5.432839393615722,44.41166305541992],[5.438582420349177,44.4335556030274],[5.47272253036499,44.420932769775504],[5.457842826843204,44.49815368652344],[5.51102972030634,44.49150848388672],[5.603636741638297,44.4654998779298],[5.633187770843449,44.50209808349621],[5.664504051208439,44.50189590454101],[5.627653121948356,44.53435897827154],[5.597249031066951,44.54327392578131],[5.60714769363409,44.56835174560546],[5.649461746215934,44.619380950927734],[5.641715526580924,44.65108489990246],[5.683495044708366,44.64997863769531],[5.725504875183105,44.64008712768565],[5.753769397735595,44.66053009033209],[5.790620326995906,44.65329742431646],[5.801016807556266,44.67482757568359],[5.829958438873348,44.69124221801769],[5.801469802856558,44.70677947998058],[5.829360961914062,44.742435455322266],[5.847985744476318,44.75152587890631],[5.885456085205192,44.747287750244254],[5.919571876525822,44.75278854370123],[5.980273246765079,44.781185150146534],[5.949519157409782,44.80453109741222],[6.003416061401309,44.820354461670036],[6.030210494995174,44.838096618652344],[6.056502342224121,44.81581497192377],[6.113150596618652,44.84553146362316],[6.130448818206787,44.86251449584972],[6.16965913772583,44.852390289306754],[6.196382045745963,44.85897827148448],[6.248866558075008,44.852558135986385],[6.267095088958683,44.86909103393555],[6.304352760314997,44.87279129028332],[6.336318969726562,44.848369598388786],[6.355364322662354,44.854824066162166],[6.358172416687011,44.9415740966798],[6.330079555511587,44.94776535034191],[6.298856258392391,45.00371170043945],[6.256173133850211,44.99621963500988],[6.203137874603328,45.01244735717784],[6.220080375671387,45.06536865234386],[6.24328517913824,45.06995010375982],[6.229263305664175,45.10680770874029],[6.26056623458868,45.12684631347656],[6.293342113494872,45.10863494873058],[6.334232807159424,45.122940063476676],[6.365100383758545,45.10198593139654],[6.396887779235954,45.061988830566406],[6.434869766235408,45.06299591064459],[6.45312404632574,45.052371978759766],[6.487082004547119,45.05640792846685],[6.481724739074821,45.09045410156256],[6.510423183441162,45.109001159668026],[6.535192966461238,45.0989723205567],[6.576530933380241,45.12309646606445],[6.613530158996696,45.12095642089844],[6.632041454315186,45.10973739624018]]]},"properties":{"ID_0":79,"ISO":"FR-05","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":86,"NAME_2":"Hautes-Alpes","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[6.240971088409424,43.02513885498047],[6.250971794128418,42.99902725219738],[6.210972785949706,43.00208282470703],[6.240971088409424,43.02513885498047]]],[[[6.636395931243896,43.7889518737793],[6.657423496246338,43.748718261718864],[6.682462215423698,43.757583618164055],[6.71245193481451,43.74034118652355],[6.754161834716797,43.73785781860357],[6.774703979492243,43.69385147094738],[6.761134624481258,43.66588973999023],[6.799868106842097,43.62834930419933],[6.813587665557861,43.62970352172857],[6.85315799713146,43.606399536132926],[6.894469738006534,43.611022949218864],[6.911990642547607,43.59833145141613],[6.907830715179557,43.57094192504883],[6.87913513183588,43.53245544433588],[6.89521026611328,43.52193069458007],[6.884230136871395,43.5025367736817],[6.933195114135856,43.48015594482433],[6.919027805328483,43.44763946533203],[6.891806125640869,43.428195953369254],[6.850973129272518,43.41069412231445],[6.822360038757266,43.4156951904298],[6.782361984253042,43.40930557250988],[6.762638092041129,43.42430496215826],[6.724027156829891,43.396804809570426],[6.715416908264216,43.346805572509766],[6.680694103240967,43.34097290039062],[6.665139198303335,43.319305419921925],[6.628193855285758,43.30430603027355],[6.583473205566519,43.27708435058594],[6.593471050262508,43.26208496093756],[6.635694980621395,43.27375030517584],[6.69069480895996,43.25180435180664],[6.662361145019588,43.23875045776373],[6.664861202240047,43.210971832275334],[6.617361068725699,43.16263961791997],[6.600694179534968,43.18291854858409],[6.555139064788875,43.18847274780273],[6.492362022399902,43.15013885498052],[6.462361812591666,43.15736007690441],[6.402638912200985,43.149581909179744],[6.369027137756404,43.137638092041065],[6.359305858612061,43.115139007568416],[6.364582061767692,43.08597183227545],[6.332637786865234,43.09013748168951],[6.313195228576774,43.10791778564453],[6.276527881622314,43.12097167968756],[6.240139007568359,43.11375045776367],[6.206251144409237,43.11652755737316],[6.160971164703426,43.08930587768555],[6.150416851043758,43.06402587890625],[6.125973224639893,43.07875061035156],[6.087637901306209,43.08708190917963],[6.030416011810303,43.077083587646484],[6.006527900695857,43.10374832153331],[5.972361087799071,43.10708236694336],[5.90513801574707,43.103473663330135],[5.928750038146973,43.07152938842785],[5.887083053588867,43.076805114746094],[5.851250171661434,43.0484733581543],[5.829583168029785,43.04875183105463],[5.806527137756348,43.08069610595709],[5.81402778625494,43.105972290039006],[5.774303913116511,43.11624908447276],[5.754860877990779,43.13041687011719],[5.694860935211295,43.14347076416021],[5.694028854370231,43.17180633544922],[5.670959949493408,43.17958450317388],[5.682416439056453,43.23545455932623],[5.70121955871582,43.247158050537216],[5.760929584503174,43.267345428466854],[5.762794017791862,43.282356262207145],[5.726601123809928,43.317363739013786],[5.691040515899715,43.312961578369254],[5.688144683837891,43.3409996032716],[5.703628063201961,43.35400772094738],[5.682787895202636,43.39916610717785],[5.703262805938778,43.40798950195318],[5.749995708465576,43.40151214599615],[5.778915405273551,43.41007232666021],[5.751574039459284,43.43427658081066],[5.727213859558105,43.46708297729503],[5.698802947998047,43.48217773437505],[5.714278221130485,43.50122070312499],[5.716864109039307,43.55120086669922],[5.656919479370117,43.5752792358399],[5.68757677078247,43.584213256835994],[5.680883884429988,43.610881805420036],[5.700600624084415,43.64252471923828],[5.770087718963566,43.66045761108404],[5.799205780029353,43.65992736816406],[5.813248634338436,43.689052581787166],[5.788631916046199,43.69672012329113],[5.7840771675111,43.71636581420909],[5.753650665283317,43.72462081909173],[5.757332801818904,43.72940826416021],[5.781343460083007,43.755657196045036],[5.831820011138916,43.745956420898494],[5.855748653411865,43.72319030761713],[5.888624668121394,43.726364135742244],[5.90500164031988,43.7527809143067],[5.938253402709961,43.74835586547857],[5.951862335205192,43.721534729003906],[5.984534263610953,43.71449279785162],[5.98777246475231,43.69542312622082],[6.021735668182372,43.66828918457031],[6.034615039825553,43.692710876464844],[6.07040452957159,43.70494461059582],[6.110866546631086,43.745750427246094],[6.140605926513729,43.73760986328131],[6.169112682342472,43.751762390136825],[6.21067476272583,43.79766464233393],[6.249629974365234,43.80157852172857],[6.267786502838078,43.778545379638786],[6.354509830474909,43.73651504516607],[6.383541107177734,43.73443603515619],[6.412788391113224,43.76225662231445],[6.415852546691951,43.79004669189459],[6.487236022949219,43.79228591918957],[6.520383834838924,43.806976318359375],[6.554070472717342,43.78343582153325],[6.586912631988581,43.80532073974615],[6.623513221740836,43.80445098876953],[6.636395931243896,43.7889518737793]]]]},"properties":{"ID_0":79,"ISO":"FR-83","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":87,"NAME_2":"Var","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.498787879943961,44.11571884155279],[5.502637386321965,44.0634498596192],[5.54459810256958,44.069892883300895],[5.542867660522518,44.024448394775334],[5.519569396972599,43.99401092529308],[5.51267385482788,43.94540405273437],[5.567633152008113,43.9426383972168],[5.58338308334362,43.91591262817394],[5.606559753417969,43.91608428955078],[5.57273721694952,43.863510131836044],[5.548647403717098,43.84796524047863],[5.571718692779598,43.82929229736328],[5.627681732177733,43.83080291748047],[5.654445171356201,43.82511138916021],[5.684297561645565,43.78945159912115],[5.713558197021541,43.78112030029308],[5.716274261474723,43.7569313049317],[5.757332801818904,43.72940826416021],[5.753650665283317,43.72462081909173],[5.712026119232291,43.690643310546925],[5.673112869262809,43.69350814819347],[5.641422271728516,43.671989440918026],[5.606943607330322,43.658687591552734],[5.530508041381892,43.65923309326183],[5.44529294967657,43.68009567260748],[5.343698978424071,43.71877288818371],[5.315299987792911,43.73656463623047],[5.236377716064567,43.747470855713004],[5.186262130737418,43.73550796508789],[5.048139095306396,43.78972625732433],[5.027721405029411,43.82858276367193],[4.969653129577694,43.869743347168026],[4.902945518493652,43.887668609619254],[4.854805469512939,43.91079330444336],[4.739061355590877,43.92406845092784],[4.77728796005249,43.93819808959972],[4.814368724822998,43.96467590332031],[4.812966823577938,43.988006591796925],[4.840941429138184,43.98591613769537],[4.842254161834774,44.011100769043026],[4.762887001037654,44.07486724853527],[4.723213195800895,44.07935333251953],[4.705081939697266,44.10817337036144],[4.718133449554499,44.14067840576183],[4.716250896453857,44.17604446411144],[4.699935913086051,44.21610641479503],[4.649223804473877,44.27035903930664],[4.650615215301514,44.329807281494254],[4.679883956909293,44.32069396972662],[4.762995243072567,44.32509994506836],[4.804563522338924,44.30389785766601],[4.803998470306396,44.26920700073242],[4.813448429107666,44.23242568969732],[4.825341701507625,44.22844696044916],[4.880250453949031,44.26176834106445],[4.932910442352294,44.26215362548839],[4.989594459533691,44.28576660156256],[5.06056451797491,44.30813980102539],[5.076511859893742,44.28408432006836],[5.109547138214111,44.280548095703125],[5.149529457092399,44.30068206787121],[5.161547660827694,44.24559020996105],[5.175606250762939,44.220867156982536],[5.23814964294445,44.213233947753906],[5.256508827209529,44.23005676269537],[5.303624153137207,44.20879745483404],[5.335726261138916,44.20431137084955],[5.355790138244628,44.213600158691406],[5.384529113769474,44.201190948486385],[5.383240699768066,44.15528488159191],[5.415833950042781,44.15465164184576],[5.447570800781307,44.136756896972656],[5.454716682434081,44.11922836303722],[5.498787879943961,44.11571884155279]]],[[[4.988609790802059,44.42319869995123],[5.018616676330623,44.39258956909179],[5.070319652557373,44.37644577026373],[5.025059223175048,44.3610000610351],[5.013334751129207,44.32565307617193],[4.979967594146729,44.297248840332145],[4.921835899353026,44.30879592895519],[4.889462947845459,44.30401992797863],[4.869526863098145,44.345077514648494],[4.907084941864127,44.37462997436535],[4.918515205383301,44.40778350830078],[4.988609790802059,44.42319869995123]]]]},"properties":{"ID_0":79,"ISO":"FR-84","NAME_0":"France","ID_1":21,"NAME_1":"Provence-Alpes-Côte d'Azur","ID_2":88,"NAME_2":"Vaucluse","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.310561180114746,46.44677352905285],[5.321727275848502,46.42895507812494],[5.309145927429256,46.41025543212885],[5.348115921020621,46.399417877197315],[5.377880573272705,46.38232421875006],[5.373462200164738,46.352237701416016],[5.400996208191032,46.339298248291065],[5.42353439331049,46.34773254394531],[5.437145709991569,46.31512832641613],[5.475304603576774,46.31538391113287],[5.45767164230341,46.276847839355526],[5.475361824035701,46.2652206420899],[5.539301395416317,46.26890182495123],[5.564674377441463,46.29276657104498],[5.597891330718994,46.2978973388673],[5.612518310546875,46.326557159423885],[5.649797916412467,46.334190368652344],[5.684582233428955,46.31093215942394],[5.714552879333552,46.30807113647472],[5.725181102752742,46.26069259643555],[5.766045093536434,46.268329620361385],[5.850658416748047,46.26169967651373],[5.909197807312069,46.283943176269645],[5.918933391571159,46.30929565429693],[5.941530704498347,46.30926513671881],[5.984117031097526,46.36265563964849],[6.031020164489973,46.38809967041027],[6.064008712768612,46.41622543334972],[6.097525596618652,46.40828323364257],[6.168451309204214,46.36745834350586],[6.102365970611685,46.28484725952143],[6.122535228729362,46.25333786010753],[6.034514427185172,46.23723983764654],[5.963675975799674,46.196968078613395],[5.993235588073674,46.18482208251953],[5.956063270568847,46.13208770751959],[5.92040300369274,46.13103866577154],[5.886226654052848,46.109619140625114],[5.889992713928336,46.08715057373041],[5.855986595153922,46.08666992187506],[5.838211536407414,46.1025505065918],[5.811419010162354,46.07843017578125],[5.80699634552002,46.043830871582145],[5.812287807464543,45.986652374267635],[5.834025859832877,45.97202682495128],[5.83122634887701,45.93846130371099],[5.829400539398307,45.91398620605468],[5.795850276947021,45.82979965209961],[5.786934375762939,45.823223114013786],[5.776365756988469,45.72792053222662],[5.748939037322998,45.70546340942383],[5.700599193573054,45.70994567871094],[5.709198951721191,45.68492889404297],[5.685640335083065,45.66701126098644],[5.687900543212834,45.643962860107536],[5.652817726135311,45.636680603027344],[5.623747825622559,45.613269805908146],[5.60193586349493,45.65261459350586],[5.545290470123234,45.68774032592779],[5.545541763305778,45.71359252929693],[5.483998298645133,45.7532844543457],[5.422512531280518,45.807125091552734],[5.433657646179199,45.83230209350586],[5.404377460479679,45.856876373291016],[5.354928493499756,45.88278198242193],[5.302490711212158,45.848133087158196],[5.290626525878963,45.81418609619152],[5.266894817352295,45.789367675781364],[5.224333763122559,45.76884078979498],[5.19101524353033,45.77194976806646],[5.157854080200195,45.80321884155285],[5.101067543029899,45.81337738037115],[5.0166916847229,45.805610656738395],[4.963685512542838,45.81087875366205],[4.923799037933463,45.80400085449224],[4.921115875244254,45.83274459838873],[4.883826732635555,45.87999343872076],[4.880698680877629,45.897171020507926],[4.849115371704158,45.91286849975597],[4.805177211761588,45.89632797241205],[4.807760238647461,45.92080688476574],[4.777994155883903,45.9378395080567],[4.731370449066276,45.941318511963004],[4.754611492157039,45.973812103271484],[4.739616394043082,46.04748535156244],[4.761754512786922,46.067436218261776],[4.748022556304988,46.09135818481451],[4.795944213867188,46.139156341552734],[4.802549839019832,46.15643692016612],[4.780213356018123,46.176677703857536],[4.810817241668701,46.25454711914068],[4.851423263549804,46.32607650756836],[4.858530044555607,46.36801528930658],[4.888207912445068,46.40298080444336],[4.894443511962834,46.44537353515625],[4.914447784423942,46.46216201782232],[4.915284633636475,46.488235473632926],[4.935598850250187,46.51422882080078],[4.95371055603033,46.504112243652344],[4.980215549469108,46.51520538330078],[5.054751396179256,46.48427963256841],[5.141041755676383,46.508586883544865],[5.201220512390194,46.50782012939458],[5.215064048767147,46.46836090087896],[5.273676872253474,46.44858932495123],[5.310561180114746,46.44677352905285]]]},"properties":{"ID_0":79,"ISO":"FR-01","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":89,"NAME_2":"Ain","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.800493717193604,45.29835891723644],[4.809488773345947,45.28768539428705],[4.801633834838867,45.24599456787121],[4.812208652496337,45.204952239990234],[4.811837196350098,45.16525650024414],[4.828574657440299,45.154239654541016],[4.804038524627686,45.122467041015625],[4.829596996307372,45.09800338745123],[4.829155445098934,45.0728492736817],[4.860745906829891,45.05542755126964],[4.841948032379094,45.037910461425895],[4.83670806884777,45.00751113891601],[4.860489845275936,44.96554946899414],[4.886589527130241,44.93665313720703],[4.854323863983267,44.89652252197271],[4.86128139495861,44.87822341918945],[4.823316097259577,44.8394889831543],[4.821485042572134,44.817382812500114],[4.761039733886719,44.77121734619152],[4.764220237732047,44.71502685546875],[4.781589984893912,44.67884445190441],[4.779072761535588,44.65469741821289],[4.740404605865479,44.60239410400396],[4.710872173309325,44.58200073242193],[4.692446231842097,44.54651641845709],[4.706587791442985,44.53407287597662],[4.6894149780274,44.49234771728521],[4.699537277221793,44.480083465576286],[4.695289134979362,44.445796966552734],[4.667106628418026,44.429912567138786],[4.664373397827204,44.398944854736385],[4.649064540863037,44.373073577880966],[4.650615215301514,44.329807281494254],[4.649223804473877,44.27035903930664],[4.632679462432861,44.28499221801752],[4.557167530059871,44.30416870117182],[4.545630931854248,44.31970977783209],[4.506097316742057,44.340251922607536],[4.451067924499569,44.33409500122075],[4.448757171630858,44.29671096801763],[4.403570175170898,44.288177490234375],[4.391594409942684,44.304759979248104],[4.402346611022948,44.3350067138673],[4.325771331787165,44.33832550048828],[4.318097591400203,44.321750640869254],[4.28837442398077,44.315017700195426],[4.288995742797795,44.29214477539057],[4.27377271652216,44.27175140380859],[4.245138168335018,44.268074035644645],[4.216383934021053,44.28903961181652],[4.186579227447567,44.29973602294933],[4.177990436553955,44.31774139404297],[4.142867565155086,44.31335067749029],[4.126751899719181,44.337734222412166],[4.073842048645075,44.32902526855469],[4.051451683044546,44.31732177734369],[4.057089328765869,44.36414337158208],[4.042393207550049,44.394073486328175],[4.06843996047985,44.40505981445306],[4.037812709808406,44.420917510986385],[4.045418739318848,44.43349456787109],[3.998162984848079,44.45979690551763],[3.986860036850089,44.502166748046875],[3.948773860931396,44.572887420654354],[3.923566818237361,44.571884155273494],[3.894139766693229,44.61528778076172],[3.89477801322937,44.64996337890619],[3.871647119522095,44.6793365478515],[3.862527370452937,44.743873596191406],[3.876486539840811,44.756801605224666],[3.924917936325187,44.769622802734375],[3.945542573928833,44.82434463500988],[3.998603105545101,44.82357406616222],[4.038909912109375,44.872764587402344],[4.069305419921932,44.867694854736264],[4.108429431915226,44.87793350219738],[4.156636714935303,44.87397766113287],[4.179478645324764,44.886512756347656],[4.184321403503418,44.90832519531256],[4.216572284698543,44.93357849121105],[4.223854541778564,44.9628791809082],[4.256587028503531,44.95987701416027],[4.314365386963003,44.97316741943365],[4.291110038757438,44.99732971191406],[4.318085670471248,45.029933929443416],[4.351543426513729,45.02766036987315],[4.379067897796745,45.03617477416992],[4.378729820251579,45.05286407470703],[4.347736835479736,45.06525039672862],[4.359231948852539,45.09957122802734],[4.39713716506958,45.105236053466854],[4.372570514678955,45.12807464599615],[4.376558780670223,45.144359588623104],[4.411158561706543,45.1408309936524],[4.438930988311768,45.12035751342785],[4.448111057281494,45.161960601806754],[4.472579002380485,45.17989349365234],[4.483134746551514,45.236446380615234],[4.536259651184025,45.236820220947266],[4.605315208435172,45.25339889526367],[4.591348171234245,45.27288436889654],[4.615798950195368,45.31026077270508],[4.680130004882926,45.34626388549805],[4.755997180938721,45.365680694580185],[4.772551536560115,45.35429763793945],[4.762214183807487,45.32355117797845],[4.800493717193604,45.29835891723644]]]},"properties":{"ID_0":79,"ISO":"FR-07","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":90,"NAME_2":"Ardèche","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.801469802856558,44.70677947998058],[5.829958438873348,44.69124221801769],[5.801016807556266,44.67482757568359],[5.790620326995906,44.65329742431646],[5.753769397735595,44.66053009033209],[5.725504875183105,44.64008712768565],[5.683495044708366,44.64997863769531],[5.641715526580924,44.65108489990246],[5.649461746215934,44.619380950927734],[5.60714769363409,44.56835174560546],[5.597249031066951,44.54327392578131],[5.627653121948356,44.53435897827154],[5.664504051208439,44.50189590454101],[5.633187770843449,44.50209808349621],[5.603636741638297,44.4654998779298],[5.51102972030634,44.49150848388672],[5.457842826843204,44.49815368652344],[5.47272253036499,44.420932769775504],[5.438582420349177,44.4335556030274],[5.432839393615722,44.41166305541992],[5.442621707916373,44.381267547607536],[5.492944240570181,44.33713531494152],[5.521000862121695,44.34923171997081],[5.539977550506649,44.332420349121094],[5.615752220153865,44.33240127563482],[5.613215923309269,44.31577301025401],[5.640211582183838,44.293701171875],[5.646781444549617,44.26708984375006],[5.68665266036993,44.26607131958019],[5.672644138336182,44.24567031860363],[5.681132793426514,44.23069381713867],[5.676037311553955,44.191432952880916],[5.65159273147583,44.1895751953125],[5.645830154419059,44.167446136474716],[5.682728290557861,44.163486480713004],[5.678605556488036,44.146099090576286],[5.631136417388916,44.150577545166016],[5.63879489898693,44.166282653808594],[5.609326362609976,44.19070816040045],[5.575815677642822,44.18619537353521],[5.542145729064941,44.13326263427729],[5.498787879943961,44.11571884155279],[5.454716682434081,44.11922836303722],[5.447570800781307,44.136756896972656],[5.415833950042781,44.15465164184576],[5.383240699768066,44.15528488159191],[5.384529113769474,44.201190948486385],[5.355790138244628,44.213600158691406],[5.335726261138916,44.20431137084955],[5.303624153137207,44.20879745483404],[5.256508827209529,44.23005676269537],[5.23814964294445,44.213233947753906],[5.175606250762939,44.220867156982536],[5.161547660827694,44.24559020996105],[5.149529457092399,44.30068206787121],[5.109547138214111,44.280548095703125],[5.076511859893742,44.28408432006836],[5.06056451797491,44.30813980102539],[4.989594459533691,44.28576660156256],[4.932910442352294,44.26215362548839],[4.880250453949031,44.26176834106445],[4.825341701507625,44.22844696044916],[4.813448429107666,44.23242568969732],[4.803998470306396,44.26920700073242],[4.804563522338924,44.30389785766601],[4.762995243072567,44.32509994506836],[4.679883956909293,44.32069396972662],[4.650615215301514,44.329807281494254],[4.649064540863037,44.373073577880966],[4.664373397827204,44.398944854736385],[4.667106628418026,44.429912567138786],[4.695289134979362,44.445796966552734],[4.699537277221793,44.480083465576286],[4.6894149780274,44.49234771728521],[4.706587791442985,44.53407287597662],[4.692446231842097,44.54651641845709],[4.710872173309325,44.58200073242193],[4.740404605865479,44.60239410400396],[4.779072761535588,44.65469741821289],[4.781589984893912,44.67884445190441],[4.764220237732047,44.71502685546875],[4.761039733886719,44.77121734619152],[4.821485042572134,44.817382812500114],[4.823316097259577,44.8394889831543],[4.86128139495861,44.87822341918945],[4.854323863983267,44.89652252197271],[4.886589527130241,44.93665313720703],[4.860489845275936,44.96554946899414],[4.83670806884777,45.00751113891601],[4.841948032379094,45.037910461425895],[4.860745906829891,45.05542755126964],[4.829155445098934,45.0728492736817],[4.829596996307372,45.09800338745123],[4.804038524627686,45.122467041015625],[4.828574657440299,45.154239654541016],[4.811837196350098,45.16525650024414],[4.812208652496337,45.204952239990234],[4.801633834838867,45.24599456787121],[4.809488773345947,45.28768539428705],[4.800493717193604,45.29835891723644],[4.858798980712891,45.308952331542905],[4.878778934478817,45.29771423339844],[4.928178310394401,45.322731018066406],[4.990147113800049,45.343986511230526],[5.009652137756404,45.34223175048834],[5.020647048950309,45.319290161132805],[5.05279731750494,45.31899261474615],[5.073565959930534,45.283229827880916],[5.130630970001221,45.283676147460994],[5.122195243835449,45.245437622070256],[5.176540851593074,45.248401641845646],[5.184099197387809,45.23268127441406],[5.165579795837402,45.20027160644531],[5.188450813293457,45.17073822021484],[5.186889171600341,45.120128631591854],[5.156072139739933,45.08279037475597],[5.224169254303034,45.07991409301763],[5.246537208557186,45.060726165771484],[5.304002761840877,45.06085968017578],[5.384094715118408,45.03598022460949],[5.435974597930908,45.05687332153332],[5.463950157165584,45.08692932128917],[5.486388206481934,45.08078384399414],[5.465229034423885,45.04354476928705],[5.493060111999569,44.99541473388672],[5.477674961090031,44.966762542724666],[5.483564853668327,44.92301177978521],[5.460225105285644,44.79994583129894],[5.482028007507438,44.78658676147472],[5.62631464004528,44.753292083740234],[5.647101879119873,44.72409820556646],[5.695883274078369,44.72216415405268],[5.736359596252498,44.71266937255871],[5.755311489105225,44.69696426391613],[5.801469802856558,44.70677947998058]],[[4.988609790802059,44.42319869995123],[4.918515205383301,44.40778350830078],[4.907084941864127,44.37462997436535],[4.869526863098145,44.345077514648494],[4.889462947845459,44.30401992797863],[4.921835899353026,44.30879592895519],[4.979967594146729,44.297248840332145],[5.013334751129207,44.32565307617193],[5.025059223175048,44.3610000610351],[5.070319652557373,44.37644577026373],[5.018616676330623,44.39258956909179],[4.988609790802059,44.42319869995123]]]},"properties":{"ID_0":79,"ISO":"FR-26","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":91,"NAME_2":"Drôme","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.815085887909049,45.782726287841854],[6.757664680481014,45.76716232299816],[6.711951255798396,45.72291946411144],[6.688257217407169,45.771331787109375],[6.659354686737061,45.80015563964844],[6.601684570312557,45.79507064819336],[6.552718639373779,45.82634353637695],[6.535326957702637,45.861980438232536],[6.568191051483154,45.862422943115234],[6.55658149719244,45.89325714111334],[6.511064529418888,45.90905761718749],[6.471837997436637,45.88429260253911],[6.449741363525391,45.83953094482433],[6.424559116363582,45.80385589599621],[6.363309383392391,45.76795196533209],[6.37044191360485,45.752933502197266],[6.327378273010254,45.69291305541998],[6.229750156402587,45.68270874023443],[6.231654167175236,45.70275878906256],[6.189934253692627,45.70083999633788],[6.195548057556152,45.73233032226574],[6.166234493255615,45.75572586059582],[6.103134155273494,45.763442993164176],[6.096132755279484,45.74282073974621],[6.055079936981258,45.74919509887701],[6.042253017425594,45.739257812499936],[5.974032878875846,45.76868820190441],[5.980550289154109,45.79617309570318],[5.962785243987979,45.81273651123047],[5.913952350616512,45.80405807495117],[5.903835773468074,45.82555770874018],[5.873541831970328,45.83560562133795],[5.87608718872076,45.863410949707145],[5.862101554870662,45.932403564453175],[5.83122634887701,45.93846130371099],[5.834025859832877,45.97202682495128],[5.812287807464543,45.986652374267635],[5.80699634552002,46.043830871582145],[5.811419010162354,46.07843017578125],[5.838211536407414,46.1025505065918],[5.855986595153922,46.08666992187506],[5.889992713928336,46.08715057373041],[5.886226654052848,46.109619140625114],[5.92040300369274,46.13103866577154],[5.956063270568847,46.13208770751959],[5.993515014648551,46.14384841918957],[6.035353660583496,46.13616180419933],[6.057043552398909,46.15111541748047],[6.135412216186467,46.14132690429682],[6.175299167633284,46.158260345458984],[6.186107635498047,46.17821884155285],[6.233842372894286,46.206005096435604],[6.294470787048454,46.22492980957031],[6.309154033661002,46.24249267578131],[6.29491662979126,46.257812500000114],[6.269220352172851,46.24852371215826],[6.238822460174617,46.275321960449276],[6.244160652160645,46.30564117431646],[6.221569061279239,46.31297683715826],[6.255169868469181,46.3632431030274],[6.339828968048209,46.40638732910167],[6.430902004241943,46.41790771484375],[6.523421764373836,46.456981658935604],[6.679306983947753,46.45704269409191],[6.79459381103527,46.435905456543026],[6.822751998901424,46.42345046997076],[6.806129455566406,46.38004302978521],[6.771278381347713,46.360141754150504],[6.80113601684593,46.32103347778332],[6.868747234344539,46.28544998168945],[6.858451843261946,46.25509643554693],[6.826121807098389,46.23337936401367],[6.810001850128231,46.20679473876953],[6.819441795349121,46.185001373291065],[6.799829006195124,46.16807937622082],[6.802502155303955,46.141365051269524],[6.821975231170768,46.132961273193416],[6.906120777130241,46.12699127197276],[6.891025066375789,46.09749221801769],[6.893345832824821,46.04592132568371],[6.929442882537842,46.06719589233409],[7.010742187499943,45.99836730957037],[7.020212173461971,45.96450042724621],[7.046276092529411,45.95524978637707],[7.042049407959041,45.9247665405274],[7.013140201568716,45.905361175537166],[7.011149883270263,45.88225936889648],[6.953404426574821,45.859390258789176],[6.937724590301514,45.847499847412045],[6.890570163726863,45.83705902099621],[6.876675128936768,45.82396316528326],[6.820878982543945,45.82686996459972],[6.815085887909049,45.782726287841854]]]},"properties":{"ID_0":79,"ISO":"FR-74","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":92,"NAME_2":"Haute-Savoie","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.623747825622559,45.613269805908146],[5.646908760070744,45.57701873779302],[5.671145439147949,45.56132888793951],[5.671341419219971,45.53664398193371],[5.701046943664664,45.51768875122082],[5.719743728637695,45.483394622802734],[5.736530780792293,45.47185897827154],[5.739987850189266,45.4375839233399],[5.782462120056209,45.441104888916016],[5.81136083602911,45.42538070678722],[5.854303359985465,45.41591644287121],[5.910889625549373,45.3941535949707],[5.904454708099479,45.43230819702148],[5.920588970184383,45.444412231445305],[5.915370464324951,45.47644805908203],[5.971014976501408,45.49139785766596],[6.009026527404727,45.471992492675895],[6.007789134979248,45.454109191894474],[6.049235820770207,45.437808990478516],[6.090015888214225,45.444007873535156],[6.130142688751448,45.43502807617182],[6.14602518081665,45.413288116455135],[6.175457954406738,45.3941001892091],[6.194759368896541,45.352249145507756],[6.184450626373291,45.31795883178722],[6.157779693603572,45.31231689453131],[6.13081502914423,45.28453445434576],[6.1394362449646,45.25833892822271],[6.125696659088078,45.24427032470714],[6.139679908752384,45.21305847167969],[6.161919116973877,45.18840789794916],[6.143790245056265,45.15456008911127],[6.180992126464957,45.16485977172846],[6.222061634063778,45.142585754394645],[6.244863033294735,45.14864730834955],[6.26056623458868,45.12684631347656],[6.229263305664175,45.10680770874029],[6.24328517913824,45.06995010375982],[6.220080375671387,45.06536865234386],[6.203137874603328,45.01244735717784],[6.256173133850211,44.99621963500988],[6.298856258392391,45.00371170043945],[6.330079555511587,44.94776535034191],[6.358172416687011,44.9415740966798],[6.355364322662354,44.854824066162166],[6.336318969726562,44.848369598388786],[6.304352760314997,44.87279129028332],[6.267095088958683,44.86909103393555],[6.248866558075008,44.852558135986385],[6.196382045745963,44.85897827148448],[6.16965913772583,44.852390289306754],[6.130448818206787,44.86251449584972],[6.113150596618652,44.84553146362316],[6.056502342224121,44.81581497192377],[6.030210494995174,44.838096618652344],[6.003416061401309,44.820354461670036],[5.949519157409782,44.80453109741222],[5.980273246765079,44.781185150146534],[5.919571876525822,44.75278854370123],[5.885456085205192,44.747287750244254],[5.847985744476318,44.75152587890631],[5.829360961914062,44.742435455322266],[5.801469802856558,44.70677947998058],[5.755311489105225,44.69696426391613],[5.736359596252498,44.71266937255871],[5.695883274078369,44.72216415405268],[5.647101879119873,44.72409820556646],[5.62631464004528,44.753292083740234],[5.482028007507438,44.78658676147472],[5.460225105285644,44.79994583129894],[5.483564853668327,44.92301177978521],[5.477674961090031,44.966762542724666],[5.493060111999569,44.99541473388672],[5.465229034423885,45.04354476928705],[5.486388206481934,45.08078384399414],[5.463950157165584,45.08692932128917],[5.435974597930908,45.05687332153332],[5.384094715118408,45.03598022460949],[5.304002761840877,45.06085968017578],[5.246537208557186,45.060726165771484],[5.224169254303034,45.07991409301763],[5.156072139739933,45.08279037475597],[5.186889171600341,45.120128631591854],[5.188450813293457,45.17073822021484],[5.165579795837402,45.20027160644531],[5.184099197387809,45.23268127441406],[5.176540851593074,45.248401641845646],[5.122195243835449,45.245437622070256],[5.130630970001221,45.283676147460994],[5.073565959930534,45.283229827880916],[5.05279731750494,45.31899261474615],[5.020647048950309,45.319290161132805],[5.009652137756404,45.34223175048834],[4.990147113800049,45.343986511230526],[4.928178310394401,45.322731018066406],[4.878778934478817,45.29771423339844],[4.858798980712891,45.308952331542905],[4.800493717193604,45.29835891723644],[4.762214183807487,45.32355117797845],[4.772551536560115,45.35429763793945],[4.755997180938721,45.365680694580185],[4.758847713470516,45.38472366333019],[4.743145942688045,45.42041778564459],[4.759953498840445,45.43260192871094],[4.756935596466008,45.45570755004894],[4.841455936431998,45.50060272216808],[4.871813774108943,45.527637481689396],[4.836540222168082,45.54481887817383],[4.808442115783748,45.57234954833995],[4.810817718505916,45.58972167968744],[4.857585906982536,45.57651901245117],[4.859784603118952,45.5908317565918],[4.908274173736572,45.606700897216854],[4.971545219421444,45.6129264831543],[5.002822399139404,45.62247085571289],[5.034142017364559,45.613990783691406],[5.054024696350098,45.66005706787121],[5.14898777008068,45.70448684692382],[5.126679897308406,45.73755264282232],[5.094526767730713,45.739452362060604],[5.090734958648682,45.78715896606451],[5.101067543029899,45.81337738037115],[5.157854080200195,45.80321884155285],[5.19101524353033,45.77194976806646],[5.224333763122559,45.76884078979498],[5.266894817352295,45.789367675781364],[5.290626525878963,45.81418609619152],[5.302490711212158,45.848133087158196],[5.354928493499756,45.88278198242193],[5.404377460479679,45.856876373291016],[5.433657646179199,45.83230209350586],[5.422512531280518,45.807125091552734],[5.483998298645133,45.7532844543457],[5.545541763305778,45.71359252929693],[5.545290470123234,45.68774032592779],[5.60193586349493,45.65261459350586],[5.623747825622559,45.613269805908146]]]},"properties":{"ID_0":79,"ISO":"FR-38","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":93,"NAME_2":"Isère","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.388079643249511,46.21978759765631],[4.422965049743766,46.203136444091854],[4.406357765197811,46.182243347168026],[4.438591003418026,46.167877197265625],[4.417361736297607,46.13592147827148],[4.381809234619141,46.149662017822266],[4.322115898132381,46.129981994628956],[4.309294700622672,46.110000610351676],[4.310406684875602,46.081718444824276],[4.261271476745662,46.03685760498046],[4.31200742721569,46.005130767822315],[4.248043060302678,45.98672485351568],[4.288822650909424,45.97317123413097],[4.31198883056652,45.94200515747076],[4.346019744873161,45.9299430847168],[4.323220729827824,45.903888702392635],[4.383083343505803,45.84597015380864],[4.376449584961051,45.78410720825201],[4.349101543426571,45.77117156982422],[4.359160900116024,45.751102447509815],[4.390676498413143,45.755077362060604],[4.384784221649227,45.72118759155285],[4.365516185760441,45.698520660400504],[4.365920066833553,45.671154022216854],[4.392550468444938,45.66247940063471],[4.410284042358455,45.63204956054699],[4.441488742828426,45.62305450439464],[4.449876785278376,45.605644226074276],[4.50352239608776,45.58617019653332],[4.521578788757324,45.57293319702154],[4.570599555969181,45.58225631713873],[4.587110519409237,45.570720672607536],[4.614858150482235,45.575477600097656],[4.636002540588436,45.54795455932623],[4.675755500793457,45.568840026855526],[4.68749904632574,45.55820846557617],[4.650785923004264,45.52998352050792],[4.654163837432975,45.487693786621094],[4.699997425079403,45.478237152099545],[4.721827507019043,45.49439620971691],[4.756935596466008,45.45570755004894],[4.759953498840445,45.43260192871094],[4.743145942688045,45.42041778564459],[4.758847713470516,45.38472366333019],[4.755997180938721,45.365680694580185],[4.680130004882926,45.34626388549805],[4.615798950195368,45.31026077270508],[4.591348171234245,45.27288436889654],[4.605315208435172,45.25339889526367],[4.536259651184025,45.236820220947266],[4.483134746551514,45.236446380615234],[4.419654846191406,45.275402069091854],[4.371186256408635,45.259887695312614],[4.350182533264274,45.27770233154297],[4.366258144378719,45.30128097534179],[4.331653118133659,45.31847763061529],[4.363379478454589,45.3374862670899],[4.348395824432373,45.36045837402338],[4.308199405670165,45.37098693847656],[4.27163124084484,45.35976409912114],[4.244341373443604,45.385276794433594],[4.200926303863525,45.382228851318416],[4.180821418762263,45.39170074462902],[4.144443035125788,45.384109497070256],[4.120395183563232,45.36837768554693],[4.080170631408691,45.35552597045904],[4.045380592346305,45.355667114257926],[4.02343225479126,45.34497070312511],[3.992932558059692,45.356170654296925],[3.978267669677791,45.37569427490246],[3.938752412796077,45.3713951110841],[3.918387413024902,45.35436630249029],[3.897408485412597,45.35708236694347],[3.890368223190308,45.39366531372076],[3.898540496826229,45.40981674194336],[3.975105762481633,45.44826889038097],[3.967553377151546,45.471549987793026],[3.985629320144654,45.4861793518067],[3.96567702293396,45.50056457519537],[3.946430206298942,45.54340362548828],[3.95447421073925,45.555828094482536],[3.908086538314933,45.5966911315918],[3.881631135940552,45.60369110107421],[3.856866359710807,45.625],[3.823924064636287,45.63214492797862],[3.777585029602051,45.690567016601676],[3.782380342483634,45.71165084838878],[3.755838155746403,45.74660873413086],[3.727105855941772,45.75557708740239],[3.728468418121337,45.7760124206543],[3.70039343833929,45.78355407714844],[3.72689151763916,45.83026885986328],[3.71912407875061,45.85006713867182],[3.754370689392147,45.886032104492244],[3.721349954605103,45.922744750976506],[3.693891525268611,45.93095779418951],[3.709611654281673,45.97414016723627],[3.742071390152091,45.96669006347661],[3.781713008880672,45.97279357910162],[3.823220252990723,45.98815917968744],[3.827341794967765,46.000213623046875],[3.805605649948233,46.053062438964844],[3.821294069290161,46.090240478515625],[3.802830457687321,46.11013793945318],[3.791627168655396,46.15658569335932],[3.794089078903311,46.20851135253906],[3.773352622985953,46.22718811035156],[3.80270004272461,46.238510131835994],[3.807686805725154,46.2572135925293],[3.868897676467895,46.26366043090832],[3.899533510208187,46.27591323852539],[3.908760309219417,46.2606239318847],[3.890132427215576,46.2144889831543],[3.917106151580754,46.203884124755916],[3.965168237686214,46.202865600585994],[3.988528490066528,46.169857025146484],[4.027487754821777,46.169593811035156],[4.059972286224365,46.18845748901373],[4.103832244873161,46.19844436645502],[4.133393287658691,46.177322387695426],[4.1781325340271,46.17368698120117],[4.20621538162237,46.19449234008789],[4.224992752075252,46.177631378173935],[4.245367527008057,46.18822479248058],[4.28243160247814,46.156814575195305],[4.326642513275203,46.18489456176769],[4.363353252410889,46.19856262207031],[4.388079643249511,46.21978759765631]]]},"properties":{"ID_0":79,"ISO":"FR-42","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":94,"NAME_2":"Loire","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[4.780213356018123,46.176677703857536],[4.802549839019832,46.15643692016612],[4.795944213867188,46.139156341552734],[4.748022556304988,46.09135818481451],[4.761754512786922,46.067436218261776],[4.739616394043082,46.04748535156244],[4.754611492157039,45.973812103271484],[4.731370449066276,45.941318511963004],[4.777994155883903,45.9378395080567],[4.807760238647461,45.92080688476574],[4.805177211761588,45.89632797241205],[4.849115371704158,45.91286849975597],[4.880698680877629,45.897171020507926],[4.883826732635555,45.87999343872076],[4.921115875244254,45.83274459838873],[4.923799037933463,45.80400085449224],[4.963685512542838,45.81087875366205],[5.0166916847229,45.805610656738395],[5.101067543029899,45.81337738037115],[5.090734958648682,45.78715896606451],[5.094526767730713,45.739452362060604],[5.126679897308406,45.73755264282232],[5.14898777008068,45.70448684692382],[5.054024696350098,45.66005706787121],[5.034142017364559,45.613990783691406],[5.002822399139404,45.62247085571289],[4.971545219421444,45.6129264831543],[4.908274173736572,45.606700897216854],[4.859784603118952,45.5908317565918],[4.857585906982536,45.57651901245117],[4.810817718505916,45.58972167968744],[4.808442115783748,45.57234954833995],[4.836540222168082,45.54481887817383],[4.871813774108943,45.527637481689396],[4.841455936431998,45.50060272216808],[4.756935596466008,45.45570755004894],[4.721827507019043,45.49439620971691],[4.699997425079403,45.478237152099545],[4.654163837432975,45.487693786621094],[4.650785923004264,45.52998352050792],[4.68749904632574,45.55820846557617],[4.675755500793457,45.568840026855526],[4.636002540588436,45.54795455932623],[4.614858150482235,45.575477600097656],[4.587110519409237,45.570720672607536],[4.570599555969181,45.58225631713873],[4.521578788757324,45.57293319702154],[4.50352239608776,45.58617019653332],[4.449876785278376,45.605644226074276],[4.441488742828426,45.62305450439464],[4.410284042358455,45.63204956054699],[4.392550468444938,45.66247940063471],[4.365920066833553,45.671154022216854],[4.365516185760441,45.698520660400504],[4.384784221649227,45.72118759155285],[4.390676498413143,45.755077362060604],[4.359160900116024,45.751102447509815],[4.349101543426571,45.77117156982422],[4.376449584961051,45.78410720825201],[4.383083343505803,45.84597015380864],[4.323220729827824,45.903888702392635],[4.346019744873161,45.9299430847168],[4.31198883056652,45.94200515747076],[4.288822650909424,45.97317123413097],[4.248043060302678,45.98672485351568],[4.31200742721569,46.005130767822315],[4.261271476745662,46.03685760498046],[4.310406684875602,46.081718444824276],[4.309294700622672,46.110000610351676],[4.322115898132381,46.129981994628956],[4.381809234619141,46.149662017822266],[4.417361736297607,46.13592147827148],[4.438591003418026,46.167877197265625],[4.406357765197811,46.182243347168026],[4.422965049743766,46.203136444091854],[4.388079643249511,46.21978759765631],[4.398757457733154,46.28432083129883],[4.435655593872184,46.29940795898449],[4.488464355468693,46.28799438476557],[4.504000663757324,46.26713943481445],[4.537996292114315,46.27025985717779],[4.557791709899959,46.29455184936535],[4.586510658264274,46.268692016601676],[4.617019176483211,46.280620574951286],[4.638724803924617,46.30142211914068],[4.679780006408805,46.30451583862305],[4.707479953765812,46.28470611572277],[4.705231189727897,46.25087356567394],[4.736181259155217,46.2332000732423],[4.721488475799561,46.19683837890625],[4.729059219360351,46.1794319152832],[4.780213356018123,46.176677703857536]]]},"properties":{"ID_0":79,"ISO":"FR-69","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":95,"NAME_2":"Rhône","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.815085887909049,45.782726287841854],[6.812168121337947,45.76046371459972],[6.824276924133414,45.72187042236339],[6.867073059082145,45.6840705871582],[6.906761169433707,45.67847061157237],[6.925970077514762,45.65248107910156],[6.967870235443115,45.6544799804688],[7.011849880218506,45.64838027954101],[6.985504627227783,45.62044143676763],[6.991879463195857,45.5562629699707],[7.006451129913387,45.51078033447265],[7.053841114044246,45.499980926513615],[7.057041168212891,45.47848129272461],[7.092838764190731,45.47478103637706],[7.121641159057731,45.43748092651367],[7.17893981933605,45.413188934326115],[7.185120105743522,45.403694152832145],[7.113151073455867,45.32199096679687],[7.135251522064266,45.281803131103516],[7.135106086731014,45.2545623779298],[7.111395359039363,45.244632720947266],[7.066401004791203,45.211341857910156],[7.051180362701416,45.22534179687506],[6.97625112533575,45.208278656005916],[6.953864097595329,45.175800323486385],[6.900860786437988,45.164310455322266],[6.894535064697265,45.13985824584972],[6.854263782501221,45.1286239624024],[6.802184581756591,45.15087509155285],[6.772772789001521,45.15430450439453],[6.745872974395866,45.13870239257818],[6.690576076507682,45.13850021362316],[6.672187805175724,45.12250137329113],[6.632041454315186,45.10973739624018],[6.613530158996696,45.12095642089844],[6.576530933380241,45.12309646606445],[6.535192966461238,45.0989723205567],[6.510423183441162,45.109001159668026],[6.481724739074821,45.09045410156256],[6.487082004547119,45.05640792846685],[6.45312404632574,45.052371978759766],[6.434869766235408,45.06299591064459],[6.396887779235954,45.061988830566406],[6.365100383758545,45.10198593139654],[6.334232807159424,45.122940063476676],[6.293342113494872,45.10863494873058],[6.26056623458868,45.12684631347656],[6.244863033294735,45.14864730834955],[6.222061634063778,45.142585754394645],[6.180992126464957,45.16485977172846],[6.143790245056265,45.15456008911127],[6.161919116973877,45.18840789794916],[6.139679908752384,45.21305847167969],[6.125696659088078,45.24427032470714],[6.1394362449646,45.25833892822271],[6.13081502914423,45.28453445434576],[6.157779693603572,45.31231689453131],[6.184450626373291,45.31795883178722],[6.194759368896541,45.352249145507756],[6.175457954406738,45.3941001892091],[6.14602518081665,45.413288116455135],[6.130142688751448,45.43502807617182],[6.090015888214225,45.444007873535156],[6.049235820770207,45.437808990478516],[6.007789134979248,45.454109191894474],[6.009026527404727,45.471992492675895],[5.971014976501408,45.49139785766596],[5.915370464324951,45.47644805908203],[5.920588970184383,45.444412231445305],[5.904454708099479,45.43230819702148],[5.910889625549373,45.3941535949707],[5.854303359985465,45.41591644287121],[5.81136083602911,45.42538070678722],[5.782462120056209,45.441104888916016],[5.739987850189266,45.4375839233399],[5.736530780792293,45.47185897827154],[5.719743728637695,45.483394622802734],[5.701046943664664,45.51768875122082],[5.671341419219971,45.53664398193371],[5.671145439147949,45.56132888793951],[5.646908760070744,45.57701873779302],[5.623747825622559,45.613269805908146],[5.652817726135311,45.636680603027344],[5.687900543212834,45.643962860107536],[5.685640335083065,45.66701126098644],[5.709198951721191,45.68492889404297],[5.700599193573054,45.70994567871094],[5.748939037322998,45.70546340942383],[5.776365756988469,45.72792053222662],[5.786934375762939,45.823223114013786],[5.795850276947021,45.82979965209961],[5.829400539398307,45.91398620605468],[5.83122634887701,45.93846130371099],[5.862101554870662,45.932403564453175],[5.87608718872076,45.863410949707145],[5.873541831970328,45.83560562133795],[5.903835773468074,45.82555770874018],[5.913952350616512,45.80405807495117],[5.962785243987979,45.81273651123047],[5.980550289154109,45.79617309570318],[5.974032878875846,45.76868820190441],[6.042253017425594,45.739257812499936],[6.055079936981258,45.74919509887701],[6.096132755279484,45.74282073974621],[6.103134155273494,45.763442993164176],[6.166234493255615,45.75572586059582],[6.195548057556152,45.73233032226574],[6.189934253692627,45.70083999633788],[6.231654167175236,45.70275878906256],[6.229750156402587,45.68270874023443],[6.327378273010254,45.69291305541998],[6.37044191360485,45.752933502197266],[6.363309383392391,45.76795196533209],[6.424559116363582,45.80385589599621],[6.449741363525391,45.83953094482433],[6.471837997436637,45.88429260253911],[6.511064529418888,45.90905761718749],[6.55658149719244,45.89325714111334],[6.568191051483154,45.862422943115234],[6.535326957702637,45.861980438232536],[6.552718639373779,45.82634353637695],[6.601684570312557,45.79507064819336],[6.659354686737061,45.80015563964844],[6.688257217407169,45.771331787109375],[6.711951255798396,45.72291946411144],[6.757664680481014,45.76716232299816],[6.815085887909049,45.782726287841854]]]},"properties":{"ID_0":79,"ISO":"FR-73","NAME_0":"France","ID_1":22,"NAME_1":"Rhône-Alpes","ID_2":96,"NAME_2":"Savoie","TYPE_2":"Département","ENGTYPE_2":"Department","NL_NAME_2":null,"VARNAME_2":"Sabóia|Savoia"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/germany.geojson b/superset/assets/visualizations/countries/germany.geojson new file mode 100644 index 0000000000000..f819e0adf5810 --- /dev/null +++ b/superset/assets/visualizations/countries/germany.geojson @@ -0,0 +1,18 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.611084938049315,47.58383178710949],[9.556709289550781,47.58962631225597],[9.519864082336483,47.64017868042003],[9.410350799560604,47.67034912109381],[9.354925155639705,47.664314270019645],[9.252408027648926,47.708381652832145],[9.23134708404541,47.7414283752442],[9.089271545410213,47.80472183227545],[9.090963363647518,47.773105621338004],[9.177002906799315,47.73775482177746],[9.221139907836971,47.668151855468686],[9.129564285278377,47.668991088867244],[9.106024742126522,47.70331192016613],[9.02615737915039,47.7327499389649],[9.008498191833496,47.70093154907226],[8.941498756408748,47.66183471679698],[8.878918647766056,47.65868377685546],[8.856014251708984,47.70831298828131],[8.822449684143123,47.71757125854498],[8.78299713134777,47.681991577148494],[8.72789001464855,47.69684219360362],[8.740537643432674,47.75805282592785],[8.6830472946167,47.79148483276367],[8.619837760925236,47.80404281616222],[8.486785888671989,47.779304504394645],[8.457196235656681,47.73526000976574],[8.405713081359863,47.70629882812494],[8.40472316741949,47.678745269775334],[8.467810630798395,47.64575958251959],[8.601484298706055,47.67701339721691],[8.605631828308162,47.616214752197266],[8.518870353698787,47.636585235595646],[8.460105895996207,47.6070175170899],[8.4374036788941,47.571407318115234],[8.325192451477164,47.576061248779354],[8.295848846435547,47.609577178955135],[8.202873229980469,47.626155853271484],[8.111915588378906,47.5891227722168],[8.098521232605094,47.56595230102545],[8.020597457885856,47.556427001953125],[7.910474777221736,47.55761718750006],[7.88742780685419,47.59474563598638],[7.819903850555476,47.594566345214844],[7.793717861175594,47.56409072875988],[7.669493198394832,47.537117004394474],[7.670560836792048,47.59326171874999],[7.618340015411319,47.580734252929744],[7.524673938751163,47.660194396972656],[7.513751983642692,47.702819824218864],[7.548590183258113,47.735408782958984],[7.530228137969971,47.78344345092785],[7.562403202056942,47.841018676757805],[7.557729244232235,47.88094711303711],[7.622157096862792,47.97365951538085],[7.568590164184626,48.036338806152344],[7.577859401702937,48.12139129638672],[7.666151046752987,48.22109985351557],[7.693936824798699,48.302120208740234],[7.745231628418083,48.32982635498047],[7.733546733856258,48.39868545532232],[7.766868114471549,48.48680114746094],[7.805161952972468,48.513500213623104],[7.800177097320614,48.58316802978515],[7.845043659210204,48.645530700683594],[7.896251678466797,48.6672096252442],[7.961741924285889,48.72025680541998],[7.970248699188289,48.75622940063476],[8.017477035522518,48.762752532958984],[8.101068496704102,48.815814971923885],[8.141568183898926,48.896072387695426],[8.197396278381404,48.95710372924805],[8.229839324951172,48.96836853027355],[8.295299530029295,49.00415039062506],[8.314449310302848,49.056999206543026],[8.362239837646484,49.09968948364269],[8.369058609008789,49.17065048217785],[8.40528869628912,49.220352172851506],[8.38765907287609,49.23448181152344],[8.491369247436467,49.30128860473644],[8.450428962707576,49.33285140991211],[8.494589805603141,49.36024856567394],[8.508850097656307,49.434150695800895],[8.44361877441412,49.501579284668026],[8.418828964233512,49.552188873291016],[8.429039001464787,49.58562088012701],[8.46900939941412,49.59062194824218],[8.557209014892635,49.523811340331974],[8.61958885192871,49.54420852661138],[8.600359916687125,49.61323165893555],[8.686168670654354,49.63053131103521],[8.693719863891658,49.56119918823248],[8.711479187011832,49.539791107177734],[8.902488708496094,49.48944854736339],[8.827729225158691,49.47713088989269],[8.857840538024902,49.404911041259766],[8.909089088440053,49.44575881958007],[8.95515060424816,49.46086883544916],[8.96017837524414,49.50114059448248],[9.04689025878906,49.505512237548885],[9.108948707580623,49.58300018310547],[9.201388359069767,49.575592041015675],[9.270099639892578,49.59381103515619],[9.297658920288084,49.645511627197315],[9.39526081085205,49.64157104492193],[9.428239822387752,49.6897087097168],[9.365010261535701,49.70458221435558],[9.330080032348746,49.73054122924805],[9.323519706726072,49.76753997802746],[9.454290390014704,49.77133941650402],[9.48773002624523,49.78630065917969],[9.566849708557129,49.77558135986322],[9.655658721923885,49.78755950927746],[9.631500244140625,49.69784164428722],[9.681968688964787,49.71305847167969],[9.756610870361442,49.7061004638673],[9.795988082885685,49.721271514892685],[9.843020439147892,49.68814086914068],[9.832489967346135,49.66576004028332],[9.880538940429629,49.603061676025334],[9.870678901672477,49.5621910095216],[9.933589935302791,49.55537033081066],[9.924578666687069,49.488719940185604],[10.01029014587408,49.47846221923828],[10.083209037780762,49.512310028076165],[10.130438804626465,49.46110916137707],[10.172438621521051,49.39152908325207],[10.111349105835018,49.33576202392578],[10.157520294189567,49.31415176391601],[10.136299133300724,49.24777984619152],[10.14302921295166,49.20008850097667],[10.241008758544979,49.16072082519531],[10.270289421081543,49.127990722656364],[10.224769592285268,49.11286163330084],[10.271389961242733,49.06933975219738],[10.260209083557186,49.05089187622064],[10.358429908752498,49.018939971923885],[10.416619300842342,48.98656082153332],[10.466980934143121,48.93828964233404],[10.460708618164176,48.82384109497076],[10.432239532470646,48.750221252441406],[10.488308906555288,48.71643066406244],[10.459988594055233,48.66865158081049],[10.358670234680176,48.673370361328125],[10.2906494140625,48.70679855346674],[10.267759323120174,48.66265869140625],[10.330178260803223,48.61455917358404],[10.301539421081655,48.52249145507812],[10.256278991699162,48.52672958374035],[10.178018569946346,48.4662704467774],[10.037790298461914,48.46335983276373],[10.021698951721135,48.41115188598644],[9.971670150756836,48.38422012329113],[10.068340301513672,48.2855606079101],[10.069068908691461,48.22967910766607],[10.109120368957633,48.13687133789068],[10.137060165405272,48.118469238281364],[10.143199920654352,48.051261901855526],[10.116109848022461,47.98001098632807],[10.10028934478754,47.87524032592773],[10.128187179565487,47.815650939941406],[10.073160171508846,47.79270935058588],[10.117300033569393,47.75186157226573],[10.128538131713924,47.67704010009771],[9.996920585632438,47.683700561523494],[9.964490890502987,47.65380859375011],[9.86045074462902,47.67919921875011],[9.800629615783635,47.65259933471691],[9.741229057312012,47.60739898681646],[9.669999122619629,47.6136589050294],[9.611084938049315,47.58383178710949]]]},"properties":{"ID_0":86,"ISO":"DE-BW","NAME_0":"Germany","ID_1":1,"NAME_1":"Baden-Württemberg","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.927703857421875,50.42685699462896],[11.983886718750057,50.39349365234381],[11.975892066955623,50.35607910156256],[12.065270423889158,50.33790969848644],[12.125018119812012,50.313156127929744],[12.10177993774414,50.243408203125114],[12.160515785217342,50.22968292236339],[12.210250854492243,50.172870635986385],[12.199060440063533,50.111820220947266],[12.261237144470327,50.09212112426758],[12.375898361206055,50.016490936279354],[12.468311309814567,49.99588012695307],[12.497260093688963,49.97624969482422],[12.475679397583121,49.94009399414068],[12.547736167907658,49.92714309692383],[12.545875549316406,49.89528656005865],[12.484228134155273,49.84294891357422],[12.465906143188532,49.785289764404354],[12.408749580383356,49.766189575195426],[12.4513454437257,49.70320129394537],[12.527859687805119,49.68775939941411],[12.525370597839355,49.632350921630916],[12.56985092163086,49.60964965820307],[12.588051795959473,49.54399871826183],[12.645830154419057,49.53105926513666],[12.661074638366756,49.43216705322271],[12.740521430969181,49.41059112548834],[12.803140640258844,49.34796905517578],[12.95288944244396,49.348270416259766],[13.01010894775385,49.30941009521496],[13.03792953491211,49.26773071289068],[13.095769882202148,49.243591308593864],[13.117535591125545,49.196300506591854],[13.186080932617244,49.16670989990246],[13.18021011352539,49.14443969726557],[13.244128227233944,49.114089965820426],[13.29590988159191,49.120182037353516],[13.403729438781737,49.051780700683594],[13.40902805328369,48.9798583984375],[13.466391563415527,48.96088790893555],[13.588505744934196,48.9686012268067],[13.671330451965332,48.88309097290039],[13.751342773437498,48.874515533447266],[13.7628049850465,48.83898925781256],[13.835957527160645,48.77505111694347],[13.810439109802244,48.73543167114257],[13.82571983337408,48.64122009277349],[13.802149772644041,48.576889038085994],[13.742410659790037,48.54889678955084],[13.721092224121149,48.51679229736328],[13.594429016113338,48.57614898681646],[13.519489288330078,48.59616851806646],[13.4507093429566,48.54222106933599],[13.423679351806753,48.457778930664176],[13.436674118042049,48.42935180664074],[13.410618782043457,48.37773895263672],[13.297986984252987,48.30990982055664],[13.184852600097656,48.29858779907238],[13.020889282226618,48.26044845581066],[12.963188171386662,48.21686935424805],[12.868214607238826,48.203666687011776],[12.838599205017204,48.16194152832042],[12.753028869628906,48.11729049682617],[12.77372837066656,48.072719573974666],[12.859708786010856,48.02046966552734],[12.881299018859806,47.96100616455083],[12.935725212097223,47.94540023803711],[13.001147270202692,47.85223007202154],[12.911267280578613,47.73124313354492],[12.985298156738395,47.712165832519645],[13.01525974273693,47.72967910766601],[13.081555366516056,47.69136810302746],[13.10558891296398,47.639202117920036],[13.0363512039184,47.53655624389654],[13.05375003814703,47.49486160278332],[13.00461864471447,47.468738555908146],[12.913059234619197,47.496742248535156],[12.851645469665527,47.54861450195312],[12.781312942504883,47.58154678344732],[12.826677322387638,47.61626052856451],[12.771088600158805,47.64505004882824],[12.736697196960447,47.68220138549804],[12.605334281921444,47.67924880981451],[12.577346801757812,47.63447570800786],[12.506064414978084,47.628852844238395],[12.419526100158748,47.698768615722706],[12.247988700866813,47.6875],[12.1744642257691,47.699043273925895],[12.22089385986328,47.609909057617244],[12.137937545776422,47.601840972900504],[11.994778633117676,47.618278503418026],[11.923148155212402,47.61162185668945],[11.856868743896484,47.57905197143555],[11.777485847473256,47.59481430053705],[11.667691230773926,47.58627319335949],[11.636343955993707,47.598270416259766],[11.592955589294432,47.55285263061517],[11.581020355224553,47.511821746826286],[11.509319305419865,47.50519943237305],[11.437379837036133,47.51325988769542],[11.388031959533748,47.471923828125],[11.293896675109918,47.43019866943365],[11.151188850402832,47.42356491088867],[11.097250938415527,47.39572143554693],[10.96858215332037,47.39929580688487],[10.978509902954102,47.422149658203125],[10.870402336120662,47.50205612182623],[10.88313293457037,47.538105010986385],[10.772025108337402,47.51614379882807],[10.686220169067496,47.56013107299805],[10.599970817565975,47.56983184814459],[10.575299263000431,47.54151916503906],[10.491109848022518,47.54497146606451],[10.458315849304313,47.58544540405285],[10.431048393249625,47.50675582885742],[10.458512306213379,47.48423004150402],[10.471569061279297,47.43306350708019],[10.323238372802791,47.302589416503956],[10.231559753418026,47.26985931396496],[10.170708656311035,47.292438507080135],[10.231728553771973,47.37248992919933],[10.178505897521973,47.39349365234369],[10.117349624633789,47.373859405517635],[10.073030471801701,47.41458129882818],[10.10081958770752,47.431659698486385],[9.99733829498291,47.48622512817388],[9.95506381988531,47.536933898925724],[9.813129425048828,47.55074691772472],[9.822611808776799,47.58517074584966],[9.774218559265137,47.596801757812614],[9.732295989990234,47.54535675048828],[9.622774124145508,47.57091522216797],[9.611084938049315,47.58383178710949],[9.669999122619629,47.6136589050294],[9.741229057312012,47.60739898681646],[9.800629615783635,47.65259933471691],[9.86045074462902,47.67919921875011],[9.964490890502987,47.65380859375011],[9.996920585632438,47.683700561523494],[10.128538131713924,47.67704010009771],[10.117300033569393,47.75186157226573],[10.073160171508846,47.79270935058588],[10.128187179565487,47.815650939941406],[10.10028934478754,47.87524032592773],[10.116109848022461,47.98001098632807],[10.143199920654352,48.051261901855526],[10.137060165405272,48.118469238281364],[10.109120368957633,48.13687133789068],[10.069068908691461,48.22967910766607],[10.068340301513672,48.2855606079101],[9.971670150756836,48.38422012329113],[10.021698951721135,48.41115188598644],[10.037790298461914,48.46335983276373],[10.178018569946346,48.4662704467774],[10.256278991699162,48.52672958374035],[10.301539421081655,48.52249145507812],[10.330178260803223,48.61455917358404],[10.267759323120174,48.66265869140625],[10.2906494140625,48.70679855346674],[10.358670234680176,48.673370361328125],[10.459988594055233,48.66865158081049],[10.488308906555288,48.71643066406244],[10.432239532470646,48.750221252441406],[10.460708618164176,48.82384109497076],[10.466980934143121,48.93828964233404],[10.416619300842342,48.98656082153332],[10.358429908752498,49.018939971923885],[10.260209083557186,49.05089187622064],[10.271389961242733,49.06933975219738],[10.224769592285268,49.11286163330084],[10.270289421081543,49.127990722656364],[10.241008758544979,49.16072082519531],[10.14302921295166,49.20008850097667],[10.136299133300724,49.24777984619152],[10.157520294189567,49.31415176391601],[10.111349105835018,49.33576202392578],[10.172438621521051,49.39152908325207],[10.130438804626465,49.46110916137707],[10.083209037780762,49.512310028076165],[10.01029014587408,49.47846221923828],[9.924578666687069,49.488719940185604],[9.933589935302791,49.55537033081066],[9.870678901672477,49.5621910095216],[9.880538940429629,49.603061676025334],[9.832489967346135,49.66576004028332],[9.843020439147892,49.68814086914068],[9.795988082885685,49.721271514892685],[9.756610870361442,49.7061004638673],[9.681968688964787,49.71305847167969],[9.631500244140625,49.69784164428722],[9.655658721923885,49.78755950927746],[9.566849708557129,49.77558135986322],[9.48773002624523,49.78630065917969],[9.454290390014704,49.77133941650402],[9.323519706726072,49.76753997802746],[9.330080032348746,49.73054122924805],[9.365010261535701,49.70458221435558],[9.428239822387752,49.6897087097168],[9.39526081085205,49.64157104492193],[9.297658920288084,49.645511627197315],[9.270099639892578,49.59381103515619],[9.201388359069767,49.575592041015675],[9.108948707580623,49.58300018310547],[9.073519706726131,49.62322998046874],[9.113509178161735,49.6455917358399],[9.095290184020996,49.69327926635736],[9.152109146118276,49.73793029785162],[9.06967926025402,49.83277130126964],[9.039319038391056,49.90962982177745],[9.048080444335994,50.042411804199325],[9.007158279419059,50.04164886474621],[9.033840179443416,50.11211013793957],[9.138387680053711,50.12517166137695],[9.173929214477539,50.10739898681646],[9.237930297851676,50.14928054809582],[9.377340316772461,50.132209777832145],[9.41923713684082,50.080291748046925],[9.519418716430721,50.09251022338867],[9.507490158081112,50.21202850341797],[9.534529685974121,50.234710693359375],[9.597940444946289,50.22029113769536],[9.665809631347656,50.23950958251953],[9.652839660644531,50.26930999755865],[9.738649368286246,50.29980087280285],[9.75783920288086,50.424091339111385],[9.882708549499455,50.39855194091797],[9.987749099731559,50.44425201416027],[10.04001903533947,50.49333190917968],[10.039758682251033,50.51588058471691],[10.098520278930721,50.54988861083989],[10.204319953918398,50.553798675537166],[10.292880058288631,50.49404907226574],[10.328149795532283,50.49032211303722],[10.416999816894586,50.393390655517635],[10.45805835723877,50.40090942382818],[10.49367046356201,50.35243988037115],[10.581978797912654,50.33020019531261],[10.611628532409725,50.28913116455084],[10.617910385131836,50.22182083129882],[10.734579086303825,50.20732879638677],[10.809300422668569,50.274822235107536],[10.723039627075309,50.32294845581055],[10.75701045989996,50.35641860961925],[10.831380844116268,50.38624954223633],[10.934719085693416,50.390232086181584],[11.038508415222282,50.34236145019537],[11.113239288330135,50.36489868164074],[11.15938854217535,50.32051849365228],[11.245929718017578,50.26517868041998],[11.27088928222662,50.41751098632818],[11.248118400573844,50.47689056396495],[11.32425975799572,50.48833084106445],[11.371511459350586,50.52196121215826],[11.43009090423584,50.51472091674816],[11.417508125305233,50.451450347900334],[11.533889770507812,50.381019592285156],[11.592958450317496,50.40353012084972],[11.622029304504508,50.38867950439459],[11.698430061340389,50.39630889892584],[11.787029266357365,50.422641754150504],[11.827100753784293,50.39291000366211],[11.927703857421875,50.42685699462896]]]},"properties":{"ID_0":86,"ISO":"DE-BY","NAME_0":"Germany","ID_1":2,"NAME_1":"Bayern","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Bavaria"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.177889823913574,52.390319824218864],[13.093818664550895,52.417438507080135],[13.120060920715446,52.46525955200195],[13.176479339599723,52.50524139404297],[13.122269630432243,52.520832061767635],[13.160909652710073,52.57218933105469],[13.21620941162115,52.58251953125006],[13.230238914489746,52.62681198120117],[13.370199203491211,52.62105941772455],[13.437800407409611,52.63489151000982],[13.46364974975586,52.66786956787121],[13.523490905761776,52.6447410583496],[13.503379821777344,52.60425949096691],[13.557220458984432,52.584930419921875],[13.645098686218375,52.516868591308594],[13.649419784545897,52.47974014282226],[13.721320152282827,52.46379852294916],[13.749758720398006,52.42628097534191],[13.661138534545955,52.34241867065429],[13.603069305419922,52.39519882202159],[13.542180061340275,52.38872146606456],[13.427828788757381,52.4089622497558],[13.396039962768612,52.3760719299317],[13.227739334106559,52.41926193237299],[13.177889823913574,52.390319824218864]]]},"properties":{"ID_0":86,"ISO":"DE-BE","NAME_0":"Germany","ID_1":3,"NAME_1":"Berlin","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.415765762329158,53.32979583740234],[14.447080612182615,53.25653457641613],[14.378918647766227,53.20415878295898],[14.382509231567381,53.11481857299816],[14.340086936950627,53.04809570312505],[14.270511627197322,53.00841140747082],[14.142452239990234,52.96111297607422],[14.155890464782713,52.87955856323242],[14.122618675232047,52.85493850708008],[14.138895988464467,52.82548522949219],[14.214071273803766,52.820404052734425],[14.255911827087516,52.78646850585949],[14.371563911437987,52.73823928833008],[14.466204643249624,52.657257080078125],[14.606236457824766,52.60551071166998],[14.633398056030217,52.56621932983404],[14.606253623962457,52.54684066772472],[14.621507644653319,52.484401702880916],[14.543208122253477,52.43748855590826],[14.528908729553336,52.39641189575195],[14.585481643676756,52.30208587646484],[14.570899963378848,52.28956222534173],[14.69957065582281,52.2410888671875],[14.674738883972168,52.19622039794922],[14.694680213928336,52.17391967773437],[14.66934871673584,52.12155151367193],[14.741009712219237,52.06966018676757],[14.691618919372559,51.98361968994146],[14.704777717590332,51.94266128540039],[14.65294933319103,51.876548767089844],[14.591708183288686,51.841911315918026],[14.596150398254506,51.80601501464844],[14.648379325866813,51.7950553894043],[14.654958724975529,51.74120330810552],[14.71885013580328,51.69285964965826],[14.746030807495172,51.61100006103527],[14.710829734802358,51.58467864990245],[14.676649093628042,51.558349609375114],[14.458319664001577,51.55138015747081],[14.337259292602653,51.51226043701172],[14.286419868469352,51.52983093261719],[14.147539138793944,51.541671752929744],[14.122911453247013,51.5244712829591],[14.080458641052358,51.44773864746105],[14.015210151672306,51.37430191040045],[13.971598625183162,51.39891052246105],[13.928709983825684,51.381031036377],[13.85781955718994,51.38259887695318],[13.761530876159666,51.36215209960937],[13.54295921325695,51.381359100341854],[13.444268226623535,51.43135070800775],[13.330400466918887,51.42581176757824],[13.233359336853084,51.39775848388683],[13.200678825378532,51.472179412841854],[13.226419448852653,51.512451171875],[13.156909942626953,51.5726203918457],[13.140560150146541,51.61351013183588],[13.098188400268498,51.606739044189396],[13.063730239868278,51.64789962768566],[13.179808616638297,51.690589904785156],[13.178320884704533,51.801578521728565],[13.137908935546818,51.846549987793075],[13.048269271850586,51.870010375976676],[13.055450439453239,51.899509429931584],[12.98296928405756,51.90053176879883],[12.972139358520565,51.933971405029354],[12.863180160522573,51.931758880615234],[12.858329772949217,51.965129852294865],[12.714208602905387,52.0003395080567],[12.65982913970953,52.00474166870128],[12.628700256347656,51.979240417480526],[12.549958229064941,51.980232238769645],[12.490827560424917,52.0290412902832],[12.43582820892334,52.01491165161127],[12.369858741760254,52.04156875610363],[12.280429840088003,52.10176849365246],[12.227298736572266,52.161540985107536],[12.271249771118105,52.21287918090832],[12.25396919250494,52.250080108642514],[12.311418533325252,52.345729827880916],[12.301250457763615,52.419929504394474],[12.333218574523983,52.471462249755916],[12.266699790954647,52.498119354248104],[12.175079345703068,52.502780914306754],[12.1575803756715,52.53631973266613],[12.183770179748592,52.602798461914176],[12.246099472045955,52.64295196533203],[12.241068840026912,52.683811187744084],[12.20496082305908,52.71015930175787],[12.212269783020076,52.75461959838867],[12.262378692626951,52.7912216186524],[12.239218711853084,52.84344863891612],[12.086408615112362,52.88214111328125],[11.981528282165584,52.87200927734375],[11.90796947479248,52.8875617980957],[11.828538894653434,52.92173004150402],[11.743320465088004,52.985698699951286],[11.687638282775879,52.98247146606457],[11.601769447326658,53.03155136108398],[11.509009361267033,53.04718017578131],[11.459699630737362,53.07736206054699],[11.353878974914494,53.05210876464849],[11.273380279540959,53.10115051269537],[11.273481369018555,53.11978149414062],[11.397949218750057,53.11880111694341],[11.472749710083065,53.13684082031256],[11.540950775146596,53.121391296386776],[11.59181022644043,53.21036911010748],[11.63576984405529,53.23981094360346],[11.704189300537223,53.23921203613287],[11.734849929809682,53.212848663330135],[11.803829193115233,53.249488830566406],[11.872219085693416,53.25257110595708],[12.028409957885742,53.2994995117188],[12.060480117797795,53.343910217285156],[12.171999931335506,53.33528137207031],[12.234510421753042,53.353248596191406],[12.264800071716365,53.32680892944336],[12.400289535522404,53.29916000366211],[12.399628639221191,53.2768211364746],[12.460661888122615,53.25001144409185],[12.535188674926871,53.260269165039176],[12.614889144897461,53.24063873291027],[12.670860290527344,53.25107192993164],[12.68833827972412,53.2210693359375],[12.76239013671875,53.22008132934575],[12.785710334777946,53.18255996704113],[12.91559982299799,53.19190979003912],[12.982050895690973,53.15750122070306],[13.108539581298885,53.23369216918957],[13.251282691955566,53.25390625000005],[13.301878929138297,53.275329589843864],[13.363525390625114,53.2742919921875],[13.40527153015131,53.243896484375114],[13.438720703125,53.29528808593756],[13.500488281249943,53.29791259765625],[13.554159164428768,53.374961853027344],[13.549316406249943,53.39727783203125],[13.624328613281248,53.41088867187506],[13.638671875000055,53.44409179687506],[13.709288597107047,53.47607421875],[13.802799224853572,53.47819900512707],[13.824710845947266,53.52228164672846],[13.879629135131779,53.50273132324213],[13.91958045959467,53.45011901855468],[14.043899536132756,53.429008483886776],[14.121093750000114,53.44207763671869],[14.18292331695568,53.42230224609375],[14.246148109436033,53.42095184326172],[14.243160247802733,53.384101867675724],[14.207889556884766,53.34048080444347],[14.114839553833121,53.28697204589855],[14.14498424530035,53.2678489685058],[14.226650238037166,53.258831024170036],[14.298890113830678,53.28710937500006],[14.319879531860465,53.3126220703125],[14.415765762329158,53.32979583740234]],[[13.177889823913574,52.390319824218864],[13.227739334106559,52.41926193237299],[13.396039962768612,52.3760719299317],[13.427828788757381,52.4089622497558],[13.542180061340275,52.38872146606456],[13.603069305419922,52.39519882202159],[13.661138534545955,52.34241867065429],[13.749758720398006,52.42628097534191],[13.721320152282827,52.46379852294916],[13.649419784545897,52.47974014282226],[13.645098686218375,52.516868591308594],[13.557220458984432,52.584930419921875],[13.503379821777344,52.60425949096691],[13.523490905761776,52.6447410583496],[13.46364974975586,52.66786956787121],[13.437800407409611,52.63489151000982],[13.370199203491211,52.62105941772455],[13.230238914489746,52.62681198120117],[13.21620941162115,52.58251953125006],[13.160909652710073,52.57218933105469],[13.122269630432243,52.520832061767635],[13.176479339599723,52.50524139404297],[13.120060920715446,52.46525955200195],[13.093818664550895,52.417438507080135],[13.177889823913574,52.390319824218864]]]},"properties":{"ID_0":86,"ISO":"DE-BB","NAME_0":"Germany","ID_1":4,"NAME_1":"Brandenburg","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[8.505060195922852,53.232891082763786],[8.599969863891715,53.187011718750114],[8.717420578002928,53.18611907958978],[8.74306964874279,53.16804885864269],[8.82959079742443,53.16619873046881],[8.861869812011719,53.137008666992244],[8.966480255126953,53.13906097412109],[8.97105884552002,53.042049407958984],[8.935469627380371,53.01523971557622],[8.780339241027832,53.04199218750006],[8.731298446655217,53.037208557128906],[8.710700035095329,53.07778167724603],[8.673138618469238,53.08811950683593],[8.625838279724235,53.165290832519645],[8.519479751587028,53.19604110717779],[8.505060195922852,53.232891082763786]]],[[[8.513918876648006,53.50513839721679],[8.555277824401912,53.50791549682623],[8.565277099609375,53.550273895263786],[8.526944160461483,53.592948913574155],[8.521388053894157,53.6064567565918],[8.594015121459961,53.593067169189446],[8.643824577331657,53.548999786376946],[8.65055561065685,53.510780334472656],[8.605904579162598,53.48423385620122],[8.513918876648006,53.50513839721679]]]]},"properties":{"ID_0":86,"ISO":"DE-HB","NAME_0":"Germany","ID_1":5,"NAME_1":"Bremen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.319178581237848,53.44248962402344],[10.248090744018555,53.40472030639654],[10.177260398864858,53.40795135498047],[10.053689002990835,53.474159240722656],[10.034690856933592,53.44427108764643],[9.944258689880371,53.43994140625011],[9.898807525634766,53.469478607177734],[9.860760688781852,53.446769714355526],[9.7963285446167,53.47980117797851],[9.763450622558594,53.51694107055658],[9.768639564514158,53.56554031372082],[9.723658561706541,53.569000244140675],[9.72939968109142,53.59474945068365],[9.78622817993164,53.620971679687614],[9.850890159607047,53.60655212402344],[9.919628143310604,53.66593170166021],[9.990429878234918,53.658859252929744],[10.002109527588004,53.69211959838872],[10.072678565979004,53.68870925903325],[10.084019660949707,53.72935104370123],[10.173889160156193,53.71858215332037],[10.18179035186779,53.67800903320324],[10.228058815002555,53.63389205932617],[10.210621833801211,53.59326171875006],[10.15961933135992,53.589401245117244],[10.168158531188965,53.534091949463004],[10.219569206237793,53.530601501464844],[10.246680259704704,53.4938316345216],[10.319178581237848,53.44248962402344]]]},"properties":{"ID_0":86,"ISO":"DE-HH","NAME_0":"Germany","ID_1":6,"NAME_1":"Hamburg","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.93714809417719,51.37919998168945],[9.949359893798828,51.304889678955135],[10.027479171752985,51.27843093872082],[10.075889587402344,51.22618103027344],[10.195248603820858,51.20320892333996],[10.237089157104549,51.18072891235357],[10.149688720703125,51.05513000488287],[10.203298568725643,51.04370880126959],[10.197978973388786,50.999240875244084],[10.042918205261174,51.01494216918945],[10.014289855957031,50.93717193603515],[10.062809944152775,50.89242172241222],[9.998019218444881,50.82971191406256],[9.950229644775504,50.8223991394044],[9.926839828491154,50.77061080932617],[9.93896007537836,50.73741912841808],[9.915069580078125,50.69692993164068],[9.873539924621696,50.6746711730957],[9.884748458862305,50.638359069824276],[9.946098327636832,50.6301002502442],[9.951470375061149,50.67092132568359],[10.048980712890623,50.67726135253912],[10.086059570312557,50.63238143920904],[10.03817081451416,50.61396026611334],[10.063029289245662,50.55731201171881],[10.039758682251033,50.51588058471691],[10.04001903533947,50.49333190917968],[9.987749099731559,50.44425201416027],[9.882708549499455,50.39855194091797],[9.75783920288086,50.424091339111385],[9.738649368286246,50.29980087280285],[9.652839660644531,50.26930999755865],[9.665809631347656,50.23950958251953],[9.597940444946289,50.22029113769536],[9.534529685974121,50.234710693359375],[9.507490158081112,50.21202850341797],[9.519418716430721,50.09251022338867],[9.41923713684082,50.080291748046925],[9.377340316772461,50.132209777832145],[9.237930297851676,50.14928054809582],[9.173929214477539,50.10739898681646],[9.138387680053711,50.12517166137695],[9.033840179443416,50.11211013793957],[9.007158279419059,50.04164886474621],[9.048080444335994,50.042411804199325],[9.039319038391056,49.90962982177745],[9.06967926025402,49.83277130126964],[9.152109146118276,49.73793029785162],[9.095290184020996,49.69327926635736],[9.113509178161735,49.6455917358399],[9.073519706726131,49.62322998046874],[9.108948707580623,49.58300018310547],[9.04689025878906,49.505512237548885],[8.96017837524414,49.50114059448248],[8.95515060424816,49.46086883544916],[8.909089088440053,49.44575881958007],[8.857840538024902,49.404911041259766],[8.827729225158691,49.47713088989269],[8.902488708496094,49.48944854736339],[8.711479187011832,49.539791107177734],[8.693719863891658,49.56119918823248],[8.686168670654354,49.63053131103521],[8.600359916687125,49.61323165893555],[8.61958885192871,49.54420852661138],[8.557209014892635,49.523811340331974],[8.46900939941412,49.59062194824218],[8.429039001464787,49.58562088012701],[8.393419265747013,49.61754989624035],[8.362480163574162,49.67544937133795],[8.38438892364502,49.70563888549815],[8.447199821472282,49.722358703613395],[8.386138916015625,49.82003021240229],[8.396700859069824,49.84989166259771],[8.34920978546154,49.88539123535167],[8.36583042144781,49.9080696105957],[8.334729194641227,49.973751068115284],[8.257689476013297,50.027069091796925],[8.18796825408947,50.0324592590332],[7.986810207367057,49.97499084472662],[7.887711048126221,49.97066879272461],[7.868689060211294,50.008232116699325],[7.78512001037609,50.053112030029354],[7.848290920257625,50.08341217041026],[7.858398914337215,50.124740600585994],[7.934988975525016,50.110019683838004],[7.93970012664795,50.14012908935547],[7.897068977355957,50.18106079101574],[7.925447940826531,50.20378112792963],[8.01807022094738,50.230918884277344],[8.138090133667104,50.2965087890625],[8.096098899841365,50.32944107055664],[8.082799911498967,50.374160766601555],[8.009419441223145,50.39920043945318],[7.995588779449463,50.495899200439396],[8.06255912780773,50.55733108520508],[8.115130424499625,50.53575134277349],[8.155960083007812,50.55492019653326],[8.173588752746582,50.60026168823242],[8.120570182800293,50.66073989868164],[8.133959770202692,50.687709808349666],[8.17941856384283,50.73952102661133],[8.145460128784237,50.76959991455084],[8.178870201110897,50.806789398193295],[8.275670051574707,50.881240844726676],[8.36824989318842,50.86260223388672],[8.4476900100708,50.91495895385742],[8.46796894073492,50.96326065063476],[8.537079811096191,51.009128570556754],[8.538150787353572,51.095119476318416],[8.663989067077694,51.09012985229498],[8.704908370971737,51.105892181396484],[8.715429306030387,51.139709472656364],[8.767789840698242,51.170631408691406],[8.74069976806635,51.24853897094721],[8.70938873291027,51.274089813232365],[8.601678848266715,51.245811462402344],[8.568999290466422,51.275070190429744],[8.63252067565918,51.336120605468864],[8.698570251464844,51.359840393066406],[8.825110435485897,51.38840103149413],[8.874078750610295,51.37440109252941],[8.957579612731934,51.387271881103565],[8.924329757690373,51.487411499023544],[9.041880607605037,51.51929855346685],[9.112098693847656,51.49462127685558],[9.11385822296154,51.4426002502442],[9.171580314636287,51.44372940063482],[9.28421878814703,51.51277923583995],[9.378959655761719,51.592361450195305],[9.34362888336176,51.6100807189942],[9.451740264892635,51.64538192749029],[9.52808856964117,51.62834930419933],[9.628209114074762,51.629989624023494],[9.689008712768555,51.58312225341808],[9.624798774719295,51.54909133911144],[9.608918190002553,51.49370193481451],[9.633330345153809,51.46102905273443],[9.634898185730094,51.409450531005916],[9.566449165344295,51.37818908691406],[9.585058212280273,51.34521865844738],[9.667149543762264,51.313930511474716],[9.741929054260252,51.323459625244254],[9.711949348449764,51.359611511230575],[9.801008224487305,51.411869049072266],[9.911230087280273,51.419750213623104],[9.93714809417719,51.37919998168945]]]},"properties":{"ID_0":86,"ISO":"DE-HE","NAME_0":"Germany","ID_1":7,"NAME_1":"Hessen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Hesse"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.415765762329158,53.32979583740234],[14.319879531860465,53.3126220703125],[14.298890113830678,53.28710937500006],[14.226650238037166,53.258831024170036],[14.14498424530035,53.2678489685058],[14.114839553833121,53.28697204589855],[14.207889556884766,53.34048080444347],[14.243160247802733,53.384101867675724],[14.246148109436033,53.42095184326172],[14.18292331695568,53.42230224609375],[14.121093750000114,53.44207763671869],[14.043899536132756,53.429008483886776],[13.91958045959467,53.45011901855468],[13.879629135131779,53.50273132324213],[13.824710845947266,53.52228164672846],[13.802799224853572,53.47819900512707],[13.709288597107047,53.47607421875],[13.638671875000055,53.44409179687506],[13.624328613281248,53.41088867187506],[13.549316406249943,53.39727783203125],[13.554159164428768,53.374961853027344],[13.500488281249943,53.29791259765625],[13.438720703125,53.29528808593756],[13.40527153015131,53.243896484375114],[13.363525390625114,53.2742919921875],[13.301878929138297,53.275329589843864],[13.251282691955566,53.25390625000005],[13.108539581298885,53.23369216918957],[12.982050895690973,53.15750122070306],[12.91559982299799,53.19190979003912],[12.785710334777946,53.18255996704113],[12.76239013671875,53.22008132934575],[12.68833827972412,53.2210693359375],[12.670860290527344,53.25107192993164],[12.614889144897461,53.24063873291027],[12.535188674926871,53.260269165039176],[12.460661888122615,53.25001144409185],[12.399628639221191,53.2768211364746],[12.400289535522404,53.29916000366211],[12.264800071716365,53.32680892944336],[12.234510421753042,53.353248596191406],[12.171999931335506,53.33528137207031],[12.060480117797795,53.343910217285156],[12.028409957885742,53.2994995117188],[11.872219085693416,53.25257110595708],[11.803829193115233,53.249488830566406],[11.734849929809682,53.212848663330135],[11.704189300537223,53.23921203613287],[11.63576984405529,53.23981094360346],[11.59181022644043,53.21036911010748],[11.540950775146596,53.121391296386776],[11.472749710083065,53.13684082031256],[11.397949218750057,53.11880111694341],[11.273481369018555,53.11978149414062],[11.198998451232967,53.18004226684576],[11.093479156494254,53.21469879150402],[10.994039535522461,53.334770202636776],[10.913068771362418,53.34025192260748],[10.844929695129451,53.31269073486333],[10.795350074768066,53.32160949707036],[10.708258628845329,53.37931060791027],[10.597419738769588,53.37364959716797],[10.621770858764704,53.39173889160156],[10.63937854766857,53.4650993347168],[10.69486045837408,53.46443176269531],[10.818040847778263,53.524841308593864],[10.82373046875,53.56175994873052],[10.911029815673828,53.574481964111385],[10.95374965667736,53.651401519775504],[10.921190261840934,53.70045852661132],[10.852029800415039,53.70563888549805],[10.769919395446777,53.75511932373047],[10.762510299682617,53.829288482666065],[10.773878097534123,53.881019592285156],[10.887930870056266,53.920150756835994],[10.89471817016613,53.95597076416015],[11.039167404174918,54.00624847412121],[11.18083381652832,54.01541519165045],[11.24861145019537,53.98708343505864],[11.245278358459473,53.94235992431651],[11.326944351196289,53.95708465576172],[11.444167137145996,53.91013717651373],[11.481389999389648,53.95791625976568],[11.377499580383414,53.97541809082031],[11.37805557250988,53.99736022949219],[11.457500457763672,54.02375030517584],[11.506943702697697,54.00986099243163],[11.575833320617733,54.0348625183106],[11.624167442321891,54.0770835876466],[11.607499122619629,54.105972290039176],[11.682498931884707,54.15319442749034],[11.876944541931152,54.148750305175724],[12.010276794433535,54.17819595336925],[12.109167098999137,54.175693511963004],[12.190279006958065,54.239860534668026],[12.339165687561035,54.297916412353565],[12.409723281860295,54.37874984741211],[12.466944694519157,54.42013931274414],[12.510834693908691,54.482917785644474],[12.549166679382267,54.45569610595703],[12.660834312439079,54.44208145141607],[12.856388092041072,54.44041824340826],[12.764166831970272,54.412918090820256],[12.635833740234489,54.41708374023449],[12.51250076293951,54.37597274780285],[12.43527889251709,54.378471374511776],[12.421387672424316,54.33958435058599],[12.358611106872615,54.30291748046875],[12.383054733276424,54.27930450439458],[12.474167823791447,54.30291748046875],[12.473055839538688,54.329860687255795],[12.535834312439022,54.339305877685604],[12.710276603698786,54.41097259521496],[12.7219438552857,54.37236022949219],[12.804165840148983,54.371250152587834],[12.845832824707145,54.351249694824276],[12.89638900756836,54.40013885498041],[12.999167442321891,54.43624877929687],[13.111945152282658,54.304584503173885],[13.226389884948787,54.23958206176769],[13.285834312439077,54.23541641235363],[13.348056793212889,54.16513824462902],[13.37694454193121,54.17680740356451],[13.47694396972662,54.11875152587902],[13.696389198303164,54.149028778076115],[13.80750083923351,54.096248626708984],[13.757498741149957,54.02708435058593],[13.834723472595272,53.984306335449325],[13.912501335144157,53.9254150390625],[13.905834197998104,53.989860534667905],[14.033612251281795,53.940971374511776],[14.046944618225211,53.99652862548839],[14.003611564636286,54.010692596435604],[13.971944808959904,54.05875015258795],[13.92472362518322,54.0631942749024],[13.763611793518123,54.03097152709955],[13.811944961547908,54.093471527099666],[13.749167442321891,54.15902709960949],[13.812499046325627,54.17736053466791],[13.840832710266227,54.123195648193416],[13.888610839843864,54.09236145019531],[14.017500877380485,54.052360534668026],[14.219858169555664,53.929580688476676],[14.189165115356502,53.87263870239269],[14.03305625915533,53.87263870239269],[13.994723320007438,53.84986114501947],[13.86805534362793,53.83597183227545],[13.972498893737791,53.77208328247076],[14.122500419616813,53.73736190795904],[14.18416690826416,53.7359733581543],[14.229720115661678,53.76152801513683],[14.29158020019537,53.65946197509777],[14.318198204040527,53.522789001464844],[14.359710693359487,53.48902893066406],[14.37357044219982,53.42618942260742],[14.415765762329158,53.32979583740234]]],[[[13.429166793823242,54.68458175659191],[13.37583255767822,54.63513946533203],[13.392499923706053,54.59708404541021],[13.456945419311467,54.56958389282238],[13.634721755981502,54.58486175537115],[13.679720878601074,54.56152725219732],[13.66860961914068,54.52069473266607],[13.570277214050348,54.47013854980462],[13.599167823791504,54.412918090820256],[13.678054809570256,54.395694732666016],[13.673610687255858,54.35069274902355],[13.613610267639103,54.33069610595714],[13.575278282165526,54.35291671752941],[13.508610725402775,54.34402847290038],[13.412499427795465,54.29680633544922],[13.390277862548883,54.222362518310604],[13.200278282165527,54.26985931396478],[13.13972091674799,54.29652786254883],[13.114165306091365,54.33263778686529],[13.129722595214844,54.37236022949219],[13.23472213745117,54.369583129882926],[13.237501144409237,54.40763854980469],[13.170276641845703,54.425140380859375],[13.169724464416618,54.45264053344738],[13.241945266723633,54.47236251831055],[13.171389579772947,54.50736236572265],[13.163055419921989,54.545139312744254],[13.240279197692985,54.55430603027344],[13.286390304565543,54.54319381713873],[13.363056182861271,54.55597305297857],[13.450832366943358,54.4731941223145],[13.495834350585993,54.479583740234425],[13.502499580383414,54.547916412353516],[13.446944236755428,54.551250457763786],[13.383610725402889,54.58124923706049],[13.250276565551871,54.5723609924317],[13.288612365722656,54.62736129760753],[13.284722328186092,54.67263793945318],[13.429166793823242,54.68458175659191]]]]},"properties":{"ID_0":86,"ISO":"DE-MV","NAME_0":"Germany","ID_1":8,"NAME_1":"Mecklenburg-Vorpommern","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Mecklenburg-West Pomerania"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[6.761944770812931,53.618751525878906],[6.719721794128532,53.56375122070324],[6.663055896759261,53.577640533447266],[6.654167175293026,53.607082366943416],[6.761944770812931,53.618751525878906]]],[[[9.09638881683344,53.88398361206055],[9.199728965759391,53.886032104492244],[9.288209915161133,53.8694114685058],[9.358848571777457,53.82297897338873],[9.40497016906744,53.75769042968761],[9.507008552551213,53.7008514404298],[9.547169685363826,53.624309539795036],[9.67358016967779,53.57526016235362],[9.723658561706541,53.569000244140675],[9.768639564514158,53.56554031372082],[9.763450622558594,53.51694107055658],[9.7963285446167,53.47980117797851],[9.860760688781852,53.446769714355526],[9.898807525634766,53.469478607177734],[9.944258689880371,53.43994140625011],[10.034690856933592,53.44427108764643],[10.053689002990835,53.474159240722656],[10.177260398864858,53.40795135498047],[10.248090744018555,53.40472030639654],[10.319178581237848,53.44248962402344],[10.391718864441032,53.43540191650384],[10.506809234619084,53.38425064086914],[10.597419738769588,53.37364959716797],[10.708258628845329,53.37931060791027],[10.795350074768066,53.32160949707036],[10.844929695129451,53.31269073486333],[10.913068771362418,53.34025192260748],[10.994039535522461,53.334770202636776],[11.093479156494254,53.21469879150402],[11.198998451232967,53.18004226684576],[11.273481369018555,53.11978149414062],[11.273380279540959,53.10115051269537],[11.353878974914494,53.05210876464849],[11.459699630737362,53.07736206054699],[11.509009361267033,53.04718017578131],[11.601769447326658,53.03155136108398],[11.564100265502873,52.994651794433594],[11.514609336853082,52.99877166748058],[11.47671985626215,52.93581008911133],[11.321439743042106,52.87369918823248],[11.240949630737418,52.877979278564396],[11.160360336303711,52.90460968017578],[10.998458862304688,52.90996932983409],[10.942508697509766,52.851379394531186],[10.772189140319881,52.854450225830135],[10.760579109191895,52.792900085449276],[10.790019035339299,52.74053192138683],[10.927108764648438,52.60639190673834],[10.972538948059139,52.499290466308594],[10.936208724975529,52.459011077880916],[11.035769462585504,52.384651184081974],[11.06054973602295,52.34764099121088],[10.99966144561779,52.34056854248058],[11.091659545898551,52.22938919067388],[11.037719726562443,52.21136093139643],[11.02023887634283,52.17837905883789],[11.068088531494254,52.166919708251896],[11.050539970398061,52.13394165039068],[10.94927978515625,52.10540008544933],[10.974808692932072,52.05725097656256],[10.857770919799918,52.05097961425787],[10.691758155822697,52.05276870727544],[10.636878967285213,52.01647949218761],[10.569430351257381,52.01726150512695],[10.64960956573492,51.88962936401367],[10.582900047302303,51.85507202148443],[10.577259063720703,51.80934906005871],[10.601848602294922,51.768039703369254],[10.67490005493164,51.698200225830135],[10.705129623413143,51.64355087280267],[10.63994026184082,51.61925888061529],[10.640660285949764,51.58024978637695],[10.52212905883789,51.55052185058605],[10.443818092346191,51.58860015869146],[10.384880065917969,51.55894088745123],[10.338228225708065,51.51441955566412],[10.17324829101568,51.44480133056646],[10.025360107421875,51.41965103149414],[9.93714809417719,51.37919998168945],[9.911230087280273,51.419750213623104],[9.801008224487305,51.411869049072266],[9.711949348449764,51.359611511230575],[9.741929054260252,51.323459625244254],[9.667149543762264,51.313930511474716],[9.585058212280273,51.34521865844738],[9.566449165344295,51.37818908691406],[9.634898185730094,51.409450531005916],[9.633330345153809,51.46102905273443],[9.608918190002553,51.49370193481451],[9.624798774719295,51.54909133911144],[9.689008712768555,51.58312225341808],[9.628209114074762,51.629989624023494],[9.52808856964117,51.62834930419933],[9.451740264892635,51.64538192749029],[9.382368087768612,51.64768981933594],[9.408809661865234,51.70341873168956],[9.388999938964787,51.758239746093864],[9.451158523559627,51.79259109497076],[9.442108154296932,51.85514068603527],[9.37046813964855,51.86161041259776],[9.332049369811955,51.91699981689453],[9.277660369873159,51.92739105224615],[9.269420623779354,51.975749969482536],[9.18529987335205,51.9744987487793],[9.201719284057617,52.0082893371582],[9.176400184631348,52.03401184082037],[9.17996883392334,52.08628082275401],[9.147498130798454,52.13426208496094],[9.05608940124523,52.14773178100591],[9.047849655151422,52.1923484802246],[9.076158523559627,52.23384094238281],[8.971660614013729,52.261981964111385],[8.987480163574332,52.31072998046881],[9.028349876403809,52.344982147216854],[9.088550567626953,52.35715866088873],[9.128499031066951,52.41379928588867],[9.102117538452148,52.45814132690441],[9.13135147094732,52.484748840332145],[9.05136871337902,52.502090454101676],[8.987609863281307,52.433849334716854],[8.92217826843273,52.40291213989257],[8.855890274047908,52.390602111816406],[8.788468360900879,52.400650024414176],[8.709649085998535,52.39556884765625],[8.711459159851074,52.477642059326165],[8.653689384460506,52.53250885009765],[8.557799339294434,52.50093078613287],[8.508218765258903,52.514888763427734],[8.460728645324762,52.491649627685604],[8.432649612426815,52.450199127197266],[8.30516242980957,52.444011688232536],[8.31338882446289,52.4070396423341],[8.443698883056639,52.36478042602539],[8.4683198928833,52.253448486328125],[8.451660156250057,52.22708129882824],[8.474008560180721,52.156681060791016],[8.414460182189998,52.14076995849615],[8.404229164123649,52.11082077026378],[8.288149833679142,52.131198883056754],[8.246459960937612,52.12306213378912],[8.1602201461792,52.07709884643555],[8.038999557495117,52.06489181518555],[7.974060058593806,52.03638076782232],[7.918758869171199,52.0497207641601],[7.885759830474967,52.086181640625],[8.009200096130314,52.11516952514654],[8.01103878021246,52.17615127563482],[7.932160854339599,52.17737197875987],[7.928679943084716,52.30561065673834],[7.976288795471191,52.31486892700201],[7.937929153442496,52.36505126953125],[7.895120143890323,52.38191986083996],[7.811338901519775,52.37171936035156],[7.719359874725455,52.401988983154354],[7.693008899688778,52.456291198730526],[7.61344814300537,52.47238159179681],[7.578148841858024,52.4311904907226],[7.58010911941534,52.38346099853526],[7.532070159912222,52.371109008789006],[7.391240119934081,52.31148910522472],[7.298637866973991,52.264202117919865],[7.159201145172118,52.268169403076286],[7.071063995361442,52.243484497070426],[7.029718875885123,52.29431915283209],[7.080453872680664,52.35722351074219],[7.000110149383545,52.47317886352545],[6.931348800659123,52.43983078002941],[6.854238986968994,52.462631225586044],[6.764862060546988,52.464931488037166],[6.713626861572379,52.484413146972656],[6.7192640304566,52.62957763671875],[6.786572933197078,52.6561546325683],[6.905216217041016,52.65543746948242],[6.948777198791446,52.64259338378912],[7.063059806823844,52.6471786499024],[7.080383777618636,52.81387329101568],[7.094276905059871,52.846450805664055],[7.212191104888972,52.93294143676758],[7.254858016967773,53.001121520996094],[7.256578922271729,53.098411560058594],[7.227190017700422,53.117160797119084],[7.284949779510498,53.18859100341791],[7.271598815918026,53.22857666015631],[7.228055953979549,53.258193969726676],[7.248054981231746,53.33013916015625],[7.024723052978628,53.33652877807617],[6.999166965484561,53.35902786254882],[7.025276184082031,53.483470916748104],[7.065278053283805,53.524860382080135],[7.133611202239933,53.53236007690441],[7.090834140777645,53.57041549682617],[7.158053874969539,53.62791824340832],[7.296945095062369,53.68069458007806],[7.475277900695915,53.68347167968756],[7.563611030578556,53.67486190795909],[7.693056106567383,53.70097351074218],[7.910831928253118,53.717639923095696],[8.011943817138786,53.71125030517578],[8.02861118316656,53.661804199218686],[8.114165306091309,53.61402893066412],[8.169721603393612,53.54347229003912],[8.150278091430662,53.51263809204107],[8.060833930969352,53.500415802001946],[8.099165916442928,53.445693969726676],[8.136944770812931,53.45291519165039],[8.208610534667967,53.40208435058594],[8.252499580383414,53.399028778076286],[8.315832138061637,53.46430587768549],[8.315832138061637,53.515972137451286],[8.231942176818903,53.51985931396496],[8.24305534362793,53.5823593139649],[8.30361175537115,53.61708450317377],[8.34638881683361,53.610137939453125],[8.384167671203613,53.57430648803722],[8.504722595214957,53.551528930664176],[8.513918876648006,53.50513839721679],[8.605904579162598,53.48423385620122],[8.65055561065685,53.510780334472656],[8.643824577331657,53.548999786376946],[8.594015121459961,53.593067169189446],[8.521388053894157,53.6064567565918],[8.483611106872559,53.65569305419933],[8.483611106872559,53.69430541992193],[8.55416584014898,53.828193664550774],[8.61750125885004,53.88208389282232],[8.682499885559082,53.89180374145508],[8.78694438934326,53.83375167846674],[8.887498855590877,53.828472137451165],[9.016388893127441,53.83597183227545],[9.09972286224371,53.86291503906256],[9.09638881683344,53.88398361206055]],[[8.505060195922852,53.232891082763786],[8.519479751587028,53.19604110717779],[8.625838279724235,53.165290832519645],[8.673138618469238,53.08811950683593],[8.710700035095329,53.07778167724603],[8.731298446655217,53.037208557128906],[8.780339241027832,53.04199218750006],[8.935469627380371,53.01523971557622],[8.97105884552002,53.042049407958984],[8.966480255126953,53.13906097412109],[8.861869812011719,53.137008666992244],[8.82959079742443,53.16619873046881],[8.74306964874279,53.16804885864269],[8.717420578002928,53.18611907958978],[8.599969863891715,53.187011718750114],[8.505060195922852,53.232891082763786]]]]},"properties":{"ID_0":86,"ISO":"DE-NI","NAME_0":"Germany","ID_1":9,"NAME_1":"Niedersachsen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Lower Saxony"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.451740264892635,51.64538192749029],[9.34362888336176,51.6100807189942],[9.378959655761719,51.592361450195305],[9.28421878814703,51.51277923583995],[9.171580314636287,51.44372940063482],[9.11385822296154,51.4426002502442],[9.112098693847656,51.49462127685558],[9.041880607605037,51.51929855346685],[8.924329757690373,51.487411499023544],[8.957579612731934,51.387271881103565],[8.874078750610295,51.37440109252941],[8.825110435485897,51.38840103149413],[8.698570251464844,51.359840393066406],[8.63252067565918,51.336120605468864],[8.568999290466422,51.275070190429744],[8.601678848266715,51.245811462402344],[8.70938873291027,51.274089813232365],[8.74069976806635,51.24853897094721],[8.767789840698242,51.170631408691406],[8.715429306030387,51.139709472656364],[8.704908370971737,51.105892181396484],[8.663989067077694,51.09012985229498],[8.538150787353572,51.095119476318416],[8.537079811096191,51.009128570556754],[8.46796894073492,50.96326065063476],[8.4476900100708,50.91495895385742],[8.36824989318842,50.86260223388672],[8.275670051574707,50.881240844726676],[8.178870201110897,50.806789398193295],[8.145460128784237,50.76959991455084],[8.17941856384283,50.73952102661133],[8.133959770202692,50.687709808349666],[7.974319934845028,50.774669647216854],[7.981119155883789,50.83068084716808],[7.83456993103033,50.88114929199219],[7.854489803314266,50.92636108398443],[7.799629211425781,50.94301986694336],[7.754129886627311,50.9191513061524],[7.763558864593505,50.878620147705135],[7.703039169311637,50.824401855468864],[7.66074991226202,50.76705932617187],[7.601678848266544,50.764862060546925],[7.481769084930477,50.71567153930664],[7.365079879760685,50.699989318847706],[7.364080905914307,50.64413070678711],[7.260398864746207,50.61767196655279],[7.195660114288386,50.618789672851676],[7.150808811187744,50.59461975097656],[7.056681156158446,50.59838104248058],[7.007449150085506,50.55913162231451],[6.92651891708374,50.54882049560541],[6.888179779052848,50.52133178710949],[6.910038948059139,50.47333908081066],[6.859858989715519,50.44908905029297],[6.80399990081787,50.48480224609375],[6.751090049743766,50.43357849121105],[6.808158874511832,50.35760879516596],[6.713931083679256,50.334491729736435],[6.674900054931754,50.36391067504877],[6.589530944824275,50.377559661865284],[6.45967006683361,50.36001968383795],[6.386488914489746,50.37689971923834],[6.403338909149227,50.32192993164068],[6.33975791931158,50.37989425659191],[6.374671936035155,50.44594955444336],[6.330028057098389,50.49364471435558],[6.223847866058462,50.50228118896479],[6.175640106201172,50.55985260009777],[6.251566886901912,50.59209823608404],[6.259338855743522,50.625400543212834],[6.197566986083984,50.631160736083984],[6.118731975555477,50.70873641967784],[6.028616905212346,50.725215911865234],[6.006219863891602,50.767410278320256],[5.963199138641471,50.795051574707145],[6.03108119964611,50.82139205932623],[6.087715148925895,50.87893295288086],[6.082940101623592,50.921798706054744],[6.015170097351017,50.933158874511655],[6.032363891601619,50.97996902465832],[5.907961845398063,51.00095367431646],[5.87205886840826,51.043411254882805],[5.926199913024845,51.055740356445426],[5.969543933868636,51.03446960449218],[5.998916149139518,51.0817642211914],[6.038741111755371,51.095649719238395],[6.144780158996582,51.17371749877941],[6.078309059143066,51.187469482421875],[6.078186035156364,51.2447128295899],[6.231968879699764,51.365982055664055],[6.214348793029841,51.409561157226676],[6.230510234832821,51.47665023803705],[6.220355987548884,51.509170532226506],[6.156868934631348,51.56924057006841],[6.09095811843872,51.605220794677734],[6.118769168853873,51.66045761108404],[6.035422801971436,51.68281173706066],[6.036541938781851,51.727481842041016],[5.97088003158575,51.809398651123104],[6.060989856719913,51.851593017578125],[6.168982028961238,51.84503173828136],[6.1193590164184,51.89014053344738],[6.169019222259635,51.902938842773494],[6.218544960022029,51.867488861083984],[6.288980960845946,51.87657928466797],[6.310534954070988,51.850990295410156],[6.397315025329532,51.871364593505916],[6.480340003967284,51.85462188720703],[6.553330898284911,51.88270568847662],[6.692440986633528,51.920162200927734],[6.742709159851131,51.899051666259815],[6.838380813598633,51.96559906005854],[6.83536100387596,51.9955291748048],[6.759449005126896,52.03073883056646],[6.698178768157959,52.04011917114258],[6.70068883895874,52.07379150390624],[6.75971794128418,52.08686065673839],[6.768452167511042,52.12076568603521],[6.852960109710693,52.11975097656249],[6.916360855102653,52.1780242919923],[6.968887805938664,52.19045257568371],[6.988433837890625,52.22537231445324],[7.071063995361442,52.243484497070426],[7.159201145172118,52.268169403076286],[7.298637866973991,52.264202117919865],[7.391240119934081,52.31148910522472],[7.532070159912222,52.371109008789006],[7.58010911941534,52.38346099853526],[7.578148841858024,52.4311904907226],[7.61344814300537,52.47238159179681],[7.693008899688778,52.456291198730526],[7.719359874725455,52.401988983154354],[7.811338901519775,52.37171936035156],[7.895120143890323,52.38191986083996],[7.937929153442496,52.36505126953125],[7.976288795471191,52.31486892700201],[7.928679943084716,52.30561065673834],[7.932160854339599,52.17737197875987],[8.01103878021246,52.17615127563482],[8.009200096130314,52.11516952514654],[7.885759830474967,52.086181640625],[7.918758869171199,52.0497207641601],[7.974060058593806,52.03638076782232],[8.038999557495117,52.06489181518555],[8.1602201461792,52.07709884643555],[8.246459960937612,52.12306213378912],[8.288149833679142,52.131198883056754],[8.404229164123649,52.11082077026378],[8.414460182189998,52.14076995849615],[8.474008560180721,52.156681060791016],[8.451660156250057,52.22708129882824],[8.4683198928833,52.253448486328125],[8.443698883056639,52.36478042602539],[8.31338882446289,52.4070396423341],[8.30516242980957,52.444011688232536],[8.432649612426815,52.450199127197266],[8.460728645324762,52.491649627685604],[8.508218765258903,52.514888763427734],[8.557799339294434,52.50093078613287],[8.653689384460506,52.53250885009765],[8.711459159851074,52.477642059326165],[8.709649085998535,52.39556884765625],[8.788468360900879,52.400650024414176],[8.855890274047908,52.390602111816406],[8.92217826843273,52.40291213989257],[8.987609863281307,52.433849334716854],[9.05136871337902,52.502090454101676],[9.13135147094732,52.484748840332145],[9.102117538452148,52.45814132690441],[9.128499031066951,52.41379928588867],[9.088550567626953,52.35715866088873],[9.028349876403809,52.344982147216854],[8.987480163574332,52.31072998046881],[8.971660614013729,52.261981964111385],[9.076158523559627,52.23384094238281],[9.047849655151422,52.1923484802246],[9.05608940124523,52.14773178100591],[9.147498130798454,52.13426208496094],[9.17996883392334,52.08628082275401],[9.176400184631348,52.03401184082037],[9.201719284057617,52.0082893371582],[9.18529987335205,51.9744987487793],[9.269420623779354,51.975749969482536],[9.277660369873159,51.92739105224615],[9.332049369811955,51.91699981689453],[9.37046813964855,51.86161041259776],[9.442108154296932,51.85514068603527],[9.451158523559627,51.79259109497076],[9.388999938964787,51.758239746093864],[9.408809661865234,51.70341873168956],[9.382368087768612,51.64768981933594],[9.451740264892635,51.64538192749029]]]},"properties":{"ID_0":86,"ISO":"DE-NW","NAME_0":"Germany","ID_1":10,"NAME_1":"Nordrhein-Westfalen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"North Rhine-Westphalia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.133959770202692,50.687709808349666],[8.120570182800293,50.66073989868164],[8.173588752746582,50.60026168823242],[8.155960083007812,50.55492019653326],[8.115130424499625,50.53575134277349],[8.06255912780773,50.55733108520508],[7.995588779449463,50.495899200439396],[8.009419441223145,50.39920043945318],[8.082799911498967,50.374160766601555],[8.096098899841365,50.32944107055664],[8.138090133667104,50.2965087890625],[8.01807022094738,50.230918884277344],[7.925447940826531,50.20378112792963],[7.897068977355957,50.18106079101574],[7.93970012664795,50.14012908935547],[7.934988975525016,50.110019683838004],[7.858398914337215,50.124740600585994],[7.848290920257625,50.08341217041026],[7.78512001037609,50.053112030029354],[7.868689060211294,50.008232116699325],[7.887711048126221,49.97066879272461],[7.986810207367057,49.97499084472662],[8.18796825408947,50.0324592590332],[8.257689476013297,50.027069091796925],[8.334729194641227,49.973751068115284],[8.36583042144781,49.9080696105957],[8.34920978546154,49.88539123535167],[8.396700859069824,49.84989166259771],[8.386138916015625,49.82003021240229],[8.447199821472282,49.722358703613395],[8.38438892364502,49.70563888549815],[8.362480163574162,49.67544937133795],[8.393419265747013,49.61754989624035],[8.429039001464787,49.58562088012701],[8.418828964233512,49.552188873291016],[8.44361877441412,49.501579284668026],[8.508850097656307,49.434150695800895],[8.494589805603141,49.36024856567394],[8.450428962707576,49.33285140991211],[8.491369247436467,49.30128860473644],[8.38765907287609,49.23448181152344],[8.40528869628912,49.220352172851506],[8.369058609008789,49.17065048217785],[8.362239837646484,49.09968948364269],[8.314449310302848,49.056999206543026],[8.295299530029295,49.00415039062506],[8.229839324951172,48.96836853027355],[8.091376304626579,48.98925781250006],[8.051136016845703,49.01275634765631],[7.976319313049316,49.02830123901373],[7.937040328979606,49.05623245239252],[7.867407798767147,49.03349304199219],[7.799933910369872,49.06416320800781],[7.671083927154541,49.04597091674805],[7.627396106720028,49.07339859008783],[7.568486213684139,49.07990646362304],[7.489583015442008,49.13652801513677],[7.491343021392765,49.16851043701172],[7.445586204528752,49.18402481079096],[7.366024017333984,49.1710472106933],[7.300240993499755,49.212810516357536],[7.292399883270376,49.24573135375982],[7.38086986541748,49.28894042968756],[7.410618782043571,49.363220214843686],[7.362909793853817,49.38798904418951],[7.293569087982235,49.39709854125976],[7.260719776153564,49.45523071289068],[7.310669898986872,49.47896957397466],[7.285268783569392,49.511550903320426],[7.268489837646599,49.58148956298834],[7.193348884582633,49.58269119262695],[7.179759025573844,49.60820007324224],[7.116670131683462,49.602088928222706],[7.03186988830572,49.64682006835949],[6.998539924621639,49.630569458007926],[6.8667187690736,49.6137313842774],[6.750059127807673,49.56032943725597],[6.618360042572078,49.53926849365229],[6.496758937835921,49.52909088134771],[6.460019111633244,49.5455207824707],[6.378159046173209,49.54800033569336],[6.376737117767448,49.59218215942394],[6.422409057617243,49.625240325927734],[6.424099922180289,49.66633224487316],[6.503182888031005,49.71570968627935],[6.518823146820067,49.7636833190918],[6.507969856262263,49.80574035644531],[6.397451877593994,49.823604583740234],[6.375780105590933,49.84922790527344],[6.236907005310002,49.892372131347656],[6.219171047210693,49.95164108276373],[6.156370162963981,49.961261749267514],[6.111769199371395,50.04904174804699],[6.118379116058463,50.12276077270519],[6.146426200866699,50.17389297485363],[6.189638137817496,50.189464569091854],[6.170382022857666,50.23625564575206],[6.275639057159537,50.26544189453125],[6.301178932190055,50.31853103637695],[6.403338909149227,50.32192993164068],[6.386488914489746,50.37689971923834],[6.45967006683361,50.36001968383795],[6.589530944824275,50.377559661865284],[6.674900054931754,50.36391067504877],[6.713931083679256,50.334491729736435],[6.808158874511832,50.35760879516596],[6.751090049743766,50.43357849121105],[6.80399990081787,50.48480224609375],[6.859858989715519,50.44908905029297],[6.910038948059139,50.47333908081066],[6.888179779052848,50.52133178710949],[6.92651891708374,50.54882049560541],[7.007449150085506,50.55913162231451],[7.056681156158446,50.59838104248058],[7.150808811187744,50.59461975097656],[7.195660114288386,50.618789672851676],[7.260398864746207,50.61767196655279],[7.364080905914307,50.64413070678711],[7.365079879760685,50.699989318847706],[7.481769084930477,50.71567153930664],[7.601678848266544,50.764862060546925],[7.66074991226202,50.76705932617187],[7.703039169311637,50.824401855468864],[7.763558864593505,50.878620147705135],[7.754129886627311,50.9191513061524],[7.799629211425781,50.94301986694336],[7.854489803314266,50.92636108398443],[7.83456993103033,50.88114929199219],[7.981119155883789,50.83068084716808],[7.974319934845028,50.774669647216854],[8.133959770202692,50.687709808349666]]]},"properties":{"ID_0":86,"ISO":"DE-RP","NAME_0":"Germany","ID_1":11,"NAME_1":"Rheinland-Pfalz","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Rhineland-Palatinate"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.366024017333984,49.1710472106933],[7.293400287628287,49.115158081054744],[7.245446205139216,49.12971115112305],[7.158799171447754,49.1207733154298],[7.104239463806152,49.1386833190918],[7.058024406433162,49.1125869750976],[7.033706188201847,49.18826293945324],[6.934805393219222,49.222129821777344],[6.837654113769588,49.21126174926769],[6.860935211181641,49.17862701416015],[6.834462642669735,49.15137863159191],[6.737987518310604,49.16456985473627],[6.692921638488769,49.21754837036144],[6.66784572601324,49.28043746948248],[6.615992069244611,49.30268478393555],[6.565380573272648,49.34928894042962],[6.599329471588135,49.366619110107415],[6.540528297424373,49.40114593505871],[6.535418987274113,49.434162139892635],[6.422406673431396,49.47601318359381],[6.367599010467585,49.46653747558605],[6.378159046173209,49.54800033569336],[6.460019111633244,49.5455207824707],[6.496758937835921,49.52909088134771],[6.618360042572078,49.53926849365229],[6.750059127807673,49.56032943725597],[6.8667187690736,49.6137313842774],[6.998539924621639,49.630569458007926],[7.03186988830572,49.64682006835949],[7.116670131683462,49.602088928222706],[7.179759025573844,49.60820007324224],[7.193348884582633,49.58269119262695],[7.268489837646599,49.58148956298834],[7.285268783569392,49.511550903320426],[7.310669898986872,49.47896957397466],[7.260719776153564,49.45523071289068],[7.293569087982235,49.39709854125976],[7.362909793853817,49.38798904418951],[7.410618782043571,49.363220214843686],[7.38086986541748,49.28894042968756],[7.292399883270376,49.24573135375982],[7.300240993499755,49.212810516357536],[7.366024017333984,49.1710472106933]]]},"properties":{"ID_0":86,"ISO":"DE-SL","NAME_0":"Germany","ID_1":12,"NAME_1":"Saarland","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.063730239868278,51.64789962768566],[13.016320228576717,51.667060852050895],[12.925069808960018,51.64247894287121],[12.860198974609318,51.680339813232536],[12.786640167236442,51.64440917968744],[12.696819305419863,51.660419464111385],[12.677779197692985,51.63113021850597],[12.544399261474721,51.60338211059576],[12.442049980163572,51.60470199584961],[12.435400009155273,51.5826416015625],[12.357259750366268,51.58729934692383],[12.302309989929311,51.558441162109375],[12.242150306701717,51.55913162231451],[12.199160575866811,51.52273178100591],[12.216580390930119,51.49673080444336],[12.167498588562124,51.45304107666027],[12.191019058227539,51.4306907653808],[12.183770179748592,51.375530242920036],[12.200760841369686,51.331180572509766],[12.158598899841422,51.3205909729005],[12.204987525940055,51.2502212524414],[12.221497535705566,51.18386077880864],[12.208699226379451,51.14356994628906],[12.231939315795955,51.11392974853527],[12.29712009429943,51.09484100341808],[12.272410392761174,51.054729461670036],[12.30749034881603,51.02495956420909],[12.252470016479435,50.95586013793951],[12.193419456481934,50.98212051391601],[12.043869018554686,50.97587203979498],[11.984869003295842,51.02033996582031],[11.883781433105582,51.06132888793951],[11.763709068298397,51.050651550292905],[11.704259872436637,51.072948455810604],[11.645148277282829,51.11373901367199],[11.489728927612305,51.102561950683594],[11.454509735107477,51.14707183837896],[11.472960472106877,51.19165039062499],[11.419919967651367,51.24729919433588],[11.480478286743164,51.29914855957042],[11.426947593689079,51.32519149780285],[11.39778041839611,51.38454055786132],[11.254289627075195,51.39945220947277],[11.147039413452205,51.402809143066406],[11.07571983337408,51.42858886718756],[10.992289543151912,51.4169807434082],[10.962779998779354,51.49143218994135],[10.897368431091309,51.55461883544922],[10.903529167175293,51.59206008911132],[10.861859321594238,51.63322067260753],[10.705129623413143,51.64355087280267],[10.67490005493164,51.698200225830135],[10.601848602294922,51.768039703369254],[10.577259063720703,51.80934906005871],[10.582900047302303,51.85507202148443],[10.64960956573492,51.88962936401367],[10.569430351257381,52.01726150512695],[10.636878967285213,52.01647949218761],[10.691758155822697,52.05276870727544],[10.857770919799918,52.05097961425787],[10.974808692932072,52.05725097656256],[10.94927978515625,52.10540008544933],[11.050539970398061,52.13394165039068],[11.068088531494254,52.166919708251896],[11.02023887634283,52.17837905883789],[11.037719726562443,52.21136093139643],[11.091659545898551,52.22938919067388],[10.99966144561779,52.34056854248058],[11.06054973602295,52.34764099121088],[11.035769462585504,52.384651184081974],[10.936208724975529,52.459011077880916],[10.972538948059139,52.499290466308594],[10.927108764648438,52.60639190673834],[10.790019035339299,52.74053192138683],[10.760579109191895,52.792900085449276],[10.772189140319881,52.854450225830135],[10.942508697509766,52.851379394531186],[10.998458862304688,52.90996932983409],[11.160360336303711,52.90460968017578],[11.240949630737418,52.877979278564396],[11.321439743042106,52.87369918823248],[11.47671985626215,52.93581008911133],[11.514609336853082,52.99877166748058],[11.564100265502873,52.994651794433594],[11.601769447326658,53.03155136108398],[11.687638282775879,52.98247146606457],[11.743320465088004,52.985698699951286],[11.828538894653434,52.92173004150402],[11.90796947479248,52.8875617980957],[11.981528282165584,52.87200927734375],[12.086408615112362,52.88214111328125],[12.239218711853084,52.84344863891612],[12.262378692626951,52.7912216186524],[12.212269783020076,52.75461959838867],[12.20496082305908,52.71015930175787],[12.241068840026912,52.683811187744084],[12.246099472045955,52.64295196533203],[12.183770179748592,52.602798461914176],[12.1575803756715,52.53631973266613],[12.175079345703068,52.502780914306754],[12.266699790954647,52.498119354248104],[12.333218574523983,52.471462249755916],[12.301250457763615,52.419929504394474],[12.311418533325252,52.345729827880916],[12.25396919250494,52.250080108642514],[12.271249771118105,52.21287918090832],[12.227298736572266,52.161540985107536],[12.280429840088003,52.10176849365246],[12.369858741760254,52.04156875610363],[12.43582820892334,52.01491165161127],[12.490827560424917,52.0290412902832],[12.549958229064941,51.980232238769645],[12.628700256347656,51.979240417480526],[12.65982913970953,52.00474166870128],[12.714208602905387,52.0003395080567],[12.858329772949217,51.965129852294865],[12.863180160522573,51.931758880615234],[12.972139358520565,51.933971405029354],[12.98296928405756,51.90053176879883],[13.055450439453239,51.899509429931584],[13.048269271850586,51.870010375976676],[13.137908935546818,51.846549987793075],[13.178320884704533,51.801578521728565],[13.179808616638297,51.690589904785156],[13.063730239868278,51.64789962768566]]]},"properties":{"ID_0":86,"ISO":"DE-ST","NAME_0":"Germany","ID_1":13,"NAME_1":"Sachsen-Anhalt","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Saxony-Anhalt"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.063730239868278,51.64789962768566],[13.098188400268498,51.606739044189396],[13.140560150146541,51.61351013183588],[13.156909942626953,51.5726203918457],[13.226419448852653,51.512451171875],[13.200678825378532,51.472179412841854],[13.233359336853084,51.39775848388683],[13.330400466918887,51.42581176757824],[13.444268226623535,51.43135070800775],[13.54295921325695,51.381359100341854],[13.761530876159666,51.36215209960937],[13.85781955718994,51.38259887695318],[13.928709983825684,51.381031036377],[13.971598625183162,51.39891052246105],[14.015210151672306,51.37430191040045],[14.080458641052358,51.44773864746105],[14.122911453247013,51.5244712829591],[14.147539138793944,51.541671752929744],[14.286419868469352,51.52983093261719],[14.337259292602653,51.51226043701172],[14.458319664001577,51.55138015747081],[14.676649093628042,51.558349609375114],[14.710829734802358,51.58467864990245],[14.731350898742733,51.52822113037121],[14.828398704528809,51.50131225585949],[14.910359382629395,51.49319076538097],[14.963753700256404,51.45354461669921],[14.966798782348688,51.36339569091808],[15.033869743347111,51.295089721679744],[15.038112640380858,51.24029922485362],[15.005451202392692,51.21169662475597],[14.977331161499025,51.07943725585949],[14.933150291442926,51.02767944335943],[14.899223327636776,50.94928741455084],[14.820368766784723,50.89197158813482],[14.82346153259283,50.86433792114269],[14.7782506942749,50.82465362548828],[14.642418861389274,50.84740066528331],[14.606470108032227,50.86211013793939],[14.626298904418947,50.89878082275402],[14.565681457519586,50.93638610839855],[14.595055580139217,50.98851013183593],[14.533839225769041,51.01417922973632],[14.448800086975211,51.03070068359381],[14.409878730773926,51.008609771728516],[14.351578712463322,51.03015136718756],[14.263107299804688,51.01636123657238],[14.258379936218262,50.97280883789074],[14.400946617126465,50.94234848022472],[14.37226867675787,50.888580322265625],[14.294939994812125,50.87480163574219],[14.254519462585561,50.88637924194336],[14.21785926818859,50.85092926025401],[14.041428565978947,50.804660797119254],[13.983920097351074,50.810150146484375],[13.935900688171442,50.78213119506847],[13.89546871185297,50.78346633911144],[13.856819152832031,50.721721649169865],[13.652745246887264,50.733047485351676],[13.620046615600584,50.71299362182617],[13.548975944519157,50.713214874267635],[13.525968551635856,50.63554000854492],[13.46564865112316,50.60393142700201],[13.37684154510498,50.627235412597656],[13.284665107727164,50.57914352416998],[13.248618125915584,50.59226989746105],[13.195990562439022,50.50059127807623],[13.091371536254996,50.49878692626959],[13.033267021179142,50.508548736572266],[13.028186798095701,50.44935989379877],[12.935789108276424,50.40698623657238],[12.843469619750975,50.4550895690918],[12.761409759521541,50.440425872802734],[12.706069946289006,50.4089813232423],[12.516113281249943,50.40008544921875],[12.493091583252067,50.349159240722656],[12.406117439270133,50.320255279541016],[12.409830093383846,50.29790878295893],[12.35857677459728,50.26696014404297],[12.321889877319277,50.18358993530279],[12.282715797424316,50.18267822265625],[12.273498535156193,50.23492431640624],[12.194885253906364,50.279113769531364],[12.194091796875114,50.32287597656256],[12.125018119812012,50.313156127929744],[12.065270423889158,50.33790969848644],[11.975892066955623,50.35607910156256],[11.983886718750057,50.39349365234381],[11.927703857421875,50.42685699462896],[11.922912597656191,50.45648193359386],[11.971313476562614,50.49029541015625],[11.890838623046989,50.557010650634815],[11.932495117187498,50.56091308593756],[11.95727634429926,50.60192871093756],[12.034618377685547,50.60200881958008],[12.03888034820568,50.55749511718756],[12.13488674163824,50.579895019531364],[12.221497535705566,50.64702224731445],[12.281126976013184,50.6397094726563],[12.33747863769537,50.68809127807622],[12.28943920135498,50.69549942016607],[12.242568969726676,50.74710845947271],[12.255799293518066,50.81661987304682],[12.362768173217773,50.830051422119254],[12.392770767211914,50.85520935058594],[12.45154953002924,50.84682846069347],[12.500049591064453,50.8973121643067],[12.612439155578668,50.90625000000011],[12.666169166564998,50.92364883422857],[12.632898330688477,50.986862182617244],[12.55032062530529,50.999340057373104],[12.51662826538086,51.06608200073248],[12.3450088500976,51.10528182983409],[12.29712009429943,51.09484100341808],[12.231939315795955,51.11392974853527],[12.208699226379451,51.14356994628906],[12.221497535705566,51.18386077880864],[12.204987525940055,51.2502212524414],[12.158598899841422,51.3205909729005],[12.200760841369686,51.331180572509766],[12.183770179748592,51.375530242920036],[12.191019058227539,51.4306907653808],[12.167498588562124,51.45304107666027],[12.216580390930119,51.49673080444336],[12.199160575866811,51.52273178100591],[12.242150306701717,51.55913162231451],[12.302309989929311,51.558441162109375],[12.357259750366268,51.58729934692383],[12.435400009155273,51.5826416015625],[12.442049980163572,51.60470199584961],[12.544399261474721,51.60338211059576],[12.677779197692985,51.63113021850597],[12.696819305419863,51.660419464111385],[12.786640167236442,51.64440917968744],[12.860198974609318,51.680339813232536],[12.925069808960018,51.64247894287121],[13.016320228576717,51.667060852050895],[13.063730239868278,51.64789962768566]]]},"properties":{"ID_0":86,"ISO":"DE-SN","NAME_0":"Germany","ID_1":14,"NAME_1":"Sachsen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Saxony"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[11.069721221923826,54.534702301025334],[11.17138862609869,54.521526336670036],[11.243056297302303,54.49347305297862],[11.31360912322998,54.40208435058594],[11.245278358459473,54.41208267211914],[11.175276756286621,54.400970458984375],[11.097498893737736,54.41374969482422],[11.096944808960075,54.44374847412114],[11.006944656372125,54.44291687011719],[11.011388778686522,54.48485946655279],[11.069721221923826,54.534702301025334]]],[[[8.691945075988883,54.557083129882926],[8.67861175537115,54.49874877929682],[8.621945381164664,54.489307403564396],[8.592498779296818,54.53347396850591],[8.691945075988883,54.557083129882926]]],[[[8.356944084167537,54.71152877807617],[8.339165687561092,54.6893043518067],[8.395278930664006,54.612083435058594],[8.36250019073492,54.60847091674816],[8.291945457458494,54.67041778564447],[8.356944084167537,54.71152877807617]]],[[[8.539723396301326,54.755695343017635],[8.595276832580623,54.717918395996094],[8.566943168640194,54.67986297607427],[8.480277061462516,54.68097305297863],[8.399167060852164,54.70208358764654],[8.42138767242443,54.74319458007818],[8.539723396301326,54.755695343017635]]],[[[10.89471817016613,53.95597076416015],[10.887930870056266,53.920150756835994],[10.773878097534123,53.881019592285156],[10.762510299682617,53.829288482666065],[10.769919395446777,53.75511932373047],[10.852029800415039,53.70563888549805],[10.921190261840934,53.70045852661132],[10.95374965667736,53.651401519775504],[10.911029815673828,53.574481964111385],[10.82373046875,53.56175994873052],[10.818040847778263,53.524841308593864],[10.69486045837408,53.46443176269531],[10.63937854766857,53.4650993347168],[10.621770858764704,53.39173889160156],[10.597419738769588,53.37364959716797],[10.506809234619084,53.38425064086914],[10.391718864441032,53.43540191650384],[10.319178581237848,53.44248962402344],[10.246680259704704,53.4938316345216],[10.219569206237793,53.530601501464844],[10.168158531188965,53.534091949463004],[10.15961933135992,53.589401245117244],[10.210621833801211,53.59326171875006],[10.228058815002555,53.63389205932617],[10.18179035186779,53.67800903320324],[10.173889160156193,53.71858215332037],[10.084019660949707,53.72935104370123],[10.072678565979004,53.68870925903325],[10.002109527588004,53.69211959838872],[9.990429878234918,53.658859252929744],[9.919628143310604,53.66593170166021],[9.850890159607047,53.60655212402344],[9.78622817993164,53.620971679687614],[9.72939968109142,53.59474945068365],[9.723658561706541,53.569000244140675],[9.67358016967779,53.57526016235362],[9.547169685363826,53.624309539795036],[9.507008552551213,53.7008514404298],[9.40497016906744,53.75769042968761],[9.358848571777457,53.82297897338873],[9.288209915161133,53.8694114685058],[9.199728965759391,53.886032104492244],[9.09638881683344,53.88398361206055],[9.05138874053955,53.89902877807617],[8.971945762634334,53.89236068725586],[8.914723396301383,53.9254150390625],[8.82694530487072,54.02569580078136],[8.878056526184139,54.046249389648494],[8.96805477142334,54.036529541015675],[8.985832214355469,54.061248779296875],[8.927499771118164,54.131805419921875],[8.869722366333008,54.12347412109381],[8.80749893188488,54.175140380859375],[8.84638786315918,54.26486206054699],[8.740278244018498,54.2901382446289],[8.678055763244686,54.26819610595703],[8.579722404480037,54.308193206787166],[8.675276756286621,54.36680603027344],[8.670832633972168,54.400695800781364],[8.811945915222168,54.412918090820256],[8.855277061462516,54.40319442749029],[8.917498588562069,54.4243049621582],[9.012499809265194,54.49041748046874],[8.989167213439998,54.51930618286133],[8.893054962158201,54.45875167846691],[8.806388854980526,54.47041702270502],[8.809166908264274,54.50013732910156],[8.870278358459473,54.52652740478521],[8.876943588256891,54.60013961791992],[8.815278053283803,54.652915954589844],[8.7547225952149,54.68097305297863],[8.68027782440197,54.78569412231456],[8.60527801513666,54.84125137329101],[8.590276718139704,54.885139465332145],[8.513610839843807,54.88263702392584],[8.45194530487072,54.85708236694336],[8.40361118316656,54.84819412231451],[8.365832328796387,54.87541580200195],[8.290833473205566,54.88986206054693],[8.31027793884283,54.93152618408197],[8.39416599273676,55.049026489257756],[8.439166069030875,55.01847076416027],[8.353609085083008,54.96847152709961],[8.36250019073492,54.908748626708984],[8.461388587951717,54.8768043518067],[8.521388053894157,54.88402938842779],[8.588054656982422,54.88597106933594],[8.638048171997127,54.912872314453125],[8.731049537658691,54.895195007324276],[8.812039375305233,54.916736602783146],[8.850448608398494,54.89314651489258],[8.97505187988287,54.900577545166016],[9.047170639038027,54.86909866333008],[9.143150329589787,54.87075042724609],[9.242171287536621,54.8488655090332],[9.282591819763182,54.80223464965826],[9.340627670288143,54.80762100219738],[9.38758468627924,54.83833694458019],[9.428054809570426,54.814861297607536],[9.589722633361816,54.846805572509766],[9.62472152709961,54.83124923706066],[9.795278549194336,54.78985977172863],[9.851388931274355,54.75430679321289],[9.956945419311637,54.77902603149408],[9.994721412658748,54.68875122070312],[10.03250026702892,54.66013717651373],[10.027500152587834,54.550415039062614],[9.9669446945191,54.50347137451183],[9.84083366394043,54.46569442749023],[9.865834236145018,54.44736099243164],[10.023612022399902,54.47541809082037],[10.135833740234432,54.48402786254882],[10.193610191345272,54.4562492370606],[10.188611984252987,54.39208221435558],[10.142499923706167,54.35874938964838],[10.175276756286678,54.33874893188482],[10.215833663940428,54.404304504394645],[10.331944465637207,54.43569564819347],[10.390832901000977,54.42569351196295],[10.48750019073492,54.38874816894531],[10.603610992431697,54.362640380859425],[10.683056831359977,54.31041717529302],[10.786390304565487,54.31097412109381],[10.870832443237303,54.35819625854497],[10.94861030578619,54.38458251953131],[11.072499275207633,54.34458160400402],[11.093610763549805,54.19985961914057],[10.953611373901367,54.140415191650504],[10.890831947326774,54.09430694580084],[10.80138874053955,54.08986282348644],[10.750278472900447,54.03847122192383],[10.785278320312557,53.99736022949219],[10.875832557678223,53.987915039062614],[10.89471817016613,53.95597076416015]]]]},"properties":{"ID_0":86,"ISO":"DE-SH","NAME_0":"Germany","ID_1":15,"NAME_1":"Schleswig-Holstein","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.29712009429943,51.09484100341808],[12.3450088500976,51.10528182983409],[12.51662826538086,51.06608200073248],[12.55032062530529,50.999340057373104],[12.632898330688477,50.986862182617244],[12.666169166564998,50.92364883422857],[12.612439155578668,50.90625000000011],[12.500049591064453,50.8973121643067],[12.45154953002924,50.84682846069347],[12.392770767211914,50.85520935058594],[12.362768173217773,50.830051422119254],[12.255799293518066,50.81661987304682],[12.242568969726676,50.74710845947271],[12.28943920135498,50.69549942016607],[12.33747863769537,50.68809127807622],[12.281126976013184,50.6397094726563],[12.221497535705566,50.64702224731445],[12.13488674163824,50.579895019531364],[12.03888034820568,50.55749511718756],[12.034618377685547,50.60200881958008],[11.95727634429926,50.60192871093756],[11.932495117187498,50.56091308593756],[11.890838623046989,50.557010650634815],[11.971313476562614,50.49029541015625],[11.922912597656191,50.45648193359386],[11.927703857421875,50.42685699462896],[11.827100753784293,50.39291000366211],[11.787029266357365,50.422641754150504],[11.698430061340389,50.39630889892584],[11.622029304504508,50.38867950439459],[11.592958450317496,50.40353012084972],[11.533889770507812,50.381019592285156],[11.417508125305233,50.451450347900334],[11.43009090423584,50.51472091674816],[11.371511459350586,50.52196121215826],[11.32425975799572,50.48833084106445],[11.248118400573844,50.47689056396495],[11.27088928222662,50.41751098632818],[11.245929718017578,50.26517868041998],[11.15938854217535,50.32051849365228],[11.113239288330135,50.36489868164074],[11.038508415222282,50.34236145019537],[10.934719085693416,50.390232086181584],[10.831380844116268,50.38624954223633],[10.75701045989996,50.35641860961925],[10.723039627075309,50.32294845581055],[10.809300422668569,50.274822235107536],[10.734579086303825,50.20732879638677],[10.617910385131836,50.22182083129882],[10.611628532409725,50.28913116455084],[10.581978797912654,50.33020019531261],[10.49367046356201,50.35243988037115],[10.45805835723877,50.40090942382818],[10.416999816894586,50.393390655517635],[10.328149795532283,50.49032211303722],[10.292880058288631,50.49404907226574],[10.204319953918398,50.553798675537166],[10.098520278930721,50.54988861083989],[10.039758682251033,50.51588058471691],[10.063029289245662,50.55731201171881],[10.03817081451416,50.61396026611334],[10.086059570312557,50.63238143920904],[10.048980712890623,50.67726135253912],[9.951470375061149,50.67092132568359],[9.946098327636832,50.6301002502442],[9.884748458862305,50.638359069824276],[9.873539924621696,50.6746711730957],[9.915069580078125,50.69692993164068],[9.93896007537836,50.73741912841808],[9.926839828491154,50.77061080932617],[9.950229644775504,50.8223991394044],[9.998019218444881,50.82971191406256],[10.062809944152775,50.89242172241222],[10.014289855957031,50.93717193603515],[10.042918205261174,51.01494216918945],[10.197978973388786,50.999240875244084],[10.203298568725643,51.04370880126959],[10.149688720703125,51.05513000488287],[10.237089157104549,51.18072891235357],[10.195248603820858,51.20320892333996],[10.075889587402344,51.22618103027344],[10.027479171752985,51.27843093872082],[9.949359893798828,51.304889678955135],[9.93714809417719,51.37919998168945],[10.025360107421875,51.41965103149414],[10.17324829101568,51.44480133056646],[10.338228225708065,51.51441955566412],[10.384880065917969,51.55894088745123],[10.443818092346191,51.58860015869146],[10.52212905883789,51.55052185058605],[10.640660285949764,51.58024978637695],[10.63994026184082,51.61925888061529],[10.705129623413143,51.64355087280267],[10.861859321594238,51.63322067260753],[10.903529167175293,51.59206008911132],[10.897368431091309,51.55461883544922],[10.962779998779354,51.49143218994135],[10.992289543151912,51.4169807434082],[11.07571983337408,51.42858886718756],[11.147039413452205,51.402809143066406],[11.254289627075195,51.39945220947277],[11.39778041839611,51.38454055786132],[11.426947593689079,51.32519149780285],[11.480478286743164,51.29914855957042],[11.419919967651367,51.24729919433588],[11.472960472106877,51.19165039062499],[11.454509735107477,51.14707183837896],[11.489728927612305,51.102561950683594],[11.645148277282829,51.11373901367199],[11.704259872436637,51.072948455810604],[11.763709068298397,51.050651550292905],[11.883781433105582,51.06132888793951],[11.984869003295842,51.02033996582031],[12.043869018554686,50.97587203979498],[12.193419456481934,50.98212051391601],[12.252470016479435,50.95586013793951],[12.30749034881603,51.02495956420909],[12.272410392761174,51.054729461670036],[12.29712009429943,51.09484100341808]]]},"properties":{"ID_0":86,"ISO":"DE-TH","NAME_0":"Germany","ID_1":16,"NAME_1":"Thüringen","TYPE_1":"Land","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Thuringia"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/italy.geojson b/superset/assets/visualizations/countries/italy.geojson new file mode 100644 index 0000000000000..1cd4300a852ca --- /dev/null +++ b/superset/assets/visualizations/countries/italy.geojson @@ -0,0 +1,112 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.779659271240178,42.07013702392578],[14.766695022583008,42.01905822753912],[14.72803688049322,42.00422286987305],[14.669513702392635,41.94760513305664],[14.664641380310115,41.91726684570324],[14.615122795105039,41.89016342163085],[14.57149696350109,41.82213592529291],[14.486200332641715,41.76062393188471],[14.446577072143612,41.83879470825207],[14.377553939819391,41.88090896606451],[14.285653114318904,41.909770965576115],[14.230606079101674,41.87806320190441],[14.184127807617188,41.90449142456055],[14.107146263122672,41.894332885742244],[14.082416534423885,42.019275665283196],[14.104935646057243,42.04895401000988],[14.086117744445913,42.0877037048341],[14.11581134796148,42.108158111572266],[14.130065917968862,42.15974426269531],[14.09697246551525,42.18688964843756],[14.118172645568848,42.22301483154308],[14.112801551818848,42.332992553710994],[14.15802383422863,42.418350219726676],[14.253912925720213,42.44513702392578],[14.410139083862362,42.36013793945324],[14.444305419921873,42.3106956481933],[14.511805534362905,42.249862670898494],[14.617360115051213,42.19985961914068],[14.717362403869743,42.17319488525396],[14.717914581298826,42.10569381713867],[14.779659271240178,42.07013702392578]]]},"properties":{"ID_0":112,"ISO":"IT-CH","NAME_0":"Italy","ID_1":1,"NAME_1":"Abruzzo","ID_2":1,"NAME_2":"Chieti","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.766159057617301,42.421115875244254],[13.808794021606445,42.333633422851676],[13.845229148864803,42.28205490112316],[13.809797286987418,42.24827957153331],[13.799041748046875,42.14995956420898],[13.91126537322998,42.14446640014654],[13.962904930114803,42.12570953369146],[14.010019302368162,42.074043273925895],[14.086117744445913,42.0877037048341],[14.104935646057243,42.04895401000988],[14.082416534423885,42.019275665283196],[14.107146263122672,41.894332885742244],[14.184127807617188,41.90449142456055],[14.230606079101674,41.87806320190441],[14.217757225036678,41.854736328125114],[14.148043632507381,41.828277587890625],[14.194854736328182,41.74899673461914],[14.070467948913517,41.738212585449155],[14.02006912231451,41.68334960937506],[13.941911697387695,41.68894958496105],[13.92059230804449,41.718223571777344],[13.750353813171444,41.7615585327149],[13.717392921447754,41.79837036132818],[13.66303730010992,41.812416076660156],[13.572714805603141,41.75527191162115],[13.522458076477108,41.77385711669933],[13.50530910491949,41.80253601074218],[13.408369064331053,41.83843994140631],[13.360740661621094,41.870368957519645],[13.384902000427244,41.90517807006847],[13.297176361084041,41.9495849609375],[13.14086055755621,42.016334533691406],[13.055448532104435,42.01735687255865],[13.01940631866455,42.075920104980526],[13.031460762023926,42.11637115478521],[13.087077140808105,42.14532089233409],[13.087980270385799,42.17885971069347],[13.184197425842342,42.15986251831055],[13.249697685241813,42.12840270996105],[13.306207656860352,42.13922882080084],[13.368479728698787,42.181034088134766],[13.32084178924572,42.23061752319336],[13.292931556701717,42.23339462280285],[13.229853630066032,42.28814697265625],[13.227374076843375,42.32030868530279],[13.154267311096248,42.3579673767091],[13.190119743347223,42.401191711425895],[13.117080688476676,42.44488525390619],[13.154969215393066,42.46330642700195],[13.178686141967773,42.51361083984375],[13.158268928527832,42.52869033813488],[13.192282676696776,42.58848953247076],[13.292169570922908,42.57151031494152],[13.3949241638183,42.59222793579095],[13.41058540344244,42.53916931152344],[13.525595664978141,42.45169830322277],[13.702491760253906,42.44522857666027],[13.766159057617301,42.421115875244254]]]},"properties":{"ID_0":112,"ISO":"IT-AQ","NAME_0":"Italy","ID_1":1,"NAME_1":"Abruzzo","ID_2":2,"NAME_2":"L'Aquila","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Aquila"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.145689010620059,42.53097152709972],[14.253912925720213,42.44513702392578],[14.15802383422863,42.418350219726676],[14.112801551818848,42.332992553710994],[14.118172645568848,42.22301483154308],[14.09697246551525,42.18688964843756],[14.130065917968862,42.15974426269531],[14.11581134796148,42.108158111572266],[14.086117744445913,42.0877037048341],[14.010019302368162,42.074043273925895],[13.962904930114803,42.12570953369146],[13.91126537322998,42.14446640014654],[13.799041748046875,42.14995956420898],[13.809797286987418,42.24827957153331],[13.845229148864803,42.28205490112316],[13.808794021606445,42.333633422851676],[13.766159057617301,42.421115875244254],[13.806940078735408,42.47715377807628],[13.885513305664118,42.51019668579113],[13.95304489135742,42.50611877441406],[13.990880966186523,42.542835235595696],[14.145689010620059,42.53097152709972]]]},"properties":{"ID_0":112,"ISO":"IT-PE","NAME_0":"Italy","ID_1":1,"NAME_1":"Abruzzo","ID_2":3,"NAME_2":"Pescara","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.915415763854924,42.89561080932623],[13.937640190124569,42.81624984741216],[13.997083663940542,42.704860687255916],[14.073472023010197,42.6029167175293],[14.145689010620059,42.53097152709972],[13.990880966186523,42.542835235595696],[13.95304489135742,42.50611877441406],[13.885513305664118,42.51019668579113],[13.806940078735408,42.47715377807628],[13.766159057617301,42.421115875244254],[13.702491760253906,42.44522857666027],[13.525595664978141,42.45169830322277],[13.41058540344244,42.53916931152344],[13.3949241638183,42.59222793579095],[13.409197807311953,42.643829345703125],[13.37022399902338,42.650699615478565],[13.34434795379633,42.70227813720709],[13.389723777771051,42.68826675415045],[13.453024864196777,42.73487472534191],[13.48971557617193,42.73463439941406],[13.530022621154899,42.796306610107365],[13.700037956237907,42.82348251342779],[13.723403930664176,42.85631179809576],[13.915415763854924,42.89561080932623]]]},"properties":{"ID_0":112,"ISO":"IT-TE","NAME_0":"Italy","ID_1":1,"NAME_1":"Abruzzo","ID_2":4,"NAME_2":"Teramo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[17.389303207397575,40.89299392700195],[17.340381622314506,40.86645126342768],[17.296070098876953,40.81816864013672],[17.366180419921875,40.787807464599666],[17.354406356811637,40.749568939208984],[17.305433273315426,40.744445800781364],[17.248729705810547,40.76694488525402],[17.1606826782226,40.74473571777344],[17.150299072265682,40.71173858642578],[17.059362411498967,40.72242355346691],[17.022338867187557,40.71490859985357],[16.971508026123104,40.742294311523494],[16.926740646362358,40.737808227539006],[16.912757873535156,40.70807266235357],[16.85749053955078,40.72467803955078],[16.800884246826172,40.695991516113395],[16.787738800048828,40.73365783691406],[16.72573471069336,40.71482467651361],[16.633630752563533,40.75455474853526],[16.576829910278377,40.76453018188482],[16.49689674377447,40.759273529052734],[16.431329727172965,40.70574569702154],[16.400974273681697,40.70839309692383],[16.24483680725092,40.83902359008789],[16.203292846679744,40.9185142517091],[16.252716064453182,40.9631614685058],[16.27492713928234,41.049552917480526],[16.352489471435547,41.13573837280285],[16.33858680725103,41.15243530273449],[16.401330947876033,41.189460754394474],[16.504671096801754,41.152313232421875],[16.54268455505371,41.22958374023437],[16.603195190429688,41.20347213745128],[17.045694351196403,41.080970764160156],[17.23736190795904,40.99291610717768],[17.305416107177734,40.95597076416027],[17.348749160766715,40.907360076904354],[17.389303207397575,40.89299392700195]]]},"properties":{"ID_0":112,"ISO":"IT-BA","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":5,"NAME_2":"Bari","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.025623321533256,41.425693511962834],[16.248193740844783,41.33402633666997],[16.344581604003906,41.3095817565918],[16.452362060546875,41.26041793823248],[16.54268455505371,41.22958374023437],[16.504671096801754,41.152313232421875],[16.401330947876033,41.189460754394474],[16.33858680725103,41.15243530273449],[16.352489471435547,41.13573837280285],[16.27492713928234,41.049552917480526],[16.252716064453182,40.9631614685058],[16.203292846679744,40.9185142517091],[16.163799285888786,40.92956161499034],[16.12212562561041,40.90022277832037],[16.09446716308605,40.92124938964855],[15.977461814880426,40.95943832397466],[16.032817840576172,40.999366760253906],[16.038827896118107,41.03986358642584],[15.954219818115236,41.11178970336913],[15.871091842651309,41.140903472900504],[15.927578926086426,41.18296813964855],[15.99244880676281,41.196380615234375],[16.02951622009283,41.251678466796875],[15.984242439270076,41.3056640625],[15.982767105102482,41.361763000488274],[16.035165786743274,41.37596130371105],[15.974295616149846,41.414951324463],[16.025623321533256,41.425693511962834]]]},"properties":{"ID_0":112,"ISO":"IT-BT","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":6,"NAME_2":"Barletta-Andria-Trani","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[17.389303207397575,40.89299392700195],[17.470415115356502,40.83347320556646],[17.55208396911621,40.80014038085949],[17.68847274780279,40.76569366455078],[17.841527938842887,40.6904182434082],[17.93874931335455,40.68569564819336],[18.045415878296012,40.59791564941412],[18.034860610962024,40.56819534301758],[18.096805572509822,40.51569366455084],[18.06988716125494,40.46140670776373],[17.954093933105582,40.45859909057623],[17.936416625976506,40.42934417724621],[17.82332801818859,40.40440368652338],[17.799119949340763,40.38063430786144],[17.694168090820256,40.41283035278332],[17.683427810669002,40.44174194335948],[17.62604713439947,40.463497161865234],[17.53359413146984,40.4480438232423],[17.48778915405279,40.4831428527832],[17.449100494384822,40.55591964721691],[17.47419166564947,40.61156082153326],[17.42780685424799,40.63460540771496],[17.41863441467285,40.68248367309575],[17.354406356811637,40.749568939208984],[17.366180419921875,40.787807464599666],[17.296070098876953,40.81816864013672],[17.340381622314506,40.86645126342768],[17.389303207397575,40.89299392700195]]]},"properties":{"ID_0":112,"ISO":"IT-BR","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":7,"NAME_2":"Brindisi","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.025623321533256,41.425693511962834],[15.974295616149846,41.414951324463],[16.035165786743274,41.37596130371105],[15.982767105102482,41.361763000488274],[15.984242439270076,41.3056640625],[16.02951622009283,41.251678466796875],[15.99244880676281,41.196380615234375],[15.927578926086426,41.18296813964855],[15.871091842651309,41.140903472900504],[15.806827545166016,41.112102508545036],[15.682644844055176,41.08720016479492],[15.618253707885799,41.10024642944347],[15.56483459472656,41.090389251708984],[15.543709754943848,41.05684280395508],[15.446956634521541,41.079006195068416],[15.397229194641229,41.107791900634766],[15.368302345275934,41.085861206054794],[15.26804637908947,41.107631683349666],[15.210206031799428,41.1686744689942],[15.258231163025014,41.198379516601676],[15.251250267028807,41.27143478393554],[15.201869964599668,41.28726196289074],[15.150016784667967,41.28142929077154],[15.129775047302246,41.31078338623047],[15.073053359985408,41.333438873291016],[15.059313774108885,41.373111724853516],[15.09964561462408,41.43475341796869],[15.03331184387207,41.45367050170909],[15.008489608764705,41.48736572265636],[14.941324234008903,41.52459335327154],[14.960845947265682,41.64701080322276],[15.023566246032772,41.622829437255916],[15.049173355102539,41.65649414062506],[15.101681709289549,41.67280960083013],[15.122014045715444,41.721210479736385],[15.09823226928711,41.76690673828131],[15.115994453430174,41.79053115844738],[15.10453414916992,41.84770965576172],[15.139669418334961,41.880249023437614],[15.137508392333986,41.92625045776373],[15.344305992126406,41.915416717529354],[15.43097305297863,41.900970458984375],[15.623748779296816,41.927639007568416],[15.675972938537653,41.91485977172857],[15.757361412048397,41.91652679443371],[15.930693626403864,41.933750152588004],[16.011249542236328,41.950695037841854],[16.08458328247076,41.94097137451172],[16.166248321533317,41.88735961914057],[16.192638397216793,41.836250305175724],[16.189582824707088,41.7745819091798],[16.122638702392575,41.73875045776367],[16.06541633605957,41.693195343017635],[15.946526527404783,41.64402770996094],[15.900695800781193,41.61597061157232],[15.899862289428823,41.53652954101568],[15.938471794128473,41.47735977172863],[16.025623321533256,41.425693511962834]]]},"properties":{"ID_0":112,"ISO":"IT-FG","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":8,"NAME_2":"Foggia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[18.096805572509822,40.51569366455084],[18.12763977050787,40.49236297607422],[18.201528549194336,40.46902847290039],[18.251806259155387,40.434028625488274],[18.334304809570312,40.35652923583979],[18.424028396606445,40.29430389404308],[18.46486091613769,40.221527099609375],[18.464305877685547,40.1926383972168],[18.51736068725586,40.134304046630916],[18.52069473266613,40.10791778564458],[18.477916717529354,40.048751831054744],[18.434860229492188,40.02347183227539],[18.403192520141545,39.96152877807623],[18.391527175903434,39.818519592285156],[18.333749771118107,39.79513931274414],[18.257638931274528,39.83625030517578],[18.210138320922965,39.837917327880916],[18.0456943511964,39.92958450317383],[18.012081146240234,39.97208404541021],[18.017084121704215,40.034305572509766],[17.983749389648438,40.054584503173885],[18.010971069336048,40.10708236694347],[17.925138473510742,40.183471679687614],[17.907917022705078,40.25152587890631],[17.863470077514762,40.28208160400402],[17.76347160339361,40.29472351074213],[17.792825698852482,40.33770751953125],[17.799119949340763,40.38063430786144],[17.82332801818859,40.40440368652338],[17.936416625976506,40.42934417724621],[17.954093933105582,40.45859909057623],[18.06988716125494,40.46140670776373],[18.096805572509822,40.51569366455084]]]},"properties":{"ID_0":112,"ISO":"IT-LE","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":9,"NAME_2":"Lecce","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[17.354406356811637,40.749568939208984],[17.41863441467285,40.68248367309575],[17.42780685424799,40.63460540771496],[17.47419166564947,40.61156082153326],[17.449100494384822,40.55591964721691],[17.48778915405279,40.4831428527832],[17.53359413146984,40.4480438232423],[17.62604713439947,40.463497161865234],[17.683427810669002,40.44174194335948],[17.694168090820256,40.41283035278332],[17.799119949340763,40.38063430786144],[17.792825698852482,40.33770751953125],[17.76347160339361,40.29472351074213],[17.660419464111385,40.30430603027344],[17.505416870117184,40.294860839843864],[17.44902992248541,40.32791519165045],[17.39347267150879,40.332916259765625],[17.230693817138725,40.40152740478527],[17.251249313354432,40.449859619140625],[17.129304885864258,40.517639160156364],[17.020416259765682,40.505973815918026],[16.948196411132926,40.46986007690441],[16.867361068725586,40.399070739746094],[16.810197830200195,40.434066772460994],[16.793422698974553,40.46294784545904],[16.736410140991325,40.46891784667968],[16.73789024353033,40.50482177734381],[16.70650863647461,40.55118179321289],[16.72479438781744,40.603435516357365],[16.710580825805778,40.63382339477538],[16.72573471069336,40.71482467651361],[16.787738800048828,40.73365783691406],[16.800884246826172,40.695991516113395],[16.85749053955078,40.72467803955078],[16.912757873535156,40.70807266235357],[16.926740646362358,40.737808227539006],[16.971508026123104,40.742294311523494],[17.022338867187557,40.71490859985357],[17.059362411498967,40.72242355346691],[17.150299072265682,40.71173858642578],[17.1606826782226,40.74473571777344],[17.248729705810547,40.76694488525402],[17.305433273315426,40.744445800781364],[17.354406356811637,40.749568939208984]]]},"properties":{"ID_0":112,"ISO":"IT-TA","NAME_0":"Italy","ID_1":2,"NAME_1":"Apulia","ID_2":10,"NAME_2":"Taranto","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Ionio|Tarent|Tarente"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.72573471069336,40.71482467651361],[16.710580825805778,40.63382339477538],[16.72479438781744,40.603435516357365],[16.70650863647461,40.55118179321289],[16.73789024353033,40.50482177734381],[16.736410140991325,40.46891784667968],[16.793422698974553,40.46294784545904],[16.810197830200195,40.434066772460994],[16.867361068725586,40.399070739746094],[16.78069496154791,40.29708480834972],[16.730972290039006,40.20264053344738],[16.690139770507756,40.14958190917963],[16.64536857604986,40.119583129882926],[16.58623504638672,40.13402175903332],[16.530830383300895,40.119091033935604],[16.45279884338379,40.135799407958984],[16.409763336181697,40.12195587158203],[16.399391174316463,40.0566520690918],[16.35133552551275,40.124301910400334],[16.39815330505371,40.16800689697271],[16.34942817687994,40.2063941955567],[16.376321792602596,40.27486801147466],[16.332704544067496,40.304557800293026],[16.310989379882812,40.274398803710994],[16.196304321289176,40.266391754150504],[16.175682067871207,40.339393615722656],[16.1070442199707,40.409652709960994],[16.14154624938959,40.45486831665038],[16.076513290405217,40.545639038085994],[16.117597579956108,40.57852935791027],[16.049053192138672,40.63656234741222],[16.056423187255803,40.656040191650504],[16.149700164794865,40.7041625976563],[16.1157169342041,40.76863479614258],[16.122261047363335,40.79710006713873],[16.24483680725092,40.83902359008789],[16.400974273681697,40.70839309692383],[16.431329727172965,40.70574569702154],[16.49689674377447,40.759273529052734],[16.576829910278377,40.76453018188482],[16.633630752563533,40.75455474853526],[16.72573471069336,40.71482467651361]]]},"properties":{"ID_0":112,"ISO":"IT-MT","NAME_0":"Italy","ID_1":3,"NAME_1":"Basilicata","ID_2":11,"NAME_2":"Matera","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.203292846679744,40.9185142517091],[16.24483680725092,40.83902359008789],[16.122261047363335,40.79710006713873],[16.1157169342041,40.76863479614258],[16.149700164794865,40.7041625976563],[16.056423187255803,40.656040191650504],[16.049053192138672,40.63656234741222],[16.117597579956108,40.57852935791027],[16.076513290405217,40.545639038085994],[16.14154624938959,40.45486831665038],[16.1070442199707,40.409652709960994],[16.175682067871207,40.339393615722656],[16.196304321289176,40.266391754150504],[16.310989379882812,40.274398803710994],[16.332704544067496,40.304557800293026],[16.376321792602596,40.27486801147466],[16.34942817687994,40.2063941955567],[16.39815330505371,40.16800689697271],[16.35133552551275,40.124301910400334],[16.399391174316463,40.0566520690918],[16.39923667907709,40.01996612548834],[16.338621139526367,39.937179565429744],[16.159427642822205,39.92107009887701],[16.083858489990345,39.8976211547851],[16.023445129394585,39.9246482849121],[15.980018615722768,39.983406066894645],[15.92884826660162,40.00207519531256],[15.898836135864203,39.98268890380854],[15.820881843567006,40.002876281738395],[15.75597286224365,39.92421340942394],[15.72180557250982,39.974582672119084],[15.645068168640192,40.04124832153325],[15.706657409668024,40.118736267089844],[15.713358879089412,40.17945098876958],[15.806197166442926,40.252410888671875],[15.795017242431696,40.28796386718756],[15.74999237060558,40.29973983764659],[15.709758758544979,40.337570190429744],[15.710953712463377,40.3782958984375],[15.603918075561523,40.435775756835994],[15.539670944213922,40.48905181884777],[15.546155929565487,40.53265380859381],[15.510969161987246,40.586738586425724],[15.452599525451715,40.61184310913086],[15.504422187805288,40.66393661499023],[15.429780006408803,40.69358444213873],[15.382322311401422,40.72513961791992],[15.386405944824274,40.79251861572277],[15.335826873779238,40.83586120605469],[15.379167556762752,40.84173965454107],[15.384810447692926,40.87731552124035],[15.52758979797369,40.90857315063488],[15.572869300842283,40.99986267089855],[15.543709754943848,41.05684280395508],[15.56483459472656,41.090389251708984],[15.618253707885799,41.10024642944347],[15.682644844055176,41.08720016479492],[15.806827545166016,41.112102508545036],[15.871091842651309,41.140903472900504],[15.954219818115236,41.11178970336913],[16.038827896118107,41.03986358642584],[16.032817840576172,40.999366760253906],[15.977461814880426,40.95943832397466],[16.09446716308605,40.92124938964855],[16.12212562561041,40.90022277832037],[16.163799285888786,40.92956161499034],[16.203292846679744,40.9185142517091]]]},"properties":{"ID_0":112,"ISO":"IT-PZ","NAME_0":"Italy","ID_1":3,"NAME_1":"Basilicata","ID_2":12,"NAME_2":"Potenza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.891441345214844,38.928195953369254],[16.777082443237248,38.89652633667003],[16.604583740234432,38.81291580200201],[16.537639617920036,38.72236251831066],[16.572639465332145,38.568195343017635],[16.582359313964957,38.47061920166021],[16.538009643554688,38.46735000610362],[16.480953216552848,38.49317169189458],[16.42063140869135,38.555007934570426],[16.42951583862299,38.58431625366205],[16.329961776733512,38.64141464233404],[16.350797653198242,38.735687255859375],[16.34513473510748,38.795120239257926],[16.297014236450252,38.82233810424816],[16.215417861938587,38.81147384643549],[16.221252441406307,38.911529541015625],[16.155416488647575,38.952362060546875],[16.095138549804744,39.04980087280279],[16.156719207763786,39.061851501464844],[16.251199722290096,39.10040283203125],[16.346326828002987,39.112121582031364],[16.383020401001033,39.10591506958019],[16.425207138061523,39.06277847290045],[16.481910705566406,39.06008148193371],[16.47992515563965,39.12331390380865],[16.536777496337947,39.14557266235357],[16.613822937011832,39.19525146484381],[16.666828155517575,39.15707397460943],[16.65895462036127,39.119949340820426],[16.734609603881836,39.05995941162109],[16.776813507080192,39.064994812011776],[16.846569061279354,39.039947509765625],[16.895288467407227,38.998748779296875],[16.921051025390682,38.95312881469732],[16.891441345214844,38.928195953369254]]]},"properties":{"ID_0":112,"ISO":"IT-CZ","NAME_0":"Italy","ID_1":4,"NAME_1":"Calabria","ID_2":13,"NAME_2":"Catanzaro","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.64536857604986,40.119583129882926],[16.609027862548825,40.08458328247082],[16.59958457946783,40.036529541015625],[16.63013839721691,39.96625137329101],[16.49374961853033,39.81291580200201],[16.491527557373047,39.75041580200207],[16.52819442749029,39.72486114501953],[16.52458381652843,39.65987014770502],[16.613750457763615,39.6223602294923],[16.781528472900444,39.614582061767635],[16.870695114135856,39.53597259521496],[16.975414276123047,39.49124908447271],[17.02402687072754,39.48283767700207],[16.958009719848633,39.438037872314396],[16.957363128662166,39.39823150634777],[16.835849761962947,39.346748352050895],[16.765047073364315,39.36260986328119],[16.707103729248104,39.32390213012701],[16.761844635009822,39.292900085449276],[16.747573852539062,39.24633407592785],[16.778921127319393,39.196941375732536],[16.681104660034293,39.206787109375],[16.613822937011832,39.19525146484381],[16.536777496337947,39.14557266235357],[16.47992515563965,39.12331390380865],[16.481910705566406,39.06008148193371],[16.425207138061523,39.06277847290045],[16.383020401001033,39.10591506958019],[16.346326828002987,39.112121582031364],[16.251199722290096,39.10040283203125],[16.156719207763786,39.061851501464844],[16.095138549804744,39.04980087280279],[16.066528320312557,39.13597106933605],[16.056804656982365,39.271526336669865],[16.035417556762695,39.35208511352539],[15.995416641235352,39.44374847412115],[15.923748970031738,39.52763748168957],[15.874305725097711,39.553195953369254],[15.80791664123535,39.737915039062614],[15.7859725952149,39.817081451416016],[15.779859542846793,39.89430618286133],[15.75597286224365,39.92421340942394],[15.820881843567006,40.002876281738395],[15.898836135864203,39.98268890380854],[15.92884826660162,40.00207519531256],[15.980018615722768,39.983406066894645],[16.023445129394585,39.9246482849121],[16.083858489990345,39.8976211547851],[16.159427642822205,39.92107009887701],[16.338621139526367,39.937179565429744],[16.39923667907709,40.01996612548834],[16.399391174316463,40.0566520690918],[16.409763336181697,40.12195587158203],[16.45279884338379,40.135799407958984],[16.530830383300895,40.119091033935604],[16.58623504638672,40.13402175903332],[16.64536857604986,40.119583129882926]]]},"properties":{"ID_0":112,"ISO":"IT-CS","NAME_0":"Italy","ID_1":4,"NAME_1":"Calabria","ID_2":14,"NAME_2":"Cosenza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[17.02402687072754,39.48283767700207],[17.05430412292486,39.43791580200195],[17.11847114562994,39.40541839599615],[17.13791847229004,39.37819290161133],[17.111249923705998,39.31735992431652],[17.105972290039062,39.25263977050787],[17.147361755371094,39.20624923706066],[17.115972518921012,39.14319610595709],[17.110971450805664,39.095973968505916],[17.172916412353572,39.03347396850597],[17.16958236694336,38.952640533447266],[17.113471984863338,38.90986251831066],[16.98430633544922,38.93791580200207],[16.891441345214844,38.928195953369254],[16.921051025390682,38.95312881469732],[16.895288467407227,38.998748779296875],[16.846569061279354,39.039947509765625],[16.776813507080192,39.064994812011776],[16.734609603881836,39.05995941162109],[16.65895462036127,39.119949340820426],[16.666828155517575,39.15707397460943],[16.613822937011832,39.19525146484381],[16.681104660034293,39.206787109375],[16.778921127319393,39.196941375732536],[16.747573852539062,39.24633407592785],[16.761844635009822,39.292900085449276],[16.707103729248104,39.32390213012701],[16.765047073364315,39.36260986328119],[16.835849761962947,39.346748352050895],[16.957363128662166,39.39823150634777],[16.958009719848633,39.438037872314396],[17.02402687072754,39.48283767700207]]]},"properties":{"ID_0":112,"ISO":"IT-KR","NAME_0":"Italy","ID_1":4,"NAME_1":"Calabria","ID_2":15,"NAME_2":"Crotone","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.42063140869135,38.555007934570426],[16.480953216552848,38.49317169189458],[16.538009643554688,38.46735000610362],[16.582359313964957,38.47061920166021],[16.567361831664982,38.42319488525402],[16.498472213745117,38.360416412353516],[16.4523601531983,38.334304809570426],[16.323749542236385,38.2940292358399],[16.1609725952149,38.13013839721691],[16.14486122131359,38.03263854980469],[16.100971221923885,37.95986175537115],[16.063474655151424,37.92402648925792],[15.995972633361873,37.91569519042963],[15.922917366027946,37.92958450317383],[15.76374912261974,37.91652679443365],[15.67847347259516,37.95375061035162],[15.638750076294,38.00152969360357],[15.654305458068846,38.03097152709972],[15.631249427795408,38.10319519042969],[15.656805038452205,38.13541793823248],[15.633193969726618,38.19124984741211],[15.635972023010199,38.23263931274414],[15.749305725097654,38.25708389282232],[15.795140266418398,38.280418395996094],[15.829305648803652,38.32402801513683],[15.882081985473633,38.430973052978516],[15.90236186981201,38.439025878906364],[15.920139312744197,38.50785446166992],[15.960882186889762,38.52667617797863],[16.00529289245611,38.517757415771484],[16.080799102783317,38.5631217956544],[16.1943035125733,38.498619079589844],[16.25432205200201,38.48540115356451],[16.268133163452205,38.44609832763683],[16.35367965698248,38.43177413940429],[16.392402648925724,38.449623107910156],[16.356039047241268,38.496585845947266],[16.350070953369197,38.538391113281364],[16.393669128418026,38.574832916259766],[16.42063140869135,38.555007934570426]]]},"properties":{"ID_0":112,"ISO":"IT-RC","NAME_0":"Italy","ID_1":4,"NAME_1":"Calabria","ID_2":16,"NAME_2":"Reggio Di Calabria","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Reggio Calabria|Reggio de Calabre"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.42063140869135,38.555007934570426],[16.393669128418026,38.574832916259766],[16.350070953369197,38.538391113281364],[16.356039047241268,38.496585845947266],[16.392402648925724,38.449623107910156],[16.35367965698248,38.43177413940429],[16.268133163452205,38.44609832763683],[16.25432205200201,38.48540115356451],[16.1943035125733,38.498619079589844],[16.080799102783317,38.5631217956544],[16.00529289245611,38.517757415771484],[15.960882186889762,38.52667617797863],[15.920139312744197,38.50785446166992],[15.932084083557186,38.5406951904298],[15.828472137451286,38.62597274780279],[15.852640151977653,38.66263961791998],[15.949304580688532,38.69180679321295],[15.986249923706168,38.723472595214844],[16.041805267333984,38.72763824462902],[16.10069465637207,38.711528778076115],[16.1848602294923,38.749584197998104],[16.215417861938587,38.81147384643549],[16.297014236450252,38.82233810424816],[16.34513473510748,38.795120239257926],[16.350797653198242,38.735687255859375],[16.329961776733512,38.64141464233404],[16.42951583862299,38.58431625366205],[16.42063140869135,38.555007934570426]]]},"properties":{"ID_0":112,"ISO":"IT-VV","NAME_0":"Italy","ID_1":4,"NAME_1":"Calabria","ID_2":17,"NAME_2":"Vibo Valentia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.543709754943848,41.05684280395508],[15.572869300842283,40.99986267089855],[15.52758979797369,40.90857315063488],[15.384810447692926,40.87731552124035],[15.379167556762752,40.84173965454107],[15.335826873779238,40.83586120605469],[15.296395301818904,40.839141845703125],[15.281505584716795,40.80052947998058],[15.240281105041559,40.7755012512207],[15.247925758361871,40.7186737060548],[15.167805671692006,40.708911895751896],[15.140432357788086,40.75787353515625],[14.919284820556639,40.802188873291016],[14.83513832092285,40.794521331787216],[14.745252609252987,40.8046760559082],[14.73508071899414,40.8405151367188],[14.667650222778262,40.8234634399414],[14.606406211853027,40.84861755371087],[14.577985763549862,40.881591796875114],[14.586166381835936,40.93495941162115],[14.572798728942871,41.010513305664176],[14.595940589904785,41.057880401611385],[14.663005828857479,41.056636810302734],[14.830148696899357,41.03605270385742],[14.869752883911188,41.058689117431754],[14.975868225097654,41.09449768066406],[15.011713981628532,41.119083404541065],[14.962833404541074,41.17633819580078],[15.000146865844727,41.200962066650504],[14.981835365295469,41.26225662231445],[15.009923934936467,41.271938323974716],[15.12377262115484,41.25753402709966],[15.150016784667967,41.28142929077154],[15.201869964599668,41.28726196289074],[15.251250267028807,41.27143478393554],[15.258231163025014,41.198379516601676],[15.210206031799428,41.1686744689942],[15.26804637908947,41.107631683349666],[15.368302345275934,41.085861206054794],[15.397229194641229,41.107791900634766],[15.446956634521541,41.079006195068416],[15.543709754943848,41.05684280395508]]]},"properties":{"ID_0":112,"ISO":"IT-AV","NAME_0":"Italy","ID_1":5,"NAME_1":"Campania","ID_2":18,"NAME_2":"Avellino","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.150016784667967,41.28142929077154],[15.12377262115484,41.25753402709966],[15.009923934936467,41.271938323974716],[14.981835365295469,41.26225662231445],[15.000146865844727,41.200962066650504],[14.962833404541074,41.17633819580078],[15.011713981628532,41.119083404541065],[14.975868225097654,41.09449768066406],[14.869752883911188,41.058689117431754],[14.830148696899357,41.03605270385742],[14.663005828857479,41.056636810302734],[14.595940589904785,41.057880401611385],[14.572798728942871,41.010513305664176],[14.53203487396246,41.014343261718864],[14.508067131042479,41.0566864013673],[14.421057701110895,41.053474426269474],[14.437855720520131,41.09724044799799],[14.398022651672306,41.122409820556754],[14.467558860778809,41.1717262268067],[14.423304557800408,41.25215911865246],[14.454544067382756,41.29473495483404],[14.489974021911735,41.3016357421875],[14.457014083862305,41.37276458740229],[14.50485992431652,41.38511276245117],[14.603911399841309,41.364948272705135],[14.67231273651123,41.40762329101574],[14.718147277831974,41.401817321777344],[14.765568733215275,41.418354034423885],[14.791049957275504,41.453540802001896],[14.856516838073729,41.42568206787115],[15.008489608764705,41.48736572265636],[15.03331184387207,41.45367050170909],[15.09964561462408,41.43475341796869],[15.059313774108885,41.373111724853516],[15.073053359985408,41.333438873291016],[15.129775047302246,41.31078338623047],[15.150016784667967,41.28142929077154]]]},"properties":{"ID_0":112,"ISO":"IT-BN","NAME_0":"Italy","ID_1":5,"NAME_1":"Campania","ID_2":19,"NAME_2":"Benevento","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Bénévent"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.38335990905756,41.44424819946288],[14.456177711486875,41.42882156372076],[14.50485992431652,41.38511276245117],[14.457014083862305,41.37276458740229],[14.489974021911735,41.3016357421875],[14.454544067382756,41.29473495483404],[14.423304557800408,41.25215911865246],[14.467558860778809,41.1717262268067],[14.398022651672306,41.122409820556754],[14.437855720520131,41.09724044799799],[14.421057701110895,41.053474426269474],[14.508067131042479,41.0566864013673],[14.53203487396246,41.014343261718864],[14.52167606353771,40.988140106201115],[14.40569686889654,40.98708724975591],[14.298489570617676,41.005744934082145],[14.285353660583496,40.96129989624023],[14.157631874084473,40.95249557495117],[14.14115142822277,40.98014068603521],[14.018877029419002,40.948909759521484],[14.032361030578727,40.89967727661133],[13.977359771728572,40.97735977172857],[13.921527862548771,41.02486038208013],[13.895973205566461,41.09041595458996],[13.826249122619743,41.173751831054744],[13.76291656494152,41.22364807128906],[13.819704055786133,41.24679565429693],[13.828458786010856,41.27845001220709],[13.883223533630485,41.29193496704113],[13.874588012695312,41.33932113647461],[13.886704444885366,41.38644790649414],[13.863900184631348,41.41093063354498],[13.978795051574707,41.46347045898443],[14.006661415100154,41.45382690429682],[14.043269157409668,41.3937721252442],[14.108372688293514,41.41742324829107],[14.079253196716365,41.44807052612305],[14.126154899597282,41.50835418701183],[14.168185234069824,41.49540710449213],[14.242506980896053,41.49765014648449],[14.328041076660272,41.454425811767635],[14.38335990905756,41.44424819946288]]]},"properties":{"ID_0":112,"ISO":"IT-CE","NAME_0":"Italy","ID_1":5,"NAME_1":"Campania","ID_2":20,"NAME_2":"Caserta","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Caserte"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[13.871805191040096,40.7618064880371],[13.954029083251953,40.74235916137701],[13.965417861938477,40.71208190917969],[13.872638702392635,40.69680404663091],[13.853749275207575,40.73708343505859],[13.871805191040096,40.7618064880371]]],[[[14.606406211853027,40.84861755371087],[14.588993072509822,40.80659866333008],[14.507883071899471,40.77396774291992],[14.58075141906744,40.71057891845703],[14.556047439575309,40.668937683105575],[14.577222824096737,40.628292083740234],[14.470694541931266,40.62071990966796],[14.323193550109975,40.570137023925895],[14.339304924011286,40.62458419799816],[14.399862289428768,40.6381950378418],[14.480416297912656,40.70902633666998],[14.45402812957775,40.75013732910162],[14.414029121398867,40.75152969360357],[14.295415878295842,40.83597183227539],[14.231804847717283,40.83208465576172],[14.185972213745117,40.79152679443365],[14.1620836257934,40.81569290161144],[14.082360267639217,40.828472137451286],[14.047083854675293,40.85775756835949],[14.032361030578727,40.89967727661133],[14.018877029419002,40.948909759521484],[14.14115142822277,40.98014068603521],[14.157631874084473,40.95249557495117],[14.285353660583496,40.96129989624023],[14.298489570617676,41.005744934082145],[14.40569686889654,40.98708724975591],[14.52167606353771,40.988140106201115],[14.53203487396246,41.014343261718864],[14.572798728942871,41.010513305664176],[14.586166381835936,40.93495941162115],[14.577985763549862,40.881591796875114],[14.606406211853027,40.84861755371087]]]]},"properties":{"ID_0":112,"ISO":"IT-NA","NAME_0":"Italy","ID_1":5,"NAME_1":"Campania","ID_2":21,"NAME_2":"Napoli","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Napels|Nápoles|Neapel"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.335826873779238,40.83586120605469],[15.386405944824274,40.79251861572277],[15.382322311401422,40.72513961791992],[15.429780006408803,40.69358444213873],[15.504422187805288,40.66393661499023],[15.452599525451715,40.61184310913086],[15.510969161987246,40.586738586425724],[15.546155929565487,40.53265380859381],[15.539670944213922,40.48905181884777],[15.603918075561523,40.435775756835994],[15.710953712463377,40.3782958984375],[15.709758758544979,40.337570190429744],[15.74999237060558,40.29973983764659],[15.795017242431696,40.28796386718756],[15.806197166442926,40.252410888671875],[15.713358879089412,40.17945098876958],[15.706657409668024,40.118736267089844],[15.645068168640192,40.04124832153325],[15.574583053588924,40.078193664550895],[15.503472328186033,40.06375122070307],[15.421250343322752,39.99208450317394],[15.344028472900332,40.004585266113395],[15.28458404541027,40.034027099609375],[15.272083282470817,40.07374954223644],[15.118194580078182,40.17680740356445],[15.064861297607422,40.16458511352539],[14.992637634277344,40.2176399230957],[14.915971755981387,40.2370834350587],[14.94513797760004,40.280139923095646],[14.944581985473576,40.335971832275504],[14.999029159546012,40.35847091674815],[14.984582901001032,40.42430496215832],[14.908749580383414,40.54586410522461],[14.824584007263184,40.64014053344732],[14.759025573730469,40.67736053466797],[14.692917823791559,40.63402938842779],[14.637639999389647,40.64875030517578],[14.575972557067983,40.616806030273494],[14.524026870727482,40.60764312744146],[14.470694541931266,40.62071990966796],[14.577222824096737,40.628292083740234],[14.556047439575309,40.668937683105575],[14.58075141906744,40.71057891845703],[14.507883071899471,40.77396774291992],[14.588993072509822,40.80659866333008],[14.606406211853027,40.84861755371087],[14.667650222778262,40.8234634399414],[14.73508071899414,40.8405151367188],[14.745252609252987,40.8046760559082],[14.83513832092285,40.794521331787216],[14.919284820556639,40.802188873291016],[15.140432357788086,40.75787353515625],[15.167805671692006,40.708911895751896],[15.247925758361871,40.7186737060548],[15.240281105041559,40.7755012512207],[15.281505584716795,40.80052947998058],[15.296395301818904,40.839141845703125],[15.335826873779238,40.83586120605469]]]},"properties":{"ID_0":112,"ISO":"IT-SA","NAME_0":"Italy","ID_1":5,"NAME_1":"Campania","ID_2":22,"NAME_2":"Salerno","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Salerne"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.29433917999279,44.803741455078125],[11.247095108032282,44.759319305420036],[11.276430130004883,44.70651245117193],[11.359964370727539,44.77458572387707],[11.45280742645275,44.76161575317394],[11.593715667724666,44.712627410888615],[11.674986839294434,44.63319396972656],[11.729022979736442,44.6551513671875],[11.80127334594738,44.63545989990246],[11.790178298950307,44.555278778076165],[11.779670715331974,44.50445175170904],[11.799857139587516,44.46171951293951],[11.782316207885742,44.43720245361334],[11.83783340454107,44.41497421264654],[11.786947250366211,44.3489990234375],[11.709525108337402,44.29094314575195],[11.640927314758414,44.27468490600597],[11.579793930053711,44.233146667480526],[11.525937080383244,44.15861892700201],[11.448613166809139,44.20043563842779],[11.422061920166072,44.24018859863287],[11.381526947021428,44.20095062255871],[11.343493461609,44.20616149902344],[11.281703948974666,44.156291961669915],[11.20091342926031,44.1412239074707],[11.203396797180119,44.10168838500988],[11.160189628601188,44.11336898803711],[11.050428390503043,44.09119033813487],[11.002603530883844,44.1127815246582],[10.945720672607422,44.082633972168026],[10.849676132202148,44.09900283813488],[10.816032409668082,44.11658096313471],[10.824010848999137,44.18327713012707],[10.856199264526424,44.2083358764649],[10.908233642578125,44.20638656616222],[10.95815658569336,44.227054595947266],[10.967703819274846,44.30319213867199],[11.012989044189567,44.30053329467779],[11.041191101074219,44.33264541625988],[11.023368835449332,44.374057769775504],[11.049164772033805,44.417049407958984],[10.99766540527338,44.43048095703124],[11.048400878906193,44.46685409545904],[11.060085296630971,44.523170471191406],[11.151000022888127,44.58458328247081],[11.128792762756348,44.632293701171875],[11.079097747802791,44.64797592163086],[11.117997169494743,44.711376190185604],[11.130892753601074,44.78385162353526],[11.208846092224121,44.80523681640625],[11.29433917999279,44.803741455078125]]]},"properties":{"ID_0":112,"ISO":"IT-BO","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":23,"NAME_2":"Bologna","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Bologne|Bolonha|Bolonia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.398496627807672,44.7926406860351],[12.375417709350643,44.79958343505865],[12.309028625488281,44.841804504394645],[12.257361412048397,44.780139923095646],[12.240416526794546,44.68708419799805],[12.270415306091252,44.62950897216808],[12.238058090210018,44.62151336669933],[12.154755592346191,44.549381256103516],[12.029066085815543,44.561408996582145],[12.00079345703125,44.600948333740284],[11.790178298950307,44.555278778076165],[11.80127334594738,44.63545989990246],[11.729022979736442,44.6551513671875],[11.674986839294434,44.63319396972656],[11.593715667724666,44.712627410888615],[11.45280742645275,44.76161575317394],[11.359964370727539,44.77458572387707],[11.276430130004883,44.70651245117193],[11.247095108032282,44.759319305420036],[11.29433917999279,44.803741455078125],[11.312608718872013,44.82842636108398],[11.369589805603027,44.843608856201286],[11.348627090454213,44.8726921081543],[11.235746383667049,44.90690612792969],[11.247202873230094,44.952377319335994],[11.327499389648438,44.963172912597656],[11.427749633789176,44.95100784301769],[11.532971382141227,44.93776702880871],[11.625800132751465,44.890155792236435],[11.745738029480037,44.93804931640631],[11.80167484283447,44.976772308349716],[11.922171592712402,44.97557830810547],[11.963665962219181,44.987747192382926],[12.098981857299803,44.972396850585994],[12.141585350036678,44.92935562133789],[12.170125961303711,44.94300460815441],[12.225951194763297,44.923896789550774],[12.281847000122127,44.942684173583984],[12.287628173828125,44.87122344970697],[12.337293624878042,44.85315322875988],[12.358345031738395,44.814521789550895],[12.398496627807672,44.7926406860351]]]},"properties":{"ID_0":112,"ISO":"IT-FE","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":24,"NAME_2":"Ferrara","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Ferrare"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.383472442626953,44.22472763061518],[12.449031829834098,44.16289520263672],[12.454290390014647,44.11318588256836],[12.365197181701717,44.047771453857415],[12.396251678466795,44.031185150146484],[12.370384216308537,43.99071884155273],[12.323801994323787,43.961547851562614],[12.295721054077262,43.929141998291016],[12.169010162353628,43.89849472045904],[12.103829383850098,43.78923416137706],[12.108415603637695,43.75472640991222],[11.9874782562257,43.76287078857422],[11.948028564453182,43.791816711425895],[11.85702991485607,43.81684112548822],[11.711153984069824,43.8784065246582],[11.718013763427734,43.922771453857536],[11.646622657775879,43.99033355712896],[11.695893287658748,44.03629302978521],[11.753623008728084,44.12234115600586],[11.716867446899471,44.12350463867199],[11.72120666503912,44.15963363647472],[11.83035659790039,44.19990921020519],[11.889584541320858,44.17160034179682],[11.914959907531795,44.20925140380865],[11.978022575378475,44.25780487060558],[12.036561012268121,44.33174514770508],[12.104217529296932,44.272914886474666],[12.208239555358944,44.221405029296875],[12.281197547912598,44.234130859375114],[12.350291252136229,44.191673278808594],[12.383472442626953,44.22472763061518]]]},"properties":{"ID_0":112,"ISO":"IT-FC","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":25,"NAME_2":"Forli' - Cesena","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.247202873230094,44.952377319335994],[11.235746383667049,44.90690612792969],[11.348627090454213,44.8726921081543],[11.369589805603027,44.843608856201286],[11.312608718872013,44.82842636108398],[11.29433917999279,44.803741455078125],[11.208846092224121,44.80523681640625],[11.130892753601074,44.78385162353526],[11.117997169494743,44.711376190185604],[11.079097747802791,44.64797592163086],[11.128792762756348,44.632293701171875],[11.151000022888127,44.58458328247081],[11.060085296630971,44.523170471191406],[11.048400878906193,44.46685409545904],[10.99766540527338,44.43048095703124],[11.049164772033805,44.417049407958984],[11.023368835449332,44.374057769775504],[11.041191101074219,44.33264541625988],[11.012989044189567,44.30053329467779],[10.967703819274846,44.30319213867199],[10.95815658569336,44.227054595947266],[10.908233642578125,44.20638656616222],[10.856199264526424,44.2083358764649],[10.824010848999137,44.18327713012707],[10.816032409668082,44.11658096313471],[10.744303703308105,44.15737152099615],[10.642218589782772,44.16078567504894],[10.625062942504883,44.121318817138786],[10.525940895080623,44.15795898437505],[10.471135139465446,44.22700881958002],[10.52975082397461,44.35221481323248],[10.597932815551701,44.36476516723633],[10.671593666076658,44.470123291015625],[10.741660118103141,44.5107994079591],[10.767736434936637,44.543624877929744],[10.782977104186955,44.628707885742244],[10.81629657745367,44.657470703125],[10.80770397186285,44.69759750366211],[10.8160018920899,44.8081626892091],[10.888903617858944,44.915214538574276],[10.9423828125,44.922859191894645],[10.999081611633414,44.95579910278332],[11.074481964111328,44.9638786315918],[11.153441429138297,44.93420028686535],[11.247202873230094,44.952377319335994]]]},"properties":{"ID_0":112,"ISO":"IT-MO","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":26,"NAME_2":"Modena","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Modène|Módena"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.46503734588623,44.93811798095714],[10.505323410034123,44.92335510253906],[10.424197196960392,44.7962379455567],[10.446921348571834,44.72761917114263],[10.414879798889217,44.66490554809582],[10.403206825256348,44.56541442871105],[10.342500686645621,44.52536392211914],[10.333189010620174,44.48632049560541],[10.25566577911377,44.452655792236264],[10.206270217895565,44.3931503295899],[10.14304924011236,44.3548202514649],[10.100266456604118,44.34707641601557],[9.99030685424799,44.40528488159185],[10.007958412170353,44.43268585205089],[9.931945800781307,44.47271728515636],[9.820962905883844,44.46737670898449],[9.733101844787711,44.380332946777344],[9.687728881835938,44.36689758300792],[9.656318664550838,44.41261672973633],[9.560209274292106,44.43909072875988],[9.480068206787223,44.41021728515619],[9.459234237670955,44.4431610107423],[9.49783802032465,44.483684539795036],[9.49437141418457,44.556827545166016],[9.55101680755621,44.588954925537166],[9.625911712646541,44.65721893310541],[9.687694549560604,44.67605590820324],[9.766599655151479,44.68291854858398],[9.767000198364315,44.711288452148494],[9.820563316345329,44.76213836669922],[9.881691932678166,44.769630432128956],[9.883198738098145,44.8046112060548],[9.937941551208496,44.837760925293026],[9.987711906433162,44.84650421142584],[10.0120468139649,44.87701416015631],[9.988435745239315,44.93687820434582],[10.032053947448674,44.984775543213004],[10.046491622924805,45.030185699463004],[10.08450031280529,45.04490661621099],[10.107220649719352,45.02305984497076],[10.158750534057729,45.045005798339844],[10.255112648010368,45.019592285156364],[10.27460575103754,45.00009536743164],[10.366312026977596,44.96704483032238],[10.417797088623047,44.978576660156364],[10.46503734588623,44.93811798095714]]]},"properties":{"ID_0":112,"ISO":"IT-PR","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":27,"NAME_2":"Parma","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Parme"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.08450031280529,45.04490661621099],[10.046491622924805,45.030185699463004],[10.032053947448674,44.984775543213004],[9.988435745239315,44.93687820434582],[10.0120468139649,44.87701416015631],[9.987711906433162,44.84650421142584],[9.937941551208496,44.837760925293026],[9.883198738098145,44.8046112060548],[9.881691932678166,44.769630432128956],[9.820563316345329,44.76213836669922],[9.767000198364315,44.711288452148494],[9.766599655151479,44.68291854858398],[9.687694549560604,44.67605590820324],[9.625911712646541,44.65721893310541],[9.55101680755621,44.588954925537166],[9.49437141418457,44.556827545166016],[9.420500755310059,44.58097839355469],[9.34119033813488,44.579620361328125],[9.301450729370117,44.60872650146495],[9.20401668548584,44.614444732666016],[9.201375007629451,44.68735885620123],[9.29954433441162,44.68197250366211],[9.333622932434025,44.73599243164057],[9.286934852600211,44.76037979125982],[9.355232238769645,44.812812805175895],[9.342714309692326,44.87076187133789],[9.282065391540584,44.896984100341854],[9.34850883483898,44.99835586547851],[9.371857643127385,45.04909515380865],[9.440056800842342,45.094387054443416],[9.50251483917242,45.10450744628906],[9.549711227417106,45.133590698242244],[9.588491439819336,45.10057067871099],[9.713578224182186,45.05970764160156],[9.780000686645565,45.09052658081055],[9.883879661560115,45.07545089721679],[9.892103195190543,45.13183975219738],[9.993762016296387,45.13068771362316],[10.022352218628042,45.0781135559082],[10.08450031280529,45.04490661621099]]]},"properties":{"ID_0":112,"ISO":"IT-PC","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":28,"NAME_2":"Piacenza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Plaisance"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.270415306091252,44.62950897216808],[12.283194541931096,44.58430480957042],[12.288473129272575,44.46152877807622],[12.357084274292049,44.27069473266596],[12.383472442626953,44.22472763061518],[12.350291252136229,44.191673278808594],[12.281197547912598,44.234130859375114],[12.208239555358944,44.221405029296875],[12.104217529296932,44.272914886474666],[12.036561012268121,44.33174514770508],[11.978022575378475,44.25780487060558],[11.914959907531795,44.20925140380865],[11.889584541320858,44.17160034179682],[11.83035659790039,44.19990921020519],[11.72120666503912,44.15963363647472],[11.716867446899471,44.12350463867199],[11.653569221496582,44.101654052734375],[11.598278045654354,44.12610626220709],[11.611801147461051,44.16093444824219],[11.525937080383244,44.15861892700201],[11.579793930053711,44.233146667480526],[11.640927314758414,44.27468490600597],[11.709525108337402,44.29094314575195],[11.786947250366211,44.3489990234375],[11.83783340454107,44.41497421264654],[11.782316207885742,44.43720245361334],[11.799857139587516,44.46171951293951],[11.779670715331974,44.50445175170904],[11.790178298950307,44.555278778076165],[12.00079345703125,44.600948333740284],[12.029066085815543,44.561408996582145],[12.154755592346191,44.549381256103516],[12.238058090210018,44.62151336669933],[12.270415306091252,44.62950897216808]]]},"properties":{"ID_0":112,"ISO":"IT-RA","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":29,"NAME_2":"Ravenna","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"R vena|Ravenne"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.888903617858944,44.915214538574276],[10.8160018920899,44.8081626892091],[10.80770397186285,44.69759750366211],[10.81629657745367,44.657470703125],[10.782977104186955,44.628707885742244],[10.767736434936637,44.543624877929744],[10.741660118103141,44.5107994079591],[10.671593666076658,44.470123291015625],[10.597932815551701,44.36476516723633],[10.52975082397461,44.35221481323248],[10.471135139465446,44.22700881958002],[10.436733245849664,44.22718429565441],[10.372605323791618,44.27033233642584],[10.297784805297852,44.28692626953131],[10.254872322082463,44.26953506469738],[10.14304924011236,44.3548202514649],[10.206270217895565,44.3931503295899],[10.25566577911377,44.452655792236264],[10.333189010620174,44.48632049560541],[10.342500686645621,44.52536392211914],[10.403206825256348,44.56541442871105],[10.414879798889217,44.66490554809582],[10.446921348571834,44.72761917114263],[10.424197196960392,44.7962379455567],[10.505323410034123,44.92335510253906],[10.574359893798828,44.90999221801769],[10.628893852233887,44.92515182495117],[10.687696456909178,44.98752975463867],[10.73260402679449,44.99233245849604],[10.744734764099064,44.94998168945324],[10.888903617858944,44.915214538574276]]]},"properties":{"ID_0":112,"ISO":"IT-RE","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":30,"NAME_2":"Reggio Nell'Emilia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Reggio d'Émilie"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.752937316894588,43.968193054199276],[12.728857994079647,43.925125122070426],[12.723347663879508,43.86188125610357],[12.682270050048885,43.82901382446289],[12.624151229858512,43.823669433593864],[12.589990615844727,43.88645172119135],[12.565672874450627,43.88159942626959],[12.491944313049316,43.91547012329107],[12.513968467712516,43.94855499267584],[12.467239379882926,43.97867584228521],[12.404889106750488,43.94997406005854],[12.323801994323787,43.961547851562614],[12.370384216308537,43.99071884155273],[12.396251678466795,44.031185150146484],[12.365197181701717,44.047771453857415],[12.454290390014647,44.11318588256836],[12.449031829834098,44.16289520263672],[12.450972557067928,44.16309738159191],[12.451226234436149,44.16319274902355],[12.511528015136662,44.10874938964849],[12.577916145324764,44.07263946533203],[12.635139465332031,44.02236175537115],[12.717082977294922,43.97263717651367],[12.752937316894588,43.968193054199276]]]},"properties":{"ID_0":112,"ISO":"IT-RN","NAME_0":"Italy","ID_1":6,"NAME_1":"Emilia-Romagna","ID_2":31,"NAME_2":"Rimini","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.59959506988531,45.8269500732423],[13.58235168457031,45.779861450195426],[13.54708194732666,45.78652954101573],[13.517359733581543,45.74375152587896],[13.55069541931158,45.729862213134766],[13.432915687561092,45.68152618408203],[13.384029388427846,45.6748619079591],[13.380415916442928,45.72732162475597],[13.441251754760799,45.78657531738281],[13.425126075744743,45.86756134033214],[13.393145561218375,45.91421127319347],[13.46905040740978,45.997226715087834],[13.497014045715332,46.05178451538086],[13.479154586792049,45.992958068847656],[13.546760559082088,45.984031677246094],[13.61573505401617,45.995254516601555],[13.653307914733999,45.98366165161144],[13.593315124511776,45.861774444580185],[13.59959506988531,45.8269500732423]]]},"properties":{"ID_0":112,"ISO":"IT-GO","NAME_0":"Italy","ID_1":7,"NAME_1":"Friuli-Venezia Giulia","ID_2":32,"NAME_2":"Gorizia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Görz"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.98002147674572,45.83493804931646],[12.930473327636776,45.818248748779354],[12.862162590026799,45.85168075561535],[12.782838821411133,45.85485076904297],[12.729864120483342,45.83749389648437],[12.662639617920036,45.793327331543026],[12.60667896270752,45.83913421630865],[12.538078308105469,45.86954879760748],[12.506175041198786,45.9242897033692],[12.42328262329113,45.95705032348638],[12.429174423217829,45.99665832519537],[12.399991989135797,46.042308807373104],[12.428847312927303,46.077209472656364],[12.484372138976992,46.104316711425724],[12.499824523925838,46.13859939575195],[12.431591033935604,46.210323333740234],[12.37332248687744,46.22482299804699],[12.324991226196403,46.25581741333019],[12.330244064331167,46.28425216674816],[12.380064964294547,46.33266067504888],[12.412795066833553,46.33235168457037],[12.4996919631958,46.41307830810558],[12.526877403259332,46.374137878418026],[12.58685493469244,46.36854934692394],[12.637987136840932,46.34025192260748],[12.707619667053166,46.326656341552734],[12.822737693786735,46.35760879516607],[12.876645088195856,46.333370208740284],[12.962189674377498,46.337879180908146],[12.977555274963379,46.268932342529354],[12.966168403625431,46.1957893371582],[12.917863845825195,46.07495498657232],[12.904708862304743,45.965301513671875],[12.916036605834904,45.91617202758789],[12.975585937499943,45.87431716918951],[12.98002147674572,45.83493804931646]]]},"properties":{"ID_0":112,"ISO":"IT-PN","NAME_0":"Italy","ID_1":7,"NAME_1":"Friuli-Venezia Giulia","ID_2":33,"NAME_2":"Pordenone","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.58235168457031,45.779861450195426],[13.59959506988531,45.8269500732423],[13.750750541687125,45.77269363403331],[13.824209213256891,45.728500366210994],[13.891913414001465,45.66888809204107],[13.906091690063477,45.62649154663086],[13.830743789672852,45.579437255859375],[13.750388145446776,45.59228897094721],[13.774305343628042,45.630416870117244],[13.749028205871639,45.68402862548834],[13.63263893127447,45.76708221435558],[13.58235168457031,45.779861450195426]]]},"properties":{"ID_0":112,"ISO":"IT-TS","NAME_0":"Italy","ID_1":7,"NAME_1":"Friuli-Venezia Giulia","ID_2":34,"NAME_2":"Trieste","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Triest"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.497014045715332,46.05178451538086],[13.46905040740978,45.997226715087834],[13.393145561218375,45.91421127319347],[13.425126075744743,45.86756134033214],[13.441251754760799,45.78657531738281],[13.380415916442928,45.72732162475597],[13.334776878356934,45.74097061157232],[13.33458328247076,45.74105453491222],[13.247916221618764,45.75041580200189],[13.22208213806158,45.77041625976568],[13.090695381164664,45.73041534423834],[13.084305763244743,45.65692520141613],[13.045344352722168,45.68520355224615],[13.03001213073736,45.73602294921875],[13.002483367919979,45.7492790222168],[12.98002147674572,45.83493804931646],[12.975585937499943,45.87431716918951],[12.916036605834904,45.91617202758789],[12.904708862304743,45.965301513671875],[12.917863845825195,46.07495498657232],[12.966168403625431,46.1957893371582],[12.977555274963379,46.268932342529354],[12.962189674377498,46.337879180908146],[12.876645088195856,46.333370208740284],[12.822737693786735,46.35760879516607],[12.707619667053166,46.326656341552734],[12.637987136840932,46.34025192260748],[12.58685493469244,46.36854934692394],[12.526877403259332,46.374137878418026],[12.4996919631958,46.41307830810558],[12.5068626403808,46.44184112548834],[12.570953369140682,46.476364135742244],[12.607789039611871,46.46516036987305],[12.655060768127498,46.485263824463004],[12.63158988952648,46.51303863525402],[12.717514991760368,46.546123504638786],[12.74311542510992,46.59664535522472],[12.736565589904899,46.63608932495123],[12.82842826843273,46.63006973266613],[12.851650238037223,46.604820251464844],[12.930847167968807,46.610031127929744],[13.167098045349121,46.589920043945426],[13.240030288696289,46.55683135986334],[13.31116867065441,46.55532073974615],[13.378918647766056,46.578620910644645],[13.424419403076229,46.560111999511776],[13.563643455505371,46.55300140380865],[13.7142591476441,46.523151397705135],[13.712189674377555,46.476039886474666],[13.666820526123104,46.45566940307623],[13.576833724975643,46.44104003906256],[13.544917106628473,46.40072631835932],[13.459418296814079,46.363918304443416],[13.382119178771973,46.29325103759771],[13.440534591674918,46.21394729614258],[13.463019371032772,46.23683547973632],[13.555333137512319,46.196224212646484],[13.65242004394537,46.182666778564446],[13.66039943695074,46.15156173706055],[13.570601463317985,46.08766174316412],[13.497014045715332,46.05178451538086]]]},"properties":{"ID_0":112,"ISO":"IT-UD","NAME_0":"Italy","ID_1":7,"NAME_1":"Friuli-Venezia Giulia","ID_2":35,"NAME_2":"Udine","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Friuli"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.941911697387695,41.68894958496105],[13.989183425903434,41.65481567382824],[14.01187801361084,41.60852432250982],[14.00254726409912,41.57067871093756],[14.02695274353033,41.526752471923935],[13.973794937133789,41.49502563476557],[13.978795051574707,41.46347045898443],[13.863900184631348,41.41093063354498],[13.886704444885366,41.38644790649414],[13.874588012695312,41.33932113647461],[13.763914108276365,41.30234527587902],[13.715989112854116,41.3366317749024],[13.618548393249569,41.32072448730469],[13.549090385437069,41.42057418823242],[13.429195404052848,41.457210540771484],[13.439397811889592,41.42618179321295],[13.404152870178335,41.40333938598644],[13.305167198181152,41.405506134033196],[13.266471862792969,41.45304107666027],[13.299813270568961,41.471759796142635],[13.271853446960561,41.524898529052734],[13.222639083862362,41.53982543945324],[13.175971984863336,41.58456039428722],[13.151240348815975,41.597602844238395],[13.147893905639705,41.66126251220709],[12.996202468872184,41.77869796752941],[13.010738372802848,41.826503753662166],[13.066222190856934,41.8344841003418],[13.102369308471623,41.86144256591797],[13.15539264678955,41.84466934204107],[13.244660377502498,41.89764785766607],[13.297176361084041,41.9495849609375],[13.384902000427244,41.90517807006847],[13.360740661621094,41.870368957519645],[13.408369064331053,41.83843994140631],[13.50530910491949,41.80253601074218],[13.522458076477108,41.77385711669933],[13.572714805603141,41.75527191162115],[13.66303730010992,41.812416076660156],[13.717392921447754,41.79837036132818],[13.750353813171444,41.7615585327149],[13.92059230804449,41.718223571777344],[13.941911697387695,41.68894958496105]]]},"properties":{"ID_0":112,"ISO":"IT-FR","NAME_0":"Italy","ID_1":8,"NAME_1":"Lazio","ID_2":36,"NAME_2":"Frosinone","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.175971984863336,41.58456039428722],[13.222639083862362,41.53982543945324],[13.271853446960561,41.524898529052734],[13.299813270568961,41.471759796142635],[13.266471862792969,41.45304107666027],[13.305167198181152,41.405506134033196],[13.404152870178335,41.40333938598644],[13.439397811889592,41.42618179321295],[13.429195404052848,41.457210540771484],[13.549090385437069,41.42057418823242],[13.618548393249569,41.32072448730469],[13.715989112854116,41.3366317749024],[13.763914108276365,41.30234527587902],[13.874588012695312,41.33932113647461],[13.883223533630485,41.29193496704113],[13.828458786010856,41.27845001220709],[13.819704055786133,41.24679565429693],[13.76291656494152,41.22364807128906],[13.706804275512752,41.253471374511776],[13.621527671814079,41.26069259643566],[13.512084007263297,41.22180557250976],[13.392083168029842,41.27569580078125],[13.292362213134766,41.297637939453125],[13.154305458068961,41.26874923706055],[13.065417289733944,41.22180557250976],[13.039860725402832,41.23069381713873],[12.994304656982479,41.31986236572271],[12.923472404480037,41.379859924316406],[12.83458423614502,41.4154167175293],[12.774305343627873,41.41680526733404],[12.73960399627691,41.4481773376466],[12.72207260131836,41.50613021850597],[12.654739379882926,41.53438949584972],[12.592806816101186,41.5421714782716],[12.542393684387207,41.5973739624024],[12.561195373535213,41.62377166748041],[12.633659362792969,41.67250061035162],[12.653377532958984,41.608459472656364],[12.698407173156738,41.61101913452154],[12.764059066772461,41.58038330078131],[12.855578422546444,41.69264221191406],[12.939552307128906,41.71421813964844],[12.944040298461914,41.67516708374017],[13.026013374328727,41.60064315795898],[13.113750457763786,41.554611206054744],[13.175971984863336,41.58456039428722]]]},"properties":{"ID_0":112,"ISO":"IT-LT","NAME_0":"Italy","ID_1":8,"NAME_1":"Lazio","ID_2":37,"NAME_2":"Latina","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Littoria"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.34434795379633,42.70227813720709],[13.37022399902338,42.650699615478565],[13.409197807311953,42.643829345703125],[13.3949241638183,42.59222793579095],[13.292169570922908,42.57151031494152],[13.192282676696776,42.58848953247076],[13.158268928527832,42.52869033813488],[13.178686141967773,42.51361083984375],[13.154969215393066,42.46330642700195],[13.117080688476676,42.44488525390619],[13.190119743347223,42.401191711425895],[13.154267311096248,42.3579673767091],[13.227374076843375,42.32030868530279],[13.229853630066032,42.28814697265625],[13.292931556701717,42.23339462280285],[13.32084178924572,42.23061752319336],[13.368479728698787,42.181034088134766],[13.306207656860352,42.13922882080084],[13.249697685241813,42.12840270996105],[13.184197425842342,42.15986251831055],[13.087980270385799,42.17885971069347],[13.087077140808105,42.14532089233409],[13.031460762023926,42.11637115478521],[12.979338645935172,42.13138580322271],[12.93111324310297,42.109840393066456],[12.867708206176756,42.10462951660156],[12.85046482086193,42.14429855346685],[12.758045196533145,42.184593200683594],[12.717261314392204,42.15573501586919],[12.657488822937125,42.15202713012695],[12.615788459777775,42.18194961547846],[12.634687423705998,42.24877166748058],[12.520524024963322,42.295742034912166],[12.490048408508414,42.29720687866211],[12.445633888244686,42.39979171752929],[12.46719074249279,42.39586639404291],[12.48898601531988,42.3996467590332],[12.519695281982422,42.36857223510748],[12.666907310485954,42.44194412231445],[12.742503166198787,42.47150802612304],[12.728519439697266,42.51011276245123],[12.7744779586792,42.51406478881836],[12.848755836486928,42.553775787353565],[12.89366340637207,42.564464569091854],[12.897254943847656,42.61740875244146],[13.059503555297965,42.623802185058594],[13.145145416259822,42.64728546142578],[13.17506313323969,42.667072296142635],[13.190705299377553,42.734432220459034],[13.255062103271596,42.722412109375],[13.286802291870229,42.741455078125114],[13.34434795379633,42.70227813720709]]]},"properties":{"ID_0":112,"ISO":"IT-RI","NAME_0":"Italy","ID_1":8,"NAME_1":"Lazio","ID_2":38,"NAME_2":"Rieti","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.031460762023926,42.11637115478521],[13.01940631866455,42.075920104980526],[13.055448532104435,42.01735687255865],[13.14086055755621,42.016334533691406],[13.297176361084041,41.9495849609375],[13.244660377502498,41.89764785766607],[13.15539264678955,41.84466934204107],[13.102369308471623,41.86144256591797],[13.066222190856934,41.8344841003418],[13.010738372802848,41.826503753662166],[12.996202468872184,41.77869796752941],[13.147893905639705,41.66126251220709],[13.151240348815975,41.597602844238395],[13.175971984863336,41.58456039428722],[13.113750457763786,41.554611206054744],[13.026013374328727,41.60064315795898],[12.944040298461914,41.67516708374017],[12.939552307128906,41.71421813964844],[12.855578422546444,41.69264221191406],[12.764059066772461,41.58038330078131],[12.698407173156738,41.61101913452154],[12.653377532958984,41.608459472656364],[12.633659362792969,41.67250061035162],[12.561195373535213,41.62377166748041],[12.542393684387207,41.5973739624024],[12.592806816101186,41.5421714782716],[12.654739379882926,41.53438949584972],[12.72207260131836,41.50613021850597],[12.73960399627691,41.4481773376466],[12.774305343627873,41.41680526733404],[12.667638778686637,41.45708465576172],[12.619584083557186,41.44597244262695],[12.534027099609318,41.55374908447277],[12.439583778381404,41.63958358764654],[12.350972175598201,41.69902801513677],[12.229861259460563,41.752082824707145],[12.212917327880973,41.813472747802734],[12.162362098693848,41.89535903930669],[12.118749618530217,41.92958450317394],[12.050416946411133,41.956527709960994],[12.015417098999023,41.98847198486328],[11.915970802307186,42.03902816772466],[11.834304809570368,42.02930450439453],[11.799583435058594,42.085971832275504],[11.733750343322754,42.15847396850597],[11.828955650329647,42.16788864135742],[11.89489841461176,42.23760986328125],[11.980135917663631,42.2075309753418],[12.00421524047863,42.15888977050787],[12.118740081787108,42.16247558593756],[12.177751541137807,42.1796226501466],[12.27235984802246,42.182903289794865],[12.33048343658453,42.1472434997558],[12.37596797943121,42.18654251098633],[12.398732185363711,42.23279190063482],[12.462992668151855,42.20667648315435],[12.489875793457088,42.27099990844738],[12.520524024963322,42.295742034912166],[12.634687423705998,42.24877166748058],[12.615788459777775,42.18194961547846],[12.657488822937125,42.15202713012695],[12.717261314392204,42.15573501586919],[12.758045196533145,42.184593200683594],[12.85046482086193,42.14429855346685],[12.867708206176756,42.10462951660156],[12.93111324310297,42.109840393066456],[12.979338645935172,42.13138580322271],[13.031460762023926,42.11637115478521]]]},"properties":{"ID_0":112,"ISO":"IT-RM","NAME_0":"Italy","ID_1":8,"NAME_1":"Lazio","ID_2":39,"NAME_2":"Roma","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.895914077758789,42.83564758300792],[11.93225955963146,42.77941513061529],[11.980431556701717,42.7655601501466],[11.92724418640148,42.705718994140675],[11.942287445068303,42.68428039550781],[12.030738830566406,42.65139770507823],[12.161956787109373,42.67788314819336],[12.244282722473145,42.62907028198242],[12.239662170410213,42.572982788085994],[12.317380905151367,42.489356994628906],[12.35216331481945,42.47463226318354],[12.395854949951115,42.500289916992244],[12.41231822967535,42.44698333740229],[12.445633888244686,42.39979171752929],[12.490048408508414,42.29720687866211],[12.520524024963322,42.295742034912166],[12.489875793457088,42.27099990844738],[12.462992668151855,42.20667648315435],[12.398732185363711,42.23279190063482],[12.37596797943121,42.18654251098633],[12.33048343658453,42.1472434997558],[12.27235984802246,42.182903289794865],[12.177751541137807,42.1796226501466],[12.118740081787108,42.16247558593756],[12.00421524047863,42.15888977050787],[11.980135917663631,42.2075309753418],[11.89489841461176,42.23760986328125],[11.828955650329647,42.16788864135742],[11.733750343322754,42.15847396850597],[11.706806182861383,42.21875],[11.636528968811035,42.29264068603527],[11.55041599273693,42.34236145019537],[11.450406074523869,42.37791824340825],[11.457629203796387,42.402694702148544],[11.51753139495861,42.43454742431652],[11.618662834167537,42.43703079223633],[11.617798805236816,42.488494873046925],[11.562199592590332,42.51828002929699],[11.585307121276912,42.543731689453125],[11.73408317565918,42.60704803466797],[11.786494255065918,42.67153549194347],[11.819904327392633,42.7438850402832],[11.746973037719727,42.7867431640625],[11.803961753845272,42.80194854736328],[11.849143981933592,42.83944702148443],[11.895914077758789,42.83564758300792]]]},"properties":{"ID_0":112,"ISO":"IT-VT","NAME_0":"Italy","ID_1":8,"NAME_1":"Lazio","ID_2":40,"NAME_2":"Viterbo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Viterbe"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.20401668548584,44.614444732666016],[9.301450729370117,44.60872650146495],[9.34119033813488,44.579620361328125],[9.420500755310059,44.58097839355469],[9.49437141418457,44.556827545166016],[9.49783802032465,44.483684539795036],[9.459234237670955,44.4431610107423],[9.480068206787223,44.41021728515619],[9.47321605682373,44.38730621337901],[9.519197463989258,44.35614776611334],[9.500312805175838,44.32781219482416],[9.574359893798828,44.27171325683605],[9.511054039001408,44.216804504394474],[9.443193435669059,44.23791503906255],[9.390139579773006,44.2815284729005],[9.23708438873291,44.34486007690441],[9.201249122619684,44.30347061157238],[9.147083282470703,44.322360992431754],[9.154583930969238,44.34791564941412],[9.104027748108024,44.37069320678711],[8.744027137756348,44.42708206176769],[8.635156631469783,44.37985992431652],[8.594957351684627,44.40448379516607],[8.60666942596447,44.43721389770508],[8.666012763977163,44.449718475341854],[8.654947280883789,44.50468826293957],[8.577217102050895,44.51018905639654],[8.66781139373785,44.58341979980469],[8.722051620483454,44.58082580566412],[8.768972396850643,44.52497100830084],[8.922760963439998,44.56806564331055],[8.883743286132756,44.63997268676758],[8.932189941406193,44.67708969116222],[9.013968467712516,44.66781616210943],[9.055937767028922,44.62233734130859],[9.104223251342773,44.61070251464844],[9.15359878540039,44.57517623901373],[9.20401668548584,44.614444732666016]]]},"properties":{"ID_0":112,"ISO":"IT-GE","NAME_0":"Italy","ID_1":9,"NAME_1":"Liguria","ID_2":41,"NAME_2":"Genova","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Genoa"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.01665210723877,44.11167144775402],[8.030710220336914,44.05106735229498],[7.980557918548641,44.01488876342785],[8.017960548400936,43.980323791503906],[8.084732055664176,43.984413146972706],[8.136528015136776,43.93992996215832],[8.075139999389762,43.891803741455135],[7.911806106567326,43.835971832275504],[7.872361183166503,43.835693359375114],[7.712916851043758,43.800693511963004],[7.673749923706055,43.77624893188488],[7.590415954589844,43.79152679443359],[7.529827117919865,43.78401565551763],[7.498899936676025,43.87236785888672],[7.561345577240046,43.89956665039074],[7.57154083251953,43.94533920288085],[7.652744770050163,43.97601318359381],[7.665332794189509,44.029380798339844],[7.713045597076415,44.06309509277344],[7.74709081649786,44.13633728027344],[7.927024841308536,44.111282348632926],[8.01665210723877,44.11167144775402]]]},"properties":{"ID_0":112,"ISO":"IT-IM","NAME_0":"Italy","ID_1":9,"NAME_1":"Liguria","ID_2":42,"NAME_2":"Imperia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Porto Maurizio"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.687728881835938,44.36689758300792],[9.807213783264217,44.283588409423885],[9.855452537536678,44.26901626586914],[9.860014915466365,44.2383766174317],[9.967485427856502,44.17039108276367],[10.003144264221305,44.10861206054699],[10.07027816772461,44.098960876464844],[10.019188880920524,44.04459762573248],[9.963749885559139,44.03708267211914],[9.853471755981559,44.104305267334034],[9.774027824401855,44.07513809204113],[9.66736221313488,44.14236068725586],[9.511054039001408,44.216804504394474],[9.574359893798828,44.27171325683605],[9.500312805175838,44.32781219482416],[9.519197463989258,44.35614776611334],[9.47321605682373,44.38730621337901],[9.480068206787223,44.41021728515619],[9.560209274292106,44.43909072875988],[9.656318664550838,44.41261672973633],[9.687728881835938,44.36689758300792]]]},"properties":{"ID_0":112,"ISO":"IT-SP","NAME_0":"Italy","ID_1":9,"NAME_1":"Liguria","ID_2":43,"NAME_2":"La Spezia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Spezia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.577217102050895,44.51018905639654],[8.654947280883789,44.50468826293957],[8.666012763977163,44.449718475341854],[8.60666942596447,44.43721389770508],[8.594957351684627,44.40448379516607],[8.635156631469783,44.37985992431652],[8.507362365722713,44.327915191650334],[8.45069408416748,44.287918090820426],[8.456806182861328,44.25986099243164],[8.38458347320568,44.18069458007818],[8.274581909179688,44.14291763305664],[8.226529121398983,44.07902908325195],[8.224861145019588,44.04208374023449],[8.168473243713493,44.00069427490246],[8.174304962158146,43.953750610351676],[8.136528015136776,43.93992996215832],[8.084732055664176,43.984413146972706],[8.017960548400936,43.980323791503906],[7.980557918548641,44.01488876342785],[8.030710220336914,44.05106735229498],[8.01665210723877,44.11167144775402],[8.010501861572266,44.15658187866222],[8.068363189697322,44.14566040039057],[8.095253944397086,44.17638015747076],[8.066426277160645,44.217910766601676],[8.091024398803711,44.274890899658146],[8.060803413391227,44.30167770385748],[8.135349273681754,44.333072662353516],[8.15058231353754,44.38576126098633],[8.222897529602108,44.430526733398494],[8.196798324585018,44.46523284912115],[8.25386047363287,44.52972412109381],[8.262635231018123,44.52040863037121],[8.393490791320744,44.478015899658146],[8.404949188232422,44.50994110107433],[8.577217102050895,44.51018905639654]]]},"properties":{"ID_0":112,"ISO":"IT-SV","NAME_0":"Italy","ID_1":9,"NAME_1":"Liguria","ID_2":44,"NAME_2":"Savona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.170605659484863,46.05796051025402],[10.22912883758545,46.049125671386776],[10.177375793457031,45.97259521484381],[10.122369766235408,45.956951141357536],[10.098067283630428,45.929916381835994],[10.110089302063102,45.88661575317382],[10.150844573974723,45.86400985717779],[10.064864158630428,45.78932189941412],[10.06655311584467,45.69021987915044],[10.045414924621696,45.67586135864258],[9.943333625793514,45.666210174560604],[9.888493537902832,45.603580474853516],[9.851597785949764,45.60408020019531],[9.838628768920955,45.55120468139654],[9.87921142578125,45.47543716430664],[9.890654563903809,45.42824935913097],[9.825176239013672,45.44709777832031],[9.80892562866211,45.42371368408209],[9.709307670593375,45.483207702636776],[9.683140754699764,45.442180633544865],[9.609687805175724,45.476379394531364],[9.548947334289664,45.46242523193365],[9.520238876342773,45.5054092407226],[9.539650917053278,45.58324050903326],[9.496908187866154,45.64058685302746],[9.477631568908748,45.67019653320324],[9.446906089782772,45.761440277099716],[9.500788688659723,45.77345657348644],[9.472271919250602,45.85985565185547],[9.523200035095272,45.87516403198242],[9.537884712219352,45.95811843872064],[9.504640579223576,45.967784881591854],[9.527960777282772,46.01242446899425],[9.578042030334416,46.021125793457145],[9.644518852233887,46.060886383056754],[9.767486572265625,46.06532287597662],[9.833157539367619,46.04757308959955],[9.909127235412711,46.04729843139654],[10.036634445190487,46.08883666992199],[10.170605659484863,46.05796051025402]]]},"properties":{"ID_0":112,"ISO":"IT-BG","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":45,"NAME_2":"Bergamo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Bergame"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.516762733459528,46.34412765502941],[10.566657066345272,46.32723617553711],[10.586728096008414,46.248832702636776],[10.54243183135992,46.18953704833996],[10.566293716430664,46.167972564697266],[10.542615890502987,46.104164123535156],[10.49196624755865,46.067726135253906],[10.458191871643123,46.009452819824276],[10.508734703064079,45.90626144409179],[10.50924015045166,45.82465744018554],[10.564509391784725,45.78503417968744],[10.652065277099666,45.81339263916026],[10.655679702758903,45.833549499511776],[10.841188430786133,45.83367538452154],[10.703042984008789,45.67364883422857],[10.629487991333065,45.60297775268549],[10.643918037414664,45.45545196533203],[10.655651092529297,45.416748046875],[10.63945388793951,45.38657760620123],[10.549138069152946,45.3867645263673],[10.512467384338322,45.413188934326115],[10.45133686065668,45.3840446472168],[10.466891288757436,45.32608413696289],[10.432565689086857,45.31391143798822],[10.31872463226324,45.20564651489269],[10.267377853393612,45.251720428466854],[10.220852851867733,45.225585937500114],[10.101211547851506,45.24871063232422],[10.050561904907227,45.28131484985357],[9.995035171508787,45.29142379760748],[9.899750709533748,45.338973999023494],[9.884368896484375,45.35849380493163],[9.890654563903809,45.42824935913097],[9.87921142578125,45.47543716430664],[9.838628768920955,45.55120468139654],[9.851597785949764,45.60408020019531],[9.888493537902832,45.603580474853516],[9.943333625793514,45.666210174560604],[10.045414924621696,45.67586135864258],[10.06655311584467,45.69021987915044],[10.064864158630428,45.78932189941412],[10.150844573974723,45.86400985717779],[10.110089302063102,45.88661575317382],[10.098067283630428,45.929916381835994],[10.122369766235408,45.956951141357536],[10.177375793457031,45.97259521484381],[10.22912883758545,46.049125671386776],[10.170605659484863,46.05796051025402],[10.16043567657482,46.1604576110841],[10.295706748962516,46.22415161132812],[10.328561782837026,46.287971496582145],[10.372112274170034,46.29409027099621],[10.458012580871525,46.35297393798834],[10.516762733459528,46.34412765502941]]]},"properties":{"ID_0":112,"ISO":"IT-BS","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":46,"NAME_2":"Brescia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.415167808532715,46.13778305053722],[9.358304977416992,46.151268005371094],[9.302966117858944,46.12744522094738],[9.29067325592041,46.06026458740229],[9.263249397277775,46.02728271484374],[9.285646438598746,45.967971801757805],[9.269336700439453,45.92646789550787],[9.333328247070312,45.86553955078124],[9.245244979858455,45.76821136474621],[9.248185157775936,45.743576049804744],[9.196376800537166,45.699272155761776],[9.06811332702648,45.68605041503906],[9.056804656982536,45.64743041992193],[8.929024696350098,45.655544281005916],[8.951952934265137,45.73203659057623],[8.901475906372127,45.78570175170893],[8.914423942565975,45.8353157043457],[8.952935218811092,45.84599685668945],[9.027546882629395,45.822654724121094],[9.073540687561149,45.915828704833984],[9.018035888671818,45.93041610717785],[9.021220207214355,46.05251693725597],[9.078516006469838,46.0659904479981],[9.07348823547369,46.11684799194335],[9.122277259826717,46.13428115844732],[9.246221542358455,46.233497619628906],[9.333164215088004,46.23595046997076],[9.424996376037654,46.18849563598644],[9.415167808532715,46.13778305053722]]]},"properties":{"ID_0":112,"ISO":"IT-CO","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":47,"NAME_2":"Como","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Côme"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.890654563903809,45.42824935913097],[9.884368896484375,45.35849380493163],[9.899750709533748,45.338973999023494],[9.995035171508787,45.29142379760748],[10.050561904907227,45.28131484985357],[10.101211547851506,45.24871063232422],[10.220852851867733,45.225585937500114],[10.267377853393612,45.251720428466854],[10.31872463226324,45.20564651489269],[10.38163280487072,45.13910293579096],[10.438254356384277,45.1365966796875],[10.412774085998535,45.047168731689396],[10.495043754577694,45.074996948242244],[10.540576934814396,45.05607604980469],[10.456721305847225,44.9832878112793],[10.46503734588623,44.93811798095714],[10.417797088623047,44.978576660156364],[10.366312026977596,44.96704483032238],[10.27460575103754,45.00009536743164],[10.255112648010368,45.019592285156364],[10.158750534057729,45.045005798339844],[10.107220649719352,45.02305984497076],[10.08450031280529,45.04490661621099],[10.022352218628042,45.0781135559082],[9.993762016296387,45.13068771362316],[9.892103195190543,45.13183975219738],[9.872906684875545,45.158195495605526],[9.785310745239315,45.16727447509765],[9.709735870361271,45.25806045532232],[9.616806030273438,45.295623779296875],[9.58892440795904,45.35721969604498],[9.510125160217399,45.35002136230469],[9.45545959472662,45.38764190673834],[9.484960556030273,45.44961929321283],[9.520238876342773,45.5054092407226],[9.548947334289664,45.46242523193365],[9.609687805175724,45.476379394531364],[9.683140754699764,45.442180633544865],[9.709307670593375,45.483207702636776],[9.80892562866211,45.42371368408209],[9.825176239013672,45.44709777832031],[9.890654563903809,45.42824935913097]]]},"properties":{"ID_0":112,"ISO":"IT-CR","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":48,"NAME_2":"Cremona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Crémone"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.527960777282772,46.01242446899425],[9.504640579223576,45.967784881591854],[9.537884712219352,45.95811843872064],[9.523200035095272,45.87516403198242],[9.472271919250602,45.85985565185547],[9.500788688659723,45.77345657348644],[9.446906089782772,45.761440277099716],[9.477631568908748,45.67019653320324],[9.415498733520565,45.677429199218864],[9.315448760986442,45.669677734375],[9.275305747985783,45.74316406250006],[9.248185157775936,45.743576049804744],[9.245244979858455,45.76821136474621],[9.333328247070312,45.86553955078124],[9.269336700439453,45.92646789550787],[9.285646438598746,45.967971801757805],[9.263249397277775,46.02728271484374],[9.29067325592041,46.06026458740229],[9.302966117858944,46.12744522094738],[9.358304977416992,46.151268005371094],[9.415167808532715,46.13778305053722],[9.416068077087346,46.095714569091854],[9.510903358459416,46.0634422302246],[9.527960777282772,46.01242446899425]]]},"properties":{"ID_0":112,"ISO":"IT-LC","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":49,"NAME_2":"Lecco","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.484960556030273,45.44961929321283],[9.45545959472662,45.38764190673834],[9.510125160217399,45.35002136230469],[9.58892440795904,45.35721969604498],[9.616806030273438,45.295623779296875],[9.709735870361271,45.25806045532232],[9.785310745239315,45.16727447509765],[9.872906684875545,45.158195495605526],[9.892103195190543,45.13183975219738],[9.883879661560115,45.07545089721679],[9.780000686645565,45.09052658081055],[9.713578224182186,45.05970764160156],[9.588491439819336,45.10057067871099],[9.549711227417106,45.133590698242244],[9.532625198364371,45.16629409790044],[9.479281425476188,45.162601470947266],[9.371872901916447,45.24604034423828],[9.316280364990234,45.26056671142578],[9.35865592956543,45.29352188110357],[9.339881896972713,45.31391143798822],[9.381632804870549,45.319755554199276],[9.354780197143668,45.36403274536133],[9.408262252807617,45.394886016845646],[9.418585777282715,45.45246505737316],[9.484960556030273,45.44961929321283]]]},"properties":{"ID_0":112,"ISO":"IT-LO","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":50,"NAME_2":"Lodi","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.20648002624506,45.11041641235357],[11.202448844909668,45.06113052368163],[11.332862854003963,44.99316024780285],[11.415790557861385,44.968276977539176],[11.427749633789176,44.95100784301769],[11.327499389648438,44.963172912597656],[11.247202873230094,44.952377319335994],[11.153441429138297,44.93420028686535],[11.074481964111328,44.9638786315918],[10.999081611633414,44.95579910278332],[10.9423828125,44.922859191894645],[10.888903617858944,44.915214538574276],[10.744734764099064,44.94998168945324],[10.73260402679449,44.99233245849604],[10.687696456909178,44.98752975463867],[10.628893852233887,44.92515182495117],[10.574359893798828,44.90999221801769],[10.505323410034123,44.92335510253906],[10.46503734588623,44.93811798095714],[10.456721305847225,44.9832878112793],[10.540576934814396,45.05607604980469],[10.495043754577694,45.074996948242244],[10.412774085998535,45.047168731689396],[10.438254356384277,45.1365966796875],[10.38163280487072,45.13910293579096],[10.31872463226324,45.20564651489269],[10.432565689086857,45.31391143798822],[10.466891288757436,45.32608413696289],[10.45133686065668,45.3840446472168],[10.512467384338322,45.413188934326115],[10.549138069152946,45.3867645263673],[10.63945388793951,45.38657760620123],[10.655651092529297,45.416748046875],[10.698764801025447,45.38101196289074],[10.738435745239315,45.28816986083979],[10.78383541107172,45.316345214843864],[10.847625732421875,45.25749969482422],[10.935187339782772,45.234039306640625],[10.991399765014705,45.19702911376953],[10.99902439117426,45.15954971313476],[11.073940277099664,45.099674224853516],[11.139745712280273,45.12478256225597],[11.20648002624506,45.11041641235357]]]},"properties":{"ID_0":112,"ISO":"IT-MN","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":51,"NAME_2":"Mantua","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Mantoue|Mantova"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.05399036407482,45.62412261962896],[9.11045932769781,45.62181091308594],[9.104401588440055,45.58927536010742],[9.171884536743221,45.59267425537115],[9.278618812561035,45.54573440551769],[9.325274467468319,45.5399742126466],[9.483350753784293,45.60676956176769],[9.496908187866154,45.64058685302746],[9.539650917053278,45.58324050903326],[9.520238876342773,45.5054092407226],[9.484960556030273,45.44961929321283],[9.418585777282715,45.45246505737316],[9.408262252807617,45.394886016845646],[9.354780197143668,45.36403274536133],[9.381632804870549,45.319755554199276],[9.339881896972713,45.31391143798822],[9.285695075988883,45.33269119262707],[9.141336441040039,45.310844421386825],[9.037481307983398,45.304130554199325],[8.98399925231945,45.26593399047863],[8.94493961334234,45.31455612182628],[8.86713981628418,45.34406280517578],[8.843961715698299,45.39477920532232],[8.790418624878043,45.462921142578125],[8.788558959961051,45.48717117309582],[8.728962898254508,45.50334167480469],[8.70795059204113,45.55924987792969],[8.807461738586483,45.60260772705084],[8.868893623352106,45.59294891357433],[8.923487663268986,45.61261749267578],[8.940937995910645,45.643581390380966],[9.00428581237793,45.57892990112316],[9.060870170593262,45.582736968994254],[9.05399036407482,45.62412261962896]]]},"properties":{"ID_0":112,"ISO":"IT-MI","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":52,"NAME_2":"Milano","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Milan"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.477631568908748,45.67019653320324],[9.496908187866154,45.64058685302746],[9.483350753784293,45.60676956176769],[9.325274467468319,45.5399742126466],[9.278618812561035,45.54573440551769],[9.171884536743221,45.59267425537115],[9.104401588440055,45.58927536010742],[9.11045932769781,45.62181091308594],[9.05399036407482,45.62412261962896],[9.056804656982536,45.64743041992193],[9.06811332702648,45.68605041503906],[9.196376800537166,45.699272155761776],[9.248185157775936,45.743576049804744],[9.275305747985783,45.74316406250006],[9.315448760986442,45.669677734375],[9.415498733520565,45.677429199218864],[9.477631568908748,45.67019653320324]]]},"properties":{"ID_0":112,"ISO":"IT-MB","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":53,"NAME_2":"Monza and Brianza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Monza e Brianza"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.339881896972713,45.31391143798822],[9.35865592956543,45.29352188110357],[9.316280364990234,45.26056671142578],[9.371872901916447,45.24604034423828],[9.479281425476188,45.162601470947266],[9.532625198364371,45.16629409790044],[9.549711227417106,45.133590698242244],[9.50251483917242,45.10450744628906],[9.440056800842342,45.094387054443416],[9.371857643127385,45.04909515380865],[9.34850883483898,44.99835586547851],[9.282065391540584,44.896984100341854],[9.342714309692326,44.87076187133789],[9.355232238769645,44.812812805175895],[9.286934852600211,44.76037979125982],[9.333622932434025,44.73599243164057],[9.29954433441162,44.68197250366211],[9.201375007629451,44.68735885620123],[9.214599609375057,44.75329971313476],[9.172779083252067,44.77263641357422],[9.161587715148869,44.814605712890625],[9.110047340393066,44.80639266967779],[9.053967475891227,44.84553146362316],[9.07109355926525,44.866210937500114],[8.970659255981502,44.94446182250982],[8.979178428649957,44.96815109252941],[8.90233135223383,45.0087127685548],[8.882117271423397,45.05502700805664],[8.824952125549373,45.047538757324276],[8.76973819732666,45.00764465332031],[8.706059455871696,45.03800201416021],[8.652941703796444,45.02432632446288],[8.647051811218317,45.07628250122076],[8.581064224243278,45.15365219116211],[8.548851966857853,45.16910171508789],[8.564097404480094,45.19721221923828],[8.526740074157715,45.22023773193371],[8.54379653930664,45.25345993041997],[8.51461410522461,45.31422424316412],[8.528075218200684,45.34459686279308],[8.612848281860408,45.355373382568466],[8.717187881469783,45.30382537841797],[8.727606773376522,45.33383178710943],[8.79444789886486,45.379894256591854],[8.843961715698299,45.39477920532232],[8.86713981628418,45.34406280517578],[8.94493961334234,45.31455612182628],[8.98399925231945,45.26593399047863],[9.037481307983398,45.304130554199325],[9.141336441040039,45.310844421386825],[9.285695075988883,45.33269119262707],[9.339881896972713,45.31391143798822]]]},"properties":{"ID_0":112,"ISO":"IT-PV","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":54,"NAME_2":"Pavia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Pavie"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.456283569335994,46.53629302978527],[10.47714424133312,46.49645233154308],[10.553021430969238,46.492351531982536],[10.623162269592342,46.449001312255916],[10.631519317627067,46.40345764160156],[10.516762733459528,46.34412765502941],[10.458012580871525,46.35297393798834],[10.372112274170034,46.29409027099621],[10.328561782837026,46.287971496582145],[10.295706748962516,46.22415161132812],[10.16043567657482,46.1604576110841],[10.170605659484863,46.05796051025402],[10.036634445190487,46.08883666992199],[9.909127235412711,46.04729843139654],[9.833157539367619,46.04757308959955],[9.767486572265625,46.06532287597662],[9.644518852233887,46.060886383056754],[9.578042030334416,46.021125793457145],[9.527960777282772,46.01242446899425],[9.510903358459416,46.0634422302246],[9.416068077087346,46.095714569091854],[9.415167808532715,46.13778305053722],[9.424996376037654,46.18849563598644],[9.333164215088004,46.23595046997076],[9.246221542358455,46.233497619628906],[9.297103881835938,46.3158073425293],[9.278252601623535,46.419387817382926],[9.285234451294002,46.50425338745117],[9.372874259948674,46.50260543823248],[9.389505386352539,46.475299835205135],[9.464389801025504,46.514347076416016],[9.454051971435604,46.430324554443466],[9.470473289489746,46.37879943847656],[9.497580528259276,46.3709449768067],[9.548737525939941,46.31050872802729],[9.639209747314453,46.29418563842785],[9.71422195434576,46.300708770751946],[9.726011276245117,46.346763610839844],[9.769534111023006,46.34130859375006],[9.944955825805721,46.38190841674816],[9.990939140319881,46.346134185791016],[9.995897293090877,46.289775848388786],[10.05436992645258,46.27097320556652],[10.047634124755916,46.233329772949276],[10.122827529907227,46.229335784912216],[10.173440933227596,46.25893783569336],[10.152585029602164,46.29808425903326],[10.103281021118221,46.33861923217785],[10.165192604064941,46.41372680664062],[10.131381034851186,46.434715270996094],[10.080606460571401,46.42590332031244],[10.038875579834041,46.446144104003906],[10.057415008545036,46.54870986938482],[10.124827384948787,46.61022949218755],[10.183464050292967,46.62883758544916],[10.295535087585506,46.55641555786144],[10.417557716369686,46.55474472045893],[10.456283569335994,46.53629302978527]]]},"properties":{"ID_0":112,"ISO":"IT-SO","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":55,"NAME_2":"Sondrio","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.914423942565975,45.8353157043457],[8.901475906372127,45.78570175170893],[8.951952934265137,45.73203659057623],[8.929024696350098,45.655544281005916],[9.056804656982536,45.64743041992193],[9.05399036407482,45.62412261962896],[9.060870170593262,45.582736968994254],[9.00428581237793,45.57892990112316],[8.940937995910645,45.643581390380966],[8.923487663268986,45.61261749267578],[8.868893623352106,45.59294891357433],[8.807461738586483,45.60260772705084],[8.70795059204113,45.55924987792969],[8.689627647399902,45.640808105468864],[8.647036552429256,45.722694396972656],[8.603220939636342,45.72723770141607],[8.5567445755006,45.77592468261719],[8.59487628936779,45.82917785644537],[8.572706222534237,45.902267456054744],[8.720401763916016,46.01206970214843],[8.71775436401367,46.10283660888672],[8.782246589660645,46.09792327880865],[8.851561546325684,46.07574844360362],[8.79148006439209,46.00955581665045],[8.91615104675293,45.915676116943416],[8.93204402923584,45.874095916748104],[8.914423942565975,45.8353157043457]]]},"properties":{"ID_0":112,"ISO":"IT-VA","NAME_0":"Italy","ID_1":10,"NAME_1":"Lombardia","ID_2":56,"NAME_2":"Varese","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.64180564880371,43.47495651245117],[13.659283638000602,43.43504714965832],[13.583461761474664,43.44390106201183],[13.48177909851074,43.43737411499018],[13.448624610900822,43.446140289306584],[13.336799621582143,43.39242553710949],[13.245303153991813,43.460334777832145],[13.211681365966797,43.4179916381837],[13.154923439025879,43.41478347778326],[13.092759132385252,43.436832427978516],[13.041452407836914,43.3370132446289],[12.953218460083063,43.27858734130854],[12.882971763610897,43.26799774169927],[12.897437095642147,43.232913970947266],[12.863289833068848,43.21219635009777],[12.747756004333553,43.391410827636776],[12.775376319885254,43.40292358398449],[12.76838684082037,43.46080398559582],[12.80681991577154,43.50500869750982],[12.889343261718864,43.54418945312505],[12.919795036315918,43.58501052856445],[12.962139129638615,43.598751068115234],[12.987152099609432,43.65633010864252],[13.070704460144043,43.693984985351676],[13.080500602722225,43.72798156738281],[13.172261238098201,43.75041580200195],[13.271805763244743,43.686527252197266],[13.42013931274414,43.6209716796875],[13.48097229003912,43.607360839843864],[13.509028434753475,43.62985992431652],[13.571249961853027,43.57180404663097],[13.62875080108654,43.54819488525396],[13.64180564880371,43.47495651245117]]]},"properties":{"ID_0":112,"ISO":"IT-AN","NAME_0":"Italy","ID_1":11,"NAME_1":"Marche","ID_2":57,"NAME_2":"Ancona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Ancône"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.849305152893123,43.06744766235357],[13.889306068420465,42.9426383972168],[13.915415763854924,42.89561080932623],[13.723403930664176,42.85631179809576],[13.700037956237907,42.82348251342779],[13.530022621154899,42.796306610107365],[13.48971557617193,42.73463439941406],[13.453024864196777,42.73487472534191],[13.389723777771051,42.68826675415045],[13.34434795379633,42.70227813720709],[13.286802291870229,42.741455078125114],[13.255062103271596,42.722412109375],[13.190705299377553,42.734432220459034],[13.264913558959961,42.80922317504894],[13.236183166503906,42.86865615844726],[13.24267959594738,42.89296340942394],[13.294466972351131,42.92638778686518],[13.380943298339844,42.906513214111435],[13.41043376922613,42.92572402954107],[13.39342308044445,42.967830657958984],[13.426164627075195,42.97827148437506],[13.556686401367244,42.98924255371088],[13.63205242156988,43.0338020324707],[13.786082267761174,43.08073043823242],[13.849305152893123,43.06744766235357]]]},"properties":{"ID_0":112,"ISO":"IT-AP","NAME_0":"Italy","ID_1":11,"NAME_1":"Marche","ID_2":58,"NAME_2":"Ascoli Piceno","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.849305152893123,43.06744766235357],[13.786082267761174,43.08073043823242],[13.63205242156988,43.0338020324707],[13.556686401367244,42.98924255371088],[13.426164627075195,42.97827148437506],[13.39342308044445,42.967830657958984],[13.41043376922613,42.92572402954107],[13.380943298339844,42.906513214111435],[13.294466972351131,42.92638778686518],[13.24267959594738,42.89296340942394],[13.217048645019474,42.95207977294922],[13.269625663757324,42.97507095336914],[13.332724571228084,43.02426528930663],[13.392710685730037,43.01259613037115],[13.46064090728754,43.02137756347662],[13.465836524963379,43.081264495849545],[13.431359291076717,43.11241149902355],[13.463030815124512,43.164592742920036],[13.519215583801326,43.17478179931652],[13.522028923034725,43.21015930175781],[13.593870162963979,43.21015930175781],[13.601899147033746,43.26873779296881],[13.743194580078182,43.29486083984375],[13.844861030578727,43.09847259521496],[13.849305152893123,43.06744766235357]]]},"properties":{"ID_0":112,"ISO":"IT-FM","NAME_0":"Italy","ID_1":11,"NAME_1":"Marche","ID_2":59,"NAME_2":"Fermo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.64180564880371,43.47495651245117],[13.718193054199276,43.32347106933594],[13.743194580078182,43.29486083984375],[13.601899147033746,43.26873779296881],[13.593870162963979,43.21015930175781],[13.522028923034725,43.21015930175781],[13.519215583801326,43.17478179931652],[13.463030815124512,43.164592742920036],[13.431359291076717,43.11241149902355],[13.465836524963379,43.081264495849545],[13.46064090728754,43.02137756347662],[13.392710685730037,43.01259613037115],[13.332724571228084,43.02426528930663],[13.269625663757324,42.97507095336914],[13.217048645019474,42.95207977294922],[13.24267959594738,42.89296340942394],[13.236183166503906,42.86865615844726],[13.212748527526797,42.84248733520508],[13.16178703308111,42.83286666870123],[13.113157272338924,42.890296936035156],[13.055210113525332,42.921066284179744],[12.977093696594238,42.87076950073248],[12.977705001831055,42.9266471862793],[12.896760940551813,42.96554946899414],[12.907649040222225,43.0363502502442],[12.898262977600154,43.0944442749024],[12.863427162170524,43.166923522949276],[12.863289833068848,43.21219635009777],[12.897437095642147,43.232913970947266],[12.882971763610897,43.26799774169927],[12.953218460083063,43.27858734130854],[13.041452407836914,43.3370132446289],[13.092759132385252,43.436832427978516],[13.154923439025879,43.41478347778326],[13.211681365966797,43.4179916381837],[13.245303153991813,43.460334777832145],[13.336799621582143,43.39242553710949],[13.448624610900822,43.446140289306584],[13.48177909851074,43.43737411499018],[13.583461761474664,43.44390106201183],[13.659283638000602,43.43504714965832],[13.64180564880371,43.47495651245117]]]},"properties":{"ID_0":112,"ISO":"IT-MC","NAME_0":"Italy","ID_1":11,"NAME_1":"Marche","ID_2":60,"NAME_2":"Macerata","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.172261238098201,43.75041580200195],[13.080500602722225,43.72798156738281],[13.070704460144043,43.693984985351676],[12.987152099609432,43.65633010864252],[12.962139129638615,43.598751068115234],[12.919795036315918,43.58501052856445],[12.889343261718864,43.54418945312505],[12.80681991577154,43.50500869750982],[12.76838684082037,43.46080398559582],[12.735560417175293,43.46530151367199],[12.7098007202149,43.4256324768067],[12.664120674133358,43.43777847290038],[12.626708030700627,43.42198181152355],[12.565206527710018,43.46075439453125],[12.500763893127496,43.52241516113287],[12.399991989135797,43.514171600341854],[12.345905303955078,43.554576873779354],[12.374444961547793,43.58523941040039],[12.357744216919002,43.618232727050895],[12.295330047607363,43.59431457519531],[12.215166091918887,43.61136245727539],[12.1864595413208,43.642723083496094],[12.369356155395508,43.71590423583995],[12.284744262695256,43.765865325927734],[12.242305755615178,43.7544898986817],[12.165003776550407,43.76321029663085],[12.108415603637695,43.75472640991222],[12.103829383850098,43.78923416137706],[12.169010162353628,43.89849472045904],[12.295721054077262,43.929141998291016],[12.323801994323787,43.961547851562614],[12.404889106750488,43.94997406005854],[12.408572196960563,43.90402603149419],[12.410450935363826,43.89839553833008],[12.491944313049316,43.91547012329107],[12.565672874450627,43.88159942626959],[12.589990615844727,43.88645172119135],[12.624151229858512,43.823669433593864],[12.682270050048885,43.82901382446289],[12.723347663879508,43.86188125610357],[12.728857994079647,43.925125122070426],[12.752937316894588,43.968193054199276],[12.802083015442006,43.96374893188488],[12.895693778991813,43.921527862548885],[13.07319545745861,43.81819534301763],[13.172261238098201,43.75041580200195]]]},"properties":{"ID_0":112,"ISO":"IT-PU","NAME_0":"Italy","ID_1":11,"NAME_1":"Marche","ID_2":61,"NAME_2":"Pesaro E Urbino","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Pesaro-et-Urbino|Pesaro-Urbino|Pésaro y Urbino"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.137508392333986,41.92625045776373],[15.139669418334961,41.880249023437614],[15.10453414916992,41.84770965576172],[15.115994453430174,41.79053115844738],[15.09823226928711,41.76690673828131],[15.122014045715444,41.721210479736385],[15.101681709289549,41.67280960083013],[15.049173355102539,41.65649414062506],[15.023566246032772,41.622829437255916],[14.960845947265682,41.64701080322276],[14.941324234008903,41.52459335327154],[15.008489608764705,41.48736572265636],[14.856516838073729,41.42568206787115],[14.791049957275504,41.453540802001896],[14.765568733215275,41.418354034423885],[14.718147277831974,41.401817321777344],[14.67231273651123,41.40762329101574],[14.603911399841309,41.364948272705135],[14.50485992431652,41.38511276245117],[14.456177711486875,41.42882156372076],[14.38335990905756,41.44424819946288],[14.390828132629393,41.50604248046886],[14.49429607391352,41.5733528137207],[14.510596275329531,41.6099205017091],[14.425004005432072,41.64487075805663],[14.434535980224664,41.67256164550792],[14.521643638610952,41.69989013671874],[14.486200332641715,41.76062393188471],[14.57149696350109,41.82213592529291],[14.615122795105039,41.89016342163085],[14.664641380310115,41.91726684570324],[14.669513702392635,41.94760513305664],[14.72803688049322,42.00422286987305],[14.766695022583008,42.01905822753912],[14.779659271240178,42.07013702392578],[14.897639274597283,42.021804809570426],[14.999582290649414,42.005416870117294],[15.07013988494873,41.94680404663086],[15.137508392333986,41.92625045776373]]]},"properties":{"ID_0":112,"ISO":"IT-CB","NAME_0":"Italy","ID_1":12,"NAME_1":"Molise","ID_2":62,"NAME_2":"Campobasso","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.486200332641715,41.76062393188471],[14.521643638610952,41.69989013671874],[14.434535980224664,41.67256164550792],[14.425004005432072,41.64487075805663],[14.510596275329531,41.6099205017091],[14.49429607391352,41.5733528137207],[14.390828132629393,41.50604248046886],[14.38335990905756,41.44424819946288],[14.328041076660272,41.454425811767635],[14.242506980896053,41.49765014648449],[14.168185234069824,41.49540710449213],[14.126154899597282,41.50835418701183],[14.079253196716365,41.44807052612305],[14.108372688293514,41.41742324829107],[14.043269157409668,41.3937721252442],[14.006661415100154,41.45382690429682],[13.978795051574707,41.46347045898443],[13.973794937133789,41.49502563476557],[14.02695274353033,41.526752471923935],[14.00254726409912,41.57067871093756],[14.01187801361084,41.60852432250982],[13.989183425903434,41.65481567382824],[13.941911697387695,41.68894958496105],[14.02006912231451,41.68334960937506],[14.070467948913517,41.738212585449155],[14.194854736328182,41.74899673461914],[14.148043632507381,41.828277587890625],[14.217757225036678,41.854736328125114],[14.230606079101674,41.87806320190441],[14.285653114318904,41.909770965576115],[14.377553939819391,41.88090896606451],[14.446577072143612,41.83879470825207],[14.486200332641715,41.76062393188471]]]},"properties":{"ID_0":112,"ISO":"IT-IS","NAME_0":"Italy","ID_1":12,"NAME_1":"Molise","ID_2":63,"NAME_2":"Isernia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.548851966857853,45.16910171508789],[8.581064224243278,45.15365219116211],[8.647051811218317,45.07628250122076],[8.652941703796444,45.02432632446288],[8.706059455871696,45.03800201416021],[8.76973819732666,45.00764465332031],[8.824952125549373,45.047538757324276],[8.882117271423397,45.05502700805664],[8.90233135223383,45.0087127685548],[8.979178428649957,44.96815109252941],[8.970659255981502,44.94446182250982],[9.07109355926525,44.866210937500114],[9.053967475891227,44.84553146362316],[9.110047340393066,44.80639266967779],[9.161587715148869,44.814605712890625],[9.172779083252067,44.77263641357422],[9.214599609375057,44.75329971313476],[9.201375007629451,44.68735885620123],[9.20401668548584,44.614444732666016],[9.15359878540039,44.57517623901373],[9.104223251342773,44.61070251464844],[9.055937767028922,44.62233734130859],[9.013968467712516,44.66781616210943],[8.932189941406193,44.67708969116222],[8.883743286132756,44.63997268676758],[8.922760963439998,44.56806564331055],[8.768972396850643,44.52497100830084],[8.722051620483454,44.58082580566412],[8.66781139373785,44.58341979980469],[8.577217102050895,44.51018905639654],[8.404949188232422,44.50994110107433],[8.393490791320744,44.478015899658146],[8.262635231018123,44.52040863037121],[8.303419113159237,44.56539154052739],[8.31509017944336,44.60398483276373],[8.353363037109375,44.63439559936534],[8.35657978057867,44.67737579345714],[8.421611785888729,44.69326782226556],[8.422490119934025,44.73291015625011],[8.481679916381836,44.75309371948242],[8.50308799743658,44.786708831787166],[8.377260208129883,44.84775924682623],[8.379040718078613,44.98574066162115],[8.352675437927358,44.99885559082031],[8.303598403930664,45.07805252075206],[8.24239826202404,45.06449890136718],[8.160034179687557,45.0284423828125],[8.111106872558594,45.09538269042969],[8.130048751831112,45.12395858764654],[8.15292835235607,45.169494628906364],[8.2164945602417,45.16495132446295],[8.270721435546818,45.18204116821289],[8.343761444091854,45.17292404174805],[8.363632202148438,45.19849395751964],[8.496970176696777,45.19933319091797],[8.548851966857853,45.16910171508789]]]},"properties":{"ID_0":112,"ISO":"IT-AL","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":64,"NAME_2":"Alessandria","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Alejandr¡a|Alexandrie"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.262635231018123,44.52040863037121],[8.25386047363287,44.52972412109381],[8.245236396789663,44.576477050781364],[8.195536613464412,44.629535675048885],[8.258587837219352,44.72220611572276],[8.134265899658146,44.747638702392635],[8.131644248962516,44.811092376708984],[8.094799995422306,44.822502136230526],[8.04643630981451,44.80028152465825],[7.94442796707159,44.8473014831543],[7.893815040588492,44.9158706665039],[7.903257846832275,44.96678924560547],[7.929592132568303,44.98402404785161],[7.929587841033879,45.10568237304687],[7.990342140197867,45.12976074218756],[8.130048751831112,45.12395858764654],[8.111106872558594,45.09538269042969],[8.160034179687557,45.0284423828125],[8.24239826202404,45.06449890136718],[8.303598403930664,45.07805252075206],[8.352675437927358,44.99885559082031],[8.379040718078613,44.98574066162115],[8.377260208129883,44.84775924682623],[8.50308799743658,44.786708831787166],[8.481679916381836,44.75309371948242],[8.422490119934025,44.73291015625011],[8.421611785888729,44.69326782226556],[8.35657978057867,44.67737579345714],[8.353363037109375,44.63439559936534],[8.31509017944336,44.60398483276373],[8.303419113159237,44.56539154052739],[8.262635231018123,44.52040863037121]]]},"properties":{"ID_0":112,"ISO":"IT-AT","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":65,"NAME_2":"Asti","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.028106689453068,45.40404510498052],[8.039485931396484,45.442375183105526],[7.969817161560115,45.475566864013615],[7.886312007904053,45.531311035156364],[7.896866798400992,45.59097671508789],[7.940472126007137,45.644195556640675],[7.906301021575928,45.682907104492244],[7.937713146209775,45.725288391113395],[8.00231742858881,45.7206916809082],[8.129622459411621,45.758598327636776],[8.328104019165094,45.64841461181652],[8.25623893737793,45.60961914062499],[8.29753303527832,45.554546356201165],[8.264112472534237,45.50222396850597],[8.18658638000494,45.45048141479498],[8.123910903930607,45.377033233642635],[8.028106689453068,45.40404510498052]]]},"properties":{"ID_0":112,"ISO":"IT-BI","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":66,"NAME_2":"Biella","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Verceil"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.25386047363287,44.52972412109381],[8.196798324585018,44.46523284912115],[8.222897529602108,44.430526733398494],[8.15058231353754,44.38576126098633],[8.135349273681754,44.333072662353516],[8.060803413391227,44.30167770385748],[8.091024398803711,44.274890899658146],[8.066426277160645,44.217910766601676],[8.095253944397086,44.17638015747076],[8.068363189697322,44.14566040039057],[8.010501861572266,44.15658187866222],[8.01665210723877,44.11167144775402],[7.927024841308536,44.111282348632926],[7.74709081649786,44.13633728027344],[7.713045597076415,44.06309509277344],[7.714300155639592,44.087760925293026],[7.669038772583008,44.12797927856457],[7.68419981002802,44.17726135253912],[7.614704132080022,44.15456008911132],[7.506918907165584,44.14566040039057],[7.462122440338248,44.12738800048828],[7.360407829284781,44.11706161499029],[7.345231056213435,44.14596176147461],[7.264095783233642,44.1476669311524],[7.195740222930965,44.19765090942383],[7.141895771026839,44.20177078247076],[7.076442718505803,44.23175811767584],[7.01095008850109,44.243850708007926],[6.93236780166626,44.35435104370123],[6.899970054626521,44.36603927612316],[6.907470226287842,44.419750213623104],[6.953364849090575,44.42924880981445],[6.88905906677246,44.485641479492244],[6.86726903915411,44.53113174438482],[6.941470146179256,44.57603073120128],[6.953463077545279,44.65362548828125],[6.999599933624324,44.68677139282232],[7.059867858886946,44.68048095703119],[7.064454555511588,44.71187210083008],[7.121822834014893,44.72701263427746],[7.160105228424072,44.76142883300787],[7.342479228973388,44.783908843994254],[7.351942062377929,44.75266265869146],[7.41694784164423,44.76700210571289],[7.47087287902832,44.75688552856445],[7.530239105224608,44.78366088867199],[7.594590187072697,44.83509826660162],[7.654384136200007,44.83241271972662],[7.685849189758414,44.811195373535156],[7.765787124633845,44.823566436767635],[7.782400131225529,44.84408187866211],[7.903704166412467,44.822498321533196],[7.94442796707159,44.8473014831543],[8.04643630981451,44.80028152465825],[8.094799995422306,44.822502136230526],[8.131644248962516,44.811092376708984],[8.134265899658146,44.747638702392635],[8.258587837219352,44.72220611572276],[8.195536613464412,44.629535675048885],[8.245236396789663,44.576477050781364],[8.25386047363287,44.52972412109381]]]},"properties":{"ID_0":112,"ISO":"IT-CN","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":67,"NAME_2":"Cuneo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Coni"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.59487628936779,45.82917785644537],[8.5567445755006,45.77592468261719],[8.603220939636342,45.72723770141607],[8.647036552429256,45.722694396972656],[8.689627647399902,45.640808105468864],[8.70795059204113,45.55924987792969],[8.728962898254508,45.50334167480469],[8.788558959961051,45.48717117309582],[8.790418624878043,45.462921142578125],[8.843961715698299,45.39477920532232],[8.79444789886486,45.379894256591854],[8.727606773376522,45.33383178710943],[8.717187881469783,45.30382537841797],[8.612848281860408,45.355373382568466],[8.528075218200684,45.34459686279308],[8.51461410522461,45.31422424316412],[8.49721622467041,45.375122070312614],[8.456524848938043,45.383415222168026],[8.407156944274957,45.42015457153326],[8.404294967651424,45.532112121581974],[8.391122817993105,45.619712829589844],[8.338385581970327,45.66483688354492],[8.379043579101676,45.73951339721691],[8.350947380065918,45.773311614990234],[8.460083007812614,45.87438964843756],[8.501043319702262,45.834957122802734],[8.59487628936779,45.82917785644537]]]},"properties":{"ID_0":112,"ISO":"IT-NO","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":68,"NAME_2":"Novara","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Novare"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.896866798400992,45.59097671508789],[7.886312007904053,45.531311035156364],[7.969817161560115,45.475566864013615],[8.039485931396484,45.442375183105526],[8.028106689453068,45.40404510498052],[8.025371551513672,45.364009857177734],[7.964480876922663,45.33140563964855],[7.991099834442082,45.30840301513671],[7.991939067840632,45.23012924194336],[8.046234130859318,45.200660705566406],[8.15292835235607,45.169494628906364],[8.130048751831112,45.12395858764654],[7.990342140197867,45.12976074218756],[7.929587841033879,45.10568237304687],[7.929592132568303,44.98402404785161],[7.903257846832275,44.96678924560547],[7.893815040588492,44.9158706665039],[7.94442796707159,44.8473014831543],[7.903704166412467,44.822498321533196],[7.782400131225529,44.84408187866211],[7.765787124633845,44.823566436767635],[7.685849189758414,44.811195373535156],[7.654384136200007,44.83241271972662],[7.594590187072697,44.83509826660162],[7.530239105224608,44.78366088867199],[7.47087287902832,44.75688552856445],[7.41694784164423,44.76700210571289],[7.351942062377929,44.75266265869146],[7.342479228973388,44.783908843994254],[7.160105228424072,44.76142883300787],[7.121822834014893,44.72701263427746],[7.064454555511588,44.71187210083008],[7.024250984191894,44.74722671508795],[7.022010803222656,44.82304763793957],[6.948660850524959,44.8636207580567],[6.912002563476562,44.84551239013672],[6.825379848480281,44.872310638427734],[6.762279987335204,44.913608551025504],[6.762772083282528,44.97071075439459],[6.739580154418945,45.02360916137701],[6.686503410339469,45.020915985107415],[6.630878925323543,45.10890197753906],[6.690576076507682,45.13850021362316],[6.772772789001521,45.15430450439453],[6.854263782501221,45.1286239624024],[6.900860786437988,45.164310455322266],[6.953864097595329,45.175800323486385],[6.97625112533575,45.208278656005916],[7.135106086731014,45.2545623779298],[7.113151073455867,45.32199096679687],[7.185120105743522,45.403694152832145],[7.121641159057731,45.43748092651367],[7.101458072662467,45.46526718139643],[7.122765064239616,45.50719070434582],[7.224533081054801,45.47157287597662],[7.270605087280387,45.515628814697266],[7.375261783599854,45.517364501953175],[7.466107845306396,45.57837677001959],[7.558046817779598,45.59130096435547],[7.733782768249569,45.55127334594737],[7.849968910217398,45.603210449218864],[7.896866798400992,45.59097671508789]]]},"properties":{"ID_0":112,"ISO":"IT-TO","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":69,"NAME_2":"Torino","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Torino|Turim"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.71775436401367,46.10283660888672],[8.720401763916016,46.01206970214843],[8.572706222534237,45.902267456054744],[8.59487628936779,45.82917785644537],[8.501043319702262,45.834957122802734],[8.460083007812614,45.87438964843756],[8.350947380065918,45.773311614990234],[8.31794261932373,45.770210266113274],[8.335820198059139,45.84773635864258],[8.30332183837902,45.88920593261719],[8.181735992431754,45.94998931884777],[8.087104797363281,45.92334365844732],[8.045433998107967,45.93725204467779],[7.963368892669678,45.90170288085949],[7.878063201904411,45.92736434936535],[7.874930858612117,45.930549621582145],[7.883058071136588,45.977401733398494],[7.910478115081845,45.99799728393555],[7.994339466094971,45.99918365478527],[8.037977218627873,46.043075561523544],[8.040096282958984,46.095073699951115],[8.11262321472168,46.1094970703125],[8.14722824096674,46.13362884521489],[8.168069839477596,46.18153762817382],[8.09470653533947,46.261054992675895],[8.14482498168951,46.299194335937614],[8.217202186584473,46.3071022033692],[8.265085220336914,46.36182022094732],[8.314331054687557,46.38089370727545],[8.291331291198787,46.410186767578175],[8.374684333801326,46.453468322753956],[8.433355331421012,46.4601936340332],[8.471341133117676,46.364093780517635],[8.426624298095817,46.29755401611328],[8.46393203735357,46.22608184814459],[8.53309631347662,46.21987152099621],[8.606492996215819,46.15104675292963],[8.60959243774414,46.11359405517584],[8.71775436401367,46.10283660888672]]]},"properties":{"ID_0":112,"ISO":"IT-VB","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":70,"NAME_2":"Verbano-Cusio-Ossola","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Verbania"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.350947380065918,45.773311614990234],[8.379043579101676,45.73951339721691],[8.338385581970327,45.66483688354492],[8.391122817993105,45.619712829589844],[8.404294967651424,45.532112121581974],[8.407156944274957,45.42015457153326],[8.456524848938043,45.383415222168026],[8.49721622467041,45.375122070312614],[8.51461410522461,45.31422424316412],[8.54379653930664,45.25345993041997],[8.526740074157715,45.22023773193371],[8.564097404480094,45.19721221923828],[8.548851966857853,45.16910171508789],[8.496970176696777,45.19933319091797],[8.363632202148438,45.19849395751964],[8.343761444091854,45.17292404174805],[8.270721435546818,45.18204116821289],[8.2164945602417,45.16495132446295],[8.15292835235607,45.169494628906364],[8.046234130859318,45.200660705566406],[7.991939067840632,45.23012924194336],[7.991099834442082,45.30840301513671],[7.964480876922663,45.33140563964855],[8.025371551513672,45.364009857177734],[8.028106689453068,45.40404510498052],[8.123910903930607,45.377033233642635],[8.18658638000494,45.45048141479498],[8.264112472534237,45.50222396850597],[8.29753303527832,45.554546356201165],[8.25623893737793,45.60961914062499],[8.328104019165094,45.64841461181652],[8.129622459411621,45.758598327636776],[8.00231742858881,45.7206916809082],[7.937713146209775,45.725288391113395],[7.864195823669547,45.79193115234374],[7.878063201904411,45.92736434936535],[7.963368892669678,45.90170288085949],[8.045433998107967,45.93725204467779],[8.087104797363281,45.92334365844732],[8.181735992431754,45.94998931884777],[8.30332183837902,45.88920593261719],[8.335820198059139,45.84773635864258],[8.31794261932373,45.770210266113274],[8.350947380065918,45.773311614990234]]]},"properties":{"ID_0":112,"ISO":"IT-VC","NAME_0":"Italy","ID_1":13,"NAME_1":"Piemonte","ID_2":71,"NAME_2":"Vercelli","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Verceil"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.417709350585994,39.61819458007806],[9.458284378051701,39.64262008666998],[9.5058851242066,39.62271881103527],[9.524630546569881,39.58966064453131],[9.651527404785156,39.55062484741211],[9.632081031799316,39.497081756591854],[9.642359733581657,39.444862365722656],[9.595973014831657,39.347362518310604],[9.605690956115835,39.2940292358399],[9.572080612182617,39.247360229492294],[9.567360877990666,39.14708328247076],[9.529583930969295,39.128192901611385],[9.461528778076286,39.12680435180664],[9.39264011383068,39.143470764160156],[9.371250152587947,39.17347335815441],[9.295694351196346,39.213748931884766],[9.216528892517204,39.22819519042969],[9.14124870300293,39.18624877929693],[9.095690727234,39.21430969238286],[9.018750190734863,39.148471832275504],[9.01624965667736,39.087081909179744],[9.045417785644588,39.05875015258795],[9.027082443237417,38.999027252197266],[8.911527633667106,38.916805267333984],[8.841528892517202,38.876251220703125],[8.731250762939396,38.930416107177784],[8.666806221008244,38.89430618286133],[8.621527671813965,38.919578552246094],[8.612624168396053,38.958206176757926],[8.69653224945074,39.02974319458008],[8.740991592407227,39.05059432983404],[8.82792186737072,39.053512573242244],[8.85411643981945,39.08553314208984],[8.823158264160156,39.11941909790045],[8.827328681945858,39.14967727661133],[8.77183437347412,39.180156707763786],[8.74077129364008,39.281227111816406],[8.701637268066406,39.32326507568371],[8.70026969909668,39.37596893310547],[8.757802009582463,39.405815124511776],[8.837080001831112,39.41180038452154],[8.930945396423397,39.400615692138786],[8.97925090789795,39.42308807373047],[8.960442543029728,39.463260650634766],[9.01589584350586,39.487861633300895],[9.000662803649902,39.55464935302746],[9.047477722168026,39.641937255859425],[9.082490921020621,39.66533660888672],[9.148432731628418,39.678497314453125],[9.209806442260856,39.62656784057623],[9.296211242675836,39.6043052673341],[9.315732955932617,39.57865524291992],[9.387925148010252,39.5876350402832],[9.417709350585994,39.61819458007806]]]},"properties":{"ID_0":112,"ISO":"IT-CA","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":72,"NAME_2":"Cagliari","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[8.368471145629883,39.113471984863395],[8.420969009399471,39.107917785644645],[8.45596981048584,39.08486175537121],[8.46763896942133,39.04652786254883],[8.445138931274414,38.97013854980469],[8.40291786193859,38.96181106567383],[8.352080345153865,39.072917938232536],[8.368471145629883,39.113471984863395]]],[[[8.309307098388786,39.18819046020508],[8.30652904510498,39.101528167724716],[8.2720823287965,39.095420837402344],[8.22931003570568,39.16569900512695],[8.309307098388786,39.18819046020508]]],[[[8.70026969909668,39.37596893310547],[8.701637268066406,39.32326507568371],[8.74077129364008,39.281227111816406],[8.77183437347412,39.180156707763786],[8.827328681945858,39.14967727661133],[8.823158264160156,39.11941909790045],[8.85411643981945,39.08553314208984],[8.82792186737072,39.053512573242244],[8.740991592407227,39.05059432983404],[8.69653224945074,39.02974319458008],[8.612624168396053,38.958206176757926],[8.573751449584904,38.97708892822277],[8.576251029968319,39.01985931396479],[8.53902816772461,39.05902862548834],[8.488470077514762,39.08407211303711],[8.437639236450309,39.15597152709961],[8.402359962463322,39.175140380859375],[8.366526603698844,39.22847366333008],[8.437360763549917,39.28930664062511],[8.415695190429629,39.33541488647472],[8.372637748718374,39.37541580200201],[8.402915954589787,39.40486145019537],[8.39190578460699,39.44652938842779],[8.496934890747184,39.48406219482433],[8.535611152648926,39.48009872436529],[8.629343986511344,39.4091796875],[8.651399612426815,39.38037109375],[8.70026969909668,39.37596893310547]]]]},"properties":{"ID_0":112,"ISO":"IT-CI","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":73,"NAME_2":"Carbonia-Iglesias","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.047477722168026,39.641937255859425],[9.000662803649902,39.55464935302746],[9.01589584350586,39.487861633300895],[8.960442543029728,39.463260650634766],[8.97925090789795,39.42308807373047],[8.930945396423397,39.400615692138786],[8.837080001831112,39.41180038452154],[8.757802009582463,39.405815124511776],[8.70026969909668,39.37596893310547],[8.651399612426815,39.38037109375],[8.629343986511344,39.4091796875],[8.535611152648926,39.48009872436529],[8.496934890747184,39.48406219482433],[8.39190578460699,39.44652938842779],[8.384306907653865,39.46986007690441],[8.435970306396596,39.523471832275504],[8.470971107483024,39.60124969482421],[8.45152759552002,39.6223602294923],[8.4543075561524,39.69847106933605],[8.503471374511719,39.71438598632812],[8.501188278198299,39.71014022827154],[8.506527900695858,39.70663452148449],[8.507639884948844,39.70680618286133],[8.558288574218807,39.69458389282221],[8.608986854553223,39.69093322753912],[8.632486343383846,39.65428543090832],[8.74413013458252,39.62807846069336],[8.785083770751953,39.65490341186518],[8.862778663635368,39.66922378540039],[8.91412734985363,39.722728729248104],[8.925297737121582,39.75938796997082],[8.936801910400447,39.78085708618164],[8.998961448669432,39.76210784912115],[9.06120491027832,39.758613586425774],[9.047477722168026,39.641937255859425]]]},"properties":{"ID_0":112,"ISO":"IT-VS","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":74,"NAME_2":"Medio Campidano","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.626526832580566,40.22515869140625],[9.577462196350211,40.196125030517635],[9.520326614379881,40.19726943969732],[9.47895336151123,40.1693572998048],[9.435646057128961,40.10568237304699],[9.337894439697322,40.07338333129877],[9.321619987487793,39.996688842773494],[9.279387474060115,39.946693420410156],[9.273870468139705,39.85177230834961],[9.293042182922363,39.81360626220709],[9.251144409179688,39.73555374145519],[9.310137748718262,39.6790771484375],[9.38544082641613,39.696262359619254],[9.417709350585994,39.61819458007806],[9.387925148010252,39.5876350402832],[9.315732955932617,39.57865524291992],[9.296211242675836,39.6043052673341],[9.209806442260856,39.62656784057623],[9.148432731628418,39.678497314453125],[9.082490921020621,39.66533660888672],[9.047477722168026,39.641937255859425],[9.06120491027832,39.758613586425774],[8.998961448669432,39.76210784912115],[8.936801910400447,39.78085708618164],[8.925297737121582,39.75938796997082],[8.89396762847906,39.77397918701183],[8.974207878112907,39.80258560180664],[8.987939834594668,39.83213043212896],[8.969938278198242,39.89734649658209],[8.996640205383299,39.9610214233399],[8.94664096832281,40.014202117920036],[8.98874378204357,40.05795669555663],[9.036952018737907,40.05142974853521],[9.036260604858512,40.09678268432628],[9.01104640960699,40.13763427734381],[9.018315315246696,40.19474411010742],[8.983112335205135,40.219287872314396],[8.855615615844725,40.211467742919865],[8.796871185302678,40.192729949951286],[8.674187660217285,40.21023559570307],[8.668691635131948,40.25064086914074],[8.627590179443416,40.26519393920904],[8.6212739944458,40.31997680664068],[8.640653610229606,40.30095672607427],[8.73828506469738,40.35431671142584],[8.81307697296154,40.36541748046881],[8.892337799072322,40.404075622558594],[8.949848175048771,40.36921310424799],[9.02899074554449,40.29759979248047],[9.042976379394645,40.32748031616211],[9.171172142028752,40.37337875366222],[9.22847843170166,40.429477691650334],[9.279806137085075,40.51182174682628],[9.18346309661871,40.50952911376953],[9.190435409545898,40.5378303527832],[9.2874374389649,40.526878356933594],[9.373197555541992,40.57235717773443],[9.380131721496694,40.61177444458019],[9.422314643859806,40.659725189208984],[9.487780570983944,40.64619064331055],[9.564409255981444,40.68106079101568],[9.591179847717399,40.79673004150402],[9.643430709838867,40.822601318359425],[9.664516448974553,40.85541534423833],[9.691805839538574,40.810695648193416],[9.689860343933049,40.76235961914074],[9.710416793823242,40.71236038208007],[9.74958419799799,40.68097305297857],[9.74125003814703,40.62819290161144],[9.790695190429629,40.57097244262706],[9.823749542236442,40.50263977050781],[9.753750801086483,40.38097381591797],[9.690972328185977,40.34624862670904],[9.631249427795524,40.27486038208008],[9.626526832580566,40.22515869140625]]]},"properties":{"ID_0":112,"ISO":"IT-NU","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":75,"NAME_2":"Nuoro","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.651527404785156,39.55062484741211],[9.524630546569881,39.58966064453131],[9.5058851242066,39.62271881103527],[9.458284378051701,39.64262008666998],[9.417709350585994,39.61819458007806],[9.38544082641613,39.696262359619254],[9.310137748718262,39.6790771484375],[9.251144409179688,39.73555374145519],[9.293042182922363,39.81360626220709],[9.273870468139705,39.85177230834961],[9.279387474060115,39.946693420410156],[9.321619987487793,39.996688842773494],[9.337894439697322,40.07338333129877],[9.435646057128961,40.10568237304699],[9.47895336151123,40.1693572998048],[9.520326614379881,40.19726943969732],[9.577462196350211,40.196125030517635],[9.626526832580566,40.22515869140625],[9.6551389694215,40.1434707641601],[9.736527442932243,40.07624816894537],[9.706526756286735,40.03513717651372],[9.684582710266056,39.956809997558594],[9.684305191039982,39.84097290039057],[9.667916297912596,39.776527404785156],[9.67125034332281,39.70153045654308],[9.651250839233398,39.664306640625114],[9.651527404785156,39.55062484741211]]]},"properties":{"ID_0":112,"ISO":"IT-OG","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":76,"NAME_2":"Ogliastra","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.664516448974553,40.85541534423833],[9.643430709838867,40.822601318359425],[9.591179847717399,40.79673004150402],[9.564409255981444,40.68106079101568],[9.487780570983944,40.64619064331055],[9.422314643859806,40.659725189208984],[9.380131721496694,40.61177444458019],[9.373197555541992,40.57235717773443],[9.2874374389649,40.526878356933594],[9.190435409545898,40.5378303527832],[9.195820808410701,40.62725067138677],[9.176322937011832,40.662765502929744],[9.122078895568904,40.647323608398494],[9.013868331909237,40.6812858581543],[9.031306266784668,40.74682998657237],[9.026596069336051,40.79380035400396],[8.97293472290039,40.86371231079107],[8.926104545593319,40.85066604614258],[8.897872924804629,40.86928939819347],[8.990171432495117,40.91290664672857],[8.972529411315918,40.95598220825201],[8.875293731689453,40.93344116210949],[8.829014778137262,40.94980621337896],[8.874029159545898,40.99625015258795],[8.881808280944881,41.02875137329113],[8.933749198913688,41.04542160034179],[9.011810302734432,41.125137329101676],[9.106806755065916,41.13375091552746],[9.153190612793026,41.15513992309576],[9.162360191345329,41.235969543457145],[9.23430633544933,41.25847244262695],[9.2801389694215,41.22847366333002],[9.270137786865234,41.195137023925895],[9.327361106872672,41.18958282470708],[9.364862442016602,41.207084655761776],[9.424028396606445,41.171249389648494],[9.444581031799316,41.13513946533203],[9.51624870300293,41.142360687255916],[9.56986141204834,41.109310150146484],[9.534580230713003,41.0823593139649],[9.531528472900504,41.02680587768566],[9.564304351806697,41.02624893188488],[9.59346961975109,40.96847152709972],[9.560418128967342,40.91819000244151],[9.653751373291072,40.87930679321295],[9.664516448974553,40.85541534423833]]],[[[9.41903018951416,41.26902770996094],[9.43986129760742,41.21597290039057],[9.380693435668945,41.21041870117199],[9.41903018951416,41.26902770996094]]]]},"properties":{"ID_0":112,"ISO":"IT-OT","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":77,"NAME_2":"Olbia-Tempio","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[8.6212739944458,40.31997680664068],[8.627590179443416,40.26519393920904],[8.668691635131948,40.25064086914074],[8.674187660217285,40.21023559570307],[8.796871185302678,40.192729949951286],[8.855615615844725,40.211467742919865],[8.983112335205135,40.219287872314396],[9.018315315246696,40.19474411010742],[9.01104640960699,40.13763427734381],[9.036260604858512,40.09678268432628],[9.036952018737907,40.05142974853521],[8.98874378204357,40.05795669555663],[8.94664096832281,40.014202117920036],[8.996640205383299,39.9610214233399],[8.969938278198242,39.89734649658209],[8.987939834594668,39.83213043212896],[8.974207878112907,39.80258560180664],[8.89396762847906,39.77397918701183],[8.925297737121582,39.75938796997082],[8.91412734985363,39.722728729248104],[8.862778663635368,39.66922378540039],[8.785083770751953,39.65490341186518],[8.74413013458252,39.62807846069336],[8.632486343383846,39.65428543090832],[8.608986854553223,39.69093322753912],[8.558288574218807,39.69458389282221],[8.5040283203125,39.7281951904298],[8.542360305786246,39.77180480957037],[8.556527137756348,39.84736251831049],[8.540692329406852,39.890415191650504],[8.48708438873291,39.91097259521479],[8.399308204650822,39.901248931884815],[8.407641410827694,40.02875137329096],[8.489582061767692,40.077919006347656],[8.459308624267578,40.15013885498058],[8.461250305175895,40.21374893188487],[8.483194351196346,40.285972595214844],[8.427639961242617,40.33514022827154],[8.385692596435547,40.3448600769043],[8.40090179443365,40.40930557250976],[8.423123359680174,40.395660400390625],[8.515083312988281,40.422676086425895],[8.6212739944458,40.31997680664068]]]},"properties":{"ID_0":112,"ISO":"IT-OR","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":78,"NAME_2":"Oristano","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[8.829014778137262,40.94980621337896],[8.875293731689453,40.93344116210949],[8.972529411315918,40.95598220825201],[8.990171432495117,40.91290664672857],[8.897872924804629,40.86928939819347],[8.926104545593319,40.85066604614258],[8.97293472290039,40.86371231079107],[9.026596069336051,40.79380035400396],[9.031306266784668,40.74682998657237],[9.013868331909237,40.6812858581543],[9.122078895568904,40.647323608398494],[9.176322937011832,40.662765502929744],[9.195820808410701,40.62725067138677],[9.190435409545898,40.5378303527832],[9.18346309661871,40.50952911376953],[9.279806137085075,40.51182174682628],[9.22847843170166,40.429477691650334],[9.171172142028752,40.37337875366222],[9.042976379394645,40.32748031616211],[9.02899074554449,40.29759979248047],[8.949848175048771,40.36921310424799],[8.892337799072322,40.404075622558594],[8.81307697296154,40.36541748046881],[8.73828506469738,40.35431671142584],[8.640653610229606,40.30095672607427],[8.6212739944458,40.31997680664068],[8.515083312988281,40.422676086425895],[8.423123359680174,40.395660400390625],[8.40090179443365,40.40930557250976],[8.374030113220329,40.49069976806646],[8.334029197692814,40.51374816894531],[8.295415878295955,40.59319305419933],[8.19791698455822,40.57097244262706],[8.149582862854116,40.581809997558594],[8.143751144409237,40.6223602294923],[8.185691833496094,40.638198852539176],[8.203471183776799,40.68847274780285],[8.137359619140739,40.72735977172863],[8.163749694824219,40.79069519042969],[8.218471527099666,40.86847305297857],[8.221803665161133,40.89180374145519],[8.176251411437931,40.933750152588004],[8.202638626098746,40.97236251831055],[8.23736190795904,40.95319366455078],[8.232358932495117,40.90652847290039],[8.314580917358398,40.84402847290045],[8.417361259460506,40.83819580078125],[8.450414657592772,40.82097244262701],[8.537360191345158,40.82485961914068],[8.622637748718319,40.86152648925786],[8.646249771118221,40.88819885253912],[8.70458030700695,40.91125106811534],[8.790970802307186,40.92208480834966],[8.829014778137262,40.94980621337896]]],[[[8.319027900695858,41.120971679687614],[8.338748931884766,41.059310913085994],[8.285416603088493,41.064861297607415],[8.319027900695858,41.120971679687614]]]]},"properties":{"ID_0":112,"ISO":"IT-SS","NAME_0":"Italy","ID_1":14,"NAME_1":"Sardegna","ID_2":79,"NAME_2":"Sassari","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.73325061798107,37.68405532836914],[13.8011741638183,37.68927383422857],[13.811339378357047,37.64291381835949],[13.766344070434627,37.59829711914074],[13.668552398681697,37.575641632080135],[13.690736770629883,37.556728363037166],[13.691084861755428,37.50190734863287],[13.657848358154352,37.47291946411133],[13.750457763671932,37.428985595703125],[13.82726955413824,37.43352127075201],[13.909123420715446,37.38837051391613],[13.882351875305233,37.36096954345709],[13.927776336670036,37.33173751831066],[13.962240219116211,37.33145904541027],[14.028754234314079,37.276023864746094],[13.983982086181697,37.192733764648494],[14.037592887878475,37.143463134765625],[14.037082672119254,37.10708236694336],[13.976808547973574,37.10902786254883],[13.903470993041934,37.09486007690424],[13.823471069335938,37.14458465576172],[13.750417709350643,37.149028778076115],[13.660970687866268,37.19403076171881],[13.552083015442008,37.287082672119254],[13.447360992431582,37.293193817138786],[13.40513992309576,37.33124923706054],[13.322081565857047,37.363471984863395],[13.214307785034293,37.46181106567394],[13.173192024231014,37.489582061767635],[13.077639579773006,37.50542068481451],[13.039029121398867,37.495140075683594],[12.947637557983512,37.57097244262695],[12.896249771118278,37.57707977294933],[12.918560028076227,37.69039535522461],[12.965015411376953,37.73036956787115],[13.012836456298942,37.74375534057617],[13.081249237060602,37.69507217407238],[13.18850040435791,37.692752838134815],[13.213158607482965,37.64155960083008],[13.254673004150504,37.619262695312614],[13.276513099670467,37.64833450317394],[13.322335243225211,37.65093231201183],[13.321423530578668,37.589210510253906],[13.359545707702694,37.5431365966798],[13.399803161621094,37.55756759643566],[13.38190078735363,37.60064697265625],[13.384735107421873,37.65448379516596],[13.427059173584041,37.64432907104503],[13.50908279418951,37.6601295471192],[13.564415931701603,37.636581420898494],[13.601928710937614,37.65708541870123],[13.656107902526912,37.659320831298885],[13.672840118408203,37.68988800048828],[13.73325061798107,37.68405532836914]]]},"properties":{"ID_0":112,"ISO":"IT-AG","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":80,"NAME_2":"Agrigento","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Agrigente|Girgenti"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.070064544677848,37.713169097900504],[14.078519821167106,37.68898010253912],[14.034237861633413,37.65663909912121],[14.006854057312069,37.672950744628906],[14.0442476272583,37.72701644897461],[14.070064544677848,37.713169097900504]]],[[[14.135728836059569,37.61782455444347],[14.127320289611816,37.51906967163085],[14.142787933349553,37.47843551635736],[14.071249961853082,37.42326354980469],[14.084169387817496,37.3404541015625],[14.166902542114315,37.32508468627923],[14.23175144195568,37.34871292114269],[14.31751918792736,37.32794952392584],[14.353341102600098,37.307262420654354],[14.381415367126579,37.28498840332031],[14.375979423523061,37.2069664001466],[14.43287658691412,37.184059143066406],[14.475879669189455,37.13803482055664],[14.444794654846307,37.054069519043026],[14.338444709777889,37.00125122070324],[14.242360115051381,37.06624984741205],[14.15764045715332,37.09569931030279],[14.037082672119254,37.10708236694336],[14.037592887878475,37.143463134765625],[13.983982086181697,37.192733764648494],[14.028754234314079,37.276023864746094],[13.962240219116211,37.33145904541027],[13.927776336670036,37.33173751831066],[13.882351875305233,37.36096954345709],[13.909123420715446,37.38837051391613],[13.82726955413824,37.43352127075201],[13.750457763671932,37.428985595703125],[13.657848358154352,37.47291946411133],[13.691084861755428,37.50190734863287],[13.690736770629883,37.556728363037166],[13.668552398681697,37.575641632080135],[13.766344070434627,37.59829711914074],[13.811339378357047,37.64291381835949],[13.8011741638183,37.68927383422857],[13.73325061798107,37.68405532836914],[13.80256557464611,37.74375152587896],[13.814590454101674,37.70574951171875],[13.86417388916027,37.69078826904308],[13.905168533325252,37.658584594726506],[13.899998664855898,37.619262695312614],[13.957255363464412,37.586711883545036],[14.028105735778809,37.603477478027344],[14.042756080627555,37.64572143554693],[14.078770637512207,37.64532470703131],[14.135728836059569,37.61782455444347]]]]},"properties":{"ID_0":112,"ISO":"IT-CL","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":81,"NAME_2":"Caltanissetta","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.25872802734375,37.80833435058594],[15.204579353332631,37.74069976806646],[15.219026565551871,37.70847320556646],[15.17485904693609,37.63124847412121],[15.176527976989801,37.57541656494135],[15.115973472595329,37.530693054199276],[15.084304809570426,37.48263931274414],[15.090416908264215,37.35967636108404],[14.9822292327882,37.37524414062506],[14.92276763916027,37.41353988647472],[14.84362506866455,37.38004684448242],[14.844063758850096,37.32566070556646],[14.8914537429809,37.312751770019645],[14.847343444824274,37.260585784912216],[14.811928749084528,37.25774002075207],[14.774155616760309,37.22323989868164],[14.871630668640137,37.190315246582145],[14.79454135894781,37.13317871093756],[14.79373645782482,37.110603332519474],[14.725683212280387,37.10314559936529],[14.703236579895018,37.11882781982422],[14.61098575592041,37.08750152587902],[14.564055442810059,37.052452087402344],[14.52094364166254,37.072841644287166],[14.444794654846307,37.054069519043026],[14.475879669189455,37.13803482055664],[14.43287658691412,37.184059143066406],[14.375979423523061,37.2069664001466],[14.381415367126579,37.28498840332031],[14.353341102600098,37.307262420654354],[14.433206558227651,37.293624877929744],[14.499777793884276,37.309509277343864],[14.494567871093862,37.347675323486385],[14.590799331665039,37.37519454956066],[14.581858634948732,37.40353393554698],[14.625267028808592,37.43519973754883],[14.525336265563965,37.46394348144537],[14.523951530456598,37.5177268981933],[14.544898033142202,37.54399490356457],[14.597910881042479,37.53693389892578],[14.681936264038141,37.55900192260748],[14.78723812103277,37.5048065185548],[14.822297096252385,37.63858413696294],[14.793104171752928,37.65387725830078],[14.798809051513729,37.711669921875],[14.725093841552678,37.682472229003906],[14.742945671081598,37.819244384765625],[14.80320262908941,37.8174781799317],[14.760986328125057,37.869602203369254],[14.763212203979547,37.93455886840826],[14.802042007446346,37.954353332519645],[14.857435226440487,37.92791366577154],[14.927581787109375,37.9613609313966],[14.956354141235408,37.91247940063482],[15.050024032592773,37.89596176147461],[15.111535072326715,37.90727615356451],[15.210231781005916,37.86122512817394],[15.25872802734375,37.80833435058594]]]},"properties":{"ID_0":112,"ISO":"IT-CT","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":82,"NAME_2":"Catania","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Catane"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.742945671081598,37.819244384765625],[14.725093841552678,37.682472229003906],[14.798809051513729,37.711669921875],[14.793104171752928,37.65387725830078],[14.822297096252385,37.63858413696294],[14.78723812103277,37.5048065185548],[14.681936264038141,37.55900192260748],[14.597910881042479,37.53693389892578],[14.544898033142202,37.54399490356457],[14.523951530456598,37.5177268981933],[14.525336265563965,37.46394348144537],[14.625267028808592,37.43519973754883],[14.581858634948732,37.40353393554698],[14.590799331665039,37.37519454956066],[14.494567871093862,37.347675323486385],[14.499777793884276,37.309509277343864],[14.433206558227651,37.293624877929744],[14.353341102600098,37.307262420654354],[14.31751918792736,37.32794952392584],[14.23175144195568,37.34871292114269],[14.166902542114315,37.32508468627923],[14.084169387817496,37.3404541015625],[14.071249961853082,37.42326354980469],[14.142787933349553,37.47843551635736],[14.127320289611816,37.51906967163085],[14.135728836059569,37.61782455444347],[14.162363052368276,37.670696258544865],[14.217204093933105,37.67883300781249],[14.269249916076717,37.70566558837902],[14.294637680053823,37.744033813476506],[14.269192695617733,37.77709197998047],[14.280653953552303,37.84120941162114],[14.327419281005804,37.83875656127929],[14.406967163085993,37.86748123168956],[14.493494987487907,37.825885772705135],[14.553160667419432,37.84081649780285],[14.593869209289663,37.81391906738287],[14.679660797119253,37.79665374755871],[14.742945671081598,37.819244384765625]]]},"properties":{"ID_0":112,"ISO":"IT-EN","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":83,"NAME_2":"Enna","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[15.25872802734375,37.80833435058594],[15.210231781005916,37.86122512817394],[15.111535072326715,37.90727615356451],[15.050024032592773,37.89596176147461],[14.956354141235408,37.91247940063482],[14.927581787109375,37.9613609313966],[14.857435226440487,37.92791366577154],[14.802042007446346,37.954353332519645],[14.763212203979547,37.93455886840826],[14.760986328125057,37.869602203369254],[14.80320262908941,37.8174781799317],[14.742945671081598,37.819244384765625],[14.679660797119253,37.79665374755871],[14.593869209289663,37.81391906738287],[14.553160667419432,37.84081649780285],[14.493494987487907,37.825885772705135],[14.406967163085993,37.86748123168956],[14.327419281005804,37.83875656127929],[14.280653953552303,37.84120941162114],[14.275218009948787,37.90536499023449],[14.184246063232422,38.019859313964844],[14.313749313354492,38.00875091552746],[14.37402820587158,38.016250610351555],[14.423472404480092,38.040142059326115],[14.473749160766657,38.0329208374024],[14.551807403564508,38.05791091918945],[14.63069534301752,38.070415496826286],[14.674860000610465,38.096805572509766],[14.7456893920899,38.16403198242182],[14.787638664245549,38.1518058776856],[14.89152908325201,38.1731948852539],[14.91485977172863,38.19208145141607],[14.969028472900504,38.15263748168957],[15.047362327575682,38.15097045898443],[15.060692787170524,38.12818908691406],[15.114027023315542,38.12680435180663],[15.170688629150389,38.15069961547857],[15.228470802307186,38.20875167846673],[15.350691795349178,38.216251373291016],[15.448749542236271,38.25041580200201],[15.521248817443903,38.298473358154354],[15.652083396911676,38.26541519165038],[15.585971832275447,38.248474121093864],[15.562638282775936,38.183750152588004],[15.477640151977653,38.054862976074276],[15.440694808960018,38.02430725097661],[15.307360649108999,37.879581451416016],[15.25872802734375,37.80833435058594]]],[[[14.960968971252385,38.524028778076286],[14.95569133758545,38.438751220703125],[14.898470878601072,38.47819900512701],[14.904029846191461,38.51041793823248],[14.960968971252385,38.524028778076286]]],[[[14.817360877990724,38.58458328247076],[14.873748779296987,38.58152770996105],[14.855139732360895,38.533473968505916],[14.795693397522028,38.56097412109375],[14.817360877990724,38.58458328247076]]]]},"properties":{"ID_0":112,"ISO":"IT-ME","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":84,"NAME_2":"Messina","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Messine"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.184246063232422,38.019859313964844],[14.275218009948787,37.90536499023449],[14.280653953552303,37.84120941162114],[14.269192695617733,37.77709197998047],[14.294637680053823,37.744033813476506],[14.269249916076717,37.70566558837902],[14.217204093933105,37.67883300781249],[14.162363052368276,37.670696258544865],[14.135728836059569,37.61782455444347],[14.078770637512207,37.64532470703131],[14.042756080627555,37.64572143554693],[14.028105735778809,37.603477478027344],[13.957255363464412,37.586711883545036],[13.899998664855898,37.619262695312614],[13.905168533325252,37.658584594726506],[13.86417388916027,37.69078826904308],[13.814590454101674,37.70574951171875],[13.80256557464611,37.74375152587896],[13.73325061798107,37.68405532836914],[13.672840118408203,37.68988800048828],[13.656107902526912,37.659320831298885],[13.601928710937614,37.65708541870123],[13.564415931701603,37.636581420898494],[13.50908279418951,37.6601295471192],[13.427059173584041,37.64432907104503],[13.384735107421873,37.65448379516596],[13.38190078735363,37.60064697265625],[13.399803161621094,37.55756759643566],[13.359545707702694,37.5431365966798],[13.321423530578668,37.589210510253906],[13.322335243225211,37.65093231201183],[13.276513099670467,37.64833450317394],[13.254673004150504,37.619262695312614],[13.213158607482965,37.64155960083008],[13.18850040435791,37.692752838134815],[13.081249237060602,37.69507217407238],[13.012836456298942,37.74375534057617],[13.089322090148983,37.771507263183594],[13.056432723999023,37.81186676025396],[12.972927093505916,37.82541656494152],[12.943623542785758,37.846004486083984],[12.954839706420955,37.89820480346691],[13.024559020996207,37.90342330932617],[13.047739028930607,37.940345764160156],[12.978471755981559,38.04097366333008],[13.077639579773006,38.08819580078131],[13.0559720993042,38.131805419921875],[13.104578971862907,38.19153213500988],[13.193191528320426,38.169582366943416],[13.272915840148926,38.198192596435604],[13.3593111038208,38.19153213500988],[13.384306907653752,38.10847091674804],[13.440970420837402,38.0948600769044],[13.538472175598201,38.11264038085943],[13.540692329406737,38.058189392089844],[13.622916221618596,38.010139465332024],[13.74513912200939,37.97013854980474],[13.834859848022461,37.98263931274419],[13.945137977600098,38.02736282348627],[14.034029006957951,38.040695190429744],[14.0640287399292,38.0190315246582],[14.184246063232422,38.019859313964844]],[[14.070064544677848,37.713169097900504],[14.0442476272583,37.72701644897461],[14.006854057312069,37.672950744628906],[14.034237861633413,37.65663909912121],[14.078519821167106,37.68898010253912],[14.070064544677848,37.713169097900504]]]},"properties":{"ID_0":112,"ISO":"IT-PA","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":85,"NAME_2":"Palermo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Palerme"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.001298904418945,36.70264053344732],[14.955970764160268,36.69347381591797],[14.912081718444881,36.72375106811523],[14.852917671203556,36.72958374023443],[14.784580230713004,36.70402908325206],[14.687639236450309,36.7215309143067],[14.630970954895021,36.765140533447266],[14.49374866485607,36.785968780517635],[14.458470344543402,36.81569290161132],[14.436806678772085,36.8837509155274],[14.338444709777889,37.00125122070324],[14.444794654846307,37.054069519043026],[14.52094364166254,37.072841644287166],[14.564055442810059,37.052452087402344],[14.61098575592041,37.08750152587902],[14.703236579895018,37.11882781982422],[14.725683212280387,37.10314559936529],[14.79373645782482,37.110603332519474],[14.79454135894781,37.13317871093756],[14.817225456237793,37.110252380371094],[14.818895339965763,37.061508178710994],[14.887796401977539,36.989639282226676],[14.897494316101017,36.926433563232536],[14.85505771636974,36.8288192749024],[14.954311370849723,36.80451583862316],[14.989357948303336,36.77764892578131],[15.001298904418945,36.70264053344732]]]},"properties":{"ID_0":112,"ISO":"IT-RG","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":86,"NAME_2":"Ragusa","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Raguse"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.090416908264215,37.35967636108404],[15.10431098937994,37.310420989990234],[15.224305152893121,37.27041625976574],[15.19125080108654,37.23569869995123],[15.18486022949213,37.19569396972656],[15.237915992736758,37.11541748046875],[15.293749809265195,37.107639312744084],[15.280418395996037,37.03430557250982],[15.302639007568303,37.01514053344721],[15.187359809875543,36.94680404663097],[15.157637596130371,36.9190292358399],[15.137360572815053,36.867084503173935],[15.10680866241455,36.8404159545899],[15.094305992126463,36.797637939453125],[15.139861106872559,36.6840438842774],[15.084027290344295,36.649860382080185],[15.001298904418945,36.70264053344732],[14.989357948303336,36.77764892578131],[14.954311370849723,36.80451583862316],[14.85505771636974,36.8288192749024],[14.897494316101017,36.926433563232536],[14.887796401977539,36.989639282226676],[14.818895339965763,37.061508178710994],[14.817225456237793,37.110252380371094],[14.79454135894781,37.13317871093756],[14.871630668640137,37.190315246582145],[14.774155616760309,37.22323989868164],[14.811928749084528,37.25774002075207],[14.847343444824274,37.260585784912216],[14.8914537429809,37.312751770019645],[14.844063758850096,37.32566070556646],[14.84362506866455,37.38004684448242],[14.92276763916027,37.41353988647472],[14.9822292327882,37.37524414062506],[15.090416908264215,37.35967636108404]]]},"properties":{"ID_0":112,"ISO":"IT-SR","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":87,"NAME_2":"Syracuse","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Siracusa|Syrakus"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[11.953191757202092,36.84041976928705],[12.050971031189022,36.800418853759766],[12.055139541625918,36.76180648803722],[12.02208328247076,36.73430633544922],[11.981528282165584,36.744861602783146],[11.925970077514647,36.80236053466808],[11.953191757202092,36.84041976928705]]],[[[12.308471679687557,37.95597076416015],[12.37013912200939,37.92235946655279],[12.28625106811529,37.914859771728516],[12.308471679687557,37.95597076416015]]],[[[12.978471755981559,38.04097366333008],[13.047739028930607,37.940345764160156],[13.024559020996207,37.90342330932617],[12.954839706420955,37.89820480346691],[12.943623542785758,37.846004486083984],[12.972927093505916,37.82541656494152],[13.056432723999023,37.81186676025396],[13.089322090148983,37.771507263183594],[13.012836456298942,37.74375534057617],[12.965015411376953,37.73036956787115],[12.918560028076227,37.69039535522461],[12.896249771118278,37.57707977294933],[12.780693054199219,37.580970764160156],[12.672915458679313,37.559581756591854],[12.614028930664118,37.635971069335994],[12.564305305480957,37.661804199218864],[12.519306182861328,37.66013717651373],[12.470970153808594,37.70486068725586],[12.47208309173584,37.74375152587896],[12.424027442932129,37.802360534668075],[12.462637901306264,37.8162498474121],[12.484026908874569,37.857917785644524],[12.465971946716309,37.91402816772472],[12.493472099304142,37.98125076293945],[12.560971260070858,38.06542205810541],[12.64374923706066,38.07764053344732],[12.66263866424572,38.113193511962834],[12.710692405700684,38.10985946655279],[12.767639160156364,38.162361145019524],[12.790138244629018,38.110141754150334],[12.829029083251951,38.06513977050787],[12.894860267639217,38.02402877807623],[12.978471755981559,38.04097366333008]]]]},"properties":{"ID_0":112,"ISO":"IT-TP","NAME_0":"Italy","ID_1":15,"NAME_1":"Sicily","ID_2":88,"NAME_2":"Trapani","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.108415603637695,43.75472640991222],[12.165003776550407,43.76321029663085],[12.242305755615178,43.7544898986817],[12.284744262695256,43.765865325927734],[12.369356155395508,43.71590423583995],[12.1864595413208,43.642723083496094],[12.215166091918887,43.61136245727539],[12.154199600219725,43.534393310546875],[12.103686332702635,43.53089141845714],[12.096054077148551,43.50012207031255],[12.145783424377441,43.48052978515636],[12.057839393615723,43.43921661376953],[12.033894538879395,43.401184082031364],[12.073986053466854,43.371379852294865],[12.119726181030273,43.36531829833995],[12.14953708648676,43.25558090209972],[12.086876869201717,43.237297058105526],[12.049853324890135,43.254070281982365],[12.028447151184139,43.192581176757805],[11.962201118469238,43.16787338256836],[11.863504409790039,43.174747467041016],[11.834690093994254,43.225433349609375],[11.796818733215332,43.22304534912121],[11.721487998962346,43.255783081054744],[11.659881591796989,43.3218994140625],[11.567647933960018,43.364234924316406],[11.530701637268123,43.399570465088004],[11.529452323913686,43.457897186279354],[11.473752021789608,43.48557662963878],[11.398487091064396,43.549209594726676],[11.466098785400447,43.58243179321295],[11.522516250610408,43.582042694091854],[11.48862361907959,43.62860107421874],[11.612069129943848,43.69536972045904],[11.573279380798283,43.735908508300895],[11.583923339843805,43.76905441284174],[11.66135787963867,43.87290573120123],[11.711153984069824,43.8784065246582],[11.85702991485607,43.81684112548822],[11.948028564453182,43.791816711425895],[11.9874782562257,43.76287078857422],[12.108415603637695,43.75472640991222]]]},"properties":{"ID_0":112,"ISO":"IT-AR","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":89,"NAME_2":"Arezzo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.525937080383244,44.15861892700201],[11.611801147461051,44.16093444824219],[11.598278045654354,44.12610626220709],[11.653569221496582,44.101654052734375],[11.716867446899471,44.12350463867199],[11.753623008728084,44.12234115600586],[11.695893287658748,44.03629302978521],[11.646622657775879,43.99033355712896],[11.718013763427734,43.922771453857536],[11.711153984069824,43.8784065246582],[11.66135787963867,43.87290573120123],[11.583923339843805,43.76905441284174],[11.573279380798283,43.735908508300895],[11.612069129943848,43.69536972045904],[11.48862361907959,43.62860107421874],[11.522516250610408,43.582042694091854],[11.466098785400447,43.58243179321295],[11.398487091064396,43.549209594726676],[11.364999771118221,43.52708053588867],[11.273332595825138,43.53068923950195],[11.244308471679688,43.497482299804744],[11.194071769714355,43.51529312133795],[11.150567054748592,43.48653411865234],[11.074654579162654,43.526996612548935],[11.016418457031248,43.5394744873048],[10.955655097961426,43.49837112426769],[10.953042030334586,43.45328521728527],[10.870822906494197,43.46148300170904],[10.826506614685172,43.53646087646479],[10.84943962097168,43.56316757202154],[10.835556983947697,43.606655120849666],[10.853393554687557,43.62989044189464],[10.914765357971191,43.64207077026367],[10.878210067748967,43.72016143798828],[10.79950046539318,43.70452880859375],[10.784585952758846,43.733093261718864],[10.712091445922908,43.78730773925781],[10.728751182556152,43.81512832641607],[10.883794784545898,43.79494094848644],[10.965105056762638,43.81344223022472],[10.986056327819938,43.785720825195426],[11.057715415954531,43.7597274780274],[11.095953941345272,43.821010589599666],[11.149751663208008,43.867565155029354],[11.170331954956112,43.9195671081543],[11.180411338806152,44.04324722290045],[11.203396797180119,44.10168838500988],[11.20091342926031,44.1412239074707],[11.281703948974666,44.156291961669915],[11.343493461609,44.20616149902344],[11.381526947021428,44.20095062255871],[11.422061920166072,44.24018859863287],[11.448613166809139,44.20043563842779],[11.525937080383244,44.15861892700201]]]},"properties":{"ID_0":112,"ISO":"IT-FI","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":90,"NAME_2":"Florence","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Firenze|Florenca|Florencia|Florenz"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.746973037719727,42.7867431640625],[11.819904327392633,42.7438850402832],[11.786494255065918,42.67153549194347],[11.73408317565918,42.60704803466797],[11.585307121276912,42.543731689453125],[11.562199592590332,42.51828002929699],[11.617798805236816,42.488494873046925],[11.618662834167537,42.43703079223633],[11.51753139495861,42.43454742431652],[11.457629203796387,42.402694702148544],[11.450406074523869,42.37791824340825],[11.379583358764705,42.39625167846685],[11.220417976379395,42.41374969482433],[11.158473014831657,42.36180496215832],[11.095972061157227,42.39263916015625],[11.08930587768549,42.426250457763786],[11.158748626708928,42.43430709838867],[11.192083358764705,42.51013946533203],[11.157917022705135,42.5618057250976],[11.122637748718374,42.55652618408203],[11.08597087860113,42.62736129760742],[11.008749961853027,42.66180419921875],[10.9629163742066,42.73152923583996],[10.900139808654842,42.757083892822266],[10.782638549804744,42.77680587768566],[10.742362022399957,42.79875183105469],[10.772638320922795,42.83013916015636],[10.774860382080078,42.90819549560547],[10.706165313720703,42.941806793213004],[10.782146453857479,43.00852966308594],[10.781066894531307,43.064582824706974],[10.734530448913517,43.068367004394645],[10.718219757080135,43.10952758789068],[10.797027587890625,43.16183471679699],[10.912516593933105,43.163600921630916],[11.019560813903922,43.18654632568364],[11.08338069915777,43.08502197265625],[11.233413696289006,43.09149932861328],[11.297808647155762,43.07818603515625],[11.364885330200137,43.082099914550895],[11.357561111450252,42.96875762939459],[11.460077285766602,42.95863723754883],[11.520066261291618,42.98188781738286],[11.572564125060978,42.97122955322271],[11.624714851379508,42.92949676513683],[11.625564575195256,42.866142272949276],[11.642295837402457,42.80067443847662],[11.746973037719727,42.7867431640625]]]},"properties":{"ID_0":112,"ISO":"IT-GR","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":91,"NAME_2":"Grosseto","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[10.413195610046387,42.87319564819335],[10.444306373596248,42.84708404541026],[10.434859275817928,42.78291702270519],[10.402360916137752,42.757362365722656],[10.343471527099666,42.76374816894542],[10.136804580688475,42.73125076293957],[10.102359771728572,42.765972137451286],[10.120415687561092,42.80236053466797],[10.249027252197322,42.80014038085943],[10.277360916137695,42.82291793823248],[10.35708332061779,42.79903030395508],[10.413195610046387,42.87319564819335]]],[[[10.718219757080135,43.10952758789068],[10.734530448913517,43.068367004394645],[10.781066894531307,43.064582824706974],[10.782146453857479,43.00852966308594],[10.706165313720703,42.941806793213004],[10.64819526672369,42.953193664550724],[10.559860229492244,42.950695037841854],[10.545693397521973,42.921527862548885],[10.494861602783203,42.93152618408209],[10.482916831970215,42.98263931274425],[10.51569461822504,42.997081756591854],[10.539304733276367,43.10652923583996],[10.537361145019588,43.1929168701173],[10.506251335144043,43.285137176513786],[10.464583396911621,43.317085266113395],[10.424585342407227,43.399307250976676],[10.381526947021483,43.446250915527344],[10.330416679382324,43.47347259521495],[10.293750762939396,43.54735946655279],[10.304582595825138,43.584304809570426],[10.347442626953068,43.5993041992188],[10.438315391540584,43.63507843017578],[10.500903129577637,43.62608718872076],[10.46534442901617,43.54134750366211],[10.508039474487305,43.432781219482536],[10.491342544555664,43.40390014648431],[10.533170700073184,43.32458877563488],[10.582504272460938,43.2923583984375],[10.66813945770258,43.26631546020508],[10.691484451294002,43.209190368652344],[10.664534568786678,43.17423629760748],[10.718219757080135,43.10952758789068]]]]},"properties":{"ID_0":112,"ISO":"IT-LI","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":92,"NAME_2":"Livorno","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Leghorn|Liorna|Livourne"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.471135139465446,44.22700881958002],[10.525940895080623,44.15795898437505],[10.625062942504883,44.121318817138786],[10.723321914672908,44.08392715454113],[10.719960212707575,44.04484939575207],[10.672331809997615,43.98205947875988],[10.675689697265739,43.87663650512689],[10.728751182556152,43.81512832641607],[10.712091445922908,43.78730773925781],[10.647134780883732,43.797401428222656],[10.624126434326172,43.757888793945426],[10.501854896545467,43.75426101684576],[10.454277992248478,43.766326904296875],[10.453010559082088,43.80542373657232],[10.419526100158805,43.83127212524414],[10.382366180419979,43.81517410278332],[10.308054924011229,43.830402374267635],[10.259028434753361,43.81665420532232],[10.240416526794377,43.8720817565918],[10.144026756286678,43.97648239135748],[10.174569129943904,43.98839950561518],[10.243539810180605,44.087909698486435],[10.18747997283947,44.12469863891607],[10.187789916992301,44.20716476440441],[10.23180961608881,44.2293090820313],[10.254872322082463,44.26953506469738],[10.297784805297852,44.28692626953131],[10.372605323791618,44.27033233642584],[10.436733245849664,44.22718429565441],[10.471135139465446,44.22700881958002]]]},"properties":{"ID_0":112,"ISO":"IT-LU","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":93,"NAME_2":"Lucca","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Lucques"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.14304924011236,44.3548202514649],[10.254872322082463,44.26953506469738],[10.23180961608881,44.2293090820313],[10.187789916992301,44.20716476440441],[10.18747997283947,44.12469863891607],[10.243539810180605,44.087909698486435],[10.174569129943904,43.98839950561518],[10.144026756286678,43.97648239135748],[10.06624984741211,44.02736282348632],[10.019188880920524,44.04459762573248],[10.07027816772461,44.098960876464844],[10.003144264221305,44.10861206054699],[9.967485427856502,44.17039108276367],[9.860014915466365,44.2383766174317],[9.855452537536678,44.26901626586914],[9.807213783264217,44.283588409423885],[9.687728881835938,44.36689758300792],[9.733101844787711,44.380332946777344],[9.820962905883844,44.46737670898449],[9.931945800781307,44.47271728515636],[10.007958412170353,44.43268585205089],[9.99030685424799,44.40528488159185],[10.100266456604118,44.34707641601557],[10.14304924011236,44.3548202514649]]]},"properties":{"ID_0":112,"ISO":"IT-MS","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":94,"NAME_2":"Massa Carrara","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Apuania|Massa-Carrare|Massa e Carrara"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.712091445922908,43.78730773925781],[10.784585952758846,43.733093261718864],[10.79950046539318,43.70452880859375],[10.878210067748967,43.72016143798828],[10.914765357971191,43.64207077026367],[10.853393554687557,43.62989044189464],[10.835556983947697,43.606655120849666],[10.84943962097168,43.56316757202154],[10.826506614685172,43.53646087646479],[10.870822906494197,43.46148300170904],[10.953042030334586,43.45328521728527],[11.000454902648869,43.40130996704113],[11.01401615142828,43.365203857421875],[10.973050117492676,43.34523391723644],[10.971938133239746,43.2979087829591],[10.99855804443365,43.26607894897472],[10.989922523498535,43.232093811035156],[10.942552566528434,43.20581436157221],[10.912516593933105,43.163600921630916],[10.797027587890625,43.16183471679699],[10.718219757080135,43.10952758789068],[10.664534568786678,43.17423629760748],[10.691484451294002,43.209190368652344],[10.66813945770258,43.26631546020508],[10.582504272460938,43.2923583984375],[10.533170700073184,43.32458877563488],[10.491342544555664,43.40390014648431],[10.508039474487305,43.432781219482536],[10.46534442901617,43.54134750366211],[10.500903129577637,43.62608718872076],[10.438315391540584,43.63507843017578],[10.347442626953068,43.5993041992188],[10.312084197998045,43.58847045898448],[10.311244964599666,43.58821105957031],[10.310289382934684,43.58791732788086],[10.310137748718205,43.58791732788086],[10.309676170349121,43.58763885498047],[10.267916679382381,43.67819595336919],[10.283472061157225,43.69041824340832],[10.259028434753361,43.81665420532232],[10.308054924011229,43.830402374267635],[10.382366180419979,43.81517410278332],[10.419526100158805,43.83127212524414],[10.453010559082088,43.80542373657232],[10.454277992248478,43.766326904296875],[10.501854896545467,43.75426101684576],[10.624126434326172,43.757888793945426],[10.647134780883732,43.797401428222656],[10.712091445922908,43.78730773925781]]]},"properties":{"ID_0":112,"ISO":"IT-PI","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":95,"NAME_2":"Pisa","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Pise"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[10.816032409668082,44.11658096313471],[10.849676132202148,44.09900283813488],[10.945720672607422,44.082633972168026],[11.002603530883844,44.1127815246582],[11.050428390503043,44.09119033813487],[11.041367530822697,44.03515625000006],[11.01269245147705,44.006435394287166],[11.071641921997127,43.983890533447266],[11.029068946838436,43.940189361572266],[11.016203880310059,43.836681365966854],[10.965105056762638,43.81344223022472],[10.883794784545898,43.79494094848644],[10.728751182556152,43.81512832641607],[10.675689697265739,43.87663650512689],[10.672331809997615,43.98205947875988],[10.719960212707575,44.04484939575207],[10.723321914672908,44.08392715454113],[10.625062942504883,44.121318817138786],[10.642218589782772,44.16078567504894],[10.744303703308105,44.15737152099615],[10.816032409668082,44.11658096313471]]]},"properties":{"ID_0":112,"ISO":"IT-PT","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":96,"NAME_2":"Pistoia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.203396797180119,44.10168838500988],[11.180411338806152,44.04324722290045],[11.170331954956112,43.9195671081543],[11.149751663208008,43.867565155029354],[11.095953941345272,43.821010589599666],[11.057715415954531,43.7597274780274],[10.986056327819938,43.785720825195426],[10.965105056762638,43.81344223022472],[11.016203880310059,43.836681365966854],[11.029068946838436,43.940189361572266],[11.071641921997127,43.983890533447266],[11.01269245147705,44.006435394287166],[11.041367530822697,44.03515625000006],[11.050428390503043,44.09119033813487],[11.160189628601188,44.11336898803711],[11.203396797180119,44.10168838500988]]]},"properties":{"ID_0":112,"ISO":"IT-PO","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":97,"NAME_2":"Prato","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.962201118469238,43.16787338256836],[11.916377067565918,43.126640319824276],[11.923455238342342,43.08247756958008],[11.98176860809326,43.057338714599666],[11.933669090271053,42.90946578979492],[11.953027725219783,42.90195465087896],[11.959547042846678,42.875301361083984],[11.934248924255428,42.87031936645502],[11.895914077758789,42.83564758300792],[11.849143981933592,42.83944702148443],[11.803961753845272,42.80194854736328],[11.746973037719727,42.7867431640625],[11.642295837402457,42.80067443847662],[11.625564575195256,42.866142272949276],[11.624714851379508,42.92949676513683],[11.572564125060978,42.97122955322271],[11.520066261291618,42.98188781738286],[11.460077285766602,42.95863723754883],[11.357561111450252,42.96875762939459],[11.364885330200137,43.082099914550895],[11.297808647155762,43.07818603515625],[11.233413696289006,43.09149932861328],[11.08338069915777,43.08502197265625],[11.019560813903922,43.18654632568364],[10.912516593933105,43.163600921630916],[10.942552566528434,43.20581436157221],[10.989922523498535,43.232093811035156],[10.99855804443365,43.26607894897472],[10.971938133239746,43.2979087829591],[10.973050117492676,43.34523391723644],[11.01401615142828,43.365203857421875],[11.000454902648869,43.40130996704113],[10.953042030334586,43.45328521728527],[10.955655097961426,43.49837112426769],[11.016418457031248,43.5394744873048],[11.074654579162654,43.526996612548935],[11.150567054748592,43.48653411865234],[11.194071769714355,43.51529312133795],[11.244308471679688,43.497482299804744],[11.273332595825138,43.53068923950195],[11.364999771118221,43.52708053588867],[11.398487091064396,43.549209594726676],[11.473752021789608,43.48557662963878],[11.529452323913686,43.457897186279354],[11.530701637268123,43.399570465088004],[11.567647933960018,43.364234924316406],[11.659881591796989,43.3218994140625],[11.721487998962346,43.255783081054744],[11.796818733215332,43.22304534912121],[11.834690093994254,43.225433349609375],[11.863504409790039,43.174747467041016],[11.962201118469238,43.16787338256836]]]},"properties":{"ID_0":112,"ISO":"IT-SI","NAME_0":"Italy","ID_1":16,"NAME_1":"Toscana","ID_2":98,"NAME_2":"Siena","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Sienne"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.478063583374137,46.680465698242244],[12.435143470764217,46.669258117675895],[12.361031532287711,46.62046813964844],[12.262230873108024,46.63000869750982],[12.213430404663084,46.609836578369254],[12.06927871704113,46.67602157592785],[12.048093795776422,46.58644866943371],[11.999432563781795,46.53373718261724],[11.967162132263184,46.545558929443466],[11.82931613922119,46.50978469848633],[11.716836929321289,46.51472473144542],[11.62736320495611,46.47277832031261],[11.620380401611328,46.42610168457031],[11.558275222778263,46.35184097290039],[11.483885765075684,46.36431884765625],[11.455802917480412,46.3358268737793],[11.4049072265625,46.32542419433594],[11.380114555358999,46.29296112060541],[11.324251174926701,46.293510437011825],[11.247672080993766,46.23116302490229],[11.2074556350708,46.220668792724666],[11.139840126037598,46.28422546386719],[11.204487800598258,46.34256362915045],[11.221433639526424,46.461124420166016],[11.20933628082281,46.49673461914068],[11.156540870666618,46.48780822753911],[11.050042152404842,46.50793075561529],[11.07572460174572,46.455715179443466],[10.964819908142204,46.48296356201172],[10.912732124328613,46.44463348388672],[10.798110961914176,46.44572830200201],[10.767219543457145,46.48608779907226],[10.685340881347713,46.45211791992193],[10.623162269592342,46.449001312255916],[10.553021430969238,46.492351531982536],[10.47714424133312,46.49645233154308],[10.456283569335994,46.53629302978527],[10.488758087158203,46.61922073364258],[10.412639617919922,46.63770294189459],[10.392670631408635,46.680843353271484],[10.444004058838004,46.752651214599666],[10.449521064758358,46.799850463867244],[10.479442596435604,46.86011123657221],[10.564279556274471,46.84201812744146],[10.666956901550407,46.87600326538086],[10.75448036193859,46.834873199463004],[10.757199287414608,46.79030990600586],[10.874689102172795,46.76651000976574],[10.931680679321401,46.773910522460994],[11.009279251098688,46.765209197998104],[11.075778961181584,46.82081222534174],[11.075670242309684,46.85820007324224],[11.109271049499625,46.92739868164062],[11.208600044250488,46.967353820800895],[11.32099628448492,46.993556976318416],[11.408454895019643,46.9692840576173],[11.502786636352482,47.011390686035206],[11.538007736206055,46.98723220825201],[11.617098808288574,47.01539993286133],[11.66712379455572,46.995422363281364],[11.775319099426326,46.986297607421875],[11.859970092773379,47.0007209777832],[11.932321548461857,47.03569030761719],[12.048950195312614,47.054061889648494],[12.128748893737907,47.07929611206055],[12.216689109802246,47.09096145629883],[12.245669364929311,47.071163177490284],[12.210722923278752,47.03360366821295],[12.124311447143555,47.00744628906244],[12.135801315307617,46.96310043334955],[12.21580696105957,46.8771209716798],[12.27043628692627,46.888450622558594],[12.304768562316895,46.83447647094732],[12.283638954162598,46.78680801391613],[12.34798812866211,46.77870941162121],[12.38242626190197,46.71805572509777],[12.478063583374137,46.680465698242244]]]},"properties":{"ID_0":112,"ISO":"IT-BZ","NAME_0":"Italy","ID_1":17,"NAME_1":"Trentino-Alto Adige","ID_2":99,"NAME_2":"Bolzano","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Bozen|Südtirol|Alto Adige"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.82931613922119,46.50978469848633],[11.814166069030819,46.47903060913085],[11.879657745361385,46.47117614746099],[11.833047866821346,46.38808059692383],[11.780320167541504,46.35284042358404],[11.832858085632381,46.32603836059582],[11.838644027710018,46.27161788940435],[11.923242568969783,46.24870681762701],[11.940573692321832,46.19965744018555],[11.894413948059194,46.12204742431652],[11.814676284790037,46.103168487548885],[11.719026565551871,46.10422897338861],[11.66790866851818,46.038963317871094],[11.685300827026424,45.98497009277343],[11.67423534393322,45.9652557373048],[11.588608741760254,45.96990203857422],[11.57825088500982,46.0074195861817],[11.511716842651367,46.01290130615246],[11.447793960571403,45.981803894043026],[11.373408317565975,45.97407531738281],[11.38283538818365,45.943359375],[11.325361251831055,45.9183235168457],[11.262416839599666,45.91739654541009],[11.240348815917969,45.85688400268555],[11.17498970031744,45.787982940673764],[11.175677299499625,45.73401260375971],[11.13952445983881,45.69776153564458],[10.999999046325684,45.708511352539176],[10.938480377197266,45.67432022094726],[10.890603065490778,45.7159805297851],[10.844860076904297,45.71951675415033],[10.884431838989258,45.817893981933594],[10.841188430786133,45.83367538452154],[10.655679702758903,45.833549499511776],[10.652065277099666,45.81339263916026],[10.564509391784725,45.78503417968744],[10.50924015045166,45.82465744018554],[10.508734703064079,45.90626144409179],[10.458191871643123,46.009452819824276],[10.49196624755865,46.067726135253906],[10.542615890502987,46.104164123535156],[10.566293716430664,46.167972564697266],[10.54243183135992,46.18953704833996],[10.586728096008414,46.248832702636776],[10.566657066345272,46.32723617553711],[10.516762733459528,46.34412765502941],[10.631519317627067,46.40345764160156],[10.623162269592342,46.449001312255916],[10.685340881347713,46.45211791992193],[10.767219543457145,46.48608779907226],[10.798110961914176,46.44572830200201],[10.912732124328613,46.44463348388672],[10.964819908142204,46.48296356201172],[11.07572460174572,46.455715179443466],[11.050042152404842,46.50793075561529],[11.156540870666618,46.48780822753911],[11.20933628082281,46.49673461914068],[11.221433639526424,46.461124420166016],[11.204487800598258,46.34256362915045],[11.139840126037598,46.28422546386719],[11.2074556350708,46.220668792724666],[11.247672080993766,46.23116302490229],[11.324251174926701,46.293510437011825],[11.380114555358999,46.29296112060541],[11.4049072265625,46.32542419433594],[11.455802917480412,46.3358268737793],[11.483885765075684,46.36431884765625],[11.558275222778263,46.35184097290039],[11.620380401611328,46.42610168457031],[11.62736320495611,46.47277832031261],[11.716836929321289,46.51472473144542],[11.82931613922119,46.50978469848633]]]},"properties":{"ID_0":112,"ISO":"IT-TN","NAME_0":"Italy","ID_1":17,"NAME_1":"Trentino-Alto Adige","ID_2":100,"NAME_2":"Trento","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Trente|Trient"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.76838684082037,43.46080398559582],[12.775376319885254,43.40292358398449],[12.747756004333553,43.391410827636776],[12.863289833068848,43.21219635009777],[12.863427162170524,43.166923522949276],[12.898262977600154,43.0944442749024],[12.907649040222225,43.0363502502442],[12.896760940551813,42.96554946899414],[12.977705001831055,42.9266471862793],[12.977093696594238,42.87076950073248],[13.055210113525332,42.921066284179744],[13.113157272338924,42.890296936035156],[13.16178703308111,42.83286666870123],[13.212748527526797,42.84248733520508],[13.236183166503906,42.86865615844726],[13.264913558959961,42.80922317504894],[13.190705299377553,42.734432220459034],[13.17506313323969,42.667072296142635],[13.145145416259822,42.64728546142578],[13.059503555297965,42.623802185058594],[12.897254943847656,42.61740875244146],[12.862354278564567,42.66536331176763],[12.793332099914664,42.66396713256836],[12.775993347168026,42.6369361877442],[12.713025093078727,42.62333297729492],[12.623166084289608,42.67446136474615],[12.574249267578239,42.714748382568416],[12.517004013061467,42.718769073486385],[12.397301673889103,42.677703857421925],[12.333334922790641,42.750789642333984],[12.291708946228084,42.78217697143566],[12.328227996826227,42.851348876953125],[12.321827888488883,42.914424896240234],[12.258799552917537,42.91835784912115],[12.126983642578239,42.943332672119254],[12.03875732421875,42.933284759521484],[12.018646240234489,42.880886077880916],[11.934248924255428,42.87031936645502],[11.959547042846678,42.875301361083984],[11.953027725219783,42.90195465087896],[11.933669090271053,42.90946578979492],[11.98176860809326,43.057338714599666],[11.923455238342342,43.08247756958008],[11.916377067565918,43.126640319824276],[11.962201118469238,43.16787338256836],[12.028447151184139,43.192581176757805],[12.049853324890135,43.254070281982365],[12.086876869201717,43.237297058105526],[12.14953708648676,43.25558090209972],[12.119726181030273,43.36531829833995],[12.073986053466854,43.371379852294865],[12.033894538879395,43.401184082031364],[12.057839393615723,43.43921661376953],[12.145783424377441,43.48052978515636],[12.096054077148551,43.50012207031255],[12.103686332702635,43.53089141845714],[12.154199600219725,43.534393310546875],[12.215166091918887,43.61136245727539],[12.295330047607363,43.59431457519531],[12.357744216919002,43.618232727050895],[12.374444961547793,43.58523941040039],[12.345905303955078,43.554576873779354],[12.399991989135797,43.514171600341854],[12.500763893127496,43.52241516113287],[12.565206527710018,43.46075439453125],[12.626708030700627,43.42198181152355],[12.664120674133358,43.43777847290038],[12.7098007202149,43.4256324768067],[12.735560417175293,43.46530151367199],[12.76838684082037,43.46080398559582]]]},"properties":{"ID_0":112,"ISO":"IT-PG","NAME_0":"Italy","ID_1":18,"NAME_1":"Umbria","ID_2":101,"NAME_2":"Perugia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Pérouse|Perúgia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.897254943847656,42.61740875244146],[12.89366340637207,42.564464569091854],[12.848755836486928,42.553775787353565],[12.7744779586792,42.51406478881836],[12.728519439697266,42.51011276245123],[12.742503166198787,42.47150802612304],[12.666907310485954,42.44194412231445],[12.519695281982422,42.36857223510748],[12.48898601531988,42.3996467590332],[12.46719074249279,42.39586639404291],[12.445633888244686,42.39979171752929],[12.41231822967535,42.44698333740229],[12.395854949951115,42.500289916992244],[12.35216331481945,42.47463226318354],[12.317380905151367,42.489356994628906],[12.239662170410213,42.572982788085994],[12.244282722473145,42.62907028198242],[12.161956787109373,42.67788314819336],[12.030738830566406,42.65139770507823],[11.942287445068303,42.68428039550781],[11.92724418640148,42.705718994140675],[11.980431556701717,42.7655601501466],[11.93225955963146,42.77941513061529],[11.895914077758789,42.83564758300792],[11.934248924255428,42.87031936645502],[12.018646240234489,42.880886077880916],[12.03875732421875,42.933284759521484],[12.126983642578239,42.943332672119254],[12.258799552917537,42.91835784912115],[12.321827888488883,42.914424896240234],[12.328227996826227,42.851348876953125],[12.291708946228084,42.78217697143566],[12.333334922790641,42.750789642333984],[12.397301673889103,42.677703857421925],[12.517004013061467,42.718769073486385],[12.574249267578239,42.714748382568416],[12.623166084289608,42.67446136474615],[12.713025093078727,42.62333297729492],[12.775993347168026,42.6369361877442],[12.793332099914664,42.66396713256836],[12.862354278564567,42.66536331176763],[12.897254943847656,42.61740875244146]]]},"properties":{"ID_0":112,"ISO":"IT-TR","NAME_0":"Italy","ID_1":18,"NAME_1":"Umbria","ID_2":102,"NAME_2":"Terni","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.874930858612117,45.930549621582145],[7.878063201904411,45.92736434936535],[7.864195823669547,45.79193115234374],[7.937713146209775,45.725288391113395],[7.906301021575928,45.682907104492244],[7.940472126007137,45.644195556640675],[7.896866798400992,45.59097671508789],[7.849968910217398,45.603210449218864],[7.733782768249569,45.55127334594737],[7.558046817779598,45.59130096435547],[7.466107845306396,45.57837677001959],[7.375261783599854,45.517364501953175],[7.270605087280387,45.515628814697266],[7.224533081054801,45.47157287597662],[7.122765064239616,45.50719070434582],[7.101458072662467,45.46526718139643],[7.053841114044246,45.499980926513615],[7.006451129913387,45.51078033447265],[6.985504627227783,45.62044143676763],[6.824276924133414,45.72187042236339],[6.812168121337947,45.76046371459972],[6.820878982543945,45.82686996459972],[6.876675128936768,45.82396316528326],[7.011149883270263,45.88225936889648],[7.049919128418026,45.92608642578131],[7.122085094451904,45.8623657226563],[7.157534122467155,45.88274002075207],[7.262650012969971,45.89280319213873],[7.296175956726073,45.925678253173935],[7.391442775726319,45.90019989013683],[7.50042104721075,45.96535873413097],[7.590751171112117,45.97594070434576],[7.675205230712891,45.97388839721685],[7.713220119476317,45.95059585571294],[7.801979064941463,45.92414474487316],[7.874930858612117,45.930549621582145]]]},"properties":{"ID_0":112,"ISO":"IT-AO","NAME_0":"Italy","ID_1":19,"NAME_1":"Valle d'Aosta","ID_2":103,"NAME_2":"Aosta","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Aoste|Val d'Aosta, Valle d'Aosta"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.736565589904899,46.63608932495123],[12.74311542510992,46.59664535522472],[12.717514991760368,46.546123504638786],[12.63158988952648,46.51303863525402],[12.655060768127498,46.485263824463004],[12.607789039611871,46.46516036987305],[12.570953369140682,46.476364135742244],[12.5068626403808,46.44184112548834],[12.4996919631958,46.41307830810558],[12.412795066833553,46.33235168457037],[12.380064964294547,46.33266067504888],[12.330244064331167,46.28425216674816],[12.324991226196403,46.25581741333019],[12.37332248687744,46.22482299804699],[12.431591033935604,46.210323333740234],[12.499824523925838,46.13859939575195],[12.484372138976992,46.104316711425724],[12.428847312927303,46.077209472656364],[12.399991989135797,46.042308807373104],[12.392490386962947,46.07223510742199],[12.323405265808105,46.08313369750982],[12.235418319702205,46.01927185058594],[12.110766410827694,46.003700256347706],[12.06324672698986,45.96364593505864],[12.033723831176815,45.97451782226568],[11.953035354614315,45.94913482666021],[11.951538085937441,45.8966903686524],[11.877090454101674,45.8821296691895],[11.826313018798771,45.908992767334034],[11.80057239532482,45.881454467773494],[11.788290023803768,45.9251823425293],[11.728485107421932,45.93724822998047],[11.685300827026424,45.98497009277343],[11.66790866851818,46.038963317871094],[11.719026565551871,46.10422897338861],[11.814676284790037,46.103168487548885],[11.894413948059194,46.12204742431652],[11.940573692321832,46.19965744018555],[11.923242568969783,46.24870681762701],[11.838644027710018,46.27161788940435],[11.832858085632381,46.32603836059582],[11.780320167541504,46.35284042358404],[11.833047866821346,46.38808059692383],[11.879657745361385,46.47117614746099],[11.814166069030819,46.47903060913085],[11.82931613922119,46.50978469848633],[11.967162132263184,46.545558929443466],[11.999432563781795,46.53373718261724],[12.048093795776422,46.58644866943371],[12.06927871704113,46.67602157592785],[12.213430404663084,46.609836578369254],[12.262230873108024,46.63000869750982],[12.361031532287711,46.62046813964844],[12.435143470764217,46.669258117675895],[12.478063583374137,46.680465698242244],[12.559069633484,46.65792083740239],[12.713255882263296,46.65087890625006],[12.736565589904899,46.63608932495123]]]},"properties":{"ID_0":112,"ISO":"IT-BL","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":104,"NAME_2":"Belluno","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.093444824218691,45.599235534668075],[12.03637886047369,45.572227478027344],[12.008584022521916,45.53127288818365],[11.98392105102539,45.45334625244135],[12.014445304870662,45.42507553100586],[11.976021766662598,45.39751434326172],[12.114951133728141,45.305934906005916],[12.155138969421387,45.302791595458984],[12.154861450195256,45.26791763305664],[12.2024440765382,45.26013946533203],[12.154691696167049,45.21659469604492],[11.978799819946403,45.188060760498104],[11.96974182128912,45.13491058349615],[11.925461769104002,45.14405822753912],[11.809020042419377,45.122112274170036],[11.762243270874137,45.09655380249035],[11.61441516876232,45.10962295532232],[11.578038215637207,45.124889373779354],[11.49398231506359,45.10399246215832],[11.417907714843748,45.13025665283203],[11.403806686401424,45.26581954956055],[11.488028526306096,45.26687240600597],[11.5711927413941,45.26243209838872],[11.589303970336971,45.31394958496094],[11.620779991149846,45.33117294311518],[11.616703033447207,45.388938903808594],[11.746648788452148,45.473049163818466],[11.723944664001579,45.54534530639659],[11.65874099731451,45.54108047485357],[11.680855751037711,45.64165115356457],[11.714749336242619,45.68226242065441],[11.822681427001895,45.6880722045899],[11.881903648376465,45.66668319702143],[11.933751106262205,45.61602020263683],[12.075648307800293,45.64235687255853],[12.093444824218691,45.599235534668075]]]},"properties":{"ID_0":112,"ISO":"IT-PD","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":105,"NAME_2":"Padua","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Padoue|Padova"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.398496627807672,44.7926406860351],[12.358345031738395,44.814521789550895],[12.337293624878042,44.85315322875988],[12.287628173828125,44.87122344970697],[12.281847000122127,44.942684173583984],[12.225951194763297,44.923896789550774],[12.170125961303711,44.94300460815441],[12.141585350036678,44.92935562133789],[12.098981857299803,44.972396850585994],[11.963665962219181,44.987747192382926],[11.922171592712402,44.97557830810547],[11.80167484283447,44.976772308349716],[11.745738029480037,44.93804931640631],[11.625800132751465,44.890155792236435],[11.532971382141227,44.93776702880871],[11.427749633789176,44.95100784301769],[11.415790557861385,44.968276977539176],[11.332862854003963,44.99316024780285],[11.202448844909668,45.06113052368163],[11.20648002624506,45.11041641235357],[11.245230674743652,45.093391418457145],[11.316718101501579,45.09097671508795],[11.361788749694881,45.05824279785162],[11.401706695556753,45.053726196289176],[11.446809768676815,45.0815925598145],[11.417907714843748,45.13025665283203],[11.49398231506359,45.10399246215832],[11.578038215637207,45.124889373779354],[11.61441516876232,45.10962295532232],[11.762243270874137,45.09655380249035],[11.809020042419377,45.122112274170036],[11.925461769104002,45.14405822753912],[11.96974182128912,45.13491058349615],[12.026890754699764,45.13958358764654],[12.048653602600098,45.1062850952149],[12.141818046569824,45.05655288696289],[12.16879081726074,45.09487152099615],[12.281676292419377,45.12385559082037],[12.32874965667736,45.15907287597656],[12.269583702087457,45.11347198486328],[12.279582023620662,45.078193664550774],[12.350139617919922,45.08097076416027],[12.377362251281681,45.011528015136776],[12.45736217498785,44.99819564819336],[12.435416221618652,44.91652679443364],[12.4662504196167,44.90069580078131],[12.467082023620662,44.84347152709955],[12.387638092040959,44.86624908447277],[12.398496627807672,44.7926406860351]]]},"properties":{"ID_0":112,"ISO":"IT-RO","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":106,"NAME_2":"Rovigo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[12.399991989135797,46.042308807373104],[12.429174423217829,45.99665832519537],[12.42328262329113,45.95705032348638],[12.506175041198786,45.9242897033692],[12.538078308105469,45.86954879760748],[12.60667896270752,45.83913421630865],[12.662639617920036,45.793327331543026],[12.647567749023438,45.74831390380865],[12.671792030334473,45.71772766113281],[12.603442192077692,45.680961608886776],[12.576155662536564,45.69805526733404],[12.49554824829113,45.67485046386719],[12.486639022827262,45.640537261963],[12.440262794494629,45.637050628662166],[12.439371109008846,45.56000900268565],[12.353352546691895,45.588771820068416],[12.294123649597282,45.57362747192383],[12.27232360839855,45.533401489257926],[12.206648826599178,45.54214096069335],[12.145931243896598,45.596111297607365],[12.093444824218691,45.599235534668075],[12.075648307800293,45.64235687255853],[11.933751106262205,45.61602020263683],[11.881903648376465,45.66668319702143],[11.822681427001895,45.6880722045899],[11.804248809814451,45.800838470459034],[11.75134181976324,45.824249267578175],[11.743676185607908,45.855800628662166],[11.80057239532482,45.881454467773494],[11.826313018798771,45.908992767334034],[11.877090454101674,45.8821296691895],[11.951538085937441,45.8966903686524],[11.953035354614315,45.94913482666021],[12.033723831176815,45.97451782226568],[12.06324672698986,45.96364593505864],[12.110766410827694,46.003700256347706],[12.235418319702205,46.01927185058594],[12.323405265808105,46.08313369750982],[12.392490386962947,46.07223510742199],[12.399991989135797,46.042308807373104]]]},"properties":{"ID_0":112,"ISO":"IT-TV","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":107,"NAME_2":"Treviso","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Trévise"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.28902912139904,45.23236083984381],[12.312639236450138,45.182083129882926],[12.258473396301326,45.1834716796875],[12.28902912139904,45.23236083984381]]],[[[12.32874965667736,45.15907287597656],[12.281676292419377,45.12385559082037],[12.16879081726074,45.09487152099615],[12.141818046569824,45.05655288696289],[12.048653602600098,45.1062850952149],[12.026890754699764,45.13958358764654],[11.96974182128912,45.13491058349615],[11.978799819946403,45.188060760498104],[12.154691696167049,45.21659469604492],[12.2024440765382,45.26013946533203],[12.221249580383358,45.19374847412104],[12.32874965667736,45.15907287597656]]],[[[12.98002147674572,45.83493804931646],[13.002483367919979,45.7492790222168],[13.03001213073736,45.73602294921875],[13.045344352722168,45.68520355224615],[13.084305763244743,45.65692520141613],[13.095973014831657,45.63486099243164],[12.907082557678336,45.61430740356451],[12.860415458679311,45.585971832275504],[12.719582557678278,45.525417327880916],[12.582082748413086,45.4779167175293],[12.600137710571287,45.53736114501959],[12.536805152893123,45.567916870117294],[12.4762487411499,45.55930709838867],[12.439306259155329,45.521526336669865],[12.369304656982536,45.50930404663097],[12.256528854370115,45.46097183227545],[12.259306907653922,45.41541671752935],[12.215970993042049,45.41652679443353],[12.155138969421387,45.302791595458984],[12.114951133728141,45.305934906005916],[11.976021766662598,45.39751434326172],[12.014445304870662,45.42507553100586],[11.98392105102539,45.45334625244135],[12.008584022521916,45.53127288818365],[12.03637886047369,45.572227478027344],[12.093444824218691,45.599235534668075],[12.145931243896598,45.596111297607365],[12.206648826599178,45.54214096069335],[12.27232360839855,45.533401489257926],[12.294123649597282,45.57362747192383],[12.353352546691895,45.588771820068416],[12.439371109008846,45.56000900268565],[12.440262794494629,45.637050628662166],[12.486639022827262,45.640537261963],[12.49554824829113,45.67485046386719],[12.576155662536564,45.69805526733404],[12.603442192077692,45.680961608886776],[12.671792030334473,45.71772766113281],[12.647567749023438,45.74831390380865],[12.662639617920036,45.793327331543026],[12.729864120483342,45.83749389648437],[12.782838821411133,45.85485076904297],[12.862162590026799,45.85168075561535],[12.930473327636776,45.818248748779354],[12.98002147674572,45.83493804931646]]]]},"properties":{"ID_0":112,"ISO":"IT-VE","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":108,"NAME_2":"Venezia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Venecia|Venedig|Veneza|Venezia|Venise|"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.13952445983881,45.69776153564458],[11.148633956909293,45.65254211425787],[11.184782981872559,45.619102478027344],[11.236857414245662,45.60100173950201],[11.25251770019531,45.54314041137695],[11.321240425109977,45.499870300293075],[11.355331420898438,45.35445785522461],[11.45366382598877,45.324504852294865],[11.44138145446783,45.30379867553716],[11.488028526306096,45.26687240600597],[11.403806686401424,45.26581954956055],[11.417907714843748,45.13025665283203],[11.446809768676815,45.0815925598145],[11.401706695556753,45.053726196289176],[11.361788749694881,45.05824279785162],[11.316718101501579,45.09097671508795],[11.245230674743652,45.093391418457145],[11.20648002624506,45.11041641235357],[11.139745712280273,45.12478256225597],[11.073940277099664,45.099674224853516],[10.99902439117426,45.15954971313476],[10.991399765014705,45.19702911376953],[10.935187339782772,45.234039306640625],[10.847625732421875,45.25749969482422],[10.78383541107172,45.316345214843864],[10.738435745239315,45.28816986083979],[10.698764801025447,45.38101196289074],[10.655651092529297,45.416748046875],[10.643918037414664,45.45545196533203],[10.629487991333065,45.60297775268549],[10.703042984008789,45.67364883422857],[10.841188430786133,45.83367538452154],[10.884431838989258,45.817893981933594],[10.844860076904297,45.71951675415033],[10.890603065490778,45.7159805297851],[10.938480377197266,45.67432022094726],[10.999999046325684,45.708511352539176],[11.13952445983881,45.69776153564458]]]},"properties":{"ID_0":112,"ISO":"IT-VR","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":109,"NAME_2":"Verona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Vérone"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.685300827026424,45.98497009277343],[11.728485107421932,45.93724822998047],[11.788290023803768,45.9251823425293],[11.80057239532482,45.881454467773494],[11.743676185607908,45.855800628662166],[11.75134181976324,45.824249267578175],[11.804248809814451,45.800838470459034],[11.822681427001895,45.6880722045899],[11.714749336242619,45.68226242065441],[11.680855751037711,45.64165115356457],[11.65874099731451,45.54108047485357],[11.723944664001579,45.54534530639659],[11.746648788452148,45.473049163818466],[11.616703033447207,45.388938903808594],[11.620779991149846,45.33117294311518],[11.589303970336971,45.31394958496094],[11.5711927413941,45.26243209838872],[11.488028526306096,45.26687240600597],[11.44138145446783,45.30379867553716],[11.45366382598877,45.324504852294865],[11.355331420898438,45.35445785522461],[11.321240425109977,45.499870300293075],[11.25251770019531,45.54314041137695],[11.236857414245662,45.60100173950201],[11.184782981872559,45.619102478027344],[11.148633956909293,45.65254211425787],[11.13952445983881,45.69776153564458],[11.175677299499625,45.73401260375971],[11.17498970031744,45.787982940673764],[11.240348815917969,45.85688400268555],[11.262416839599666,45.91739654541009],[11.325361251831055,45.9183235168457],[11.38283538818365,45.943359375],[11.373408317565975,45.97407531738281],[11.447793960571403,45.981803894043026],[11.511716842651367,46.01290130615246],[11.57825088500982,46.0074195861817],[11.588608741760254,45.96990203857422],[11.67423534393322,45.9652557373048],[11.685300827026424,45.98497009277343]]]},"properties":{"ID_0":112,"ISO":"IT-VI","NAME_0":"Italy","ID_1":20,"NAME_1":"Veneto","ID_2":110,"NAME_2":"Vicenza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Vicence"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/morocco.geojson b/superset/assets/visualizations/countries/morocco.geojson new file mode 100644 index 0000000000000..9e7d54c2dbbfa --- /dev/null +++ b/superset/assets/visualizations/countries/morocco.geojson @@ -0,0 +1,56 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.784585952758732,33.59080505371094],[-6.793757915496825,33.553867340087834],[-6.851530075073184,33.485015869140675],[-6.855122089385929,33.45077514648432],[-6.809628009796086,33.384441375732706],[-6.84026384353632,33.33107376098644],[-6.83319616317749,33.262519836425724],[-6.844503879547062,33.22910308837902],[-6.879354953765868,33.2447891235351],[-6.933492183685303,33.32664871215848],[-7.023376941680794,33.32531356811552],[-7.051694869995117,33.271419525146484],[-7.112172126769963,33.23898696899414],[-7.195511817932073,33.23712921142589],[-7.262524127960148,33.22522735595709],[-7.272869110107422,33.24623870849615],[-7.209487915039005,33.29833221435558],[-7.217001914977971,33.33669281005871],[-7.297786235809268,33.352657318115405],[-7.299897193908691,33.38187408447276],[-7.277733802795296,33.424789428711044],[-7.348810195922852,33.427036285400334],[-7.403759956359862,33.451576232910156],[-7.412817955017033,33.478412628174055],[-7.366469860076847,33.49253845214855],[-7.401328086853027,33.55224227905279],[-7.389826774597111,33.5786247253419],[-7.405980110168399,33.617065429687614],[-7.371426105499268,33.67279434204107],[-7.349861145019531,33.71755599975586],[-7.34992504119873,33.71763992309576],[-7.350694179534854,33.717681884765625],[-7.266251087188663,33.78208160400385],[-7.126805782318115,33.82962036132812],[-7.113366127014159,33.809440612793026],[-7.068931102752629,33.806552886963],[-7.03718185424799,33.74709320068365],[-7.036465167999268,33.70339584350597],[-7.005486965179442,33.65933227539068],[-6.946936130523624,33.62979125976568],[-6.88804388046259,33.5791397094726],[-6.784585952758732,33.59080505371094]]]},"properties":{"ID_0":152,"ISO":"MA-BES","NAME_0":"Morocco","ID_1":1,"NAME_1":"Chaouia - Ouardigha","ID_2":1,"NAME_2":"Ben Slimane","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.010511875152531,32.76110076904297],[-6.049743175506534,32.71965789794933],[-6.086471080780029,32.70076370239258],[-6.205180168151799,32.688438415527344],[-6.258750915527343,32.6686897277832],[-6.439866065979004,32.66658782958989],[-6.536411762237492,32.691303253173885],[-6.616106986999454,32.66783905029297],[-6.61369800567627,32.6371765136721],[-6.688073158264103,32.653907775878906],[-6.781012058258057,32.66605758666992],[-6.863515853881835,32.62318801879888],[-6.933784008026065,32.60861587524414],[-6.979220867156982,32.634773254394645],[-7.011248111724853,32.66818237304699],[-7.004909992218017,32.72402191162138],[-7.020514965057373,32.75652313232422],[-6.9804949760437,32.79357147216797],[-6.983243942260685,32.873184204101676],[-6.962800025939885,32.91022109985357],[-6.967543125152587,32.93584442138672],[-6.922049999237004,32.960498809814396],[-6.876819133758545,33.01851272583008],[-6.879459857940617,33.09807205200195],[-6.839612960815373,33.15467453002947],[-6.845807075500431,33.19810867309581],[-6.806573867797851,33.21526336669922],[-6.753058910369816,33.22208786010748],[-6.705062866210938,33.203643798828125],[-6.604753971099797,33.21557998657249],[-6.565062046050969,33.19209671020508],[-6.522500038146916,33.142078399658146],[-6.48191213607788,33.190284729003906],[-6.361415863037053,33.23888778686529],[-6.397848129272461,33.176532745361385],[-6.388197898864745,33.16184997558594],[-6.290180206298714,33.13375854492199],[-6.278553962707462,33.10717391967768],[-6.238834857940674,33.0959091186524],[-6.192454814910889,33.05808639526373],[-6.136046886444035,33.03523254394531],[-6.12737321853632,32.99860763549816],[-6.083452224731388,32.98269653320324],[-6.076224803924504,32.95841598510742],[-6.138134956359863,32.939758300781364],[-6.140388011932373,32.90184402465826],[-6.108398914337101,32.89153289794933],[-6.042300224304198,32.90237426757824],[-6.035702228546143,32.87444305419922],[-5.999925136566162,32.833904266357415],[-6.020800113677922,32.8226776123048],[-6.010511875152531,32.76110076904297]]]},"properties":{"ID_0":152,"ISO":"MA-KHO","NAME_0":"Morocco","ID_1":1,"NAME_1":"Chaouia - Ouardigha","ID_2":2,"NAME_2":"Khouribga","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.403759956359862,33.451576232910156],[-7.348810195922852,33.427036285400334],[-7.277733802795296,33.424789428711044],[-7.299897193908691,33.38187408447276],[-7.297786235809268,33.352657318115405],[-7.217001914977971,33.33669281005871],[-7.209487915039005,33.29833221435558],[-7.272869110107422,33.24623870849615],[-7.262524127960148,33.22522735595709],[-7.195511817932073,33.23712921142589],[-7.112172126769963,33.23898696899414],[-7.051694869995117,33.271419525146484],[-7.023376941680794,33.32531356811552],[-6.933492183685303,33.32664871215848],[-6.879354953765868,33.2447891235351],[-6.844503879547062,33.22910308837902],[-6.806573867797851,33.21526336669922],[-6.845807075500431,33.19810867309581],[-6.839612960815373,33.15467453002947],[-6.879459857940617,33.09807205200195],[-6.876819133758545,33.01851272583008],[-6.922049999237004,32.960498809814396],[-6.967543125152587,32.93584442138672],[-6.962800025939885,32.91022109985357],[-6.983243942260685,32.873184204101676],[-6.9804949760437,32.79357147216797],[-7.020514965057373,32.75652313232422],[-7.004909992218017,32.72402191162138],[-7.011248111724853,32.66818237304699],[-6.979220867156982,32.634773254394645],[-6.993169784545842,32.50609970092779],[-7.048169136047306,32.38842010498047],[-7.096294879913329,32.349262237549055],[-7.149303913116455,32.37053680419927],[-7.2447571754455,32.43230438232422],[-7.295358180999699,32.434085845947266],[-7.340393066406249,32.48762512207031],[-7.417209148406926,32.48430252075218],[-7.514234066009465,32.43096160888672],[-7.586689949035587,32.43031692504883],[-7.655451774597167,32.54603576660162],[-7.683296203613224,32.55511474609375],[-7.719991207122803,32.62692642211914],[-7.749532222747803,32.65019607543945],[-7.810822963714543,32.6742897033692],[-7.902809143066349,32.69826126098632],[-7.907823085784854,32.723445892333984],[-7.989078044891357,32.81506347656244],[-7.980710029602051,32.85653686523443],[-8.043346405029297,32.8750877380371],[-8.03152084350586,32.91957855224604],[-8.045045852661133,32.9795494079591],[-8.034646987915039,33.07806777954107],[-8.109880447387695,33.13965988159179],[-8.08049201965332,33.18736648559576],[-8.047118186950682,33.21905899047857],[-7.996955871581974,33.21508407592785],[-7.999916076660099,33.24803543090826],[-7.96415901184082,33.25774002075201],[-7.932388782501164,33.29397583007824],[-7.98502302169794,33.32950210571294],[-7.950693130493163,33.39039230346691],[-8.007081985473633,33.458473205566406],[-7.894862174987792,33.49736022949219],[-7.866956233978271,33.459831237793026],[-7.80206918716425,33.46707153320318],[-7.784611225128173,33.452270507812614],[-7.733521938323974,33.458000183105575],[-7.682903766632022,33.412506103515625],[-7.638830184936523,33.427749633789055],[-7.57601499557495,33.422294616699276],[-7.54596996307373,33.39693832397461],[-7.616042137145939,33.374748229980696],[-7.599362850189209,33.32535552978521],[-7.563631057739257,33.320438385009766],[-7.528379917144718,33.39587783813482],[-7.448532104492187,33.44703292846691],[-7.403759956359862,33.451576232910156]]]},"properties":{"ID_0":152,"ISO":"MA-SET","NAME_0":"Morocco","ID_1":1,"NAME_1":"Chaouia - Ouardigha","ID_2":3,"NAME_2":"Settat","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.989078044891357,32.81506347656244],[-8.033541679382266,32.78668212890625],[-8.035879135131836,32.711959838867244],[-8.072434425354004,32.68795776367193],[-8.072281837463379,32.66091918945324],[-8.04417419433588,32.624370574951286],[-8.06303596496582,32.57109832763683],[-8.09831523895258,32.528293609619084],[-8.182088851928711,32.46871948242187],[-8.24435424804676,32.46792602539057],[-8.265787124633789,32.414146423340014],[-8.33887004852295,32.403633117675895],[-8.350146293640137,32.38199615478521],[-8.436950683593748,32.353649139404524],[-8.512733459472656,32.32132720947271],[-8.595069885253906,32.41714477539074],[-8.589215278625431,32.47915267944358],[-8.63111114501953,32.510993957519645],[-8.684223175048828,32.52071762084961],[-8.71896457672119,32.50302124023432],[-8.757960319518986,32.518802642822266],[-8.869286537170353,32.511070251464844],[-8.905258178710938,32.54247283935558],[-8.973551750183105,32.57539749145502],[-9.006471633911076,32.60616683959961],[-8.9713716506958,32.636833190918026],[-8.966512680053654,32.66847610473627],[-9.00090026855463,32.67070388793951],[-9.051804542541504,32.73125076293945],[-8.920140266418398,32.825138092041016],[-8.808749198913572,32.92625045776373],[-8.730693817138615,33.004306793213175],[-8.704028129577637,33.04013824462908],[-8.630972862243652,33.11319351196295],[-8.629584312438908,33.16041564941412],[-8.547637939453125,33.24514007568371],[-8.50986099243164,33.267360687255966],[-8.460693359375,33.24569320678711],[-8.394304275512638,33.27736282348633],[-8.342082977294865,33.31708145141607],[-8.297083854675293,33.36708450317411],[-8.209860801696777,33.385139465332145],[-8.181804656982422,33.402915954590014],[-8.126251220703125,33.41319274902355],[-8.007081985473633,33.458473205566406],[-7.950693130493163,33.39039230346691],[-7.98502302169794,33.32950210571294],[-7.932388782501164,33.29397583007824],[-7.96415901184082,33.25774002075201],[-7.999916076660099,33.24803543090826],[-7.996955871581974,33.21508407592785],[-8.047118186950682,33.21905899047857],[-8.08049201965332,33.18736648559576],[-8.109880447387695,33.13965988159179],[-8.034646987915039,33.07806777954107],[-8.045045852661133,32.9795494079591],[-8.03152084350586,32.91957855224604],[-8.043346405029297,32.8750877380371],[-7.980710029602051,32.85653686523443],[-7.989078044891357,32.81506347656244]]]},"properties":{"ID_0":152,"ISO":"MA-JDI","NAME_0":"Morocco","ID_1":2,"NAME_1":"Doukkala - Abda","ID_2":4,"NAME_2":"El Jadida","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.436950683593748,32.353649139404524],[-8.441067695617676,32.300235748291016],[-8.409938812255858,32.235260009765625],[-8.3477783203125,32.16590881347662],[-8.23256587982172,32.12165451049822],[-8.19211196899414,32.092529296875114],[-8.189615249633789,32.0598411560058],[-8.304408073425236,31.981239318847887],[-8.341450691223088,31.924535751342773],[-8.347699165344238,31.890520095825252],[-8.422375679016112,31.80047225952148],[-8.404024124145451,31.747802734375057],[-8.355440139770508,31.70682144165039],[-8.392733573913574,31.698745727539062],[-8.431431770324707,31.720056533813587],[-8.503827095031738,31.693798065185657],[-8.555994987487793,31.708557128906367],[-8.60468006134033,31.75042533874517],[-8.711803436279297,31.732074737548885],[-8.742794036865234,31.74053001403814],[-8.770670890808105,31.715934753418026],[-8.805314064025822,31.71286392211925],[-8.879587173461914,31.757646560669055],[-8.939689636230469,31.76945877075201],[-8.947182655334473,31.78547477722168],[-9.00178527832031,31.812042236328125],[-9.032825469970646,31.893522262573352],[-9.084622383117676,31.909072875976506],[-9.232966423034668,31.919494628906307],[-9.28492069244379,31.909780502319276],[-9.339283943176211,31.914144515991325],[-9.435416221618652,31.94380569458013],[-9.355137825012207,32.023750305175774],[-9.330416679382324,32.06486129760742],[-9.322917938232422,32.112640380859375],[-9.262361526489258,32.17514038085932],[-9.2515287399292,32.21708297729515],[-9.266527175903263,32.25208282470726],[-9.24485969543457,32.300140380859375],[-9.281526565551756,32.32930374145519],[-9.290971755981445,32.359306335449276],[-9.258749008178711,32.40208435058605],[-9.231804847717228,32.47430419921881],[-9.285973548889103,32.5418052673341],[-9.117917060851994,32.66485977172846],[-9.051804542541504,32.73125076293945],[-9.00090026855463,32.67070388793951],[-8.966512680053654,32.66847610473627],[-8.9713716506958,32.636833190918026],[-9.006471633911076,32.60616683959961],[-8.973551750183105,32.57539749145502],[-8.905258178710938,32.54247283935558],[-8.869286537170353,32.511070251464844],[-8.757960319518986,32.518802642822266],[-8.71896457672119,32.50302124023432],[-8.684223175048828,32.52071762084961],[-8.63111114501953,32.510993957519645],[-8.589215278625431,32.47915267944358],[-8.595069885253906,32.41714477539074],[-8.512733459472656,32.32132720947271],[-8.436950683593748,32.353649139404524]]]},"properties":{"ID_0":152,"ISO":"MA-SAF","NAME_0":"Morocco","ID_1":2,"NAME_1":"Doukkala - Abda","ID_2":5,"NAME_2":"Safi","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.089186906814518,33.38042068481451],[-3.062707901000863,33.340175628662166],[-3.00038909912098,33.282207489013956],[-2.969074010848999,33.227005004882926],[-2.977355003356877,33.186141967773494],[-2.999272108077946,33.15866088867193],[-3.107593059539795,33.1331405639649],[-3.2203049659729,33.094429016113565],[-3.279728889465275,33.083530426025554],[-3.351870059966984,33.08082962036144],[-3.446784973144474,33.093521118164176],[-3.603172063827514,33.09265136718773],[-3.675992965698185,33.08325576782232],[-3.726537942886352,33.05794906616222],[-3.805248975753727,32.99186325073248],[-3.841296911239624,32.945037841796925],[-3.944423913955688,32.78154373168957],[-4.003212928771973,32.727226257324276],[-4.049850940704346,32.661087036132926],[-4.054047107696532,32.63758850097662],[-4.08964204788208,32.625247955322266],[-4.192032814025879,32.624961853027344],[-4.282040119171029,32.63508987426769],[-4.289350986480713,32.661781311035384],[-4.293167114257756,32.71821212768566],[-4.384900093078613,32.79611968994169],[-4.425291061401309,32.818069458007926],[-4.45009803771967,32.863292694092024],[-4.481241226196289,32.886814117431925],[-4.579023838043213,32.890037536621094],[-4.668735980987491,32.87610244750982],[-4.713849067687931,32.891658782958984],[-4.762825965881347,32.937343597412166],[-4.750524044036865,33.00725173950195],[-4.824687004089355,33.06803894042969],[-4.842996120452824,33.09851837158203],[-4.88861608505249,33.22380828857416],[-4.924521923065186,33.292884826660156],[-4.9859299659729,33.3387565612793],[-5.004627227783089,33.36920547485363],[-5.001195907592773,33.406047821044865],[-4.89836311340332,33.531257629394645],[-4.848490238189696,33.53317260742182],[-4.805570125579834,33.5636444091798],[-4.761699199676457,33.56038284301758],[-4.643547058105412,33.598583221435604],[-4.565355777740479,33.599395751953125],[-4.462279796600342,33.56444168090826],[-4.308880805969238,33.56028366088873],[-4.266902923583984,33.5863990783692],[-4.244788169860783,33.6339988708496],[-4.181508064269963,33.66444778442394],[-4.145689964294377,33.685218811035156],[-4.080557823181096,33.673675537109425],[-4.112256050109863,33.60321426391613],[-4.077552795410099,33.569396972656364],[-3.994119882583504,33.57223892211914],[-3.854965925216675,33.62724685668957],[-3.823367118835392,33.66073989868164],[-3.816797018051091,33.69053268432623],[-3.779800891876164,33.7106285095216],[-3.736298084259033,33.75866317749035],[-3.658936977386361,33.79726791381836],[-3.605114936828556,33.878536224365234],[-3.579458951950016,33.89122009277344],[-3.564152002334537,33.92658615112304],[-3.465671062469369,33.88507461547857],[-3.419624090194702,33.838691711425895],[-3.295849084854126,33.80597305297863],[-3.246437072753793,33.771644592285156],[-3.118671894073486,33.74662780761719],[-3.138603925704899,33.68192672729498],[-3.16720008850092,33.64425277709972],[-3.222831010818481,33.59514617919933],[-3.257327079772949,33.53813934326166],[-3.238198041915837,33.48464584350603],[-3.136051893234196,33.42548370361351],[-3.089186906814518,33.38042068481451]]]},"properties":{"ID_0":152,"ISO":"MA-BOM","NAME_0":"Morocco","ID_1":3,"NAME_1":"Fès - Boulemane","ID_2":6,"NAME_2":"Boulemane","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.739299774169865,34.10510253906256],[-4.770312786102295,34.07558059692382],[-4.802379131317139,34.023952484130916],[-4.794281005859374,33.99143600463867],[-4.82001590728754,33.95741271972656],[-4.870540142059326,33.92528533935558],[-4.903213977813721,33.92418289184576],[-4.921630859374942,33.876296997070426],[-4.963138103485107,33.87443923950206],[-4.957810878753605,33.91350173950201],[-4.996710777282714,33.9548454284668],[-4.999815940856877,34.002758026123104],[-5.019558906555175,34.05236434936529],[-4.911286830902043,34.10062026977545],[-4.878390789031982,34.16000366210943],[-4.801724910736084,34.20135879516613],[-4.765109062194767,34.18701171874994],[-4.762576103210449,34.141418457031364],[-4.739299774169865,34.10510253906256]]]},"properties":{"ID_0":152,"ISO":"MA-FES","NAME_0":"Morocco","ID_1":3,"NAME_1":"Fès - Boulemane","ID_2":7,"NAME_2":"Fès","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Fès-Dar-Dbibegh"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.575200080871525,34.058322906494254],[-4.556937217712346,34.02164840698248],[-4.554591178894043,33.93736648559576],[-4.525259971618595,33.91249084472667],[-4.392055988311768,33.872070312500114],[-4.331494808197021,33.91226196289068],[-4.246697902679443,33.89116668701183],[-4.232835769653263,33.8461647033692],[-4.20512676239008,33.83578491210943],[-4.139174938201904,33.83836364746094],[-4.203854084014893,33.77159118652338],[-4.208340167999268,33.70255279541009],[-4.181508064269963,33.66444778442394],[-4.244788169860783,33.6339988708496],[-4.266902923583984,33.5863990783692],[-4.308880805969238,33.56028366088873],[-4.462279796600342,33.56444168090826],[-4.565355777740479,33.599395751953125],[-4.643547058105412,33.598583221435604],[-4.761699199676457,33.56038284301758],[-4.805570125579834,33.5636444091798],[-4.848490238189696,33.53317260742182],[-4.89836311340332,33.531257629394645],[-4.897146224975586,33.585674285888786],[-4.996766090393066,33.66197586059582],[-5.092729091644287,33.672992706298885],[-5.126382827758789,33.7037086486817],[-5.12141799926752,33.73983764648443],[-5.080817222595215,33.826732635498104],[-5.086805820465088,33.87650680541998],[-5.116995811462402,33.91744613647461],[-5.031527042388916,33.92322921752935],[-4.996710777282714,33.9548454284668],[-4.957810878753605,33.91350173950201],[-4.963138103485107,33.87443923950206],[-4.921630859374942,33.876296997070426],[-4.903213977813721,33.92418289184576],[-4.870540142059326,33.92528533935558],[-4.82001590728754,33.95741271972656],[-4.794281005859374,33.99143600463867],[-4.802379131317139,34.023952484130916],[-4.770312786102295,34.07558059692382],[-4.739299774169865,34.10510253906256],[-4.653325080871581,34.08734512329113],[-4.625289916992187,34.068443298339844],[-4.575200080871525,34.058322906494254]]]},"properties":{"ID_0":152,"ISO":"MA-SEF","NAME_0":"Morocco","ID_1":3,"NAME_1":"Fès - Boulemane","ID_2":8,"NAME_2":"Sefrou","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.801724910736084,34.20135879516613],[-4.878390789031982,34.16000366210943],[-4.911286830902043,34.10062026977545],[-5.019558906555175,34.05236434936529],[-4.999815940856877,34.002758026123104],[-4.996710777282714,33.9548454284668],[-5.031527042388916,33.92322921752935],[-5.116995811462402,33.91744613647461],[-5.1439528465271,33.932754516601676],[-5.165369033813363,34.000610351562614],[-5.256401062011719,34.015510559082145],[-5.298597812652531,34.07101440429699],[-5.371837139129639,34.06638336181646],[-5.381937026977482,34.113979339599666],[-5.382154941558838,34.22567749023449],[-5.404630184173526,34.26801300048834],[-5.430943965911808,34.32424926757818],[-5.38900184631342,34.28688049316412],[-5.335972785949707,34.27817535400402],[-5.179959774017334,34.32169723510748],[-5.127089977264404,34.322910308837834],[-5.083092212676945,34.29513168334961],[-5.033163070678654,34.30728912353521],[-4.949435234069824,34.30139160156256],[-4.906752109527588,34.256263732910156],[-4.887753009796143,34.21713256835949],[-4.80565881729126,34.22756576538086],[-4.801724910736084,34.20135879516613]]]},"properties":{"ID_0":152,"ISO":"MA-MOU","NAME_0":"Morocco","ID_1":3,"NAME_1":"Fès - Boulemane","ID_2":9,"NAME_2":"Zouagha-Moulay Yacoub","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.844469070434513,34.9397811889649],[-5.830856800079346,34.85290145874029],[-5.883533954620304,34.82815170288097],[-5.86357402801508,34.7789306640625],[-5.88174295425415,34.726222991943416],[-5.826333999633732,34.67012405395513],[-5.814599037170353,34.63023376464855],[-5.937879085540771,34.63117218017584],[-6.0245361328125,34.601360321045036],[-6.094068050384521,34.60732269287115],[-6.170567035674992,34.555805206298764],[-6.209884166717529,34.54213333129883],[-6.217906951904297,34.50889205932617],[-6.163155078887883,34.49081039428711],[-6.023965835571289,34.3934326171875],[-5.935151100158578,34.36482620239269],[-5.90790319442749,34.34344482421875],[-5.857503890991211,34.35871887207031],[-5.849021911621094,34.38507843017583],[-5.887959003448486,34.4710426330567],[-5.823452949523869,34.48927307128917],[-5.760551929473877,34.427593231201286],[-5.7154541015625,34.42872238159191],[-5.689134120941161,34.37628555297863],[-5.750541210174561,34.36764526367182],[-5.76826000213623,34.35011291503906],[-5.770862102508488,34.29628753662121],[-5.785470962524414,34.25159454345709],[-5.816418170928955,34.25403213500988],[-5.852542877197265,34.23123931884777],[-5.850448131561279,34.205181121826286],[-5.923295021057071,34.175090789794865],[-5.880197048187199,34.14802932739258],[-5.863156795501652,34.095649719238224],[-6.010189056396483,34.109909057617294],[-6.172601222991887,34.15335083007818],[-6.217936992645264,34.1579475402832],[-6.368303775787354,34.14478302001959],[-6.468151092529297,34.16542816162121],[-6.56082010269165,34.13092041015636],[-6.63078594207758,34.145656585693416],[-6.650022983551025,34.169715881347656],[-6.698126792907657,34.1661491394043],[-6.711805820465088,34.18736267089855],[-6.678749084472656,34.25986099243169],[-6.632083892822265,34.32791519165039],[-6.540139198303166,34.44763946533208],[-6.390140056610107,34.69763946533203],[-6.302917003631535,34.86930465698248],[-6.267917156219426,34.82319259643566],[-6.249582290649357,34.859600067138786],[-6.296533107757568,34.88430786132824],[-6.250139236450138,34.98698806762701],[-6.154698848724252,34.979412078857536],[-6.088069915771428,34.98260498046875],[-5.949685096740723,34.96207427978521],[-5.889041900634709,34.94267654418945],[-5.844469070434513,34.9397811889649]]]},"properties":{"ID_0":152,"ISO":"MA-KEN","NAME_0":"Morocco","ID_1":4,"NAME_1":"Gharb - Chrarda - Béni Hssen","ID_2":10,"NAME_2":"Kénitra","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Kenitra"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.770846843719482,34.91344833374023],[-5.709773063659668,34.87964630126959],[-5.657011985778694,34.826183319091854],[-5.569712162017765,34.826454162597706],[-5.548560142517033,34.84112548828131],[-5.49806022644043,34.809146881103516],[-5.449059963226261,34.74983978271496],[-5.409334182739258,34.73358154296881],[-5.300374984741154,34.71457672119151],[-5.214858055114689,34.74472045898432],[-5.146657943725529,34.72993087768566],[-5.173526763916016,34.605854034423885],[-5.173895835876465,34.56531906127941],[-5.2344012260437,34.55787277221691],[-5.239554882049561,34.5383872985841],[-5.312232017517033,34.50104522705084],[-5.311353206634465,34.47734451293951],[-5.354227066040039,34.46129226684576],[-5.368938922882022,34.43786239624029],[-5.435147762298526,34.404865264892635],[-5.480538845062199,34.394721984863224],[-5.473019123077393,34.33440017700195],[-5.430943965911808,34.32424926757818],[-5.404630184173526,34.26801300048834],[-5.446015834808293,34.25870132446289],[-5.450027942657471,34.22047424316411],[-5.502495765686035,34.174835205078125],[-5.482686042785644,34.15216445922863],[-5.543001174926701,34.13763046264654],[-5.580778121948185,34.09672164916992],[-5.604543209075928,34.11761474609375],[-5.600774765014648,34.151775360107536],[-5.677318096160832,34.16936874389643],[-5.712968826293832,34.163516998291016],[-5.741766929626408,34.18447494506836],[-5.719709873199463,34.21975708007818],[-5.785470962524414,34.25159454345709],[-5.770862102508488,34.29628753662121],[-5.76826000213623,34.35011291503906],[-5.750541210174561,34.36764526367182],[-5.689134120941161,34.37628555297863],[-5.7154541015625,34.42872238159191],[-5.760551929473877,34.427593231201286],[-5.823452949523869,34.48927307128917],[-5.887959003448486,34.4710426330567],[-5.849021911621094,34.38507843017583],[-5.857503890991211,34.35871887207031],[-5.90790319442749,34.34344482421875],[-5.935151100158578,34.36482620239269],[-6.023965835571289,34.3934326171875],[-6.163155078887883,34.49081039428711],[-6.217906951904297,34.50889205932617],[-6.209884166717529,34.54213333129883],[-6.170567035674992,34.555805206298764],[-6.094068050384521,34.60732269287115],[-6.0245361328125,34.601360321045036],[-5.937879085540771,34.63117218017584],[-5.814599037170353,34.63023376464855],[-5.826333999633732,34.67012405395513],[-5.88174295425415,34.726222991943416],[-5.86357402801508,34.7789306640625],[-5.883533954620304,34.82815170288097],[-5.830856800079346,34.85290145874029],[-5.844469070434513,34.9397811889649],[-5.811799049377441,34.91753768920904],[-5.770846843719482,34.91344833374023]]]},"properties":{"ID_0":152,"ISO":"MA-SIK","NAME_0":"Morocco","ID_1":4,"NAME_1":"Gharb - Chrarda - Béni Hssen","ID_2":11,"NAME_2":"Sidi Kacem","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.403759956359862,33.451576232910156],[-7.448532104492187,33.44703292846691],[-7.528379917144718,33.39587783813482],[-7.563631057739257,33.320438385009766],[-7.599362850189209,33.32535552978521],[-7.616042137145939,33.374748229980696],[-7.54596996307373,33.39693832397461],[-7.57601499557495,33.422294616699276],[-7.638830184936523,33.427749633789055],[-7.682903766632022,33.412506103515625],[-7.733521938323974,33.458000183105575],[-7.784611225128173,33.452270507812614],[-7.80206918716425,33.46707153320318],[-7.866956233978271,33.459831237793026],[-7.894862174987792,33.49736022949219],[-7.819583892822209,33.53569412231457],[-7.755138874053955,33.54902648925781],[-7.680416107177678,33.596527099609375],[-7.624028205871582,33.61013793945318],[-7.588748931884765,33.605415344238395],[-7.521805763244629,33.62486267089855],[-7.45634889602661,33.66986083984381],[-7.418016910552978,33.64466476440424],[-7.371426105499268,33.67279434204107],[-7.405980110168399,33.617065429687614],[-7.389826774597111,33.5786247253419],[-7.401328086853027,33.55224227905279],[-7.366469860076847,33.49253845214855],[-7.412817955017033,33.478412628174055],[-7.403759956359862,33.451576232910156]]]},"properties":{"ID_0":152,"ISO":"MA-CAS","NAME_0":"Morocco","ID_1":5,"NAME_1":"Grand Casablanca","ID_2":12,"NAME_2":"Casablanca","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.45634889602661,33.66986083984381],[-7.402360916137695,33.713748931884766],[-7.349861145019531,33.71755599975586],[-7.371426105499268,33.67279434204107],[-7.418016910552978,33.64466476440424],[-7.45634889602661,33.66986083984381]]]},"properties":{"ID_0":152,"ISO":"MA-MOH","NAME_0":"Morocco","ID_1":5,"NAME_1":"Grand Casablanca","ID_2":13,"NAME_2":"Mohammedia","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.667678833007756,28.306951522827262],[-8.666340827941895,27.924659729003903],[-8.666838645935059,27.670074462890682],[-9.325313568115178,27.671991348266598],[-10.138028144836426,27.674339294433707],[-10.170379638671816,27.703104019165266],[-10.22032356262207,27.809322357177678],[-10.255756378173828,27.861667633056694],[-10.290975570678654,27.946088790893665],[-10.319577217102049,28.060178756713807],[-10.32596206665039,28.1274089813233],[-10.344526290893553,28.17043876647966],[-10.444005012512148,28.320444107055607],[-10.482797622680664,28.346040725708004],[-10.552906036376896,28.368877410888953],[-10.686437606811467,28.370277404785213],[-10.726202964782715,28.383287429809627],[-10.700543403625431,28.398424148559684],[-10.687173843383789,28.466703414916992],[-10.509895324706974,28.57286643981945],[-10.44851303100586,28.57726478576666],[-10.41247367858881,28.47324180603033],[-10.343248367309457,28.43447685241722],[-10.252078056335392,28.443801879882756],[-10.204417228698617,28.465011596679688],[-9.898629188537598,28.537034988403374],[-9.826593399047852,28.570251464843693],[-9.737092971801644,28.624649047851562],[-9.56433963775629,28.707811355590934],[-9.431734085083008,28.74052047729492],[-9.350617408752385,28.784538269043026],[-9.318596839904671,28.82354545593262],[-9.298445701599121,28.821371078491328],[-9.194436073303223,28.73557281494152],[-9.12212944030756,28.70885848999023],[-9.000070571899357,28.69831848144537],[-8.928873062133789,28.64611244201666],[-8.913579940795842,28.596870422363338],[-8.677024841308537,28.311897277832088],[-8.667678833007756,28.306951522827262]]]},"properties":{"ID_0":152,"ISO":"MA-ASZ","NAME_0":"Morocco","ID_1":6,"NAME_1":"Guelmim - Es-Semara","ID_2":14,"NAME_2":"Assa-Zag","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.155355453491211,29.20866775512701],[-9.16067123413086,29.128761291503903],[-9.186692237853947,29.09959220886236],[-9.241644859313965,28.94695472717297],[-9.318596839904671,28.82354545593262],[-9.350617408752385,28.784538269043026],[-9.431734085083008,28.74052047729492],[-9.56433963775629,28.707811355590934],[-9.737092971801644,28.624649047851562],[-9.826593399047852,28.570251464843693],[-9.898629188537598,28.537034988403374],[-10.204417228698617,28.465011596679688],[-10.252078056335392,28.443801879882756],[-10.343248367309457,28.43447685241722],[-10.41247367858881,28.47324180603033],[-10.44851303100586,28.57726478576666],[-10.509895324706974,28.57286643981945],[-10.687173843383789,28.466703414916992],[-10.700543403625431,28.398424148559684],[-10.726202964782715,28.383287429809627],[-10.783649444580078,28.377864837646598],[-10.829866409301758,28.38735008239746],[-10.929668426513672,28.461608886718977],[-11.00653076171875,28.4794921875],[-11.053557395935002,28.50683975219721],[-11.085838317871094,28.561576843261776],[-11.098988533019963,28.60356521606445],[-11.146527290344238,28.665590286254936],[-11.11347293853754,28.68708610534679],[-11.045694351196232,28.759860992431694],[-11.00541687011713,28.773195266723743],[-10.712917327880803,28.911527633667053],[-10.625138282775879,28.95819473266607],[-10.510695457458496,29.0279159545899],[-10.439800262451115,29.09559249877941],[-10.392825126647892,29.063312530517635],[-10.340394020080566,29.0660400390625],[-10.231299400329531,29.054391860961854],[-10.183685302734375,29.062896728515735],[-10.134001731872502,29.031869888305778],[-10.104153633117676,29.03536033630382],[-10.040201187133789,29.081218719482475],[-9.961692810058594,29.114267349243278],[-9.903273582458494,29.10716247558605],[-9.87174320220947,29.128061294555664],[-9.830765724182129,29.229341506958008],[-9.800349235534668,29.26108360290527],[-9.737902641296385,29.264585494995174],[-9.670607566833496,29.195800781250057],[-9.61707592010498,29.19442176818848],[-9.55381774902338,29.2091007232666],[-9.49121379852295,29.238119125366325],[-9.414073944091797,29.250806808471683],[-9.37695407867426,29.277561187744254],[-9.356708526611271,29.312591552734315],[-9.315660476684513,29.32208824157709],[-9.244398117065373,29.312847137451282],[-9.207351684570256,29.29512214660644],[-9.155355453491211,29.20866775512701]]]},"properties":{"ID_0":152,"ISO":"MA-GUE","NAME_0":"Morocco","ID_1":6,"NAME_1":"Guelmim - Es-Semara","ID_2":15,"NAME_2":"Guelmim","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-10.726202964782715,28.383287429809627],[-10.686437606811467,28.370277404785213],[-10.552906036376896,28.368877410888953],[-10.482797622680664,28.346040725708004],[-10.444005012512148,28.320444107055607],[-10.344526290893553,28.17043876647966],[-10.32596206665039,28.1274089813233],[-10.319577217102049,28.060178756713807],[-10.290975570678654,27.946088790893665],[-10.255756378173828,27.861667633056694],[-10.22032356262207,27.809322357177678],[-10.170379638671816,27.703104019165266],[-10.138028144836426,27.674339294433707],[-10.622239112853947,27.675739288330135],[-11.581982612609863,27.678512573242468],[-11.597855567932072,27.754877090454215],[-11.564276695251465,27.7628631591798],[-11.478850364685059,27.76151275634777],[-11.563710212707463,27.850921630859432],[-11.610602378845158,27.91815948486328],[-11.643961906433047,28.00662231445324],[-11.714015007019041,28.07125663757341],[-11.775222778320256,28.215139389038143],[-11.734026908874512,28.232082366943416],[-11.61652946472168,28.265417098998963],[-11.519582748413029,28.305416107177678],[-11.463748931884709,28.337360382080135],[-11.442361831665039,28.377639770507812],[-11.40458297729492,28.40875053405767],[-11.388749122619629,28.439582824707145],[-11.357083320617676,28.462083816528377],[-11.305971145629826,28.53069496154785],[-11.25069522857666,28.570972442626953],[-11.210140228271483,28.617361068725586],[-11.146527290344238,28.665590286254936],[-11.098988533019963,28.60356521606445],[-11.085838317871094,28.561576843261776],[-11.053557395935002,28.50683975219721],[-11.00653076171875,28.4794921875],[-10.929668426513672,28.461608886718977],[-10.829866409301758,28.38735008239746],[-10.783649444580078,28.377864837646598],[-10.726202964782715,28.383287429809627]]]},"properties":{"ID_0":152,"ISO":"MA-TNT","NAME_0":"Morocco","ID_1":6,"NAME_1":"Guelmim - Es-Semara","ID_2":16,"NAME_2":"Tan-Tan","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.397622108459473,29.55932807922363],[-6.446598052978516,29.564586639404354],[-6.521138191223145,29.523988723755053],[-6.686652183532714,29.516437530517578],[-6.719817161560059,29.50516510009771],[-6.776096820831299,29.461568832397457],[-6.832598209381104,29.4675464630127],[-6.90747594833374,29.495084762573185],[-7.021469116210938,29.493053436279354],[-7.113722801208439,29.522817611694393],[-7.148672103881836,29.52218246459961],[-7.255733013153019,29.473669052124134],[-7.329063892364502,29.405595779418945],[-7.389781951904298,29.379108428955075],[-7.479703903198241,29.36542320251465],[-7.536497116088867,29.36510658264177],[-7.591602802276611,29.376918792724723],[-7.625722885131779,29.356861114502006],[-7.644758224487304,29.310152053833118],[-7.785283088684082,29.255369186401364],[-7.843711853027286,29.210092544555664],[-7.932332992553654,29.1645145416262],[-7.959129810333252,29.12979507446289],[-8.078324317932072,29.06568908691412],[-8.164195060729922,29.012767791748104],[-8.177712440490666,29.015666961670032],[-8.353906631469727,28.889963150024528],[-8.459712982177734,28.796829223632923],[-8.667710304260197,28.71348953247076],[-8.667678833007756,28.306951522827262],[-8.677024841308537,28.311897277832088],[-8.913579940795842,28.596870422363338],[-8.928873062133789,28.64611244201666],[-9.000070571899357,28.69831848144537],[-9.12212944030756,28.70885848999023],[-9.194436073303223,28.73557281494152],[-9.298445701599121,28.821371078491328],[-9.318596839904671,28.82354545593262],[-9.241644859313965,28.94695472717297],[-9.186692237853947,29.09959220886236],[-9.16067123413086,29.128761291503903],[-9.155355453491211,29.20866775512701],[-9.147006034851074,29.25550270080572],[-9.117165565490666,29.3499565124514],[-9.083358764648436,29.41065406799328],[-9.045690536499022,29.43172264099132],[-8.940512657165414,29.422273635864375],[-8.784215927124023,29.460546493530387],[-8.665872573852539,29.494678497314453],[-8.65315246582031,29.515022277832028],[-8.703140258789006,29.567167282104606],[-8.714894294738713,29.596824645996094],[-8.708928108215332,29.7344264984132],[-8.671401977539004,29.791381835937496],[-8.63377857208252,29.825939178466907],[-8.628582954406681,29.85719299316406],[-8.661623001098576,29.86578178405767],[-8.692944526672363,29.852798461914062],[-8.720670700073242,29.865076065063477],[-8.72253704071045,29.91417312622076],[-8.687026977539006,29.94189834594738],[-8.608776092529297,29.94828414916992],[-8.41834926605219,29.871959686279297],[-8.386925697326603,29.873035430908317],[-8.345460891723576,29.9091682434082],[-8.313652038574162,29.977979660034297],[-8.281719207763615,30.001647949218803],[-8.232110977172852,30.000547409057617],[-8.138163566589299,29.938829421997013],[-8.02619838714594,29.897928237915092],[-7.935544967651366,29.9266033172608],[-7.859193801879826,29.99489021301281],[-7.820755958557015,30.00849533081049],[-7.750333786010742,29.99276542663574],[-7.671360015869084,29.987670898437496],[-7.634942054748535,30.029819488525508],[-7.664556980133,30.15548133850109],[-7.63184976577753,30.224752426147518],[-7.548418045043946,30.276218414306697],[-7.470451831817569,30.232427597046016],[-7.445960044860839,30.199842453002876],[-7.436523914337157,30.14552688598639],[-7.385369777679442,30.113973617553825],[-7.203913211822509,30.10593605041504],[-7.180358886718749,30.120754241943413],[-7.163441181182804,30.194936752319332],[-7.118681907653752,30.284370422363395],[-7.073056221008243,30.327297210693416],[-7.00200080871582,30.32240676879894],[-6.943925857543944,30.29446601867681],[-6.872384071350098,30.288610458374247],[-6.79311990737915,30.321386337280273],[-6.714027881622314,30.404214859008732],[-6.66536092758173,30.412506103515913],[-6.616382122039794,30.389539718627987],[-6.573439121246338,30.34954452514648],[-6.507914066314696,30.265409469604606],[-6.48215389251709,30.219440460205018],[-6.420952796935921,30.140790939331282],[-6.379587173461799,30.055706024169975],[-6.374503135681152,29.908067703247184],[-6.3955078125,29.82251358032238],[-6.39039421081543,29.740177154541016],[-6.40402507781971,29.651399612426925],[-6.397622108459473,29.55932807922363]]]},"properties":{"ID_0":152,"ISO":"MA-TAT","NAME_0":"Morocco","ID_1":6,"NAME_1":"Guelmim - Es-Semara","ID_2":17,"NAME_2":"Tata","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-11.775222778320256,28.215139389038143],[-11.714015007019041,28.07125663757341],[-11.643961906433047,28.00662231445324],[-11.610602378845158,27.91815948486328],[-11.563710212707463,27.850921630859432],[-11.478850364685059,27.76151275634777],[-11.564276695251465,27.7628631591798],[-11.597855567932072,27.754877090454215],[-11.581982612609863,27.678512573242468],[-12.10278034210205,27.680017471313473],[-12.363032341003361,27.680770874023494],[-13.167089462280273,27.68309783935558],[-13.15986156463623,27.69708251953142],[-13.070694923400822,27.735416412353572],[-13.008470535278263,27.808471679687667],[-12.987638473510742,27.878747940063473],[-12.959306716918945,27.920694351196286],[-12.905958175659066,27.95452308654791],[-12.655139923095701,27.98236083984386],[-12.512083053588809,28.009025573730526],[-12.236806869506836,28.052917480468807],[-12.08236122131342,28.086526870727596],[-11.897083282470646,28.171806335449162],[-11.775222778320256,28.215139389038143]]]},"properties":{"ID_0":152,"ISO":"MA-LAA","NAME_0":"Morocco","ID_1":7,"NAME_1":"Laâyoune - Boujdour - Sakia El Hamra","ID_2":18,"NAME_2":"Laâyoune","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Laayoune"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.265823841094971,31.69771385192871],[-7.256267070770264,31.668684005737415],[-7.215283870697022,31.647644042968974],[-7.221867084503174,31.612319946289062],[-7.14197015762329,31.61837768554699],[-7.116692066192627,31.595928192138782],[-7.12607479095459,31.540874481201172],[-7.152145862579346,31.485794067382923],[-7.153965950012207,31.42706680297857],[-7.142748832702637,31.399085998535156],[-7.227939128875732,31.369127273559684],[-7.280344009399414,31.30705642700195],[-7.346602916717529,31.29449844360374],[-7.438702106475716,31.290105819702145],[-7.487743854522705,31.269746780395625],[-7.569087982177733,31.196422576904297],[-7.63424015045166,31.17318344116211],[-7.692937850952148,31.172466278076225],[-7.767347812652588,31.137861251831165],[-7.831706047058105,31.082180023193363],[-7.902658939361572,31.0491561889649],[-7.90522289276123,31.003181457519585],[-7.988927841186523,30.93970680236822],[-8.045815467834416,30.90947151184076],[-8.098192214965763,30.963848114013782],[-8.181926727294922,30.92973327636724],[-8.321075439453125,30.906236648559513],[-8.390481948852482,30.912170410156477],[-8.423603057861328,30.882490158080994],[-8.533945083618164,30.887430191040096],[-8.530303001403752,30.917057037353572],[-8.464874267578123,30.93781280517589],[-8.349696159362736,31.08761215209989],[-8.341754913330078,31.108350753784176],[-8.35304069519043,31.180877685546875],[-8.342030525207463,31.22415924072266],[-8.355501174926701,31.29481506347662],[-8.332976341247559,31.31473922729498],[-8.306970596313477,31.377403259277397],[-8.256219863891545,31.37644767761242],[-8.21802616119379,31.40420150756842],[-8.148004531860352,31.438652038574272],[-8.17429256439209,31.49818611145025],[-8.153349876403695,31.524507522583068],[-8.092315673828068,31.53774452209484],[-8.037669181823617,31.52935218811046],[-7.988913059234562,31.506219863891655],[-7.943349838256836,31.462387084960934],[-7.914308071136418,31.501119613647514],[-7.936093807220459,31.55013084411644],[-7.889674186706542,31.573791503906246],[-7.847469806671142,31.564823150634822],[-7.742578983306828,31.564401626587195],[-7.712397098541259,31.618230819702205],[-7.727101802825872,31.66555786132812],[-7.651350975036621,31.668041229248164],[-7.56751823425293,31.61237525939941],[-7.54589509963978,31.611072540283203],[-7.4437580108642,31.63982963562017],[-7.400469779968262,31.689950942993274],[-7.346413135528564,31.703376770019588],[-7.265823841094971,31.69771385192871]]]},"properties":{"ID_0":152,"ISO":"MA-HAO","NAME_0":"Morocco","ID_1":8,"NAME_1":"Marrakech - Tensift - Al Haouz","ID_2":19,"NAME_2":"Al Haouz","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.392733573913574,31.698745727539062],[-8.429147720336914,31.644756317138786],[-8.382327079772836,31.615249633789123],[-8.368575096130314,31.587333679199215],[-8.401412010192871,31.566421508789116],[-8.400654792785588,31.53978919982916],[-8.364269256591795,31.523059844970984],[-8.288003921508789,31.446437835693303],[-8.256219863891545,31.37644767761242],[-8.306970596313477,31.377403259277397],[-8.332976341247559,31.31473922729498],[-8.355501174926701,31.29481506347662],[-8.342030525207463,31.22415924072266],[-8.35304069519043,31.180877685546875],[-8.341754913330078,31.108350753784176],[-8.349696159362736,31.08761215209989],[-8.464874267578123,30.93781280517589],[-8.530303001403752,30.917057037353572],[-8.533945083618164,30.887430191040096],[-8.615438461303711,30.880025863647457],[-8.650097846984863,30.851684570312496],[-8.685508728027287,30.84815406799322],[-8.71154499053955,30.929307937622013],[-8.770391464233398,30.954975128173825],[-8.780837059020937,30.97695350646984],[-8.819019317626896,30.978885650634822],[-8.858328819274902,30.938980102539176],[-8.921295166015625,30.905736923217884],[-8.995047569274846,30.88064575195312],[-9.043822288513184,30.836034774780327],[-9.151682853698729,30.844137191772575],[-9.187199592590332,30.926898956298828],[-9.17176723480219,30.97024536132824],[-9.203290939330998,31.028703689575195],[-9.300432205200195,31.087764739990288],[-9.308280944824219,31.13727188110369],[-9.272273063659611,31.200164794921875],[-9.237381935119627,31.236871719360405],[-9.231679916381834,31.34490966796875],[-9.1507568359375,31.373891830444563],[-9.129133224487303,31.370920181274414],[-9.07296085357666,31.40140724182129],[-9.067858695983887,31.456142425537227],[-9.120663642883299,31.449134826660213],[-9.15223979949951,31.465776443481502],[-9.160759925842228,31.52403831481939],[-9.141536712646428,31.57112121582031],[-9.06322193145752,31.647804260253906],[-9.019285202026367,31.677217483520504],[-8.935148239135629,31.700597763061523],[-8.939689636230469,31.76945877075201],[-8.879587173461914,31.757646560669055],[-8.805314064025822,31.71286392211925],[-8.770670890808105,31.715934753418026],[-8.742794036865234,31.74053001403814],[-8.711803436279297,31.732074737548885],[-8.60468006134033,31.75042533874517],[-8.555994987487793,31.708557128906367],[-8.503827095031738,31.693798065185657],[-8.431431770324707,31.720056533813587],[-8.392733573913574,31.698745727539062]]]},"properties":{"ID_0":152,"ISO":"MA-CHI","NAME_0":"Morocco","ID_1":8,"NAME_1":"Marrakech - Tensift - Al Haouz","ID_2":20,"NAME_2":"Chichaoua","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.096294879913329,32.349262237549055],[-7.104716777801514,32.261985778808594],[-7.085706233978271,32.191642761230526],[-7.094932079315186,32.14744567871105],[-7.083401203155518,32.061290740966854],[-7.054349899291992,32.02005767822277],[-7.020309925079289,32.00768280029291],[-7.008597850799561,31.968719482421985],[-7.031435012817382,31.947181701660266],[-7.026236057281493,31.902721405029297],[-6.975689888000431,31.849994659423942],[-7.006015777587891,31.837623596191463],[-7.00087118148798,31.78581809997576],[-7.017685890197754,31.772525787353572],[-7.065193176269531,31.778930664062784],[-7.130075931549072,31.766061782836854],[-7.170004844665471,31.78482437133789],[-7.219196796417236,31.78247833251953],[-7.265242099761905,31.748016357421932],[-7.265823841094971,31.69771385192871],[-7.346413135528564,31.703376770019588],[-7.400469779968262,31.689950942993274],[-7.4437580108642,31.63982963562017],[-7.54589509963978,31.611072540283203],[-7.56751823425293,31.61237525939941],[-7.651350975036621,31.668041229248164],[-7.727101802825872,31.66555786132812],[-7.761711120605469,31.669424057006946],[-7.802371978759765,31.703193664550835],[-7.875450134277287,31.69780158996582],[-7.940083980560302,31.75162506103521],[-8.026740074157715,31.742889404296985],[-7.998775005340576,31.791236877441406],[-8.018577575683594,31.853082656860348],[-8.050778388976994,31.89190673828119],[-8.055306434631348,31.9295101165772],[-8.032608032226506,31.952123641967717],[-8.02963638305664,32.01224136352545],[-8.061880111694336,32.047855377197266],[-8.189615249633789,32.0598411560058],[-8.19211196899414,32.092529296875114],[-8.23256587982172,32.12165451049822],[-8.3477783203125,32.16590881347662],[-8.409938812255858,32.235260009765625],[-8.441067695617676,32.300235748291016],[-8.436950683593748,32.353649139404524],[-8.350146293640137,32.38199615478521],[-8.33887004852295,32.403633117675895],[-8.265787124633789,32.414146423340014],[-8.24435424804676,32.46792602539057],[-8.182088851928711,32.46871948242187],[-8.09831523895258,32.528293609619084],[-8.06303596496582,32.57109832763683],[-8.04417419433588,32.624370574951286],[-8.072281837463379,32.66091918945324],[-8.072434425354004,32.68795776367193],[-8.035879135131836,32.711959838867244],[-8.033541679382266,32.78668212890625],[-7.989078044891357,32.81506347656244],[-7.907823085784854,32.723445892333984],[-7.902809143066349,32.69826126098632],[-7.810822963714543,32.6742897033692],[-7.749532222747803,32.65019607543945],[-7.719991207122803,32.62692642211914],[-7.683296203613224,32.55511474609375],[-7.655451774597167,32.54603576660162],[-7.586689949035587,32.43031692504883],[-7.514234066009465,32.43096160888672],[-7.417209148406926,32.48430252075218],[-7.340393066406249,32.48762512207031],[-7.295358180999699,32.434085845947266],[-7.2447571754455,32.43230438232422],[-7.149303913116455,32.37053680419927],[-7.096294879913329,32.349262237549055]]]},"properties":{"ID_0":152,"ISO":"MA-KES","NAME_0":"Morocco","ID_1":8,"NAME_1":"Marrakech - Tensift - Al Haouz","ID_2":21,"NAME_2":"El Kelaâ des Sraghna","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"El Kelaa Sraghna"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.435416221618652,31.94380569458013],[-9.339283943176211,31.914144515991325],[-9.28492069244379,31.909780502319276],[-9.232966423034668,31.919494628906307],[-9.084622383117676,31.909072875976506],[-9.032825469970646,31.893522262573352],[-9.00178527832031,31.812042236328125],[-8.947182655334473,31.78547477722168],[-8.939689636230469,31.76945877075201],[-8.935148239135629,31.700597763061523],[-9.019285202026367,31.677217483520504],[-9.06322193145752,31.647804260253906],[-9.141536712646428,31.57112121582031],[-9.160759925842228,31.52403831481939],[-9.15223979949951,31.465776443481502],[-9.120663642883299,31.449134826660213],[-9.067858695983887,31.456142425537227],[-9.07296085357666,31.40140724182129],[-9.129133224487303,31.370920181274414],[-9.1507568359375,31.373891830444563],[-9.231679916381834,31.34490966796875],[-9.237381935119627,31.236871719360405],[-9.272273063659611,31.200164794921875],[-9.308280944824219,31.13727188110369],[-9.300432205200195,31.087764739990288],[-9.203290939330998,31.028703689575195],[-9.17176723480219,30.97024536132824],[-9.187199592590332,30.926898956298828],[-9.151682853698729,30.844137191772575],[-9.187334060668945,30.828126907348686],[-9.237119674682617,30.82715034484886],[-9.284329414367619,30.809429168701172],[-9.346405982971191,30.83381843566894],[-9.412115097045898,30.827648162841907],[-9.45729923248291,30.813478469848917],[-9.514874458312988,30.831716537475703],[-9.541699409484863,30.863491058349666],[-9.569354057311955,30.82655715942377],[-9.598052024841252,30.81523704528814],[-9.648813247680664,30.833749771118107],[-9.722607612609863,30.83457565307634],[-9.745277404785156,30.88534927368164],[-9.820416450500431,30.950773239135682],[-9.809306144714299,31.01152801513672],[-9.81680679321289,31.091806411743274],[-9.842359542846623,31.103750228882006],[-9.838193893432617,31.146249771118388],[-9.818194389343262,31.181528091430664],[-9.820416450500431,31.2329158782959],[-9.799304962158146,31.275972366333065],[-9.79736137390131,31.353471755981555],[-9.833471298217773,31.41402816772478],[-9.78986072540283,31.456249237060604],[-9.73569488525385,31.541805267333924],[-9.687360763549805,31.60180664062517],[-9.675694465637207,31.63041496276855],[-9.677082061767578,31.698194503784233],[-9.634583473205566,31.730693817138672],[-9.586527824401799,31.79402732849121],[-9.532361030578613,31.842361450195316],[-9.435416221618652,31.94380569458013]]]},"properties":{"ID_0":152,"ISO":"MA-ESI","NAME_0":"Morocco","ID_1":8,"NAME_1":"Marrakech - Tensift - Al Haouz","ID_2":22,"NAME_2":"Essaouira","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.189615249633789,32.0598411560058],[-8.061880111694336,32.047855377197266],[-8.02963638305664,32.01224136352545],[-8.032608032226506,31.952123641967717],[-8.055306434631348,31.9295101165772],[-8.050778388976994,31.89190673828119],[-8.018577575683594,31.853082656860348],[-7.998775005340576,31.791236877441406],[-8.026740074157715,31.742889404296985],[-7.940083980560302,31.75162506103521],[-7.875450134277287,31.69780158996582],[-7.802371978759765,31.703193664550835],[-7.761711120605469,31.669424057006946],[-7.727101802825872,31.66555786132812],[-7.712397098541259,31.618230819702205],[-7.742578983306828,31.564401626587195],[-7.847469806671142,31.564823150634822],[-7.889674186706542,31.573791503906246],[-7.936093807220459,31.55013084411644],[-7.914308071136418,31.501119613647514],[-7.943349838256836,31.462387084960934],[-7.988913059234562,31.506219863891655],[-8.037669181823617,31.52935218811046],[-8.092315673828068,31.53774452209484],[-8.153349876403695,31.524507522583068],[-8.17429256439209,31.49818611145025],[-8.148004531860352,31.438652038574272],[-8.21802616119379,31.40420150756842],[-8.256219863891545,31.37644767761242],[-8.288003921508789,31.446437835693303],[-8.364269256591795,31.523059844970984],[-8.400654792785588,31.53978919982916],[-8.401412010192871,31.566421508789116],[-8.368575096130314,31.587333679199215],[-8.382327079772836,31.615249633789123],[-8.429147720336914,31.644756317138786],[-8.392733573913574,31.698745727539062],[-8.355440139770508,31.70682144165039],[-8.404024124145451,31.747802734375057],[-8.422375679016112,31.80047225952148],[-8.347699165344238,31.890520095825252],[-8.341450691223088,31.924535751342773],[-8.304408073425236,31.981239318847887],[-8.189615249633789,32.0598411560058]]]},"properties":{"ID_0":152,"ISO":"MA-MMD","NAME_0":"Morocco","ID_1":8,"NAME_1":"Marrakech - Tensift - Al Haouz","ID_2":23,"NAME_2":"Marrakech","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.256401062011719,34.015510559082145],[-5.165369033813363,34.000610351562614],[-5.1439528465271,33.932754516601676],[-5.116995811462402,33.91744613647461],[-5.086805820465088,33.87650680541998],[-5.080817222595215,33.826732635498104],[-5.12141799926752,33.73983764648443],[-5.178318023681641,33.79900360107433],[-5.219472885131836,33.822547912597656],[-5.252303123474121,33.79672241210949],[-5.243721961975041,33.684921264648494],[-5.207221031188965,33.62091445922857],[-5.159236907958984,33.59133148193371],[-5.193509101867676,33.550483703613395],[-5.229522228240966,33.5406494140625],[-5.329617023467961,33.573822021484375],[-5.447147846221924,33.59578323364269],[-5.575467109680176,33.45719146728521],[-5.604022979736328,33.411502838134815],[-5.649233818054199,33.377426147460994],[-5.69036388397211,33.37614440917997],[-5.786903858184758,33.40161895751953],[-5.788924217224121,33.45405578613281],[-5.77825212478632,33.562553405761655],[-5.759259223937931,33.62346649169927],[-5.744725227355957,33.747852325439396],[-5.74710988998413,33.785747528076286],[-5.784993171691894,33.814983367919865],[-5.79789495468134,33.87730789184582],[-5.775592803955078,33.88422012329095],[-5.718916893005371,33.83327484130865],[-5.683692932128905,33.83004760742193],[-5.673734188079777,33.8741569519043],[-5.573540210723877,33.844421386718864],[-5.550261020660344,33.78844070434582],[-5.480300903320256,33.80605697631836],[-5.456639766693114,33.82345581054699],[-5.426977157592773,33.893630981445426],[-5.440904140472412,33.92667770385748],[-5.380054950714111,33.94662857055664],[-5.359518051147404,33.98456954956055],[-5.304647922515869,33.98815536499034],[-5.256401062011719,34.015510559082145]]]},"properties":{"ID_0":152,"ISO":"MA-HAJ","NAME_0":"Morocco","ID_1":9,"NAME_1":"Meknès - Tafilalet","ID_2":24,"NAME_2":"El Hajeb","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.054047107696532,32.63758850097662],[-4.019381999969482,32.624637603759766],[-3.986133098602294,32.59080505371094],[-3.913767099380493,32.47341537475586],[-3.869874000549203,32.39014053344755],[-3.847836971282902,32.30351257324213],[-3.753742933273258,32.28661727905285],[-3.668873071670419,32.23318481445312],[-3.686706066131535,32.20063400268555],[-3.668461084365788,32.17680358886747],[-3.63077807426447,32.17366409301769],[-3.557323932647648,32.18468856811529],[-3.462847948074284,32.176727294921875],[-3.25304102897644,32.14400482177746],[-3.243983030319214,32.11872482299833],[-3.284950971603394,32.0506858825683],[-3.296262025833073,31.983554840087834],[-3.296014070510864,31.901018142700252],[-3.262649059295654,31.70969390869169],[-3.663570880889836,31.63311386108427],[-3.663783073425293,31.401008605957028],[-3.65981388092041,31.377523422241268],[-3.713896036148014,31.34644699096691],[-3.76353907585144,31.33360290527355],[-3.776750087738037,31.30217361450201],[-3.75770092010498,31.262990951538203],[-3.789604902267399,31.235776901245114],[-3.758389949798527,31.17542266845709],[-3.776669979095459,31.123609542846676],[-3.7241370677948,31.127128601074443],[-3.723138093948307,31.14528465271007],[-3.679835081100464,31.16476821899414],[-3.67298507690424,31.096797943115348],[-3.604711055755615,31.075839996337834],[-3.576061964034977,31.047328948974666],[-3.54751992225647,31.061044692993224],[-3.535259008407593,31.013233184814567],[-3.555660009384042,30.931678771972713],[-3.649065017700195,30.84667968749994],[-3.647829055786133,30.77371788024914],[-3.620392084121647,30.73894119262701],[-3.642934083938542,30.699592590332145],[-3.843025922775155,30.62739753723144],[-3.98842000961298,30.59353637695324],[-4.145473957061654,30.584829330444393],[-4.320165157318115,30.528390884399357],[-4.606369972228947,30.282133102417045],[-4.935503005981388,30.139978408813533],[-5.11764097213745,30.00613021850592],[-5.152252197265568,30.093555450439393],[-5.192254066467285,30.13143348693859],[-5.214879035949707,30.195796966552678],[-5.208254814147949,30.309381484985465],[-5.21119499206543,30.39750862121593],[-5.200072765350342,30.449016571044975],[-5.200811862945556,30.613315582275334],[-5.250541210174504,30.672193527221733],[-5.339065074920597,30.811149597168082],[-5.359077930450439,30.911214828491264],[-5.329002857208251,31.03794479370117],[-5.326965808868351,31.07696914672863],[-5.306433200836182,31.188978195190543],[-5.264503955841007,31.273035049438477],[-5.240221023559513,31.349046707153377],[-5.235400199890137,31.4083976745606],[-5.254681110382023,31.46349716186529],[-5.309488773345947,31.505802154541016],[-5.38723611831665,31.52642822265636],[-5.459924221038762,31.56432151794445],[-5.501863002777099,31.61646461486822],[-5.641308784484806,31.649051666259766],[-5.712932109832764,31.634647369384876],[-5.784732818603402,31.643527984619137],[-5.785696029663086,31.685634613037276],[-5.682157039642334,31.774333953857422],[-5.573933124542236,31.875173568725643],[-5.530764102935791,31.93960380554199],[-5.657849788665771,32.02286148071289],[-5.703988075256348,32.033401489257926],[-5.769890785217285,31.99336814880371],[-5.809366226196232,31.985050201416126],[-5.818540096282959,32.112277984619254],[-5.792753219604492,32.131507873535156],[-5.791763782501221,32.16231536865246],[-5.733107089996338,32.182300567626896],[-5.698494911193848,32.21485137939453],[-5.693075180053711,32.244049072265625],[-5.66251611709589,32.26062393188482],[-5.601295948028564,32.270439147949276],[-5.539947986602782,32.26671218872076],[-5.456421852111816,32.253562927246094],[-5.395215034484863,32.21620178222656],[-5.266998767852783,32.257324218750114],[-5.224896907806396,32.30281066894531],[-5.164809226989689,32.332015991210994],[-5.11614799499506,32.33625411987305],[-5.072451114654541,32.35653686523432],[-5.000207901000977,32.374023437500284],[-4.972155094146672,32.39270782470709],[-4.908342838287296,32.39703750610363],[-4.802760124206543,32.442508697509766],[-4.78093385696411,32.466270446777344],[-4.871231079101562,32.48077774047862],[-4.873316764831543,32.50088500976574],[-4.809792041778508,32.526588439941456],[-4.712128162383976,32.55292510986333],[-4.675193786621036,32.57313537597662],[-4.48130989074707,32.607177734375],[-4.389523983001652,32.64235687255865],[-4.289350986480713,32.661781311035384],[-4.282040119171029,32.63508987426769],[-4.192032814025879,32.624961853027344],[-4.08964204788208,32.625247955322266],[-4.054047107696532,32.63758850097662]]]},"properties":{"ID_0":152,"ISO":"MA-ERR","NAME_0":"Morocco","ID_1":9,"NAME_1":"Meknès - Tafilalet","ID_2":25,"NAME_2":"Errachidia","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.89836311340332,33.531257629394645],[-5.001195907592773,33.406047821044865],[-5.004627227783089,33.36920547485363],[-4.9859299659729,33.3387565612793],[-4.924521923065186,33.292884826660156],[-4.88861608505249,33.22380828857416],[-4.842996120452824,33.09851837158203],[-4.914826869964485,33.07987213134788],[-5.050411224365234,33.07014846801769],[-5.15228080749506,32.92600631713867],[-5.173902988433838,32.87391662597662],[-5.220951080322266,32.863735198974894],[-5.248350143432617,32.875579833984375],[-5.222989082336425,32.94634246826172],[-5.248415946960449,32.97139358520508],[-5.316075801849365,32.986606597900504],[-5.268381118774414,33.15326690673828],[-5.283445835113412,33.161266326904354],[-5.426086902618408,33.15708923339844],[-5.452523231506348,33.169345855712834],[-5.478273868560734,33.20941543579118],[-5.511618137359618,33.23088455200201],[-5.496414184570256,33.269912719726676],[-5.520912170410099,33.36106491088867],[-5.649233818054199,33.377426147460994],[-5.604022979736328,33.411502838134815],[-5.575467109680176,33.45719146728521],[-5.447147846221924,33.59578323364269],[-5.329617023467961,33.573822021484375],[-5.229522228240966,33.5406494140625],[-5.193509101867676,33.550483703613395],[-5.159236907958984,33.59133148193371],[-5.207221031188965,33.62091445922857],[-5.243721961975041,33.684921264648494],[-5.252303123474121,33.79672241210949],[-5.219472885131836,33.822547912597656],[-5.178318023681641,33.79900360107433],[-5.12141799926752,33.73983764648443],[-5.126382827758789,33.7037086486817],[-5.092729091644287,33.672992706298885],[-4.996766090393066,33.66197586059582],[-4.897146224975586,33.585674285888786],[-4.89836311340332,33.531257629394645]]]},"properties":{"ID_0":152,"ISO":"MA-IFR","NAME_0":"Morocco","ID_1":9,"NAME_1":"Meknès - Tafilalet","ID_2":26,"NAME_2":"Ifrane","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.649233818054199,33.377426147460994],[-5.520912170410099,33.36106491088867],[-5.496414184570256,33.269912719726676],[-5.511618137359618,33.23088455200201],[-5.478273868560734,33.20941543579118],[-5.452523231506348,33.169345855712834],[-5.426086902618408,33.15708923339844],[-5.283445835113412,33.161266326904354],[-5.268381118774414,33.15326690673828],[-5.316075801849365,32.986606597900504],[-5.248415946960449,32.97139358520508],[-5.222989082336425,32.94634246826172],[-5.248350143432617,32.875579833984375],[-5.220951080322266,32.863735198974894],[-5.173902988433838,32.87391662597662],[-5.15228080749506,32.92600631713867],[-5.050411224365234,33.07014846801769],[-4.914826869964485,33.07987213134788],[-4.842996120452824,33.09851837158203],[-4.824687004089355,33.06803894042969],[-4.750524044036865,33.00725173950195],[-4.762825965881347,32.937343597412166],[-4.713849067687931,32.891658782958984],[-4.668735980987491,32.87610244750982],[-4.579023838043213,32.890037536621094],[-4.481241226196289,32.886814117431925],[-4.45009803771967,32.863292694092024],[-4.425291061401309,32.818069458007926],[-4.384900093078613,32.79611968994169],[-4.293167114257756,32.71821212768566],[-4.289350986480713,32.661781311035384],[-4.389523983001652,32.64235687255865],[-4.48130989074707,32.607177734375],[-4.675193786621036,32.57313537597662],[-4.712128162383976,32.55292510986333],[-4.809792041778508,32.526588439941456],[-4.873316764831543,32.50088500976574],[-4.871231079101562,32.48077774047862],[-4.78093385696411,32.466270446777344],[-4.802760124206543,32.442508697509766],[-4.908342838287296,32.39703750610363],[-4.972155094146672,32.39270782470709],[-5.000207901000977,32.374023437500284],[-5.072451114654541,32.35653686523432],[-5.11614799499506,32.33625411987305],[-5.164809226989689,32.332015991210994],[-5.224896907806396,32.30281066894531],[-5.266998767852783,32.257324218750114],[-5.395215034484863,32.21620178222656],[-5.456421852111816,32.253562927246094],[-5.539947986602782,32.26671218872076],[-5.528954982757568,32.2946891784668],[-5.55503511428833,32.31328582763672],[-5.531923770904541,32.358234405517635],[-5.543957233428955,32.37666320800787],[-5.500706195831242,32.450569152831974],[-5.551036834716797,32.52429199218756],[-5.573194980621338,32.57664108276373],[-5.632174015045108,32.58147430419922],[-5.68290615081787,32.618610382080135],[-5.712646007537842,32.62306594848644],[-5.772222995758057,32.60088348388672],[-5.785201072692871,32.65858840942383],[-5.837991237640381,32.7089462280274],[-5.875408172607365,32.71253585815424],[-5.892776012420654,32.74331665039073],[-5.937498092651367,32.76523208618164],[-6.010511875152531,32.76110076904297],[-6.020800113677922,32.8226776123048],[-5.999925136566162,32.833904266357415],[-6.035702228546143,32.87444305419922],[-6.042300224304198,32.90237426757824],[-6.108398914337101,32.89153289794933],[-6.140388011932373,32.90184402465826],[-6.138134956359863,32.939758300781364],[-6.076224803924504,32.95841598510742],[-6.083452224731388,32.98269653320324],[-6.12737321853632,32.99860763549816],[-6.136046886444035,33.03523254394531],[-6.192454814910889,33.05808639526373],[-6.238834857940674,33.0959091186524],[-6.278553962707462,33.10717391967768],[-6.290180206298714,33.13375854492199],[-6.388197898864745,33.16184997558594],[-6.397848129272461,33.176532745361385],[-6.361415863037053,33.23888778686529],[-6.38712120056141,33.28063583374029],[-6.377604007720947,33.33493041992193],[-6.349490165710449,33.38499832153326],[-6.261573791503905,33.39713668823242],[-6.230570793151855,33.381355285644474],[-6.201805114746093,33.39802551269537],[-6.17646598815918,33.371768951416016],[-6.140869140624999,33.37054443359375],[-6.106420040130558,33.27112579345703],[-6.036165237426701,33.252201080322486],[-5.976194858550912,33.29910278320324],[-5.938229084014893,33.309207916259766],[-5.813509941100961,33.278602600097656],[-5.79038476943964,33.28563308715826],[-5.769970893859806,33.3438148498538],[-5.786903858184758,33.40161895751953],[-5.69036388397211,33.37614440917997],[-5.649233818054199,33.377426147460994]]]},"properties":{"ID_0":152,"ISO":"MA-KHN","NAME_0":"Morocco","ID_1":9,"NAME_1":"Meknès - Tafilalet","ID_2":27,"NAME_2":"Khénifra","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Khenifra"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.404630184173526,34.26801300048834],[-5.382154941558838,34.22567749023449],[-5.381937026977482,34.113979339599666],[-5.371837139129639,34.06638336181646],[-5.298597812652531,34.07101440429699],[-5.256401062011719,34.015510559082145],[-5.304647922515869,33.98815536499034],[-5.359518051147404,33.98456954956055],[-5.380054950714111,33.94662857055664],[-5.440904140472412,33.92667770385748],[-5.426977157592773,33.893630981445426],[-5.456639766693114,33.82345581054699],[-5.480300903320256,33.80605697631836],[-5.550261020660344,33.78844070434582],[-5.573540210723877,33.844421386718864],[-5.673734188079777,33.8741569519043],[-5.683692932128905,33.83004760742193],[-5.718916893005371,33.83327484130865],[-5.775592803955078,33.88422012329095],[-5.79789495468134,33.87730789184582],[-5.826988220214844,33.90450286865246],[-5.772922992706299,33.94713973999035],[-5.781938076019287,33.98467254638672],[-5.859512805938607,34.045478820800895],[-5.863156795501652,34.095649719238224],[-5.880197048187199,34.14802932739258],[-5.923295021057071,34.175090789794865],[-5.850448131561279,34.205181121826286],[-5.852542877197265,34.23123931884777],[-5.816418170928955,34.25403213500988],[-5.785470962524414,34.25159454345709],[-5.719709873199463,34.21975708007818],[-5.741766929626408,34.18447494506836],[-5.712968826293832,34.163516998291016],[-5.677318096160832,34.16936874389643],[-5.600774765014648,34.151775360107536],[-5.604543209075928,34.11761474609375],[-5.580778121948185,34.09672164916992],[-5.543001174926701,34.13763046264654],[-5.482686042785644,34.15216445922863],[-5.502495765686035,34.174835205078125],[-5.450027942657471,34.22047424316411],[-5.446015834808293,34.25870132446289],[-5.404630184173526,34.26801300048834]]]},"properties":{"ID_0":152,"ISO":"MA-MEK","NAME_0":"Morocco","ID_1":9,"NAME_1":"Meknès - Tafilalet","ID_2":28,"NAME_2":"Meknès","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.037559032440186,34.92540740966797],[-2.056055068969727,34.88576507568365],[-2.101959943771305,34.86432266235357],[-2.11042308807373,34.8044166564942],[-2.166445016860961,34.79830932617198],[-2.229605913162231,34.76521301269537],[-2.245264053344727,34.72670745849615],[-2.252767086029053,34.65032577514654],[-2.233695983886662,34.59017181396496],[-2.296478986740112,34.56972122192377],[-2.324109077453613,34.51703643798828],[-2.325943946838322,34.47157669067388],[-2.296463966369629,34.40151214599615],[-2.281125068664494,34.36320877075195],[-2.292310953140259,34.33157348632824],[-2.335367918014526,34.31644439697271],[-2.476212024688721,34.303710937500114],[-2.527751922607422,34.256057739257756],[-2.538829088211003,34.20802307128906],[-2.612720966339054,34.19723129272461],[-2.669816017150879,34.17746734619152],[-2.750483989715519,34.160797119140675],[-2.828876972198486,34.171951293945256],[-2.885031938552856,34.11444854736334],[-2.944031000137329,34.126815795898494],[-3.012979984283447,34.12076187133789],[-3.114142894744816,34.08152389526373],[-3.087965965270996,34.14452743530285],[-3.129955053329467,34.174545288085994],[-3.131258964538574,34.26617431640619],[-3.182442903518676,34.300754547119254],[-3.230210065841675,34.34616851806646],[-3.225104093551636,34.394004821777344],[-3.155867099761906,34.42602157592779],[-3.079819917678833,34.48857879638672],[-3.070811033248901,34.568954467773494],[-2.987382888793945,34.60735321044933],[-2.975734949111882,34.65782546997081],[-2.86936092376709,34.69528198242199],[-2.835833072662297,34.73494720458996],[-2.788487911224308,34.76584625244152],[-2.759541988372803,34.821266174316406],[-2.654979944229126,34.87778854370117],[-2.645302057266235,34.8987922668457],[-2.598675966262761,34.923225402832145],[-2.560259103774968,34.925655364990234],[-2.461373090744019,34.964855194091854],[-2.434125900268498,35.03342437744146],[-2.400904893875065,35.053203582763786],[-2.350486040115243,35.10611343383789],[-2.346440076828003,35.124027252197266],[-2.211900949478149,35.08430480957037],[-2.215342044830322,35.047271728515625],[-2.169162034988346,35.0103874206543],[-2.123030900955143,34.994598388671875],[-2.088905096053963,34.9552955627442],[-2.037559032440186,34.92540740966797]]]},"properties":{"ID_0":152,"ISO":"MA-BER","NAME_0":"Morocco","ID_1":10,"NAME_1":"Oriental","ID_2":29,"NAME_2":"Berkane Taourirt","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.262649059295654,31.70969390869169],[-3.296014070510864,31.901018142700252],[-3.296262025833073,31.983554840087834],[-3.284950971603394,32.0506858825683],[-3.243983030319214,32.11872482299833],[-3.25304102897644,32.14400482177746],[-3.462847948074284,32.176727294921875],[-3.557323932647648,32.18468856811529],[-3.63077807426447,32.17366409301769],[-3.668461084365788,32.17680358886747],[-3.686706066131535,32.20063400268555],[-3.668873071670419,32.23318481445312],[-3.753742933273258,32.28661727905285],[-3.847836971282902,32.30351257324213],[-3.869874000549203,32.39014053344755],[-3.913767099380493,32.47341537475586],[-3.986133098602294,32.59080505371094],[-4.019381999969482,32.624637603759766],[-4.054047107696532,32.63758850097662],[-4.049850940704346,32.661087036132926],[-4.003212928771973,32.727226257324276],[-3.944423913955688,32.78154373168957],[-3.841296911239624,32.945037841796925],[-3.805248975753727,32.99186325073248],[-3.726537942886352,33.05794906616222],[-3.675992965698185,33.08325576782232],[-3.603172063827514,33.09265136718773],[-3.446784973144474,33.093521118164176],[-3.351870059966984,33.08082962036144],[-3.279728889465275,33.083530426025554],[-3.2203049659729,33.094429016113565],[-3.107593059539795,33.1331405639649],[-2.999272108077946,33.15866088867193],[-2.977355003356877,33.186141967773494],[-2.969074010848999,33.227005004882926],[-3.00038909912098,33.282207489013956],[-3.062707901000863,33.340175628662166],[-3.089186906814518,33.38042068481451],[-3.022170066833439,33.46345138549816],[-2.907011985778809,33.5660171508789],[-2.85131192207325,33.6493034362793],[-2.801440954208374,33.68781661987305],[-2.726241111755314,33.671566009521484],[-2.558531999588013,33.65013885498047],[-2.444169998168945,33.6458625793457],[-2.340579986572265,33.652996063232536],[-2.220655918121338,33.699710845947315],[-2.163633108139038,33.69689559936535],[-2.01416802406311,33.644180297851506],[-1.924013018608093,33.62768936157221],[-1.841230034828129,33.648021697998104],[-1.814355015754586,33.66809844970709],[-1.736966967582646,33.70023727416998],[-1.686944007873535,33.676399230957145],[-1.652812957763615,33.68241119384771],[-1.630285024642944,33.631076812744254],[-1.598497033119202,33.61508941650396],[-1.588240981101876,33.530292510986385],[-1.620653033256531,33.491786956787166],[-1.623322963714599,33.45374298095709],[-1.663349986076355,33.379947662353516],[-1.660881042480469,33.303287506103516],[-1.670712947845345,33.28460693359386],[-1.626561045646667,33.22095108032232],[-1.609084963798523,33.213787078857365],[-1.575006008148193,33.148529052734375],[-1.513579010963383,33.09358596801769],[-1.474423050880375,33.07616424560558],[-1.460718035697937,33.04184722900385],[-1.484884977340641,32.97498321533209],[-1.542737007141113,32.95738983154296],[-1.381219029426575,32.73932266235357],[-1.270081996917724,32.695549011230526],[-1.013867020606995,32.526412963867244],[-1.00077497959137,32.50561523437506],[-1.067118048667851,32.44980621337884],[-1.121376991271916,32.414344787597656],[-1.198835015296879,32.40357208251959],[-1.221392035484314,32.34707641601568],[-1.249547958373967,32.32696914672857],[-1.23566997051239,32.29230117797862],[-1.247519016265869,32.240737915039176],[-1.242316961288395,32.20538330078131],[-1.288004040718079,32.158859252929744],[-1.216161012649536,32.17541885375988],[-1.182127952575684,32.16321182250988],[-1.155833959579354,32.110500335693416],[-1.205126047134399,32.08477401733427],[-1.337170004844666,32.082771301269815],[-1.485520005226135,32.095607757568416],[-1.50780797004694,32.10334014892583],[-1.575675964355412,32.09165573120128],[-1.684538006782532,32.11525726318354],[-1.71629095077509,32.11468505859369],[-1.897133946418648,32.161842346191406],[-1.967527985572758,32.156913757324276],[-2.013864040374756,32.181777954101676],[-2.131441116332951,32.1460838317871],[-2.17917895317072,32.14184188842785],[-2.276547908782902,32.1682014465332],[-2.302216053008919,32.15593719482422],[-2.462686061859131,32.15937423706066],[-2.545620918273926,32.1448249816895],[-2.598963975906372,32.11250686645507],[-2.656444072723331,32.11743545532238],[-2.727484941482544,32.11044311523449],[-2.818746089935189,32.11485671997076],[-2.928375959396362,32.0976676940918],[-2.939263105392456,32.03040313720703],[-2.892782926559448,31.964052200317326],[-2.887684106826725,31.932540893554854],[-2.852463960647583,31.882581710815654],[-2.850110054016,31.831014633178654],[-2.831609010696411,31.798009872436467],[-2.999542951583862,31.75824737548828],[-3.262649059295654,31.70969390869169]]]},"properties":{"ID_0":152,"ISO":"MA-FIG","NAME_0":"Morocco","ID_1":10,"NAME_1":"Oriental","ID_2":30,"NAME_2":"Figuig","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.736966967582646,33.70023727416998],[-1.814355015754586,33.66809844970709],[-1.841230034828129,33.648021697998104],[-1.924013018608093,33.62768936157221],[-2.01416802406311,33.644180297851506],[-2.163633108139038,33.69689559936535],[-2.220655918121338,33.699710845947315],[-2.340579986572265,33.652996063232536],[-2.444169998168945,33.6458625793457],[-2.558531999588013,33.65013885498047],[-2.726241111755314,33.671566009521484],[-2.801440954208374,33.68781661987305],[-2.85131192207325,33.6493034362793],[-2.907011985778809,33.5660171508789],[-3.022170066833439,33.46345138549816],[-3.089186906814518,33.38042068481451],[-3.136051893234196,33.42548370361351],[-3.238198041915837,33.48464584350603],[-3.257327079772949,33.53813934326166],[-3.222831010818481,33.59514617919933],[-3.16720008850092,33.64425277709972],[-3.138603925704899,33.68192672729498],[-3.118671894073486,33.74662780761719],[-3.12640190124506,33.8100814819337],[-3.161573886871338,33.864364624023494],[-3.21763801574707,33.92543029785162],[-3.264801979064941,33.96409988403331],[-3.249957084655762,34.016689300537166],[-3.137922048568726,34.05269241333008],[-3.114142894744816,34.08152389526373],[-3.012979984283447,34.12076187133789],[-2.944031000137329,34.126815795898494],[-2.885031938552856,34.11444854736334],[-2.828876972198486,34.171951293945256],[-2.750483989715519,34.160797119140675],[-2.669816017150879,34.17746734619152],[-2.612720966339054,34.19723129272461],[-2.538829088211003,34.20802307128906],[-2.527751922607422,34.256057739257756],[-2.476212024688721,34.303710937500114],[-2.335367918014526,34.31644439697271],[-2.292310953140259,34.33157348632824],[-2.281125068664494,34.36320877075195],[-2.296463966369629,34.40151214599615],[-2.184748888015747,34.420513153076286],[-2.119152069091797,34.45104598999035],[-2.077999114990234,34.4522056579591],[-2.042618036270142,34.47873687744146],[-2.030847072601318,34.5181884765625],[-1.969066977500802,34.515468597412166],[-1.882276058197021,34.543666839599666],[-1.801911950111389,34.588176727295036],[-1.746142983436584,34.51480865478521],[-1.690680980682316,34.48822021484374],[-1.781190991401559,34.39144897460949],[-1.704156994819641,34.309288024902344],[-1.71071803569788,34.23526000976574],[-1.647634029388314,34.106685638427734],[-1.698958992958069,33.87034225463867],[-1.670259952545052,33.77276992797857],[-1.72853696346283,33.735298156738395],[-1.736966967582646,33.70023727416998]]]},"properties":{"ID_0":152,"ISO":"MA-JRA","NAME_0":"Morocco","ID_1":10,"NAME_1":"Oriental","ID_2":31,"NAME_2":"Jerada","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Jrada"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.346440076828003,35.124027252197266],[-2.350486040115243,35.10611343383789],[-2.400904893875065,35.053203582763786],[-2.434125900268498,35.03342437744146],[-2.461373090744019,34.964855194091854],[-2.560259103774968,34.925655364990234],[-2.598675966262761,34.923225402832145],[-2.645302057266235,34.8987922668457],[-2.654979944229126,34.87778854370117],[-2.759541988372803,34.821266174316406],[-2.788487911224308,34.76584625244152],[-2.835833072662297,34.73494720458996],[-2.86936092376709,34.69528198242199],[-2.975734949111882,34.65782546997081],[-3.014470100402832,34.66765213012701],[-3.07751989364624,34.706741333007926],[-3.10984110832203,34.70580291748058],[-3.166537046432381,34.75470352172863],[-3.293787956237736,34.75638198852545],[-3.321104049682617,34.69573593139654],[-3.386950016021672,34.66469573974615],[-3.416953086853027,34.63576507568371],[-3.441431999206486,34.64573287963873],[-3.474025964736882,34.61521911621088],[-3.497486114501953,34.55048370361334],[-3.565833091735839,34.56569290161144],[-3.592377901077213,34.611587524414006],[-3.621160030364933,34.634925842285156],[-3.632569074630737,34.66827774047863],[-3.574270963668823,34.69995880126953],[-3.60863804817194,34.72355270385748],[-3.584851980209294,34.757175445556754],[-3.592948913574219,34.831058502197266],[-3.636090993881168,34.82651519775402],[-3.676733016967773,34.847923278808594],[-3.72989797592163,34.842544555664176],[-3.770543098449707,34.864685058593864],[-3.787239074706974,34.890285491943416],[-3.799096107482853,34.90593338012707],[-3.792608022689819,34.99948501586914],[-3.810980081558171,35.11084747314459],[-3.797574996948185,35.17461395263683],[-3.805767059326058,35.202915191650504],[-3.765417098999023,35.23125076293945],[-3.750693082809448,35.27458190917963],[-3.70986008644104,35.28819274902344],[-3.590692996978759,35.22680664062506],[-3.490694046020451,35.19902801513683],[-3.333194017410278,35.18624877929698],[-3.30486011505127,35.204860687255966],[-3.169859886169434,35.24041748046886],[-3.134305953979435,35.28041839599614],[-3.074861049652099,35.287639617920036],[-3.009860038757324,35.383750915527344],[-2.992639064788818,35.43597030639654],[-2.953749895095768,35.43486022949219],[-2.970972061157226,35.361526489257926],[-2.955971956253052,35.346805572509766],[-2.962582111358643,35.29995727539056],[-2.915138959884644,35.24569320678705],[-2.92402791976923,35.1829185485841],[-2.88180494308466,35.13208389282232],[-2.825973033905029,35.10680389404297],[-2.754304885864258,35.098751068115284],[-2.739860057830811,35.12097167968756],[-2.652084112167358,35.091251373291016],[-2.565970897674503,35.08124923706066],[-2.481527090072631,35.1043052673341],[-2.425694942474365,35.1476402282716],[-2.346440076828003,35.124027252197266]]]},"properties":{"ID_0":152,"ISO":"MA-NAD","NAME_0":"Morocco","ID_1":10,"NAME_1":"Oriental","ID_2":32,"NAME_2":"Nador","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.801911950111389,34.588176727295036],[-1.882276058197021,34.543666839599666],[-1.969066977500802,34.515468597412166],[-2.030847072601318,34.5181884765625],[-2.042618036270142,34.47873687744146],[-2.077999114990234,34.4522056579591],[-2.119152069091797,34.45104598999035],[-2.184748888015747,34.420513153076286],[-2.296463966369629,34.40151214599615],[-2.325943946838322,34.47157669067388],[-2.324109077453613,34.51703643798828],[-2.296478986740112,34.56972122192377],[-2.233695983886662,34.59017181396496],[-2.252767086029053,34.65032577514654],[-2.245264053344727,34.72670745849615],[-2.229605913162231,34.76521301269537],[-2.166445016860961,34.79830932617198],[-2.11042308807373,34.8044166564942],[-2.101959943771305,34.86432266235357],[-2.056055068969727,34.88576507568365],[-2.037559032440186,34.92540740966797],[-1.971912980079651,34.934268951416016],[-1.971987009048462,34.88825988769537],[-1.89183497428894,34.84219360351557],[-1.886455059051457,34.807991027832145],[-1.759860038757324,34.75521850585932],[-1.773478984832763,34.70004272460948],[-1.837352991104126,34.61891174316412],[-1.801911950111389,34.588176727295036]]]},"properties":{"ID_0":152,"ISO":"MA-OUJ","NAME_0":"Morocco","ID_1":10,"NAME_1":"Oriental","ID_2":33,"NAME_2":"Oujda Angad","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.863156795501652,34.095649719238224],[-5.859512805938607,34.045478820800895],[-5.781938076019287,33.98467254638672],[-5.772922992706299,33.94713973999035],[-5.826988220214844,33.90450286865246],[-5.79789495468134,33.87730789184582],[-5.784993171691894,33.814983367919865],[-5.74710988998413,33.785747528076286],[-5.744725227355957,33.747852325439396],[-5.759259223937931,33.62346649169927],[-5.77825212478632,33.562553405761655],[-5.788924217224121,33.45405578613281],[-5.786903858184758,33.40161895751953],[-5.769970893859806,33.3438148498538],[-5.79038476943964,33.28563308715826],[-5.813509941100961,33.278602600097656],[-5.938229084014893,33.309207916259766],[-5.976194858550912,33.29910278320324],[-6.036165237426701,33.252201080322486],[-6.106420040130558,33.27112579345703],[-6.140869140624999,33.37054443359375],[-6.17646598815918,33.371768951416016],[-6.201805114746093,33.39802551269537],[-6.230570793151855,33.381355285644474],[-6.261573791503905,33.39713668823242],[-6.349490165710449,33.38499832153326],[-6.377604007720947,33.33493041992193],[-6.38712120056141,33.28063583374029],[-6.361415863037053,33.23888778686529],[-6.48191213607788,33.190284729003906],[-6.522500038146916,33.142078399658146],[-6.565062046050969,33.19209671020508],[-6.604753971099797,33.21557998657249],[-6.705062866210938,33.203643798828125],[-6.753058910369816,33.22208786010748],[-6.806573867797851,33.21526336669922],[-6.844503879547062,33.22910308837902],[-6.83319616317749,33.262519836425724],[-6.84026384353632,33.33107376098644],[-6.809628009796086,33.384441375732706],[-6.855122089385929,33.45077514648432],[-6.851530075073184,33.485015869140675],[-6.793757915496825,33.553867340087834],[-6.784585952758732,33.59080505371094],[-6.790966033935546,33.61506271362315],[-6.770844936370793,33.702598571777344],[-6.70879316329956,33.70075225830084],[-6.715734958648625,33.76839828491222],[-6.699390888214054,33.79987716674816],[-6.722255229949893,33.87874984741211],[-6.645216941833496,33.857730865478516],[-6.589328765869084,33.83191299438488],[-6.55799388885498,33.7842369079591],[-6.472593784332275,33.82123565673828],[-6.445466041564941,33.86493682861334],[-6.503462791442814,33.897735595703125],[-6.554422855377196,34.00368499755871],[-6.576202869415283,34.026252746582024],[-6.541976928710938,34.06044387817394],[-6.538002967834473,34.09947967529297],[-6.56082010269165,34.13092041015636],[-6.468151092529297,34.16542816162121],[-6.368303775787354,34.14478302001959],[-6.217936992645264,34.1579475402832],[-6.172601222991887,34.15335083007818],[-6.010189056396483,34.109909057617294],[-5.863156795501652,34.095649719238224]]]},"properties":{"ID_0":152,"ISO":"MA-KHE","NAME_0":"Morocco","ID_1":11,"NAME_1":"Rabat - Salé - Zemmour - Zaer","ID_2":34,"NAME_2":"Khémisset","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Khemisset"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.766786098480225,33.948814392089844],[-6.7964768409729,33.9052352905274],[-6.836761951446533,33.92112350463873],[-6.904583930969238,33.97572708129894],[-6.830517768859863,34.04708480834972],[-6.752486228942814,34.003494262695426],[-6.74462890625,33.96812820434582],[-6.766786098480225,33.948814392089844]]]},"properties":{"ID_0":152,"ISO":"MA-RAB","NAME_0":"Morocco","ID_1":11,"NAME_1":"Rabat - Salé - Zemmour - Zaer","ID_2":35,"NAME_2":"Rabat","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.56082010269165,34.13092041015636],[-6.538002967834473,34.09947967529297],[-6.541976928710938,34.06044387817394],[-6.576202869415283,34.026252746582024],[-6.554422855377196,34.00368499755871],[-6.503462791442814,33.897735595703125],[-6.445466041564941,33.86493682861334],[-6.472593784332275,33.82123565673828],[-6.55799388885498,33.7842369079591],[-6.589328765869084,33.83191299438488],[-6.645216941833496,33.857730865478516],[-6.722255229949893,33.87874984741211],[-6.766786098480225,33.948814392089844],[-6.74462890625,33.96812820434582],[-6.752486228942814,34.003494262695426],[-6.830517768859863,34.04708480834972],[-6.783195018768254,34.0934715270996],[-6.711805820465088,34.18736267089855],[-6.698126792907657,34.1661491394043],[-6.650022983551025,34.169715881347656],[-6.63078594207758,34.145656585693416],[-6.56082010269165,34.13092041015636]]]},"properties":{"ID_0":152,"ISO":"MA-SAL","NAME_0":"Morocco","ID_1":11,"NAME_1":"Rabat - Salé - Zemmour - Zaer","ID_2":36,"NAME_2":"Salé","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":"Sale","VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.766786098480225,33.948814392089844],[-6.722255229949893,33.87874984741211],[-6.699390888214054,33.79987716674816],[-6.715734958648625,33.76839828491222],[-6.70879316329956,33.70075225830084],[-6.770844936370793,33.702598571777344],[-6.790966033935546,33.61506271362315],[-6.784585952758732,33.59080505371094],[-6.88804388046259,33.5791397094726],[-6.946936130523624,33.62979125976568],[-7.005486965179442,33.65933227539068],[-7.036465167999268,33.70339584350597],[-7.03718185424799,33.74709320068365],[-7.068931102752629,33.806552886963],[-7.113366127014159,33.809440612793026],[-7.126805782318115,33.82962036132812],[-7.043749809265023,33.87263870239258],[-6.904583930969238,33.97572708129894],[-6.836761951446533,33.92112350463873],[-6.7964768409729,33.9052352905274],[-6.766786098480225,33.948814392089844]]]},"properties":{"ID_0":152,"ISO":"MA-SKH","NAME_0":"Morocco","ID_1":11,"NAME_1":"Rabat - Salé - Zemmour - Zaer","ID_2":37,"NAME_2":"Skhirate-Témara","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":"Skhirate-Temara"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.820416450500431,30.950773239135682],[-9.745277404785156,30.88534927368164],[-9.722607612609863,30.83457565307634],[-9.648813247680664,30.833749771118107],[-9.598052024841252,30.81523704528814],[-9.569354057311955,30.82655715942377],[-9.541699409484863,30.863491058349666],[-9.514874458312988,30.831716537475703],[-9.45729923248291,30.813478469848917],[-9.412115097045898,30.827648162841907],[-9.346405982971191,30.83381843566894],[-9.284329414367619,30.809429168701172],[-9.238055229186953,30.71050453186046],[-9.327038764953613,30.658723831176754],[-9.332297325134277,30.58299827575695],[-9.295015335083008,30.54982566833507],[-9.29911994934082,30.434364318847653],[-9.330509185791016,30.42307853698753],[-9.37183570861805,30.37526321411144],[-9.422333717346135,30.375925064086974],[-9.486084938049316,30.34542274475109],[-9.602060317993164,30.362083435058594],[-9.605138778686523,30.416805267334098],[-9.65930461883545,30.443750381469723],[-9.703472137451115,30.54236030578613],[-9.74013900756836,30.550695419311584],[-9.783750534057617,30.609580993652457],[-9.8193044662475,30.624860763549805],[-9.88902759552002,30.62986183166498],[-9.873748779296875,30.695693969726616],[-9.84930515289301,30.722360610961854],[-9.805693626403809,30.814582824707145],[-9.827083587646484,30.847084045410156],[-9.807915687560978,30.89263916015619],[-9.820416450500431,30.950773239135682]]]},"properties":{"ID_0":152,"ISO":"MA-AGD","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":38,"NAME_2":"Agadir-Ida ou Tanane","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":"Agadir Ida Ou Tanane"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.310271263122559,30.30798149108898],[-9.268197059631346,30.270025253296012],[-9.247585296630803,30.279737472534293],[-9.203199386596623,30.26258277893072],[-9.131893157958984,30.266704559326286],[-9.1017427444458,30.23940467834484],[-9.102999687194767,30.209598541259993],[-9.042146682739201,30.197170257568356],[-9.00195598602295,30.173139572143498],[-8.978597640991211,30.126976013183878],[-8.939740180969238,30.12859916687017],[-8.901540756225584,30.08434677124052],[-8.957683563232365,30.051006317138782],[-8.960893630981388,29.990526199340987],[-8.94466495513916,29.95580863952642],[-8.911517143249453,29.93304824829107],[-8.928222656249943,29.889528274536186],[-8.970137596130314,29.88074111938477],[-8.9890661239624,29.856521606445426],[-9.00697708129877,29.832366943359375],[-9.075750350952148,29.793704986572376],[-9.085545539855957,29.742820739746147],[-9.106221199035645,29.731479644775444],[-9.20433235168457,29.782236099243104],[-9.237571716308537,29.828041076660213],[-9.309549331664982,29.828754425048885],[-9.36108303070057,29.87763786315946],[-9.504897117614632,29.920856475830135],[-9.514727592468262,29.946273803710934],[-9.556603431701603,29.95177268981956],[-9.607631683349496,29.928346633911303],[-9.67850112915039,29.92662239074701],[-9.752083778381348,29.94131088256847],[-9.703193664550781,30.03041648864774],[-9.671527862548714,30.0756950378418],[-9.639305114746094,30.183750152588004],[-9.62208461761469,30.289432525634876],[-9.555463790893553,30.296840667724723],[-9.533212661743162,30.28181266784679],[-9.438393592834473,30.278890609741268],[-9.416174888610783,30.319232940673828],[-9.373356819152832,30.299755096435717],[-9.334341049194279,30.32143974304205],[-9.310271263122559,30.30798149108898]]]},"properties":{"ID_0":152,"ISO":"MA-CHT","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":39,"NAME_2":"Chtouka-Aït Baha","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Chtouka Ait Baha"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.29911994934082,30.434364318847653],[-9.288790702819767,30.37155342102062],[-9.258672714233398,30.35020065307623],[-9.310271263122559,30.30798149108898],[-9.334341049194279,30.32143974304205],[-9.373356819152832,30.299755096435717],[-9.416174888610783,30.319232940673828],[-9.438393592834473,30.278890609741268],[-9.533212661743162,30.28181266784679],[-9.555463790893553,30.296840667724723],[-9.62208461761469,30.289432525634876],[-9.602060317993164,30.362083435058594],[-9.486084938049316,30.34542274475109],[-9.422333717346135,30.375925064086974],[-9.37183570861805,30.37526321411144],[-9.330509185791016,30.42307853698753],[-9.29911994934082,30.434364318847653]]]},"properties":{"ID_0":152,"ISO":"MA-INE","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":40,"NAME_2":"Inezgane-Aït Melloul","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":"Inezgane Ait Melloul"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.326965808868351,31.07696914672863],[-5.385855197906437,31.052259445190426],[-5.470989227294922,31.03162193298351],[-5.511542797088623,31.032918930054],[-5.654246807098332,31.054462432861442],[-5.672639846801758,30.96470642089855],[-5.698307037353459,30.875179290771595],[-5.698222160339355,30.837648391723686],[-5.744296073913574,30.73080062866205],[-5.764132976531982,30.71148490905767],[-5.681838035583496,30.63656616210943],[-5.665156841278076,30.60517311096197],[-5.502211093902531,30.724140167236495],[-5.428620815277099,30.771556854248104],[-5.339065074920597,30.811149597168082],[-5.250541210174504,30.672193527221733],[-5.200811862945556,30.613315582275334],[-5.200072765350342,30.449016571044975],[-5.21119499206543,30.39750862121593],[-5.208254814147949,30.309381484985465],[-5.214879035949707,30.195796966552678],[-5.192254066467285,30.13143348693859],[-5.152252197265568,30.093555450439393],[-5.11764097213745,30.00613021850592],[-5.137631893157959,30.00069236755382],[-5.239675998687744,29.933425903320423],[-5.284952163696232,29.897102355957088],[-5.322519779205265,29.846277236938587],[-5.319530010223389,29.79729270935064],[-5.333567142486571,29.76789665222168],[-5.540954113006535,29.511648178100696],[-5.552464962005615,29.482500076294006],[-5.649680137634276,29.50401496887207],[-5.687637805938664,29.5390129089356],[-5.7134051322937,29.519304275512756],[-5.749600887298584,29.529714584350643],[-5.722105979919433,29.585672378540096],[-5.798730850219727,29.61416053771984],[-5.862383842468262,29.60739517211914],[-5.878647804260254,29.59535789489757],[-5.956167221069336,29.589498519897404],[-6.068700790405273,29.56159973144537],[-6.164184093475285,29.581771850585938],[-6.24631404876709,29.564880371094038],[-6.372685909271183,29.567117691040036],[-6.397622108459473,29.55932807922363],[-6.40402507781971,29.651399612426925],[-6.39039421081543,29.740177154541016],[-6.3955078125,29.82251358032238],[-6.374503135681152,29.908067703247184],[-6.379587173461799,30.055706024169975],[-6.420952796935921,30.140790939331282],[-6.48215389251709,30.219440460205018],[-6.507914066314696,30.265409469604606],[-6.573439121246338,30.34954452514648],[-6.616382122039794,30.389539718627987],[-6.66536092758173,30.412506103515913],[-6.714027881622314,30.404214859008732],[-6.79311990737915,30.321386337280273],[-6.872384071350098,30.288610458374247],[-6.943925857543944,30.29446601867681],[-7.00200080871582,30.32240676879894],[-7.073056221008243,30.327297210693416],[-7.118681907653752,30.284370422363395],[-7.163441181182804,30.194936752319332],[-7.180358886718749,30.120754241943413],[-7.203913211822509,30.10593605041504],[-7.385369777679442,30.113973617553825],[-7.436523914337157,30.14552688598639],[-7.445960044860839,30.199842453002876],[-7.470451831817569,30.232427597046016],[-7.548418045043946,30.276218414306697],[-7.620469093322696,30.32705116271978],[-7.633797168731632,30.36243438720703],[-7.633203983306771,30.426889419555774],[-7.609594821929931,30.496498107910327],[-7.563998222351074,30.57769775390636],[-7.563382148742676,30.668327331543082],[-7.592823028564453,30.778112411499137],[-7.591723918914738,30.82593345642095],[-7.647583961486817,30.9102725982666],[-7.688969135284424,30.939039230346737],[-7.756295204162598,31.043504714966105],[-7.755297183990478,31.094976425171065],[-7.767347812652588,31.137861251831165],[-7.692937850952148,31.172466278076225],[-7.63424015045166,31.17318344116211],[-7.569087982177733,31.196422576904297],[-7.487743854522705,31.269746780395625],[-7.438702106475716,31.290105819702145],[-7.346602916717529,31.29449844360374],[-7.280344009399414,31.30705642700195],[-7.227939128875732,31.369127273559684],[-7.142748832702637,31.399085998535156],[-7.073276042938232,31.398241043090877],[-6.910385131835938,31.356557846069396],[-6.832812786102295,31.37396049499523],[-6.776954174041748,31.361534118652347],[-6.741561889648437,31.426166534424112],[-6.757458209991397,31.46333122253418],[-6.724829196929818,31.510976791381832],[-6.646113872528076,31.529188156127983],[-6.595612049102783,31.51808166503906],[-6.534130096435433,31.535810470581055],[-6.383297920227051,31.616003036499137],[-6.222959041595402,31.669839859008846],[-6.159967899322396,31.719896316528434],[-6.118620872497558,31.713245391845817],[-6.062050819396915,31.71977233886724],[-6.048281192779484,31.784236907958924],[-5.953586101531926,31.82018470764171],[-5.916359901428165,31.861995697021765],[-5.862355232238712,31.872987747192436],[-5.803466796874999,31.91912269592291],[-5.809366226196232,31.985050201416126],[-5.769890785217285,31.99336814880371],[-5.703988075256348,32.033401489257926],[-5.657849788665771,32.02286148071289],[-5.530764102935791,31.93960380554199],[-5.573933124542236,31.875173568725643],[-5.682157039642334,31.774333953857422],[-5.785696029663086,31.685634613037276],[-5.784732818603402,31.643527984619137],[-5.712932109832764,31.634647369384876],[-5.641308784484806,31.649051666259766],[-5.501863002777099,31.61646461486822],[-5.459924221038762,31.56432151794445],[-5.38723611831665,31.52642822265636],[-5.309488773345947,31.505802154541016],[-5.254681110382023,31.46349716186529],[-5.235400199890137,31.4083976745606],[-5.240221023559513,31.349046707153377],[-5.264503955841007,31.273035049438477],[-5.306433200836182,31.188978195190543],[-5.326965808868351,31.07696914672863]],[[-6.443682193756047,30.745311737060714],[-6.56672286987299,30.733373641967773],[-6.542529106140137,30.690376281738338],[-6.503738880157471,30.658184051513672],[-6.416934967041016,30.617656707763786],[-6.331625938415471,30.59775543212902],[-6.308173179626407,30.581026077270447],[-6.287099838256836,30.677507400512805],[-6.369586944580021,30.718082427978512],[-6.405412197112979,30.71724128723144],[-6.443682193756047,30.745311737060714]],[[-5.893854141235295,30.298406600952262],[-5.835535049438476,30.313356399536186],[-5.759720802307129,30.34821510314964],[-5.799090862274113,30.385194778442383],[-5.847054958343506,30.393285751342773],[-5.904599189758244,30.347055435180664],[-5.893854141235295,30.298406600952262]]]},"properties":{"ID_0":152,"ISO":"MA-OUA","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":41,"NAME_2":"Ouarzazate","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.548418045043946,30.276218414306697],[-7.63184976577753,30.224752426147518],[-7.664556980133,30.15548133850109],[-7.634942054748535,30.029819488525508],[-7.671360015869084,29.987670898437496],[-7.750333786010742,29.99276542663574],[-7.820755958557015,30.00849533081049],[-7.859193801879826,29.99489021301281],[-7.935544967651366,29.9266033172608],[-8.02619838714594,29.897928237915092],[-8.138163566589299,29.938829421997013],[-8.232110977172852,30.000547409057617],[-8.281719207763615,30.001647949218803],[-8.313652038574162,29.977979660034297],[-8.345460891723576,29.9091682434082],[-8.386925697326603,29.873035430908317],[-8.41834926605219,29.871959686279297],[-8.608776092529297,29.94828414916992],[-8.687026977539006,29.94189834594738],[-8.72253704071045,29.91417312622076],[-8.720670700073242,29.865076065063477],[-8.692944526672363,29.852798461914062],[-8.661623001098576,29.86578178405767],[-8.628582954406681,29.85719299316406],[-8.63377857208252,29.825939178466907],[-8.671401977539004,29.791381835937496],[-8.708928108215332,29.7344264984132],[-8.793951034545897,29.73021125793457],[-8.849348068237305,29.761253356933594],[-8.963520050048714,29.845142364502006],[-8.9890661239624,29.856521606445426],[-8.970137596130314,29.88074111938477],[-8.928222656249943,29.889528274536186],[-8.911517143249453,29.93304824829107],[-8.94466495513916,29.95580863952642],[-8.960893630981388,29.990526199340987],[-8.957683563232365,30.051006317138782],[-8.901540756225584,30.08434677124052],[-8.939740180969238,30.12859916687017],[-8.978597640991211,30.126976013183878],[-9.00195598602295,30.173139572143498],[-9.042146682739201,30.197170257568356],[-9.102999687194767,30.209598541259993],[-9.1017427444458,30.23940467834484],[-9.131893157958984,30.266704559326286],[-9.203199386596623,30.26258277893072],[-9.247585296630803,30.279737472534293],[-9.268197059631346,30.270025253296012],[-9.310271263122559,30.30798149108898],[-9.258672714233398,30.35020065307623],[-9.288790702819767,30.37155342102062],[-9.29911994934082,30.434364318847653],[-9.295015335083008,30.54982566833507],[-9.332297325134277,30.58299827575695],[-9.327038764953613,30.658723831176754],[-9.238055229186953,30.71050453186046],[-9.284329414367619,30.809429168701172],[-9.237119674682617,30.82715034484886],[-9.187334060668945,30.828126907348686],[-9.151682853698729,30.844137191772575],[-9.043822288513184,30.836034774780327],[-8.995047569274846,30.88064575195312],[-8.921295166015625,30.905736923217884],[-8.858328819274902,30.938980102539176],[-8.819019317626896,30.978885650634822],[-8.780837059020937,30.97695350646984],[-8.770391464233398,30.954975128173825],[-8.71154499053955,30.929307937622013],[-8.685508728027287,30.84815406799322],[-8.650097846984863,30.851684570312496],[-8.615438461303711,30.880025863647457],[-8.533945083618164,30.887430191040096],[-8.423603057861328,30.882490158080994],[-8.390481948852482,30.912170410156477],[-8.321075439453125,30.906236648559513],[-8.181926727294922,30.92973327636724],[-8.098192214965763,30.963848114013782],[-8.045815467834416,30.90947151184076],[-7.988927841186523,30.93970680236822],[-7.90522289276123,31.003181457519585],[-7.902658939361572,31.0491561889649],[-7.831706047058105,31.082180023193363],[-7.767347812652588,31.137861251831165],[-7.755297183990478,31.094976425171065],[-7.756295204162598,31.043504714966105],[-7.688969135284424,30.939039230346737],[-7.647583961486817,30.9102725982666],[-7.591723918914738,30.82593345642095],[-7.592823028564453,30.778112411499137],[-7.563382148742676,30.668327331543082],[-7.563998222351074,30.57769775390636],[-7.609594821929931,30.496498107910327],[-7.633203983306771,30.426889419555774],[-7.633797168731632,30.36243438720703],[-7.620469093322696,30.32705116271978],[-7.548418045043946,30.276218414306697]]]},"properties":{"ID_0":152,"ISO":"MA-TAR","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":42,"NAME_2":"Taroudannt","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.9890661239624,29.856521606445426],[-8.963520050048714,29.845142364502006],[-8.849348068237305,29.761253356933594],[-8.793951034545897,29.73021125793457],[-8.708928108215332,29.7344264984132],[-8.714894294738713,29.596824645996094],[-8.703140258789006,29.567167282104606],[-8.65315246582031,29.515022277832028],[-8.665872573852539,29.494678497314453],[-8.784215927124023,29.460546493530387],[-8.940512657165414,29.422273635864375],[-9.045690536499022,29.43172264099132],[-9.083358764648436,29.41065406799328],[-9.117165565490666,29.3499565124514],[-9.147006034851074,29.25550270080572],[-9.155355453491211,29.20866775512701],[-9.207351684570256,29.29512214660644],[-9.244398117065373,29.312847137451282],[-9.315660476684513,29.32208824157709],[-9.356708526611271,29.312591552734315],[-9.37695407867426,29.277561187744254],[-9.414073944091797,29.250806808471683],[-9.49121379852295,29.238119125366325],[-9.55381774902338,29.2091007232666],[-9.61707592010498,29.19442176818848],[-9.670607566833496,29.195800781250057],[-9.737902641296385,29.264585494995174],[-9.800349235534668,29.26108360290527],[-9.830765724182129,29.229341506958008],[-9.87174320220947,29.128061294555664],[-9.903273582458494,29.10716247558605],[-9.961692810058594,29.114267349243278],[-10.040201187133789,29.081218719482475],[-10.104153633117676,29.03536033630382],[-10.134001731872502,29.031869888305778],[-10.183685302734375,29.062896728515735],[-10.231299400329531,29.054391860961854],[-10.340394020080566,29.0660400390625],[-10.392825126647892,29.063312530517635],[-10.439800262451115,29.09559249877941],[-10.391527175903319,29.169303894043082],[-10.295140266418398,29.26347160339384],[-10.252082824707031,29.2826385498048],[-10.215138435363713,29.314027786254883],[-10.182084083557129,29.377359390258786],[-10.120973587036131,29.439582824707145],[-10.077083587646484,29.511528015136662],[-10.05041599273676,29.582082748413082],[-10.034029006958006,29.595138549804684],[-9.980694770812988,29.67680358886724],[-9.935415267944336,29.720972061157337],[-9.832362174987736,29.805416107177734],[-9.795416831970215,29.85513687133783],[-9.752083778381348,29.94131088256847],[-9.67850112915039,29.92662239074701],[-9.607631683349496,29.928346633911303],[-9.556603431701603,29.95177268981956],[-9.514727592468262,29.946273803710934],[-9.504897117614632,29.920856475830135],[-9.36108303070057,29.87763786315946],[-9.309549331664982,29.828754425048885],[-9.237571716308537,29.828041076660213],[-9.20433235168457,29.782236099243104],[-9.106221199035645,29.731479644775444],[-9.085545539855957,29.742820739746147],[-9.075750350952148,29.793704986572376],[-9.00697708129877,29.832366943359375],[-8.9890661239624,29.856521606445426]]]},"properties":{"ID_0":152,"ISO":"MA-TIZ","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":43,"NAME_2":"Tiznit","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.893854141235295,30.298406600952262],[-5.904599189758244,30.347055435180664],[-5.847054958343506,30.393285751342773],[-5.799090862274113,30.385194778442383],[-5.759720802307129,30.34821510314964],[-5.835535049438476,30.313356399536186],[-5.893854141235295,30.298406600952262]]],[[[-6.443682193756047,30.745311737060714],[-6.405412197112979,30.71724128723144],[-6.369586944580021,30.718082427978512],[-6.287099838256836,30.677507400512805],[-6.308173179626407,30.581026077270447],[-6.331625938415471,30.59775543212902],[-6.416934967041016,30.617656707763786],[-6.503738880157471,30.658184051513672],[-6.542529106140137,30.690376281738338],[-6.56672286987299,30.733373641967773],[-6.443682193756047,30.745311737060714]]],[[[-5.339065074920597,30.811149597168082],[-5.428620815277099,30.771556854248104],[-5.502211093902531,30.724140167236495],[-5.665156841278076,30.60517311096197],[-5.681838035583496,30.63656616210943],[-5.764132976531982,30.71148490905767],[-5.744296073913574,30.73080062866205],[-5.698222160339355,30.837648391723686],[-5.698307037353459,30.875179290771595],[-5.672639846801758,30.96470642089855],[-5.654246807098332,31.054462432861442],[-5.511542797088623,31.032918930054],[-5.470989227294922,31.03162193298351],[-5.385855197906437,31.052259445190426],[-5.326965808868351,31.07696914672863],[-5.329002857208251,31.03794479370117],[-5.359077930450439,30.911214828491264],[-5.339065074920597,30.811149597168082]]]]},"properties":{"ID_0":152,"ISO":"MA-ZAG","NAME_0":"Morocco","ID_1":12,"NAME_1":"Souss - Massa - Draâ","ID_2":44,"NAME_2":"Zagora","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.792753219604492,32.131507873535156],[-5.818540096282959,32.112277984619254],[-5.809366226196232,31.985050201416126],[-5.803466796874999,31.91912269592291],[-5.862355232238712,31.872987747192436],[-5.916359901428165,31.861995697021765],[-5.953586101531926,31.82018470764171],[-6.048281192779484,31.784236907958924],[-6.062050819396915,31.71977233886724],[-6.118620872497558,31.713245391845817],[-6.159967899322396,31.719896316528434],[-6.222959041595402,31.669839859008846],[-6.383297920227051,31.616003036499137],[-6.534130096435433,31.535810470581055],[-6.595612049102783,31.51808166503906],[-6.646113872528076,31.529188156127983],[-6.724829196929818,31.510976791381832],[-6.757458209991397,31.46333122253418],[-6.741561889648437,31.426166534424112],[-6.776954174041748,31.361534118652347],[-6.832812786102295,31.37396049499523],[-6.910385131835938,31.356557846069396],[-7.073276042938232,31.398241043090877],[-7.142748832702637,31.399085998535156],[-7.153965950012207,31.42706680297857],[-7.152145862579346,31.485794067382923],[-7.12607479095459,31.540874481201172],[-7.116692066192627,31.595928192138782],[-7.14197015762329,31.61837768554699],[-7.221867084503174,31.612319946289062],[-7.215283870697022,31.647644042968974],[-7.256267070770264,31.668684005737415],[-7.265823841094971,31.69771385192871],[-7.265242099761905,31.748016357421932],[-7.219196796417236,31.78247833251953],[-7.170004844665471,31.78482437133789],[-7.130075931549072,31.766061782836854],[-7.065193176269531,31.778930664062784],[-7.017685890197754,31.772525787353572],[-7.00087118148798,31.78581809997576],[-7.006015777587891,31.837623596191463],[-6.975689888000431,31.849994659423942],[-7.026236057281493,31.902721405029297],[-7.031435012817382,31.947181701660266],[-7.008597850799561,31.968719482421985],[-7.020309925079289,32.00768280029291],[-7.054349899291992,32.02005767822277],[-7.083401203155518,32.061290740966854],[-7.094932079315186,32.14744567871105],[-7.085706233978271,32.191642761230526],[-7.009130954742432,32.179061889648494],[-6.902245998382568,32.200073242187784],[-6.883179187774601,32.2156333923341],[-6.832233905792179,32.21648406982433],[-6.77384614944458,32.20036315917969],[-6.711212158203068,32.244678497314624],[-6.629826068878173,32.26003646850591],[-6.614806175231934,32.244426727295036],[-6.555817127227783,32.239654541015625],[-6.507472038268986,32.25458145141596],[-6.46259593963623,32.247985839843864],[-6.41536188125599,32.30682754516613],[-6.386602878570557,32.31034088134777],[-6.363656997680607,32.281394958496264],[-6.323153018951416,32.315956115722656],[-6.312715053558293,32.28523635864286],[-6.271742820739689,32.270816802978516],[-6.212328910827579,32.3015594482423],[-6.204178810119572,32.26398468017589],[-6.143027782440185,32.26449584960943],[-6.145157814025878,32.34227371215831],[-6.096292018890381,32.35061264038091],[-6.073241233825684,32.37055587768549],[-6.00846004486084,32.39197921752929],[-5.942967891693058,32.32603454589844],[-5.903824806213379,32.241558074951456],[-5.93517017364502,32.20890808105463],[-5.935788154601994,32.17049026489258],[-5.897643089294434,32.15827178955084],[-5.857871055603027,32.179405212402344],[-5.792753219604492,32.131507873535156]]]},"properties":{"ID_0":152,"ISO":"MA-AZI","NAME_0":"Morocco","ID_1":13,"NAME_1":"Tadla - Azilal","ID_2":45,"NAME_2":"Azilal","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.539947986602782,32.26671218872076],[-5.601295948028564,32.270439147949276],[-5.66251611709589,32.26062393188482],[-5.693075180053711,32.244049072265625],[-5.698494911193848,32.21485137939453],[-5.733107089996338,32.182300567626896],[-5.791763782501221,32.16231536865246],[-5.792753219604492,32.131507873535156],[-5.857871055603027,32.179405212402344],[-5.897643089294434,32.15827178955084],[-5.935788154601994,32.17049026489258],[-5.93517017364502,32.20890808105463],[-5.903824806213379,32.241558074951456],[-5.942967891693058,32.32603454589844],[-6.00846004486084,32.39197921752929],[-6.073241233825684,32.37055587768549],[-6.096292018890381,32.35061264038091],[-6.145157814025878,32.34227371215831],[-6.143027782440185,32.26449584960943],[-6.204178810119572,32.26398468017589],[-6.212328910827579,32.3015594482423],[-6.271742820739689,32.270816802978516],[-6.312715053558293,32.28523635864286],[-6.323153018951416,32.315956115722656],[-6.363656997680607,32.281394958496264],[-6.386602878570557,32.31034088134777],[-6.41536188125599,32.30682754516613],[-6.46259593963623,32.247985839843864],[-6.507472038268986,32.25458145141596],[-6.555817127227783,32.239654541015625],[-6.614806175231934,32.244426727295036],[-6.629826068878173,32.26003646850591],[-6.711212158203068,32.244678497314624],[-6.77384614944458,32.20036315917969],[-6.832233905792179,32.21648406982433],[-6.883179187774601,32.2156333923341],[-6.902245998382568,32.200073242187784],[-7.009130954742432,32.179061889648494],[-7.085706233978271,32.191642761230526],[-7.104716777801514,32.261985778808594],[-7.096294879913329,32.349262237549055],[-7.048169136047306,32.38842010498047],[-6.993169784545842,32.50609970092779],[-6.979220867156982,32.634773254394645],[-6.933784008026065,32.60861587524414],[-6.863515853881835,32.62318801879888],[-6.781012058258057,32.66605758666992],[-6.688073158264103,32.653907775878906],[-6.61369800567627,32.6371765136721],[-6.616106986999454,32.66783905029297],[-6.536411762237492,32.691303253173885],[-6.439866065979004,32.66658782958989],[-6.258750915527343,32.6686897277832],[-6.205180168151799,32.688438415527344],[-6.086471080780029,32.70076370239258],[-6.049743175506534,32.71965789794933],[-6.010511875152531,32.76110076904297],[-5.937498092651367,32.76523208618164],[-5.892776012420654,32.74331665039073],[-5.875408172607365,32.71253585815424],[-5.837991237640381,32.7089462280274],[-5.785201072692871,32.65858840942383],[-5.772222995758057,32.60088348388672],[-5.712646007537842,32.62306594848644],[-5.68290615081787,32.618610382080135],[-5.632174015045108,32.58147430419922],[-5.573194980621338,32.57664108276373],[-5.551036834716797,32.52429199218756],[-5.500706195831242,32.450569152831974],[-5.543957233428955,32.37666320800787],[-5.531923770904541,32.358234405517635],[-5.55503511428833,32.31328582763672],[-5.528954982757568,32.2946891784668],[-5.539947986602782,32.26671218872076]]]},"properties":{"ID_0":152,"ISO":"MA-BEM","NAME_0":"Morocco","ID_1":13,"NAME_1":"Tadla - Azilal","ID_2":46,"NAME_2":"Béni Mellal","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Beni Mellal"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.452639102935791,35.161251068115234],[-4.48125696182251,35.13410186767584],[-4.463706970214844,35.03887176513672],[-4.488070964813176,34.98675155639654],[-4.554901123046875,34.950786590576286],[-4.656044006347599,34.936153411865234],[-4.707155227661133,34.89606475830084],[-4.800545215606633,34.84833145141613],[-4.81301212310791,34.824665069580135],[-4.880921840667725,34.80065155029297],[-4.985062122344914,34.78574752807623],[-5.011644840240422,34.792709350585994],[-5.087921142578125,34.77344894409179],[-5.146657943725529,34.72993087768566],[-5.214858055114689,34.74472045898432],[-5.300374984741154,34.71457672119151],[-5.409334182739258,34.73358154296881],[-5.449059963226261,34.74983978271496],[-5.49806022644043,34.809146881103516],[-5.548560142517033,34.84112548828131],[-5.569712162017765,34.826454162597706],[-5.657011985778694,34.826183319091854],[-5.709773063659668,34.87964630126959],[-5.770846843719482,34.91344833374023],[-5.755236148834229,34.93805694580084],[-5.709561824798584,34.94822311401373],[-5.680414199829045,34.98933792114252],[-5.631969928741455,35.017272949218864],[-5.591298103332519,35.02703094482422],[-5.544909000396672,35.001411437988395],[-5.487889766693002,35.03276443481451],[-5.510245800018253,35.07487869262701],[-5.521164894104004,35.143936157226506],[-5.551631927490178,35.21802139282238],[-5.496118068695067,35.25360107421869],[-5.454572200775089,35.26884078979498],[-5.380142211914062,35.218063354492244],[-5.270833969116153,35.26195526123058],[-5.198316097259521,35.35517120361334],[-5.14656209945673,35.387538909912216],[-5.112924098968506,35.431331634521484],[-5.081529140472298,35.43434524536133],[-5.062917232513371,35.407638549804744],[-5.00569486618042,35.38874816894537],[-4.928194999694767,35.31874847412115],[-4.867361068725586,35.30180740356445],[-4.782638072967529,35.237915039062614],[-4.682361125945988,35.20458221435541],[-4.452639102935791,35.161251068115234]]]},"properties":{"ID_0":152,"ISO":"MA-CHE","NAME_0":"Morocco","ID_1":14,"NAME_1":"Tanger - Tétouan","ID_2":47,"NAME_2":"Chefchaouen","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.571210861206055,35.83963012695318],[-5.559031963348388,35.714897155761776],[-5.614879131317138,35.67067337036133],[-5.740942001342773,35.66636276245123],[-5.804969787597656,35.644168853759766],[-5.841030120849609,35.711406707763786],[-5.872367858886662,35.74097061157238],[-5.84216403961176,35.758514404296875],[-5.805466175079346,35.73175430297857],[-5.753553867340088,35.75002288818365],[-5.746461868286132,35.8190269470216],[-5.701251029968205,35.830970764160156],[-5.644307136535645,35.827362060546875],[-5.571210861206055,35.83963012695318]]]},"properties":{"ID_0":152,"ISO":"MA-FAH","NAME_0":"Morocco","ID_1":14,"NAME_1":"Tanger - Tétouan","ID_2":48,"NAME_2":"Fahs Anjra","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":"Fahs-Béni Makada"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.818693161010742,35.475051879882756],[-5.805657863616943,35.44086837768555],[-5.767072200775146,35.40708541870117],[-5.716443061828556,35.38272476196295],[-5.663475036621093,35.384033203125114],[-5.576376914978027,35.417800903320426],[-5.481421947479191,35.371654510498104],[-5.462818145751953,35.33488464355469],[-5.496118068695067,35.25360107421869],[-5.551631927490178,35.21802139282238],[-5.521164894104004,35.143936157226506],[-5.510245800018253,35.07487869262701],[-5.487889766693002,35.03276443481451],[-5.544909000396672,35.001411437988395],[-5.591298103332519,35.02703094482422],[-5.631969928741455,35.017272949218864],[-5.680414199829045,34.98933792114252],[-5.709561824798584,34.94822311401373],[-5.755236148834229,34.93805694580084],[-5.770846843719482,34.91344833374023],[-5.811799049377441,34.91753768920904],[-5.844469070434513,34.9397811889649],[-5.889041900634709,34.94267654418945],[-5.949685096740723,34.96207427978521],[-6.088069915771428,34.98260498046875],[-6.154698848724252,34.979412078857536],[-6.250139236450138,34.98698806762701],[-6.212637901306152,35.09263992309575],[-6.169582843780518,35.194305419921875],[-6.150100231170654,35.204330444335994],[-6.104584693908635,35.323444366455135],[-6.008255004882756,35.326602935791016],[-5.971488952636719,35.31129074096691],[-5.92250919342041,35.3118515014649],[-5.924171924590951,35.38307952880871],[-5.967895984649658,35.412670135498104],[-5.901759147644043,35.42588806152344],[-5.888229846954345,35.450008392333984],[-5.847154140472411,35.44844055175787],[-5.818693161010742,35.475051879882756]]]},"properties":{"ID_0":152,"ISO":"MA-LAR","NAME_0":"Morocco","ID_1":14,"NAME_1":"Tanger - Tétouan","ID_2":49,"NAME_2":"Larache","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.081529140472298,35.43434524536133],[-5.112924098968506,35.431331634521484],[-5.14656209945673,35.387538909912216],[-5.198316097259521,35.35517120361334],[-5.270833969116153,35.26195526123058],[-5.380142211914062,35.218063354492244],[-5.454572200775089,35.26884078979498],[-5.496118068695067,35.25360107421869],[-5.462818145751953,35.33488464355469],[-5.481421947479191,35.371654510498104],[-5.576376914978027,35.417800903320426],[-5.663475036621093,35.384033203125114],[-5.716443061828556,35.38272476196295],[-5.767072200775146,35.40708541870117],[-5.805657863616943,35.44086837768555],[-5.818693161010742,35.475051879882756],[-5.786306858062687,35.516880035400504],[-5.75530815124506,35.51591491699219],[-5.700529098510742,35.53984451293945],[-5.740942001342773,35.66636276245123],[-5.614879131317138,35.67067337036133],[-5.559031963348388,35.714897155761776],[-5.571210861206055,35.83963012695318],[-5.552083015441895,35.84569549560547],[-5.465694904327393,35.9145851135255],[-5.403193950653076,35.92235946655285],[-5.377442836761418,35.88358306884777],[-5.341249942779541,35.87459945678711],[-5.353751182556152,35.82819366455084],[-5.341805934906006,35.74041748046874],[-5.319583892822265,35.68347167968761],[-5.284306049346924,35.662918090820256],[-5.243473052978516,35.55291748046875],[-5.172916889190674,35.53152847290045],[-5.153749942779541,35.50541687011719],[-5.105971813201847,35.47735977172857],[-5.081529140472298,35.43434524536133]]]},"properties":{"ID_0":152,"ISO":"MA-TET","NAME_0":"Morocco","ID_1":14,"NAME_1":"Tanger - Tétouan","ID_2":50,"NAME_2":"Tétouan","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":"Tetouan"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.746461868286132,35.8190269470216],[-5.753553867340088,35.75002288818365],[-5.805466175079346,35.73175430297857],[-5.84216403961176,35.758514404296875],[-5.872367858886662,35.74097061157238],[-5.841030120849609,35.711406707763786],[-5.804969787597656,35.644168853759766],[-5.740942001342773,35.66636276245123],[-5.700529098510742,35.53984451293945],[-5.75530815124506,35.51591491699219],[-5.786306858062687,35.516880035400504],[-5.818693161010742,35.475051879882756],[-5.847154140472411,35.44844055175787],[-5.888229846954345,35.450008392333984],[-5.901759147644043,35.42588806152344],[-5.967895984649658,35.412670135498104],[-5.924171924590951,35.38307952880871],[-5.92250919342041,35.3118515014649],[-5.971488952636719,35.31129074096691],[-6.008255004882756,35.326602935791016],[-6.104584693908635,35.323444366455135],[-6.081251144409123,35.396251678466854],[-6.016806125640811,35.50152587890636],[-5.98347091674799,35.62319564819336],[-5.930140018463135,35.78847122192394],[-5.908194065093937,35.801528930664176],[-5.841248989105224,35.798194885253906],[-5.766249179840087,35.78402709960949],[-5.746461868286132,35.8190269470216]]]},"properties":{"ID_0":152,"ISO":"MA-TNG","NAME_0":"Morocco","ID_1":14,"NAME_1":"Tanger - Tétouan","ID_2":51,"NAME_2":"Tanger-Assilah","TYPE_2":"Prefecture","ENGTYPE_2":"Prefecture","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.805767059326058,35.202915191650504],[-3.797574996948185,35.17461395263683],[-3.810980081558171,35.11084747314459],[-3.792608022689819,34.99948501586914],[-3.799096107482853,34.90593338012707],[-3.787239074706974,34.890285491943416],[-3.857954025268498,34.83435440063482],[-3.90119290351862,34.8221092224121],[-3.974711894988957,34.819923400878906],[-4.027320861816406,34.79974746704096],[-4.080427169799805,34.74770736694336],[-4.142860889434814,34.719581604003906],[-4.17950677871704,34.725223541259766],[-4.203701019287053,34.7677955627442],[-4.229627132415771,34.775829315185604],[-4.279253005981445,34.745407104492244],[-4.318829059600773,34.690574645996094],[-4.41811990737915,34.648742675781364],[-4.473509788513183,34.660243988037166],[-4.503122806549015,34.68559646606451],[-4.554411888122558,34.676937103271484],[-4.587329864501953,34.70372390747076],[-4.649448871612549,34.690303802490234],[-4.718131065368652,34.71842956542968],[-4.74811410903925,34.80289840698248],[-4.81301212310791,34.824665069580135],[-4.800545215606633,34.84833145141613],[-4.707155227661133,34.89606475830084],[-4.656044006347599,34.936153411865234],[-4.554901123046875,34.950786590576286],[-4.488070964813176,34.98675155639654],[-4.463706970214844,35.03887176513672],[-4.48125696182251,35.13410186767584],[-4.452639102935791,35.161251068115234],[-4.359028816223145,35.14847183227539],[-4.255694866180306,35.18736267089855],[-4.114027976989689,35.204860687255966],[-4.042916774749756,35.2359733581543],[-3.979028940200748,35.23680496215826],[-3.927083015441838,35.26208496093756],[-3.905138969421387,35.214027404785206],[-3.84930491447443,35.19680404663097],[-3.805767059326058,35.202915191650504]]]},"properties":{"ID_0":152,"ISO":"MA-HOC","NAME_0":"Morocco","ID_1":15,"NAME_1":"Taza - Al Hoceima - Taounate","ID_2":52,"NAME_2":"Al Hoceïma","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Al Hoceima"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.142860889434814,34.719581604003906],[-4.112709999084473,34.67407226562505],[-4.113759994506836,34.631320953369254],[-4.083994865417424,34.61219787597656],[-4.160521030426025,34.590412139892635],[-4.194618225097656,34.600990295410206],[-4.232379913330078,34.58298492431635],[-4.298999786376896,34.59146118164068],[-4.322501182556096,34.53234863281256],[-4.361896991729736,34.51388931274414],[-4.37077617645258,34.479557037353516],[-4.407330036163273,34.473281860351676],[-4.449694156646729,34.43758392333996],[-4.474812984466553,34.400485992431754],[-4.474191188812256,34.36542129516613],[-4.439825057983398,34.337650299072266],[-4.463524818420353,34.306427001953125],[-4.375541210174504,34.28399658203131],[-4.326227188110294,34.24483108520513],[-4.381625175476074,34.21361923217768],[-4.35763692855835,34.18017196655279],[-4.373857975006104,34.15422439575201],[-4.451095104217472,34.16544342041027],[-4.601016044616699,34.11609268188482],[-4.575200080871525,34.058322906494254],[-4.625289916992187,34.068443298339844],[-4.653325080871581,34.08734512329113],[-4.739299774169865,34.10510253906256],[-4.762576103210449,34.141418457031364],[-4.765109062194767,34.18701171874994],[-4.801724910736084,34.20135879516613],[-4.80565881729126,34.22756576538086],[-4.887753009796143,34.21713256835949],[-4.906752109527588,34.256263732910156],[-4.949435234069824,34.30139160156256],[-5.033163070678654,34.30728912353521],[-5.083092212676945,34.29513168334961],[-5.127089977264404,34.322910308837834],[-5.179959774017334,34.32169723510748],[-5.335972785949707,34.27817535400402],[-5.38900184631342,34.28688049316412],[-5.430943965911808,34.32424926757818],[-5.473019123077393,34.33440017700195],[-5.480538845062199,34.394721984863224],[-5.435147762298526,34.404865264892635],[-5.368938922882022,34.43786239624029],[-5.354227066040039,34.46129226684576],[-5.311353206634465,34.47734451293951],[-5.312232017517033,34.50104522705084],[-5.239554882049561,34.5383872985841],[-5.2344012260437,34.55787277221691],[-5.173895835876465,34.56531906127941],[-5.173526763916016,34.605854034423885],[-5.146657943725529,34.72993087768566],[-5.087921142578125,34.77344894409179],[-5.011644840240422,34.792709350585994],[-4.985062122344914,34.78574752807623],[-4.880921840667725,34.80065155029297],[-4.81301212310791,34.824665069580135],[-4.74811410903925,34.80289840698248],[-4.718131065368652,34.71842956542968],[-4.649448871612549,34.690303802490234],[-4.587329864501953,34.70372390747076],[-4.554411888122558,34.676937103271484],[-4.503122806549015,34.68559646606451],[-4.473509788513183,34.660243988037166],[-4.41811990737915,34.648742675781364],[-4.318829059600773,34.690574645996094],[-4.279253005981445,34.745407104492244],[-4.229627132415771,34.775829315185604],[-4.203701019287053,34.7677955627442],[-4.17950677871704,34.725223541259766],[-4.142860889434814,34.719581604003906]]]},"properties":{"ID_0":152,"ISO":"MA-TAO","NAME_0":"Morocco","ID_1":15,"NAME_1":"Taza - Al Hoceima - Taounate","ID_2":53,"NAME_2":"Taounate","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.975734949111882,34.65782546997081],[-2.987382888793945,34.60735321044933],[-3.070811033248901,34.568954467773494],[-3.079819917678833,34.48857879638672],[-3.155867099761906,34.42602157592779],[-3.225104093551636,34.394004821777344],[-3.230210065841675,34.34616851806646],[-3.182442903518676,34.300754547119254],[-3.131258964538574,34.26617431640619],[-3.129955053329467,34.174545288085994],[-3.087965965270996,34.14452743530285],[-3.114142894744816,34.08152389526373],[-3.137922048568726,34.05269241333008],[-3.249957084655762,34.016689300537166],[-3.264801979064941,33.96409988403331],[-3.21763801574707,33.92543029785162],[-3.161573886871338,33.864364624023494],[-3.12640190124506,33.8100814819337],[-3.118671894073486,33.74662780761719],[-3.246437072753793,33.771644592285156],[-3.295849084854126,33.80597305297863],[-3.419624090194702,33.838691711425895],[-3.465671062469369,33.88507461547857],[-3.564152002334537,33.92658615112304],[-3.579458951950016,33.89122009277344],[-3.605114936828556,33.878536224365234],[-3.658936977386361,33.79726791381836],[-3.736298084259033,33.75866317749035],[-3.779800891876164,33.7106285095216],[-3.816797018051091,33.69053268432623],[-3.823367118835392,33.66073989868164],[-3.854965925216675,33.62724685668957],[-3.994119882583504,33.57223892211914],[-4.077552795410099,33.569396972656364],[-4.112256050109863,33.60321426391613],[-4.080557823181096,33.673675537109425],[-4.145689964294377,33.685218811035156],[-4.181508064269963,33.66444778442394],[-4.208340167999268,33.70255279541009],[-4.203854084014893,33.77159118652338],[-4.139174938201904,33.83836364746094],[-4.20512676239008,33.83578491210943],[-4.232835769653263,33.8461647033692],[-4.246697902679443,33.89116668701183],[-4.331494808197021,33.91226196289068],[-4.392055988311768,33.872070312500114],[-4.525259971618595,33.91249084472667],[-4.554591178894043,33.93736648559576],[-4.556937217712346,34.02164840698248],[-4.575200080871525,34.058322906494254],[-4.601016044616699,34.11609268188482],[-4.451095104217472,34.16544342041027],[-4.373857975006104,34.15422439575201],[-4.35763692855835,34.18017196655279],[-4.381625175476074,34.21361923217768],[-4.326227188110294,34.24483108520513],[-4.375541210174504,34.28399658203131],[-4.463524818420353,34.306427001953125],[-4.439825057983398,34.337650299072266],[-4.474191188812256,34.36542129516613],[-4.474812984466553,34.400485992431754],[-4.449694156646729,34.43758392333996],[-4.407330036163273,34.473281860351676],[-4.37077617645258,34.479557037353516],[-4.361896991729736,34.51388931274414],[-4.322501182556096,34.53234863281256],[-4.298999786376896,34.59146118164068],[-4.232379913330078,34.58298492431635],[-4.194618225097656,34.600990295410206],[-4.160521030426025,34.590412139892635],[-4.083994865417424,34.61219787597656],[-4.113759994506836,34.631320953369254],[-4.112709999084473,34.67407226562505],[-4.142860889434814,34.719581604003906],[-4.080427169799805,34.74770736694336],[-4.027320861816406,34.79974746704096],[-3.974711894988957,34.819923400878906],[-3.90119290351862,34.8221092224121],[-3.857954025268498,34.83435440063482],[-3.787239074706974,34.890285491943416],[-3.770543098449707,34.864685058593864],[-3.72989797592163,34.842544555664176],[-3.676733016967773,34.847923278808594],[-3.636090993881168,34.82651519775402],[-3.592948913574219,34.831058502197266],[-3.584851980209294,34.757175445556754],[-3.60863804817194,34.72355270385748],[-3.574270963668823,34.69995880126953],[-3.632569074630737,34.66827774047863],[-3.621160030364933,34.634925842285156],[-3.592377901077213,34.611587524414006],[-3.565833091735839,34.56569290161144],[-3.497486114501953,34.55048370361334],[-3.474025964736882,34.61521911621088],[-3.441431999206486,34.64573287963873],[-3.416953086853027,34.63576507568371],[-3.386950016021672,34.66469573974615],[-3.321104049682617,34.69573593139654],[-3.293787956237736,34.75638198852545],[-3.166537046432381,34.75470352172863],[-3.10984110832203,34.70580291748058],[-3.07751989364624,34.706741333007926],[-3.014470100402832,34.66765213012701],[-2.975734949111882,34.65782546997081]]]},"properties":{"ID_0":152,"ISO":"MA-TAZ","NAME_0":"Morocco","ID_1":15,"NAME_1":"Taza - Al Hoceima - Taounate","ID_2":54,"NAME_2":"Taza","TYPE_2":"Province","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/netherlands.geojson b/superset/assets/visualizations/countries/netherlands.geojson new file mode 100644 index 0000000000000..2e84940e4860c --- /dev/null +++ b/superset/assets/visualizations/countries/netherlands.geojson @@ -0,0 +1,16 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[7.098588943481445,52.8387680053712],[7.080383777618636,52.81387329101568],[7.075339794158936,52.71739196777349],[7.063059806823844,52.6471786499024],[7.051859855651855,52.63584899902338],[6.987877845764103,52.64982604980469],[6.948777198791446,52.64259338378912],[6.905216217041016,52.65543746948242],[6.859571933746338,52.65266799926769],[6.786572933197078,52.6561546325683],[6.743810176849365,52.64709091186529],[6.720801830291805,52.628341674804744],[6.718101024627686,52.64885711669922],[6.623817920684928,52.674041748046875],[6.561257839202995,52.665657043457024],[6.523700237274397,52.64714431762707],[6.527470111846923,52.619285583496094],[6.462124824523926,52.61446380615246],[6.429695129394588,52.622806549072266],[6.393902778625545,52.6132164001466],[6.372292995452824,52.64300537109381],[6.334053039550781,52.65944290161133],[6.260047912597656,52.66983032226562],[6.226165771484602,52.68441390991211],[6.190370082855225,52.674762725830135],[6.171147823333854,52.67936706542969],[6.127705097198486,52.75051879882812],[6.163595199585074,52.76287841796869],[6.20875787734991,52.79402160644531],[6.12632417678833,52.853740692138786],[6.214916229248047,52.890911102295036],[6.264826774597281,52.927387237548764],[6.31106805801403,52.925273895263786],[6.342032909393367,52.90620422363286],[6.402304172515983,52.9326744079591],[6.436041831970215,52.9718971252442],[6.370087146759261,53.033439636230526],[6.375282764434928,53.06660842895519],[6.312650203704948,53.08052444458019],[6.323408126831112,53.09391021728521],[6.351733207702694,53.08652877807623],[6.389081001281738,53.1473503112793],[6.415200233459529,53.177581787109375],[6.456179141998404,53.19609832763672],[6.492421150207633,53.20387268066406],[6.53726577758789,53.194507598877],[6.573716163635311,53.157382965088004],[6.609537124633789,53.144485473632926],[6.644701957702694,53.11363220214838],[6.703401088714542,53.12112045288097],[6.746828079223633,53.118869781494254],[6.947936058044546,52.99270629882807],[7.016479015350399,52.923656463623104],[7.041859149932861,52.911540985107536],[7.02171897888195,52.872051239013786],[7.043927192688045,52.871139526367244],[7.076990127563477,52.8451499938966],[7.098588943481445,52.8387680053712]]]},"properties":{"ID_0":158,"ISO":"NL-DR","NAME_0":"Netherlands","ID_1":1,"NAME_1":"Drenthe","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.861103057861328,52.54526901245122],[5.862565994262638,52.5434684753418],[5.854714870452938,52.49413299560541],[5.809958934783878,52.444007873535156],[5.752162933349723,52.413642883300724],[5.72709417343151,52.41639328002941],[5.665021896362418,52.397666931152344],[5.616228103637752,52.36632537841808],[5.56906080245966,52.367275238037166],[5.542487144470215,52.34754943847661],[5.558660030365104,52.33227920532238],[5.534986019134578,52.27484893798828],[5.417321205139274,52.2533226013183],[5.390840053558406,52.26408004760748],[5.303880214691219,52.31247329711914],[5.209552764892578,52.335639953613274],[5.160984992980957,52.32924652099615],[5.137357234954947,52.33816146850597],[5.132612228393612,52.38302612304693],[5.164947986602783,52.39926528930663],[5.26215505599987,52.435371398925895],[5.439299106598014,52.51092910766607],[5.439291954040526,52.52888107299816],[5.461491107940731,52.55311584472656],[5.505989074707145,52.55579376220703],[5.562249183654842,52.591667175293026],[5.645288944244385,52.607723236083984],[5.661541938781852,52.59692764282232],[5.769587039947453,52.5796470642091],[5.816977024078483,52.57861709594732],[5.861103057861328,52.54526901245122]]],[[[5.801125049591121,52.805797576904354],[5.82469177246105,52.78421783447277],[5.856007099151725,52.78405380249029],[5.928727149963322,52.75154495239258],[5.948259830474967,52.718582153320426],[5.972555160522461,52.69841766357422],[5.947529792785645,52.67005920410162],[5.986923217773438,52.65960693359381],[5.970245838165283,52.63910675048828],[5.838163852691594,52.612636566162216],[5.669095039367675,52.61314773559576],[5.621858119964656,52.65091323852545],[5.598130226135368,52.659858703613395],[5.601416110992545,52.76573944091791],[5.665553092956486,52.827705383300895],[5.719285964965933,52.837383270263665],[5.75512790679943,52.839096069335994],[5.801125049591121,52.805797576904354]]]]},"properties":{"ID_0":158,"ISO":"NL-FL","NAME_0":"Netherlands","ID_1":2,"NAME_1":"Flevoland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.070277214050236,53.30708312988281],[5.044721126556396,53.28374862670904],[4.989720821380729,53.26597213745117],[5.002500057220572,53.258193969726676],[4.916389942169133,53.21569442749029],[4.850276947021541,53.2212486267091],[4.92083215713501,53.25041580200201],[4.960277080536001,53.27180480957031],[5.035278797149658,53.30069351196289],[5.070277214050236,53.30708312988281]]],[[[6.1960768699646,53.41180419921875],[6.173986911773795,53.3901252746582],[6.18264102935791,53.36674499511713],[6.293748855590876,53.34090805053711],[6.287105083465576,53.30239868164068],[6.220963001251334,53.23279953002929],[6.237222194671745,53.217441558838004],[6.206818103790511,53.197891235351676],[6.183751106262434,53.166622161865234],[6.183204174041862,53.134315490722706],[6.21287393569969,53.115291595458984],[6.269832134247053,53.11402511596685],[6.323408126831112,53.09391021728521],[6.312650203704948,53.08052444458019],[6.375282764434928,53.06660842895519],[6.370087146759261,53.033439636230526],[6.436041831970215,52.9718971252442],[6.402304172515983,52.9326744079591],[6.342032909393367,52.90620422363286],[6.31106805801403,52.925273895263786],[6.264826774597281,52.927387237548764],[6.214916229248047,52.890911102295036],[6.12632417678833,52.853740692138786],[6.066314220428467,52.82623291015625],[6.003631114959773,52.816658020019474],[5.978752136230525,52.84165573120123],[5.938309192657584,52.834884643554744],[5.93063306808483,52.82320785522472],[5.88284778594965,52.80098724365246],[5.842695236206055,52.80561065673828],[5.826416969299373,52.81732559204096],[5.801125049591121,52.805797576904354],[5.75512790679943,52.839096069335994],[5.719285964965933,52.837383270263665],[5.662726879119873,52.84373855590826],[5.649390220642204,52.85991287231445],[5.624009132385311,52.850078582763786],[5.589725971222037,52.84922409057617],[5.579256057739315,52.83577346801769],[5.549449920654297,52.83220672607427],[5.483912944793701,52.85108566284174],[5.419827938079948,52.84928512573248],[5.364634037017936,52.874382019043026],[5.373540878295954,52.897720336914006],[5.410830020904541,52.90940856933594],[5.404831886291504,52.938125610351676],[5.416758060455322,52.962360382080135],[5.403278827667236,52.990177154541016],[5.401748180389518,53.022483825683594],[5.367237091064566,53.07361221313482],[5.299851894378662,53.065464019775504],[5.16998291015625,52.99791336059582],[5.167500972747916,52.999862670898494],[5.294722080230827,53.06735992431646],[5.34139013290411,53.07513809204107],[5.379722118377686,53.092144012451286],[5.410278797149715,53.13069534301769],[5.416944980621395,53.16875076293951],[5.448054790496826,53.219306945800724],[5.526389122009391,53.25597381591797],[5.579722881317196,53.2959709167481],[5.643055915832633,53.319305419921875],[5.719720840454102,53.33625030517578],[5.869166851043815,53.38208389282238],[5.883612155914307,53.38874816894537],[5.939722061157283,53.3890266418457],[6.014720916748104,53.40263748168957],[6.09027719497692,53.40819549560547],[6.143610954284725,53.404304504394645],[6.1960768699646,53.41180419921875]]],[[[5.531390190124568,53.44791793823242],[5.541944026947021,53.430973052978516],[5.480834007263127,53.41791534423828],[5.456943988800106,53.40347290039068],[5.38472318649292,53.40180587768555],[5.344168186187744,53.38236236572277],[5.223056793213004,53.365695953369084],[5.188610076904297,53.346248626708984],[5.152499198913574,53.35930633544916],[5.195833206176815,53.3948593139649],[5.318056106567383,53.41263961791992],[5.421389102935847,53.4301376342774],[5.504721164703483,53.44736099243164],[5.531390190124568,53.44791793823242]]],[[[5.674166202545279,53.471805572509766],[5.701387882232723,53.46263885498058],[5.74916601181036,53.45930480957031],[5.902499198913574,53.46763992309576],[5.889721870422306,53.45041656494152],[5.806387901306266,53.43736267089844],[5.722499847412166,53.442081451416065],[5.703609943390006,53.42902755737305],[5.65694522857666,53.424861907958984],[5.628611087799186,53.430973052978516],[5.61583423614502,53.45375061035156],[5.650278091430607,53.471248626709034],[5.674166202545279,53.471805572509766]]],[[[6.359167098999023,53.509582519531364],[6.281389236450309,53.48930740356445],[6.260278224945182,53.47874832153332],[6.161943912506104,53.47291564941411],[6.134165763855094,53.4870834350587],[6.165278911590633,53.50291824340826],[6.359167098999023,53.509582519531364]]]]},"properties":{"ID_0":158,"ISO":"NL-FR","NAME_0":"Netherlands","ID_1":3,"NAME_1":"Friesland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Frise|Frisia|Frísia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.768417835235539,52.119525909423885],[6.75971794128418,52.08686065673839],[6.742818832397688,52.07511901855469],[6.70068883895874,52.07379150390624],[6.698178768157959,52.04011917114258],[6.759449005126896,52.03073883056646],[6.816958904266357,51.99872970581054],[6.83536100387596,51.9955291748048],[6.838380813598633,51.96559906005854],[6.808720111847037,51.96097946166992],[6.805359840393066,51.934608459472706],[6.742709159851131,51.899051666259815],[6.711949825286865,51.905700683593864],[6.692440986633528,51.920162200927734],[6.65762710571289,51.90795898437511],[6.553330898284911,51.88270568847662],[6.480340003967284,51.85462188720703],[6.457089900970459,51.86885070800792],[6.397315025329532,51.871364593505916],[6.410539150238094,51.8359375],[6.369891166687125,51.8392791748048],[6.352918148040885,51.85449600219721],[6.310534954070988,51.850990295410156],[6.288980960845946,51.87657928466797],[6.218544960022029,51.867488861083984],[6.169019222259635,51.902938842773494],[6.1193590164184,51.89014053344738],[6.166995048522892,51.858608245849666],[6.168982028961238,51.84503173828136],[6.110060214996395,51.8469619750976],[6.068249225616682,51.86490249633795],[6.060989856719913,51.851593017578125],[6.001205921173323,51.82850646972656],[5.972117900848502,51.831855773925895],[5.97088003158575,51.809398651123104],[5.992381095886287,51.7950553894043],[5.999741077423209,51.764369964599666],[5.964142799377554,51.74181747436523],[5.923713207244929,51.75334930419921],[5.900456905365103,51.77842330932617],[5.872875213623161,51.7589225769044],[5.78703594207775,51.75290679931651],[5.752188205718994,51.76017761230463],[5.699997901916618,51.78991699218761],[5.66946697235113,51.79536056518565],[5.643374919891357,51.820537567138786],[5.595354080200195,51.83047485351568],[5.551632881164608,51.817951202392635],[5.496285915374756,51.83143615722662],[5.471543788909969,51.81169891357422],[5.435149192810115,51.81169891357422],[5.411843776702938,51.82336044311535],[5.374040126800537,51.79012298583978],[5.359560966491812,51.756000518798885],[5.305819034576472,51.73799133300787],[5.254919052124137,51.73426437377935],[5.225845813751278,51.744140625000114],[5.167703151702938,51.74311447143549],[5.147265911102295,51.755626678466854],[5.142780780792293,51.77356719970703],[5.10484886169445,51.78782272338873],[5.081634044647274,51.77967071533203],[5.005562782287541,51.82159423828119],[5.030344009399528,51.818992614746094],[5.048910140991268,51.85945510864252],[5.09530878067028,51.88922882080083],[5.117190837860164,51.888397216796875],[5.153345108032283,51.93427658081055],[5.185256958007812,51.96846389770513],[5.210141181945801,51.95954513549815],[5.249492168426514,51.97846984863286],[5.274384975433462,51.965946197509766],[5.322628021240348,51.955242156982415],[5.353265762329215,51.96873855590832],[5.388287067413387,51.9696617126466],[5.436536788940543,51.98404312133788],[5.493533134460449,51.98314666748041],[5.544589996337947,51.96876907348633],[5.567996978759822,51.955276489257926],[5.611770153045768,51.94355773925787],[5.633729934692383,51.95789337158209],[5.620708942413329,51.99112319946288],[5.593001842498836,52.01188278198242],[5.5959987640382,52.03513717651367],[5.56384515762329,52.04953002929681],[5.568312168121338,52.07914733886718],[5.561040878295955,52.10069656372081],[5.528769016265983,52.07827758789074],[5.489219188690242,52.0702171325683],[5.464327812194767,52.08098983764654],[5.492167949676571,52.09445190429693],[5.505414009094238,52.14740753173828],[5.479022026061955,52.16446685791021],[5.445270061492977,52.17164611816406],[5.445265769958553,52.20486068725597],[5.398246765136832,52.22100067138666],[5.408505916595515,52.24703598022455],[5.477609157562256,52.261405944824325],[5.533495903015194,52.26408004760748],[5.565979957580566,52.31521987915044],[5.607397079467887,52.33850860595703],[5.625078201294058,52.35826873779308],[5.722490787506104,52.38768386840826],[5.796501159668082,52.422504425048764],[5.847074985504264,52.466331481933594],[5.872694969177303,52.51920318603521],[5.890445232391414,52.5191383361817],[5.932849884033203,52.47410202026372],[5.972775936126823,52.47663116455078],[6.008544921875056,52.50070953369146],[6.035276889801082,52.50955963134776],[6.064691066741943,52.49774551391607],[6.110051155090332,52.46609497070307],[6.109745025634878,52.44544982910167],[6.127272129058952,52.43278884887706],[6.118054866790999,52.40859985351568],[6.138457775115967,52.40044403076183],[6.129414081573485,52.379817962646484],[6.088014125824202,52.37196350097662],[6.078471183776969,52.322647094726676],[6.107603073120117,52.30094909667969],[6.155035972595329,52.22887420654296],[6.347523212432975,52.22760009765631],[6.359589099884089,52.2427711486817],[6.425747871398926,52.24315261840826],[6.438559055328483,52.224197387695426],[6.489037036895751,52.18337631225585],[6.565248966217098,52.178207397460994],[6.600609779357967,52.18326187133795],[6.628046035766602,52.16593933105469],[6.654720783233699,52.1755485534668],[6.682354927063102,52.166290283203125],[6.684620857238997,52.14203262329107],[6.672594070434684,52.13138198852545],[6.726501941680908,52.119152069091854],[6.768417835235539,52.119525909423885]]]},"properties":{"ID_0":158,"ISO":"NL-GE","NAME_0":"Netherlands","ID_1":4,"NAME_1":"Gelderland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Geldern|Gheldria|Guelders|Gueldre"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[7.098588943481445,52.8387680053712],[7.076990127563477,52.8451499938966],[7.043927192688045,52.871139526367244],[7.02171897888195,52.872051239013786],[7.041859149932861,52.911540985107536],[7.016479015350399,52.923656463623104],[6.947936058044546,52.99270629882807],[6.746828079223633,53.118869781494254],[6.703401088714542,53.12112045288097],[6.644701957702694,53.11363220214838],[6.609537124633789,53.144485473632926],[6.573716163635311,53.157382965088004],[6.53726577758789,53.194507598877],[6.492421150207633,53.20387268066406],[6.456179141998404,53.19609832763672],[6.415200233459529,53.177581787109375],[6.389081001281738,53.1473503112793],[6.351733207702694,53.08652877807623],[6.323408126831112,53.09391021728521],[6.269832134247053,53.11402511596685],[6.21287393569969,53.115291595458984],[6.183204174041862,53.134315490722706],[6.183751106262434,53.166622161865234],[6.206818103790511,53.197891235351676],[6.237222194671745,53.217441558838004],[6.220963001251334,53.23279953002929],[6.287105083465576,53.30239868164068],[6.293748855590876,53.34090805053711],[6.18264102935791,53.36674499511713],[6.173986911773795,53.3901252746582],[6.1960768699646,53.41180419921875],[6.253055095672663,53.41541671752941],[6.310833930969351,53.39652633666998],[6.380277156829891,53.419303894043026],[6.567501068115291,53.4356956481933],[6.674167156219539,53.459861755371094],[6.742499828338623,53.465415954589844],[6.79861211776739,53.45458221435552],[6.813611030578727,53.46347045898437],[6.863611221313533,53.450695037841854],[6.884165763854924,53.4381942749024],[6.873054981231917,53.407638549804744],[6.887499809265193,53.395416259765625],[6.898055076599121,53.35013961791997],[6.970279216766471,53.31847381591808],[7.024723052978628,53.30208206176763],[7.084722995758283,53.29763793945323],[7.080278873443717,53.263748168945256],[7.111389160156363,53.25097274780279],[7.271598815918026,53.22857666015631],[7.284949779510498,53.18859100341791],[7.241341114044245,53.14234161376958],[7.227190017700422,53.117160797119084],[7.256578922271729,53.098411560058594],[7.249300003051816,53.06597900390624],[7.254858016967773,53.001121520996094],[7.212191104888972,52.93294143676758],[7.136619091033992,52.87540054321295],[7.102118015289419,52.85423278808588],[7.098588943481445,52.8387680053712]]],[[[6.474167823791618,53.55448913574219],[6.504166126251278,53.53819274902355],[6.470276832580566,53.52291488647461],[6.455277919769287,53.54875183105468],[6.474167823791618,53.55448913574219]]]]},"properties":{"ID_0":158,"ISO":"NL-GR","NAME_0":"Netherlands","ID_1":5,"NAME_1":"Groningen","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Groninga|Groningue"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.000236988067684,52.349376678466854],[4.964716911315975,52.36359405517584],[5.02932977676403,52.38898086547851],[5.089422225952092,52.43495941162121],[5.052473068237304,52.439323425293026],[5.065517902374324,52.46719360351573],[5.062405109405518,52.48513412475586],[5.088860988616943,52.50317001342784],[5.069475173950309,52.52195739746105],[5.022902965545711,52.59539413452154],[5.022568225860709,52.629497528076165],[5.04915380477911,52.64126205444347],[5.084752082824764,52.64138031005854],[5.130897998809871,52.61907577514654],[5.163488864898795,52.62275314331066],[5.240424156189022,52.65702438354498],[5.250681877136344,52.68486404418951],[5.308524131774959,52.70470046997076],[5.292149066925106,52.71455001831055],[5.286105155944881,52.7414665222168],[5.262267112731934,52.7530975341798],[5.196825981140194,52.75476455688471],[5.15973806381237,52.74121475219738],[5.126932144165039,52.75458908081055],[5.107450008392334,52.773380279541065],[5.11731576919567,52.845207214355526],[5.043352127075138,52.93597412109381],[5.049166202545279,52.938751220703125],[5.062808036804313,52.941967010498104],[5.16998291015625,52.99791336059582],[5.299851894378662,53.065464019775504],[5.367237091064566,53.07361221313482],[5.401748180389518,53.022483825683594],[5.403278827667236,52.990177154541016],[5.416758060455322,52.962360382080135],[5.404831886291504,52.938125610351676],[5.410830020904541,52.90940856933594],[5.373540878295954,52.897720336914006],[5.364634037017936,52.874382019043026],[5.419827938079948,52.84928512573248],[5.483912944793701,52.85108566284174],[5.549449920654297,52.83220672607427],[5.579256057739315,52.83577346801769],[5.589725971222037,52.84922409057617],[5.624009132385311,52.850078582763786],[5.649390220642204,52.85991287231445],[5.662726879119873,52.84373855590826],[5.719285964965933,52.837383270263665],[5.665553092956486,52.827705383300895],[5.601416110992545,52.76573944091791],[5.598130226135368,52.659858703613395],[5.621858119964656,52.65091323852545],[5.669095039367675,52.61314773559576],[5.838163852691594,52.612636566162216],[5.970245838165283,52.63910675048828],[5.986923217773438,52.65960693359381],[6.017700195312557,52.63798904418957],[5.993837833404655,52.62732696533203],[5.990838050842341,52.62464904785156],[5.946258068084774,52.615863800048935],[5.923984050750732,52.612358093261825],[5.896000862121696,52.61968231201172],[5.846880912780819,52.60993957519531],[5.837705135345573,52.577655792236385],[5.861103057861328,52.54526901245122],[5.816977024078483,52.57861709594732],[5.769587039947453,52.5796470642091],[5.661541938781852,52.59692764282232],[5.645288944244385,52.607723236083984],[5.562249183654842,52.591667175293026],[5.505989074707145,52.55579376220703],[5.461491107940731,52.55311584472656],[5.439291954040526,52.52888107299816],[5.439299106598014,52.51092910766607],[5.26215505599987,52.435371398925895],[5.164947986602783,52.39926528930663],[5.132612228393612,52.38302612304693],[5.137357234954947,52.33816146850597],[5.160984992980957,52.32924652099615],[5.209552764892578,52.335639953613274],[5.303880214691219,52.31247329711914],[5.390840053558406,52.26408004760748],[5.417321205139274,52.2533226013183],[5.534986019134578,52.27484893798828],[5.558660030365104,52.33227920532238],[5.542487144470215,52.34754943847661],[5.56906080245966,52.367275238037166],[5.616228103637752,52.36632537841808],[5.665021896362418,52.397666931152344],[5.72709417343151,52.41639328002941],[5.752162933349723,52.413642883300724],[5.809958934783878,52.444007873535156],[5.854714870452938,52.49413299560541],[5.862565994262638,52.5434684753418],[5.872694969177303,52.51920318603521],[5.847074985504264,52.466331481933594],[5.796501159668082,52.422504425048764],[5.722490787506104,52.38768386840826],[5.625078201294058,52.35826873779308],[5.607397079467887,52.33850860595703],[5.565979957580566,52.31521987915044],[5.533495903015194,52.26408004760748],[5.477609157562256,52.261405944824325],[5.408505916595515,52.24703598022455],[5.368771076202393,52.2685546875],[5.311379909515495,52.277469635009815],[5.29660177230835,52.29629898071289],[5.250860214233455,52.3114852905274],[5.165554046630916,52.30591964721691],[5.141869068145751,52.324707031250114],[5.097574234008789,52.33894348144536],[5.040172100067196,52.33336639404297],[5.000236988067684,52.349376678466854]]]},"properties":{"ID_0":158,"ISO":"NL-YS","NAME_0":"Netherlands","ID_1":6,"NAME_1":"IJsselmeer","TYPE_1":"Water body","ENGTYPE_1":"Water body","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.964142799377554,51.74181747436523],[6.036541938781851,51.727481842041016],[6.035422801971436,51.68281173706066],[6.051452159881592,51.67261123657232],[6.118769168853873,51.66045761108404],[6.105618000030574,51.62265014648449],[6.09095811843872,51.605220794677734],[6.156868934631348,51.56924057006841],[6.179258823394775,51.54090118408203],[6.220355987548884,51.509170532226506],[6.230510234832821,51.47665023803705],[6.214348793029841,51.409561157226676],[6.231968879699764,51.365982055664055],[6.198399066925163,51.342559814453175],[6.174569129943961,51.33777999877941],[6.165248870849723,51.31521987915045],[6.128142833709717,51.28623962402343],[6.117840766906681,51.26990127563471],[6.078186035156364,51.2447128295899],[6.078309059143066,51.187469482421875],[6.098670959472656,51.17370986938488],[6.144780158996582,51.17371749877941],[6.171799182891788,51.1529312133789],[6.130209922790584,51.15040206909185],[6.106959819793758,51.141330718994254],[6.038741111755371,51.095649719238395],[5.998916149139518,51.0817642211914],[5.969543933868636,51.03446960449218],[5.947728157043456,51.03725051879883],[5.926199913024845,51.055740356445426],[5.87205886840826,51.043411254882805],[5.907961845398063,51.00095367431646],[5.899706840515194,50.981441497802784],[5.950080871582031,50.99216461181646],[6.032363891601619,50.97996902465832],[6.002170085906982,50.958591461181754],[6.015170097351017,50.933158874511655],[6.082940101623592,50.921798706054744],[6.075368881225586,50.90092468261713],[6.087715148925895,50.87893295288086],[6.063103199005126,50.85156631469738],[6.019684791565054,50.845233917236385],[6.03108119964611,50.82139205932623],[5.999741077423209,50.80281066894537],[5.975275993347282,50.814090728759766],[5.963199138641471,50.795051574707145],[5.992528915405386,50.78171157836919],[5.999074935913086,50.756366729736385],[5.959646224975643,50.76206588745122],[5.90474176406866,50.75516510009777],[5.881153106689453,50.76927185058605],[5.855858802795353,50.7611656188966],[5.813356876373348,50.76006698608392],[5.773447990417537,50.78495407104498],[5.732358932495231,50.762664794921875],[5.691102027893066,50.761138916015625],[5.705244064331168,50.7859382629395],[5.701066970825195,50.805370330810604],[5.660498142242488,50.821987152099666],[5.649746894836539,50.83691787719738],[5.651988029480094,50.872505187988224],[5.687693119049128,50.88209152221691],[5.703488826751709,50.90611267089844],[5.723505020141715,50.90905761718755],[5.757295131683406,50.953041076660156],[5.725789070129451,50.9640007019043],[5.763065814971981,50.992351531982536],[5.774485111236629,51.02516174316412],[5.764050960540828,51.03752136230469],[5.782749176025391,51.06509399414074],[5.801907062530518,51.06391906738287],[5.824966907501277,51.12927627563488],[5.858759880066031,51.14596176147461],[5.821729183196965,51.162628173828125],[5.782736778259391,51.15991210937511],[5.782691955566463,51.18131637573248],[5.749197959899846,51.19004821777355],[5.709558963775634,51.18134689331066],[5.655365943908804,51.18644332885747],[5.651566028595028,51.199867248535156],[5.570586204528865,51.22145462036127],[5.626573085784912,51.23078918457036],[5.632492065429631,51.27476882934576],[5.680178165435791,51.3168830871582],[5.87925195693981,51.35404586791992],[5.940124988555908,51.3861312866212],[5.880164146423397,51.4518928527832],[5.860422134399528,51.5058212280274],[5.846496105194149,51.5678062438966],[5.943375110626278,51.55488586425787],[6.013069152832031,51.571636199951115],[6.041842937469482,51.55713653564458],[6.047998905181941,51.584934234619254],[6.028206825256575,51.6236305236817],[5.973466873169002,51.654399871826286],[5.963946819305534,51.71099472045904],[5.894371986389274,51.72653198242193],[5.872875213623161,51.7589225769044],[5.900456905365103,51.77842330932617],[5.923713207244929,51.75334930419921],[5.964142799377554,51.74181747436523]]]},"properties":{"ID_0":158,"ISO":"NL-LI","NAME_0":"Netherlands","ID_1":7,"NAME_1":"Limburg","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Limbourg|Limburgo"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.872875213623161,51.7589225769044],[5.894371986389274,51.72653198242193],[5.963946819305534,51.71099472045904],[5.973466873169002,51.654399871826286],[6.028206825256575,51.6236305236817],[6.047998905181941,51.584934234619254],[6.041842937469482,51.55713653564458],[6.013069152832031,51.571636199951115],[5.943375110626278,51.55488586425787],[5.846496105194149,51.5678062438966],[5.860422134399528,51.5058212280274],[5.880164146423397,51.4518928527832],[5.940124988555908,51.3861312866212],[5.87925195693981,51.35404586791992],[5.680178165435791,51.3168830871582],[5.632492065429631,51.27476882934576],[5.626573085784912,51.23078918457036],[5.570586204528865,51.22145462036127],[5.560273170471191,51.22884368896484],[5.551477909088192,51.26653671264654],[5.512876033783073,51.293033599853516],[5.489470005035514,51.29738235473633],[5.420667171478271,51.26112747192377],[5.35764217376709,51.27290725708019],[5.334092140197811,51.26382064819336],[5.26488304138195,51.266914367675895],[5.228401184082088,51.27313232421881],[5.245742797851562,51.305252075195426],[5.209953784942627,51.32352447509771],[5.13670921325695,51.31553268432617],[5.122406005859489,51.36013031005865],[5.07581615447998,51.39513397216797],[5.097507953643798,51.42852783203125],[5.082108020782584,51.46693038940424],[5.022393226623535,51.47570800781256],[5.006558895111084,51.43910217285162],[4.945034027099609,51.401901245117244],[4.925730228424186,51.39862442016613],[4.884724140167293,51.41562652587896],[4.832930088043327,51.40933609008789],[4.782611846923942,51.41544342041021],[4.786021232605093,51.43194961547857],[4.834949970245417,51.422389984130916],[4.829224109649601,51.43962478637707],[4.83863019943243,51.47982788085937],[4.779335975647086,51.50382232666027],[4.752143859863338,51.49752426147466],[4.707461833953857,51.4558448791505],[4.678764820098876,51.44445419311523],[4.679113864898682,51.42538833618164],[4.647445201873779,51.423614501953175],[4.590851783752555,51.431396484375],[4.537150859832764,51.423633575439396],[4.530519008636588,51.44551849365234],[4.551988124847469,51.47214889526373],[4.537779808044547,51.484771728515625],[4.478610992431754,51.48099899292003],[4.408965110778809,51.458827972412166],[4.395366191863957,51.44842910766596],[4.392259120941276,51.41722869873058],[4.424565792083854,51.386028289795036],[4.42266321182251,51.3678359985351],[4.396659851074332,51.36003112792968],[4.346426010131893,51.36071777343756],[4.337417125701961,51.38127899169927],[4.278090953826961,51.378643035888665],[4.264810085296745,51.41691970825207],[4.277564048767146,51.42602920532232],[4.261052131652832,51.450099945068466],[4.282272815704403,51.46737289428711],[4.254351139068717,51.48504638671881],[4.227271080017204,51.5242652893067],[4.23686599731451,51.54411697387707],[4.23056793212902,51.56290435791027],[4.199522018432674,51.585918426513786],[4.191707134246826,51.60639953613292],[4.215748786926326,51.62828445434564],[4.238801002502555,51.633911132812436],[4.260572910308952,51.63323974609381],[4.318253993988151,51.64638137817394],[4.353020191192627,51.64850616455084],[4.378870010375977,51.659519195556754],[4.395775794983024,51.68121719360357],[4.42736005783081,51.696762084960994],[4.492988109588623,51.683853149414176],[4.522021770477238,51.684085845947315],[4.604528903961181,51.69728088378906],[4.623225212097168,51.707290649414176],[4.695649147033691,51.71945190429693],[4.738762855529785,51.74934768676769],[4.761540889740047,51.78090286254882],[4.786074161529598,51.794509887695256],[4.825302124023381,51.79921722412115],[4.863097190856934,51.8030052185058],[4.907957077026424,51.82476806640631],[4.931215763092098,51.82846450805669],[5.005562782287541,51.82159423828119],[5.081634044647274,51.77967071533203],[5.10484886169445,51.78782272338873],[5.142780780792293,51.77356719970703],[5.147265911102295,51.755626678466854],[5.167703151702938,51.74311447143549],[5.225845813751278,51.744140625000114],[5.254919052124137,51.73426437377935],[5.305819034576472,51.73799133300787],[5.359560966491812,51.756000518798885],[5.374040126800537,51.79012298583978],[5.411843776702938,51.82336044311535],[5.435149192810115,51.81169891357422],[5.471543788909969,51.81169891357422],[5.496285915374756,51.83143615722662],[5.551632881164608,51.817951202392635],[5.595354080200195,51.83047485351568],[5.643374919891357,51.820537567138786],[5.66946697235113,51.79536056518565],[5.699997901916618,51.78991699218761],[5.752188205718994,51.76017761230463],[5.78703594207775,51.75290679931651],[5.872875213623161,51.7589225769044]]]},"properties":{"ID_0":158,"ISO":"NL-NB","NAME_0":"Netherlands","ID_1":8,"NAME_1":"Noord-Brabant","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Brabante del Norte|Brabante do Norte|Brabante settentrionale|Brabant-septentrional|Nord-Brabant|Nort"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.000236988067684,52.349376678466854],[5.040172100067196,52.33336639404297],[5.097574234008789,52.33894348144536],[5.141869068145751,52.324707031250114],[5.165554046630916,52.30591964721691],[5.250860214233455,52.3114852905274],[5.29660177230835,52.29629898071289],[5.311379909515495,52.277469635009815],[5.270171165466365,52.281898498535156],[5.24244499206543,52.246009826660156],[5.220551967620906,52.204616546630916],[5.197206974029541,52.17763900756836],[5.128194808959961,52.18105697631836],[5.05053281784069,52.16555404663097],[5.038351058959961,52.21308517456049],[5.06165790557867,52.23560333251959],[5.027517795562858,52.270492553710994],[5.046533107757567,52.282226562499936],[5.01542520523077,52.30365753173834],[5.000850200653133,52.289241790771484],[4.931906223297176,52.27008819580083],[4.914468765258789,52.252971649169915],[4.885054111480656,52.25373077392584],[4.830978870391846,52.230117797851676],[4.797234058380127,52.22634506225591],[4.745993137359733,52.214378356933594],[4.726602077484245,52.23221206665039],[4.672246932983512,52.23096847534191],[4.64161491394043,52.21819305419922],[4.604957103729248,52.21434402465826],[4.558435916900635,52.218685150146534],[4.570105075836295,52.267948150634815],[4.590466976165828,52.27976989746094],[4.613377094268913,52.31314468383794],[4.585299968719596,52.318328857421875],[4.56486701965332,52.30920028686535],[4.494165897369384,52.327655792236435],[4.560276985168571,52.431526184082145],[4.598055839538574,52.51985931396496],[4.633611202240104,52.68319320678722],[4.640276908874569,52.73430633544921],[4.653056144714412,52.765693664550895],[4.675834178924674,52.79652786254894],[4.711945056915283,52.88902664184582],[4.714723110199031,52.93680572509777],[4.72472190856945,52.95791625976568],[4.776946067810115,52.964862823486385],[4.815278053283691,52.908748626708984],[4.87694501876831,52.88847351074224],[4.945834159851131,52.908748626708984],[4.959722995758113,52.926528930664006],[5.004722118377686,52.93597030639643],[5.043352127075138,52.93597412109381],[5.11731576919567,52.845207214355526],[5.107450008392334,52.773380279541065],[5.126932144165039,52.75458908081055],[5.15973806381237,52.74121475219738],[5.196825981140194,52.75476455688471],[5.262267112731934,52.7530975341798],[5.286105155944881,52.7414665222168],[5.292149066925106,52.71455001831055],[5.308524131774959,52.70470046997076],[5.250681877136344,52.68486404418951],[5.240424156189022,52.65702438354498],[5.163488864898795,52.62275314331066],[5.130897998809871,52.61907577514654],[5.084752082824764,52.64138031005854],[5.04915380477911,52.64126205444347],[5.022568225860709,52.629497528076165],[5.022902965545711,52.59539413452154],[5.069475173950309,52.52195739746105],[5.088860988616943,52.50317001342784],[5.062405109405518,52.48513412475586],[5.065517902374324,52.46719360351573],[5.052473068237304,52.439323425293026],[5.089422225952092,52.43495941162121],[5.02932977676403,52.38898086547851],[4.964716911315975,52.36359405517584],[5.000236988067684,52.349376678466854]]],[[[5.049166202545279,52.938751220703125],[5.167500972747916,52.999862670898494],[5.16998291015625,52.99791336059582],[5.062808036804313,52.941967010498104],[5.049166202545279,52.938751220703125]]],[[[4.859168052673454,53.18291473388672],[4.908054828643913,53.13597106933594],[4.899723052978629,53.12374877929682],[4.898056983947753,53.079860687255916],[4.84638881683361,53.03347396850586],[4.819723129272404,53.02986145019542],[4.79138803482067,53.00763702392578],[4.75750017166132,53.00236129760742],[4.718054771423453,52.98625183105469],[4.709166049957389,53.01625061035162],[4.720832824707031,53.061248779296875],[4.740832805633545,53.088470458984375],[4.828610897064209,53.16958236694347],[4.859168052673454,53.18291473388672]]]]},"properties":{"ID_0":158,"ISO":"NL-NH","NAME_0":"Netherlands","ID_1":9,"NAME_1":"Noord-Holland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Holanda do Norte|Hollande-septentrionale|North Holland"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.720801830291805,52.628341674804744],[6.732648849487305,52.60928726196289],[6.724298000335749,52.59061050415039],[6.74967002868658,52.573242187500114],[6.718132972717399,52.55221557617193],[6.710430145263615,52.52807617187494],[6.713626861572379,52.484413146972656],[6.764862060546988,52.464931488037166],[6.854238986968994,52.462631225586044],[6.886689186096248,52.44908905029308],[6.931348800659123,52.43983078002941],[6.962840080261287,52.4450798034668],[7.000110149383545,52.47317886352545],[7.020860195159968,52.43252944946294],[7.043229103088379,52.40687179565424],[7.079115867614802,52.38272476196295],[7.080453872680664,52.35722351074219],[7.029718875885123,52.29431915283209],[7.044869899749756,52.25751876831049],[7.064889907836971,52.235759735107536],[7.02960920333868,52.226970672607536],[6.988433837890625,52.22537231445324],[6.968887805938664,52.19045257568371],[6.916360855102653,52.1780242919923],[6.886592864990291,52.15680313110363],[6.881947994232405,52.1319313049317],[6.852960109710693,52.11975097656249],[6.768417835235539,52.119525909423885],[6.726501941680908,52.119152069091854],[6.672594070434684,52.13138198852545],[6.684620857238997,52.14203262329107],[6.682354927063102,52.166290283203125],[6.654720783233699,52.1755485534668],[6.628046035766602,52.16593933105469],[6.600609779357967,52.18326187133795],[6.565248966217098,52.178207397460994],[6.489037036895751,52.18337631225585],[6.438559055328483,52.224197387695426],[6.425747871398926,52.24315261840826],[6.359589099884089,52.2427711486817],[6.347523212432975,52.22760009765631],[6.155035972595329,52.22887420654296],[6.107603073120117,52.30094909667969],[6.078471183776969,52.322647094726676],[6.088014125824202,52.37196350097662],[6.129414081573485,52.379817962646484],[6.138457775115967,52.40044403076183],[6.118054866790999,52.40859985351568],[6.127272129058952,52.43278884887706],[6.109745025634878,52.44544982910167],[6.110051155090332,52.46609497070307],[6.064691066741943,52.49774551391607],[6.035276889801082,52.50955963134776],[6.008544921875056,52.50070953369146],[5.972775936126823,52.47663116455078],[5.932849884033203,52.47410202026372],[5.890445232391414,52.5191383361817],[5.872694969177303,52.51920318603521],[5.862565994262638,52.5434684753418],[5.861103057861328,52.54526901245122],[5.837705135345573,52.577655792236385],[5.846880912780819,52.60993957519531],[5.896000862121696,52.61968231201172],[5.923984050750732,52.612358093261825],[5.946258068084774,52.615863800048935],[5.990838050842341,52.62464904785156],[5.993837833404655,52.62732696533203],[6.017700195312557,52.63798904418957],[5.986923217773438,52.65960693359381],[5.947529792785645,52.67005920410162],[5.972555160522461,52.69841766357422],[5.948259830474967,52.718582153320426],[5.928727149963322,52.75154495239258],[5.856007099151725,52.78405380249029],[5.82469177246105,52.78421783447277],[5.801125049591121,52.805797576904354],[5.826416969299373,52.81732559204096],[5.842695236206055,52.80561065673828],[5.88284778594965,52.80098724365246],[5.93063306808483,52.82320785522472],[5.938309192657584,52.834884643554744],[5.978752136230525,52.84165573120123],[6.003631114959773,52.816658020019474],[6.066314220428467,52.82623291015625],[6.12632417678833,52.853740692138786],[6.20875787734991,52.79402160644531],[6.163595199585074,52.76287841796869],[6.127705097198486,52.75051879882812],[6.171147823333854,52.67936706542969],[6.190370082855225,52.674762725830135],[6.226165771484602,52.68441390991211],[6.260047912597656,52.66983032226562],[6.334053039550781,52.65944290161133],[6.372292995452824,52.64300537109381],[6.393902778625545,52.6132164001466],[6.429695129394588,52.622806549072266],[6.462124824523926,52.61446380615246],[6.527470111846923,52.619285583496094],[6.523700237274397,52.64714431762707],[6.561257839202995,52.665657043457024],[6.623817920684928,52.674041748046875],[6.718101024627686,52.64885711669922],[6.720801830291805,52.628341674804744]]]},"properties":{"ID_0":158,"ISO":"NL-OV","NAME_0":"Netherlands","ID_1":10,"NAME_1":"Overijssel","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[5.311379909515495,52.277469635009815],[5.368771076202393,52.2685546875],[5.408505916595515,52.24703598022455],[5.398246765136832,52.22100067138666],[5.445265769958553,52.20486068725597],[5.445270061492977,52.17164611816406],[5.479022026061955,52.16446685791021],[5.505414009094238,52.14740753173828],[5.492167949676571,52.09445190429693],[5.464327812194767,52.08098983764654],[5.489219188690242,52.0702171325683],[5.528769016265983,52.07827758789074],[5.561040878295955,52.10069656372081],[5.568312168121338,52.07914733886718],[5.56384515762329,52.04953002929681],[5.5959987640382,52.03513717651367],[5.593001842498836,52.01188278198242],[5.620708942413329,51.99112319946288],[5.633729934692383,51.95789337158209],[5.611770153045768,51.94355773925787],[5.567996978759822,51.955276489257926],[5.544589996337947,51.96876907348633],[5.493533134460449,51.98314666748041],[5.436536788940543,51.98404312133788],[5.388287067413387,51.9696617126466],[5.353265762329215,51.96873855590832],[5.322628021240348,51.955242156982415],[5.274384975433462,51.965946197509766],[5.249492168426514,51.97846984863286],[5.210141181945801,51.95954513549815],[5.185256958007812,51.96846389770513],[5.153345108032283,51.93427658081055],[5.05826377868658,51.955535888671875],[5.058074951171931,51.977077484130916],[5.024535179138297,51.9697761535645],[4.996704101562557,51.97685241699213],[4.974958896636963,51.96060562133789],[4.947154045105037,51.9649772644043],[4.915287017822266,51.94239425659191],[4.881762981414795,51.93774795532232],[4.863741874694824,51.96823883056651],[4.806190967559814,52.01455307006836],[4.832029819488469,52.04970169067388],[4.869813919067383,52.062423706054744],[4.828750133514461,52.0748176574707],[4.825343132019157,52.108909606933594],[4.795835018157959,52.122211456298885],[4.816101074218864,52.14027786254882],[4.877717971801815,52.13879776000982],[4.895024776458797,52.1622200012207],[4.804946899414062,52.20125579833989],[4.797234058380127,52.22634506225591],[4.830978870391846,52.230117797851676],[4.885054111480656,52.25373077392584],[4.914468765258789,52.252971649169915],[4.931906223297176,52.27008819580083],[5.000850200653133,52.289241790771484],[5.01542520523077,52.30365753173834],[5.046533107757567,52.282226562499936],[5.027517795562858,52.270492553710994],[5.06165790557867,52.23560333251959],[5.038351058959961,52.21308517456049],[5.05053281784069,52.16555404663097],[5.128194808959961,52.18105697631836],[5.197206974029541,52.17763900756836],[5.220551967620906,52.204616546630916],[5.24244499206543,52.246009826660156],[5.270171165466365,52.281898498535156],[5.311379909515495,52.277469635009815]]]},"properties":{"ID_0":158,"ISO":"NL-UT","NAME_0":"Netherlands","ID_1":11,"NAME_1":"Utrecht","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.515278100967521,51.40736007690441],[3.543056011200008,51.40541839599604],[3.618611097335815,51.379581451416016],[3.685832023620662,51.37152862548828],[3.693610906600895,51.36152648925792],[3.75472092628479,51.342918395996094],[3.788055896759033,51.35041809082037],[3.843055963516349,51.335140228271484],[3.919722080230827,51.36152648925792],[3.959167003631649,51.36791610717784],[3.97472190856945,51.40625],[4.01694488525402,51.40124893188482],[4.050277233123779,51.36597061157238],[4.120832920074462,51.364307403564396],[4.176389217376766,51.367362976074276],[4.205832958221549,51.375137329101555],[4.23712778091425,51.35125732421875],[4.183481216430778,51.30553817749034],[4.056982994079704,51.24804306030279],[3.999691963195914,51.241340637207145],[3.962486982345638,51.2160415649414],[3.924190998077449,51.210544586181754],[3.902096986770743,51.198947906494084],[3.87630200386053,51.21354675292969],[3.808010101318302,51.20494461059576],[3.788707971572933,51.21524429321294],[3.799316883087158,51.25763320922863],[3.755398035049552,51.27392196655273],[3.713711023330688,51.27448654174805],[3.666872024536132,51.292861938476676],[3.643162012100276,51.29162216186535],[3.591856956481934,51.3075942993164],[3.579180002212524,51.291778564453125],[3.51396298408514,51.28893661499035],[3.525037050247135,51.24884033203125],[3.456166028976497,51.244823455810604],[3.430077075958309,51.25024032592784],[3.382550001144466,51.27726745605468],[3.371838092804012,51.31604003906255],[3.386981010437125,51.33063125610357],[3.371982097625789,51.34898757934576],[3.371388912200927,51.372638702392635],[3.423054933547973,51.38958358764654],[3.482498884200993,51.396251678466854],[3.515278100967521,51.40736007690441]]],[[[3.864857912063655,51.54415512084972],[3.836918115615844,51.55634307861328],[3.803925991058406,51.54780197143549],[3.76021599769598,51.5552597045899],[3.7118079662323,51.53390121459961],[3.68923711776739,51.55601119995117],[3.652451992034912,51.57071304321289],[3.702512979507446,51.512214660644645],[3.753251075744629,51.54797744750988],[3.788240909576359,51.541294097900504],[3.819778919220027,51.54981994628906],[3.864857912063655,51.54415512084972],[3.927103996276912,51.544082641601506],[3.957933902740592,51.53101348876959],[4.017667770385856,51.51829147338867],[4.044200897216797,51.50245285034179],[4.056374073028564,51.48284912109369],[4.09508323669445,51.446487426757805],[4.13447284698492,51.431682586669915],[4.181780815124625,51.44387817382818],[4.222404956817684,51.43712997436535],[4.220424175262565,51.45685958862305],[4.261052131652832,51.450099945068466],[4.277564048767146,51.42602920532232],[4.264810085296745,51.41691970825207],[4.278090953826961,51.378643035888665],[4.221158027649039,51.37612915039068],[4.234839916229362,51.39180374145508],[4.199722766876278,51.40652847290039],[4.155832767486572,51.3948593139649],[4.076942920684928,51.408195495605526],[3.973612070083618,51.46180725097662],[3.921943902969417,51.44458389282238],[3.899166107177848,51.3948593139649],[3.811944007873478,51.38652801513666],[3.756943941116333,51.41541671752941],[3.726388931274414,51.41513824462884],[3.710278034210148,51.434307098388615],[3.658056020736808,51.45680618286144],[3.631387948989982,51.4415283203125],[3.583055019378719,51.440692901611385],[3.530833005905151,51.45958328247076],[3.495834112167358,51.49458312988287],[3.433612108230705,51.52597045898437],[3.438055992126408,51.54208374023443],[3.558054924011287,51.58958435058599],[3.604722023010311,51.593193054199276],[3.625833988189754,51.586250305175774],[3.682842016220035,51.599029541015625],[3.721184015273991,51.59150314331055],[3.780200004577637,51.602233886718864],[3.835154056549015,51.60569763183594],[3.861423969268856,51.60066986083996],[3.898936033248901,51.5634651184082],[3.864857912063655,51.54415512084972]]],[[[4.238801002502555,51.633911132812436],[4.215748786926326,51.62828445434564],[4.191707134246826,51.60639953613292],[4.199522018432674,51.585918426513786],[4.23056793212902,51.56290435791027],[4.23686599731451,51.54411697387707],[4.227271080017204,51.5242652893067],[4.208937168121338,51.507015228271484],[4.165077209472713,51.52359771728521],[4.078187942504996,51.52619934082031],[4.024789810180778,51.567756652832024],[3.991202116012573,51.576320648193416],[3.99496698379528,51.59432601928722],[4.023852825164795,51.59737396240239],[4.075541973114014,51.61325454711913],[4.127737998962516,51.61296081542969],[4.100739955902156,51.6431770324707],[4.138184070587101,51.65258026123058],[4.193803787231559,51.63523483276373],[4.238801002502555,51.633911132812436]]],[[[4.156164169311523,51.683303833007926],[4.157640933990592,51.68242263793957],[4.117212772369498,51.674785614013786],[4.097705841064567,51.6476287841798],[4.072039127349967,51.63296508789057],[4.010158061981258,51.617855072021484],[3.968216896057129,51.61463928222667],[3.928574085235539,51.62939453125],[3.889311075210685,51.63246917724615],[3.876492977142334,51.66731262207031],[3.823648929596004,51.683650970458984],[3.814419031143188,51.69788742065441],[3.725477933883667,51.66878128051758],[3.72157788276678,51.66281890869146],[3.686944007873592,51.680137634277344],[3.678611993789787,51.70458221435552],[3.690279006957951,51.72097396850597],[3.755834102630729,51.7404174804688],[3.819165945053157,51.739860534668026],[3.839721918106136,51.75791549682623],[3.842823982238826,51.756637573242244],[3.826029062271175,51.73844909667968],[3.886904001236018,51.74376296997075],[3.906164884567318,51.73324584960949],[3.970097064971924,51.73406982421875],[4.007430076599121,51.7031135559082],[4.015205860137939,51.68704605102538],[4.045772075653076,51.68472290039068],[4.094184875488395,51.66823577880871],[4.108425140380802,51.677379608154354],[4.156164169311523,51.683303833007926]]]]},"properties":{"ID_0":158,"ISO":"NL-ZE","NAME_0":"Netherlands","ID_1":12,"NAME_1":"Zeeland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Zelanda|Zélande|Zelândia"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.7217919826507,51.66073989868164],[3.72157788276678,51.66281890869146],[3.725477933883667,51.66878128051758],[3.814419031143188,51.69788742065441],[3.823648929596004,51.683650970458984],[3.876492977142334,51.66731262207031],[3.889311075210685,51.63246917724615],[3.928574085235539,51.62939453125],[3.968216896057129,51.61463928222667],[4.010158061981258,51.617855072021484],[4.072039127349967,51.63296508789057],[4.097705841064567,51.6476287841798],[4.117212772369498,51.674785614013786],[4.157640933990592,51.68242263793957],[4.191024780273494,51.68278503417968],[4.221749782562199,51.67413330078136],[4.238123893737793,51.65904235839855],[4.28176212310791,51.65499877929693],[4.358274936676025,51.67099761962896],[4.366487026214713,51.691722869873104],[4.300489902496338,51.71712875366222],[4.274201869964543,51.722251892089844],[4.245997905731315,51.74441146850597],[4.194274902343807,51.77439117431646],[4.165033817291317,51.77946090698247],[4.063590049743709,51.81332015991211],[4.044167041778564,51.829303741455185],[4.055727005004826,51.838516235351676],[4.07435417175293,51.842174530029354],[4.128934860229492,51.819458007812614],[4.156518936157283,51.82246017456049],[4.183232784271297,51.80479431152355],[4.231726169586238,51.78825378417969],[4.249783992767391,51.76599502563471],[4.350695133209342,51.74364471435547],[4.415187835693359,51.720893859863224],[4.490943908691349,51.711662292480526],[4.531834125518799,51.70122146606451],[4.678015232086238,51.73100662231451],[4.714137077331657,51.74380874633795],[4.741473197937011,51.761932373046875],[4.752798080444336,51.781749725341854],[4.784592151641789,51.796298980713004],[4.825302124023381,51.79921722412115],[4.786074161529598,51.794509887695256],[4.761540889740047,51.78090286254882],[4.738762855529785,51.74934768676769],[4.695649147033691,51.71945190429693],[4.623225212097168,51.707290649414176],[4.604528903961181,51.69728088378906],[4.522021770477238,51.684085845947315],[4.492988109588623,51.683853149414176],[4.42736005783081,51.696762084960994],[4.395775794983024,51.68121719360357],[4.378870010375977,51.659519195556754],[4.353020191192627,51.64850616455084],[4.318253993988151,51.64638137817394],[4.260572910308952,51.63323974609381],[4.238801002502555,51.633911132812436],[4.193803787231559,51.63523483276373],[4.138184070587101,51.65258026123058],[4.100739955902156,51.6431770324707],[4.127737998962516,51.61296081542969],[4.075541973114014,51.61325454711913],[4.023852825164795,51.59737396240239],[3.99496698379528,51.59432601928722],[3.991202116012573,51.576320648193416],[4.024789810180778,51.567756652832024],[4.078187942504996,51.52619934082031],[4.165077209472713,51.52359771728521],[4.208937168121338,51.507015228271484],[4.227271080017204,51.5242652893067],[4.254351139068717,51.48504638671881],[4.282272815704403,51.46737289428711],[4.261052131652832,51.450099945068466],[4.220424175262565,51.45685958862305],[4.222404956817684,51.43712997436535],[4.181780815124625,51.44387817382818],[4.13447284698492,51.431682586669915],[4.09508323669445,51.446487426757805],[4.056374073028564,51.48284912109369],[4.044200897216797,51.50245285034179],[4.017667770385856,51.51829147338867],[3.957933902740592,51.53101348876959],[3.927103996276912,51.544082641601506],[3.864857912063655,51.54415512084972],[3.898936033248901,51.5634651184082],[3.861423969268856,51.60066986083996],[3.835154056549015,51.60569763183594],[3.780200004577637,51.602233886718864],[3.721184015273991,51.59150314331055],[3.682842016220035,51.599029541015625],[3.684214115142879,51.61569595336908],[3.71425795555109,51.64180374145519],[3.72091293334961,51.65013885498047],[3.7217919826507,51.66073989868164]],[[4.280673027038574,51.752841949462834],[4.303074836731014,51.72972106933594],[4.338037014007625,51.72646713256847],[4.355209827423209,51.73740386962896],[4.280673027038574,51.752841949462834]]],[[[4.156164169311523,51.683303833007926],[4.108425140380802,51.677379608154354],[4.094184875488395,51.66823577880871],[4.045772075653076,51.68472290039068],[4.015205860137939,51.68704605102538],[4.007430076599121,51.7031135559082],[3.970097064971924,51.73406982421875],[3.906164884567318,51.73324584960949],[3.886904001236018,51.74376296997075],[3.826029062271175,51.73844909667968],[3.842823982238826,51.756637573242244],[3.869591951370353,51.781242370605526],[3.948900938034058,51.802928924560604],[3.988220930099544,51.80252838134759],[4.019497871398983,51.78046798706066],[4.018928050994987,51.75263214111334],[4.050739765167179,51.7117156982423],[4.111873149871882,51.70794296264654],[4.152820110321045,51.69852828979492],[4.156164169311523,51.683303833007926]]],[[[3.864857912063655,51.54415512084972],[3.819778919220027,51.54981994628906],[3.788240909576359,51.541294097900504],[3.753251075744629,51.54797744750988],[3.702512979507446,51.512214660644645],[3.652451992034912,51.57071304321289],[3.68923711776739,51.55601119995117],[3.7118079662323,51.53390121459961],[3.76021599769598,51.5552597045899],[3.803925991058406,51.54780197143549],[3.836918115615844,51.55634307861328],[3.864857912063655,51.54415512084972]]]]},"properties":{"ID_0":158,"ISO":"NL-ZM","NAME_0":"Netherlands","ID_1":13,"NAME_1":"Zeeuwse meren","TYPE_1":"Water body","ENGTYPE_1":"Water body","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[4.280673027038574,51.752841949462834],[4.355209827423209,51.73740386962896],[4.338037014007625,51.72646713256847],[4.303074836731014,51.72972106933594],[4.280673027038574,51.752841949462834]]],[[[4.044167041778564,51.829303741455185],[4.063590049743709,51.81332015991211],[4.165033817291317,51.77946090698247],[4.194274902343807,51.77439117431646],[4.245997905731315,51.74441146850597],[4.274201869964543,51.722251892089844],[4.300489902496338,51.71712875366222],[4.366487026214713,51.691722869873104],[4.358274936676025,51.67099761962896],[4.28176212310791,51.65499877929693],[4.238123893737793,51.65904235839855],[4.221749782562199,51.67413330078136],[4.191024780273494,51.68278503417968],[4.157640933990592,51.68242263793957],[4.156164169311523,51.683303833007926],[4.152820110321045,51.69852828979492],[4.111873149871882,51.70794296264654],[4.050739765167179,51.7117156982423],[4.018928050994987,51.75263214111334],[4.019497871398983,51.78046798706066],[3.988220930099544,51.80252838134759],[3.948900938034058,51.802928924560604],[3.869591951370353,51.781242370605526],[3.842823982238826,51.756637573242244],[3.839721918106136,51.75791549682623],[3.865278005599976,51.78763961791998],[3.855277061462459,51.80347061157232],[3.867500066757259,51.818473815918026],[3.991389036178703,51.84597396850586],[4.044167041778564,51.829303741455185]]],[[[4.797234058380127,52.22634506225591],[4.804946899414062,52.20125579833989],[4.895024776458797,52.1622200012207],[4.877717971801815,52.13879776000982],[4.816101074218864,52.14027786254882],[4.795835018157959,52.122211456298885],[4.825343132019157,52.108909606933594],[4.828750133514461,52.0748176574707],[4.869813919067383,52.062423706054744],[4.832029819488469,52.04970169067388],[4.806190967559814,52.01455307006836],[4.863741874694824,51.96823883056651],[4.881762981414795,51.93774795532232],[4.915287017822266,51.94239425659191],[4.947154045105037,51.9649772644043],[4.974958896636963,51.96060562133789],[4.996704101562557,51.97685241699213],[5.024535179138297,51.9697761535645],[5.058074951171931,51.977077484130916],[5.05826377868658,51.955535888671875],[5.153345108032283,51.93427658081055],[5.117190837860164,51.888397216796875],[5.09530878067028,51.88922882080083],[5.048910140991268,51.85945510864252],[5.030344009399528,51.818992614746094],[5.005562782287541,51.82159423828119],[4.931215763092098,51.82846450805669],[4.907957077026424,51.82476806640631],[4.863097190856934,51.8030052185058],[4.825302124023381,51.79921722412115],[4.784592151641789,51.796298980713004],[4.752798080444336,51.781749725341854],[4.741473197937011,51.761932373046875],[4.714137077331657,51.74380874633795],[4.678015232086238,51.73100662231451],[4.531834125518799,51.70122146606451],[4.490943908691349,51.711662292480526],[4.415187835693359,51.720893859863224],[4.350695133209342,51.74364471435547],[4.249783992767391,51.76599502563471],[4.231726169586238,51.78825378417969],[4.183232784271297,51.80479431152355],[4.156518936157283,51.82246017456049],[4.128934860229492,51.819458007812614],[4.07435417175293,51.842174530029354],[4.055727005004826,51.838516235351676],[4.065279006958007,51.85514068603527],[4.030834197998047,51.886806488037166],[4.051942825317383,51.907081604003906],[4.040832996368465,51.92375183105474],[3.99861192703247,51.91624832153332],[3.993055105209351,51.92874908447277],[4.017498970031738,51.95152664184582],[4.02472114562994,51.98652648925792],[4.088245868682918,51.973148345947266],[4.133612155914307,52.00236129760742],[4.276944160461482,52.11208343505854],[4.308053970337028,52.13069534301758],[4.363611221313477,52.176250457763786],[4.409721851348934,52.22152709960949],[4.494165897369384,52.327655792236435],[4.56486701965332,52.30920028686535],[4.585299968719596,52.318328857421875],[4.613377094268913,52.31314468383794],[4.590466976165828,52.27976989746094],[4.570105075836295,52.267948150634815],[4.558435916900635,52.218685150146534],[4.604957103729248,52.21434402465826],[4.64161491394043,52.21819305419922],[4.672246932983512,52.23096847534191],[4.726602077484245,52.23221206665039],[4.745993137359733,52.214378356933594],[4.797234058380127,52.22634506225591]]]]},"properties":{"ID_0":158,"ISO":"NL-ZH","NAME_0":"Netherlands","ID_1":14,"NAME_1":"Zuid-Holland","TYPE_1":"Provincie","ENGTYPE_1":"Province","NL_NAME_1":null,"VARNAME_1":"Hollande-méridionale|South Holland"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/russia.geojson b/superset/assets/visualizations/countries/russia.geojson new file mode 100644 index 0000000000000..0565169382765 --- /dev/null +++ b/superset/assets/visualizations/countries/russia.geojson @@ -0,0 +1,85 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.64794921874994,45.16419601440435],[40.059654235840064,45.06309127807623],[40.30049514770536,45.0952415466308],[40.5009880065919,44.97680664062506],[40.59633255004911,44.702407836914176],[40.45653915405302,44.75387573242199],[40.35651016235357,44.58812713623058],[40.48381423950224,44.402400970459034],[40.417724609375284,44.15627288818365],[40.48201751708996,44.003288269043026],[40.3540420532226,43.80878829956055],[40.24375152587918,43.80278396606457],[39.95980072021479,43.93823242187506],[39.73140335083024,43.936611175537166],[39.64757919311546,43.98913192749035],[39.774703979492415,44.12716674804682],[40.01827621459978,44.09848403930664],[40.104572296142805,44.25904083251959],[39.86066436767578,44.37207412719732],[39.840774536132756,44.58407592773443],[39.99878311157237,44.90314483642584],[39.76084518432623,45.0003662109375],[39.61465072631847,44.98313522338867],[39.58114624023466,44.85968399047846],[39.419628143310604,44.823089599609425],[38.9640808105471,44.860202789306754],[38.57011795043968,45.03254318237305],[38.81095886230497,45.06049728393566],[39.01510620117204,44.989265441894645],[39.28381729125982,45.02684402465825],[39.64794921874994,45.16419601440435]]]},"properties":{"ID_0":188,"ISO":"RU-AD","NAME_0":"Russia","ID_1":1,"NAME_1":"Adygey","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Адыгея","VARNAME_1":"Adygea|Adygeya|Adygheya|Republic of Adygeya|Adygeyskaya A.Obl.|Respublika Adygeya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[87.11547851562504,52.59727096557617],[87.002052307129,52.64591598510742],[86.64455413818365,52.51440811157238],[86.67334747314476,52.11758804321288],[86.43383026123075,52.12608718872082],[86.28927612304699,52.02621078491211],[86.12054443359375,52.06703186035167],[85.78443908691423,52.038372039794865],[85.85086059570318,51.887943267822266],[85.3917846679688,51.56439590454096],[84.89691162109386,51.43909454345708],[84.73712158203142,51.43113708496105],[84.4468078613283,51.29122543334972],[84.19393157958984,51.26937484741211],[84.09119415283209,51.14675140380871],[84.19675445556658,51.00209808349614],[84.49913787841803,50.9668083190919],[84.59226989746122,50.8557968139649],[84.4374389648437,50.70588684082037],[84.05060577392607,50.647769927978516],[83.81191253662115,50.884899139404354],[83.56080627441418,50.96091842651367],[83.11965942382807,51.03537750244152],[82.95973968505882,50.91791152954107],[82.76071166992205,50.95043945312506],[82.54830932617193,50.769207000732536],[82.26171875000011,50.78596115112316],[82.11996459960966,50.75102996826172],[81.98730468750017,50.80992507934576],[81.77438354492199,50.814350128173885],[81.59300231933605,50.753105163574155],[81.47919464111328,50.820812225341854],[81.39098358154325,50.996295928955135],[81.06147003173845,50.95937347412115],[81.14469146728521,51.20169067382824],[80.68241119384794,51.30815124511719],[80.6224517822266,51.20695114135736],[80.44089508056663,51.20583724975586],[80.46884155273453,50.97445297241205],[80.25100708007805,50.92704391479498],[80.19262695312511,50.832027435302734],[79.94810485839855,50.90123748779302],[79.07403564453125,52.04165649414074],[78.24993133544928,52.954257965088004],[77.87168884277366,53.30647277832025],[77.9790878295899,53.38831329345703],[77.95584869384794,53.557872772216854],[78.09960937500006,53.56263732910156],[78.29058837890653,53.482833862304744],[78.59053039550781,53.52821350097661],[78.69332885742188,53.65587234497076],[78.99720001220709,53.658744812011825],[79.53343963623058,53.73154067993164],[79.60083770751953,53.80756378173828],[80.24555206298834,54.03636169433605],[80.57778930664062,54.206935882568416],[80.94847106933622,54.26935958862316],[81.11106109619158,54.11580276489269],[81.44765472412121,54.087188720703125],[81.56748962402361,53.925357818603516],[81.78419494628906,53.7239723205567],[82.18756103515642,53.66240692138672],[82.15647125244158,53.61235809326183],[82.45288085937517,53.51412200927746],[82.65225982666021,53.63429641723633],[82.75261688232428,53.841621398925895],[83.1566238403323,54.04161071777344],[83.85452270507841,54.117332458496094],[83.95371246337919,54.10057449340831],[84.23905181884794,54.187641143798885],[84.41899871826172,54.1351776123048],[84.61552429199224,54.28049087524414],[85.08579254150408,54.40634155273443],[85.19017791748053,54.396636962890675],[85.39015197753918,54.19636535644537],[85.51696014404325,54.210613250732536],[85.81012725830107,54.06702423095709],[86.10982513427751,53.96074676513671],[86.27109527587896,53.79481506347656],[86.35601806640653,53.63528823852545],[86.51421356201172,53.49926376342773],[86.90414428710943,53.469635009765675],[86.69823455810564,53.16136169433593],[87.0079727172851,53.006771087646484],[86.94689941406278,52.85101318359374],[86.98973846435553,52.69161605834972],[87.11547851562504,52.59727096557617]]]},"properties":{"ID_0":188,"ISO":"RU-ALT","NAME_0":"Russia","ID_1":2,"NAME_1":"Altay","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Алтайский край","VARNAME_1":"Altayskiy Kray"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[130.986083984375,55.70123672485346],[131.10748291015625,55.66984939575201],[131.7776794433597,55.6750831604005],[132.13868713378918,55.699752807617294],[132.34799194335938,55.753612518310604],[132.54748535156284,55.722637176513665],[132.72399902343773,55.37878036499029],[132.59730529785156,55.24185562133795],[132.40158081054688,55.2133407592774],[132.35009765624997,55.080066680908196],[132.0863952636721,55.04153060913085],[132.0453796386721,54.96763610839844],[131.81250000000023,54.848247528076286],[131.24078369140625,54.649513244628956],[131.23908996582028,54.559474945068466],[131.06558227539085,54.3253059387207],[130.73928833007824,54.28641891479492],[130.56108093261741,54.1769752502442],[130.50178527832077,54.01217651367182],[130.62428283691418,53.907501220703125],[130.91769409179688,53.78427505493169],[131.05589294433594,53.82456588745128],[131.33438110351574,53.79345321655284],[131.5006866455078,53.541282653808594],[131.57608032226562,53.357215881347656],[131.96589660644543,53.11613464355468],[132.08277893066452,53.198387145996094],[132.88908386230503,53.226699829101676],[133.14920043945324,53.31416702270519],[133.1331787109376,53.40508651733404],[133.31738281250023,53.476470947265625],[133.60089111328134,53.522151947021484],[133.67819213867188,53.457622528076115],[133.98667907714866,53.429813385009766],[134.44749450683616,53.567501068115234],[134.6906890869143,53.50512695312505],[134.8506774902346,53.22724914550787],[134.8230895996095,53.089889526367244],[134.58657836914074,52.88136672973644],[134.6083984375,52.70032119750982],[134.69229125976597,52.631057739257926],[134.5650024414067,52.53502655029302],[134.582000732422,52.422275543213004],[134.06338500976574,52.465103149414176],[133.27598571777366,52.66621017456066],[133.24148559570335,52.39976882934582],[133.3931884765626,52.29118728637701],[133.1866912841797,52.154430389404354],[132.8507843017578,52.16740036010748],[132.41049194335938,51.9391708374024],[132.3188018798828,51.79405975341802],[131.61479187011753,51.654121398925895],[131.4364776611328,51.56513977050787],[131.52368164062523,51.427497863769645],[131.26528930664108,51.25768661499017],[131.1119842529298,51.22765350341791],[130.9795837402345,51.01060104370123],[130.80239868164074,50.94845581054687],[130.8619842529297,50.8556175231933],[130.7168884277345,50.64296722412115],[130.94468688964855,50.67526245117199],[131.0315856933596,50.53677749633789],[130.93379211425827,50.463752746581974],[131.41798400878903,50.275722503662166],[131.49989318847702,50.17013931274414],[131.54049682617207,49.91241455078131],[131.51918029785168,49.762130737304744],[131.40278625488304,49.68471908569336],[131.50778198242222,49.567287445068416],[131.50968933105503,49.39023590087896],[131.38809204101585,49.25324630737315],[131.22180175781295,49.26071929931646],[131.0970916748047,49.19723129272461],[130.95930480957054,48.994235992431584],[130.78848266601562,48.977741241455135],[130.5672607421876,48.86181259155285],[130.4432373046876,48.90032196044922],[130.25747680664062,48.86184692382818],[129.9064178466797,49.05399703979492],[129.84469604492233,49.167659759521484],[129.52096557617207,49.41189193725597],[129.38406372070335,49.43146133422851],[129.1181335449221,49.348709106445426],[128.99516296386764,49.45048904418945],[128.77296447753952,49.47060012817388],[128.70825195312523,49.563720703125],[128.39202880859398,49.58887863159185],[128.26089477539074,49.499950408935604],[127.96154785156271,49.61182022094738],[127.80242156982422,49.59124755859381],[127.64972686767624,49.77777099609381],[127.51512908935581,49.834640502929744],[127.50132751464889,50.061019897460994],[127.5714797973634,50.242759704589844],[127.3687973022461,50.29315948486333],[127.28761291503905,50.47747039794933],[127.3593521118164,50.58327865600586],[127.11181640625021,50.93387222290039],[126.92285156250011,51.05799865722661],[126.89791107177768,51.188365936279354],[126.97986602783249,51.307769775390625],[126.78382110595714,51.44036483764659],[126.83277893066428,51.526538848877],[126.4692077636721,51.93531036376953],[126.54995727539074,52.13016891479492],[126.30267333984375,52.223281860351506],[126.3436813354492,52.39595031738281],[125.84910583496095,52.86016082763672],[125.579658508301,53.080730438232365],[125.1882095336914,53.191589355468864],[124.98197174072278,53.19285202026378],[124.83304595947266,53.13269042968761],[124.37548828125,53.24618148803716],[124.24575042724642,53.36550903320318],[124.11501312255882,53.34368133544922],[123.84442138671886,53.48871994018549],[123.52179718017588,53.55316925048834],[123.25701904296874,53.560859680175895],[122.83354187011751,53.4529037475587],[122.44212341308605,53.441848754882926],[122.32962036132847,53.49732208251959],[122.05168151855467,53.42110443115228],[121.95218658447266,53.553474426269474],[121.94478607177757,53.81986236572271],[121.79698181152354,53.9735717773438],[121.62589263916027,54.04391098022472],[121.73188781738283,54.19917678833019],[121.65828704833983,54.3732643127442],[122.07918548584018,54.45100402832037],[121.86299133300804,54.6698112487793],[121.86429595947287,54.791618347168026],[121.67738342285179,54.83369827270513],[121.95268249511729,55.022392272949276],[121.91439819335972,55.212265014648544],[121.98679351806663,55.391254425048935],[121.82729339599632,55.59227371215832],[121.68128967285168,55.60924148559576],[121.55158996582043,55.48530578613286],[121.3716735839846,55.50830078124994],[121.2721862792972,55.74502944946295],[121.24979400634788,55.98251724243175],[121.13418579101572,56.034633636474545],[120.83158111572276,56.02541351318359],[120.61238861083996,55.93164443969721],[120.35559082031271,55.89044189453131],[120.07330322265648,55.9106712341308],[120.05799865722656,56.15636444091802],[120.17959594726608,56.22220611572277],[120.4599838256837,56.246940612793026],[120.28088378906261,56.45709228515625],[119.94508361816405,56.495574951171875],[119.77268218994139,56.605785369873104],[119.821083068848,56.698146820068416],[119.62329101562536,56.78557205200189],[119.7814941406251,56.9057502746582],[120.09629058837902,56.92132186889659],[120.38408660888672,57.02729415893554],[120.93968200683605,57.05208969116211],[121.48700714111327,56.99433898925781],[121.64498138427756,56.77133178710949],[122.17757415771483,56.76365280151367],[122.62879180908224,56.52250671386718],[122.77029418945334,56.50225067138672],[122.95247650146506,56.596000671386776],[123.10108184814497,56.489643096923885],[123.45599365234386,56.41492462158203],[123.86538696289074,56.42337417602539],[123.99459075927733,56.37763214111339],[124.27209472656249,56.12319564819335],[124.42538452148449,56.066707611083984],[124.47119140625033,55.950378417968864],[124.87408447265625,55.856548309326165],[125.39449310302747,55.87777328491216],[125.60909271240246,55.768058776855575],[125.77259063720703,55.79460525512701],[126.05857849121116,55.72790145874035],[126.07677459716808,55.62282562255865],[126.46698760986338,55.597179412841854],[126.61418914794943,55.666030883789176],[126.88739013671886,55.612686157226555],[127.07429504394543,55.70475006103527],[127.328582763672,55.70069122314459],[127.4167938232423,55.59953689575206],[127.59788513183605,55.62340927124018],[127.68518829345726,55.713146209716854],[128.0808868408203,55.67566680908209],[128.24118041992207,55.689907073974666],[128.7920837402345,55.50666427612316],[128.9863891601567,55.50091552734374],[129.14279174804733,55.580661773681754],[129.03538513183616,55.6793441772462],[129.2996826171875,55.742393493652344],[129.63227844238293,55.76982116699219],[130.00978088378906,55.71006011962901],[130.72409057617188,55.77344131469732],[130.986083984375,55.70123672485346]]]},"properties":{"ID_0":188,"ISO":"RU-AMU","NAME_0":"Russia","ID_1":3,"NAME_1":"Amur","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Амурская область","VARNAME_1":"Amurskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[44.21242523193354,66.39486694335949],[44.45759582519537,66.37618255615229],[44.63889694213873,66.27404022216803],[45.193916320801065,66.21047973632812],[45.6815948486331,66.08473205566418],[45.856849670410384,66.11561584472666],[46.147785186767635,66.02928161621094],[46.41108703613281,66.07476043701178],[47.1370964050293,65.83535766601568],[47.80115509033203,65.85836791992188],[47.67824554443371,65.94245147705072],[48.10776519775419,66.13459014892578],[48.93068695068359,66.10868072509771],[49.00090789794927,66.02429199218767],[48.977466583252124,65.79473114013678],[49.03289794921892,65.6469345092774],[49.053756713867415,65.27355957031244],[49.61527252197271,65.31998443603521],[49.702350616455305,65.20333862304699],[50.105716705322266,64.89699554443371],[50.430904388427734,64.85437774658203],[50.264545440674,64.5242309570313],[49.56064605712907,64.6098022460937],[49.400409698486385,64.47563934326178],[48.91572189331054,64.49666595458996],[48.81874847412115,64.36576080322271],[48.43403625488287,64.36026000976574],[48.39972305297846,64.24330139160162],[48.10803604126005,64.27368164062511],[48.0927734375,64.37609863281261],[47.80503463745134,64.39805603027355],[46.547283172607536,64.36637878417979],[46.36297988891607,64.2933731079101],[45.93482971191412,64.32754516601562],[45.42439270019548,64.22801971435553],[45.57086181640642,64.08305358886719],[45.838367462158374,63.99121093750011],[46.377632141113395,63.93101501464844],[46.971553802490234,63.69632339477539],[47.00653457641629,63.55571365356445],[46.853965759277344,63.46475601196289],[47.01892089843767,63.29414367675781],[47.544834136963004,63.124252319335994],[47.27066421508795,62.95552062988292],[47.031341552734375,62.88605499267583],[47.20144271850609,62.65849685668945],[47.1661796569827,62.345592498779354],[47.3485679626466,62.34627151489258],[47.37570953369169,62.217628479003906],[47.595851898193416,62.215000152588],[47.646427154541236,62.332454681396534],[48.27669906616205,62.32807159423828],[48.19384765625017,62.48085021972656],[48.33520126342802,62.7247695922851],[48.615917205810604,62.7297592163086],[48.72655868530296,62.83530426025396],[49.586017608642635,62.768997192382926],[49.30377578735363,62.14521408081048],[49.2367744445803,62.13655090332031],[49.047744750976506,61.6744384765625],[49.512962341308764,61.60953140258794],[49.24629974365229,61.17825317382824],[48.767967224121264,61.15018081665039],[48.37702941894554,60.99104690551769],[48.33232879638689,60.85586166381836],[47.960479736328175,60.88802337646484],[47.947933197021484,60.995574951171875],[47.55131912231457,61.07292556762696],[47.18703079223627,61.059253692627],[47.071281433105526,60.86044311523443],[46.81387710571295,60.86542892456055],[46.79523849487316,60.95777893066417],[46.49473953247076,61.02838897705078],[46.31375122070307,60.97252655029297],[46.0068244934082,60.962619781494254],[45.736755371093864,61.03683090209972],[45.80521392822293,61.1678466796875],[45.28336715698242,61.202392578125064],[45.20437240600603,60.90912246704101],[44.2316551208496,60.957138061523494],[44.14776611328119,61.0461921691894],[43.743499755859425,60.996807098388615],[43.337352752685604,60.783920288085994],[43.13435363769559,60.82650756835943],[43.00558471679716,60.73624420166021],[42.71386337280302,60.8823509216308],[42.39422607421881,60.76912307739258],[41.82416534423834,60.92756271362299],[41.5980873107913,60.92374801635736],[41.432716369628906,60.7816772460938],[41.18537902832054,60.6755981445313],[40.9907875061038,60.68207168579112],[40.68736648559587,60.78285217285167],[40.438301086426065,60.796977996826165],[40.31475830078119,60.71973037719726],[39.99008941650418,60.68863677978527],[39.754878997802905,60.77202606201166],[39.504268646240405,60.709159851074276],[39.16817855834978,60.68583679199219],[38.679035186767635,60.74199295043945],[38.14723205566417,60.97548294067382],[38.202888488769815,61.08928680419927],[37.768093109130916,61.432945251464844],[37.788364410400504,61.55044174194341],[37.798164367676065,61.69045257568359],[37.949947357177905,62.01363754272461],[37.70195388793957,62.2538070678712],[37.477806091308764,62.294448852539176],[37.61561965942383,62.451484680175774],[37.60175704956077,62.62226104736334],[37.38840484619146,62.7218971252442],[37.10525512695307,62.69918060302746],[36.65991210937517,62.82378768920905],[36.35142135620134,63.02538299560546],[36.32391357421881,63.13858413696289],[36.46160888671881,63.24965667724604],[36.25407791137724,63.45004653930664],[35.968528747558594,63.629680633545036],[36.408535003662166,63.61830902099621],[36.66337966918974,63.78011322021484],[36.60692596435547,63.94583511352544],[36.65468978881853,63.91093444824213],[37.20624923706049,63.87708282470709],[37.400001525878906,63.785415649414176],[37.662498474121314,63.893749237060554],[38.00885391235363,63.93593978881841],[38.06406021118169,64.05781555175776],[37.788021087646655,64.36510467529297],[37.10885620117216,64.40052032470714],[36.74739837646513,64.68281555175793],[36.53541564941412,64.714584350586],[36.452606201172046,64.87135314941406],[36.80208206176752,64.95207977294926],[36.98125076293945,65.16666412353521],[37.645832061767635,65.03958129882812],[37.83124923706083,64.90833282470703],[38.20624923706083,64.77083587646484],[38.87083435058622,64.74166870117193],[39.27500152587919,64.64791870117199],[39.547916412353686,64.54166412353527],[39.809898376465014,64.61093902587885],[40.179164886474666,64.54582977294928],[40.44218444824236,64.62343597412115],[40.29739379882807,65.01093292236328],[40.04843521118181,65.10468292236334],[39.72135162353544,65.3359375],[39.70051956176775,65.45468902587919],[39.85885620117216,65.62239837646477],[40.411975860595874,65.78176879882818],[40.7645835876466,65.99166870117182],[41.335414886474894,66.06041717529303],[41.72295379638666,66.21876525878912],[42.11875152587908,66.49166870117193],[42.314582824707315,66.50833129882824],[42.84375000000017,66.38957977294922],[43.26874923706066,66.41041564941412],[43.60364913940458,66.29114532470703],[43.96302413940441,66.09426879882824],[44.21242523193354,66.39486694335949]]],[[[52.72135162353515,71.39635467529297],[53.156768798828296,71.24948120117188],[53.12916564941412,71.06041717529307],[52.821353912353686,71.06510162353521],[52.59791564941423,71.23332977294928],[52.25833511352539,71.32499694824213],[52.72135162353515,71.39635467529297]]],[[[54.946353912353516,73.41926574707026],[55.43541717529325,73.31041717529295],[55.733333587646484,73.31874847412104],[56.118751525878956,73.23750305175798],[56.38124847412138,73.22708129882818],[56.553646087646655,73.10676574707037],[56.11666488647455,72.94791412353527],[56.235416412353565,72.84583282470709],[55.90573120117193,72.6859359741211],[55.669269561767635,72.65364837646477],[55.42864608764677,72.30677032470703],[55.580730438232585,72.16926574707037],[55.38801956176786,72.00260162353521],[55.733333587646484,71.55625152587896],[56.21718978881852,71.183853149414],[57.03541564941411,70.85416412353521],[57.55833435058589,70.745834350586],[57.41041564941428,70.59166717529297],[57.10676956176752,70.55260467529303],[56.40416717529308,70.53541564941406],[56.09999847412126,70.63957977294928],[55.70208358764654,70.597915649414],[55.47291564941412,70.69374847412115],[55.158332824707195,70.54582977294933],[54.70833206176758,70.69166564941412],[53.99218750000017,70.73384857177763],[53.66249847412115,70.81250000000017],[53.778648376465064,70.93177032470726],[53.550521850586165,71.03801727294928],[53.85572814941435,71.13385009765636],[53.54426956176758,71.19635009765629],[53.30052185058622,71.42448425292974],[52.90885162353515,71.3848953247072],[52.53541564941412,71.55625152587896],[52.12708282470709,71.45207977294922],[51.60885620117193,71.54426574707037],[51.44427108764648,71.77135467529297],[51.563018798828125,72.06198120117199],[51.803646087646534,72.1255187988283],[52.43281555175804,72.08281707763672],[52.41249847412104,72.17500305175786],[52.71406555175798,72.29426574707043],[52.7890625,72.58385467529314],[52.42135620117193,72.73072814941406],[52.61249923706072,72.85208129882812],[53.122917175293026,72.8916702270509],[53.194271087646484,73.136978149414],[53.44791793823259,73.23542022705078],[53.87708282470709,73.28958129882812],[54.32291793823248,73.28125],[54.946353912353516,73.41926574707026]]],[[[67.77135467529325,77.00051879882812],[68.50468444824224,76.92760467529308],[69,76.78541564941406],[68.87708282470714,76.52708435058605],[68.14791870117182,76.25416564941423],[67.11250305175787,76.07499694824247],[66.30000305175804,76.00208282470709],[64.58750152587908,75.73542022705078],[62.22708511352539,75.43125152587896],[61.922393798828125,75.43177032470702],[61.687500000000284,75.28125],[60.77500152587896,75.125],[60.52916717529325,74.839584350586],[60.20416641235351,74.72083282470697],[59.91875076293957,74.70625305175787],[59.597915649414055,74.57083129882818],[59.20468521118181,74.62968444824217],[59.075000762939446,74.45625305175793],[58.64166641235352,74.49791717529297],[58.67499923706072,74.22708129882811],[57.87239837646489,73.90364837646489],[57.88697814941423,73.76927185058611],[57.5791664123538,73.59375000000011],[57.11666488647472,73.52916717529297],[57.241146087646705,73.4463500976562],[56.683334350586165,73.23124694824219],[56.1062507629395,73.25833129882812],[55.789585113525554,73.3333358764649],[55.39583206176786,73.3249969482423],[54.954166412353686,73.4375],[54.24583435058588,73.38749694824224],[54.42708206176786,73.5687484741212],[54.08958435058622,73.60416412353521],[53.700519561767635,73.72135162353527],[54.592189788818416,74.01823425292969],[55.14583206176774,74.16041564941418],[55.371356964111385,74.40573120117199],[56.150001525878906,74.4437484741211],[55.60052108764643,74.60990142822288],[56.412498474121314,74.68333435058616],[56.447917938232706,74.89583587646489],[56.29999923706055,75],[55.785934448242415,75.11198425292979],[56.85833358764671,75.21041870117199],[56.781250000000114,75.33125305175781],[57.029167175293026,75.37916564941412],[57.729167938232585,75.34583282470714],[57.610416412353565,75.50416564941418],[58.08958435058594,75.66041564941406],[58.767185211181705,75.73593902587908],[58.74010467529308,75.80573272705072],[59.283332824706974,75.9000015258789],[59.6979179382326,75.89583587646507],[60.34375,76],[61.08958435058587,76.03958129882807],[60.90885162353521,76.153648376465],[61.064582824707145,76.26041412353527],[61.69166564941413,76.29792022705082],[62.01874923706049,76.25],[63.05833435058605,76.2041702270509],[63.98125076293962,76.33125305175781],[64.1500015258789,76.27916717529297],[64.89583587646489,76.46041870117193],[65.27916717529303,76.44791412353527],[66.02708435058621,76.73750305175781],[66.69791412353544,76.82083129882807],[67.06666564941423,76.94166564941412],[67.77135467529325,77.00051879882812]]],[[[59.49010086059592,80.08802032470709],[59.887500762939624,80.02708435058588],[59.36041641235357,79.91041564941406],[58.86718750000016,80.01301574707031],[59.49010086059592,80.08802032470709]]],[[[51.008853912353565,80.09843444824219],[51.362499237060604,79.9124984741211],[50.42708206176758,79.92916870117193],[51.008853912353565,80.09843444824219]]],[[[50.08593750000017,80.22135162353521],[50.38489913940447,80.17031097412121],[49.91249847412138,80.04792022705077],[49.533332824707145,80.15625],[50.08593750000017,80.22135162353521]]],[[[56.9776039123538,80.3484344482423],[57.045314788818644,80.07551574707043],[56.118751525878956,80.06666564941412],[55.93333435058594,80.30625152587896],[56.9776039123538,80.3484344482423]]],[[[53.03176879882841,80.38593292236334],[53.924999237060604,80.22708129882818],[53.02708435058594,80.15000152587896],[52.26041793823259,80.21875000000011],[52.924999237060774,80.29792022705072],[53.03176879882841,80.38593292236334]]],[[[57.95677185058588,80.47551727294922],[58.858333587646484,80.42916870117188],[58.66666793823248,80.30208587646496],[57.86458206176775,80.09583282470709],[57.33124923706049,80.15833282470703],[57.23281478881847,80.39531707763678],[57.95677185058588,80.47551727294922]]],[[[56.46302413940423,80.75051879882824],[56.73958206176769,80.6125030517578],[55.76874923706048,80.6187515258789],[55.93750000000017,80.7395858764649],[56.46302413940423,80.75051879882824]]],[[[47.48176956176758,80.85260009765625],[47.44427108764677,80.72551727294933],[46.909893035888615,80.54531097412104],[46.12448120117216,80.51406097412108],[45.158332824707024,80.56458282470702],[46.189582824706974,80.66249847412115],[47.48176956176758,80.85260009765625]]],[[[61.79843521118175,80.86718750000006],[62.2036437988284,80.7473983764649],[61.98176956176774,80.58593749999994],[61.50624847412115,80.5374984741211],[61.12083435058622,80.37083435058594],[60.36875152587919,80.45625305175781],[59.78333282470708,80.40000152587889],[59.381248474121094,80.46875],[59.47708511352538,80.69791412353516],[60.02083206176775,80.82917022705078],[60.527084350586215,80.78541564941418],[61.79843521118175,80.86718750000006]]],[[[50.88224029541033,80.94588470458983],[51.00364303588884,80.85781097412115],[51.79739379882829,80.7119827270509],[51.04375076293945,80.56041717529297],[49.86458206176775,80.48332977294922],[49.72708511352539,80.36666870117193],[49.177082061767635,80.37083435058594],[49.02500152587919,80.15833282470703],[48.00416564941412,80.11458587646496],[48.279167175293026,80.40625000000011],[49.59791564941411,80.64167022705078],[49.10208511352545,80.7874984741212],[49.79375076293974,80.90833282470703],[50.88224029541033,80.94588470458983]]],[[[56.202606201172046,81.09010314941406],[57.522914886474894,81.02708435058605],[57.26250076293968,80.933334350586],[56.202606201172046,81.09010314941406]]],[[[54.70468521118181,81.10260009765636],[55.44583511352533,81.01041412353521],[56.16249847412138,81.01249694824224],[56.918228149414006,80.845314025879],[57.74375152587907,80.7708358764649],[57.08124923706055,80.67500305175776],[56.754165649414176,80.78541564941418],[54.922916412353516,80.94583129882824],[54.70468521118181,81.10260009765636]]],[[[61.40885162353543,81.12551879882805],[61.537498474121094,81.01249694824224],[60.8125,80.89583587646494],[59.98541641235357,80.96875],[61.40885162353543,81.12551879882805]]],[[[64.55052185058592,81.21093750000011],[65.39791870117182,81.15208435058594],[65.45625305175791,80.94791412353527],[64.54374694824247,80.72291564941406],[63.122917175293026,80.64583587646484],[62.51250076293951,80.79792022705084],[63.04583358764677,80.9625015258789],[63.89166641235357,81.04374694824219],[63.839584350586044,81.125],[64.55052185058592,81.21093750000011]]],[[[56.64218521118164,81.39635467529308],[57.797916412353565,81.28958129882812],[56.77916717529291,81.19166564941418],[56.28958511352544,81.26249694824219],[56.64218521118164,81.39635467529308]]],[[[57.59635162353515,81.55677032470697],[58.38489913940446,81.46823120117199],[57.86875152587913,81.37708282470713],[57.00624847412132,81.52500152587895],[57.59635162353515,81.55677032470697]]],[[[58.967189788818295,81.8546829223634],[59.09375,81.72916412353526],[58.03958511352545,81.71041870117193],[58.21875000000023,81.83125305175781],[58.967189788818295,81.8546829223634]]]]},"properties":{"ID_0":188,"ISO":"RU-ARK","NAME_0":"Russia","ID_1":4,"NAME_1":"Arkhangel'sk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Архангельская область","VARNAME_1":"Arcangelo|Archangel|Archangelsk|Arkhangelskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[47.59436416625982,45.44005584716797],[47.37369537353533,45.61444854736333],[47.19580841064476,45.56624603271496],[46.97037124633806,45.62693405151373],[47.23189926147461,46.094192504882926],[46.98451614379882,46.05420303344738],[46.90380859375006,46.177925109863395],[46.605720520019815,46.28306961059576],[46.7930717468264,46.407630920410156],[46.98734283447288,46.41539764404308],[47.05541610717768,46.58510971069336],[47.18793869018583,46.61122894287114],[47.26275253295892,46.72237014770519],[47.121829986572436,46.860137939453175],[47.01286315917974,46.86839294433605],[46.864311218261946,46.988971710205135],[46.58585357666021,47.305824279785156],[46.53321456909197,47.40501785278332],[46.382671356201456,47.411556243896484],[46.198188781738445,47.49292373657238],[45.88682937622087,47.71611404418957],[45.74114608764654,47.8851776123048],[45.76618957519548,47.999923706054744],[45.58000564575218,47.997398376464844],[45.33113098144531,48.13076019287115],[45.07697677612305,48.24496459960937],[45.052654266357706,48.36475753784191],[45.2648315429688,48.547519683838004],[45.58788681030285,48.569343566894645],[45.86848068237299,48.692279815673935],[46.065818786621264,48.853801727295036],[46.25581741333036,48.8485145568847],[46.58043670654313,48.71297836303716],[46.6070938110351,48.65580368041998],[46.49185562133789,48.44301223754877],[46.908660888672046,48.338993072509815],[47.09759521484381,48.21101379394531],[47.13941574096685,48.039939880371094],[47.01765060424799,48.000000000000114],[47.174312591552734,47.76074600219738],[47.371269226074276,47.676906585693416],[47.40667724609392,47.81257629394531],[47.68725204467779,47.74502944946294],[48.058250427246094,47.76065063476573],[48.182308197021655,47.678043365478516],[48.380683898926065,47.43358993530285],[48.607757568359375,47.41446685791027],[48.661376953125,47.209053039550724],[48.78133010864286,47.010875701904354],[49.00532531738287,46.76715469360357],[48.91406250000017,46.693138122558594],[48.75134658813499,46.68787765502924],[48.65697479248047,46.77126312255871],[48.48070526123064,46.65767288208013],[48.77588272094743,46.53588867187505],[48.81622314453142,46.48017883300787],[49.150959014892635,46.36972045898443],[49.202659606933594,46.2094230651856],[49.01564788818388,45.997692108154354],[48.59433746337902,45.87460708618164],[48.415763854980526,45.79878234863281],[48.23880386352539,45.603031158447266],[48.06351852416992,45.654464721679744],[47.87494277954107,45.56921005249017],[47.6906814575197,45.71260452270519],[47.57416915893583,45.63583374023449],[47.67722702026384,45.558238983154354],[47.59436416625982,45.44005584716797]]]},"properties":{"ID_0":188,"ISO":"RU-AST","NAME_0":"Russia","ID_1":5,"NAME_1":"Astrakhan'","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Астраханская область","VARNAME_1":"Astrachan|Astrakhanskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[57.41663742065435,56.34223175048828],[57.56007003784185,56.13613128662115],[57.80295181274408,56.17052078247075],[58.01305007934592,56.10430526733398],[58.31609725952154,56.10857391357422],[58.56117248535184,56.185100555420036],[58.86010360717797,56.08219146728527],[59.030738830566456,56.155094146728565],[59.320507049560604,56.18135070800787],[59.211906433105696,56.050365447998104],[59.23822021484381,55.95672607421869],[59.1341705322265,55.835670471191406],[59.322940826416186,55.768527984619254],[59.32208251953142,55.6388511657716],[59.652351379394815,55.607147216796875],[59.50017547607433,55.4813690185548],[59.21862411499023,55.46597290039056],[59.17960739135747,55.36906814575201],[58.994586944580135,55.28555297851562],[58.84098815917997,55.33058166503906],[58.636543273925724,55.18655776977545],[58.84679412841797,55.06823348999023],[58.6099548339846,54.97185134887707],[58.26559448242204,55.206829071045036],[58.053119659423885,55.27981948852544],[57.550121307373104,55.34121704101557],[57.267562866211165,55.24896621704113],[57.12787628173845,55.08674240112305],[57.263156890869084,54.95346832275385],[57.23563766479498,54.83249282836914],[57.72532272338861,54.61536026000988],[57.912010192871094,54.436424255371094],[58.06396865844749,54.43630981445318],[58.233798980713,54.53509902954101],[58.41311645507835,54.56279373168945],[58.62959671020502,54.495384216308594],[58.794242858886996,54.58634948730469],[59.095550537109425,54.65145492553711],[59.25223159790045,54.63365554809581],[59.66798400878911,54.92079925537121],[59.87408447265624,54.84171295166015],[59.926452636719034,54.76031875610363],[59.80536270141607,54.58450317382818],[59.68371582031267,54.52081298828131],[59.65116500854487,54.386539459228516],[59.775970458984666,54.32979965209972],[59.72672653198259,54.171306610107536],[59.57646560668945,54.2050514221192],[59.30596923828131,54.187454223632926],[59.195388793945426,54.02574157714844],[58.95000076293957,53.95510101318371],[58.87456893920904,53.549053192138665],[58.8741760253909,53.308635711670036],[58.9711074829101,53.06687164306652],[58.83953475952177,52.972320556640625],[58.772003173828296,52.647197723388615],[58.870468139648494,52.46748733520519],[58.928104400634936,52.32921218872082],[58.72232818603544,52.264278411865284],[58.736724853515796,52.03905868530279],[58.66092681884793,51.82437133789068],[58.285514831543196,51.70486068725591],[58.12882995605486,51.791187286376946],[57.717884063720646,51.84242630004894],[57.59904098510736,51.68700408935547],[57.252754211425895,51.56111145019531],[57.0214614868164,51.72510528564453],[56.84771728515625,51.67733764648443],[56.67132186889643,51.853351593017514],[56.76434326171875,51.938571929931754],[56.65333938598661,52.08392715454113],[56.41641616821294,52.28343200683594],[56.43438339233427,52.454502105713004],[56.30926513671875,52.57383728027355],[56.076580047607536,52.671535491943416],[55.87468719482433,52.41638565063488],[55.74633026123058,52.37069702148449],[55.52683639526373,52.4270591735841],[55.455417633056804,52.607715606689396],[55.350761413574155,52.660835266113224],[55.33386230468756,52.86939239501959],[55.164718627929744,52.83671188354498],[54.96802520751953,53.03781890869146],[54.85125732421892,53.27014160156256],[54.622863769531534,53.24052810668957],[54.506992340088175,53.35881423950207],[54.21290588378906,53.40169525146484],[54.05044174194353,53.483718872070305],[53.81612777709984,53.69990921020507],[53.63262939453119,53.81281661987305],[53.3920555114746,54.05834579467779],[53.37245178222667,54.26820373535156],[53.455108642578125,54.53090667724615],[53.63167953491234,54.70544815063476],[53.513286590576456,54.9273681640625],[53.185462951660384,55.15990829467785],[53.53339004516601,55.21333312988287],[53.681930541992415,55.32246017456055],[53.903453826904354,55.39184188842785],[54.0101165771486,55.58977127075201],[54.200267791748104,55.68797683715826],[54.19494247436529,55.768352508545036],[53.79792785644536,55.980274200439396],[54.10133361816412,56.133831024169865],[54.40242767333979,56.371795654296875],[54.53579711914062,56.512344360351506],[54.962570190429965,56.404541015625114],[55.1863250732423,56.44576644897466],[55.357685089111605,56.38758468627935],[55.697883605957145,56.499252319335994],[55.86119079589861,56.50003814697271],[56.04634475708008,56.308773040771484],[56.265800476074276,56.31492614746088],[56.49899291992182,56.383789062499936],[56.81703186035162,56.14175796508795],[56.956630706787216,56.11451721191406],[57.20583343505871,56.1882438659668],[57.41663742065435,56.34223175048828]]]},"properties":{"ID_0":188,"ISO":"RU-BA","NAME_0":"Russia","ID_1":6,"NAME_1":"Bashkortostan","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Башкортостан","VARNAME_1":"Bashkir|Bashkiriya|Bashkirskaya A.S.S.R.|Republic of Bashkortostan|Respublika Bashkortostan"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.36970138549833,51.27934265136713],[38.54579162597679,51.24855804443365],[38.49182128906273,51.05882644653325],[38.7117538452149,51.011901855468864],[38.945518493652344,51.010120391845646],[38.82070922851574,50.82352828979503],[39.06449890136736,50.676937103271484],[39.21214675903326,50.487911224365234],[39.13768005371122,50.42704772949224],[39.24822235107421,50.1157836914063],[39.36486434936523,50.04544067382824],[39.228057861328345,49.82275772094738],[38.93712234497099,49.81128311157232],[38.611801147460994,49.97761154174816],[38.37343597412121,50.004013061523494],[38.04784774780279,49.95610427856457],[37.7604217529298,50.09633636474615],[37.49312973022478,50.42899322509776],[37.05329132080101,50.334320068359425],[36.925628662109546,50.34740829467779],[36.59706115722679,50.23817443847656],[36.49313354492216,50.32691955566411],[36.31538772583008,50.29401397705078],[36.15499877929699,50.44929885864269],[35.833274841308764,50.450107574463004],[35.631309509277344,50.360713958740234],[35.41308593750017,50.58973693847661],[35.50151443481445,50.688339233398494],[35.34387207031249,50.94857025146496],[35.39136505126953,51.02016067504888],[35.535190582275675,50.947021484375114],[35.84481430053728,50.9765739440918],[36.01176071166998,51.10667419433605],[36.21975708007818,51.159671783447266],[36.61006927490263,51.085968017578125],[36.805816650390796,51.18906402587902],[36.987564086914176,51.19255828857416],[37.15841293334978,51.316738128662166],[37.43205261230469,51.378387451171875],[37.79271697998047,51.36293411254894],[38.03408050537138,51.42617797851574],[38.36970138549833,51.27934265136713]]]},"properties":{"ID_0":188,"ISO":"RU-BEL","NAME_0":"Russia","ID_1":7,"NAME_1":"Belgorod","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Белгородская область","VARNAME_1":"Belgorodskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.12622451782232,53.28488540649414],[35.24696350097673,53.02655029296881],[35.02579498291021,52.94956588745117],[34.89869308471708,52.8263053894043],[35.050327301025675,52.6984024047851],[34.83935546875017,52.46743011474604],[34.95538711547846,52.376113891601555],[34.593837738037166,52.08508300781256],[34.32296752929715,52.04505538940429],[34.327144622802905,51.871875762939446],[34.09249496459972,52.015304565429744],[34.114337921142635,52.13401031494152],[33.72587966918974,52.354530334472656],[33.242950439453175,52.368160247802734],[32.977085113525334,52.26479721069336],[32.706577301025675,52.253143310546925],[32.53191375732427,52.33327102661133],[32.358680725097656,52.33577728271496],[32.35117340087902,52.13898086547857],[32.072063446045085,52.022766113281364],[31.80774879455589,52.09617233276367],[31.685556411743278,52.27771759033209],[31.594562530517802,52.302452087402344],[31.624660491943416,52.560420989990234],[31.515312194824446,52.68931198120128],[31.606595993042045,52.76661300659179],[31.306106567383093,53.02810287475586],[31.428953170776534,53.19543838500982],[31.64104270935053,53.231410980224545],[31.828300476074443,53.11901092529297],[32.16097259521513,53.08430099487316],[32.42108154296881,53.18400192260748],[32.76076126098661,53.41225051879882],[33.09860610961931,53.64677429199219],[33.2837562561038,53.8709831237793],[33.54387283325217,54.007575988769645],[33.83618927001959,53.972007751464844],[33.95208740234375,53.85181808471691],[34.22988128662138,53.869621276855526],[34.509521484375284,53.683013916015625],[34.531337738037394,53.442100524902344],[35.12622451782232,53.28488540649414]]]},"properties":{"ID_0":188,"ISO":"RU-BRY","NAME_0":"Russia","ID_1":8,"NAME_1":"Bryansk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Брянская область","VARNAME_1":"Bryanskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[115.7581253051759,56.95084381103509],[115.59595489501953,56.86897659301758],[115.62550354003906,56.72625732421881],[115.46198272705077,56.63488388061518],[115.690185546875,56.56768798828125],[115.71392822265636,56.350528717041016],[115.86387634277354,56.12752914428705],[115.79917907714889,56.01026535034179],[115.92726898193358,55.6559562683106],[115.96028900146507,55.37213516235357],[116.18379211425781,55.32855224609381],[116.41257476806686,55.337203979492294],[116.61997985839876,55.16183090209955],[116.82498168945312,55.08005523681651],[116.95027923583994,54.8743057250976],[116.81219482421874,54.61384201049816],[116.71199035644543,54.53763580322276],[116.2816848754885,54.51376342773448],[115.56758117675791,54.390731811523494],[115.45918273925781,54.270111083984375],[115.2238540649414,54.194267272949276],[114.8556900024414,54.00134658813482],[114.6169891357424,53.948337554931754],[114.4966812133789,53.81497573852545],[113.98649597168003,53.71546936035156],[113.84449005126964,53.61529922485357],[113.84599304199241,53.41097259521496],[113.94398498535156,53.27601242065441],[114.102294921875,53.20202636718756],[114.1680908203125,53.081085205078125],[114.30138397216807,53.043579101562614],[114.23398590087913,52.82198715209966],[114.02849578857422,52.6571502685548],[113.77400207519543,52.62709808349609],[113.56588745117188,52.47590255737316],[113.12449645996139,52.44719696044933],[112.92559051513672,52.34449768066412],[112.51860046386751,52.333370208740284],[112.3279037475586,52.229850769043026],[112.15048980712925,52.294643402099666],[111.90428161621094,52.17807769775385],[111.62138366699236,51.940441131591854],[111.27769470214844,51.86703491210937],[111.00709533691429,51.7771453857423],[110.84139251709013,51.66312026977545],[110.81089019775419,51.569496154785156],[110.65718841552727,51.49725341796881],[110.41329193115234,51.514919281005916],[110.35228729248053,51.586704254150334],[109.9656906127932,51.59393692016613],[109.6315917968751,51.42744827270502],[109.24658966064459,51.349941253662166],[108.95189666748045,51.42693328857433],[108.71248626709,51.43352127075206],[108.48529052734368,51.39182281494151],[108.3722000122072,51.181735992431754],[108.54918670654291,51.094142913818416],[108.29508209228544,51.0081024169923],[108.24688720703142,50.748924255371094],[108.09030151367205,50.65878677368158],[108.43138885498053,50.54073715209961],[108.45928192138678,50.41084289550787],[107.98388671875017,50.265735626220696],[107.90488433837885,50.1462135314942],[107.70338439941429,50.04202270507823],[107.74230957031256,49.982921600341854],[107.71409606933622,49.96063232421875],[107.69300842285173,49.95491027832031],[107.25467681884759,49.99255371093756],[107.1307373046875,50.026912689208984],[106.92449951171868,50.24749755859375],[106.56732177734375,50.34710693359381],[106.279296875,50.295722961425724],[106.0801010131837,50.393844604492244],[105.61184692382822,50.43236160278331],[105.38769531250004,50.47930908203131],[105.15193176269537,50.400051116943416],[104.91193389892578,50.388450622558594],[104.58850097656256,50.31372070312506],[104.40511322021501,50.3049926757813],[104.25095367431652,50.2018775939942],[104.0610961914063,50.15447998046881],[103.85482788085932,50.20290374755865],[103.69046020507812,50.13723754882812],[103.28723144531267,50.219169616699276],[103.20459747314447,50.31268692016607],[102.98071289062517,50.3043212890625],[102.64211273193371,50.429409027099666],[102.50518035888666,50.54089736938488],[102.32061767578125,50.58409118652355],[102.35404968261723,50.72669982910162],[102.22193145751947,50.8651123046875],[102.26687622070318,50.96551895141601],[102.06877899169915,51.39709472656255],[101.64199066162114,51.45660400390631],[101.34790039062523,51.47052001953125],[100.94338989257841,51.626300811767635],[100.51564025878923,51.7503776550293],[99.99353027343778,51.75329589843761],[99.77060699462902,51.881752014160206],[99.29478454589844,51.97522735595709],[98.98908996582054,52.123634338378956],[98.98967742919928,52.18605804443371],[98.64791870117216,52.278533935546925],[98.64746093750004,52.435390472412166],[98.81523132324212,52.54051589965832],[98.93306732177763,52.685543060302734],[99.00712585449236,52.9436759948731],[99.209213256836,52.93704605102545],[99.42826843261736,53.146099090576286],[99.55699157714838,53.13608169555664],[99.85607147216791,53.23704910278326],[99.86454772949224,53.338348388671875],[100.10189819335949,53.32376861572277],[100.2689895629884,53.410411834716854],[100.44689178466803,53.06212997436529],[100.76179504394537,52.93276214599621],[100.8267822265625,52.85309219360357],[101.38328552246088,52.636081695556754],[101.6136856079101,52.493385314941406],[101.64729309082048,52.40300369262707],[102.01759338378912,52.233772277831974],[102.12709045410185,52.274780273437436],[102.56408691406278,52.228134155273494],[102.84979248046903,51.9375228881837],[103.12709045410162,51.857528686523494],[103.2241821289063,51.69775009155273],[103.2037887573245,51.587627410888786],[103.33319091796892,51.443725585937614],[103.56519317626976,51.45485305786144],[103.80848693847673,51.376335144043026],[103.79341125488276,51.161197662353516],[103.91110229492205,51.138278961181754],[104.20409393310563,51.259197235107536],[104.61539459228521,51.32914352416997],[104.6928176879885,51.54415893554693],[105.3636398315432,51.77748870849621],[106.06362915039085,52.2733154296875],[106.50112915039062,52.59414672851568],[107.55110931396501,52.97330474853515],[108.09069061279313,53.29413604736328],[108.49901580810541,54.023292541503906],[108.53610992431646,54.4931526184082],[108.67350006103544,54.67839813232433],[108.67258453369135,55.06584548950207],[108.73458099365229,55.232414245605526],[108.65069580078142,55.26443099975597],[108.62490081787104,55.46341705322271],[108.68378448486332,55.51671218872076],[108.87778472900419,55.91461181640624],[109.11359405517595,55.99072647094737],[108.88919830322271,56.08713912963867],[108.82819366455107,56.220275878906364],[108.55319213867182,56.33916473388672],[108.71398162841791,56.52064132690424],[109.08189392089855,56.666835784912166],[109.48038482666033,56.72339630126959],[109.6817779541015,56.70060729980469],[109.85719299316435,56.78435516357422],[109.9868927001956,56.969215393066406],[110.36640167236334,56.92937088012689],[110.55599212646489,56.84374237060552],[110.72458648681639,56.87374496459961],[111.11918640136736,56.820114135742244],[111.30438995361344,56.91511917114258],[111.38539123535166,57.054851531982536],[111.53359222412121,57.12640380859381],[111.79949188232416,56.928192138671875],[112.0827865600586,56.94515609741222],[112.42478942871092,56.85485076904308],[112.59719085693393,56.96062088012706],[112.80089569091831,56.74137115478527],[113.16329193115268,56.65396118164068],[113.56809997558616,56.679946899414176],[113.97988891601585,56.557373046875],[114.15707397460936,56.70145416259771],[114.45579528808605,56.67583084106451],[114.76548767089844,56.716793060302784],[115.0475845336914,56.97802734375006],[115.0759277343751,57.11750411987304],[115.62718200683604,57.122791290283146],[115.80938720703125,57.22856521606451],[116.1044845581057,57.23717498779297],[116.12218475341797,57.12005615234375],[115.7581253051759,56.95084381103509]]]},"properties":{"ID_0":188,"ISO":"RU-BU","NAME_0":"Russia","ID_1":9,"NAME_1":"Buryat","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Бурятия","VARNAME_1":"Buryatiya|Buryat-Mongol A.S.S.R.|Republic of Buryatia|Buryatskaya A.S.S.R.|Respublika"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.773288726806754,42.46203231811529],[45.57738113403349,42.54584121704113],[45.350009918213175,42.529029846191406],[45.17654037475586,42.69070053100585],[45.088874816894695,42.695873260498104],[45.21262359619152,42.909942626953125],[45.18202590942377,43.047199249267635],[45.30168533325201,43.18769454956049],[45.3108100891115,43.30858993530285],[45.197319030761996,43.40940475463873],[44.92815780639642,43.535919189453125],[44.96052932739286,43.643440246582145],[45.12002563476568,43.684391021728516],[45.158073425293075,43.88348770141612],[45.44735717773443,43.81063842773443],[45.5693778991702,43.97541427612316],[45.78633880615263,43.90127563476574],[45.90329360961937,43.93429565429699],[46.18688583374029,43.83760833740246],[46.44912719726591,43.9833984375],[46.604526519775334,43.8326301574707],[46.59563446044933,43.70569229125988],[46.36718750000017,43.41711044311535],[46.4768714904788,43.21105575561529],[46.45720672607439,43.07328414916992],[46.55451583862333,42.922027587890675],[46.47019958496094,42.85184478759771],[46.24863433837896,42.865242004394645],[46.145259857177905,42.802078247070426],[46.233383178710994,42.71281814575195],[46.04878616333008,42.674411773681754],[46.035491943359546,42.59906005859374],[45.773288726806754,42.46203231811529]]]},"properties":{"ID_0":188,"ISO":"RU-CE","NAME_0":"Russia","ID_1":10,"NAME_1":"Chechnya","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Чечено-Ингушска","VARNAME_1":"Cecenia|Chechenia|Chechênia|Tchetchnia|Chechen-Ingush A.S.S.R.|Checheno-Ingushetia|Checheno-Ingushetia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[62.03094863891612,56.179256439208984],[62.20186233520502,56.05117797851562],[62.24063491821288,55.945957183837834],[62.5412254333496,55.77297210693365],[62.546329498290966,55.4912223815919],[62.05126571655279,55.29558563232433],[62.242473602295036,55.14459228515625],[61.94676208496088,55.01336288452154],[62.18416213989274,54.68358230590826],[62.41496658325195,54.743141174316406],[62.53170013427763,54.681823730468864],[62.7756843566895,54.67310333251953],[63.145675659179965,54.7323951721192],[63.28725051879905,54.56122970581054],[63.11988449096696,54.47005844116211],[63.108814239501896,54.36895751953131],[63.378082275390625,54.19743347167968],[63.16834640502947,54.19244384765625],[63.06212615966825,54.10041427612304],[62.85134124755864,54.11232376098638],[62.45409011840825,53.9259490966798],[62.33593750000006,54.034744262695305],[62.08839035034196,54.05787277221674],[61.94958877563477,53.94578552246105],[61.73760604858393,54.029369354248104],[61.58145904541043,53.99537658691417],[61.46106338500993,54.08398437500005],[61.2757301330567,53.98480987548834],[61.02773284912115,53.95189666748058],[61.218322753906364,53.81587219238292],[60.915958404541186,53.6167106628418],[61.17223739624051,53.56786727905268],[61.55599975585937,53.57489013671875],[61.48129653930681,53.46133422851574],[61.301353454589844,53.50721359252924],[61.161064147949496,53.392078399658196],[61.18274307250988,53.29615402221685],[61.46290206909208,53.22378540039068],[61.66730499267589,53.25185012817383],[61.79901885986333,53.160873413085994],[62.11061477661138,53.11679840087896],[62.137271881103516,53.0057373046875],[61.89292144775419,53.01052093505865],[61.65784072876005,52.960647583007926],[61.45967483520536,53.03501129150402],[61.23683929443354,53.031814575195256],[60.82582092285173,52.76245880126964],[60.84120178222685,52.61891174316406],[61.07188034057623,52.33768081665039],[60.72191238403348,52.16866683959961],[60.48985671997087,52.14835739135747],[60.32489013671903,52.03950500488287],[60.115940093994425,51.99730300903332],[60.0258522033692,52.08017349243164],[60.091457366943416,52.20063400268566],[60.234333038330135,52.27692031860362],[60.21855926513672,52.39468765258789],[60.08536529541011,52.43814849853521],[59.482364654540966,52.498386383056754],[59.28738403320312,52.448772430420036],[59.264503479003906,52.30434417724603],[59.01293563842802,52.468856811523494],[58.870468139648494,52.46748733520519],[58.772003173828296,52.647197723388615],[58.83953475952177,52.972320556640625],[58.9711074829101,53.06687164306652],[58.8741760253909,53.308635711670036],[58.87456893920904,53.549053192138665],[58.95000076293957,53.95510101318371],[59.195388793945426,54.02574157714844],[59.30596923828131,54.187454223632926],[59.57646560668945,54.2050514221192],[59.72672653198259,54.171306610107536],[59.775970458984666,54.32979965209972],[59.65116500854487,54.386539459228516],[59.68371582031267,54.52081298828131],[59.80536270141607,54.58450317382818],[59.926452636719034,54.76031875610363],[59.87408447265624,54.84171295166015],[59.66798400878911,54.92079925537121],[59.25223159790045,54.63365554809581],[59.095550537109425,54.65145492553711],[58.794242858886996,54.58634948730469],[58.62959671020502,54.495384216308594],[58.41311645507835,54.56279373168945],[58.233798980713,54.53509902954101],[58.06396865844749,54.43630981445318],[57.912010192871094,54.436424255371094],[57.72532272338861,54.61536026000988],[57.23563766479498,54.83249282836914],[57.263156890869084,54.95346832275385],[57.12787628173845,55.08674240112305],[57.267562866211165,55.24896621704113],[57.550121307373104,55.34121704101557],[58.053119659423885,55.27981948852544],[58.26559448242204,55.206829071045036],[58.6099548339846,54.97185134887707],[58.84679412841797,55.06823348999023],[58.636543273925724,55.18655776977545],[58.84098815917997,55.33058166503906],[58.994586944580135,55.28555297851562],[59.17960739135747,55.36906814575201],[59.21862411499023,55.46597290039056],[59.50017547607433,55.4813690185548],[59.652351379394815,55.607147216796875],[59.32208251953142,55.6388511657716],[59.322940826416186,55.768527984619254],[59.1341705322265,55.835670471191406],[59.23822021484381,55.95672607421869],[59.211906433105696,56.050365447998104],[59.320507049560604,56.18135070800787],[59.030738830566456,56.155094146728565],[59.26965332031249,56.386581420898494],[59.627262115478565,56.33762741088873],[59.721618652343864,56.251808166503906],[60.06461334228533,56.25220489501953],[60.41116714477544,56.29547500610357],[60.577255249023544,56.239315032958984],[61.140232086181584,56.25442886352538],[61.0709800720216,56.34933853149425],[61.20479583740229,56.40869903564459],[61.6801261901856,56.34332656860357],[62.03094863891612,56.179256439208984]]]},"properties":{"ID_0":188,"ISO":"RU-CHE","NAME_0":"Russia","ID_1":11,"NAME_1":"Chelyabinsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Челябинская область","VARNAME_1":"Chelyabinskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-179.98905944824216,68.97760009765636],[-179.8328094482421,68.91301727294922],[-179.4515686035156,68.91614532470732],[-179.27082824707023,68.80208587646513],[-178.8442687988281,68.74948120117199],[-178.70208740234372,68.53958129882818],[-178.01718139648435,68.41614532470703],[-177.9083404541015,68.26667022705084],[-177.62864685058594,68.30573272705101],[-177.32083129882807,68.23750305175787],[-176.72760009765622,68.04322814941406],[-176.80207824707028,67.97083282470709],[-176.4854125976562,67.88333129882824],[-176,67.86458587646489],[-176.31040954589835,67.72916412353521],[-176.16874694824213,67.62916564941406],[-175.66926574707026,67.55364990234375],[-175.93333435058588,67.72708129882818],[-175.75364685058597,67.79114532470709],[-175.25885009765625,67.65052032470703],[-175.1734313964844,67.43177032470703],[-174.78750610351557,67.34791564941412],[-174.90573120117188,67.04010009765636],[-174.75468444824213,66.92656707763678],[-174.70625305175776,66.76041412353521],[-174.9750061035156,66.66666412353526],[-174.44010925292966,66.52864837646484],[-174.45573425292966,66.29843902587913],[-173.96093749999994,66.44635009765636],[-174.1338500976562,66.55260467529307],[-173.91458129882815,66.68125152587896],[-174.04374694824216,66.97916412353516],[-174.1458282470703,67.08125305175787],[-173.60260009765622,67.10051727294928],[-173.40208435058588,66.97499847412115],[-172.6125030517578,66.89167022705084],[-172.3588562011719,66.93489837646484],[-171.6666717529297,66.93750000000011],[-171.67864990234372,66.85468292236357],[-171.33384704589847,66.74635314941418],[-171.3640594482422,66.67552185058616],[-170.8979187011719,66.51041412353527],[-170.5208282470703,66.33541870117188],[-170.19844055175778,66.2744827270509],[-170.0625,66.16874694824224],[-169.6734313964843,66.12343597412121],[-169.6734313964843,66.04634857177763],[-170.17448425292963,66.00364685058605],[-170.53698730468747,65.85990142822266],[-170.496353149414,65.6713485717774],[-170.62290954589838,65.59999847412115],[-171.27291870117182,65.52708435058594],[-171.92083740234378,65.52291870117193],[-172.51876831054688,65.67501068115246],[-172.17031860351565,65.40364837646484],[-172.24166870117182,65.21250152587902],[-172.1171875,65.04843902587902],[-172.26718139648438,64.96302032470713],[-172.754165649414,64.83333587646479],[-172.83593749999997,64.64843750000006],[-172.4187469482422,64.53958129882824],[-172.42343139648432,64.40676879882818],[-172.72500610351557,64.39791870117188],[-172.9375,64.26041412353516],[-173.1786499023437,64.24843597412115],[-173.36874389648435,64.32083129882807],[-173.64166259765616,64.3249969482423],[-173.97084045410153,64.40833282470714],[-174.07292175292963,64.54582977294928],[-174.63697814941406,64.706771850586],[-174.5921783447265,64.83906555175776],[-175.03125,64.76457977294928],[-175.32292175292966,64.77708435058594],[-175.4020843505859,64.8499984741211],[-175.8640594482422,64.99218750000011],[-175.73176574707028,65.15364837646484],[-175.89114379882812,65.25989532470709],[-175.93333435058588,65.42082977294922],[-176.78750610351562,65.57707977294945],[-176.9786529541015,65.63906097412108],[-177.33125305175778,65.4854202270509],[-177.7583312988281,65.44999694824219],[-178.4375,65.46875],[-178.4484405517578,65.74323272705084],[-178.8411407470703,65.89427185058615],[-178.44010925292963,66.21926879882812],[-178.92500305175776,66.1541671752929],[-179.22343444824216,66.16301727294943],[-179.79739379882812,66.09323120117193],[-179.7994842529297,65.93281555175787],[-179.68489074707026,65.77343750000011],[-179.3104095458984,65.625],[-179.44323730468744,65.55052185058594],[-179.54426574707028,65.23384857177746],[-179.99842834472656,65.04843902587902],[-180,66.03073120117199],[-180,67.49871826171875],[-180,67.99635314941406],[-179.98905944824216,68.97760009765636]]],[[[168.52343750000045,70.01927185058594],[169.02915954589844,69.94999694824236],[169.42968750000034,69.85468292236328],[169.18540954589844,69.55416870117197],[168.91458129882832,69.55416870117197],[168.16093444824216,69.68177032470714],[168.10989379882832,69.74531555175793],[167.7916717529297,69.80833435058594],[168.16250610351585,69.99791717529297],[168.52343750000045,70.01927185058594]]],[[[175.1458282470703,69.8375015258789],[175.74114990234375,69.824478149414],[175.92083740234398,69.76875305175793],[176.4375,69.73332977294922],[177.14843750000023,69.5984344482423],[177.52708435058605,69.58333587646513],[177.6645812988282,69.51249694824219],[178.53958129882812,69.44374847412121],[178.7624969482423,69.39583587646489],[178.78750610351562,69.26041412353521],[179.32708740234386,69.25000000000017],[179.69947814941406,69.09323120117188],[179.69583129882812,69.00208282470703],[179.98333740234398,68.96875],[180.0000000000001,68.94973754882822],[180.0000000000001,68.85520935058594],[180.0000000000001,67.49953460693365],[180.0000000000001,67.49871826171875],[180.0000000000001,65.984115600586],[179.99790954589844,65.02708435058605],[179.8411407470703,64.99010467529308],[179.50625610351562,64.79582977294922],[179.13333129882812,64.76041412353521],[178.78958129882824,64.63124847412115],[178.3374938964845,64.63541412353516],[177.6859283447268,64.69426727294933],[177.49009704589855,64.85468292236338],[177.08749389648438,64.75624847412121],[176.67916870117188,64.85416412353516],[176.31092834472676,64.76301574707031],[176.6953125000001,64.61614990234375],[176.7812500000002,64.53958129882824],[177.0937500000001,64.7041702270509],[177.50833129882835,64.7395858764649],[177.41250610351562,64.5104141235351],[177.48385620117188,64.41093444824224],[177.97708129882812,64.20417022705078],[178.35676574707043,64.31822967529297],[178.69375610351582,63.94374847412104],[178.78802490234384,63.69947814941406],[178.6286468505859,63.62864303588873],[178.78541564941406,63.395832061767685],[178.95416259765636,63.29375076293951],[179.31040954589866,63.20416641235345],[179.46665954589855,63.060417175293075],[179.27915954589855,62.99791717529297],[179.36457824707054,62.87708282470708],[179.5807342529298,62.822399139404354],[179.62916564941418,62.6875],[179.36457824707054,62.47916793823253],[179.11718750000023,62.41719055175787],[179.18281555175804,62.32031250000006],[178.5562438964846,62.41666793823242],[178.0937500000001,62.53125],[177.2708282470703,62.55208206176758],[176.90834045410168,62.51250076293951],[176.51666259765625,62.40833282470697],[176.26249694824227,62.28749847412114],[175.9562530517578,62.24583435058589],[175.28489685058594,62.08906555175781],[175.2473907470705,62.02135467529297],[174.8249969482422,61.920833587646534],[174.84791564941403,61.933334350585994],[174.72291564941418,61.9145851135255],[174.5833282470703,61.82083511352538],[174.4604187011721,61.806251525878906],[174.42916870117196,61.82083511352538],[174.39999389648446,61.82090377807623],[174.42063903808594,61.82291793823242],[174.4244842529297,61.8234977722168],[174.3608856201173,61.96419143676769],[174.2377777099609,62.07927703857433],[174.0505828857423,62.08871078491222],[174.09197998046886,62.32941055297862],[174.0422821044922,62.40491867065436],[173.67327880859386,62.499732971191406],[173.07987976074241,62.406597137451236],[172.76919555664108,62.31050109863281],[172.46588134765634,62.39173507690435],[172.1083831787109,62.34674072265624],[171.93939208984375,62.41199493408203],[171.23089599609398,62.232379913330014],[171.03347778320332,62.30651473999029],[170.9011688232423,62.2173118591308],[170.60829162597656,62.17295837402337],[170.22097778320358,62.25038528442388],[170.02957153320312,62.220630645752],[169.82418823242207,62.58061218261718],[169.53900146484375,62.62110519409173],[169.4206848144532,62.71690368652355],[168.95277404785202,62.875350952148494],[168.7969055175782,62.85811233520513],[168.29310607910156,63.00706100463873],[168.55976867675778,63.114292144775504],[168.68098449707077,63.247974395752],[169.44708251953122,63.580848693847656],[169.19998168945324,63.86784362792964],[168.86268615722653,63.900096893310604],[168.7185821533203,63.975624084472656],[168.64190673828125,64.14803314208979],[168.4447021484376,64.16743469238293],[168.34239196777355,64.29093170166016],[167.84390258789074,64.23053741455084],[167.52578735351562,64.28662109375006],[167.5120849609375,64.38391876220714],[167.24938964843784,64.46813201904297],[167.09548950195312,64.5874481201173],[166.92356872558605,64.5131607055664],[166.4732666015626,64.4714813232423],[166.3092651367191,64.55143737792962],[165.77137756347668,64.58966827392584],[165.6528778076176,64.71417999267577],[165.28489685058614,64.7231826782227],[165.11187744140625,64.81286621093754],[164.90689086914085,64.75443267822266],[164.53738403320312,64.78979492187511],[164.1885681152345,64.88880920410166],[163.79478454589852,64.85228729248047],[163.53219604492188,64.9113235473634],[163.23428344726562,64.66918182373047],[162.79148864746105,64.66117095947266],[162.58186340332043,64.7549285888673],[162.1087036132816,64.78974914550787],[161.9074859619144,64.84993743896479],[161.68598937988293,65.04332733154291],[161.306884765625,65.12402343749993],[160.6400909423828,65.1752548217774],[160.22528076171886,65.3810195922852],[160.13206481933605,65.50003051757817],[159.13047790527366,65.67443084716808],[158.96820068359384,65.75019073486322],[158.9782867431643,65.99014282226555],[159.24395751953136,66.20253753662115],[158.9712677001953,66.20855712890625],[158.57537841796875,66.31752014160162],[158.45596313476562,66.42601776123047],[158.9965820312502,66.76388549804693],[158.81707763671898,66.87801361083979],[158.8250732421875,67.03237915039062],[158.34736633300793,67.10282897949247],[157.9401855468751,67.25540924072271],[157.85130310058602,67.4528198242188],[157.88198852539062,67.67973327636719],[158.30708312988304,67.70922088623058],[158.17015075683616,67.84158325195324],[158.4062957763673,68.04562377929693],[158.5895843505864,68.0956268310548],[158.95898437500023,68.08712005615234],[159.34660339355514,68.21170806884771],[159.74398803710938,68.16364288330084],[159.9905700683595,68.2639770507813],[160.73587036132835,68.23564910888683],[161.4074859619143,68.38578796386719],[162.40057373046875,68.25137329101585],[162.52027893066403,68.52133941650402],[162.67718505859386,68.63863372802746],[162.55137634277355,68.72766876220709],[162.7729644775395,68.81952667236328],[162.43896484375023,68.96341705322271],[162.50527954101562,69.11279296875028],[162.70036315918003,69.1583175659182],[162.26187133789097,69.39166259765636],[162.38285827636741,69.6540069580078],[162.86874389648438,69.63541412353527],[163.23124694824241,69.70207977294922],[163.83958435058594,69.68541717529308],[164.01249694824241,69.75416564941406],[164.56040954589878,69.58125305175793],[165.804168701172,69.57083129882812],[166.21665954589866,69.50624847412115],[166.960418701172,69.47708129882818],[167.74583435058594,69.76875305175793],[168.05572509765648,69.74323272705072],[167.96041870117188,69.64167022705084],[168.27030944824241,69.5515670776367],[168.21510314941406,69.37968444824213],[168.3416595458989,69.2062530517581],[168.71458435058594,69.1979141235351],[169.10417175292991,69.08541870117188],[169.33332824707043,69.07917022705084],[169.4109344482423,68.86093902587889],[169.61457824707054,68.76667022705072],[170.0916595458989,68.79166412353533],[170.83541870117188,68.97083282470709],[171.01042175293014,69.06666564941418],[170.9369812011721,69.2671890258789],[170.5749969482423,69.59583282470703],[170.1979217529297,69.58125305175793],[170.27967834472665,69.69947814941412],[170.5729217529298,69.8020858764649],[170.57344055175804,70.07865142822271],[171.29583740234406,70.04582977294928],[172.80259704589844,69.90885162353516],[173.23333740234375,69.76041412353516],[173.70832824707054,69.86666870117188],[174.02082824707043,69.89167022705078],[174.42291259765636,69.84791564941418],[175.1458282470703,69.8375015258789]]],[[[179.9979248046875,71.52754211425793],[179.99790954589844,70.97291564941406],[179.6125030517578,70.87083435058605],[179.06301879882835,70.85572814941435],[178.81927490234398,70.793228149414],[178.62968444824241,71.0703125000001],[178.89999389648446,71.20833587646507],[179.22084045410168,71.27916717529308],[179.4734344482422,71.40156555175787],[179.9979248046875,71.52754211425793]]],[[[-179.0328216552734,71.58385467529297],[-178.72708129882812,71.5749969482423],[-178.0578155517578,71.45885467529308],[-177.46510314941403,71.20051574707054],[-177.71875,71.06458282470732],[-177.9791717529296,71.01667022705084],[-179.08332824707026,70.90416717529303],[-179.99790954589838,70.97916412353527],[-180,71.11666107177744],[-180,71.39167022705084],[-179.99790954589838,71.52884674072277],[-179.0328216552734,71.58385467529297]]]]},"properties":{"ID_0":188,"ISO":"RU-CHU","NAME_0":"Russia","ID_1":12,"NAME_1":"Chukot","TYPE_1":"Avtonomnyy Okrug","ENGTYPE_1":"Autonomous Province","NL_NAME_1":"Чукотский АОк","VARNAME_1":"Chukotka|Chukotskiy Aok"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[48.433818817138956,55.83564758300781],[48.222423553466854,55.694824218750114],[48.166419982910156,55.586402893066456],[47.93909072875971,55.44807815551769],[47.84599685668956,55.272872924804744],[48.08277893066434,55.15318679809576],[47.7993278503418,54.96561431884777],[47.75094985961937,54.8439674377442],[47.37910461425804,54.83041000366211],[47.27970504760753,54.723297119140625],[47.05760574340826,54.71459960937506],[46.87243652343767,54.63331604003912],[46.480495452881144,54.76414489746099],[46.41702270507818,54.890769958496094],[46.11295318603515,55.05263519287103],[46.091865539551065,55.22121047973633],[46.24536132812506,55.28040313720703],[46.39575576782232,55.48254776000982],[46.01667785644537,55.610549926757756],[45.9772682189942,55.709350585937436],[46.11907196044922,55.816932678222656],[46.15256881713873,56.02133560180663],[46.531948089599666,56.16180801391612],[46.72156143188482,56.13411712646478],[46.82055664062517,56.201248168945256],[47.35260391235368,56.34806060791027],[47.48185729980468,56.20182800292963],[47.882141113281364,56.13944625854498],[47.99329757690447,55.9805641174317],[48.433818817138956,55.83564758300781]]]},"properties":{"ID_0":188,"ISO":"RU-CU","NAME_0":"Russia","ID_1":13,"NAME_1":"Chuvash","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Чувашская Республика","VARNAME_1":"Chuvashskaya A.S.S.R.|Chuvashskaya Respublika|Chuvashiya|Chuvash Republic"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.41337585449224,60.16041564941413],[29.4552898406983,60.21669769287115],[29.63844299316412,60.26620864868169],[29.692167282104492,60.25753784179693],[29.82188606262218,60.236030578613395],[30.01099586486822,60.1847915649414],[30.2376003265382,60.140625],[30.38434410095215,60.128211975097706],[30.369991302490234,60.107704162597656],[30.35161590576178,60.05097961425788],[30.524717330932614,59.986141204833984],[30.495494842529297,59.887321472168026],[30.619201660156303,59.81810379028321],[30.75839424133312,59.7766227722169],[30.720363616943356,59.70893859863287],[30.59896850585937,59.70190048217768],[30.526046752929627,59.655380249023494],[30.4826335906983,59.62333679199224],[30.192295074462944,59.63624191284192],[30.06274032592779,59.68751144409185],[30.00914001464855,59.72918319702143],[29.850015640258846,59.8276252746582],[29.675977706909237,59.86321258544922],[30.028944015502873,59.862251281738274],[30.187501907348743,59.98569488525396],[29.965103149414006,60.010940551757926],[29.926563262939506,60.14530944824219],[29.541666030883903,60.193748474121094],[29.41337585449224,60.16041564941413]]]},"properties":{"ID_0":188,"ISO":"RU-SPE","NAME_0":"Russia","ID_1":14,"NAME_1":"City of St. Petersburg","TYPE_1":"Gorsovet","ENGTYPE_1":"City","NL_NAME_1":"Санкт-Петербург (горсовет)","VARNAME_1":"Sankt-Peterburg gorsovet"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[46.89686965942411,44.83456802368163],[46.836387634277514,44.538150787353516],[46.99380493164068,44.43854904174805],[47.11287689209013,44.21173095703131],[47.25378417968756,44.12890625],[47.40943527221697,43.94292068481451],[47.588378906250284,43.79436111450201],[47.58098220825201,43.62916946411138],[47.47476577758811,43.38834381103521],[47.52555847167974,43.268432617187614],[47.46616744995123,43.01533508300792],[47.707035064697266,42.87892913818364],[47.7154960632327,42.68369674682623],[47.89205551147466,42.48472595214855],[48.07221221923834,42.339176177978516],[48.37198257446312,41.91100692749029],[48.49974822998058,41.82895278930664],[48.414409637451115,41.62656784057617],[48.19355392456072,41.50323867797857],[48.05105590820318,41.491195678711044],[47.87881469726568,41.21921920776373],[47.53591537475603,41.207206726074155],[47.26239395141618,41.324737548828125],[47.227470397949446,41.44229125976568],[47.10094070434576,41.587192535400504],[47.00976181030279,41.556026458740234],[46.895812988281534,41.731594085693466],[46.76124572753923,41.85299682617199],[46.539745330810604,41.873767852783196],[46.22616577148466,42.0018043518067],[45.76870727539068,42.125831604003906],[45.60612869262718,42.2189826965332],[45.71355819702177,42.29054641723633],[45.773288726806754,42.46203231811529],[46.035491943359546,42.59906005859374],[46.04878616333008,42.674411773681754],[46.233383178710994,42.71281814575195],[46.145259857177905,42.802078247070426],[46.24863433837896,42.865242004394645],[46.47019958496094,42.85184478759771],[46.55451583862333,42.922027587890675],[46.45720672607439,43.07328414916992],[46.4768714904788,43.21105575561529],[46.36718750000017,43.41711044311535],[46.59563446044933,43.70569229125988],[46.604526519775334,43.8326301574707],[46.44912719726591,43.9833984375],[46.18688583374029,43.83760833740246],[45.90329360961937,43.93429565429699],[45.78633880615263,43.90127563476574],[45.5693778991702,43.97541427612316],[45.583023071289176,44.106788635253906],[45.35768890380865,44.113613128662166],[45.22692108154308,44.20801162719732],[45.44076919555687,44.254520416259766],[45.503036499023665,44.34289932250982],[45.36286163330083,44.41144561767584],[45.30944824218773,44.525314331054744],[45.50423049926758,44.598480224609375],[45.64491653442394,44.77478027343756],[45.58984375000005,44.88315963745117],[45.7094612121582,44.98960113525396],[45.82844543457036,45.01570129394537],[46.38546371459966,44.951122283935604],[46.55226898193382,44.85092926025396],[46.7495231628418,44.79224395751964],[46.89686965942411,44.83456802368163]]]},"properties":{"ID_0":188,"ISO":"RU-DA","NAME_0":"Russia","ID_1":15,"NAME_1":"Dagestan","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Дагестан","VARNAME_1":"Dagestanskaya A.S.S.R.|Daghestan|Republic of Dagestan|Respublika Dagestan|Dagistan"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[87.11547851562504,52.59727096557617],[87.32029724121098,52.50825500488281],[87.63422393798828,52.42935180664068],[87.91730499267582,52.54662704467785],[88.16598510742188,52.41110229492199],[88.39932250976568,52.416522979736385],[88.42230987548845,52.18346405029297],[88.27487945556658,52.069774627685604],[88.05386352539068,52.035678863525504],[87.91613006591797,51.80930709838867],[88.11305236816435,51.72165679931634],[87.93568420410185,51.49143218994135],[88.40613555908209,51.29219818115239],[88.59608459472656,51.33659744262707],[88.69065093994158,51.508010864257926],[88.78808593750011,51.54139709472667],[88.99385833740261,51.3917350769044],[88.93582153320318,51.28644561767578],[89.03704071044939,51.05790328979498],[89.20065307617199,50.917152404785156],[89.36615753173834,50.86466598510748],[89.54168701171886,50.72339248657238],[89.5593032836914,50.646766662597706],[89.86594390869134,50.45931243896495],[89.79672241210955,50.374256134033196],[89.59128570556635,50.37336730957031],[89.40225219726574,50.31097412109369],[89.60778045654301,50.0583953857423],[89.60530853271489,49.94659423828131],[89.68183135986357,49.709709167480526],[89.4448852539063,49.65888214111328],[89.09948730468773,49.49987792968756],[88.81514739990263,49.46619033813482],[88.65002441406267,49.52006912231457],[88.44528198242193,49.480113983154354],[88.22333526611322,49.48987197875982],[87.99429321289078,49.18632125854492],[87.70231628417969,49.16968154907238],[87.43810272216813,49.08467102050787],[87.31257629394524,49.0996932983399],[87.26836395263689,49.21648025512695],[87.04711914062516,49.25468444824213],[86.90200805664067,49.35077285766601],[86.79604339599638,49.54754638671881],[86.61799621582037,49.63164520263672],[86.426498413086,49.638702392578125],[85.9796676635745,49.48617553710943],[85.93133544921875,49.55242156982416],[85.42082214355497,49.56372833251953],[85.21229553222662,49.62680816650385],[85.10476684570341,49.87472534179699],[84.98101806640636,49.920810699463004],[84.99801635742182,50.056076049804744],[84.8342132568361,50.09669113159174],[84.47759246826176,50.250236511230526],[84.3240661621096,50.2245330810548],[84.2188796997072,50.532268524170036],[84.05060577392607,50.647769927978516],[84.4374389648437,50.70588684082037],[84.59226989746122,50.8557968139649],[84.49913787841803,50.9668083190919],[84.19675445556658,51.00209808349614],[84.09119415283209,51.14675140380871],[84.19393157958984,51.26937484741211],[84.4468078613283,51.29122543334972],[84.73712158203142,51.43113708496105],[84.89691162109386,51.43909454345708],[85.3917846679688,51.56439590454096],[85.85086059570318,51.887943267822266],[85.78443908691423,52.038372039794865],[86.12054443359375,52.06703186035167],[86.28927612304699,52.02621078491211],[86.43383026123075,52.12608718872082],[86.67334747314476,52.11758804321288],[86.64455413818365,52.51440811157238],[87.002052307129,52.64591598510742],[87.11547851562504,52.59727096557617]]]},"properties":{"ID_0":188,"ISO":"RU-AL","NAME_0":"Russia","ID_1":16,"NAME_1":"Gorno-Altay","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Алтай","VARNAME_1":"Gorno-Altayskaya A.Obl.|Respublika Altay|Oirot|Republic of Altai"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[44.92815780639642,43.535919189453125],[45.197319030761996,43.40940475463873],[45.3108100891115,43.30858993530285],[45.30168533325201,43.18769454956049],[45.18202590942377,43.047199249267635],[45.21262359619152,42.909942626953125],[45.088874816894695,42.695873260498104],[44.878253936767635,42.74692153930664],[44.7982025146486,42.63172149658208],[44.67710876464843,42.74794769287121],[44.91403198242193,42.81735229492199],[44.98039627075207,42.88537597656256],[44.92951583862322,43.04457092285156],[44.66234970092779,43.204257965088004],[44.661403656005916,43.34613418579107],[44.58394241333008,43.39837646484375],[44.597927093505916,43.527099609375114],[44.81823348999051,43.48669052124029],[44.92815780639642,43.535919189453125]]]},"properties":{"ID_0":188,"ISO":"RU-IN","NAME_0":"Russia","ID_1":17,"NAME_1":"Ingush","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Респу́блика Ингуше́тия","VARNAME_1":"Ingouchie|Inguchétia|Inguschetien|Ingushetia|Ingushetiya|Ingush Republic|Ingushskaya Respublika|Respublika Ingushetiya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.0887908935548,58.2240562438966],[118.63647460937499,58.17738723754883],[118.44488525390624,58.22644805908214],[118.29698181152365,58.337387084960994],[117.7854843139653,58.42399978637695],[117.46318817138683,58.329998016357415],[117.57389831542969,58.14407348632806],[117.40738677978516,58.07118988037121],[117.29359436035168,57.84815216064458],[117.12066650390625,57.85252761840814],[117.28559112548841,57.62681198120122],[117.20367431640625,57.530384063720646],[117.32167816162121,57.347053527832024],[117.62229156494173,57.3300018310548],[117.72589111328125,57.26401901245123],[117.5772933959961,57.165882110595646],[117.66378784179709,57.079795837402344],[117.58058166503929,56.89760971069341],[117.40299224853516,56.85409545898449],[117.26209259033226,56.965255737304744],[116.9766845703125,56.7938613891601],[116.4649887084962,56.792110443115234],[116.24888610839857,56.87526321411133],[116.13798522949254,56.83269500732427],[115.7581253051759,56.95084381103509],[116.12218475341797,57.12005615234375],[116.1044845581057,57.23717498779297],[115.80938720703125,57.22856521606451],[115.62718200683604,57.122791290283146],[115.0759277343751,57.11750411987304],[115.0475845336914,56.97802734375006],[114.76548767089844,56.716793060302784],[114.45579528808605,56.67583084106451],[114.15707397460936,56.70145416259771],[113.97988891601585,56.557373046875],[113.56809997558616,56.679946899414176],[113.16329193115268,56.65396118164068],[112.80089569091831,56.74137115478527],[112.59719085693393,56.96062088012706],[112.42478942871092,56.85485076904308],[112.0827865600586,56.94515609741222],[111.79949188232416,56.928192138671875],[111.53359222412121,57.12640380859381],[111.38539123535166,57.054851531982536],[111.30438995361344,56.91511917114258],[111.11918640136736,56.820114135742244],[110.72458648681639,56.87374496459961],[110.55599212646489,56.84374237060552],[110.36640167236334,56.92937088012689],[109.9868927001956,56.969215393066406],[109.85719299316435,56.78435516357422],[109.6817779541015,56.70060729980469],[109.48038482666033,56.72339630126959],[109.08189392089855,56.666835784912166],[108.71398162841791,56.52064132690424],[108.55319213867182,56.33916473388672],[108.82819366455107,56.220275878906364],[108.88919830322271,56.08713912963867],[109.11359405517595,55.99072647094737],[108.87778472900419,55.91461181640624],[108.68378448486332,55.51671218872076],[108.62490081787104,55.46341705322271],[108.65069580078142,55.26443099975597],[108.73458099365229,55.232414245605526],[108.67258453369135,55.06584548950207],[108.67350006103544,54.67839813232433],[108.53610992431646,54.4931526184082],[108.49901580810541,54.023292541503906],[108.09069061279313,53.29413604736328],[107.55110931396501,52.97330474853515],[106.50112915039062,52.59414672851568],[106.06362915039085,52.2733154296875],[105.3636398315432,51.77748870849621],[104.6928176879885,51.54415893554693],[104.61539459228521,51.32914352416997],[104.20409393310563,51.259197235107536],[103.91110229492205,51.138278961181754],[103.79341125488276,51.161197662353516],[103.80848693847673,51.376335144043026],[103.56519317626976,51.45485305786144],[103.33319091796892,51.443725585937614],[103.2037887573245,51.587627410888786],[103.2241821289063,51.69775009155273],[103.12709045410162,51.857528686523494],[102.84979248046903,51.9375228881837],[102.56408691406278,52.228134155273494],[102.12709045410185,52.274780273437436],[102.01759338378912,52.233772277831974],[101.64729309082048,52.40300369262707],[101.6136856079101,52.493385314941406],[101.38328552246088,52.636081695556754],[100.8267822265625,52.85309219360357],[100.76179504394537,52.93276214599621],[100.44689178466803,53.06212997436529],[100.2689895629884,53.410411834716854],[100.10189819335949,53.32376861572277],[99.86454772949224,53.338348388671875],[99.85607147216791,53.23704910278326],[99.55699157714838,53.13608169555664],[99.42826843261736,53.146099090576286],[99.209213256836,52.93704605102545],[98.65788269042986,53.1620330810548],[98.20771026611338,53.10531616210943],[98.1916961669923,53.216613769531364],[97.99438476562506,53.23566818237305],[97.92311096191435,53.36027145385748],[97.51278686523443,53.382141113281364],[97.20844268798857,53.61151504516612],[97.04811096191406,53.61078643798834],[96.81473541259771,53.75337219238281],[96.6574020385745,53.67288589477545],[96.42700195312527,53.70550537109375],[96.23450469970726,53.83367156982422],[95.97604370117193,54.081790924072315],[95.58200073242209,54.24648284912115],[95.69361114501982,54.424602508545036],[95.88717651367209,54.44483566284191],[96.00881195068358,54.57380294799799],[96.36582183837908,54.540847778320426],[96.58145904541021,54.78104782104498],[96.60356903076195,54.934135437011776],[96.52938079834007,55.0153427124024],[96.61862182617193,55.17959213256836],[96.56729125976562,55.26968765258795],[96.81917572021496,55.335166931152344],[96.72574615478533,55.430507659912166],[96.74478912353527,55.6108512878418],[96.67596435546892,55.78876876831065],[96.85897064209007,55.883861541748104],[96.8980560302735,56.021305084228516],[97.06554412841803,56.1075553894043],[97.24575805664068,56.060150146484375],[97.47972869873064,56.215599060058594],[97.46293640136736,56.38546371459961],[97.81568145751959,56.41099548339849],[97.83305358886741,56.55344772338861],[97.6790771484375,56.586856842041016],[97.72278594970709,56.79839324951183],[97.43206787109375,56.808643341064396],[97.54944610595709,56.97365188598632],[97.27159118652355,57.05503845214843],[97.85095214843756,57.8077278137207],[98.69966125488297,57.79028701782232],[98.99233245849632,57.73973083496094],[99.3619537353516,57.80164337158209],[99.42675018310564,57.95764923095708],[99.56242370605473,58.07381057739258],[99.93135833740263,58.090202331543026],[100.05778503417991,57.8380393981933],[100.25708770751974,57.81548690795909],[100.3657836914063,57.63893890380864],[100.34409332275395,57.55021286010736],[100.6624908447265,57.42540740966797],[100.87288665771501,57.50151062011719],[100.71709442138672,57.68139266967784],[100.7143859863283,57.8863182067871],[100.97428894042997,57.87890625000011],[101.14799499511724,58.04628753662109],[101.07718658447283,58.11627578735363],[101.46989440917986,58.24704742431652],[101.61859130859403,58.42313766479497],[102.15978240966814,58.552066802978565],[102.49607849121094,58.75176239013666],[102.47080230712919,58.88842773437505],[102.3208770751956,59.0443496704101],[102.40089416503906,59.167301177978516],[102.75149536132818,59.206871032714844],[102.88977813720707,59.3064460754395],[103.11837768554699,59.29439163208014],[103.28791046142607,59.06786727905285],[103.46849060058616,58.95306777954096],[103.87898254394537,58.89309692382806],[103.90348815917986,58.74250411987299],[104.19309234619163,58.770755767822266],[104.28269958496094,58.6254272460938],[104.61929321289057,58.63664627075189],[104.83798217773442,58.73712158203125],[104.73359680175781,58.87413787841802],[105.0714874267581,59.03755187988287],[105.30099487304705,59.101051330566406],[105.27748870849621,59.23059844970709],[104.83638763427734,59.53829574584961],[104.73638153076183,59.6727752685548],[105.05778503417963,59.857639312744205],[105.4935836791995,59.84915161132819],[105.40668487548827,59.93064117431652],[105.43428039550793,60.26477432250976],[105.08998870849638,60.28499221801758],[104.8090896606447,60.36547088623053],[104.4766845703125,60.60294342041021],[104.57118988037136,60.711750030517635],[104.5557937622072,60.98606491088878],[104.71078491210966,61.10625076293957],[105.01318359375017,61.18880844116216],[104.89459991455084,61.32469558715821],[105.24727630615239,61.414550781250114],[105.57048797607416,61.56637191772461],[105.94728851318382,61.66402435302739],[105.88639068603516,61.792602539062614],[106.3584823608399,62.006202697753956],[106.43609619140624,62.17500686645507],[106.36696624755871,62.23390197753912],[106.74647521972662,62.467819213867294],[106.80757141113293,62.577873229980575],[106.55267333984396,62.611968994140675],[106.52788543701193,62.70965194702149],[106.20367431640653,62.90058517456055],[106.17459106445312,63.02289581298828],[106.39649963378935,63.053401947021534],[106.44538116455071,63.16439056396496],[106.74307250976591,63.323417663574276],[106.52508544921886,63.48440170288086],[106.65098571777338,63.56152725219732],[106.7594757080081,63.792926788330185],[106.6923751831054,63.92959213256836],[107.11349487304716,63.85772705078119],[107.22399139404313,63.917171478271484],[107.52798461914055,63.83859252929693],[107.64058685302734,63.9286613464356],[108.21099090576183,63.95898437500011],[108.41978454589866,64.04077911376964],[108.22488403320341,64.19969940185558],[108.07008361816423,64.2308349609375],[108.32037353515624,64.23208618164074],[108.51888275146501,64.1240463256836],[108.60639953613276,63.99736785888671],[108.83898925781256,63.942726135253956],[108.76528930664057,63.76220703124999],[108.360191345215,63.74987792968756],[108.19779205322271,63.552024841308594],[108.63528442382817,63.54714965820318],[109.0999832153323,63.501834869384815],[109.3056869506836,63.318023681640675],[109.431900024414,63.33555603027344],[109.50339508056669,62.933498382568466],[109.68299102783209,62.77556228637706],[109.51198577880888,62.70124816894543],[109.3219833374024,62.531219482421875],[109.44618988037121,62.37328720092785],[109.88619995117216,62.384899139404354],[109.9992828369141,62.14464569091802],[109.9276885986328,62.01083374023431],[109.73378753662138,61.964775085449276],[109.57048797607445,61.806121826171925],[109.62269592285156,61.69590759277355],[109.85147857666044,61.52491760253906],[109.80968475341803,61.3029441833496],[110.01268768310541,61.266429901123104],[110.26317596435547,61.12279510498046],[110.54428100585932,61.09622192382823],[110.50140380859375,60.95031738281261],[110.26738739013672,60.791835784912166],[110.25808715820335,60.67520141601568],[109.91727447509794,60.46295166015631],[109.65779113769531,60.09603118896495],[109.73029327392584,60.019088745117244],[109.61067962646483,59.85977172851562],[109.41599273681662,59.71179580688488],[109.42248535156256,59.582862854003956],[109.24958801269548,59.4787712097168],[109.19648742675808,59.31725692749023],[109.38699340820335,59.27058410644531],[109.53708648681646,59.133255004882805],[109.84828948974604,58.99227523803716],[110.13488006591803,58.97113800048828],[110.52928924560551,59.07193756103521],[110.66398620605473,59.23534393310552],[111.05188751220703,59.23276901245122],[111.19478607177757,59.18805694580084],[111.36758422851585,59.25527191162121],[111.58386993408209,59.19935989379883],[111.96369171142607,59.28927230834966],[112.23168182373058,59.480144500732415],[112.25617980957031,59.2989120483399],[112.6091766357423,59.30592346191412],[112.60719299316418,59.22062683105469],[112.37979125976562,59.132343292236435],[112.36268615722678,58.94820785522466],[112.53959655761719,58.86918640136725],[112.65889739990257,58.99961471557611],[113.45299530029307,59.246364593505916],[113.42030334472679,59.40068817138671],[113.60099029541014,59.5364227294923],[113.82278442382858,59.59870529174799],[113.95967864990257,59.721977233886825],[114.15539550781273,59.740455627441456],[114.23757934570335,59.858222961425774],[114.54588317871092,59.95115661621093],[114.51919555664074,60.056388854980405],[114.69469451904332,60.18165969848632],[114.8906707763673,60.17819976806646],[115.04588317871094,60.2675514221192],[115.22398376464878,60.47521591186529],[115.40338897705101,60.44536590576177],[115.67437744140646,60.52421188354492],[116.25788879394577,60.381546020507926],[116.4955825805664,60.35449600219732],[116.87740325927778,60.19826126098633],[117.05989074707043,60.01239395141613],[117.27548217773449,60.03850555419922],[117.12969207763695,59.819625854492294],[117.14827728271484,59.53166961669916],[117.27029418945335,59.48458480834966],[117.9225845336915,59.44094848632812],[118.03059387207043,59.598358154296925],[118.23178863525413,59.60691833496099],[118.36619567871094,59.47940444946295],[118.73919677734374,59.41302490234369],[118.8267745971683,59.29489135742193],[118.68948364257814,59.19795608520519],[118.74748229980469,58.91421508789073],[118.81668853759766,58.80208969116216],[118.76448822021496,58.594631195068466],[119.07548522949229,58.48748397827143],[119.0887908935548,58.2240562438966]]]},"properties":{"ID_0":188,"ISO":"RU-IRK","NAME_0":"Russia","ID_1":18,"NAME_1":"Irkutsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Иркутская область","VARNAME_1":"Irkutskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[43.72822952270519,57.44832992553722],[43.78118133544939,57.313419342041065],[43.556827545166016,57.247447967529354],[43.49840164184564,57.11389541625982],[43.68645858764659,57.06120300292974],[43.51523971557617,56.88269805908214],[42.97316741943388,56.83714294433605],[42.8017654418947,56.76897811889643],[42.92481613159208,56.62143707275385],[42.91299819946317,56.472671508789006],[42.620475769043026,56.40495300292963],[42.2815208435058,56.45626831054681],[42.05952072143571,56.339920043945256],[41.9337806701663,56.36871337890619],[41.90042114257818,56.49721145629883],[41.60852432250999,56.44999694824219],[40.849788665771534,56.5037574768067],[40.723091125488565,56.59519195556646],[40.31420135498064,56.50989913940441],[40.22425842285178,56.40853500366211],[40.00674438476579,56.46383285522461],[39.885383605957315,56.765003204345696],[39.70699310302757,56.80736541748058],[39.43826293945318,56.76061248779302],[39.64764404296881,57.05530929565429],[40.08861160278349,57.21368789672857],[40.49948120117193,57.2833251953125],[41.15713500976568,57.383441925048885],[41.60894775390625,57.468681335449155],[41.65153121948259,57.59570312499994],[41.81151580810547,57.692836761474716],[42.13410568237322,57.56983184814453],[42.68343353271513,57.63517379760748],[42.80692291259783,57.57382583618175],[42.88154983520519,57.39172363281256],[43.47077560424822,57.54584121704096],[43.72822952270519,57.44832992553722]]]},"properties":{"ID_0":188,"ISO":"RU-IVA","NAME_0":"Russia","ID_1":19,"NAME_1":"Ivanovo","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Ивановская область","VARNAME_1":"Ivanovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[44.42427062988309,43.7303581237793],[44.522731781005916,43.59682464599615],[44.522533416748104,43.36967849731445],[44.217716217041016,43.34904098510753],[44.16654205322271,43.201122283935604],[43.93302917480486,43.26514053344721],[43.8518829345706,43.130386352539006],[43.62340545654325,42.91222381591797],[43.417610168457145,42.89511108398443],[43.192070007324276,42.934432983398494],[42.89274215698265,43.17011642456065],[42.5501785278322,43.18489837646495],[42.52280807495134,43.35943984985357],[42.58576202392583,43.53892517089855],[42.852779388427905,43.66554260253917],[42.879692077636776,43.74985122680664],[43.418952941894645,43.8531761169433],[43.4763679504395,43.74176025390631],[43.673252105713175,43.78469848632818],[43.8842391967774,43.739944458007926],[44.073207855224666,43.92408370971691],[44.40965652465843,43.843856811523494],[44.42427062988309,43.7303581237793]]]},"properties":{"ID_0":188,"ISO":"RU-KB","NAME_0":"Russia","ID_1":20,"NAME_1":"Kabardin-Balkar","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Кабардино-Балкарская Респу","VARNAME_1":"Kabardin A.S.S.R.|Kabardino-Balkarskaya A.S.S.R.|Kabardino-Balkariya|Kabardino-Balkarsk|Kabard|Kabardino-Balkarskaya Republic"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[21.388671875000114,55.29071044921875],[21.45550537109375,55.21972656249994],[22.036766052246378,55.04721832275396],[22.478673934936637,55.04959487915045],[22.857051849365348,54.901466369628956],[22.88785362243652,54.78821563720709],[22.739583969116325,54.72333145141596],[22.696071624755973,54.601581573486385],[22.752365112304744,54.359527587890625],[21.471471786499023,54.32069396972662],[20.540498733520792,54.37180709838861],[19.793050765991268,54.436168670654354],[20.259166717529354,54.618473052978516],[20.11027717590332,54.6540260314942],[19.96588134765625,54.79624938964855],[19.97808837890625,54.9613037109375],[20.738056182861328,54.9331932067871],[21.084722518920955,54.89236068725586],[21.216943740844727,54.92458343505865],[21.17861175537115,55.19652938842785],[21.388671875000114,55.29071044921875]]]},"properties":{"ID_0":188,"ISO":"RU-KGD","NAME_0":"Russia","ID_1":21,"NAME_1":"Kaliningrad","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Калининградская область","VARNAME_1":"Kaliningradskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.33113098144531,48.13076019287115],[45.58000564575218,47.997398376464844],[45.76618957519548,47.999923706054744],[45.74114608764654,47.8851776123048],[45.88682937622087,47.71611404418957],[46.198188781738445,47.49292373657238],[46.382671356201456,47.411556243896484],[46.53321456909197,47.40501785278332],[46.58585357666021,47.305824279785156],[46.864311218261946,46.988971710205135],[47.01286315917974,46.86839294433605],[47.121829986572436,46.860137939453175],[47.26275253295892,46.72237014770519],[47.18793869018583,46.61122894287114],[47.05541610717768,46.58510971069336],[46.98734283447288,46.41539764404308],[46.7930717468264,46.407630920410156],[46.605720520019815,46.28306961059576],[46.90380859375006,46.177925109863395],[46.98451614379882,46.05420303344738],[47.23189926147461,46.094192504882926],[46.97037124633806,45.62693405151373],[47.19580841064476,45.56624603271496],[47.37369537353533,45.61444854736333],[47.59436416625982,45.44005584716797],[47.51293563842801,45.10276031494152],[47.11584091186551,44.78835296630865],[46.89686965942411,44.83456802368163],[46.7495231628418,44.79224395751964],[46.55226898193382,44.85092926025396],[46.38546371459966,44.951122283935604],[45.82844543457036,45.01570129394537],[45.7094612121582,44.98960113525396],[45.45902633666992,45.18701171875006],[44.94964599609392,45.353240966796875],[44.902450561523715,45.40328598022461],[44.511672973632926,45.46749877929687],[44.376140594482706,45.52777099609375],[44.15728378295904,45.72904205322271],[44.047424316406364,45.876682281494084],[43.72995758056646,45.96230316162115],[43.493743896484546,45.97897720336913],[43.36589431762695,46.066642761230526],[42.899993896484546,46.20640563964844],[42.81304550170927,46.09181213378911],[42.56415557861328,45.99406814575201],[42.32843399047846,45.97244644165038],[42.34757232666044,46.117866516113224],[42.18614959716802,46.09731674194347],[42.184879302978516,45.946632385253906],[41.72266006469721,46.010082244873104],[41.66335296630882,46.15437316894537],[41.783275604248324,46.21192932128906],[41.98351287841813,46.221466064453125],[41.971462249755916,46.31305313110363],[42.238018035888786,46.36042785644542],[42.09851455688499,46.57544326782232],[42.45161819458036,46.47282791137701],[42.74751663208025,46.342739105224666],[42.94000625610357,46.39889144897472],[43.096824645996264,46.340915679931754],[43.34342575073247,46.17803573608393],[43.575691223144815,46.14254379272472],[43.85728836059593,46.35525894165039],[43.960010528564624,46.54926681518555],[43.8437042236331,46.57817077636719],[44.109107971191406,46.826839447021534],[44.28370285034197,46.89566040039073],[44.383224487304744,47.34505462646478],[44.37316131591825,47.44343185424805],[44.03566741943359,47.41090774536144],[43.824653625488224,47.30933380126964],[43.731311798095874,47.46975326538086],[43.71966552734398,47.63501739501953],[43.85755920410162,47.74082183837885],[44.05761718750006,47.80458068847656],[44.157932281494425,47.9174537658692],[44.40241241455095,47.869865417480526],[44.54751968383795,48.00454330444336],[44.3487663269043,48.071819305420036],[44.40397644042969,48.189575195312614],[44.635627746582315,48.17599868774414],[44.60692214965849,48.075504302978516],[44.98141098022478,48.0832252502442],[45.059612274170085,48.167221069335994],[45.33113098144531,48.13076019287115]]]},"properties":{"ID_0":188,"ISO":"RU-KL","NAME_0":"Russia","ID_1":22,"NAME_1":"Kalmyk","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Калмыкия","VARNAME_1":"Kalmykiya|Khalmg Tangch|Republic of Kalmykia|Kalmytskaya A.S.S.R.|Respublika Kalmykiya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.23786544799833,54.82754898071289],[37.18505477905302,54.6140403747558],[37.0100402832034,54.5870513916015],[36.84381866455078,54.4885520935058],[36.97293472290067,54.4212303161621],[36.94339752197271,54.31204605102545],[36.50695419311529,54.271457672119254],[36.21937942504894,54.17079544067382],[36.24413681030302,54.0797691345216],[35.984798431396655,53.90098190307623],[35.927242279052734,53.75899887084961],[35.99767684936546,53.638332366943416],[35.80834960937506,53.52405166625976],[35.59941864013689,53.52227401733409],[35.53010940551774,53.419132232666016],[35.12622451782232,53.28488540649414],[34.531337738037394,53.442100524902344],[34.509521484375284,53.683013916015625],[34.22988128662138,53.869621276855526],[33.95208740234375,53.85181808471691],[33.83618927001959,53.972007751464844],[33.54387283325217,54.007575988769645],[33.749347686767855,54.310287475586044],[33.65891265869158,54.3496932983399],[33.70205307006847,54.49966812133789],[34.017467498779524,54.55827713012701],[34.26461791992216,54.48426437377935],[34.49197006225586,54.49597930908208],[34.55910491943387,54.61239242553711],[34.979309082031364,54.77207565307623],[34.955974578857585,54.92178344726574],[35.17611694335966,54.97915649414074],[35.38077926635742,55.16138076782232],[35.37735366821289,55.22885131835949],[35.58991241455095,55.204761505126896],[35.77828598022461,55.26192855834972],[36.33795166015641,55.15635681152355],[36.45362472534197,55.28030776977539],[36.64088439941406,55.22678756713873],[36.97644424438493,55.21963500976568],[37.15329360961913,55.07462310791015],[37.23786544799833,54.82754898071289]]]},"properties":{"ID_0":188,"ISO":"RU-KLU","NAME_0":"Russia","ID_1":23,"NAME_1":"Kaluga","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Калужская область","VARNAME_1":"Kaluzhskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[165.9825897216797,55.36279296875],[166.24221801757835,55.26555633544922],[166.288330078125,55.11916732788086],[166.4438934326173,54.963054656982536],[166.6438903808595,54.86500167846691],[166.56721496582043,54.75],[166.17564392089855,54.96189880371094],[166.08370971679696,55.12419509887701],[165.9166717529298,55.253334045410156],[165.9825897216797,55.36279296875]]],[[[164.5908355712893,59.23646545410156],[164.7355499267578,59.03055572509776],[164.64071655273472,58.8710289001466],[164.187225341797,58.81472396850591],[163.57559204101574,58.58090591430675],[163.92494201660153,59.02421188354486],[164.35255432128906,59.12885284423828],[164.5908355712893,59.23646545410156]]],[[[174.42063903808594,61.82291793823242],[174.39999389648446,61.82090377807623],[174.38185119628918,61.81874847412121],[174.39166259765625,61.82500076293945],[174.42063903808594,61.82291793823242]]],[[[173.45625305175793,61.529167175293026],[173.18072509765625,61.397396087646484],[172.89375305175793,61.47083282470714],[172.7526092529298,61.418228149414006],[172.9661407470703,61.28385162353521],[172.51301574707054,61.17343521118163],[172.40625,61.00833511352545],[172.27343750000023,61.00468826293945],[172.10156250000023,60.872398376464844],[171.7312469482423,60.83958435058594],[171.34791564941406,60.610416412353516],[170.65051269531295,60.413021087646484],[170.68907165527355,60.316143035888736],[170.5124969482422,60.24583435058593],[170.43069458007812,59.96947097778332],[170.2910919189453,59.92761993408214],[169.9401092529297,60.09218978881835],[169.7796783447269,60.26718521118175],[169.74948120117233,60.38697814941407],[169.43333435058594,60.489582061767685],[169.38906860351562,60.574478149414055],[169.12083435058605,60.55208206176763],[168.55000305175793,60.59583282470703],[168.19792175293003,60.577083587646534],[166.9859313964845,60.299480438232365],[166.72239685058628,60.08593749999994],[166.417236328125,59.92462158203125],[166.29055786132824,59.8125],[166.1038818359375,59.80027770996093],[166.20884704589866,60.130725860595696],[166.31407165527344,60.19427108764654],[166.2749938964846,60.47291564941418],[166.01458740234375,60.422916412353516],[165.78282165527352,60.26927185058594],[165.16615295410156,60.07551956176769],[165.2341156005859,59.998237609863274],[165.1060791015626,59.86392211914056],[164.85688781738304,59.78121948242187],[164.77944946289085,59.93000030517584],[164.49322509765634,60.09739303588873],[164.17889404296886,59.95888900756837],[163.873748779297,60.00363922119146],[163.69432067871094,59.87061309814447],[163.47747802734372,59.860820770263665],[163.3913879394532,59.77751922607416],[163.4107360839846,59.616432189941456],[163.21000671386753,59.56972122192377],[163.34869384765625,59.3014373779298],[163.0772247314453,59.25388717651368],[162.904998779297,59.11055374145513],[162.93167114257824,58.973888397216804],[162.45166015625,58.690277099609425],[162.1349945068359,58.37333297729498],[161.97866821289062,58.01039505004888],[162.13650512695324,57.84344100952148],[162.53204345703148,57.752727508545036],[162.4975280761721,57.87024307250987],[162.712158203125,57.942386627197266],[163.046112060547,57.820835113525504],[163.2050018310548,57.81916809082036],[163.30332946777344,57.71861267089844],[163.0961151123048,57.48333358764648],[162.7820739746096,57.34877777099609],[162.77687072753906,57.18935012817377],[162.85293579101574,57.03883361816406],[162.77667236328122,56.774444580078125],[162.9127044677734,56.69088745117187],[163.23460388183605,56.73920440673834],[163.24984741210946,56.43655395507818],[163.35365295410156,56.326015472412166],[163.361541748047,56.18438720703131],[163.17883300781273,56.13409423828136],[163.04617309570347,56.008056640625],[162.8091735839845,56.06713104248058],[162.62704467773457,56.228275299072266],[162.90029907226562,56.42485046386719],[162.73092651367185,56.483348846435604],[162.43624877929688,56.38809585571289],[162.60261535644554,56.26225662231445],[162.20610046386764,56.146774291992244],[161.93495178222688,55.846618652343864],[161.75556945800804,55.56803512573248],[161.78244018554696,55.216522216796875],[161.87702941894554,55.06887817382812],[162.1544494628906,54.85277938842779],[162.12995910644543,54.758049011230526],[161.7158050537109,54.50529861450207],[161.29167175292991,54.48527908325207],[161.19767761230491,54.58391952514643],[160.98497009277366,54.58810043334955],[160.5861053466797,54.46861267089837],[159.97790527343759,54.12537384033209],[159.8780975341797,53.907669067382756],[159.84832763671875,53.67028427124035],[159.9561309814453,53.57298278808594],[159.84661865234375,53.40095901489269],[160.03944396972656,53.21416854858404],[160.0238952636721,53.095001220703125],[159.66601562499997,53.24697875976562],[159.47666931152366,53.22805404663091],[159.08721923828136,53.106666564941456],[158.70556640625009,52.884422302246094],[158.5677947998048,53.06325149536133],[158.4161376953125,52.92612457275402],[158.64080810546875,52.842952728271484],[158.48573303222656,52.738945007324276],[158.4813690185547,52.44618988037115],[158.5711975097656,52.38497161865246],[158.29962158203136,52.098594665527344],[158.2738952636721,51.96138763427746],[158.03500366210938,51.78944396972661],[157.90388488769554,51.64166641235351],[157.6177978515626,51.52672958374029],[157.23435974121116,51.20899963378906],[156.87722778320324,51.02222061157232],[156.5477752685548,51.28499984741211],[156.4911041259768,51.48777770996105],[156.50271606445324,51.76833343505871],[156.46597290039062,52.13974761962885],[156.3437957763672,52.468387603759815],[156.14137268066418,52.862350463867244],[156.05433654785202,53.36672210693371],[155.90167236328125,53.981109619140625],[155.69000244140648,54.599166870117244],[155.5572204589846,55.197223663330135],[155.57110595703125,55.461112976074276],[155.65051269531259,55.96693038940423],[155.7357635498048,56.11040115356445],[155.94778442382844,56.61111068725586],[156.08833312988293,56.78972244262707],[156.42277526855491,56.92583465576183],[156.58111572265648,57.08666610717779],[156.68777465820324,57.05749893188488],[157.00054931640648,57.43347549438487],[156.84666442871105,57.794998168945426],[157.35797119140636,57.772163391113274],[157.52610778808605,57.82138824462891],[157.6736297607423,58.01255416870111],[157.9022216796876,57.9775009155274],[158.3219451904298,58.07051849365234],[158.6658782958989,58.26206588745118],[159.0248413085942,58.40304946899413],[159.7305603027348,58.86611175537114],[159.72444152832054,58.98805618286139],[159.86495971679688,59.132198333740234],[160.41278076171886,59.39749908447271],[160.4877777099614,59.54861068725585],[160.85340881347702,59.60929870605463],[161.26878356933616,59.84865570068371],[161.47500610351585,60.03125],[161.83489990234384,60.15468978881847],[161.90260314941418,60.325519561767635],[162.20416259765636,60.52708435058605],[162.7703094482423,60.63177108764648],[162.89218139648483,60.74739837646496],[163.4005126953125,60.81198120117193],[163.679168701172,60.88124847412115],[163.5520782470704,60.97916793823247],[163.6171875,61.10885620117182],[163.92031860351562,61.213024139404354],[164.030731201172,61.342189788818466],[163.7526092529297,61.46823120117187],[163.87342834472656,61.64947891235363],[164.0182342529298,61.66197586059576],[164.15676879882824,62.27447891235362],[164.73541259765648,62.45624923706065],[164.96249389648438,62.40416717529296],[165.1812438964845,62.46041488647466],[164.7213592529297,62.57344055175787],[164.61198425292991,62.680728912353565],[164.05000305175815,62.65208435058588],[163.25051879882835,62.514064788818466],[163.2317657470703,62.31198120117199],[163.10000610351562,62.2125015258789],[163.13906860351562,62.01094055175786],[162.99842834472668,61.78176879882807],[163.34323120117196,61.70260620117182],[162.97969055175793,61.53385162353515],[162.8479156494143,61.70833206176763],[162.4467773437501,61.666667938232365],[162.4502868652345,61.754013061523494],[162.28388977050793,61.88418579101556],[162.548583984375,61.97920608520514],[162.2705688476567,62.071186065673935],[162.22207641601585,62.14491271972667],[162.7540893554692,62.261215209960994],[162.80090332031247,62.438495635986385],[162.6827850341797,62.54821014404297],[162.82980346679733,62.64506912231452],[162.4432067871095,62.843231201171875],[162.29759216308594,62.86023330688487],[162.35816955566418,63.053524017333984],[162.61038208007812,63.08627319335938],[162.82566833496102,63.17364883422846],[162.7477722167971,63.36769485473633],[163.0708923339848,63.499443054199276],[163.06048583984375,63.57740402221691],[162.78858947753926,63.7246704101563],[162.97048950195312,63.8617935180664],[162.84187316894543,64.07023620605469],[162.9873809814453,64.15705108642578],[163.51039123535168,64.33881378173828],[163.24119567871116,64.54193115234375],[163.23428344726562,64.66918182373047],[163.53219604492188,64.9113235473634],[163.79478454589852,64.85228729248047],[164.1885681152345,64.88880920410166],[164.53738403320312,64.78979492187511],[164.90689086914085,64.75443267822266],[165.11187744140625,64.81286621093754],[165.28489685058614,64.7231826782227],[165.6528778076176,64.71417999267577],[165.77137756347668,64.58966827392584],[166.3092651367191,64.55143737792962],[166.4732666015626,64.4714813232423],[166.92356872558605,64.5131607055664],[167.09548950195312,64.5874481201173],[167.24938964843784,64.46813201904297],[167.5120849609375,64.38391876220714],[167.52578735351562,64.28662109375006],[167.84390258789074,64.23053741455084],[168.34239196777355,64.29093170166016],[168.4447021484376,64.16743469238293],[168.64190673828125,64.14803314208979],[168.7185821533203,63.975624084472656],[168.86268615722653,63.900096893310604],[169.19998168945324,63.86784362792964],[169.44708251953122,63.580848693847656],[168.68098449707077,63.247974395752],[168.55976867675778,63.114292144775504],[168.29310607910156,63.00706100463873],[168.7969055175782,62.85811233520513],[168.95277404785202,62.875350952148494],[169.4206848144532,62.71690368652355],[169.53900146484375,62.62110519409173],[169.82418823242207,62.58061218261718],[170.02957153320312,62.220630645752],[170.22097778320358,62.25038528442388],[170.60829162597656,62.17295837402337],[170.9011688232423,62.2173118591308],[171.03347778320332,62.30651473999029],[171.23089599609398,62.232379913330014],[171.93939208984375,62.41199493408203],[172.1083831787109,62.34674072265624],[172.46588134765634,62.39173507690435],[172.76919555664108,62.31050109863281],[173.07987976074241,62.406597137451236],[173.67327880859386,62.499732971191406],[174.0422821044922,62.40491867065436],[174.09197998046886,62.32941055297862],[174.0505828857423,62.08871078491222],[174.2377777099609,62.07927703857433],[174.3608856201173,61.96419143676769],[174.4244842529297,61.8234977722168],[174.41250610351585,61.84791564941417],[174.3671875000001,61.83906555175787],[174.35833740234398,61.81874847412121],[174.3041687011721,61.802082061767514],[174.09375,61.82916641235346],[173.9937438964845,61.697917938232536],[173.81614685058605,61.67239761352539],[173.48802185058616,61.72656250000006],[173.45625305175793,61.529167175293026]]]]},"properties":{"ID_0":188,"ISO":"RU-KAM","NAME_0":"Russia","ID_1":24,"NAME_1":"Kamchatka","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Камчатская край","VARNAME_1":"Kamçatka|Kamchatskaya Kray"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.879692077636776,43.74985122680664],[42.852779388427905,43.66554260253917],[42.58576202392583,43.53892517089855],[42.52280807495134,43.35943984985357],[42.5501785278322,43.18489837646495],[42.42613220214872,43.25395965576183],[42.03869628906256,43.196899414062614],[41.5824890136721,43.23538208007818],[41.42025756835931,43.353103637695426],[41.331726074219034,43.3341064453125],[40.94899368286161,43.42214584350585],[40.716171264648665,43.53089141845714],[40.72377014160162,43.73083114624029],[40.81906509399437,43.911350250244084],[40.95235061645508,43.976524353027344],[41.021636962890796,44.117282867431754],[41.37881851196289,44.04711532592785],[41.555599212646655,43.946731567382756],[41.724147796631144,44.055446624755916],[41.81263732910173,44.24794387817394],[41.69935226440458,44.349838256835994],[41.86980056762701,44.44123840332036],[42.03064346313504,44.46559906005865],[42.1906051635745,44.322475433349666],[42.45710754394548,44.30070877075201],[42.61590576171881,44.144016265869254],[42.45737075805658,44.04720306396496],[42.57834243774431,43.914531707763786],[42.7333412170413,43.96999359130854],[42.879692077636776,43.74985122680664]]]},"properties":{"ID_0":188,"ISO":"RU-KC","NAME_0":"Russia","ID_1":25,"NAME_1":"Karachay-Cherkess","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Карачаево-Черкессия Респуб","VARNAME_1":"Karaçay-Çerkes|Karachay-Cherkessiya|Karachayevo-Cherkesskaya Respublika|Karachayevo-Cherkessiya|Karachayevo-Cherkess Republic|K"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.82707977294916,66.58953094482428],[32.83206939697283,66.58930969238303],[33.1395835876466,66.55000305175781],[33.47499847412104,66.44791412353533],[33.94374847412132,66.22291564941412],[34.10416793823259,66.22916412353516],[34.53489303588873,66.0703125],[34.829685211181754,65.88593292236334],[34.76406478881847,65.5255203247072],[34.43125152587896,65.37916564941418],[34.789585113525675,65.07499694824213],[34.784893035888835,64.98176574707031],[34.950519561767635,64.83073425292969],[34.829685211181754,64.69426727294933],[34.9953155517581,64.61510467529308],[34.78749847412109,64.535415649414],[35.14843750000006,64.3526000976563],[35.431251525878956,64.28958129882812],[35.61510086059599,64.37968444824224],[36.211978912353686,64.1432342529298],[36.25260162353521,64.00676727294928],[36.60692596435547,63.94583511352544],[36.66337966918974,63.78011322021484],[36.408535003662166,63.61830902099621],[35.968528747558594,63.629680633545036],[36.25407791137724,63.45004653930664],[36.46160888671881,63.24965667724604],[36.32391357421881,63.13858413696289],[36.35142135620134,63.02538299560546],[36.65991210937517,62.82378768920905],[37.10525512695307,62.69918060302746],[37.38840484619146,62.7218971252442],[37.60175704956077,62.62226104736334],[37.61561965942383,62.451484680175774],[37.477806091308764,62.294448852539176],[37.70195388793957,62.2538070678712],[37.949947357177905,62.01363754272461],[37.798164367676065,61.69045257568359],[37.788364410400504,61.55044174194341],[37.39406585693376,61.523868560791016],[37.073902130127124,61.63053894042969],[36.883815765380916,61.5478973388673],[36.625110626220874,61.560272216796996],[36.46399307250982,61.414272308349716],[35.67248916625982,61.2005271911621],[35.488349914551065,61.16920852661144],[34.760131835937784,61.346153259277344],[34.50651168823265,61.24718093872082],[33.774394989013835,61.27626800537121],[33.47145843505865,61.19637298583996],[33.65436935424816,61.098407745361435],[33.90227508544939,61.10258483886719],[33.75271606445307,60.94764709472667],[33.44225692749052,61.01191711425792],[33.15790557861333,60.834022521972656],[32.78500366210943,60.646476745605575],[32.63402557373075,60.65151214599609],[30.56567192077631,61.0440444946289],[29.63990211486845,61.188323974609425],[29.3215980529788,61.33584976196295],[29.74727439880388,61.572395324707024],[29.867900848388786,61.6846389770509],[31.22984313964855,62.50706100463867],[31.576831817627006,62.91416168212885],[31.25856018066412,63.135631561279354],[31.219272613525334,63.23161697387707],[30.76457023620634,63.409950256347656],[30.505151748657397,63.46186447143549],[29.980951309204382,63.7544784545899],[30.23981857299833,63.818267822265625],[30.526166915893835,64.04908752441406],[30.484960556030554,64.25491333007818],[30.05300903320324,64.40425109863281],[30.021638870239425,64.59301757812494],[30.142986297607592,64.65275573730469],[30.045656204223803,64.79216766357422],[29.750923156738452,64.7896194458009],[29.642059326171875,64.87545013427746],[29.62568855285644,65.05992126464838],[29.826911926269588,65.13829803466807],[29.657688140869425,65.22774505615246],[29.76857948303228,65.33409881591803],[29.73441314697288,65.62790679931652],[30.127777099609485,65.7349090576173],[29.91757392883323,66.12783050537121],[29.669851303100582,66.29195404052757],[29.414360046386943,66.5865631103515],[30.67318725585943,66.64738464355479],[31.356845855712887,66.65115356445318],[31.576398849487475,66.62628936767578],[31.84942436218284,66.38124084472662],[32.28549575805681,66.37529754638672],[32.57421875,66.6021118164063],[32.82707977294916,66.58953094482428]]]},"properties":{"ID_0":188,"ISO":"RU-KR","NAME_0":"Russia","ID_1":26,"NAME_1":"Karelia","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Карелия","VARNAME_1":"Karelian A.S.S.R.|Karelo-Finnish A.S.S.R.|Karel'skaya A.S.S.R.|Olonets|Olonetskaya G.|Kareliya|Republic of Karelia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[88.63609313964838,55.424762725830135],[88.47492980957048,55.32056427001959],[88.54938507080082,55.00392913818364],[88.76470947265625,54.830486297607536],[88.56365203857438,54.6055145263673],[88.59268188476568,54.284729003906364],[88.85182952880876,54.39815139770508],[88.96807861328148,54.29299545288097],[89.16335296630865,54.31891250610357],[89.20265960693365,54.17336654663091],[89.06389617919933,54.07958221435547],[89.22389221191435,53.77229309082031],[89.0293655395509,53.74450683593756],[88.812515258789,53.54714584350586],[88.8758850097658,53.36524963378906],[89.04720306396489,53.14149093627935],[88.91085052490257,53.03250122070318],[89.1927337646485,52.844070434570426],[89.0165557861331,52.65746688842784],[89.073257446289,52.576503753662166],[88.9203186035158,52.45994186401367],[88.71832275390642,52.38965988159191],[88.70009613037132,52.27518081665045],[88.42230987548845,52.18346405029297],[88.39932250976568,52.416522979736385],[88.16598510742188,52.41110229492199],[87.91730499267582,52.54662704467785],[87.63422393798828,52.42935180664068],[87.32029724121098,52.50825500488281],[87.11547851562504,52.59727096557617],[86.98973846435553,52.69161605834972],[86.94689941406278,52.85101318359374],[87.0079727172851,53.006771087646484],[86.69823455810564,53.16136169433593],[86.90414428710943,53.469635009765675],[86.51421356201172,53.49926376342773],[86.35601806640653,53.63528823852545],[86.27109527587896,53.79481506347656],[86.10982513427751,53.96074676513671],[85.81012725830107,54.06702423095709],[85.51696014404325,54.210613250732536],[85.39015197753918,54.19636535644537],[85.19017791748053,54.396636962890675],[85.08579254150408,54.40634155273443],[84.97405242919926,54.56602096557617],[84.95416259765642,54.74328613281249],[85.07901000976568,54.80011367797857],[84.87792968750006,54.985649108886825],[84.93022155761741,55.109279632568416],[84.819107055664,55.52210617065441],[84.65991210937506,55.64578247070324],[84.45922088623064,56.020111083984375],[84.7416458129884,56.12246322631841],[84.95735931396513,56.127262115478565],[85.25888824462919,56.19990539550775],[85.52743530273466,56.209197998046925],[85.88780212402361,56.43204879760747],[86.15843200683605,56.50875854492187],[86.19337463378923,56.615814208984425],[86.42799377441423,56.55036926269537],[86.60897827148455,56.614051818847656],[86.81172180175797,56.53054809570318],[87.14412689209013,56.56436920166027],[87.17589569091803,56.64091110229498],[87.57796478271489,56.644756317138786],[87.62561035156267,56.52936172485363],[88.61354064941435,56.87193679809582],[88.67256164550798,56.6429557800293],[88.61518859863287,56.50189971923828],[88.71897888183616,56.35764694213873],[88.93104553222662,56.29353332519542],[89.22174835205101,56.127666473388786],[89.247367858887,56.015018463134766],[89.42308807373064,55.78010940551763],[89.1933212280274,55.68408966064458],[88.96105194091825,55.653461456298885],[88.63609313964838,55.424762725830135]]]},"properties":{"ID_0":188,"ISO":"RU-KEM","NAME_0":"Russia","ID_1":27,"NAME_1":"Kemerovo","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Кемеровская область","VARNAME_1":"Kemerovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[137.17056274414062,55.11861038208008],[137.0631103515626,54.91636657714849],[136.68212890625023,54.95003509521479],[137.01423645019577,55.10614776611334],[137.17056274414062,55.11861038208008]]],[[[137.6446228027345,55.18729782104498],[137.96751403808616,55.07106018066412],[138.21623229980491,55.03453826904296],[137.99740600585938,54.92007827758794],[138.00666809082043,54.7963905334472],[137.6661529541018,54.64233779907226],[137.4899444580079,54.86196136474609],[137.30467224121116,54.90751266479497],[137.6446228027345,55.18729782104498]]],[[[144.7891845703125,62.04123306274425],[145.03810119628918,62.05521011352539],[145.49168395996105,61.91955566406255],[145.8313903808595,62.00483703613287],[146.2452850341798,61.90600967407238],[146.6898651123048,61.57832717895519],[146.67080688476574,61.46073532104492],[146.85098266601585,61.17520523071289],[146.73918151855491,60.93827819824224],[146.53398132324241,60.898174285888786],[146.53338623046886,60.663650512695426],[146.22708129882835,60.74336242675792],[145.72608947753918,60.558345794677734],[145.59918212890648,60.443355560302734],[145.7098846435548,60.29384613037103],[145.93698120117207,60.18375015258789],[146.47117614746094,60.226314544677784],[146.57278442382844,60.11857223510748],[146.77308654785156,60.095939636230526],[146.74647521972702,59.991527557373104],[147.0269775390625,59.95043563842768],[147.2309875488282,59.86794662475592],[147.2790985107422,59.644779205322315],[147.19609069824227,59.416091918945256],[146.96276855468795,59.36966323852539],[146.44326782226574,59.46239471435559],[146.30999755859375,59.40077590942383],[146.30281066894554,59.27564239501958],[146.05004882812523,59.1417694091798],[145.82908630371105,59.24185562133783],[145.94766235351585,59.34790802001959],[145.57676696777375,59.42057418823236],[145.21592712402344,59.41049957275401],[144.9853515625,59.366943359375],[144.41180419921875,59.36914825439464],[144.02499389648435,59.40166854858409],[143.75207519531273,59.384304046630966],[143.48194885253903,59.31836700439459],[143.21083068847668,59.355484008789055],[142.42222595214844,59.18805694580084],[141.96166992187523,58.94499969482422],[141.6816558837893,58.68157958984375],[141.31611633300793,58.50611114501953],[141.0399932861328,58.44222259521484],[140.77290344238293,58.30030822753906],[140.5529785156251,58.002971649170036],[140.4903106689453,57.8421630859375],[140.29888916015634,57.758609771728565],[139.99278259277355,57.6972236633302],[139.7907562255864,57.48385238647455],[139.61111450195312,57.46361160278332],[139.4138946533203,57.30027770996093],[139.1872253417971,57.272220611572315],[138.94166564941418,57.14527893066412],[138.90365600585983,57.03046035766596],[138.61000061035156,56.95444488525402],[138.56500244140625,56.85194396972662],[138.30166625976582,56.703609466552734],[138.10934448242188,56.531635284423885],[138.0450134277345,56.379520416259766],[137.91744995117188,56.364879608154354],[137.71716308593784,56.13327026367193],[137.5875854492192,56.11647796630865],[136.800003051758,55.69499969482433],[136.4199981689453,55.56750106811535],[136.13389587402344,55.288333892822266],[135.6989746093751,55.11390304565435],[135.5206756591797,55.08238601684576],[135.2324676513672,54.91275405883789],[135.26055908203148,54.737220764160156],[135.94389343261753,54.566112518310604],[136.19447326660168,54.611709594726555],[136.51374816894577,54.587238311767635],[136.81460571289097,54.63405990600597],[136.87644958496094,54.57514572143549],[136.75848388671875,54.42689132690441],[136.8079833984375,54.23505783081049],[136.7835845947268,54.06275177001953],[136.6941375732423,54.00851440429698],[136.71372985839844,53.791427612304744],[137.195556640625,53.848056793212834],[137.1160583496096,54.16641235351568],[137.41871643066406,54.29878616333008],[137.6288299560548,54.240562438964844],[137.51959228515625,54.14207458496088],[137.33343505859375,54.12650299072265],[137.6677703857422,53.87055587768549],[137.49833679199227,53.67194366455078],[137.32888793945332,53.658332824707145],[137.31500244140648,53.532501220703125],[137.95111083984398,53.58111190795904],[138.30389404296875,53.73249816894537],[138.36889648437534,53.90027618408203],[138.5827789306643,53.9941673278808],[138.56944274902355,53.801666259765625],[138.41221618652344,53.690834045410156],[138.54556274414062,53.57694625854498],[138.6612548828125,53.70897293090832],[138.7694091796876,53.98076248168957],[138.7273864746096,54.30678558349615],[139.167205810547,54.187648773193416],[139.31861877441406,54.17698669433588],[139.7842254638674,54.291496276855526],[139.7911071777346,54.202499389648544],[140.1999969482422,54.054244995117244],[140.32888793945347,53.95583343505865],[140.25332641601574,53.87361145019537],[140.55055236816406,53.64444351196295],[140.94265747070324,53.497028350830135],[140.91444396972688,53.425556182861435],[141.19277954101562,53.31666564941412],[141.41722106933628,53.29555511474621],[141.44332885742196,53.165000915527344],[141.14683532714866,52.9913215637207],[140.9602050781251,52.93447494506836],[141.20069885253906,52.842956542968864],[141.26568603515648,52.589321136474666],[141.1167755126953,52.41049194335943],[141.2570953369143,52.29427337646484],[141.51451110839844,52.160449981689446],[141.3492889404298,52.09953689575207],[141.4218750000002,51.9531974792481],[141.16944885253918,51.828334808349716],[141.11666870117188,51.69027709960943],[140.96389770507812,51.66584014892583],[140.89935302734386,51.52378463745117],[140.77667236328136,51.46749877929693],[140.81648254394554,51.34603881835949],[140.67132568359395,51.32689285278332],[140.67764282226585,51.032936096191406],[140.49833679199241,50.867778778076286],[140.41722106933594,50.55472183227545],[140.49888610839844,50.3683319091798],[140.50270080566406,50.16624450683594],[140.66004943847656,50.06153488159191],[140.48480224609386,49.99616241455084],[140.3986816406251,49.87609100341808],[140.5249786376953,49.78890228271496],[140.5473175048828,49.564929962158196],[140.3357543945316,49.24975967407232],[140.309783935547,49.05037307739258],[140.36169433593784,48.91996765136719],[140.2373504638672,48.844894409179744],[140.17561340332054,48.674507141113274],[140.16651916503915,48.44145965576172],[139.72186279296886,48.16300201416021],[139.53611755371116,47.970001220703175],[139.2648162841797,47.8023567199707],[139.05857849121105,47.47712326049815],[139.05241394042991,47.407417297363224],[138.82380676269565,47.490905761718864],[138.60337829589864,47.48934936523443],[138.57850646972668,47.73806762695318],[138.767578125,47.80463027954096],[138.72039794921886,47.95895767211914],[138.58058166503918,48.03955459594738],[138.58978271484372,48.17860031127941],[138.48487854003906,48.28310394287109],[138.44400024414074,48.421226501464844],[138.28770446777344,48.45293807983392],[138.19029235839866,48.33787536621093],[137.91868591308616,48.287399291992244],[137.76478576660168,48.20084762573242],[137.4733886718751,48.20036315917969],[137.3304901123048,48.10557937622082],[137.4067840576173,47.99816513061534],[137.56549072265636,47.948513031005916],[137.60208129882858,47.79789733886718],[137.77598571777355,47.714237213134766],[137.93728637695312,47.731891632080135],[138.04768371582043,47.673473358154354],[138.08328247070335,47.50371170043945],[137.80319213867188,47.34129333496094],[137.70088195800827,47.36641693115229],[137.41578674316418,47.210868835449276],[137.0752868652345,47.32038116455084],[136.9368896484375,47.10337829589855],[136.99188232421898,47.02225875854492],[136.6004028320316,46.815731048583984],[136.33387756347702,46.78522109985357],[136.05058288574241,46.88576507568353],[135.84500122070335,46.85574340820318],[135.72689819335938,46.98005676269537],[135.56127929687534,46.99735641479498],[135.3628845214845,47.09747314453119],[135.32698059082054,47.19422149658203],[135.09017944335938,47.22860717773443],[134.98847961425793,47.1484107971192],[134.69039916992188,47.14265060424805],[134.6068878173828,46.97251129150402],[134.50569152832077,46.91486740112305],[134.50230407714855,46.762664794921925],[134.419189453125,46.712619781494254],[134.0178985595703,46.66371536254883],[134.02073669433594,46.82228088378906],[134.1345825195316,47.087821960449276],[134.22261047363304,47.180702209472656],[134.1490936279297,47.259510040283146],[134.33404541015636,47.43637084960949],[134.4935302734376,47.44380950927746],[134.6698455810547,47.58382415771495],[134.7715606689455,47.753459930420036],[134.5888671875001,47.906829833984375],[134.55055236816418,48.02439880371105],[134.67109680175793,48.16424179077154],[134.57540893554688,48.36321640014654],[134.29315185546898,48.373844146728516],[134.5171813964845,48.47882461547863],[134.7577819824221,48.43090820312494],[134.89059448242233,48.59363937377941],[134.51039123535153,48.63659286499034],[134.31478881835938,48.747222900390675],[134.16358947753906,48.64513015747076],[133.73208618164074,48.69158172607433],[133.40159606933628,48.7902069091798],[133.23858642578148,48.904422760009766],[133.14349365234386,49.18630981445318],[132.78678894043014,49.24151229858404],[132.73899841308594,49.32287597656255],[132.3872070312501,49.319740295410156],[132.37709045410202,49.41337203979498],[132.14900207519543,49.48933029174815],[132.04080200195335,49.45930099487305],[131.97270202636741,49.29559707641596],[131.75328063964844,49.34252548217768],[131.48107910156284,49.22642135620117],[131.38809204101585,49.25324630737315],[131.50968933105503,49.39023590087896],[131.50778198242222,49.567287445068416],[131.40278625488304,49.68471908569336],[131.51918029785168,49.762130737304744],[131.54049682617207,49.91241455078131],[131.49989318847702,50.17013931274414],[131.41798400878903,50.275722503662166],[130.93379211425827,50.463752746581974],[131.0315856933596,50.53677749633789],[130.94468688964855,50.67526245117199],[130.7168884277345,50.64296722412115],[130.8619842529297,50.8556175231933],[130.80239868164074,50.94845581054687],[130.9795837402345,51.01060104370123],[131.1119842529298,51.22765350341791],[131.26528930664108,51.25768661499017],[131.52368164062523,51.427497863769645],[131.4364776611328,51.56513977050787],[131.61479187011753,51.654121398925895],[132.3188018798828,51.79405975341802],[132.41049194335938,51.9391708374024],[132.8507843017578,52.16740036010748],[133.1866912841797,52.154430389404354],[133.3931884765626,52.29118728637701],[133.24148559570335,52.39976882934582],[133.27598571777366,52.66621017456066],[134.06338500976574,52.465103149414176],[134.582000732422,52.422275543213004],[134.5650024414067,52.53502655029302],[134.69229125976597,52.631057739257926],[134.6083984375,52.70032119750982],[134.58657836914074,52.88136672973644],[134.8230895996095,53.089889526367244],[134.8506774902346,53.22724914550787],[134.6906890869143,53.50512695312505],[134.44749450683616,53.567501068115234],[133.98667907714866,53.429813385009766],[133.67819213867188,53.457622528076115],[133.60089111328134,53.522151947021484],[133.31738281250023,53.476470947265625],[133.1331787109376,53.40508651733404],[133.14920043945324,53.31416702270519],[132.88908386230503,53.226699829101676],[132.08277893066452,53.198387145996094],[131.96589660644543,53.11613464355468],[131.57608032226562,53.357215881347656],[131.5006866455078,53.541282653808594],[131.33438110351574,53.79345321655284],[131.05589294433594,53.82456588745128],[130.91769409179688,53.78427505493169],[130.62428283691418,53.907501220703125],[130.50178527832077,54.01217651367182],[130.56108093261741,54.1769752502442],[130.73928833007824,54.28641891479492],[131.06558227539085,54.3253059387207],[131.23908996582028,54.559474945068466],[131.24078369140625,54.649513244628956],[131.81250000000023,54.848247528076286],[132.0453796386721,54.96763610839844],[132.0863952636721,55.04153060913085],[132.35009765624997,55.080066680908196],[132.40158081054688,55.2133407592774],[132.59730529785156,55.24185562133795],[132.72399902343773,55.37878036499029],[132.54748535156284,55.722637176513665],[132.34799194335938,55.753612518310604],[132.13868713378918,55.699752807617294],[131.7776794433597,55.6750831604005],[131.10748291015625,55.66984939575201],[130.986083984375,55.70123672485346],[130.8927917480473,55.92188644409191],[130.97528076171875,56.07484054565441],[131.15708923339866,56.253910064697315],[131.18190002441418,56.42901611328124],[131.3436889648442,56.51300048828131],[131.66448974609398,56.46417999267584],[131.71849060058605,56.701633453369084],[131.87678527832077,56.79666519165038],[131.51377868652355,57.101776123046875],[131.26419067382824,57.18524551391607],[131.33238220214866,57.33642578125006],[131.5359802246095,57.271705627441406],[131.8265838623048,57.58051681518567],[132.13018798828125,57.72707366943371],[131.81988525390625,57.90299224853511],[131.56410217285156,58.11107635498041],[131.72747802734386,58.219184875488395],[132.047607421875,58.071956634521534],[132.25508117675815,58.28460693359386],[132.19108581542991,58.528465270996094],[132.4439849853518,58.51203155517578],[132.5741882324222,58.64247512817388],[132.52168273925793,58.71313476562506],[132.6248779296875,58.88606262207031],[132.8497772216798,58.91018676757818],[132.86097717285202,59.099540710449276],[133.05540466308628,59.182388305664176],[133.5457916259769,59.24996566772466],[133.6663818359375,59.2149772644043],[134.0105895996095,59.25363922119141],[134.25389099121116,59.188705444336044],[135.16148376464855,59.09138107299805],[135.66387939453136,59.48115539550781],[135.91470336914074,59.48477554321294],[136.12748718261741,59.39878463745128],[136.82278442382824,59.30403137207037],[137.0044860839846,59.39092636108404],[137.2187957763672,59.40946960449218],[137.49620056152366,59.5395774841308],[137.51788330078125,59.637962341308594],[137.68038940429685,59.72086334228526],[138.15298461914097,59.70113754272455],[138.32826232910168,59.90405654907238],[138.248779296875,59.954181671142635],[138.26638793945335,60.23191833496094],[138.41519165039074,60.369205474853565],[138.35198974609398,60.44456481933593],[138.54808044433605,60.674785614013786],[138.24227905273438,60.851806640625],[138.4760894775394,61.075447082519645],[138.7587890625,61.21399688720703],[139.3267822265625,61.4097557067871],[139.653076171875,61.47659683227544],[139.99676513671886,61.76369094848644],[140.00469970703125,61.932250976562436],[140.25547790527344,61.94152450561523],[140.39668273925793,62.316513061523494],[140.522186279297,62.4021110534669],[140.7242889404297,62.405094146728565],[140.96408081054688,62.49354934692383],[141.144287109375,62.38124847412103],[141.35148620605491,62.39833831787115],[141.59268188476574,62.16811370849616],[141.96388244628906,61.984481811523544],[142.26399230957054,62.046943664550774],[142.32737731933605,61.92353057861328],[142.5884704589845,61.878730773925774],[142.7166748046876,61.94748687744152],[142.96658325195312,61.91350173950195],[143.21287536621116,61.99581527709972],[143.64886474609375,61.94380187988286],[144.00308227539085,61.95697402954101],[144.11349487304688,61.71961975097656],[144.59530639648438,61.83961486816406],[144.7891845703125,62.04123306274425]]]]},"properties":{"ID_0":188,"ISO":"RU-KHA","NAME_0":"Russia","ID_1":28,"NAME_1":"Khabarovsk","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Хабаровский край","VARNAME_1":"Khabarovskiy Kray"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[90.45197296142584,52.163402557373104],[90.17519378662108,52.113517761230526],[89.95777893066412,51.89212799072277],[90.06101989746122,51.74300384521496],[89.8809204101563,51.6950569152832],[89.6227493286134,51.51965332031261],[89.44203186035162,51.57472610473633],[89.16997528076188,51.53957366943365],[88.78808593750011,51.54139709472667],[88.69065093994158,51.508010864257926],[88.59608459472656,51.33659744262707],[88.40613555908209,51.29219818115239],[87.93568420410185,51.49143218994135],[88.11305236816435,51.72165679931634],[87.91613006591797,51.80930709838867],[88.05386352539068,52.035678863525504],[88.27487945556658,52.069774627685604],[88.42230987548845,52.18346405029297],[88.70009613037132,52.27518081665045],[88.71832275390642,52.38965988159191],[88.9203186035158,52.45994186401367],[89.073257446289,52.576503753662166],[89.0165557861331,52.65746688842784],[89.1927337646485,52.844070434570426],[88.91085052490257,53.03250122070318],[89.04720306396489,53.14149093627935],[88.8758850097658,53.36524963378906],[88.812515258789,53.54714584350586],[89.0293655395509,53.74450683593756],[89.22389221191435,53.77229309082031],[89.06389617919933,54.07958221435547],[89.20265960693365,54.17336654663091],[89.16335296630865,54.31891250610357],[88.96807861328148,54.29299545288097],[88.85182952880876,54.39815139770508],[88.59268188476568,54.284729003906364],[88.56365203857438,54.6055145263673],[88.76470947265625,54.830486297607536],[88.54938507080082,55.00392913818364],[88.47492980957048,55.32056427001959],[88.63609313964838,55.424762725830135],[88.9501571655274,55.28911590576183],[88.96607971191423,55.184829711914006],[89.20083618164074,54.99044799804698],[89.54999542236334,55.046417236328125],[89.65784454345714,55.003131866455185],[89.9039916992188,55.08612823486334],[90.12921142578124,55.10525131225586],[90.43556213378912,55.0163955688476],[90.45833587646513,54.87079620361334],[90.91528320312523,54.79112625122075],[90.85501098632835,54.62679672241222],[91.15901184082037,54.48793411254894],[91.20953369140624,54.33827590942383],[91.4639129638673,54.05661773681634],[91.46513366699217,53.96609115600597],[91.32659149169916,53.81670761108404],[91.46974945068382,53.51394653320324],[91.74404907226568,53.446750640869084],[91.84126281738281,53.288341522216854],[91.65988159179693,53.15853500366222],[91.35114288330105,53.07753753662121],[91.39631652832053,52.86803054809582],[91.24193572998064,52.747539520263665],[91.03803253173845,52.66026306152338],[90.70031738281256,52.45823669433605],[90.45197296142584,52.163402557373104]]]},"properties":{"ID_0":188,"ISO":"RU-KK","NAME_0":"Russia","ID_1":29,"NAME_1":"Khakass","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Хакасия","VARNAME_1":"Khakassiya|Republic of Khakasia|Khakasskaya A.Obl.|Respublika Khakasiya|Republic of Khakasia"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[84.51454162597673,62.178100585937614],[84.51338195800798,61.98855209350591],[84.76437377929705,61.78865814208984],[85.40196990966807,61.68707656860345],[85.65457916259764,61.57683563232427],[85.91587829589844,61.54807281494151],[85.96430969238298,61.46842193603515],[85.65365600585943,61.39339828491212],[85.66175842285168,61.259265899658196],[84.56581878662126,60.95654296875005],[84.25296020507841,60.84401702880865],[83.94595336914078,60.83458328247076],[83.51782989501976,61.01337432861333],[83.19619750976562,61.00160598754882],[82.66909027099638,60.81636047363286],[82.41777801513688,60.69557189941406],[82.40245819091824,60.594604492187614],[82.15301513671868,60.50709152221685],[81.86383819580088,60.62518310546875],[81.47624206542997,60.60364532470703],[81.08193969726568,60.623523712158146],[81.0470581054688,60.733203887939396],[80.7252197265625,60.78895187377929],[80.16073608398466,60.6697731018067],[79.30303192138683,60.65766143798834],[79.24720764160173,60.790107727050895],[79.0121383666995,60.810642242431584],[78.87512207031256,60.74225234985357],[78.11224365234402,60.789642333984425],[77.05595397949247,60.789646148681754],[77.00238037109402,60.63495635986333],[77.0729522705081,60.53934097290044],[76.85919189453142,60.451816558838004],[76.86650848388678,60.22253799438482],[76.7211837768557,60.075912475585994],[76.76520538330084,59.97362899780279],[76.67018127441423,59.56427764892572],[76.17201232910156,59.52049636840832],[75.9382934570312,59.40827178955073],[75.82642364501959,59.28072738647472],[75.61545562744146,59.18246459960937],[75.67737579345696,58.94572830200201],[75.17931365966825,58.69867324829101],[75.14245605468756,58.649211883545036],[75.0425262451174,58.692779541015746],[74.12824249267594,58.7019538879395],[73.94738769531261,58.80373382568364],[73.62119293212918,58.845943450927734],[73.3410186767581,58.78667068481451],[72.96459960937499,58.85503768920893],[73.0994644165039,58.93502426147461],[72.65431976318365,59.09904098510742],[72.43045806884794,59.22414779663086],[72.43894195556639,59.299526214599666],[72.08049774169916,59.52090454101568],[71.87573242187506,59.53379440307622],[71.37345123291033,59.74011993408214],[71.19132232666033,59.842372894287166],[70.58908843994169,59.805034637451286],[70.1400146484375,59.93311691284179],[69.8055038452149,59.86115646362298],[69.55787658691423,59.9556884765625],[69.28900909423851,59.928524017333984],[69.40258026123041,59.762123107910156],[68.8736724853515,59.54337692260753],[68.61192321777372,59.54422378540039],[68.55377960205107,59.372577667236385],[68.42404937744169,59.2474479675293],[68.08787536621111,59.181385040283146],[67.76731109619146,59.156227111816456],[67.63455963134771,59.047012329101506],[67.16636657714872,58.91539764404291],[67.03288269042963,58.97479248046875],[66.8222045898438,58.88482666015631],[66.82949829101568,58.65853500366223],[66.30706024169945,58.57269287109375],[65.97730255126982,58.56711959838873],[65.93867492675798,58.658050537109496],[65.72942352294939,58.697231292724666],[65.53964233398455,58.807826995849666],[65.24851226806669,59.25699615478526],[65.10372924804693,59.3437118530274],[64.73514556884781,59.34940719604503],[64.47284698486322,59.40605545043956],[64.03922271728538,59.43696594238287],[63.850833892822266,59.577541351318295],[63.85338973999052,59.85419464111322],[63.70489883422851,60.14952850341797],[63.259773254394474,60.24101257324213],[63.29136276245134,60.39742279052729],[63.030693054199155,60.60691833496099],[62.83428192138688,60.88654708862299],[62.89553070068359,61.07318115234369],[62.7186660766601,61.203243255615234],[61.079917907714844,61.70253753662114],[60.42481613159197,61.74943161010736],[60.06925964355491,61.713531494140625],[59.99021530151373,61.85849380493175],[59.82992172241228,61.917572021484325],[59.46472549438499,61.94725036621099],[59.48659896850603,62.2665901184082],[59.635009765625284,62.30644989013683],[59.63179779052728,62.42625808715826],[59.44837570190458,62.52738952636719],[59.36959838867187,62.698715209960994],[59.45875549316435,62.87209320068365],[59.234298706054794,62.97947311401379],[59.31908416748052,63.07805633544921],[59.53832626342779,63.82649612426769],[59.59903335571294,63.9174041748048],[59.897018432617244,64.0745239257813],[59.63972854614252,64.1934585571289],[59.66353225708036,64.38232421875006],[59.49647903442377,64.50531005859375],[59.67739486694359,64.66396331787104],[59.63939666748075,64.80116271972656],[60.03932952880865,64.9315032958985],[60.19203186035173,65.07189941406261],[60.41604614257818,65.04507446289062],[60.59800338745134,64.9036026000977],[61.07863616943383,65.07667541503918],[61.37372970581072,65.23384094238293],[61.387157440185604,65.40412902832036],[61.625907897949496,65.553955078125],[62.06253051757807,65.7015686035158],[62.30106735229509,65.60311889648449],[62.45777511596708,65.40213012695312],[62.87464523315429,65.2905502319336],[62.81833267211931,64.98221588134771],[62.74229812622076,64.90599060058605],[62.87424087524431,64.7725677490235],[62.561855316162166,64.60882568359386],[62.88588714599638,64.4736328125],[63.067581176757805,64.51388549804688],[63.434528350830355,64.44148254394537],[63.508247375488565,64.32085418701172],[63.68376541137701,64.25371551513672],[64.10195922851568,64.3547744750976],[64.4892120361331,64.35369873046875],[65.55883026123075,64.4949111938477],[66.17908477783209,64.5268020629884],[66.40273284912126,64.44991302490246],[66.73339843750028,64.50668334960943],[66.95699310302751,64.41297149658203],[66.83994293212896,64.25575256347668],[66.97481536865257,64.15877532958984],[67.28074645996098,64.05672454833984],[67.66862487792986,64.06930541992188],[67.80738830566412,64.02831268310547],[68.51328277587913,64.27231597900396],[68.9477767944338,64.16963958740234],[69.04702758789074,64.31826019287115],[69.34092712402372,64.41421508789068],[69.46727752685564,64.35311889648438],[69.83003997802751,64.3594589233399],[69.87749481201183,64.30187225341803],[70.33610534667974,64.3324966430664],[70.75384521484398,64.1821517944337],[70.81331634521483,64.08845520019537],[70.65180969238303,64.00510406494146],[70.98557281494146,63.682006835937614],[71.35946655273465,63.688201904296875],[71.55718231201172,63.56864929199225],[71.56651306152344,63.410808563232415],[71.67887878417974,63.196769714355526],[72.2196655273438,63.295429229736385],[72.74829864501969,63.29071044921874],[72.93383789062494,63.4105224609375],[73.15238952636747,63.41143035888672],[73.42466735839844,63.20652770996105],[74.25740051269531,63.16174697875982],[74.53107452392595,63.03267669677734],[75.0422439575197,63.04962921142578],[75.79931640625,63.121200561523494],[76.4052734375,62.970607757568416],[76.74124908447294,63.03769302368164],[77.04341125488276,62.96817016601562],[77.15322113037138,62.84365081787109],[77.38918304443388,62.72827911376959],[77.83757019042974,62.56728744506847],[78.17890167236345,62.5573501586914],[78.79982757568365,62.60879898071294],[78.99143981933592,62.58255004882818],[79.83836364746115,62.58890533447277],[79.92871856689453,62.79586791992199],[80.22909545898455,62.845100402832145],[80.64023590087919,63.01207351684581],[80.6514282226563,63.08463287353527],[80.98886871337913,63.13390731811529],[81.33756256103543,62.918346405029354],[81.30226135253912,62.86458587646484],[81.75702667236338,62.710811614990234],[81.93137359619135,62.695571899414006],[82.12830352783209,62.82230377197271],[82.31701660156278,62.76225662231445],[82.79174041748074,62.75681686401373],[82.7977371215822,62.64584350585938],[83.07604217529297,62.60532760620117],[83.1026916503908,62.53255844116222],[83.4541778564456,62.45714187622075],[83.60777282714861,62.53034210205084],[83.924057006836,62.51715087890631],[84.11017608642595,62.375648498535206],[84.51454162597673,62.178100585937614]]]},"properties":{"ID_0":188,"ISO":"RU-KHM","NAME_0":"Russia","ID_1":30,"NAME_1":"Khanty-Mansiy","TYPE_1":"Avtonomnyy Okrug","ENGTYPE_1":"Autonomous Province","NL_NAME_1":"Ханты-Мансийский АОк","VARNAME_1":"Khanty-Mansiysk|Khanty-Mansiyskiy A.Okr.|Khanty-Mansiyskiy A.Okr.-Yugra|Khanty-Mansiyskiy Aok"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[48.33232879638689,60.85586166381836],[48.516113281250284,60.59507751464844],[48.48897171020519,60.49966812133794],[48.703708648681925,60.3397331237793],[48.422855377197266,60.17134857177746],[48.467201232910156,60.03899765014648],[48.46499633789091,59.721984863281364],[49.03496932983421,59.6729125976563],[49.008071899414006,59.535442352294915],[49.30345535278337,59.48501205444347],[49.564914703369084,59.393211364746094],[49.50257492065447,59.25886917114258],[49.80022811889677,59.2626571655274],[49.82114791870123,59.67205429077154],[50.033447265625114,59.70331192016607],[50.01744079589838,59.80228805541993],[50.70793914794922,59.90325927734374],[50.8439369201663,59.89749526977544],[51.09202194213873,60.089366912841854],[51.30699920654291,60.07248306274425],[51.5189628601077,59.95029830932617],[51.95584487915038,60.32520294189459],[52.285900115967074,60.26606750488281],[52.46321868896496,60.21602630615229],[53.34511947631853,60.14365386962897],[53.44427108764643,60.23085403442383],[53.65305328369157,60.06802749633795],[53.64973831176758,59.91240692138671],[53.55577087402361,59.709747314453175],[53.20914459228544,59.362506866455135],[53.34154129028326,59.18701171874994],[53.831005096435604,59.07246398925786],[53.743618011474666,59.00772094726556],[53.89552688598644,58.78835296630871],[53.7239723205567,58.702011108398445],[53.7747535705567,58.49010086059576],[53.38442230224638,58.41883087158209],[53.23191452026373,58.42437744140631],[53.1142158508303,58.543983459472706],[52.913887023926065,58.505149841308594],[52.84211349487316,58.40297698974615],[52.43425750732439,58.41974258422862],[52.190090179443416,58.474433898925724],[51.93144607543951,58.43129730224621],[51.669765472412166,58.17417907714856],[51.830421447753906,58.09310531616211],[51.92417526245117,57.746833801269524],[51.74322128295921,57.55364608764643],[51.523078918457145,57.451843261718864],[51.215572357177905,57.42981338500987],[51.11273574829096,57.29515075683594],[51.42948913574218,56.91449356079096],[51.52225494384788,56.877201080322315],[51.36336898803728,56.67270278930664],[51.165126800537394,56.65804290771496],[51.15329742431658,56.51069259643565],[51.33086013793951,56.37228012084961],[51.426757812500114,56.146137237548885],[51.32423019409191,56.09873199462896],[51.03194427490246,56.17633819580084],[50.91780853271507,56.28524780273443],[50.69608306884782,56.380413055420036],[50.57884979248052,56.54343032836919],[50.29765319824236,56.65757751464849],[50.07308959960966,56.66929626464855],[50.1399002075197,56.797241210937614],[50.0118865966798,56.89493560791027],[49.80406951904296,56.90103530883795],[49.76773834228527,57.06097412109381],[49.62610244751005,57.10309219360363],[49.37073516845709,57.04097747802739],[49.188396453857536,57.191642761230526],[48.97995376586931,57.10931777954107],[48.866508483887,57.17507171630864],[48.4762496948245,57.138401031494254],[48.28388214111345,57.172962188720696],[48.16909790039068,57.04462814331055],[47.93585586547846,57.00985717773443],[47.732067108154524,57.06726074218755],[47.45054626464861,56.89188766479497],[47.20400238037115,56.84808731079112],[47.12258529663103,56.9371070861817],[46.76093292236351,56.959270477295036],[46.8387985229495,57.21585083007818],[46.707847595214844,57.42402267456055],[46.83543777465826,57.527214050293075],[47.02562713623047,57.50749206542974],[47.54647445678734,57.62343215942394],[47.60154342651367,57.83774948120122],[47.7784423828125,57.94479370117187],[47.379295349121314,58.01665496826166],[46.474205017089844,58.05123901367187],[46.390293121338175,58.07998275756841],[46.48627090454095,58.235988616943416],[46.437873840332315,58.31327056884765],[46.609298706054915,58.54690170288091],[47.05137634277344,58.63337326049816],[47.02522659301786,58.70635604858405],[47.39876937866228,58.919643402099716],[47.63473129272461,58.940349578857415],[47.548454284668026,59.071048736572315],[47.328712463378906,59.15388870239269],[47.279872894287394,59.34151458740229],[47.06943130493169,59.35960006713868],[47.12318420410185,59.60858154296875],[47.10741424560564,59.74965667724621],[46.93797302246122,59.77157592773448],[47.042819976806754,60.154090881347656],[46.79274749755859,60.043579101562614],[46.41778564453131,60.1181526184082],[46.32950210571306,60.23822021484375],[46.800468444824496,60.27475738525402],[46.862567901611435,60.46040344238281],[47.069366455078175,60.592632293701115],[47.001819610595646,60.76008224487316],[47.071281433105526,60.86044311523443],[47.18703079223627,61.059253692627],[47.55131912231457,61.07292556762696],[47.947933197021484,60.995574951171875],[47.960479736328175,60.88802337646484],[48.33232879638689,60.85586166381836]]]},"properties":{"ID_0":188,"ISO":"RU-KIR","NAME_0":"Russia","ID_1":31,"NAME_1":"Kirov","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Кировская область","VARNAME_1":"Vyatka|Vyatskaya G.|Kirovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[65.48619842529308,68.40888214111328],[65.33327484130876,68.28456878662115],[65.38114929199236,67.97439575195312],[65.5746612548831,67.90645599365229],[66.07022094726591,67.94718170166021],[65.98181915283209,67.66757965087896],[66.13677978515653,67.45228576660168],[65.75045013427734,67.36220550537115],[65.58485412597673,67.26663208007817],[65.05420684814447,67.0696487426759],[65.11894226074224,66.90106964111338],[64.60217285156243,66.79056549072271],[64.28661346435553,66.6426239013673],[64.02467346191406,66.64322662353533],[63.80997085571307,66.5367813110351],[63.33848190307634,66.42150878906256],[63.01632690429693,66.1111450195313],[62.83475112915056,66.02202606201172],[62.77543258667009,65.85578918457036],[62.06253051757807,65.7015686035158],[61.625907897949496,65.553955078125],[61.387157440185604,65.40412902832036],[61.37372970581072,65.23384094238293],[61.07863616943383,65.07667541503918],[60.59800338745134,64.9036026000977],[60.41604614257818,65.04507446289062],[60.19203186035173,65.07189941406261],[60.03932952880865,64.9315032958985],[59.63939666748075,64.80116271972656],[59.67739486694359,64.66396331787104],[59.49647903442377,64.50531005859375],[59.66353225708036,64.38232421875006],[59.63972854614252,64.1934585571289],[59.897018432617244,64.0745239257813],[59.59903335571294,63.9174041748048],[59.53832626342779,63.82649612426769],[59.31908416748052,63.07805633544921],[59.234298706054794,62.97947311401379],[59.45875549316435,62.87209320068365],[59.36959838867187,62.698715209960994],[59.44837570190458,62.52738952636719],[59.63179779052728,62.42625808715826],[59.635009765625284,62.30644989013683],[59.48659896850603,62.2665901184082],[59.46472549438499,61.94725036621099],[59.357086181640675,61.81312561035162],[59.39514541626005,61.69829559326172],[58.84975051879883,61.51890563964855],[58.035297393799,61.50741577148444],[57.230220794677734,61.53449249267583],[57.11002349853521,61.5022583007813],[56.743568420410156,61.559963226318416],[56.45552062988298,61.459346771240234],[56.29581069946289,61.24907684326171],[55.90676498413108,61.29584884643566],[55.7725257873538,61.14268875122081],[55.31709671020502,61.158611297607415],[55.11632537841808,61.047557830810554],[54.98949813842779,60.90363311767572],[53.8814392089846,60.98693084716808],[53.82891845703142,60.8596305847169],[53.34232711792014,60.90008926391596],[53.435371398926065,61.053703308105575],[52.87033843994146,61.09071350097667],[52.78018569946289,60.96966934204112],[52.473438262939396,60.9816131591798],[52.34781265258795,60.85905838012707],[51.90845489501958,60.899967193603516],[51.767921447754134,60.61202621459966],[52.151748657226676,60.540481567382805],[52.34331512451172,60.454681396484375],[52.285900115967074,60.26606750488281],[51.95584487915038,60.32520294189459],[51.5189628601077,59.95029830932617],[51.30699920654291,60.07248306274425],[51.09202194213873,60.089366912841854],[50.8439369201663,59.89749526977544],[50.70793914794922,59.90325927734374],[50.01744079589838,59.80228805541993],[50.033447265625114,59.70331192016607],[49.82114791870123,59.67205429077154],[49.80022811889677,59.2626571655274],[49.50257492065447,59.25886917114258],[49.564914703369084,59.393211364746094],[49.30345535278337,59.48501205444347],[49.008071899414006,59.535442352294915],[49.03496932983421,59.6729125976563],[48.46499633789091,59.721984863281364],[48.467201232910156,60.03899765014648],[48.422855377197266,60.17134857177746],[48.703708648681925,60.3397331237793],[48.48897171020519,60.49966812133794],[48.516113281250284,60.59507751464844],[48.33232879638689,60.85586166381836],[48.37702941894554,60.99104690551769],[48.767967224121264,61.15018081665039],[49.24629974365229,61.17825317382824],[49.512962341308764,61.60953140258794],[49.047744750976506,61.6744384765625],[49.2367744445803,62.13655090332031],[49.30377578735363,62.14521408081048],[49.586017608642635,62.768997192382926],[48.72655868530296,62.83530426025396],[48.615917205810604,62.7297592163086],[48.33520126342802,62.7247695922851],[48.19384765625017,62.48085021972656],[48.27669906616205,62.32807159423828],[47.646427154541236,62.332454681396534],[47.595851898193416,62.215000152588],[47.37570953369169,62.217628479003906],[47.3485679626466,62.34627151489258],[47.1661796569827,62.345592498779354],[47.20144271850609,62.65849685668945],[47.031341552734375,62.88605499267583],[47.27066421508795,62.95552062988292],[47.544834136963004,63.124252319335994],[47.01892089843767,63.29414367675781],[46.853965759277344,63.46475601196289],[47.00653457641629,63.55571365356445],[46.971553802490234,63.69632339477539],[46.377632141113395,63.93101501464844],[45.838367462158374,63.99121093750011],[45.57086181640642,64.08305358886719],[45.42439270019548,64.22801971435553],[45.93482971191412,64.32754516601562],[46.36297988891607,64.2933731079101],[46.547283172607536,64.36637878417979],[47.80503463745134,64.39805603027355],[48.0927734375,64.37609863281261],[48.10803604126005,64.27368164062511],[48.39972305297846,64.24330139160162],[48.43403625488287,64.36026000976574],[48.81874847412115,64.36576080322271],[48.91572189331054,64.49666595458996],[49.400409698486385,64.47563934326178],[49.56064605712907,64.6098022460937],[50.264545440674,64.5242309570313],[50.430904388427734,64.85437774658203],[50.105716705322266,64.89699554443371],[49.702350616455305,65.20333862304699],[49.61527252197271,65.31998443603521],[49.053756713867415,65.27355957031244],[49.03289794921892,65.6469345092774],[48.977466583252124,65.79473114013678],[49.00090789794927,66.02429199218767],[48.93068695068359,66.10868072509771],[51.262855529785384,66.71501922607428],[51.554416656494425,66.77960968017578],[51.643352508544865,66.91107940673851],[52.16579818725603,67.0763626098634],[54.594753265381144,66.99330139160162],[55.97161865234391,66.97808074951178],[58.98286056518572,66.98661804199224],[60.20227813720714,66.98963928222656],[61.45497512817399,66.99696350097662],[62.94461059570318,67.40357971191412],[62.96840667724615,67.53881072998053],[63.13280105590849,67.67556762695318],[63.38210678100597,67.7717514038087],[63.740608215331974,67.80329895019531],[63.98976135253906,67.91629791259771],[63.93441009521479,68.02709197998053],[64.61116027832048,68.19655609130854],[64.58423614501947,68.33515167236334],[65.06198120117216,68.41088867187528],[65.48619842529308,68.40888214111328]]]},"properties":{"ID_0":188,"ISO":"RU-KO","NAME_0":"Russia","ID_1":32,"NAME_1":"Komi","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Коми","VARNAME_1":"Komi A.S.S.R.|Republic of Komi|Respublika Komi"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[47.12318420410185,59.60858154296875],[47.06943130493169,59.35960006713868],[47.279872894287394,59.34151458740229],[47.328712463378906,59.15388870239269],[47.548454284668026,59.071048736572315],[47.63473129272461,58.940349578857415],[47.39876937866228,58.919643402099716],[47.02522659301786,58.70635604858405],[47.05137634277344,58.63337326049816],[46.609298706054915,58.54690170288091],[46.437873840332315,58.31327056884765],[46.48627090454095,58.235988616943416],[46.390293121338175,58.07998275756841],[45.86507034301775,58.044666290283196],[45.63156509399425,57.921977996826165],[45.466667175293246,58.033771514892585],[45.224075317382756,58.07514190673834],[44.88726806640642,58.066131591796875],[44.87721633911144,57.86728286743164],[44.7562332153322,57.69328689575195],[44.611461639404354,57.7028465270996],[44.38940811157232,57.51670074462902],[44.079048156738565,57.44083404541009],[43.72822952270519,57.44832992553722],[43.47077560424822,57.54584121704096],[42.88154983520519,57.39172363281256],[42.80692291259783,57.57382583618175],[42.68343353271513,57.63517379760748],[42.13410568237322,57.56983184814453],[41.81151580810547,57.692836761474716],[41.65153121948259,57.59570312499994],[41.60894775390625,57.468681335449155],[41.15713500976568,57.383441925048885],[40.49948120117193,57.2833251953125],[40.414947509765625,57.47853851318365],[40.59346008300798,57.60753631591791],[40.69865417480497,57.792171478271534],[40.620868682861385,57.892883300781186],[40.77132034301775,57.953132629394645],[40.75995254516607,58.061565399170036],[40.92118072509771,58.123043060302734],[41.04389572143555,58.2803306579591],[41.21762084960943,58.34755706787121],[40.97508239746087,58.52682113647461],[41.28697204589861,58.72002029418945],[41.179321289062784,58.78628540039056],[41.29038619995123,58.98323059082036],[41.659282684326456,59.06169128417963],[42.09457015991239,59.10953521728527],[41.99591064453142,59.2617645263673],[42.24450302124034,59.31467056274426],[42.619132995605696,59.32605361938482],[42.83792495727556,59.14624786376953],[43.162059783935774,59.267299652099666],[43.36243438720709,59.21721649169921],[44.17053985595709,59.22280502319336],[44.31602096557622,59.13566207885742],[44.508804321289176,59.15933227539073],[44.99808120727545,59.11977386474614],[45.06600189209001,59.18870925903325],[45.32626342773466,59.222137451171875],[45.93606185913085,59.18530273437494],[46.05823135376004,59.32917404174817],[46.392559051513956,59.36978912353515],[46.42815017700195,59.5917701721192],[47.12318420410185,59.60858154296875]]]},"properties":{"ID_0":188,"ISO":"RU-KOS","NAME_0":"Russia","ID_1":33,"NAME_1":"Kostroma","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Костромская область","VARNAME_1":"Kostromskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.66132736206083,46.8723602294923],[38.79891586303728,46.850391387939446],[38.86940002441423,46.685157775878906],[39.07806015014654,46.6733169555664],[39.18925476074236,46.80296325683605],[39.38367843627924,46.878238677978516],[39.45837020874046,46.83914566040039],[39.87176513671881,46.81945419311535],[40.02618408203141,46.75395584106451],[39.957206726074276,46.58752822875987],[40.1663360595706,46.5233039855957],[40.19120788574219,46.37691116333013],[40.28290557861322,46.29824066162121],[40.59485626220726,46.30442428588873],[40.97811126708996,46.162502288818416],[41.18284606933594,45.984771728515625],[41.161376953125284,45.91305160522472],[41.301670074463175,45.79696655273443],[41.19297027587896,45.70880508422863],[40.87628936767595,45.68764114379894],[40.845138549804965,45.56366348266613],[41.03847122192411,45.41628265380871],[41.07731246948248,45.23329162597656],[41.36255264282221,45.22734069824219],[41.41750335693382,45.11592864990229],[41.577224731445256,44.97200393676769],[41.73648452758795,44.92039489746105],[41.747570037842024,44.82118606567382],[41.61912155151384,44.7076683044433],[41.58489227294939,44.58459854125988],[41.86980056762701,44.44123840332036],[41.69935226440458,44.349838256835994],[41.81263732910173,44.24794387817394],[41.724147796631144,44.055446624755916],[41.555599212646655,43.946731567382756],[41.37881851196289,44.04711532592785],[41.021636962890796,44.117282867431754],[40.95235061645508,43.976524353027344],[40.81906509399437,43.911350250244084],[40.72377014160162,43.73083114624029],[40.716171264648665,43.53089141845714],[40.57189941406267,43.51611328125],[40.263069152831974,43.58289337158209],[40.096923828125114,43.563293457031364],[40.011955261230526,43.384860992431754],[39.86069488525396,43.513195037841854],[39.46125030517595,43.78930664062506],[38.99791717529291,44.16180419921881],[38.79180526733427,44.28097152709972],[38.57208251953131,44.348751068115234],[38.22069549560564,44.41097259521479],[37.98402786254911,44.56819534301769],[37.83097076416044,44.72041702270519],[37.72486114501959,44.64902877807622],[37.547637939453125,44.67597198486328],[37.38624954223661,44.76180648803722],[37.25986099243181,44.97708511352544],[36.90208435058622,45.10486221313482],[36.633472442626896,45.141250610351676],[36.597362518310604,45.19513702392578],[36.797084808349894,45.30541610717785],[36.85763931274414,45.45097351074224],[37.20097351074247,45.3351402282716],[37.45013809204107,45.34652709960932],[37.602916717529354,45.46763992309576],[37.603748321533146,45.64069366455078],[37.83375167846691,45.755973815918026],[37.95347213745139,46.01625061035156],[38.14819335937494,46.03236007690429],[38.29069519042986,46.14597320556646],[38.47263717651373,46.039859771728565],[38.58152770996105,46.09430694580083],[38.292362213134766,46.243473052978516],[38.10013961792015,46.3962516784668],[37.89347076416021,46.42541503906256],[37.805973052978516,46.650138854980526],[38.061527252197436,46.647640228271484],[38.28458404541033,46.735416412353516],[38.50125122070307,46.879859924316406],[38.66132736206083,46.8723602294923]],[[39.64794921874994,45.16419601440435],[39.28381729125982,45.02684402465825],[39.01510620117204,44.989265441894645],[38.81095886230497,45.06049728393566],[38.57011795043968,45.03254318237305],[38.9640808105471,44.860202789306754],[39.419628143310604,44.823089599609425],[39.58114624023466,44.85968399047846],[39.61465072631847,44.98313522338867],[39.76084518432623,45.0003662109375],[39.99878311157237,44.90314483642584],[39.840774536132756,44.58407592773443],[39.86066436767578,44.37207412719732],[40.104572296142805,44.25904083251959],[40.01827621459978,44.09848403930664],[39.774703979492415,44.12716674804682],[39.64757919311546,43.98913192749035],[39.73140335083024,43.936611175537166],[39.95980072021479,43.93823242187506],[40.24375152587918,43.80278396606457],[40.3540420532226,43.80878829956055],[40.48201751708996,44.003288269043026],[40.417724609375284,44.15627288818365],[40.48381423950224,44.402400970459034],[40.35651016235357,44.58812713623058],[40.45653915405302,44.75387573242199],[40.59633255004911,44.702407836914176],[40.5009880065919,44.97680664062506],[40.30049514770536,45.0952415466308],[40.059654235840064,45.06309127807623],[39.64794921874994,45.16419601440435]]]},"properties":{"ID_0":188,"ISO":"RU-KDA","NAME_0":"Russia","ID_1":34,"NAME_1":"Krasnodar","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Краснодарский край","VARNAME_1":"Cossacks of the Black Sea|Kuban|Kubanskaya|Yekaterinodar|Krasnodarskiy Kray"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[79.19843292236334,73.07759857177763],[79.47499847412114,72.91458129882807],[79.5619812011721,72.75364685058592],[79.395317077637,72.70259857177739],[78.89167022705095,72.73332977294933],[78.67134857177751,72.87448120117199],[79.19843292236334,73.07759857177763]]],[[[111.24230194091803,73.90673065185558],[110.90438842773432,73.70207977294933],[110.68333435058611,73.79374694824241],[110.24791717529297,73.68125152587895],[109.65468597412104,73.67760467529303],[109.55052185058605,73.81822967529308],[109.81614685058616,73.86093902587895],[109.9749984741211,74.00000000000011],[110.58541870117216,73.99375152587885],[111.24230194091803,73.90673065185558]]],[[[112.12968444824229,74.54634857177733],[113.06874847412132,74.50833129882824],[113.43281555175781,74.43906402587919],[113.21250152587925,74.20833587646479],[112.83333587646484,74.0791702270509],[112.16301727294933,74.14427185058594],[111.67082977294928,74.23958587646496],[111.53333282470726,74.34166717529313],[112.02291870117186,74.35832977294928],[112.12968444824229,74.54634857177733]]],[[[87.02135467529314,74.98802185058605],[86.83958435058611,74.83541870117199],[86.35624694824236,74.84166717529303],[86.56926727294933,74.97343444824219],[87.02135467529314,74.98802185058605]]],[[[95.87968444824219,76.30677032470714],[96.42292022705084,76.3083343505861],[96.46406555175798,76.13906097412114],[95.7645797729495,76.15208435058605],[95.87968444824219,76.30677032470714]]],[[[110.85832977294945,76.71041870117188],[111.62708282470696,76.6583328247072],[111.75,76.59583282470726],[112.78489685058592,76.30677032470714],[112.69583129882812,76.24166870117193],[112.70833587646494,76.04582977294933],[113.46614837646496,76.16197967529308],[113.54582977294967,75.91041564941418],[113.87864685058616,75.91406250000011],[113.87708282470726,75.74791717529307],[113.38124847412121,75.51667022705084],[113.72916412353514,75.4124984741211],[113.66041564941428,75.2874984741212],[112.74583435058616,74.93541717529291],[112.1374969482423,74.87083435058598],[111.79426574707054,74.65260314941406],[111.41249847412104,74.68125152587896],[110.847915649414,74.53125],[110.26041412353544,74.49166870117193],[110.42656707763683,74.44010162353516],[109.94947814941429,74.31198120117193],[109.90989685058588,74.20259857177746],[109.54374694824219,74.08125305175793],[109.09739685058611,74.04426574707043],[108.76301574707048,73.93073272705084],[108.20833587646479,73.66458129882812],[107.32917022705084,73.60208129882818],[106.95207977294945,73.45833587646496],[106.80364990234374,73.31926727294933],[106.277084350586,73.32083129882822],[105.90468597412126,73.10260009765636],[105.84375000000028,72.8812484741211],[106.16874694824224,72.90416717529301],[106.22864532470709,73.1088485717774],[106.42292022705078,73.18333435058611],[107.79582977294922,73.15416717529297],[108.25,73.28958129882812],[108.65625,73.31458282470703],[109.68333435058611,73.43333435058605],[110.15781402587919,73.51927185058594],[110.4583358764649,73.63541412353516],[110.91510009765642,73.69531249999999],[110.89767456054716,73.61923217773443],[110.36228179931669,73.22848510742199],[110.86448669433622,73.1896743774414],[110.92687225341808,73.08507537841808],[110.71897888183588,72.80797576904297],[110.78026580810547,72.6510009765625],[111.21607971191423,72.53866577148438],[111.06248474121105,72.4073333740235],[111.68959045410185,72.28987884521496],[111.6477890014649,72.1916885375976],[112.01486206054699,72.12126922607433],[112.0276870727539,71.79266357421886],[112.12557220459006,71.39774322509771],[112.33557128906273,71.3651733398438],[112.61147308349621,71.20156860351574],[112.57167053222656,71.07269287109375],[112.17518615722679,71.05240631103527],[112.00128936767578,70.97235107421875],[111.58087158203153,70.93292999267584],[110.98178100585966,70.7920608520509],[110.61238098144548,70.75284576416016],[110.15747070312494,70.62503051757812],[110.18217468261741,70.40389251708994],[109.67119598388695,70.3840408325198],[109.42127990722656,70.22929382324241],[109.50068664550787,69.9847183227539],[109.35508728027344,69.7836151123048],[108.9345855712891,69.84790802001964],[108.33657836914061,69.84336090087885],[108.02658081054682,69.70210266113304],[107.50518035888678,69.65930938720697],[107.0456771850586,69.54841613769537],[106.51088714599615,69.57548522949224],[106.15577697753912,69.39128875732433],[106.90386962890653,68.8769760131836],[106.96009063720726,68.6483612060548],[106.93309020996088,68.1790771484375],[106.81327819824247,67.63785552978527],[106.79728698730463,67.37574768066412],[106.07987976074247,67.19561004638672],[106.01157379150396,67.06475830078125],[105.54718017578153,67.04595184326178],[105.7094802856448,66.94254302978516],[106.14228820800793,66.8673095703126],[106.31208038330095,66.71972656249999],[106.32837677001976,66.5195999145509],[106.19978332519531,66.42591857910168],[106.18598937988276,66.18099975585943],[106.4495925903322,66.11328887939459],[106.5195922851564,65.98461914062517],[106.49577331542984,65.688705444336],[106.85269927978538,65.54202270507818],[106.83657836914057,65.3800888061524],[106.53089141845703,65.35589599609386],[106.41598510742199,65.21556091308588],[106.04469299316406,65.07867431640625],[106.08288574218754,64.87686920166014],[105.72568511962919,64.67439270019537],[105.80818939208983,64.50167846679686],[106.09849548339842,64.44148254394537],[106.56778717041043,64.44902038574219],[107.0106735229495,64.36584472656244],[107.27388763427761,64.35552215576183],[107.305992126465,64.26539611816406],[107.62167358398455,64.28575134277344],[107.93347167968761,64.19406127929688],[108.07008361816423,64.2308349609375],[108.22488403320341,64.19969940185558],[108.41978454589866,64.04077911376964],[108.21099090576183,63.95898437500011],[107.64058685302734,63.9286613464356],[107.52798461914055,63.83859252929693],[107.22399139404313,63.917171478271484],[107.11349487304716,63.85772705078119],[106.6923751831054,63.92959213256836],[106.7594757080081,63.792926788330185],[106.65098571777338,63.56152725219732],[106.52508544921886,63.48440170288086],[106.74307250976591,63.323417663574276],[106.44538116455071,63.16439056396496],[106.39649963378935,63.053401947021534],[106.17459106445312,63.02289581298828],[106.20367431640653,62.90058517456055],[106.52788543701193,62.70965194702149],[106.55267333984396,62.611968994140675],[106.80757141113293,62.577873229980575],[106.74647521972662,62.467819213867294],[106.36696624755871,62.23390197753912],[106.43609619140624,62.17500686645507],[106.3584823608399,62.006202697753956],[105.88639068603516,61.792602539062614],[105.94728851318382,61.66402435302739],[105.57048797607416,61.56637191772461],[105.24727630615239,61.414550781250114],[104.89459991455084,61.32469558715821],[105.01318359375017,61.18880844116216],[104.71078491210966,61.10625076293957],[104.5557937622072,60.98606491088878],[104.57118988037136,60.711750030517635],[104.4766845703125,60.60294342041021],[104.8090896606447,60.36547088623053],[105.08998870849638,60.28499221801758],[105.43428039550793,60.26477432250976],[105.40668487548827,59.93064117431652],[105.4935836791995,59.84915161132819],[105.05778503417963,59.857639312744205],[104.73638153076183,59.6727752685548],[104.83638763427734,59.53829574584961],[105.27748870849621,59.23059844970709],[105.30099487304705,59.101051330566406],[105.0714874267581,59.03755187988287],[104.73359680175781,58.87413787841802],[104.83798217773442,58.73712158203125],[104.61929321289057,58.63664627075189],[104.28269958496094,58.6254272460938],[104.19309234619163,58.770755767822266],[103.90348815917986,58.74250411987299],[103.87898254394537,58.89309692382806],[103.46849060058616,58.95306777954096],[103.28791046142607,59.06786727905285],[103.11837768554699,59.29439163208014],[102.88977813720707,59.3064460754395],[102.75149536132818,59.206871032714844],[102.40089416503906,59.167301177978516],[102.3208770751956,59.0443496704101],[102.47080230712919,58.88842773437505],[102.49607849121094,58.75176239013666],[102.15978240966814,58.552066802978565],[101.61859130859403,58.42313766479497],[101.46989440917986,58.24704742431652],[101.07718658447283,58.11627578735363],[101.14799499511724,58.04628753662109],[100.97428894042997,57.87890625000011],[100.7143859863283,57.8863182067871],[100.71709442138672,57.68139266967784],[100.87288665771501,57.50151062011719],[100.6624908447265,57.42540740966797],[100.34409332275395,57.55021286010736],[100.3657836914063,57.63893890380864],[100.25708770751974,57.81548690795909],[100.05778503417991,57.8380393981933],[99.93135833740263,58.090202331543026],[99.56242370605473,58.07381057739258],[99.42675018310564,57.95764923095708],[99.3619537353516,57.80164337158209],[98.99233245849632,57.73973083496094],[98.69966125488297,57.79028701782232],[97.85095214843756,57.8077278137207],[97.27159118652355,57.05503845214843],[97.54944610595709,56.97365188598632],[97.43206787109375,56.808643341064396],[97.72278594970709,56.79839324951183],[97.6790771484375,56.586856842041016],[97.83305358886741,56.55344772338861],[97.81568145751959,56.41099548339849],[97.46293640136736,56.38546371459961],[97.47972869873064,56.215599060058594],[97.24575805664068,56.060150146484375],[97.06554412841803,56.1075553894043],[96.8980560302735,56.021305084228516],[96.85897064209007,55.883861541748104],[96.67596435546892,55.78876876831065],[96.74478912353527,55.6108512878418],[96.72574615478533,55.430507659912166],[96.81917572021496,55.335166931152344],[96.56729125976562,55.26968765258795],[96.61862182617193,55.17959213256836],[96.52938079834007,55.0153427124024],[96.60356903076195,54.934135437011776],[96.58145904541021,54.78104782104498],[96.36582183837908,54.540847778320426],[96.00881195068358,54.57380294799799],[95.88717651367209,54.44483566284191],[95.69361114501982,54.424602508545036],[95.58200073242209,54.24648284912115],[95.97604370117193,54.081790924072315],[96.23450469970726,53.83367156982422],[96.42700195312527,53.70550537109375],[96.6574020385745,53.67288589477545],[96.62551879882817,53.59534072875971],[96.35581207275412,53.53716659545892],[96.14958953857428,53.53629302978526],[95.99554443359402,53.47132110595703],[95.65732574462896,53.510955810546875],[95.317451477051,53.398845672607536],[95.12781524658203,53.46241760253912],[95.03922271728527,53.40536499023443],[94.66674041748041,53.387172698974666],[94.46691131591795,52.93654632568365],[94.13465881347656,52.88348770141613],[93.89962768554703,52.5786972045899],[93.74628448486345,52.48766326904297],[93.59529876709007,52.20566558837896],[93.41497039794939,52.184146881103516],[92.97964477539091,51.962425231933594],[92.82620239257812,51.851963043213004],[92.64479064941423,51.857685089111435],[92.38773345947271,51.7964248657226],[91.84846496582047,51.7764930725097],[91.38346099853531,51.892326354980575],[91.11965179443354,51.86716842651373],[90.98229980468761,51.929237365722656],[90.79418182373051,51.87935256958007],[90.65062713623041,52.0596656799317],[90.45197296142584,52.163402557373104],[90.70031738281256,52.45823669433605],[91.03803253173845,52.66026306152338],[91.24193572998064,52.747539520263665],[91.39631652832053,52.86803054809582],[91.35114288330105,53.07753753662121],[91.65988159179693,53.15853500366222],[91.84126281738281,53.288341522216854],[91.74404907226568,53.446750640869084],[91.46974945068382,53.51394653320324],[91.32659149169916,53.81670761108404],[91.46513366699217,53.96609115600597],[91.4639129638673,54.05661773681634],[91.20953369140624,54.33827590942383],[91.15901184082037,54.48793411254894],[90.85501098632835,54.62679672241222],[90.91528320312523,54.79112625122075],[90.45833587646513,54.87079620361334],[90.43556213378912,55.0163955688476],[90.12921142578124,55.10525131225586],[89.9039916992188,55.08612823486334],[89.65784454345714,55.003131866455185],[89.54999542236334,55.046417236328125],[89.20083618164074,54.99044799804698],[88.96607971191423,55.184829711914006],[88.9501571655274,55.28911590576183],[88.63609313964838,55.424762725830135],[88.96105194091825,55.653461456298885],[89.1933212280274,55.68408966064458],[89.42308807373064,55.78010940551763],[89.247367858887,56.015018463134766],[89.22174835205101,56.127666473388786],[88.93104553222662,56.29353332519542],[88.71897888183616,56.35764694213873],[88.61518859863287,56.50189971923828],[88.67256164550798,56.6429557800293],[88.61354064941435,56.87193679809582],[88.72753906250006,57.01923751831055],[88.69318389892578,57.18791198730463],[88.84272766113286,57.392879486083984],[89.09057617187527,57.47424316406249],[89.04875183105491,57.55642700195306],[89.38503265380865,57.654151916503956],[89.36644744873063,57.8667716979981],[89.16123199462889,57.942352294921925],[88.80641937255854,57.950714111328125],[88.63187408447277,58.046848297119254],[88.07513427734368,58.10902404785156],[87.9537887573245,58.270748138427784],[87.90283203125006,58.502258300781364],[88.30503082275389,58.76582717895507],[88.52142333984403,58.93806076049805],[88.80097961425787,59.01359558105481],[88.59142303466825,59.18015289306634],[88.5493774414063,59.286502838134766],[87.86553192138689,59.243034362793075],[87.69311523437517,59.38722610473633],[87.48242187500006,59.66497421264654],[87.1446151733399,59.67059707641613],[87.07840728759766,59.86007690429698],[86.45834350585936,59.946235656738345],[85.87180328369158,59.93009185791026],[85.54250335693386,59.88537597656256],[84.64437866210949,59.87342453002929],[84.57686614990229,59.98173141479492],[84.65495300292974,60.201347351074155],[84.82601928710938,60.33487319946295],[84.73190307617216,60.44677734375011],[84.25296020507841,60.84401702880865],[84.56581878662126,60.95654296875005],[85.66175842285168,61.259265899658196],[85.65365600585943,61.39339828491212],[85.96430969238298,61.46842193603515],[85.91587829589844,61.54807281494151],[85.65457916259764,61.57683563232427],[85.40196990966807,61.68707656860345],[84.76437377929705,61.78865814208984],[84.51338195800798,61.98855209350591],[84.51454162597673,62.178100585937614],[84.5862808227539,62.26531600952154],[84.91792297363298,62.44660949707036],[85.04309844970707,62.66841125488286],[85.50865173339861,62.92270278930664],[85.61633300781278,63.075511932373104],[85.53903198242193,63.14397811889654],[85.61133575439476,63.36091995239269],[85.12200164794938,63.578701019287166],[85.31461334228527,63.66764068603521],[85.35650634765648,63.8379478454591],[85.96140289306652,64.05160522460943],[85.96559143066418,64.26583862304693],[85.81849670410185,64.49195098876953],[85.92136383056635,64.57178497314464],[85.81340026855463,64.78584289550774],[85.56273651123075,64.83673095703136],[85.25509643554716,64.7798461914063],[84.98545074462908,64.92274475097668],[84.42256927490229,64.90697479248047],[84.33868408203142,65.10496520996094],[84.65340423583984,65.269142150879],[84.5837707519533,65.44721984863287],[84.31130981445341,65.65745544433605],[83.96014404296898,65.75729370117188],[83.57308197021484,65.78657531738293],[83.37172698974632,66.0139617919923],[83.60469818115229,66.1426391601563],[83.10823059082048,66.49989318847662],[83.3520660400391,66.65151977539068],[83.06177520751976,66.88204956054686],[82.17472839355497,67.2007446289064],[82.3633575439456,67.28780364990239],[82.36286163330095,67.53440093994163],[82.13707733154303,67.60752105712902],[81.78427124023466,67.88308715820318],[82.40893554687528,67.92445373535179],[82.42337799072271,68.06729125976562],[82.76107025146479,68.26068878173828],[82.72123718261736,68.55062866210938],[82.94504547119163,68.60554504394531],[82.6866531372073,68.77631378173834],[82.43271636962896,69.02983856201183],[82.473197937012,69.12739562988281],[81.94712066650413,69.17728424072277],[82.07879638671886,69.34305572509777],[81.7941589355471,69.41696929931646],[81.7123413085938,69.2663192749024],[81.03229522705095,69.19174194335943],[80.70544433593773,69.28064727783214],[79.88831329345709,69.32746124267578],[79.62031555175787,69.46599578857428],[79.51301574707058,69.62089538574224],[79.11716461181646,69.65074920654297],[78.99893951416038,69.8693008422851],[79.77902221679693,70.19899749755864],[80.40042877197271,70.41894531250028],[80.77522277832036,70.47492980957031],[80.9412384033206,70.62785339355462],[80.64058685302757,71.04404449462885],[79.95226287841824,71.13273620605463],[79.32951354980497,71.41822052001963],[79.4478149414062,71.5979537963867],[79.84688568115234,71.60134887695324],[80.17088317871105,71.6934204101563],[80.43543243408214,71.92166137695312],[79.82361602783203,72.05065917968756],[79.29625701904301,72.04562377929688],[78.70376586914057,72.20899200439482],[78.52656555175776,72.37232208251947],[79.49166870117199,72.34999847412104],[79.933334350586,72.20625305175781],[80.65416717529324,72.09375],[80.67968750000023,72.04634857177729],[81.26875305175793,71.84166717529308],[81.37708282470713,71.74791717529297],[81.77500152587908,71.6875],[82.6791687011721,71.75833129882824],[83.28281402587896,71.70259857177746],[82.97551727294922,71.51718902587895],[82.96823120117205,71.38801574707037],[82.2505187988283,71.24948120117188],[82.324478149414,71.05468750000011],[82.20051574707048,71.01197814941418],[82.40625000000028,70.7666702270509],[82.6463546752932,70.7640609741211],[82.863021850586,70.9359359741211],[83.13072967529314,70.84010314941418],[82.99531555175798,70.39427185058594],[82.68177032470719,70.25260162353521],[82.84999847412126,70.07291412353521],[83.184898376465,70.14323425292969],[82.97968292236345,70.29426574707026],[83.40208435058622,70.29792022705078],[83.64583587646513,70.3604202270509],[83.81198120117216,70.52031707763672],[83.60884857177763,70.69947814941412],[83.4203109741211,71.00572967529297],[83.16093444824224,71.24010467529307],[83.40364837646496,71.35468292236334],[83.44010162353533,71.47135162353516],[83.68698120117193,71.59426879882824],[83.37500000000027,71.83541870117188],[82.66406250000004,71.92240142822266],[82.21666717529325,72.28333282470709],[81.31041717529303,72.34791564941423],[80.91249847412125,72.42082977294922],[80.7671890258789,72.50676727294933],[80.86250305175776,72.62291717529308],[80.87916564941412,72.95417022705084],[80.58958435058611,73.06458282470709],[80.7041702270509,73.18958282470714],[80.37448120117193,73.2921829223634],[80.66822814941412,73.42134857177746],[80.53958129882807,73.55416870117188],[81.37083435058611,73.5729141235352],[81.91458129882824,73.63541412353516],[83.54792022705078,73.64375305175776],[84.8270797729495,73.75416564941418],[85.01667022705107,73.70207977294933],[85.51667022705078,73.71666717529297],[85.63333129882824,73.81041717529308],[86.86250305175781,73.8854141235351],[87.07239532470732,73.79010009765625],[86.38753509521501,73.56041717529314],[87.1791687011721,73.61042022705078],[87.48072814941429,73.78385162353521],[86.7296829223634,74.13489532470697],[86.62916564941418,74.25416564941406],[85.96458435058598,74.30416870117193],[85.9130172729492,74.36302185058588],[86.66458129882818,74.51249694824247],[86.40781402587896,74.60781097412114],[85.78541564941406,74.6416702270509],[86.15000152587919,74.78125000000011],[86.75416564941406,74.69583129882824],[87.46875000000028,74.98958587646477],[86.91510009765642,75.0911483764649],[87.27916717529325,75.14583587646484],[87.9145812988283,75.08541870117193],[88.60624694824241,75.32083129882841],[89.18541717529314,75.47083282470703],[89.54218292236351,75.43801879882812],[90.33958435058611,75.59166717529303],[90.98958587646501,75.59583282470709],[91.71302032470697,75.70259857177734],[92.35416412353521,75.7291641235352],[93.6020812988283,75.84583282470703],[93.24791717529297,76.027084350586],[93.72499847412132,76.12083435058588],[94.32499694824219,76.125],[94.61250305175787,76.07499694824247],[95.42916870117186,76.15208435058605],[95.89791870117199,76.13957977294922],[96.34375,75.97916412353516],[97.26615142822271,75.9536514282227],[98.20417022705078,76.08958435058592],[98.6645812988283,76.2291641235351],[99.50833129882824,76.11458587646483],[99.67864990234403,75.90676879882841],[99.99531555175798,75.93385314941433],[99.61198425292969,76.25989532470703],[99.09166717529295,76.33958435058605],[99.41041564941428,76.44583129882824],[100.95207977294922,76.47916412353544],[101.17552185058621,76.66197967529297],[100.92552185058587,76.85781097412121],[101.32759857177751,76.97864532470709],[101.35260009765642,77.09218597412138],[102.64009857177734,77.48906707763678],[103.28541564941412,77.629165649414],[104.00000000000017,77.69583129882817],[105.26667022705095,77.53958129882812],[105.87708282470709,77.53749847412115],[106.19010162353521,77.37760162353516],[105.80833435058588,77.36042022705072],[105.5973968505861,77.2442703247072],[104.96458435058594,77.15416717529303],[105.11458587646513,77.05625152587889],[105.88333129882812,77.09583282470714],[106.60260009765625,77.01823425292963],[107.2958297729495,77.00416564941406],[107.33125305175804,76.88749694824224],[106.93698120117193,76.71823120117188],[106.60208129882835,76.48332977294928],[107.94374847412138,76.53958129882818],[108.37500000000028,76.69374847412121],[109.57707977294938,76.7291641235352],[110.07239532470697,76.6744842529298],[110.43750000000017,76.73958587646501],[110.85832977294945,76.71041870117188]]],[[[102.42552185058594,79.41926574707031],[103.15833282470709,79.32291412353516],[102.85832977294943,79.17082977294933],[102.70989990234375,78.93906402587896],[103.47239685058588,79.11198425292969],[104.46458435058605,78.99166870117193],[104.77083587646506,78.83333587646484],[105.34531402587896,78.75156402587896],[105.25989532470709,78.4359359741212],[104.92082977294916,78.31874847412115],[104.38957977294928,78.3125],[102.97499847412126,78.17708587646513],[101.37083435058621,78.17708587646513],[100.04166412353533,77.94583129882812],[99.50624847412121,77.95207977294916],[99.54792022705084,78.12291717529324],[100.02500152587919,78.29582977294922],[100.27031707763683,78.45885467529291],[100.36718750000028,78.66301727294945],[101.39375305175793,79.2125015258789],[102.42552185058594,79.41926574707031]]],[[[91.94843292236344,80.08385467529303],[92.98958587646513,80.02708435058588],[93.87448120117188,79.90573120117199],[93.14167022705095,79.70417022705072],[91.99166870117199,79.67916870117199],[91.96926879882818,79.8036499023438],[91.30000305175804,79.83125305175781],[91.13801574707031,79.95885467529297],[91.39583587646477,80.05833435058605],[91.94843292236344,80.08385467529303]]],[[[97.53593444824247,80.16301727294933],[98.47083282470709,80],[99.30000305175787,80.04374694824241],[99.81041717529303,79.91666412353516],[100.31041717529313,79.65833282470732],[99.82083129882812,79.57083129882824],[99.81041717529303,79.32291412353516],[99.66041564941406,79.15833282470703],[99.96198272705077,78.93281555175793],[99.52916717529314,78.81666564941418],[99.10624694824247,78.79792022705084],[97.6312484741213,78.81666564941418],[96.81666564941435,78.9895858764649],[96.18125152587896,78.98542022705107],[94.91874694824217,79.04166412353521],[94.7687530517581,79.17082977294933],[94.29792022705078,79.32499694824236],[94.43593597412121,79.45365142822271],[93.70625305175781,79.55416870117193],[94.08333587646484,79.76875305175787],[94.72083282470726,79.79792022705084],[94.34843444824236,79.91718292236338],[94.92760467529303,80.08802032470709],[96.35416412353527,80.0999984741211],[97.53593444824247,80.16301727294933]]],[[[79.58385467529314,80.90052032470703],[80.19947814941435,80.84426879882817],[79.70833587646513,80.74166870117193],[78.82759857177734,80.7828140258789],[79.58385467529314,80.90052032470703]]],[[[90.86927032470703,81.22968292236328],[91.6312484741211,81.0999984741211],[91.0729141235351,81.02916717529308],[90.20833587646501,81.09375],[90.19583129882835,81.1812515258789],[90.86927032470703,81.22968292236328]]],[[[95.74218750000004,81.27343750000006],[96.1026000976562,81.23593902587902],[96.738021850586,80.95677185058592],[98.02916717529325,80.67916870117199],[97.40625,80.59791564941418],[97.59999847412138,80.29582977294916],[97.18958282470714,80.23958587646484],[95.82499694824241,80.21458435058594],[94.64583587646489,80.14791870117192],[94.37083435058615,80.06458282470707],[93.59166717529303,80.01041412353521],[92.6395797729495,80.1812515258789],[92.55000305175797,80.26457977294922],[91.75833129882835,80.26041412353516],[91.76041412353521,80.34583282470703],[92.7145843505861,80.46666717529308],[93.24010467529295,80.69635009765636],[92.6395797729495,80.77916717529297],[93.16510009765642,80.94843292236332],[94.46093749999994,81.01718902587885],[95.74218750000004,81.27343750000006]]]]},"properties":{"ID_0":188,"ISO":"RU-KYA","NAME_0":"Russia","ID_1":35,"NAME_1":"Krasnoyarsk","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Красноярский край","VARNAME_1":"Krasnoyarskiy Kray|Yeniseisk|Yeniseyskaya G."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[64.96775817871122,56.79666137695318],[64.98084259033203,56.6185188293457],[65.19559478759766,56.3365249633789],[65.5389633178713,56.33753967285162],[65.95559692382824,56.063632965087834],[66.30072021484375,56.105209350585994],[66.47815704345709,55.981964111328125],[66.62962341308622,56.05527114868164],[66.85343933105486,55.990516662597656],[67.2528152465822,55.97249221801757],[67.35261535644531,55.78641891479498],[67.8747177124024,55.69373321533203],[68.11446380615257,55.74163818359375],[68.20970916748058,55.61956024169921],[68.65050506591791,55.374019622802784],[68.65669250488287,55.25981140136719],[68.55744171142595,55.20096969604492],[68.17691040039057,55.18229293823242],[68.2852859497072,55.06443023681652],[68.20141601562506,54.957935333251896],[67.88439941406256,54.97859573364258],[67.75233459472649,54.8787117004395],[67.55253601074224,54.838359832763615],[66.78169250488276,54.760448455810604],[66.02005004882841,54.61809158325195],[65.83248901367193,54.688388824463004],[65.74189758300787,54.60297393798834],[65.50131225585955,54.65118408203125],[65.20079040527366,54.52456665039062],[65.24020385742205,54.36748504638683],[64.97794342041033,54.41962432861328],[64.74257659912126,54.4045753479005],[64.41555023193365,54.32775497436518],[63.88040542602544,54.28585433959961],[63.378082275390625,54.19743347167968],[63.108814239501896,54.36895751953131],[63.11988449096696,54.47005844116211],[63.28725051879905,54.56122970581054],[63.145675659179965,54.7323951721192],[62.7756843566895,54.67310333251953],[62.53170013427763,54.681823730468864],[62.41496658325195,54.743141174316406],[62.18416213989274,54.68358230590826],[61.94676208496088,55.01336288452154],[62.242473602295036,55.14459228515625],[62.05126571655279,55.29558563232433],[62.546329498290966,55.4912223815919],[62.5412254333496,55.77297210693365],[62.24063491821288,55.945957183837834],[62.20186233520502,56.05117797851562],[62.03094863891612,56.179256439208984],[62.04189682006837,56.30136108398449],[62.161491394043246,56.3459587097168],[62.399291992187564,56.55629730224614],[62.7471885681154,56.58284378051758],[62.94579315185575,56.64783859252941],[63.12365341186551,56.5966033935548],[63.496009826660384,56.6495628356933],[63.787296295166016,56.525180816650504],[64.11381530761724,56.50340270996094],[64.31227874755876,56.75274658203131],[64.58470916748053,56.86603164672863],[64.8467636108399,56.86332702636719],[64.96775817871122,56.79666137695318]]]},"properties":{"ID_0":188,"ISO":"RU-KGN","NAME_0":"Russia","ID_1":36,"NAME_1":"Kurgan","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Курганская область","VARNAME_1":"Kurganskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.77226638793968,52.051216125488395],[37.84363937377958,51.955501556396534],[38.003520965576115,51.912555694580135],[38.34043884277355,51.95900726318364],[38.4607200622558,51.92352294921881],[38.50942993164074,51.76330947875988],[38.211643218994304,51.65342330932628],[38.31935119628906,51.56193161010742],[38.405540466308764,51.355941772460994],[38.36970138549833,51.27934265136713],[38.03408050537138,51.42617797851574],[37.79271697998047,51.36293411254894],[37.43205261230469,51.378387451171875],[37.15841293334978,51.316738128662166],[36.987564086914176,51.19255828857416],[36.805816650390796,51.18906402587902],[36.61006927490263,51.085968017578125],[36.21975708007818,51.159671783447266],[36.01176071166998,51.10667419433605],[35.84481430053728,50.9765739440918],[35.535190582275675,50.947021484375114],[35.39136505126953,51.02016067504888],[35.1955184936524,51.05895996093756],[35.123470306396655,51.220962524414176],[34.97594833374052,51.236854553222656],[34.687877655029354,51.18821716308594],[34.6556549072265,51.248001098632926],[34.270694732666186,51.259902954101555],[34.22528076171881,51.399845123291016],[34.31819534301758,51.52880859375011],[34.126987457275675,51.68684005737299],[34.40315628051786,51.720806121826165],[34.327144622802905,51.871875762939446],[34.32296752929715,52.04505538940429],[34.593837738037166,52.08508300781256],[34.95538711547846,52.376113891601555],[35.460609436035156,52.479900360107536],[35.588775634765625,52.30160522460943],[35.91125488281244,52.321739196777344],[36.34196853637701,52.38766098022461],[36.48174285888666,52.248493194580135],[36.8284454345706,52.14659500122076],[37.14027023315447,52.108501434326286],[37.40274429321306,51.954723358154354],[37.4966773986817,52.037471771240234],[37.65216064453125,51.979854583740234],[37.77226638793968,52.051216125488395]]]},"properties":{"ID_0":188,"ISO":"RU-KRS","NAME_0":"Russia","ID_1":37,"NAME_1":"Kursk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Курская область","VARNAME_1":"Kurskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.74047660827648,58.99959945678723],[27.74012184143072,58.99973678588873],[27.902221679687553,59.24467849731456],[28.066911697387805,59.29944610595708],[28.063255310058707,59.29852294921881],[28.066911697387805,59.29944610595708],[28.07046127319336,59.2988395690919],[28.16885375976568,59.346359252929744],[28.043889999389705,59.477359771728636],[28.088611602783203,59.60631942749034],[28.001388549804744,59.689308166503956],[28.432695388794002,59.67967224121087],[28.472658157348803,59.82744216918946],[28.721944808960014,59.77388763427746],[28.957500457763786,59.8079185485841],[29.13038825988775,59.98736190795904],[29.69520759582548,59.932613372802784],[29.675977706909237,59.86321258544922],[29.850015640258846,59.8276252746582],[30.00914001464855,59.72918319702143],[30.06274032592779,59.68751144409185],[30.192295074462944,59.63624191284192],[30.4826335906983,59.62333679199224],[30.526046752929627,59.655380249023494],[30.59896850585937,59.70190048217768],[30.720363616943356,59.70893859863287],[30.75839424133312,59.7766227722169],[30.619201660156303,59.81810379028321],[30.495494842529297,59.887321472168026],[30.524717330932614,59.986141204833984],[30.35161590576178,60.05097961425788],[30.369991302490234,60.107704162597656],[30.38434410095215,60.128211975097706],[30.2376003265382,60.140625],[30.01099586486822,60.1847915649414],[29.82188606262218,60.236030578613395],[29.692167282104492,60.25753784179693],[29.63844299316412,60.26620864868169],[29.4552898406983,60.21669769287115],[29.41337585449224,60.16041564941413],[29.112499237060604,60.166667938232536],[28.625,60.354167938232536],[28.70416641235357,60.66041564941417],[28.602083206176815,60.66041564941417],[28.41250038146978,60.6500015258789],[28.049999237060657,60.510417938232365],[27.8773860931397,60.60169601440435],[28.537509918213004,60.958412170410156],[28.65682029724121,60.95082092285161],[28.84039497375505,61.13145065307611],[29.24556732177757,61.27341842651367],[29.3215980529788,61.33584976196295],[29.63990211486845,61.188323974609425],[30.56567192077631,61.0440444946289],[32.63402557373075,60.65151214599609],[32.78500366210943,60.646476745605575],[33.15790557861333,60.834022521972656],[33.44225692749052,61.01191711425792],[33.75271606445307,60.94764709472667],[33.90227508544939,61.10258483886719],[33.65436935424816,61.098407745361435],[33.47145843505865,61.19637298583996],[33.774394989013835,61.27626800537121],[34.50651168823265,61.24718093872082],[34.760131835937784,61.346153259277344],[35.488349914551065,61.16920852661144],[35.67248916625982,61.2005271911621],[35.60015106201183,60.94232940673839],[35.494171142578125,60.85186004638678],[35.20337677001958,60.79714202880871],[35.33945846557623,60.61004638671886],[35.14369964599638,60.15491104125976],[35.442920684814624,59.94422531127935],[35.433513641357706,59.76806259155285],[35.55297851562523,59.670536041259815],[35.500534057617244,59.438350677490234],[35.381988525390796,59.30266571044922],[35.170425415039176,59.250576019287216],[34.95458221435547,59.27118301391613],[34.80104064941406,59.090866088867294],[34.36262893676775,59.15995788574218],[34.1487998962404,59.10237503051769],[33.89463043212908,59.16339111328125],[33.69261932373058,59.34622955322276],[33.29788970947271,59.288463592529354],[33.127540588378906,59.356391906738224],[32.810691833496264,59.26338195800786],[32.720314025878906,59.06417846679681],[32.415027618408374,59.13207244873041],[32.31957626342802,59.26882171630871],[31.98918533325218,59.386997222900334],[31.888818740844954,59.27622222900402],[31.547933578491495,59.34099197387706],[31.574846267700256,59.22243499755871],[31.40617179870611,59.021141052246094],[31.01038360595703,59.01668167114263],[30.955749511719034,58.90620422363293],[30.77192878723173,58.82664108276367],[30.67292976379423,58.7098999023438],[30.384458541870227,58.67791748046886],[30.190319061279293,58.74063491821289],[30.109523773193644,58.617698669433594],[30.156940460205078,58.46409606933605],[29.92828369140619,58.4405021667481],[29.61540603637712,58.44390106201166],[29.34009361267095,58.54380798339855],[29.26895332336437,58.648597717285156],[29.01014709472656,58.78174972534191],[28.28304481506359,58.85065841674798],[28.185434341430664,58.95725250244146],[27.73826599121088,58.9934883117677],[27.74047660827648,58.99959945678723]]]},"properties":{"ID_0":188,"ISO":"RU-LEN","NAME_0":"Russia","ID_1":38,"NAME_1":"Leningrad","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Ленинградская область","VARNAME_1":"Saint Petersburg|Sankt-Peterburgskaya G.|Leningradskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[40.19570922851591,53.31672286987305],[40.12696456909191,53.192043304443416],[40.181606292724666,52.800712585449276],[40.011119842529524,52.74597167968756],[40.11714935302729,52.53764343261719],[40.384334564208984,52.451442718505966],[40.38084030151361,52.374431610107536],[40.60014724731473,52.32683563232433],[40.819225311279354,52.196453094482536],[40.69947814941423,52.133609771728516],[40.6066513061524,51.93589782714844],[39.9783210754395,51.94729614257807],[39.79224014282221,51.905361175537166],[39.593559265137,51.95172500610363],[39.56947708129899,52.04647827148432],[39.22228622436552,52.08960342407232],[39.146160125732706,51.97442626953124],[38.94610214233427,52.0831031799317],[38.730281829833984,52.10144042968749],[38.34043884277355,51.95900726318364],[38.003520965576115,51.912555694580135],[37.84363937377958,51.955501556396534],[37.77226638793968,52.051216125488395],[37.75745010376005,52.15547561645502],[38.08731842041044,52.345558166503906],[37.983795166015796,52.477031707763786],[37.786933898925895,52.610916137695305],[37.88723373413086,52.77060699462896],[37.85785293579101,53.017463684082145],[37.90835952758806,53.06698608398443],[38.278091430664006,53.05439758300787],[38.3254127502442,52.95281219482433],[38.711978912353516,53.11088943481445],[38.53716659545927,53.320228576660156],[38.822742462158374,53.36959075927745],[38.727420806884766,53.492717742919865],[38.913753509521655,53.56142807006836],[39.03246307373064,53.56354904174805],[39.202587127685774,53.38211059570318],[39.5585365295413,53.41425323486328],[39.586589813232706,53.506538391113395],[39.76686096191412,53.5723876953125],[39.90851211547857,53.528373718261776],[40.00093078613287,53.388397216796925],[40.19570922851591,53.31672286987305]]]},"properties":{"ID_0":188,"ISO":"RU-LIP","NAME_0":"Russia","ID_1":39,"NAME_1":"Lipetsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Липецкая область","VARNAME_1":"Lipetskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[159.98333740234386,61.12916564941412],[159.9119873046876,61.25781249999994],[160.1125030517578,61.50208282470708],[160.28073120117188,61.55989837646496],[160.4119873046875,61.76094055175792],[160.3484344482422,61.91614913940423],[160.03176879882824,61.84531021118169],[159.8750000000001,61.70416641235357],[159.56823730468793,61.65781021118169],[159.40573120117233,61.870315551757805],[159.04374694824216,61.91666793823253],[158.51823425292991,61.79843521118175],[158.29374694824241,61.827083587646484],[158.07135009765648,61.73385620117198],[157.52082824707028,61.79166793823247],[157.03176879882812,61.647396087646435],[156.94375610351562,61.55625152587896],[156.68959045410156,61.52708435058605],[156.56040954589855,61.210414886474545],[156.1296844482423,61.02656555175787],[155.9234313964846,60.872398376464844],[155.90415954589844,60.766666412353565],[154.8046875000001,60.29322814941418],[154.59323120117188,60.10885620117187],[154.40885925292991,60.064060211181754],[154.4871826171875,59.881019592285206],[154.22319030761716,59.874019622802784],[154.2545318603518,59.69350433349614],[154.07749938964866,59.504760742187614],[154.4230194091798,59.41446304321283],[154.64503479003918,59.54237747192388],[154.7908630371095,59.46406555175786],[155.01211547851574,59.47608947753912],[155.21028137207054,59.34682464599621],[155.07225036621105,59.191757202148544],[154.67498779296886,59.14793395996093],[154.48554992675793,59.22055435180664],[154.30435180664074,59.09045410156262],[153.94393920898435,59.06895828247076],[153.83995056152352,59.16860198974614],[153.49499511718773,59.23373794555669],[153.3502044677734,59.10234832763672],[153.01611328125023,59.066665649414006],[152.89106750488315,58.91709136962902],[152.54833984375,58.95122146606445],[152.40887451171886,59.024333953857486],[152.14675903320324,58.97589492797857],[152.0644378662109,58.88826751708995],[151.69747924804688,58.844978332519645],[151.36186218261741,58.85605239868164],[151.14216613769543,59.06758499145508],[151.4605407714845,59.161540985107365],[151.75318908691406,59.12911224365239],[152.114959716797,59.15066146850597],[152.00111389160156,59.26444625854497],[151.76603698730491,59.33942413330078],[151.66395568847668,59.45706176757823],[151.40504455566418,59.60520553588862],[150.75062561035168,59.52876663208007],[150.45878601074227,59.61594390869151],[149.5885314941406,59.75819778442383],[149.3401641845703,59.71995544433593],[149.08993530273438,59.60900878906255],[149.16459655761741,59.48450851440429],[148.71278381347656,59.453887939453125],[148.73721313476574,59.36113739013684],[148.57498168945312,59.23823547363287],[148.4246368408203,59.25260162353527],[148.39981079101574,59.376167297363395],[148.16882324218759,59.40776443481457],[147.8833465576172,59.38582611083984],[147.474609375,59.24710464477544],[147.2977752685547,59.3341674804688],[146.96276855468795,59.36966323852539],[147.19609069824227,59.416091918945256],[147.2790985107422,59.644779205322315],[147.2309875488282,59.86794662475592],[147.0269775390625,59.95043563842768],[146.74647521972702,59.991527557373104],[146.77308654785156,60.095939636230526],[146.57278442382844,60.11857223510748],[146.47117614746094,60.226314544677784],[145.93698120117207,60.18375015258789],[145.7098846435548,60.29384613037103],[145.59918212890648,60.443355560302734],[145.72608947753918,60.558345794677734],[146.22708129882835,60.74336242675792],[146.53338623046886,60.663650512695426],[146.53398132324241,60.898174285888786],[146.73918151855491,60.93827819824224],[146.85098266601585,61.17520523071289],[146.67080688476574,61.46073532104492],[146.6898651123048,61.57832717895519],[146.2452850341798,61.90600967407238],[145.8313903808595,62.00483703613287],[145.49168395996105,61.91955566406255],[145.03810119628918,62.05521011352539],[144.7891845703125,62.04123306274425],[145.19567871093784,62.28104782104492],[145.18888854980491,62.480262756347656],[145.41438293457077,62.59260559082031],[145.47879028320312,62.69906234741222],[145.44918823242188,62.95079803466797],[145.25457763671875,63.022399902343814],[145.23066711425793,63.16030120849616],[145.4005889892578,63.29434967041015],[145.45278930664094,63.47723007202154],[145.67266845703125,63.673095703124936],[145.65399169921886,63.83568191528331],[146.13739013671875,63.9250144958496],[146.35670471191406,64.15387725830084],[146.88987731933616,64.15978240966803],[147.3363800048829,64.04385375976574],[147.8032684326172,63.971019744873104],[148.02899169921886,63.997051239013615],[148.30088806152344,64.2037353515625],[148.04888916015625,64.40300750732433],[148.36888122558605,64.52863311767584],[148.50198364257835,64.44837188720709],[149.0696716308595,64.4332275390625],[149.31489562988304,64.37622833251959],[149.8047790527345,64.5534286499024],[150.10337829589866,64.46659851074219],[150.02236938476562,64.29946136474604],[150.61938476562509,64.1569213867188],[150.60638427734386,64.29465484619152],[151.1940917968751,64.33177185058594],[151.4098663330078,64.30570220947271],[151.5938110351567,64.42212677001953],[151.90916442871128,64.46640014648438],[152.3559722900393,64.37648773193371],[152.2891998291018,64.5013198852539],[152.7509918212893,64.6680526733399],[152.4937744140625,64.99733734130871],[152.76077270507824,65.2310562133789],[153.23977661132812,65.26466369628912],[153.52078247070335,65.42600250244139],[153.58659362792991,65.60246276855474],[153.55076599121105,65.81593322753912],[154.43188476562523,65.90635681152355],[154.2837677001953,66.07280731201178],[154.6177673339845,66.20345306396507],[155.0536804199221,66.12309265136734],[155.90588378906273,66.16924285888666],[156.0901794433596,66.05774688720707],[156.76467895507824,66.10266113281261],[157.015380859375,66.03624725341808],[157.13508605957043,65.90567779541014],[157.46388244628918,65.96273040771484],[157.7246856689453,66.08873748779308],[158.14646911621102,66.14128875732428],[158.3556823730471,66.07248687744152],[158.6168670654298,66.0995864868165],[158.45866394042966,66.22428894042973],[158.57537841796875,66.31752014160162],[158.9712677001953,66.20855712890625],[159.24395751953136,66.20253753662115],[158.9782867431643,65.99014282226555],[158.96820068359384,65.75019073486322],[159.13047790527366,65.67443084716808],[160.13206481933605,65.50003051757817],[160.22528076171886,65.3810195922852],[160.6400909423828,65.1752548217774],[161.306884765625,65.12402343749993],[161.68598937988293,65.04332733154291],[161.9074859619144,64.84993743896479],[162.1087036132816,64.78974914550787],[162.58186340332043,64.7549285888673],[162.79148864746105,64.66117095947266],[163.23428344726562,64.66918182373047],[163.24119567871116,64.54193115234375],[163.51039123535168,64.33881378173828],[162.9873809814453,64.15705108642578],[162.84187316894543,64.07023620605469],[162.97048950195312,63.8617935180664],[162.78858947753926,63.7246704101563],[163.06048583984375,63.57740402221691],[163.0708923339848,63.499443054199276],[162.7477722167971,63.36769485473633],[162.82566833496102,63.17364883422846],[162.61038208007812,63.08627319335938],[162.35816955566418,63.053524017333984],[162.29759216308594,62.86023330688487],[162.4432067871095,62.843231201171875],[162.82980346679733,62.64506912231452],[162.6827850341797,62.54821014404297],[162.80090332031247,62.438495635986385],[162.7540893554692,62.261215209960994],[162.22207641601585,62.14491271972667],[162.2705688476567,62.071186065673935],[162.548583984375,61.97920608520514],[162.28388977050793,61.88418579101556],[162.4502868652345,61.754013061523494],[162.4467773437501,61.666667938232365],[161.98541259765648,61.37291717529302],[161.64791870117188,61.25833511352539],[161.44375610351574,61.11875152587901],[160.86302185058625,60.845310211181754],[160.7859344482423,60.73176956176763],[160.15625000000023,60.66249847412121],[160.41041564941403,61.033332824706974],[159.93176269531273,61.01927185058594],[159.98333740234386,61.12916564941412]]]},"properties":{"ID_0":188,"ISO":"RU-MAG","NAME_0":"Russia","ID_1":40,"NAME_1":"Maga Buryatdan","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Магаданская область","VARNAME_1":"Magadanskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.07308959960966,56.66929626464855],[50.20691299438488,56.560447692871094],[50.0210914611817,56.46679306030285],[49.76081848144553,56.55646133422863],[49.441959381103516,56.46458053588867],[49.31427764892584,56.382301330566406],[49.120704650879134,56.42201614379877],[48.94845199584972,56.353889465332024],[48.98272705078142,56.1623878479005],[48.68954467773432,56.09873199462896],[48.433818817138956,55.83564758300781],[47.99329757690447,55.9805641174317],[47.882141113281364,56.13944625854498],[47.48185729980468,56.20182800292963],[47.35260391235368,56.34806060791027],[46.82055664062517,56.201248168945256],[46.72156143188482,56.13411712646478],[46.531948089599666,56.16180801391612],[46.15256881713873,56.02133560180663],[46.07202148437506,56.19384765624999],[45.88854217529325,56.24811935424805],[45.96123123168945,56.404739379882926],[45.7863502502442,56.46862792968761],[45.67081069946295,56.58627700805664],[45.93265914916998,56.67398834228521],[45.908119201660156,56.843009948730526],[46.271324157715064,56.90852355957031],[46.76093292236351,56.959270477295036],[47.12258529663103,56.9371070861817],[47.20400238037115,56.84808731079112],[47.45054626464861,56.89188766479497],[47.732067108154524,57.06726074218755],[47.93585586547846,57.00985717773443],[48.16909790039068,57.04462814331055],[48.28388214111345,57.172962188720696],[48.4762496948245,57.138401031494254],[48.866508483887,57.17507171630864],[48.97995376586931,57.10931777954107],[49.188396453857536,57.191642761230526],[49.37073516845709,57.04097747802739],[49.62610244751005,57.10309219360363],[49.76773834228527,57.06097412109381],[49.80406951904296,56.90103530883795],[50.0118865966798,56.89493560791027],[50.1399002075197,56.797241210937614],[50.07308959960966,56.66929626464855]]]},"properties":{"ID_0":188,"ISO":"RU-ME","NAME_0":"Russia","ID_1":41,"NAME_1":"Mariy-El","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Марий Эл","VARNAME_1":"Mari|Mari-El|Republic of Mari El|Mariyskaya A.S.S.R.|Respublika Mariy El"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[46.11295318603515,55.05263519287103],[46.41702270507818,54.890769958496094],[46.480495452881144,54.76414489746099],[46.53348922729515,54.57398223876959],[46.69564056396484,54.39857864379883],[46.601036071777514,54.30510711669933],[46.36988449096708,54.2003440856933],[46.00680541992215,54.13702774047846],[45.84861755371099,53.97801208496105],[45.78382492065447,53.92664718627924],[45.339862823486555,53.87789154052746],[45.26502227783209,53.96246337890625],[44.94587707519537,53.965099334716854],[44.69901275634783,53.89772415161138],[44.63897705078131,53.83079147338873],[44.77973175048828,53.714698791503906],[44.598110198974666,53.6611785888673],[44.207118988037394,53.6920433044433],[44.00194931030268,53.76100158691406],[43.96096038818364,53.87809371948248],[43.584739685058764,53.993286132812614],[43.465740203857706,53.95763397216791],[43.26795196533203,54.01023101806652],[43.21132278442411,53.81036376953136],[42.626132965088175,53.76057815551758],[42.35323715209955,53.803802490234425],[42.493293762207315,53.96506118774419],[42.387748718261776,54.05428314208996],[42.72181320190435,54.16326141357422],[42.50807571411161,54.28580856323242],[42.58839416503912,54.483566284179744],[42.71737670898443,54.566768646240234],[42.403530120849894,54.72101211547863],[42.45948028564476,54.83276367187499],[42.6089515686038,54.763957977294865],[42.785453796386946,54.80738830566406],[42.90859985351579,54.75009155273449],[43.406631469726555,54.9408073425293],[43.72364425659191,54.8052215576173],[43.972797393799,54.78860855102539],[44.00392150878935,54.71948623657237],[44.25671386718767,54.590469360351676],[44.49576950073259,54.523147583007926],[44.9380798339846,54.469371795654354],[45.096000671386776,54.75362396240234],[45.29070663452177,54.86722564697277],[45.47542572021513,54.90557861328119],[45.4653968811038,55.0689048767091],[45.64815521240239,55.16316223144537],[45.724548339843864,55.01140213012695],[45.97623443603521,54.99423217773449],[46.11295318603515,55.05263519287103]]]},"properties":{"ID_0":188,"ISO":"RU-MO","NAME_0":"Russia","ID_1":42,"NAME_1":"Mordovia","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Мордовия","VARNAME_1":"Mordov|Mordvian Autonomous Republic|Mordvinia|Republic of Mordovia|Mordovian A.S.S.R."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.61025619506852,55.94179153442383],[37.87090682983427,55.81390762329113],[37.89623641967779,55.660552978515625],[37.5865478515625,55.550487518310604],[37.40147781372093,55.73043441772461],[37.41034317016596,55.85352325439464],[37.61025619506852,55.94179153442383]]]},"properties":{"ID_0":188,"ISO":"RU-MOW","NAME_0":"Russia","ID_1":43,"NAME_1":"Moscow City","TYPE_1":"Gorod","ENGTYPE_1":"City","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.32255554199236,56.75940322875988],[38.432846069335994,56.68896484374994],[38.320983886718864,56.51554489135742],[38.48987960815441,56.3611679077149],[38.44150543212919,56.250606536865234],[38.56043624877958,56.14213943481451],[38.613887786865405,55.985824584960994],[38.864627838134815,55.91325378417969],[39.04911422729503,55.9370231628418],[39.14805984497075,55.83596420288086],[39.381835937500284,55.75542831420898],[39.92851257324213,55.812946319580135],[40.085449218750284,55.624637603759815],[40.081409454345874,55.50656509399413],[40.24649429321295,55.3130722045899],[39.88040924072294,55.09492874145508],[39.82563018798851,54.99158859252935],[39.554161071777344,54.962036132812436],[39.25247573852556,54.621158599853516],[38.848407745361385,54.586853027343864],[38.683719635009936,54.2278099060058],[38.6728973388673,54.22926712036138],[38.67010116577177,54.23009490966802],[38.6642951965332,54.23201370239252],[38.59634780883806,54.25447082519531],[38.44290924072283,54.397415161132926],[38.515602111816406,54.593887329101676],[38.13704299926752,54.690452575683594],[37.96731185913103,54.83044433593744],[37.68643188476557,54.693054199218864],[37.48008346557623,54.80990219116222],[37.23786544799833,54.82754898071289],[37.15329360961913,55.07462310791015],[36.97644424438493,55.21963500976568],[36.64088439941406,55.22678756713873],[36.45362472534197,55.28030776977539],[36.33795166015641,55.15635681152355],[35.77828598022461,55.26192855834972],[35.58991241455095,55.204761505126896],[35.37735366821289,55.22885131835949],[35.28896713256847,55.28449249267584],[35.3502731323245,55.49065017700207],[35.34578704833984,55.75846481323236],[35.15716552734381,55.92962265014654],[35.328563690185604,56.07001113891607],[35.32214736938504,56.195327758789006],[35.47354507446295,56.2736701965332],[35.50653076171892,56.40373229980474],[35.67980957031273,56.460479736328125],[35.918178558349894,56.35478973388666],[36.24590301513677,56.3817977905274],[36.83159255981474,56.553646087646484],[37.131431579590014,56.52648162841797],[37.14842605590849,56.70548248291021],[37.586418151855526,56.81877136230474],[37.65044021606474,56.91661071777349],[38.02349853515641,56.84601593017584],[38.093559265136946,56.74406051635748],[38.32255554199236,56.75940322875988]],[[37.61025619506852,55.94179153442383],[37.41034317016596,55.85352325439464],[37.40147781372093,55.73043441772461],[37.5865478515625,55.550487518310604],[37.89623641967779,55.660552978515625],[37.87090682983427,55.81390762329113],[37.61025619506852,55.94179153442383]]]},"properties":{"ID_0":188,"ISO":"RU-MOS","NAME_0":"Russia","ID_1":44,"NAME_1":"Moskva","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Московская область","VARNAME_1":"Mosca|Moscou|Moscow|Moskau|Moskova|Moskovskaya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.82707977294916,66.58953094482428],[32.57421875,66.6021118164063],[32.28549575805681,66.37529754638672],[31.84942436218284,66.38124084472662],[31.576398849487475,66.62628936767578],[31.356845855712887,66.65115356445318],[30.67318725585943,66.64738464355479],[29.414360046386943,66.5865631103515],[29.08628273010254,66.82426452636719],[29.05362892150873,66.97798919677734],[29.642585754394702,67.35395050048828],[29.959157943725756,67.51733398437511],[30.03453063964838,67.66936492919915],[29.694522857666126,67.79374694824219],[29.334667205810717,68.07470703125],[28.65979194641113,68.19510650634788],[28.45036888122587,68.54766845703136],[28.716123580932557,68.73771667480469],[28.803527832031193,68.87494659423857],[28.434745788574276,68.90841674804688],[29.25886154174833,69.1198120117188],[29.314947128296122,69.3027801513673],[29.98613548278831,69.41334533691412],[30.365776062012003,69.6171112060548],[30.526632308959957,69.5425262451173],[30.94555473327642,69.58621978759777],[30.88333320617687,69.78958129882807],[31.521354675292965,69.67968750000011],[31.713020324707202,69.7963485717774],[32.05155944824236,69.80156707763683],[32.060417175293026,69.9437484741211],[32.514583587646655,69.8333358764649],[33.10156250000017,69.73698425292969],[33.09947586059575,69.6473999023438],[32.83333206176758,69.56666564941406],[32.16666793823259,69.63749694824224],[32.50624847412121,69.48124694824224],[33.491664886474894,69.402084350586],[33.366664886474666,69.2750015258789],[33.956249237060604,69.31041717529308],[35.25833511352539,69.19166564941406],[35.53489303588867,69.22239685058594],[36.281250000000284,69.09791564941435],[36.817184448242244,68.92343902587902],[37.658332824707315,68.68958282470714],[38.37551879882841,68.37551879882812],[38.6416664123538,68.37291717529303],[39.5796852111817,68.03176879882807],[39.86405944824236,68.0390625],[40.65416717529302,67.80000305175791],[41.03697586059564,67.63176727294933],[40.95885086059576,67.55468750000011],[41.12031555175787,67.40781402587919],[41.081771850585994,67.2484359741211],[41.351562500000284,67.19322967529303],[41.34739303588873,66.99218750000006],[41.08906555175787,66.74427032470714],[40.561981201172046,66.4505157470706],[40.002082824707315,66.25416564941405],[39.47499847412109,66.18333435058605],[39.11875152587896,66.10208129882824],[38.28333282470709,66.05625152587896],[37.73333358764654,66.10416412353527],[37.18333435058594,66.23542022705072],[36.55625152587896,66.27500152587896],[35.37916564941406,66.41458129882812],[34.90416717529308,66.59375],[34.462501525878906,66.53958129882818],[34.37760162353533,66.64635467529303],[33.94166564941412,66.68333435058594],[33.69010162353543,66.80468750000006],[33.502082824706974,66.71666717529297],[32.979167938232536,66.8958358764649],[32.75416564941435,67.0770797729495],[32.53906249999994,67.00364685058622],[32.53749847412138,66.87291717529297],[32.929164886474894,66.68125152587896],[33.18958282470726,66.6729202270509],[33.31614303588873,66.6359329223634],[33.265926361083984,66.60386657714871],[33.2487335205081,66.60832977294922],[33.2491340637207,66.61071014404301],[33.251560211181584,66.61557006835955],[33.24523544311552,66.620834350586],[33.24272918701189,66.62291717529303],[33.26813888549816,66.61458587646496],[33.27961349487321,66.61458587646496],[33.256248474121264,66.63333129882812],[33.13333511352556,66.64375305175793],[33.09488677978533,66.58125305175781],[33.08540344238286,66.58129882812523],[33.06508636474638,66.58080291748058],[33.059864044189396,66.57917022705078],[32.870834350585994,66.59999847412115],[32.82707977294916,66.58953094482428]]]},"properties":{"ID_0":188,"ISO":"RU-MUR","NAME_0":"Russia","ID_1":45,"NAME_1":"Murmansk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Мурманская область","VARNAME_1":"Murmanskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[49.140106201171875,69.50260162353521],[49.34583282470714,69.48750305175781],[49.932815551757805,69.31822967529308],[50.169269561767805,69.17760467529303],[49.6895828247072,68.86250305175787],[49.18958282470709,68.75624847412132],[48.58541488647483,68.70417022705078],[48.23333358764654,68.87291717529314],[48.231769561767635,69.10572814941412],[48.377601623535384,69.30573272705078],[48.733333587646655,69.45833587646484],[49.140106201171875,69.50260162353521]]],[[[64.7208328247072,69.24583435058594],[64.75468444824223,69.19947814941406],[64.73698425292997,69.13385009765625],[64.76014709472656,69.12368774414074],[64.59991455078142,69.00817871093749],[64.7704162597658,68.86550903320312],[65.30855560302757,68.81558227539068],[65.711166381836,68.53039550781249],[65.48619842529308,68.40888214111328],[65.06198120117216,68.41088867187528],[64.58423614501947,68.33515167236334],[64.61116027832048,68.19655609130854],[63.93441009521479,68.02709197998053],[63.98976135253906,67.91629791259771],[63.740608215331974,67.80329895019531],[63.38210678100597,67.7717514038087],[63.13280105590849,67.67556762695318],[62.96840667724615,67.53881072998053],[62.94461059570318,67.40357971191412],[61.45497512817399,66.99696350097662],[60.20227813720714,66.98963928222656],[58.98286056518572,66.98661804199224],[55.97161865234391,66.97808074951178],[54.594753265381144,66.99330139160162],[52.16579818725603,67.0763626098634],[51.643352508544865,66.91107940673851],[51.554416656494425,66.77960968017578],[51.262855529785384,66.71501922607428],[48.93068695068359,66.10868072509771],[48.10776519775419,66.13459014892578],[47.67824554443371,65.94245147705072],[47.80115509033203,65.85836791992188],[47.1370964050293,65.83535766601568],[46.41108703613281,66.07476043701178],[46.147785186767635,66.02928161621094],[45.856849670410384,66.11561584472666],[45.6815948486331,66.08473205566418],[45.193916320801065,66.21047973632812],[44.63889694213873,66.27404022216803],[44.45759582519537,66.37618255615229],[44.21242523193354,66.39486694335949],[44.471351623535384,66.6713485717774],[44.35885620117216,66.77656555175781],[44.520832061767635,66.9000015258789],[44.30833435058622,67.06458282470703],[43.76718521118181,67.25885009765653],[44.143230438232706,67.75885009765625],[44.11927413940447,67.88072967529297],[44.20364379882807,68.30156707763678],[43.500000000000284,68.54374694824219],[43.43125152587896,68.66874694824224],[44.0625,68.53125000000011],[44.88124847412132,68.55208587646479],[45.470832824707315,68.52500152587885],[45.88750076293974,68.45625305175787],[46.03697586059575,68.32447814941412],[46.54531478881859,68.12031555175781],[46.531768798828296,68.02239990234386],[46.69166564941412,67.80625152587896],[46.30625152587919,67.81458282470703],[45.36249923706072,67.71458435058611],[45.31614303588884,67.57968902587902],[44.9838562011721,67.489067077637],[44.95833206176774,67.31874847412121],[45.58124923706072,67.16041564941412],[45.808856964111385,66.8984375],[46.033332824707315,66.81874847412108],[46.572399139404524,66.8578109741211],[46.66041564941428,66.81458282470707],[47.458332061767635,66.91666412353521],[47.74531555175804,67.00468444824219],[47.77135086059593,67.3348999023438],[47.930728912353686,67.42760467529303],[47.83177185058622,67.57865142822288],[47.995315551757805,67.6296844482423],[48.6354179382327,67.68541717529297],[48.90625000000017,67.8291702270509],[49.18750000000028,67.85416412353527],[49.92291641235362,68.04792022705107],[50.83750152587896,68.33750152587902],[51.568748474121094,68.4229202270509],[51.54583358764677,68.48124694824224],[52.02708435058594,68.53333282470707],[52.29531478881852,68.4557342529298],[52.41249847412104,68.32499694824241],[52.745834350585994,68.44374847412104],[52.4833335876466,68.65625],[53.375,68.88333129882818],[53.60885620117193,68.88281250000011],[53.8651008605957,68.7921829223634],[53.73176956176758,68.59843444824213],[53.941143035888615,68.39843750000006],[53.4333343505861,68.37083435058621],[53.2348937988284,68.22968292236334],[53.70833206176763,68.24791717529297],[54.02656555175787,68.21510314941406],[54.22083282470714,68.30833435058588],[54.46458435058605,68.29166412353521],[54.63958358764659,68.183334350586],[54.9937515258789,68.4166641235351],[55.38124847412138,68.54792022705078],[55.67083358764654,68.55000305175798],[56.01458358764677,68.64375305175787],[56.456249237060604,68.589584350586],[57.33906555175787,68.53385162353538],[57.6588516235351,68.73384857177746],[58.879165649414006,68.97708129882812],[59.351562500000284,68.81406402587895],[59.478649139404524,68.67552185058594],[59.19427108764671,68.66614532470697],[59.174999237060774,68.38749694824236],[59.692184448242415,68.32447814941412],[59.972393035888835,68.49948120117188],[59.80468750000006,68.61510467529318],[60.5187492370606,68.70833587646484],[60.89791488647484,68.88749694824224],[60.97447586059565,68.98176574707043],[60.88906478881853,69.13072967529308],[60.64427185058594,69.13385009765625],[60.63489913940435,69.25781249999994],[60.22343444824247,69.50781250000011],[60.206771850585994,69.6223983764649],[60.73541641235357,69.65625],[60.72343444824219,69.8098983764649],[60.887500762939396,69.85624694824224],[61.45416641235362,69.77083587646496],[61.902084350586215,69.73750305175776],[62.783332824707195,69.71458435058605],[63.53749847412126,69.629165649414],[64.308334350586,69.49791717529308],[64.95625305175787,69.29374694824224],[64.7208328247072,69.24583435058594]]],[[[59.04843521118158,70.45051574707031],[59.60208511352544,70.19999694824229],[60.452083587646655,69.92916870117199],[60.50416564941412,69.72083282470709],[59.99010086059564,69.65989685058594],[59.600521087646534,69.72135162353516],[59.45677185058594,69.88385009765625],[59.02135467529302,69.87551879882818],[58.62916564941406,70.06250000000011],[58.767185211181705,70.40052032470703],[59.04843521118158,70.45051574707031]]]]},"properties":{"ID_0":188,"ISO":"RU-NEN","NAME_0":"Russia","ID_1":46,"NAME_1":"Nenets","TYPE_1":"Avtonomnyy Okrug","ENGTYPE_1":"Autonomous Province","NL_NAME_1":"Ненецкий АОк","VARNAME_1":"Nenetskiy A.Okr.|Nenetskiy Aok"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[46.390293121338175,58.07998275756841],[46.474205017089844,58.05123901367187],[47.379295349121314,58.01665496826166],[47.7784423828125,57.94479370117187],[47.60154342651367,57.83774948120122],[47.54647445678734,57.62343215942394],[47.02562713623047,57.50749206542974],[46.83543777465826,57.527214050293075],[46.707847595214844,57.42402267456055],[46.8387985229495,57.21585083007818],[46.76093292236351,56.959270477295036],[46.271324157715064,56.90852355957031],[45.908119201660156,56.843009948730526],[45.93265914916998,56.67398834228521],[45.67081069946295,56.58627700805664],[45.7863502502442,56.46862792968761],[45.96123123168945,56.404739379882926],[45.88854217529325,56.24811935424805],[46.07202148437506,56.19384765624999],[46.15256881713873,56.02133560180663],[46.11907196044922,55.816932678222656],[45.9772682189942,55.709350585937436],[46.01667785644537,55.610549926757756],[46.39575576782232,55.48254776000982],[46.24536132812506,55.28040313720703],[46.091865539551065,55.22121047973633],[46.11295318603515,55.05263519287103],[45.97623443603521,54.99423217773449],[45.724548339843864,55.01140213012695],[45.64815521240239,55.16316223144537],[45.4653968811038,55.0689048767091],[45.47542572021513,54.90557861328119],[45.29070663452177,54.86722564697277],[45.096000671386776,54.75362396240234],[44.9380798339846,54.469371795654354],[44.49576950073259,54.523147583007926],[44.25671386718767,54.590469360351676],[44.00392150878935,54.71948623657237],[43.972797393799,54.78860855102539],[43.72364425659191,54.8052215576173],[43.406631469726555,54.9408073425293],[42.90859985351579,54.75009155273449],[42.785453796386946,54.80738830566406],[42.6089515686038,54.763957977294865],[42.45948028564476,54.83276367187499],[42.453159332275504,55.000286102294865],[42.22428131103521,54.94297027587885],[41.86863708496122,55.02573776245122],[41.8036880493164,55.11595535278326],[41.874668121338004,55.131786346435604],[42.13646697998041,55.408931732177784],[42.08871078491228,55.60809326171874],[42.26237106323248,55.743309020996094],[42.42458343505882,55.79261016845708],[42.47143936157254,55.90983963012701],[42.691493988037166,55.97716522216797],[42.71823883056657,56.08634185791021],[42.933547973632756,56.20075225830083],[42.744323730468864,56.2433128356933],[42.620475769043026,56.40495300292963],[42.91299819946317,56.472671508789006],[42.92481613159208,56.62143707275385],[42.8017654418947,56.76897811889643],[42.97316741943388,56.83714294433605],[43.51523971557617,56.88269805908214],[43.68645858764659,57.06120300292974],[43.49840164184564,57.11389541625982],[43.556827545166016,57.247447967529354],[43.78118133544939,57.313419342041065],[43.72822952270519,57.44832992553722],[44.079048156738565,57.44083404541009],[44.38940811157232,57.51670074462902],[44.611461639404354,57.7028465270996],[44.7562332153322,57.69328689575195],[44.87721633911144,57.86728286743164],[44.88726806640642,58.066131591796875],[45.224075317382756,58.07514190673834],[45.466667175293246,58.033771514892585],[45.63156509399425,57.921977996826165],[45.86507034301775,58.044666290283196],[46.390293121338175,58.07998275756841]]]},"properties":{"ID_0":188,"ISO":"RU-NIZ","NAME_0":"Russia","ID_1":47,"NAME_1":"Nizhegorod","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Нижегородская область","VARNAME_1":"Gor'kiy|Gor'kovskaya|Gorky|Nizhegorodskaya|Nizhniy-Novgorod|Nizhegorodskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[44.96052932739286,43.643440246582145],[44.92815780639642,43.535919189453125],[44.81823348999051,43.48669052124029],[44.597927093505916,43.527099609375114],[44.58394241333008,43.39837646484375],[44.661403656005916,43.34613418579107],[44.66234970092779,43.204257965088004],[44.92951583862322,43.04457092285156],[44.98039627075207,42.88537597656256],[44.91403198242193,42.81735229492199],[44.67710876464843,42.74794769287121],[44.49127197265619,42.74933624267578],[44.25662231445341,42.68871688842785],[44.20903778076172,42.62676239013677],[43.948078155517805,42.558475494384766],[43.73138046264654,42.627563476562614],[43.79086303710966,42.750072479248104],[43.56170654296881,42.8660888671875],[43.417610168457145,42.89511108398443],[43.62340545654325,42.91222381591797],[43.8518829345706,43.130386352539006],[43.93302917480486,43.26514053344721],[44.16654205322271,43.201122283935604],[44.217716217041016,43.34904098510753],[44.522533416748104,43.36967849731445],[44.522731781005916,43.59682464599615],[44.42427062988309,43.7303581237793],[44.71249008178711,43.759857177734375],[44.888744354248104,43.726741790771484],[44.96052932739286,43.643440246582145]]]},"properties":{"ID_0":188,"ISO":"RU-SE","NAME_0":"Russia","ID_1":48,"NAME_1":"North Ossetia","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Северная Осетия","VARNAME_1":"Kuzey Osetya|Respublika Severnaya Osetiya|Severnaya Osetiya-Alaniya|North Ossetian A.S.S.R.|Republic of North Osetia-Alania"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.80104064941406,59.090866088867294],[35.04992294311529,58.977817535400504],[35.19412612915045,58.84885787963873],[35.52941894531267,58.867214202880966],[36.203342437744425,58.6744270324707],[36.33991622924816,58.53141403198243],[36.471992492676065,58.522487640380916],[36.16667938232439,58.48733139038085],[35.98049926757807,58.39838790893566],[35.6119003295899,58.43427276611333],[35.40372085571312,58.3637351989746],[35.34325408935541,58.26561737060547],[35.094562530517635,58.172420501708984],[34.85094451904308,58.228973388671875],[34.742275238037166,58.056179046630916],[34.23824310302757,58.19052124023444],[33.62504196167009,58.04153060913097],[33.7308349609375,57.96771240234375],[33.64765548706083,57.71880340576171],[33.417179107666016,57.66699600219726],[33.387847900390796,57.55055236816406],[33.09372711181635,57.40131759643555],[32.80146408081072,57.39684677124035],[32.67626571655302,57.2868309020996],[32.30517959594726,57.20772933959961],[32.31204986572294,57.1481323242188],[31.81422615051275,57.05892181396489],[31.656005859375167,56.88953399658209],[31.013320922851847,56.941478729248104],[30.842266082763732,56.917984008789176],[30.70230293273954,57.00981521606457],[30.820951461792045,57.225479125976676],[30.48054122924816,57.345027923583984],[30.661579132080245,57.53031158447265],[30.507642745971964,57.628013610839844],[30.54988288879423,57.874526977539176],[30.308898925781307,57.87091445922851],[29.87174606323259,58.03969955444336],[29.69514465332037,58.06834030151372],[29.7235622406007,58.22328186035157],[29.928386688232365,58.28647613525396],[29.92828369140619,58.4405021667481],[30.156940460205078,58.46409606933605],[30.109523773193644,58.617698669433594],[30.190319061279293,58.74063491821289],[30.384458541870227,58.67791748046886],[30.67292976379423,58.7098999023438],[30.77192878723173,58.82664108276367],[30.955749511719034,58.90620422363293],[31.01038360595703,59.01668167114263],[31.40617179870611,59.021141052246094],[31.574846267700256,59.22243499755871],[31.547933578491495,59.34099197387706],[31.888818740844954,59.27622222900402],[31.98918533325218,59.386997222900334],[32.31957626342802,59.26882171630871],[32.415027618408374,59.13207244873041],[32.720314025878906,59.06417846679681],[32.810691833496264,59.26338195800786],[33.127540588378906,59.356391906738224],[33.29788970947271,59.288463592529354],[33.69261932373058,59.34622955322276],[33.89463043212908,59.16339111328125],[34.1487998962404,59.10237503051769],[34.36262893676775,59.15995788574218],[34.80104064941406,59.090866088867294]]]},"properties":{"ID_0":188,"ISO":"RU-NGR","NAME_0":"Russia","ID_1":49,"NAME_1":"Novgorod","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Новгородская область","VARNAME_1":"Novgorodskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[84.45922088623064,56.020111083984375],[84.65991210937506,55.64578247070324],[84.819107055664,55.52210617065441],[84.93022155761741,55.109279632568416],[84.87792968750006,54.985649108886825],[85.07901000976568,54.80011367797857],[84.95416259765642,54.74328613281249],[84.97405242919926,54.56602096557617],[85.08579254150408,54.40634155273443],[84.61552429199224,54.28049087524414],[84.41899871826172,54.1351776123048],[84.23905181884794,54.187641143798885],[83.95371246337919,54.10057449340831],[83.85452270507841,54.117332458496094],[83.1566238403323,54.04161071777344],[82.75261688232428,53.841621398925895],[82.65225982666021,53.63429641723633],[82.45288085937517,53.51412200927746],[82.15647125244158,53.61235809326183],[82.18756103515642,53.66240692138672],[81.78419494628906,53.7239723205567],[81.56748962402361,53.925357818603516],[81.44765472412121,54.087188720703125],[81.11106109619158,54.11580276489269],[80.94847106933622,54.26935958862316],[80.57778930664062,54.206935882568416],[80.24555206298834,54.03636169433605],[79.60083770751953,53.80756378173828],[79.53343963623058,53.73154067993164],[78.99720001220709,53.658744812011825],[78.69332885742188,53.65587234497076],[78.59053039550781,53.52821350097661],[78.29058837890653,53.482833862304744],[78.09960937500006,53.56263732910156],[77.95584869384794,53.557872772216854],[77.9790878295899,53.38831329345703],[77.87168884277366,53.30647277832025],[77.57033538818382,53.480957031250114],[76.76202392578153,53.86912918090826],[76.5838241577149,53.96775436401373],[76.4266967773438,54.168167114257926],[76.74863433837895,54.16035079956055],[76.84252166748075,54.23458099365229],[76.9129714965822,54.45786666870117],[76.5041122436524,54.32680511474615],[76.23402404785162,54.35605239868164],[76.22730255126969,54.274337768554744],[75.69861602783209,54.13156890869151],[75.68568420410179,54.531581878662166],[75.7938079833985,54.66687393188471],[75.49248504638678,54.89171600341797],[75.29761505126947,54.907371520996094],[75.38691711425798,55.02746582031244],[75.1908111572265,55.26863479614269],[75.17321777343778,55.384094238281364],[75.30760955810553,55.50524520874029],[75.15763854980486,55.53881072998058],[75.09544372558588,55.67771911621094],[75.33411407470703,55.75337600708008],[75.29044342041021,55.84880828857422],[75.51678466796892,56.045333862304744],[76.00484466552746,56.15093231201171],[76.18302917480486,56.12651062011718],[76.27709197998047,56.21625518798833],[76.10459899902355,56.30200958251953],[76.03776550292974,56.472324371338004],[75.8425598144533,56.49049377441412],[76.24062347412126,56.68775558471679],[76.24051666259771,56.912467956543075],[76.10438537597685,57.229522705078125],[76.78825378417986,57.1636352539063],[78.0177078247072,57.1381072998048],[78.36187744140648,57.153560638427734],[78.43326568603544,57.09355545043957],[78.74101257324219,57.03640365600586],[79.29233551025419,56.98184204101568],[79.73370361328153,56.83523178100591],[80.26486968994169,56.41904067993164],[80.58939361572283,56.4421958923341],[81.14511871337919,56.523666381835994],[81.543754577637,56.26044845581066],[81.73280334472668,56.25837326049799],[82.38423156738281,56.36865234375006],[82.78032684326182,56.39110183715831],[82.83723449707031,56.48358917236328],[83.1100006103516,56.52379608154297],[83.23370361328136,56.42011260986334],[83.08963775634771,56.21646499633789],[83.35403442382841,55.841747283935604],[83.27904510498053,55.6742668151856],[83.60433197021501,55.67186737060552],[83.96934509277372,55.99017333984375],[84.14360809326176,56.02264785766601],[84.27587890625011,55.965461730957145],[84.45922088623064,56.020111083984375]]]},"properties":{"ID_0":188,"ISO":"RU-NVS","NAME_0":"Russia","ID_1":50,"NAME_1":"Novosibirsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Новосибирская область","VARNAME_1":"Novosibirskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[76.10438537597685,57.229522705078125],[76.24051666259771,56.912467956543075],[76.24062347412126,56.68775558471679],[75.8425598144533,56.49049377441412],[76.03776550292974,56.472324371338004],[76.10459899902355,56.30200958251953],[76.27709197998047,56.21625518798833],[76.18302917480486,56.12651062011718],[76.00484466552746,56.15093231201171],[75.51678466796892,56.045333862304744],[75.29044342041021,55.84880828857422],[75.33411407470703,55.75337600708008],[75.09544372558588,55.67771911621094],[75.15763854980486,55.53881072998058],[75.30760955810553,55.50524520874029],[75.17321777343778,55.384094238281364],[75.1908111572265,55.26863479614269],[75.38691711425798,55.02746582031244],[75.29761505126947,54.907371520996094],[75.49248504638678,54.89171600341797],[75.7938079833985,54.66687393188471],[75.68568420410179,54.531581878662166],[75.69861602783209,54.13156890869151],[75.39719390869158,54.082256317138786],[75.45420837402338,53.96946716308588],[75.03938293457048,53.791007995605526],[74.80315399169945,53.815925598144474],[74.48483276367193,53.580051422119254],[74.40393829345726,53.46107482910162],[73.90336608886736,53.64843368530279],[73.64941406250006,53.55926895141613],[73.4008102416992,53.53163909912115],[73.24596405029301,53.57526016235362],[73.34754180908197,53.79279708862304],[73.47431945800787,53.88285446166998],[73.6913070678711,53.86210250854497],[73.75037384033197,54.054321289062614],[73.28933715820341,53.953342437744084],[73.08438873291016,53.990512847900504],[72.9811401367187,54.098300933837834],[72.41813659667986,54.14953613281249],[72.08217620849636,54.23588943481445],[71.76710510253918,54.2485466003419],[71.74656677246094,54.138534545898494],[71.52492523193376,54.1086311340332],[71.35401916503923,54.183509826660156],[71.21038818359392,54.11090087890631],[71.07300567626982,54.216091156005916],[71.09107971191412,54.32981491088878],[71.23208618164074,54.39430999755865],[71.19890594482433,54.58527374267584],[70.99948883056646,54.878849029541016],[71.01499938964872,55.07292175292969],[70.82019042968754,55.29795837402343],[70.52224731445312,55.27552413940424],[70.48387908935564,55.37136077880854],[70.71027374267595,55.474128723144645],[70.58161926269553,55.87178039550786],[70.77421569824219,55.86631774902337],[70.92158508300776,56.03067779541027],[70.87955474853521,56.16879653930664],[71.0162734985352,56.280860900878956],[70.96947479248063,56.42489624023443],[71.22164154052751,56.634525299072266],[71.37351989746098,56.617538452148494],[71.56251525878905,56.69229125976568],[71.62040710449247,56.82602691650396],[71.54615020751957,56.92844772338867],[71.14638519287132,57.171546936035156],[71.04919433593744,57.32264709472656],[70.81742095947294,57.31109619140636],[70.65911865234386,57.20405578613287],[70.42513275146501,57.3690223693847],[70.7104034423831,57.49315261840832],[70.6216735839846,57.66195678710937],[70.49469757080107,57.741832733154354],[70.54830169677746,58.04197692871105],[70.79064941406254,58.35472106933599],[70.87338256835938,58.52127838134772],[71.290824890137,58.36579895019536],[71.24032592773455,58.21358871459955],[71.3031387329102,58.02345657348633],[71.89984130859402,58.08410263061523],[72.17090606689447,57.99098587036144],[72.52975463867193,58.00011444091796],[72.82495117187517,57.959129333496094],[73.14716339111334,58.134361267089844],[74.15000915527361,58.11391830444341],[74.73494720458979,58.36335754394537],[75.16059875488287,58.57164764404308],[75.34012603759794,58.43856811523432],[75.03644561767605,58.306667327880795],[75.23374176025408,58.20693588256836],[75.09281158447283,58.087249755859375],[75.51821899414085,57.94212341308593],[75.58903503417997,57.7135353088379],[75.82158660888689,57.47215270996093],[76.10438537597685,57.229522705078125]]]},"properties":{"ID_0":188,"ISO":"RU-OMS","NAME_0":"Russia","ID_1":51,"NAME_1":"Omsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Омская область","VARNAME_1":"Omskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.85785293579101,53.017463684082145],[37.88723373413086,52.77060699462896],[37.786933898925895,52.610916137695305],[37.983795166015796,52.477031707763786],[38.08731842041044,52.345558166503906],[37.75745010376005,52.15547561645502],[37.77226638793968,52.051216125488395],[37.65216064453125,51.979854583740234],[37.4966773986817,52.037471771240234],[37.40274429321306,51.954723358154354],[37.14027023315447,52.108501434326286],[36.8284454345706,52.14659500122076],[36.48174285888666,52.248493194580135],[36.34196853637701,52.38766098022461],[35.91125488281244,52.321739196777344],[35.588775634765625,52.30160522460943],[35.460609436035156,52.479900360107536],[34.95538711547846,52.376113891601555],[34.83935546875017,52.46743011474604],[35.050327301025675,52.6984024047851],[34.89869308471708,52.8263053894043],[35.02579498291021,52.94956588745117],[35.24696350097673,53.02655029296881],[35.12622451782232,53.28488540649414],[35.53010940551774,53.419132232666016],[35.59941864013689,53.52227401733409],[35.80834960937506,53.52405166625976],[35.99767684936546,53.638332366943416],[36.039611816406364,53.57264328002924],[36.285392761230696,53.531932830810604],[36.500736236572436,53.39054107666027],[36.685241699218864,53.41013336181646],[36.75029754638666,53.30532836914057],[37.121025085449276,53.27268218994152],[37.29885482788091,53.30502319335943],[37.57963562011736,53.27813720703131],[37.58091354370117,53.142402648925895],[37.77911758422857,53.112495422363224],[37.85785293579101,53.017463684082145]]]},"properties":{"ID_0":188,"ISO":"RU-ORL","NAME_0":"Russia","ID_1":52,"NAME_1":"Orel","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Орловская область","VARNAME_1":"Orlovskaya|Or'ol|Oryol|Orlovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[53.3920555114746,54.05834579467779],[53.63262939453119,53.81281661987305],[53.81612777709984,53.69990921020507],[54.05044174194353,53.483718872070305],[54.21290588378906,53.40169525146484],[54.506992340088175,53.35881423950207],[54.622863769531534,53.24052810668957],[54.85125732421892,53.27014160156256],[54.96802520751953,53.03781890869146],[55.164718627929744,52.83671188354498],[55.33386230468756,52.86939239501959],[55.350761413574155,52.660835266113224],[55.455417633056804,52.607715606689396],[55.52683639526373,52.4270591735841],[55.74633026123058,52.37069702148449],[55.87468719482433,52.41638565063488],[56.076580047607536,52.671535491943416],[56.30926513671875,52.57383728027355],[56.43438339233427,52.454502105713004],[56.41641616821294,52.28343200683594],[56.65333938598661,52.08392715454113],[56.76434326171875,51.938571929931754],[56.67132186889643,51.853351593017514],[56.84771728515625,51.67733764648443],[57.0214614868164,51.72510528564453],[57.252754211425895,51.56111145019531],[57.59904098510736,51.68700408935547],[57.717884063720646,51.84242630004894],[58.12882995605486,51.791187286376946],[58.285514831543196,51.70486068725591],[58.66092681884793,51.82437133789068],[58.736724853515796,52.03905868530279],[58.72232818603544,52.264278411865284],[58.928104400634936,52.32921218872082],[58.870468139648494,52.46748733520519],[59.01293563842802,52.468856811523494],[59.264503479003906,52.30434417724603],[59.28738403320312,52.448772430420036],[59.482364654540966,52.498386383056754],[60.08536529541011,52.43814849853521],[60.21855926513672,52.39468765258789],[60.234333038330135,52.27692031860362],[60.091457366943416,52.20063400268566],[60.0258522033692,52.08017349243164],[60.115940093994425,51.99730300903332],[60.18087387084977,51.903568267822266],[60.52256393432622,51.78223419189459],[60.391921997070476,51.701580047607415],[60.598567962646655,51.61519241333008],[60.905143737792905,51.61412429809581],[61.002735137939624,51.465114593505916],[61.28881072998052,51.410171508789176],[61.51049041748076,51.413852691650504],[61.57982254028349,51.23204040527338],[61.45083999633794,50.80731582641612],[61.00797271728532,50.68606948852538],[60.8279304504395,50.66099929809576],[60.35491943359392,50.67935943603521],[60.06900405883794,50.86558151245117],[59.83271408081083,50.584293365478565],[59.531326293945476,50.51446914672857],[59.53738403320307,50.61064910888672],[58.88339996337908,50.709072113037166],[58.76831817626981,50.83797454833979],[58.598819732666065,50.82670211791997],[58.54582595825224,51.07506561279291],[58.170349121094034,51.06772994995117],[57.754291534423935,51.129745483398544],[57.73920822143583,50.9580078125],[57.42689895629888,50.895694732666016],[57.18350982666027,51.09526443481451],[57.05244827270508,51.05657577514654],[56.72874450683599,51.07838439941412],[56.731510162353565,50.971805572509766],[56.463497161865284,51.06429290771489],[56.38363265991239,50.926029205322266],[56.1739120483399,50.91859436035162],[56.138401031494084,50.77122497558588],[55.66372299194336,50.57223510742199],[55.3549537658692,50.65993499755864],[55.0611190795899,50.83264541625982],[54.70629882812517,50.894241333007756],[54.65537643432622,50.8105201721192],[54.72864151001005,50.634586334228516],[54.50809478759759,50.54003524780279],[54.425754547119425,50.619365692138665],[54.47310256958002,50.788955688476506],[54.16603088378912,51.02014923095703],[54.12952804565458,51.11880493164062],[53.74991989135748,51.20348739624035],[53.61473464965849,51.29279708862305],[53.570262908935774,51.43163681030268],[53.37876892089861,51.51400375366222],[53.14843368530285,51.52548217773443],[52.958221435547046,51.4718589782716],[52.80209732055681,51.504959106445426],[52.54562759399437,51.46736526489258],[52.38298797607421,51.656818389892635],[51.85733795166021,51.683288574218864],[51.76153564453141,51.6027450561524],[51.42888641357439,51.482570648193295],[51.358562469482536,51.653324127197266],[51.26677703857439,51.689735412597706],[50.88953781127958,51.68049240112315],[50.83658599853543,51.74708557128906],[50.86277770996087,51.79518127441412],[51.3208961486817,52.01918029785167],[51.451011657715014,52.130733489990234],[51.41514205932623,52.35010147094732],[51.570575714111385,52.48341751098633],[51.54378890991205,52.65265274047857],[51.684833526611385,52.680240631103516],[51.74055480957048,52.86372756958008],[52.08806991577171,53.013217926025334],[52.08682250976585,53.1885032653808],[52.172378540039226,53.31325531005865],[52.09883880615257,53.512184143066456],[52.211967468261776,53.61233901977539],[52.250480651855696,53.754451751708984],[52.38597488403326,53.87900924682617],[52.450824737548885,54.065792083740284],[52.36262130737299,54.1335182189942],[52.40178680419933,54.33279800415045],[52.55948638916021,54.38675308227539],[52.99634170532249,54.291648864746094],[53.063671112060774,54.152427673339844],[53.3920555114746,54.05834579467779]]]},"properties":{"ID_0":188,"ISO":"RU-ORE","NAME_0":"Russia","ID_1":53,"NAME_1":"Orenburg","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Оренбургская область","VARNAME_1":"Chkalov|Orenburgskaya|Orenburgskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.84861755371099,53.97801208496105],[46.0453910827639,53.99513626098633],[46.49857711792015,53.624591827392635],[46.49107742309587,53.4961776733399],[46.675735473632926,53.49396133422857],[46.92005920410184,53.36815261840832],[46.96586608886713,53.160194396972656],[46.91351318359381,52.92414474487299],[46.98453521728527,52.813636779785156],[46.80248260498052,52.64192199707042],[46.64696121215826,52.731746673583984],[46.34008026123064,52.666866302490234],[46.001731872558764,52.52402496337902],[45.97423553466791,52.4033088684082],[45.72552871704124,52.51664733886719],[45.531406402588175,52.414634704589844],[45.14360046386736,52.40697097778326],[45.075187683105526,52.33676910400385],[44.835979461670206,52.48129272460949],[44.588054656982536,52.5098228454591],[44.54317474365251,52.406387329101506],[44.30767822265631,52.29363250732433],[43.96572494506852,52.3748397827149],[43.814968109131144,52.44512176513672],[43.46720123291026,52.355495452880916],[43.28373336791998,52.45236206054682],[43.115215301513615,52.39695358276361],[43.118705749512,52.497768402099666],[43.27666473388683,52.67499160766613],[42.98170852661127,52.902549743652344],[42.591297149658374,53.112251281738395],[42.59943389892578,53.182258605957145],[42.32117462158209,53.42033004760748],[42.10821533203136,53.55317687988287],[42.11437606811552,53.78124237060546],[42.35323715209955,53.803802490234425],[42.626132965088175,53.76057815551758],[43.21132278442411,53.81036376953136],[43.26795196533203,54.01023101806652],[43.465740203857706,53.95763397216791],[43.584739685058764,53.993286132812614],[43.96096038818364,53.87809371948248],[44.00194931030268,53.76100158691406],[44.207118988037394,53.6920433044433],[44.598110198974666,53.6611785888673],[44.77973175048828,53.714698791503906],[44.63897705078131,53.83079147338873],[44.69901275634783,53.89772415161138],[44.94587707519537,53.965099334716854],[45.26502227783209,53.96246337890625],[45.339862823486555,53.87789154052746],[45.78382492065447,53.92664718627924],[45.84861755371099,53.97801208496105]]]},"properties":{"ID_0":188,"ISO":"RU-PNZ","NAME_0":"Russia","ID_1":54,"NAME_1":"Penza","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Пензенская область","VARNAME_1":"Penzenskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[57.41663742065435,56.34223175048828],[57.20583343505871,56.1882438659668],[56.956630706787216,56.11451721191406],[56.81703186035162,56.14175796508795],[56.49899291992182,56.383789062499936],[56.265800476074276,56.31492614746088],[56.04634475708008,56.308773040771484],[55.86119079589861,56.50003814697271],[55.697883605957145,56.499252319335994],[55.357685089111605,56.38758468627935],[55.1863250732423,56.44576644897466],[54.962570190429965,56.404541015625114],[54.53579711914062,56.512344360351506],[54.40242767333979,56.371795654296875],[54.34623336792003,56.498722076416016],[54.092826843262,56.627586364746094],[53.882770538330014,56.655681610107365],[53.86454772949213,56.82402420043951],[54.065467834472656,56.83771133422857],[54.33173751831066,57.114879608154354],[54.30456542968761,57.325424194336044],[54.170021057129134,57.346649169921875],[54.255550384521534,57.5038414001466],[54.06269454956054,57.598224639892635],[54.192737579345874,57.83029937744151],[54.11820220947294,57.989734649658196],[53.81688690185564,58.25019454956065],[53.8800697326663,58.295551300048885],[53.7747535705567,58.49010086059576],[53.7239723205567,58.702011108398445],[53.89552688598644,58.78835296630871],[53.743618011474666,59.00772094726556],[53.831005096435604,59.07246398925786],[53.34154129028326,59.18701171874994],[53.20914459228544,59.362506866455135],[53.55577087402361,59.709747314453175],[53.64973831176758,59.91240692138671],[53.65305328369157,60.06802749633795],[53.44427108764643,60.23085403442383],[53.34511947631853,60.14365386962897],[52.46321868896496,60.21602630615229],[52.285900115967074,60.26606750488281],[52.34331512451172,60.454681396484375],[52.151748657226676,60.540481567382805],[51.767921447754134,60.61202621459966],[51.90845489501958,60.899967193603516],[52.34781265258795,60.85905838012707],[52.473438262939396,60.9816131591798],[52.78018569946289,60.96966934204112],[52.87033843994146,61.09071350097667],[53.435371398926065,61.053703308105575],[53.34232711792014,60.90008926391596],[53.82891845703142,60.8596305847169],[53.8814392089846,60.98693084716808],[54.98949813842779,60.90363311767572],[55.11632537841808,61.047557830810554],[55.31709671020502,61.158611297607415],[55.7725257873538,61.14268875122081],[55.90676498413108,61.29584884643566],[56.29581069946289,61.24907684326171],[56.45552062988298,61.459346771240234],[56.743568420410156,61.559963226318416],[57.11002349853521,61.5022583007813],[57.230220794677734,61.53449249267583],[58.035297393799,61.50741577148444],[58.84975051879883,61.51890563964855],[59.39514541626005,61.69829559326172],[59.49711227416992,61.57759094238286],[59.30701065063482,61.346149444580135],[59.37621688842779,61.04436111450195],[59.50327301025407,60.9236564636231],[59.50138854980468,60.76552963256841],[59.40550613403315,60.571990966796875],[59.21519470214872,60.35075759887706],[59.22676467895519,60.25355911254883],[59.06970214843744,59.984901428222656],[58.77598571777338,59.85326766967779],[58.630619049072315,59.73645019531255],[58.489196777343814,59.49189758300787],[58.74021148681646,59.3237419128418],[58.98773193359392,59.2827377319337],[59.15748214721685,59.170585632324325],[59.21200942993187,58.98324584960943],[59.108390808105746,58.83696365356445],[59.413845062256144,58.67742156982421],[59.47598648071311,58.546356201171875],[58.81058502197271,58.26418685913086],[58.59856033325195,58.09420776367193],[58.68779373168962,57.93784332275401],[58.84773254394549,57.91762161254883],[58.87579345703125,57.787612915039055],[58.56768798828119,57.629653930664006],[58.4717750549317,57.734546661377],[58.15758514404325,57.75786590576172],[57.971946716308814,57.590244293213],[57.89730834960937,57.402446746826165],[58.04373550415045,57.304000854492244],[57.95298385620123,57.09715652465826],[57.593643188476726,56.90876388549816],[57.362434387206974,56.959430694580135],[57.259742736816634,56.838897705078125],[57.44146347045926,56.676403045654354],[57.38243865966825,56.59109115600591],[57.41663742065435,56.34223175048828]]]},"properties":{"ID_0":188,"ISO":"RU-PER","NAME_0":"Russia","ID_1":55,"NAME_1":"Perm'","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Пермская край","VARNAME_1":"Molotov|Permskaya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[139.05241394042991,47.407417297363224],[138.83666992187523,47.273334503173885],[138.60388183593784,47.07500076293951],[138.35040283203156,46.69327163696289],[138.33972167968784,46.537223815918026],[138.1672210693364,46.434722900390625],[138.10888671875,46.24583435058605],[137.77162170410176,45.946628570556754],[137.6864776611328,45.8086929321289],[137.35807800292991,45.61113357543956],[137.13795471191406,45.374702453613395],[136.800003051758,45.19648742675781],[136.76507568359398,45.09198760986334],[136.6394500732423,45.04722213745117],[136.4942169189453,44.85506820678722],[136.38092041015625,44.8056373596192],[136.10981750488293,44.47722244262707],[135.88032531738293,44.41223144531256],[135.82269287109398,44.30592346191406],[135.64805603027352,44.17499923706055],[135.63345336914085,44.03584289550781],[135.46069335937545,43.91347122192383],[135.5037536621096,43.847915649414176],[135.29986572265634,43.6926383972168],[135.23486328125043,43.69736099243164],[135.1354217529297,43.50152969360357],[134.84042358398483,43.38569259643555],[134.38264465332054,43.13208389282232],[134.1754150390625,43.064861297607365],[133.95597839355491,42.90541839599615],[133.71180725097668,42.82374954223644],[133.59402465820324,42.85180664062505],[133.15042114257812,42.68486022949219],[132.98042297363293,42.83486175537115],[132.8543090820317,42.73513793945324],[132.7012481689453,42.85514068603527],[132.5326385498047,42.84958267211914],[132.44430541992188,42.9323616027832],[132.2906951904298,42.877639770507926],[132.29791259765648,43.06708145141607],[132.3804168701172,43.18097305297863],[132.31568908691415,43.24736022949219],[131.8706970214845,43.112083435058594],[132.05931091308616,43.329582214355526],[131.75764465332065,43.329029083251896],[131.76458740234398,43.197082519531364],[131.5076446533203,43.01347351074219],[131.34791564941418,42.790138244628906],[131.2556915283203,42.76763916015625],[131.2054138183595,42.60874938964844],[130.84124755859386,42.6559715270996],[130.84736633300804,42.50513839721685],[130.64503479003918,42.34830093383788],[130.56123352050804,42.53544998168945],[130.62303161621116,42.62267303466797],[130.53059387207043,42.697570800781364],[130.54434204101562,42.807689666748104],[130.78915405273438,42.86434555053722],[131.02960205078136,42.86328125000006],[131.20433044433628,43.14319229125982],[131.3008880615234,43.455928802490234],[131.22850036621105,43.59860229492199],[131.20352172851562,43.823570251464844],[131.2931060791018,44.07970046997076],[131.10266113281284,44.691558837890625],[130.9630126953126,44.81761932373041],[131.1379547119144,44.93704223632812],[131.4698486328125,44.959480285644645],[131.68673706054688,45.1141815185548],[131.82678222656273,45.308731079101676],[132.0585937500001,45.23558807373047],[132.18359375,44.95685195922857],[132.1116180419923,44.7406845092774],[132.31622314453145,44.61523056030279],[132.56057739257858,44.55504226684581],[132.6968536376953,44.69006729125988],[132.85197448730477,45.055690765380916],[132.97265625,45.0199089050293],[133.13555908203125,45.12710952758789],[133.09385681152366,45.2875709533692],[133.21519470214855,45.50911331176769],[133.4761199951173,45.6544189453125],[133.4638824462893,45.82897949218756],[133.65689086914085,45.93769454956066],[133.73445129394528,46.047340393066406],[133.7001190185547,46.157814025878956],[133.90849304199264,46.27159118652338],[133.85086059570335,46.46068191528332],[134.0178985595703,46.66371536254883],[134.419189453125,46.712619781494254],[134.50230407714855,46.762664794921925],[134.50569152832077,46.91486740112305],[134.6068878173828,46.97251129150402],[134.69039916992188,47.14265060424805],[134.98847961425793,47.1484107971192],[135.09017944335938,47.22860717773443],[135.32698059082054,47.19422149658203],[135.3628845214845,47.09747314453119],[135.56127929687534,46.99735641479498],[135.72689819335938,46.98005676269537],[135.84500122070335,46.85574340820318],[136.05058288574241,46.88576507568353],[136.33387756347702,46.78522109985357],[136.6004028320316,46.815731048583984],[136.99188232421898,47.02225875854492],[136.9368896484375,47.10337829589855],[137.0752868652345,47.32038116455084],[137.41578674316418,47.210868835449276],[137.70088195800827,47.36641693115229],[137.80319213867188,47.34129333496094],[138.08328247070335,47.50371170043945],[138.04768371582043,47.673473358154354],[137.93728637695312,47.731891632080135],[137.77598571777355,47.714237213134766],[137.60208129882858,47.79789733886718],[137.56549072265636,47.948513031005916],[137.4067840576173,47.99816513061534],[137.3304901123048,48.10557937622082],[137.4733886718751,48.20036315917969],[137.76478576660168,48.20084762573242],[137.91868591308616,48.287399291992244],[138.19029235839866,48.33787536621093],[138.28770446777344,48.45293807983392],[138.44400024414074,48.421226501464844],[138.48487854003906,48.28310394287109],[138.58978271484372,48.17860031127941],[138.58058166503918,48.03955459594738],[138.72039794921886,47.95895767211914],[138.767578125,47.80463027954096],[138.57850646972668,47.73806762695318],[138.60337829589864,47.48934936523443],[138.82380676269565,47.490905761718864],[139.05241394042991,47.407417297363224]]]},"properties":{"ID_0":188,"ISO":"RU-PRI","NAME_0":"Russia","ID_1":56,"NAME_1":"Primor'ye","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Приморский край","VARNAME_1":"Küsten-Gebiet|Maritime Territory|Primorsk|Primorskiy Kray"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.92828369140619,58.4405021667481],[29.928386688232365,58.28647613525396],[29.7235622406007,58.22328186035157],[29.69514465332037,58.06834030151372],[29.87174606323259,58.03969955444336],[30.308898925781307,57.87091445922851],[30.54988288879423,57.874526977539176],[30.507642745971964,57.628013610839844],[30.661579132080245,57.53031158447265],[30.48054122924816,57.345027923583984],[30.820951461792045,57.225479125976676],[30.70230293273954,57.00981521606457],[30.842266082763732,56.917984008789176],[31.013320922851847,56.941478729248104],[30.831148147583004,56.71336746215826],[31.071172714233395,56.614856719970646],[31.041820526123104,56.46479797363292],[31.250478744506836,56.43729400634771],[31.335454940796183,56.3177375793457],[31.506719589233683,56.317863464355526],[31.47416877746588,56.160060882568416],[31.53917884826666,56.05973815917969],[31.396373748779354,55.97911834716802],[31.457376480102763,55.75132369995123],[30.98775863647478,55.69955825805664],[30.91626358032227,55.62602996826172],[30.807615280151424,55.5977783203125],[30.26770782470726,55.86997604370123],[29.969619750976847,55.88970565795898],[29.480318069458175,55.704460144043026],[29.371013641357703,55.76517486572276],[29.435808181762976,55.966442108154354],[29.03289222717285,56.03253936767584],[28.729238510131946,55.96694183349615],[28.630575180053768,56.09029769897472],[28.307874679565483,56.06584930419922],[28.173208236694393,56.16834640502924],[28.24051094055187,56.290397644043026],[28.140993118286133,56.54599761962896],[27.91182518005371,56.742134094238395],[27.950599670410156,56.80741882324219],[27.729381561279407,56.93473052978521],[27.752544403076172,57.12310409545904],[27.844026565551758,57.31617355346691],[27.510673522949332,57.44545364379894],[27.39427185058599,57.52928924560558],[27.411090850830078,57.700477600097656],[27.553926467895508,57.83187484741216],[27.7827205657959,57.830852508544915],[27.479160308837834,58.29164886474621],[27.55366516113281,58.42352676391607],[27.4551296234132,58.79061126708996],[27.73826599121088,58.9934883117677],[28.185434341430664,58.95725250244146],[28.28304481506359,58.85065841674798],[29.01014709472656,58.78174972534191],[29.26895332336437,58.648597717285156],[29.34009361267095,58.54380798339855],[29.61540603637712,58.44390106201166],[29.92828369140619,58.4405021667481]]]},"properties":{"ID_0":188,"ISO":"RU-PSK","NAME_0":"Russia","ID_1":57,"NAME_1":"Pskov","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Псковская область","VARNAME_1":"Pskovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.234565734863565,47.12014007568371],[38.334228515625,47.25302886962896],[38.29051589965826,47.520183563232536],[38.37160873413114,47.611076354980575],[38.76478576660185,47.68413162231445],[38.83940887451183,47.8542098999024],[39.126213073730526,47.83968353271484],[39.379436492920206,47.87584686279308],[39.72630310058622,47.829658508300895],[39.81848526000982,48.00790023803722],[40.014892578125284,48.266578674316456],[39.851890563964844,48.47211074829107],[39.85005187988287,48.57080078125006],[39.68866729736334,48.59093093872076],[39.79698562622082,48.850021362304744],[39.99103927612304,48.80121231079096],[40.075561523437614,48.85575103759771],[39.7483825683596,48.99270248413097],[40.2003250122072,49.27058029174816],[40.1632843017581,49.45814895629883],[40.20746994018549,49.56257247924815],[40.28217315673845,49.62424850463867],[40.58903884887718,49.580993652343864],[40.981307983398494,49.68046951293957],[41.128780364990234,49.90298843383795],[41.41949844360374,50.08774566650396],[41.4417343139649,50.186851501464844],[41.546077728271655,50.077735900878906],[41.69916534423828,50.027542114257756],[41.66932678222685,49.937877655029354],[41.9682693481447,49.85739135742199],[42.202400207519815,49.7384605407716],[42.08386230468767,49.40232086181635],[42.09750747680664,49.160408020019645],[42.282196044922046,49.177886962890625],[42.44863128662115,49.118022918701115],[42.75680541992193,48.93391799926769],[42.805290222168196,48.85587692260748],[42.61020660400419,48.56193923950201],[42.28453826904297,48.51268005371105],[42.08506393432611,48.418655395507926],[42.14414596557645,48.30023574829107],[42.0194854736331,48.04537200927746],[42.38208007812528,48.02016067504877],[42.732952117920206,47.863647460937614],[42.76799392700218,47.76208496093756],[43.01152420043945,47.48409271240229],[43.14810180664074,47.542148590088004],[43.27021026611345,47.40973663330078],[43.731311798095874,47.46975326538086],[43.824653625488224,47.30933380126964],[44.03566741943359,47.41090774536144],[44.37316131591825,47.44343185424805],[44.383224487304744,47.34505462646478],[44.28370285034197,46.89566040039073],[44.109107971191406,46.826839447021534],[43.8437042236331,46.57817077636719],[43.960010528564624,46.54926681518555],[43.85728836059593,46.35525894165039],[43.575691223144815,46.14254379272472],[43.34342575073247,46.17803573608393],[43.096824645996264,46.340915679931754],[42.94000625610357,46.39889144897472],[42.74751663208025,46.342739105224666],[42.45161819458036,46.47282791137701],[42.09851455688499,46.57544326782232],[42.238018035888786,46.36042785644542],[41.971462249755916,46.31305313110363],[41.98351287841813,46.221466064453125],[41.783275604248324,46.21192932128906],[41.66335296630882,46.15437316894537],[41.72266006469721,46.010082244873104],[41.46742630004911,46.01821517944336],[41.40194702148432,45.95233535766607],[41.18284606933594,45.984771728515625],[40.97811126708996,46.162502288818416],[40.59485626220726,46.30442428588873],[40.28290557861322,46.29824066162121],[40.19120788574219,46.37691116333013],[40.1663360595706,46.5233039855957],[39.957206726074276,46.58752822875987],[40.02618408203141,46.75395584106451],[39.87176513671881,46.81945419311535],[39.45837020874046,46.83914566040039],[39.38367843627924,46.878238677978516],[39.18925476074236,46.80296325683605],[39.07806015014654,46.6733169555664],[38.86940002441423,46.685157775878906],[38.79891586303728,46.850391387939446],[38.66132736206083,46.8723602294923],[38.83736038208036,46.905971527099666],[39.1012496948245,47.03930664062494],[39.29347229003929,47.019859313964844],[39.19736099243181,47.28486251831066],[38.942916870117244,47.198471069335994],[38.56097412109392,47.119583129882926],[38.234565734863565,47.12014007568371]]]},"properties":{"ID_0":188,"ISO":"RU-ROS","NAME_0":"Russia","ID_1":58,"NAME_1":"Rostov","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Ростовская область","VARNAME_1":"Province of the Don Cossacks|Provinz des Donischen Heeres|Voyska Donskovo|Rostovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[41.8036880493164,55.11595535278326],[41.86863708496122,55.02573776245122],[42.22428131103521,54.94297027587885],[42.453159332275504,55.000286102294865],[42.45948028564476,54.83276367187499],[42.403530120849894,54.72101211547863],[42.71737670898443,54.566768646240234],[42.58839416503912,54.483566284179744],[42.50807571411161,54.28580856323242],[42.72181320190435,54.16326141357422],[42.387748718261776,54.05428314208996],[42.493293762207315,53.96506118774419],[42.35323715209955,53.803802490234425],[42.11437606811552,53.78124237060546],[41.431274414062784,53.73726272583007],[41.34038162231473,53.46971130371105],[41.101249694824276,53.45912170410156],[40.80589294433588,53.53750228881847],[40.549861907959155,53.484207153320426],[40.516738891601506,53.39076995849604],[40.19570922851591,53.31672286987305],[40.00093078613287,53.388397216796925],[39.90851211547857,53.528373718261776],[39.76686096191412,53.5723876953125],[39.586589813232706,53.506538391113395],[39.5585365295413,53.41425323486328],[39.202587127685774,53.38211059570318],[39.03246307373064,53.56354904174805],[38.913753509521655,53.56142807006836],[38.94269180297862,53.70460510253912],[38.84314346313471,53.81212234497076],[38.77686309814447,54.02089691162114],[38.8136940002442,54.1434059143067],[38.683719635009936,54.2278099060058],[38.848407745361385,54.586853027343864],[39.25247573852556,54.621158599853516],[39.554161071777344,54.962036132812436],[39.82563018798851,54.99158859252935],[39.88040924072294,55.09492874145508],[40.24649429321295,55.3130722045899],[40.50468063354492,55.309593200683594],[40.604900360107706,55.17817687988281],[40.877452850341854,55.18740081787115],[40.997104644775334,55.24111175537109],[41.20695114135759,55.21081161499035],[41.45321655273465,55.10940170288086],[41.8036880493164,55.11595535278326]]]},"properties":{"ID_0":188,"ISO":"RU-RYA","NAME_0":"Russia","ID_1":59,"NAME_1":"Ryazan'","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Рязанская область","VARNAME_1":"Ryazanskaya Oblast|Ryazanskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[146.82913208007847,43.887210845947315],[146.91754150390648,43.83866882324224],[146.64250183105491,43.70083236694335],[146.58555603027355,43.80611038208008],[146.82913208007847,43.887210845947315]]],[[[146.1699981689453,44.51694488525396],[146.38638305664074,44.35749816894537],[146.29527282714844,44.275001525878906],[146.12861633300778,44.26638793945324],[145.94427490234375,44.15242385864269],[145.77528381347656,43.931667327880916],[145.57611083984398,43.843334197998104],[145.55833435058616,43.726665496826286],[145.4351806640626,43.721519470214844],[145.3992462158203,43.831741333007805],[145.74179077148438,44.05090713500988],[146.078338623047,44.470554351806754],[146.1699981689453,44.51694488525396]]],[[[148.78916931152344,45.555000305175724],[148.89083862304688,45.48694610595703],[148.77777099609398,45.32249832153326],[148.64305114746094,45.33472061157232],[148.10000610351562,45.11416625976574],[147.98370361328125,45.002902984619254],[147.79194641113293,44.94694519042963],[147.6125030517578,44.950553894043075],[147.5962371826173,44.85160446166998],[147.3361358642578,44.714519500732536],[147.20619201660168,44.57030105590832],[147.08329772949241,44.560752868652344],[146.99082946777344,44.4513893127442],[146.87472534179688,44.49861145019537],[147.03250122070312,44.6388893127442],[147.17684936523438,44.68672943115246],[147.26516723632812,44.86759567260748],[147.39337158203125,44.91761016845703],[147.55271911621105,45.10971450805675],[148.00917053222656,45.289443969726676],[148.2850036621095,45.273887634277344],[148.44194030761716,45.35083389282226],[148.65472412109398,45.53916549682623],[148.78916931152344,45.555000305175724]]],[[[150.54888916015625,46.214721679687614],[150.21638488769543,46.01444625854492],[150.01580810546898,45.826362609863395],[149.86184692382812,45.7772789001466],[149.66848754882824,45.62453460693365],[149.53065490722653,45.69366073608404],[149.66999816894554,45.8488883972168],[149.79055786132824,45.860832214355526],[150.04972839355466,46.089443206787166],[150.18278503417966,46.103248596191456],[150.34361267089878,46.22444534301758],[150.54888916015625,46.214721679687614]]],[[[154.8461151123047,49.63527679443365],[154.84165954589855,49.3263893127442],[154.62718200683594,49.27742004394531],[154.65444946289062,49.41694259643555],[154.8461151123047,49.63527679443365]]],[[[156.03833007812509,50.7691650390625],[156.14637756347656,50.743083953857365],[156.16633605957043,50.50888061523443],[156.04222106933594,50.46666717529297],[155.87902832031273,50.24262237548834],[155.6044616699222,50.1813850402832],[155.43481445312523,50.06500625610363],[155.2396240234375,50.055820465088004],[155.2544403076173,50.22027587890631],[155.3989257812501,50.34566116333007],[155.64849853515636,50.377586364746094],[155.75666809082065,50.453609466552734],[155.86111450195335,50.655834197998104],[156.03833007812509,50.7691650390625]]],[[[156.48500061035176,50.8636093139649],[156.51017761230491,50.76625823974604],[156.33444213867188,50.6261100769044],[156.18959045410156,50.677742004394645],[156.20043945312545,50.76882171630864],[156.48500061035176,50.8636093139649]]],[[[142.7081604003906,54.42454910278326],[142.99734497070332,54.08055496215814],[142.90554809570312,53.986389160156364],[142.93611145019554,53.76055526733398],[143.1861114501953,53.35805511474615],[143.25054931640636,53.20833206176752],[143.05787658691418,53.21683120727544],[143.2109222412109,52.88341140747076],[143.33332824707043,52.8363876342774],[143.3166656494143,52.581943511963],[143.10833740234375,52.34583282470709],[143.1583404541018,52.283054351806754],[143.08265686035168,52.112880706787166],[143.30944824218759,51.743610382080135],[143.20611572265636,51.50361251831055],[143.44888305664074,51.45333480834972],[143.4811096191407,51.23416519165045],[143.54722595214866,51.16749954223632],[143.83222961425804,50.23749923706055],[143.99758911132835,50.01805877685547],[144.1204833984376,49.7547836303712],[144.1390075683597,49.60705566406256],[144.23883056640648,49.499427795410156],[144.2787475585942,49.24866485595709],[144.15336608886716,49.20938873291021],[143.71055603027355,49.33472061157226],[143.47610473632835,49.35889053344738],[143.0508270263672,49.187221527099716],[142.9476013183596,49.059513092041016],[142.97972106933625,48.89833450317383],[142.7476348876953,48.54904937744146],[142.54364013671886,48.060783386230526],[142.51034545898438,47.897621154785156],[142.5513305664066,47.70288848876953],[142.70018005371116,47.489555358886776],[142.94056701660168,47.35283660888683],[143.01486206054685,47.25205612182628],[143.0231933593751,47.0687255859375],[143.1125030517578,46.88555526733404],[143.06721496582043,46.81555557250982],[143.19528198242188,46.705276489257926],[143.48248291015636,46.815284729003956],[143.56472778320312,46.29972076416021],[143.42416381835938,46.194721221923885],[143.3302764892579,46.42805480957031],[143.3777770996095,46.531112670898494],[143.1677703857423,46.599445343017635],[142.88023376464866,46.62693023681635],[142.73228454589855,46.73915863037114],[142.44937133789074,46.645759582519645],[142.24940490722656,46.27294158935546],[142.171356201172,46.01622390747076],[142.0283355712894,45.930625915527344],[141.93193054199241,46.09770965576172],[141.81011962890636,46.599521636963004],[141.98725891113327,46.897354125976676],[142.05166625976562,47.189010620117294],[141.96444702148438,47.30389022827159],[141.9613037109377,47.61900329589844],[142.08694458007812,47.86128616333007],[142.20251464843747,47.98611450195307],[142.1421813964845,48.3261375427246],[141.89054870605491,48.64389038085943],[141.84693908691418,48.76638793945324],[141.9791717529297,48.87944412231445],[142.0944519042973,49.22338485717779],[142.1674804687502,49.803390502929794],[142.1509704589845,50.372501373291016],[142.04809570312523,50.51649475097662],[142.08586120605491,50.82124328613281],[142.24055480957077,51.01416778564464],[142.25332641601585,51.143054962158146],[142.0661163330078,51.48500061035156],[141.7927703857423,51.685276031494254],[141.82847595214844,51.7690467834472],[141.62652587890648,51.88662719726574],[141.65777587890625,52.37751770019537],[141.83496093749997,52.572708129882756],[141.82298278808616,52.72658538818371],[141.9183349609375,53.068889617920036],[141.82888793945312,53.16388702392584],[141.76458740234375,53.37751388549799],[142.19541931152378,53.53236007690441],[142.23988342285156,53.3863906860351],[142.42999267578136,53.37726974487316],[142.62786865234375,53.54665374755859],[142.49505615234386,53.621616363525504],[142.6696319580078,53.724193572998104],[142.6933288574221,53.946109771728516],[142.44230651855491,54.127475738525334],[142.33113098144554,54.26752853393555],[142.63604736328125,54.28605270385742],[142.7081604003906,54.42454910278326]]]]},"properties":{"ID_0":188,"ISO":"RU-SAK","NAME_0":"Russia","ID_1":60,"NAME_1":"Sakhalin","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Сахалинская область","VARNAME_1":"Sakhalinskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[161.40467834472668,69.53176879882812],[161.33384704589866,69.41614532470703],[161.4765625000001,69.17448425292969],[161.43385314941406,69.0640640258789],[161.07916259765622,69.05833435058592],[161.1932373046875,69.30573272705078],[161.09426879882824,69.44739532470697],[161.40467834472668,69.53176879882812]]],[[[137.80259704589855,71.59635162353544],[138.02239990234398,71.50572967529303],[137.78125000000034,71.41041564941418],[137.17759704589844,71.48384857177746],[137.38125610351574,71.58958435058594],[137.80259704589855,71.59635162353544]]],[[[138.81092834472676,71.96926879882822],[139.06459045410168,71.7708358764649],[138.6171875000001,71.62760162353521],[138.25833129882812,71.69999694824219],[138.43540954589855,71.90000152587919],[138.81092834472676,71.96926879882822]]],[[[127.90000152587902,72.63541412353538],[128.13958740234386,72.55208587646489],[128.6979217529297,72.45207977294922],[129.2187500000001,72.46666717529303],[128.92916870117233,72.19791412353521],[128.25416564941452,72.24375152587902],[127.73332977294956,72.43958282470709],[127.22916412353526,72.44166564941412],[127.05677032470713,72.53697967529297],[127.90000152587902,72.63541412353538]]],[[[129.1192626953125,73.12551879882824],[129.3374938964845,73.0687484741211],[128.77082824707054,72.92500305175787],[128.57916259765648,72.97291564941418],[129.1192626953125,73.12551879882824]]],[[[119.92500305175793,73.15833282470697],[120.3182296752932,73.11198425292963],[120.27083587646518,73.00416564941435],[119.78333282470703,73.01457977294922],[119.92500305175793,73.15833282470697]]],[[[142.0651092529297,73.90676879882824],[142.62864685058616,73.80781555175781],[143.2812500000001,73.60208129882818],[143.561981201172,73.4515609741211],[143.5276031494143,73.24218750000006],[143.29791259765625,73.18125152587889],[142.5249938964845,73.21875000000011],[141.46665954589844,73.308334350586],[140.6958312988282,73.42708587646479],[139.87916564941406,73.33958435058594],[139.87290954589866,73.43541717529324],[140.37083435058605,73.44374847412132],[140.7854156494143,73.60416412353521],[140.94583129882835,73.78749847412115],[142.0651092529297,73.90676879882824]]],[[[113.22083282470714,72.82707977294922],[113.55156707763683,72.92760467529297],[113.66822814941428,73.16093444824224],[113.57343292236351,73.22864532470709],[113.90625,73.33958435058594],[113.57707977294933,73.5124969482423],[114.32917022705101,73.59999847412115],[114.91458129882812,73.5979156494141],[115.2645797729492,73.69791412353526],[115.66666412353526,73.7083358764649],[116.8562469482423,73.64583587646496],[117.33281707763695,73.57865142822271],[118.62916564941418,73.5625],[118.80208587646506,73.52291870117193],[118.80208587646506,73.5208358764649],[118.81666564941442,73.50624847412126],[118.400001525879,73.37500000000011],[118.3270797729492,73.37291717529291],[118.51667022705078,73.17500305175804],[119.44791412353538,73.05208587646494],[119.81666564941418,72.95625305175787],[120.13333129882812,72.98958587646484],[121.15000152587913,72.92500305175787],[121.72916412353527,72.96666717529297],[122.07291412353514,72.90000152587896],[122.90833282470702,72.81666564941412],[122.87916564941406,72.902084350586],[123.25208282470724,72.89791870117193],[123.50833129882824,73.09583282470703],[123.65833282470702,73.1854171752929],[123.30625152587913,73.40416717529307],[123.42968750000023,73.65156555175793],[124.0140609741211,73.59635162353521],[124.45365142822298,73.78593444824224],[124.74166870117188,73.70625305175786],[125.21250152587913,73.63541412353516],[125.19635009765635,73.53593444824247],[125.62708282470702,73.535415649414],[125.88124847412122,73.4749984741211],[126.41874694824217,73.50208282470703],[126.47291564941406,73.36458587646484],[126.92916870117199,73.38124847412138],[127.01301574707054,73.52031707763683],[128.11250305175793,73.43125152587902],[128.0312500000001,73.41458129882818],[127.81666564941418,73.3937530517578],[128.2250061035156,73.40833282470732],[128.12290954589866,73.3937530517578],[128.43124389648438,73.34166717529297],[128.4729156494143,73.29582977294933],[128.82499694824241,73.23542022705078],[128.85208129882835,73.21875000000011],[128.94114685058605,73.08802032470702],[128.54791259765636,72.98958587646484],[127.90833282470727,72.92916870117193],[127.93125152587936,72.93333435058592],[127.8416671752933,72.93958282470703],[127.74583435058615,72.90000152587896],[128.2937469482422,72.87291717529303],[128.11614990234375,72.75260162353527],[127.59166717529295,72.69166564941406],[127.42082977294945,72.70207977294933],[126.8687515258789,72.53958129882824],[126.59375,72.43958282470709],[127.21666717529295,72.40625000000011],[127.79740142822277,72.32447814941406],[127.86042022705078,72.25416564941412],[128.51406860351562,72.03697967529308],[128.7416687011721,71.7624969482423],[129.10208129882812,71.745834350586],[129.27239990234375,71.82447814941418],[129.13333129882847,71.98750305175787],[129.36822509765648,71.84531402587885],[129.24739074707065,71.5953140258789],[129.49583435058614,71.26041412353521],[129.74114990234384,71.22239685058592],[129.85676574707043,71.07343292236328],[130.15625,71.07291412353538],[130.2484283447268,70.94635009765636],[130.94166564941418,70.78541564941423],[131.31875610351574,70.72291564941429],[131.73905944824241,70.94218444824213],[131.8692626953125,71.17031097412104],[132.04426574707043,71.29634857177744],[132.202606201172,71.5807342529298],[132.54635620117188,71.86614990234375],[132.85417175292977,71.93958282470703],[132.75051879882835,71.7984390258789],[133.18385314941415,71.5859375],[133.68959045410168,71.43541717529308],[134.33958435058594,71.36250305175786],[134.94375610351585,71.38124847412121],[134.84791564941418,71.47291564941412],[135.80000305175804,71.64167022705078],[136.2937469482422,71.61666870117188],[136.50000000000023,71.61042022705082],[136.9630126953125,71.46926879882818],[137.38697814941418,71.3932342529298],[137.6666717529297,71.24791717529308],[137.92291259765636,71.10416412353516],[138.11250305175793,71.28333282470709],[137.92083740234386,71.379165649414],[138.12551879882847,71.58906555175787],[138.76249694824241,71.62916564941418],[138.98333740234386,71.68958282470707],[139.47708129882812,71.49375152587902],[139.97084045410156,71.48124694824219],[139.80052185058605,71.65468597412115],[139.81875610351574,71.85624694824219],[139.6041717529299,71.95625305175787],[139.8744812011721,72.09323120117199],[139.96041870117188,72.23124694824241],[139.61041259765622,72.22291564941435],[139.33332824707054,72.12291717529303],[139.143753051758,72.25833129882835],[139.60833740234375,72.49166870117199],[140.52291870117188,72.46875],[140.9109344482424,72.52343749999999],[141.16615295410168,72.65364837646477],[140.71041870117188,72.86875152587902],[141.2869873046875,72.84947967529325],[141.58332824707043,72.76457977294928],[142.28125000000034,72.7041702270509],[143.47708129882835,72.68541717529303],[144.4812469482422,72.62708282470732],[146.03125,72.47291564941412],[146.68124389648483,72.36875152587889],[145.85000610351585,72.33958435058616],[145.44792175292991,72.35416412353527],[145.24374389648472,72.42916870117205],[144.7937469482423,72.40416717529291],[144.5041656494143,72.22916412353521],[146.52708435058616,72.31250000000023],[146.95989990234398,72.30260467529303],[146.4078216552734,72.02552032470714],[146.3067626953125,72.128646850586],[145.77760314941418,72.18281555175787],[145.62760925292991,72.0921859741211],[145.84739685058605,71.94739532470703],[145.3307342529297,71.88281250000006],[145.0682373046876,71.76718902587913],[145.03802490234386,71.66197967529308],[145.38542175292966,71.65416717529308],[146.1140594482423,71.79218292236334],[147.1354217529298,72.30625152587896],[148.37916564941452,72.3208312988283],[149.47291564941406,72.16666412353526],[149.7833404541018,72.07499694824219],[150.10989379882858,71.8890609741211],[149.71249389648438,71.74791717529297],[149.30833435058594,71.84375000000011],[149.13542175292991,71.69583129882812],[149.46458435058616,71.64791870117205],[149.89999389648438,71.66041564941412],[150.26458740234386,71.53125000000023],[150.66874694824264,71.49791717529303],[150.73385620117222,71.41406249999994],[151.52915954589855,71.32083129882812],[151.72135925292991,71.23802185058588],[152.1791687011721,70.86458587646484],[152.95416259765622,70.80833435058594],[153.82083129882858,70.87500000000011],[154.45416259765625,70.9541702270509],[155.89375305175793,71.07291412353538],[157.14375305175804,71.06666564941412],[158.125,70.9937515258789],[159.125,70.83125305175804],[159.5666656494143,70.69791412353516],[159.81823730468773,70.5682296752932],[160.10000610351605,70.25624847412138],[159.74583435058605,69.80000305175787],[160.0567626953126,69.70677185058605],[160.9192657470704,69.63072967529297],[161.09739685058594,69.29740142822271],[160.99635314941406,69.06301879882824],[161.2854156494143,69.02500152587896],[161.62031555175793,68.87031555175787],[161.44218444824241,69.31822967529308],[161.83749389648438,69.50208282470732],[162.38285827636741,69.6540069580078],[162.26187133789097,69.39166259765636],[162.70036315918003,69.1583175659182],[162.50527954101562,69.11279296875028],[162.43896484375023,68.96341705322271],[162.7729644775395,68.81952667236328],[162.55137634277355,68.72766876220709],[162.67718505859386,68.63863372802746],[162.52027893066403,68.52133941650402],[162.40057373046875,68.25137329101585],[161.4074859619143,68.38578796386719],[160.73587036132835,68.23564910888683],[159.9905700683595,68.2639770507813],[159.74398803710938,68.16364288330084],[159.34660339355514,68.21170806884771],[158.95898437500023,68.08712005615234],[158.5895843505864,68.0956268310548],[158.4062957763673,68.04562377929693],[158.17015075683616,67.84158325195324],[158.30708312988304,67.70922088623058],[157.88198852539062,67.67973327636719],[157.85130310058602,67.4528198242188],[157.9401855468751,67.25540924072271],[158.34736633300793,67.10282897949247],[158.8250732421875,67.03237915039062],[158.81707763671898,66.87801361083979],[158.9965820312502,66.76388549804693],[158.45596313476562,66.42601776123047],[158.57537841796875,66.31752014160162],[158.45866394042966,66.22428894042973],[158.6168670654298,66.0995864868165],[158.3556823730471,66.07248687744152],[158.14646911621102,66.14128875732428],[157.7246856689453,66.08873748779308],[157.46388244628918,65.96273040771484],[157.13508605957043,65.90567779541014],[157.015380859375,66.03624725341808],[156.76467895507824,66.10266113281261],[156.0901794433596,66.05774688720707],[155.90588378906273,66.16924285888666],[155.0536804199221,66.12309265136734],[154.6177673339845,66.20345306396507],[154.2837677001953,66.07280731201178],[154.43188476562523,65.90635681152355],[153.55076599121105,65.81593322753912],[153.58659362792991,65.60246276855474],[153.52078247070335,65.42600250244139],[153.23977661132812,65.26466369628912],[152.76077270507824,65.2310562133789],[152.4937744140625,64.99733734130871],[152.7509918212893,64.6680526733399],[152.2891998291018,64.5013198852539],[152.3559722900393,64.37648773193371],[151.90916442871128,64.46640014648438],[151.5938110351567,64.42212677001953],[151.4098663330078,64.30570220947271],[151.1940917968751,64.33177185058594],[150.60638427734386,64.29465484619152],[150.61938476562509,64.1569213867188],[150.02236938476562,64.29946136474604],[150.10337829589866,64.46659851074219],[149.8047790527345,64.5534286499024],[149.31489562988304,64.37622833251959],[149.0696716308595,64.4332275390625],[148.50198364257835,64.44837188720709],[148.36888122558605,64.52863311767584],[148.04888916015625,64.40300750732433],[148.30088806152344,64.2037353515625],[148.02899169921886,63.997051239013615],[147.8032684326172,63.971019744873104],[147.3363800048829,64.04385375976574],[146.88987731933616,64.15978240966803],[146.35670471191406,64.15387725830084],[146.13739013671875,63.9250144958496],[145.65399169921886,63.83568191528331],[145.67266845703125,63.673095703124936],[145.45278930664094,63.47723007202154],[145.4005889892578,63.29434967041015],[145.23066711425793,63.16030120849616],[145.25457763671875,63.022399902343814],[145.44918823242188,62.95079803466797],[145.47879028320312,62.69906234741222],[145.41438293457077,62.59260559082031],[145.18888854980491,62.480262756347656],[145.19567871093784,62.28104782104492],[144.7891845703125,62.04123306274425],[144.59530639648438,61.83961486816406],[144.11349487304688,61.71961975097656],[144.00308227539085,61.95697402954101],[143.64886474609375,61.94380187988286],[143.21287536621116,61.99581527709972],[142.96658325195312,61.91350173950195],[142.7166748046876,61.94748687744152],[142.5884704589845,61.878730773925774],[142.32737731933605,61.92353057861328],[142.26399230957054,62.046943664550774],[141.96388244628906,61.984481811523544],[141.59268188476574,62.16811370849616],[141.35148620605491,62.39833831787115],[141.144287109375,62.38124847412103],[140.96408081054688,62.49354934692383],[140.7242889404297,62.405094146728565],[140.522186279297,62.4021110534669],[140.39668273925793,62.316513061523494],[140.25547790527344,61.94152450561523],[140.00469970703125,61.932250976562436],[139.99676513671886,61.76369094848644],[139.653076171875,61.47659683227544],[139.3267822265625,61.4097557067871],[138.7587890625,61.21399688720703],[138.4760894775394,61.075447082519645],[138.24227905273438,60.851806640625],[138.54808044433605,60.674785614013786],[138.35198974609398,60.44456481933593],[138.41519165039074,60.369205474853565],[138.26638793945335,60.23191833496094],[138.248779296875,59.954181671142635],[138.32826232910168,59.90405654907238],[138.15298461914097,59.70113754272455],[137.68038940429685,59.72086334228526],[137.51788330078125,59.637962341308594],[137.49620056152366,59.5395774841308],[137.2187957763672,59.40946960449218],[137.0044860839846,59.39092636108404],[136.82278442382824,59.30403137207037],[136.12748718261741,59.39878463745128],[135.91470336914074,59.48477554321294],[135.66387939453136,59.48115539550781],[135.16148376464855,59.09138107299805],[134.25389099121116,59.188705444336044],[134.0105895996095,59.25363922119141],[133.6663818359375,59.2149772644043],[133.5457916259769,59.24996566772466],[133.05540466308628,59.182388305664176],[132.86097717285202,59.099540710449276],[132.8497772216798,58.91018676757818],[132.6248779296875,58.88606262207031],[132.52168273925793,58.71313476562506],[132.5741882324222,58.64247512817388],[132.4439849853518,58.51203155517578],[132.19108581542991,58.528465270996094],[132.25508117675815,58.28460693359386],[132.047607421875,58.071956634521534],[131.72747802734386,58.219184875488395],[131.56410217285156,58.11107635498041],[131.81988525390625,57.90299224853511],[132.13018798828125,57.72707366943371],[131.8265838623048,57.58051681518567],[131.5359802246095,57.271705627441406],[131.33238220214866,57.33642578125006],[131.26419067382824,57.18524551391607],[131.51377868652355,57.101776123046875],[131.87678527832077,56.79666519165038],[131.71849060058605,56.701633453369084],[131.66448974609398,56.46417999267584],[131.3436889648442,56.51300048828131],[131.18190002441418,56.42901611328124],[131.15708923339866,56.253910064697315],[130.97528076171875,56.07484054565441],[130.8927917480473,55.92188644409191],[130.986083984375,55.70123672485346],[130.72409057617188,55.77344131469732],[130.00978088378906,55.71006011962901],[129.63227844238293,55.76982116699219],[129.2996826171875,55.742393493652344],[129.03538513183616,55.6793441772462],[129.14279174804733,55.580661773681754],[128.9863891601567,55.50091552734374],[128.7920837402345,55.50666427612316],[128.24118041992207,55.689907073974666],[128.0808868408203,55.67566680908209],[127.68518829345726,55.713146209716854],[127.59788513183605,55.62340927124018],[127.4167938232423,55.59953689575206],[127.328582763672,55.70069122314459],[127.07429504394543,55.70475006103527],[126.88739013671886,55.612686157226555],[126.61418914794943,55.666030883789176],[126.46698760986338,55.597179412841854],[126.07677459716808,55.62282562255865],[126.05857849121116,55.72790145874035],[125.77259063720703,55.79460525512701],[125.60909271240246,55.768058776855575],[125.39449310302747,55.87777328491216],[124.87408447265625,55.856548309326165],[124.47119140625033,55.950378417968864],[124.42538452148449,56.066707611083984],[124.27209472656249,56.12319564819335],[123.99459075927733,56.37763214111339],[123.86538696289074,56.42337417602539],[123.45599365234386,56.41492462158203],[123.10108184814497,56.489643096923885],[122.95247650146506,56.596000671386776],[122.77029418945334,56.50225067138672],[122.62879180908224,56.52250671386718],[122.17757415771483,56.76365280151367],[121.64498138427756,56.77133178710949],[121.48700714111327,56.99433898925781],[120.93968200683605,57.05208969116211],[120.38408660888672,57.02729415893554],[120.09629058837902,56.92132186889659],[119.7814941406251,56.9057502746582],[119.63708496093774,56.98066711425787],[119.66258239746129,57.163555145263786],[119.39148712158214,57.418170928955135],[119.44618988037132,57.57947540283214],[119.00719451904308,57.72717666625987],[119.13709259033213,58.12749481201171],[119.0887908935548,58.2240562438966],[119.07548522949229,58.48748397827143],[118.76448822021496,58.594631195068466],[118.81668853759766,58.80208969116216],[118.74748229980469,58.91421508789073],[118.68948364257814,59.19795608520519],[118.8267745971683,59.29489135742193],[118.73919677734374,59.41302490234369],[118.36619567871094,59.47940444946295],[118.23178863525413,59.60691833496099],[118.03059387207043,59.598358154296925],[117.9225845336915,59.44094848632812],[117.27029418945335,59.48458480834966],[117.14827728271484,59.53166961669916],[117.12969207763695,59.819625854492294],[117.27548217773449,60.03850555419922],[117.05989074707043,60.01239395141613],[116.87740325927778,60.19826126098633],[116.4955825805664,60.35449600219732],[116.25788879394577,60.381546020507926],[115.67437744140646,60.52421188354492],[115.40338897705101,60.44536590576177],[115.22398376464878,60.47521591186529],[115.04588317871094,60.2675514221192],[114.8906707763673,60.17819976806646],[114.69469451904332,60.18165969848632],[114.51919555664074,60.056388854980405],[114.54588317871092,59.95115661621093],[114.23757934570335,59.858222961425774],[114.15539550781273,59.740455627441456],[113.95967864990257,59.721977233886825],[113.82278442382858,59.59870529174799],[113.60099029541014,59.5364227294923],[113.42030334472679,59.40068817138671],[113.45299530029307,59.246364593505916],[112.65889739990257,58.99961471557611],[112.53959655761719,58.86918640136725],[112.36268615722678,58.94820785522466],[112.37979125976562,59.132343292236435],[112.60719299316418,59.22062683105469],[112.6091766357423,59.30592346191412],[112.25617980957031,59.2989120483399],[112.23168182373058,59.480144500732415],[111.96369171142607,59.28927230834966],[111.58386993408209,59.19935989379883],[111.36758422851585,59.25527191162121],[111.19478607177757,59.18805694580084],[111.05188751220703,59.23276901245122],[110.66398620605473,59.23534393310552],[110.52928924560551,59.07193756103521],[110.13488006591803,58.97113800048828],[109.84828948974604,58.99227523803716],[109.53708648681646,59.133255004882805],[109.38699340820335,59.27058410644531],[109.19648742675808,59.31725692749023],[109.24958801269548,59.4787712097168],[109.42248535156256,59.582862854003956],[109.41599273681662,59.71179580688488],[109.61067962646483,59.85977172851562],[109.73029327392584,60.019088745117244],[109.65779113769531,60.09603118896495],[109.91727447509794,60.46295166015631],[110.25808715820335,60.67520141601568],[110.26738739013672,60.791835784912166],[110.50140380859375,60.95031738281261],[110.54428100585932,61.09622192382823],[110.26317596435547,61.12279510498046],[110.01268768310541,61.266429901123104],[109.80968475341803,61.3029441833496],[109.85147857666044,61.52491760253906],[109.62269592285156,61.69590759277355],[109.57048797607445,61.806121826171925],[109.73378753662138,61.964775085449276],[109.9276885986328,62.01083374023431],[109.9992828369141,62.14464569091802],[109.88619995117216,62.384899139404354],[109.44618988037121,62.37328720092785],[109.3219833374024,62.531219482421875],[109.51198577880888,62.70124816894543],[109.68299102783209,62.77556228637706],[109.50339508056669,62.933498382568466],[109.431900024414,63.33555603027344],[109.3056869506836,63.318023681640675],[109.0999832153323,63.501834869384815],[108.63528442382817,63.54714965820318],[108.19779205322271,63.552024841308594],[108.360191345215,63.74987792968756],[108.76528930664057,63.76220703124999],[108.83898925781256,63.942726135253956],[108.60639953613276,63.99736785888671],[108.51888275146501,64.1240463256836],[108.32037353515624,64.23208618164074],[108.07008361816423,64.2308349609375],[107.93347167968761,64.19406127929688],[107.62167358398455,64.28575134277344],[107.305992126465,64.26539611816406],[107.27388763427761,64.35552215576183],[107.0106735229495,64.36584472656244],[106.56778717041043,64.44902038574219],[106.09849548339842,64.44148254394537],[105.80818939208983,64.50167846679686],[105.72568511962919,64.67439270019537],[106.08288574218754,64.87686920166014],[106.04469299316406,65.07867431640625],[106.41598510742199,65.21556091308588],[106.53089141845703,65.35589599609386],[106.83657836914057,65.3800888061524],[106.85269927978538,65.54202270507818],[106.49577331542984,65.688705444336],[106.5195922851564,65.98461914062517],[106.4495925903322,66.11328887939459],[106.18598937988276,66.18099975585943],[106.19978332519531,66.42591857910168],[106.32837677001976,66.5195999145509],[106.31208038330095,66.71972656249999],[106.14228820800793,66.8673095703126],[105.7094802856448,66.94254302978516],[105.54718017578153,67.04595184326178],[106.01157379150396,67.06475830078125],[106.07987976074247,67.19561004638672],[106.79728698730463,67.37574768066412],[106.81327819824247,67.63785552978527],[106.93309020996088,68.1790771484375],[106.96009063720726,68.6483612060548],[106.90386962890653,68.8769760131836],[106.15577697753912,69.39128875732433],[106.51088714599615,69.57548522949224],[107.0456771850586,69.54841613769537],[107.50518035888678,69.65930938720697],[108.02658081054682,69.70210266113304],[108.33657836914061,69.84336090087885],[108.9345855712891,69.84790802001964],[109.35508728027344,69.7836151123048],[109.50068664550787,69.9847183227539],[109.42127990722656,70.22929382324241],[109.67119598388695,70.3840408325198],[110.18217468261741,70.40389251708994],[110.15747070312494,70.62503051757812],[110.61238098144548,70.75284576416016],[110.98178100585966,70.7920608520509],[111.58087158203153,70.93292999267584],[112.00128936767578,70.97235107421875],[112.17518615722679,71.05240631103527],[112.57167053222656,71.07269287109375],[112.61147308349621,71.20156860351574],[112.33557128906273,71.3651733398438],[112.12557220459006,71.39774322509771],[112.0276870727539,71.79266357421886],[112.01486206054699,72.12126922607433],[111.6477890014649,72.1916885375976],[111.68959045410185,72.28987884521496],[111.06248474121105,72.4073333740235],[111.21607971191423,72.53866577148438],[110.78026580810547,72.6510009765625],[110.71897888183588,72.80797576904297],[110.92687225341808,73.08507537841808],[110.86448669433622,73.1896743774414],[110.36228179931669,73.22848510742199],[110.89767456054716,73.61923217773443],[110.91510009765642,73.69531249999999],[110.90438842773432,73.70207977294933],[111.24230194091803,73.90673065185558],[111.66510009765625,73.75468444824224],[112.24791717529297,73.7041702270509],[112.80208587646483,73.72083282470702],[113.16041564941418,73.87500000000023],[113.44322967529308,73.65781402587919],[113.19531250000011,73.44426727294922],[113.58281707763695,73.3213500976563],[113.49791717529308,73.21250152587885],[113.52916717529295,72.95207977294928],[113.22083282470714,72.82707977294922]]],[[[140.75677490234398,74.269271850586],[141.05833435058616,74.23332977294938],[141.03906250000023,74.00676727294922],[140.4041595458989,73.92292022705084],[140.17552185058605,74.06510162353533],[140.29791259765648,74.24166870117197],[140.75677490234398,74.269271850586]]],[[[146.48802185058616,75.58802032470709],[146.64843750000045,75.42760467529301],[147.13333129882824,75.31874847412121],[147.38333129882835,75.42708587646496],[148.38749694824241,75.40208435058621],[148.68540954589844,75.19374847412115],[149.3874969482422,75.2624969482423],[150.1499938964845,75.20833587646494],[150.65834045410156,75.08750152587913],[150.62709045410156,74.86250305175793],[149.69218444824264,74.75885009765624],[149.17707824707065,74.72708129882824],[148.16041564941403,74.78541564941412],[147.68750000000023,74.95417022705078],[147.13958740234384,75],[146.34165954589844,75.16041564941412],[146.22343444824241,75.38176727294922],[146.48802185058616,75.58802032470709]]],[[[135.7276000976566,75.8671875],[135.89166259765625,75.71250152587889],[136.21458435058594,75.62708282470703],[135.97865295410156,75.4026031494141],[135.5776062011721,75.36927032470709],[135.7276000976566,75.8671875]]],[[[139.07066345214844,76.19797515869145],[139.9895782470703,75.83333587646513],[140.4479217529297,75.79374694824219],[140.45989990234386,75.63281250000023],[141.10208129882824,75.625],[140.94427490234398,75.96198272705078],[141.18489074707043,76.05781555175787],[141.82083129882812,76.10624694824224],[142.585418701172,75.85832977294933],[143.1125030517578,75.79792022705072],[143.6145782470705,75.85208129882807],[145.2541656494145,75.57083129882818],[144.83541870117188,75.433334350586],[144.73072814941406,75.15364837646484],[144.38125610351562,75.0479202270509],[143.42083740234386,75.05000305175793],[142.97084045410168,75.13749694824224],[142.70416259765625,75.3125],[142.6088562011721,75.47031402587896],[143.09532165527344,75.63176727294932],[142.99790954589866,75.72083282470714],[142.42916870117207,75.73542022705078],[141.9859313964845,75.65676879882807],[142.1687469482422,75.37916564941412],[142.8041687011721,75.06458282470702],[143.58958435058605,74.99583435058605],[143.54791259765636,74.89791870117193],[142.86405944824241,74.87031555175808],[142.49374389648438,74.78958129882818],[141.98333740234375,74.91249847412121],[141.5749969482422,74.9312515258789],[140.27708435058616,74.81666564941412],[139.9244842529298,74.95468902587908],[139.4520874023441,74.6999969482423],[139.06250000000023,74.63333129882812],[138.70416259765636,74.71458435058594],[138.19999694824241,74.75000000000011],[137.890106201172,74.91926574707031],[137.39791870117185,75.04582977294933],[136.95051574707054,75.25989532470703],[137.46614074707043,75.33802032470713],[137.19999694824241,75.55208587646484],[137.14634704589844,75.7203140258789],[137.58384704589844,75.80677032470709],[137.42759704589855,75.90052032470714],[137.67707824707043,75.995834350586],[138.11457824707077,76.00208282470709],[138.20468139648472,76.10676574707031],[139.07066345214844,76.19797515869145]]]]},"properties":{"ID_0":188,"ISO":"RU-SA","NAME_0":"Russia","ID_1":61,"NAME_1":"Sakha","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Саха","VARNAME_1":"Republic of Sakha|Yakutia-Sakha|Yakutsk|Yakut A.S.S.R.|Yakutskaya A.S.S.R.|Respublika Sakha"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[52.55948638916021,54.38675308227539],[52.40178680419933,54.33279800415045],[52.36262130737299,54.1335182189942],[52.450824737548885,54.065792083740284],[52.38597488403326,53.87900924682617],[52.250480651855696,53.754451751708984],[52.211967468261776,53.61233901977539],[52.09883880615257,53.512184143066456],[52.172378540039226,53.31325531005865],[52.08682250976585,53.1885032653808],[52.08806991577171,53.013217926025334],[51.74055480957048,52.86372756958008],[51.684833526611385,52.680240631103516],[51.54378890991205,52.65265274047857],[51.570575714111385,52.48341751098633],[51.41514205932623,52.35010147094732],[51.451011657715014,52.130733489990234],[51.3208961486817,52.01918029785167],[50.86277770996087,51.79518127441412],[50.72236633300792,51.94867324829113],[50.37487411499029,52.043769836425895],[50.17121887207031,52.146251678466854],[49.863212585449276,52.189083099365234],[49.381828308105696,52.416275024414176],[49.348358154297046,52.48676681518566],[48.963100433349894,52.47977828979492],[48.690231323242244,52.6473388671875],[48.46958160400419,52.69994735717779],[48.38547134399413,52.80673217773449],[48.55601501464855,52.94037628173834],[48.469799041748104,53.00088119506836],[48.179447174072436,53.058929443359375],[48.21672821044939,53.145809173583984],[47.986446380615234,53.38999557495123],[48.05347061157232,53.47399139404296],[48.41591644287114,53.52069091796875],[48.397457122802905,53.690464019775504],[48.57854080200218,53.777614593505916],[48.87150955200218,53.71326065063476],[48.99987792968767,53.84269332885753],[49.369068145752124,53.89337158203125],[49.58529663085937,53.82916259765631],[49.92872619628917,53.95122528076177],[50.1743354797365,54.07267379760748],[50.26553344726591,54.25235366821294],[50.24081802368169,54.36099243164073],[50.07981872558611,54.533687591552784],[50.39263153076189,54.47641754150402],[50.575778961181925,54.33333206176758],[50.71639251709007,54.448726654052734],[50.95588684082048,54.34914398193365],[51.005275726318416,54.53733444213878],[51.19542694091814,54.675823211670036],[51.507114410400675,54.64910888671875],[51.841968536376946,54.51508331298834],[52.07532119751005,54.341655731201286],[52.312854766845874,54.452777862548885],[52.55948638916021,54.38675308227539]]]},"properties":{"ID_0":188,"ISO":"RU-SAM","NAME_0":"Russia","ID_1":62,"NAME_1":"Samara","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Самарская область","VARNAME_1":"Kuybyshev|Kuybyshevskaya|Samarskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.86277770996087,51.79518127441412],[50.83658599853543,51.74708557128906],[50.71681594848632,51.628440856933594],[50.514194488525504,51.60126876831054],[50.367633819580305,51.34031295776367],[49.95227813720708,51.24059677124029],[49.735996246338004,51.1147193908692],[49.420497894287394,51.129589080810604],[49.32477569580084,50.98959350585949],[49.410907745361555,50.85842514038097],[49.09297180175798,50.783470153808594],[48.82474899291997,50.60033798217779],[48.63606643676775,50.54226303100586],[48.76188659667968,50.10190963745123],[48.877548217773715,50.0233535766601],[48.73499679565458,49.926750183105526],[48.433258056640625,49.837982177734375],[48.2168922424317,49.90937042236334],[48.096481323242244,50.09138107299805],[47.81656265258812,50.33131408691412],[47.55146026611345,50.46271514892584],[47.43362426757818,50.39659881591808],[47.220188140869254,50.48167037963873],[47.01612854003912,50.488269805908146],[46.91388702392583,50.60490417480463],[46.673664093017635,50.69212722778332],[46.494293212890845,50.540046691894474],[46.12767028808599,50.541858673095646],[46.140678405761776,50.65069198608404],[45.89295959472684,50.764766693115284],[45.711803436279524,50.69474792480469],[45.727897644043026,50.57336425781256],[45.45093154907255,50.593265533447315],[45.29403305053711,50.5538063049317],[45.22847747802751,50.68468475341797],[45.35919570922863,50.785984039306754],[45.35993576049833,50.89147567749018],[45.10884475708007,51.12010574340826],[44.895298004150675,51.18392944335949],[44.310501098632976,51.183631896972656],[44.19629287719738,51.107051849365234],[43.82295989990251,51.13862609863281],[43.54269027709978,51.026103973388786],[43.39286422729498,51.04439163208019],[42.95245742797857,51.25340270996088],[42.9382286071779,51.39073944091797],[42.84353256225608,51.48182678222661],[42.58007812500028,51.57358169555664],[42.564212799072436,51.68557739257824],[42.733951568603686,51.84327697753912],[42.852146148681925,52.1217994689942],[43.115215301513615,52.39695358276361],[43.28373336791998,52.45236206054682],[43.46720123291026,52.355495452880916],[43.814968109131144,52.44512176513672],[43.96572494506852,52.3748397827149],[44.30767822265631,52.29363250732433],[44.54317474365251,52.406387329101506],[44.588054656982536,52.5098228454591],[44.835979461670206,52.48129272460949],[45.075187683105526,52.33676910400385],[45.14360046386736,52.40697097778326],[45.531406402588175,52.414634704589844],[45.72552871704124,52.51664733886719],[45.97423553466791,52.4033088684082],[46.001731872558764,52.52402496337902],[46.34008026123064,52.666866302490234],[46.64696121215826,52.731746673583984],[46.80248260498052,52.64192199707042],[46.970661163330135,52.65193176269531],[47.427352905273494,52.55996322631841],[47.596786499023715,52.630687713623104],[47.776252746582315,52.58022689819347],[47.84814834594743,52.754302978515625],[48.38547134399413,52.80673217773449],[48.46958160400419,52.69994735717779],[48.690231323242244,52.6473388671875],[48.963100433349894,52.47977828979492],[49.348358154297046,52.48676681518566],[49.381828308105696,52.416275024414176],[49.863212585449276,52.189083099365234],[50.17121887207031,52.146251678466854],[50.37487411499029,52.043769836425895],[50.72236633300792,51.94867324829113],[50.86277770996087,51.79518127441412]]]},"properties":{"ID_0":188,"ISO":"RU-SAR","NAME_0":"Russia","ID_1":63,"NAME_1":"Saratov","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Саратовская область","VARNAME_1":"Saratovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.15716552734381,55.92962265014654],[35.34578704833984,55.75846481323236],[35.3502731323245,55.49065017700207],[35.28896713256847,55.28449249267584],[35.37735366821289,55.22885131835949],[35.38077926635742,55.16138076782232],[35.17611694335966,54.97915649414074],[34.955974578857585,54.92178344726574],[34.979309082031364,54.77207565307623],[34.55910491943387,54.61239242553711],[34.49197006225586,54.49597930908208],[34.26461791992216,54.48426437377935],[34.017467498779524,54.55827713012701],[33.70205307006847,54.49966812133789],[33.65891265869158,54.3496932983399],[33.749347686767855,54.310287475586044],[33.54387283325217,54.007575988769645],[33.2837562561038,53.8709831237793],[33.09860610961931,53.64677429199219],[32.76076126098661,53.41225051879882],[32.462646484375,53.574119567871094],[32.50915527343767,53.695682525634766],[32.131977081299,53.80672454833996],[31.842107772827315,53.78347778320324],[31.883245468139936,54.014282226562436],[31.33005714416521,54.260890960693416],[31.241838455200426,54.463722229003906],[31.08509635925293,54.51119613647472],[31.21398353576666,54.65038299560541],[30.76061058044428,54.81175231933587],[30.943784713745174,54.95962142944347],[30.98441696166998,55.18688201904308],[30.83307456970226,55.34179306030279],[30.938566207885685,55.404754638671875],[30.91626358032227,55.62602996826172],[30.98775863647478,55.69955825805664],[31.457376480102763,55.75132369995123],[31.79309654235857,55.672634124755795],[32.09571456909197,55.7227554321289],[32.132472991943644,55.6372451782226],[32.6769828796389,55.628334045410156],[33.012290954590014,55.5869140625],[33.231391906738565,55.599971771240234],[33.298797607422046,55.67838668823242],[33.52970886230497,55.70221710205083],[33.72680664062517,55.80390548706055],[33.71378707885748,55.893928527832145],[34.231792449951165,56.03974914550781],[34.74118804931646,55.882789611816406],[34.818466186523494,55.944362640380916],[35.15716552734381,55.92962265014654]]]},"properties":{"ID_0":188,"ISO":"RU-SMO","NAME_0":"Russia","ID_1":64,"NAME_1":"Smolensk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Смоленская область","VARNAME_1":"Smolenskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[45.7094612121582,44.98960113525396],[45.58984375000005,44.88315963745117],[45.64491653442394,44.77478027343756],[45.50423049926758,44.598480224609375],[45.30944824218773,44.525314331054744],[45.36286163330083,44.41144561767584],[45.503036499023665,44.34289932250982],[45.44076919555687,44.254520416259766],[45.22692108154308,44.20801162719732],[45.35768890380865,44.113613128662166],[45.583023071289176,44.106788635253906],[45.5693778991702,43.97541427612316],[45.44735717773443,43.81063842773443],[45.158073425293075,43.88348770141612],[45.12002563476568,43.684391021728516],[44.96052932739286,43.643440246582145],[44.888744354248104,43.726741790771484],[44.71249008178711,43.759857177734375],[44.42427062988309,43.7303581237793],[44.40965652465843,43.843856811523494],[44.073207855224666,43.92408370971691],[43.8842391967774,43.739944458007926],[43.673252105713175,43.78469848632818],[43.4763679504395,43.74176025390631],[43.418952941894645,43.8531761169433],[42.879692077636776,43.74985122680664],[42.7333412170413,43.96999359130854],[42.57834243774431,43.914531707763786],[42.45737075805658,44.04720306396496],[42.61590576171881,44.144016265869254],[42.45710754394548,44.30070877075201],[42.1906051635745,44.322475433349666],[42.03064346313504,44.46559906005865],[41.86980056762701,44.44123840332036],[41.58489227294939,44.58459854125988],[41.61912155151384,44.7076683044433],[41.747570037842024,44.82118606567382],[41.73648452758795,44.92039489746105],[41.577224731445256,44.97200393676769],[41.41750335693382,45.11592864990229],[41.36255264282221,45.22734069824219],[41.07731246948248,45.23329162597656],[41.03847122192411,45.41628265380871],[40.845138549804965,45.56366348266613],[40.87628936767595,45.68764114379894],[41.19297027587896,45.70880508422863],[41.301670074463175,45.79696655273443],[41.161376953125284,45.91305160522472],[41.18284606933594,45.984771728515625],[41.40194702148432,45.95233535766607],[41.46742630004911,46.01821517944336],[41.72266006469721,46.010082244873104],[42.184879302978516,45.946632385253906],[42.18614959716802,46.09731674194347],[42.34757232666044,46.117866516113224],[42.32843399047846,45.97244644165038],[42.56415557861328,45.99406814575201],[42.81304550170927,46.09181213378911],[42.899993896484546,46.20640563964844],[43.36589431762695,46.066642761230526],[43.493743896484546,45.97897720336913],[43.72995758056646,45.96230316162115],[44.047424316406364,45.876682281494084],[44.15728378295904,45.72904205322271],[44.376140594482706,45.52777099609375],[44.511672973632926,45.46749877929687],[44.902450561523715,45.40328598022461],[44.94964599609392,45.353240966796875],[45.45902633666992,45.18701171875006],[45.7094612121582,44.98960113525396]]]},"properties":{"ID_0":188,"ISO":"RU-STA","NAME_0":"Russia","ID_1":65,"NAME_1":"Stavropol","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Ставропольский край","VARNAME_1":"Stavropol'skiy Kray|Stavropolskiy Kray"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[65.97730255126982,58.56711959838873],[66.03827667236334,58.27107238769542],[66.20344543457031,58.06344223022473],[65.88550567626957,57.9678192138673],[65.54083251953125,57.792900085449325],[65.41204071044939,57.84169769287114],[64.8923950195313,57.68666839599621],[65.0114135742188,57.61046600341796],[64.87589263916033,57.4865226745605],[65.09265136718773,56.97111129760753],[65.2780456542971,56.93207931518555],[65.20893096923845,56.81977462768554],[64.96775817871122,56.79666137695318],[64.8467636108399,56.86332702636719],[64.58470916748053,56.86603164672863],[64.31227874755876,56.75274658203131],[64.11381530761724,56.50340270996094],[63.787296295166016,56.525180816650504],[63.496009826660384,56.6495628356933],[63.12365341186551,56.5966033935548],[62.94579315185575,56.64783859252941],[62.7471885681154,56.58284378051758],[62.399291992187564,56.55629730224614],[62.161491394043246,56.3459587097168],[62.04189682006837,56.30136108398449],[62.03094863891612,56.179256439208984],[61.6801261901856,56.34332656860357],[61.20479583740229,56.40869903564459],[61.0709800720216,56.34933853149425],[61.140232086181584,56.25442886352538],[60.577255249023544,56.239315032958984],[60.41116714477544,56.29547500610357],[60.06461334228533,56.25220489501953],[59.721618652343864,56.251808166503906],[59.627262115478565,56.33762741088873],[59.26965332031249,56.386581420898494],[59.030738830566456,56.155094146728565],[58.86010360717797,56.08219146728527],[58.56117248535184,56.185100555420036],[58.31609725952154,56.10857391357422],[58.01305007934592,56.10430526733398],[57.80295181274408,56.17052078247075],[57.56007003784185,56.13613128662115],[57.41663742065435,56.34223175048828],[57.38243865966825,56.59109115600591],[57.44146347045926,56.676403045654354],[57.259742736816634,56.838897705078125],[57.362434387206974,56.959430694580135],[57.593643188476726,56.90876388549816],[57.95298385620123,57.09715652465826],[58.04373550415045,57.304000854492244],[57.89730834960937,57.402446746826165],[57.971946716308814,57.590244293213],[58.15758514404325,57.75786590576172],[58.4717750549317,57.734546661377],[58.56768798828119,57.629653930664006],[58.87579345703125,57.787612915039055],[58.84773254394549,57.91762161254883],[58.68779373168962,57.93784332275401],[58.59856033325195,58.09420776367193],[58.81058502197271,58.26418685913086],[59.47598648071311,58.546356201171875],[59.413845062256144,58.67742156982421],[59.108390808105746,58.83696365356445],[59.21200942993187,58.98324584960943],[59.15748214721685,59.170585632324325],[58.98773193359392,59.2827377319337],[58.74021148681646,59.3237419128418],[58.489196777343814,59.49189758300787],[58.630619049072315,59.73645019531255],[58.77598571777338,59.85326766967779],[59.06970214843744,59.984901428222656],[59.22676467895519,60.25355911254883],[59.21519470214872,60.35075759887706],[59.40550613403315,60.571990966796875],[59.50138854980468,60.76552963256841],[59.50327301025407,60.9236564636231],[59.37621688842779,61.04436111450195],[59.30701065063482,61.346149444580135],[59.49711227416992,61.57759094238286],[59.39514541626005,61.69829559326172],[59.357086181640675,61.81312561035162],[59.46472549438499,61.94725036621099],[59.82992172241228,61.917572021484325],[59.99021530151373,61.85849380493175],[60.06925964355491,61.713531494140625],[60.42481613159197,61.74943161010736],[61.079917907714844,61.70253753662114],[62.7186660766601,61.203243255615234],[62.89553070068359,61.07318115234369],[62.83428192138688,60.88654708862299],[63.030693054199155,60.60691833496099],[63.29136276245134,60.39742279052729],[63.259773254394474,60.24101257324213],[63.70489883422851,60.14952850341797],[63.85338973999052,59.85419464111322],[63.850833892822266,59.577541351318295],[64.03922271728538,59.43696594238287],[64.47284698486322,59.40605545043956],[64.73514556884781,59.34940719604503],[65.10372924804693,59.3437118530274],[65.24851226806669,59.25699615478526],[65.53964233398455,58.807826995849666],[65.72942352294939,58.697231292724666],[65.93867492675798,58.658050537109496],[65.97730255126982,58.56711959838873]]]},"properties":{"ID_0":188,"ISO":"RU-SVE","NAME_0":"Russia","ID_1":66,"NAME_1":"Sverdlovsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Свердловская область","VARNAME_1":"Yekaterinburg|Sverdlovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.11437606811552,53.78124237060546],[42.10821533203136,53.55317687988287],[42.32117462158209,53.42033004760748],[42.59943389892578,53.182258605957145],[42.591297149658374,53.112251281738395],[42.98170852661127,52.902549743652344],[43.27666473388683,52.67499160766613],[43.118705749512,52.497768402099666],[43.115215301513615,52.39695358276361],[42.852146148681925,52.1217994689942],[42.733951568603686,51.84327697753912],[42.564212799072436,51.68557739257824],[42.58007812500028,51.57358169555664],[42.26778411865239,51.67601013183605],[42.00630569458025,51.63741683959972],[41.67168045043974,51.7427864074707],[41.41281127929681,51.770069122314446],[41.35627365112321,51.71627426147461],[41.007873535156364,51.72241210937494],[40.96789932251005,51.88087081909179],[40.6066513061524,51.93589782714844],[40.69947814941423,52.133609771728516],[40.819225311279354,52.196453094482536],[40.60014724731473,52.32683563232433],[40.38084030151361,52.374431610107536],[40.384334564208984,52.451442718505966],[40.11714935302729,52.53764343261719],[40.011119842529524,52.74597167968756],[40.181606292724666,52.800712585449276],[40.12696456909191,53.192043304443416],[40.19570922851591,53.31672286987305],[40.516738891601506,53.39076995849604],[40.549861907959155,53.484207153320426],[40.80589294433588,53.53750228881847],[41.101249694824276,53.45912170410156],[41.34038162231473,53.46971130371105],[41.431274414062784,53.73726272583007],[42.11437606811552,53.78124237060546]]]},"properties":{"ID_0":188,"ISO":"RU-TAM","NAME_0":"Russia","ID_1":67,"NAME_1":"Tambov","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Тамбовская область","VARNAME_1":"Tambovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[51.426757812500114,56.146137237548885],[51.53682708740228,56.09707260131836],[51.42961502075201,55.98303604125982],[52.25846862792974,55.924072265625114],[52.23495101928716,56.075416564941406],[52.483669281005916,56.03357315063482],[52.79676818847685,56.227539062500114],[52.572708129882756,56.274677276611385],[52.738582611084155,56.379337310791016],[52.99965667724615,56.42150115966808],[53.02949523925792,56.24081802368158],[53.23204040527372,56.1483612060548],[53.56889724731451,56.2570152282716],[53.58503341674799,56.170467376708984],[53.259033203125,55.93959045410156],[53.38531875610362,55.87492752075201],[53.79792785644536,55.980274200439396],[54.19494247436529,55.768352508545036],[54.200267791748104,55.68797683715826],[54.0101165771486,55.58977127075201],[53.903453826904354,55.39184188842785],[53.681930541992415,55.32246017456055],[53.53339004516601,55.21333312988287],[53.185462951660384,55.15990829467785],[53.513286590576456,54.9273681640625],[53.63167953491234,54.70544815063476],[53.455108642578125,54.53090667724615],[53.37245178222667,54.26820373535156],[53.3920555114746,54.05834579467779],[53.063671112060774,54.152427673339844],[52.99634170532249,54.291648864746094],[52.55948638916021,54.38675308227539],[52.312854766845874,54.452777862548885],[52.07532119751005,54.341655731201286],[51.841968536376946,54.51508331298834],[51.507114410400675,54.64910888671875],[51.19542694091814,54.675823211670036],[51.005275726318416,54.53733444213878],[50.95588684082048,54.34914398193365],[50.71639251709007,54.448726654052734],[50.575778961181925,54.33333206176758],[50.39263153076189,54.47641754150402],[50.07981872558611,54.533687591552784],[49.87577819824219,54.53015899658208],[49.645526885986385,54.58616638183594],[49.432109832763956,54.82403945922845],[49.158420562744425,54.87781524658209],[48.83855438232422,54.65161132812505],[48.510887145996094,54.625183105468864],[48.11142730712885,54.77926254272461],[47.926410675048885,54.71271896362305],[47.775905609130916,54.76123809814453],[47.581104278564624,54.61192321777343],[47.44272613525408,54.574905395507805],[47.27970504760753,54.723297119140625],[47.37910461425804,54.83041000366211],[47.75094985961937,54.8439674377442],[47.7993278503418,54.96561431884777],[48.08277893066434,55.15318679809576],[47.84599685668956,55.272872924804744],[47.93909072875971,55.44807815551769],[48.166419982910156,55.586402893066456],[48.222423553466854,55.694824218750114],[48.433818817138956,55.83564758300781],[48.68954467773432,56.09873199462896],[48.98272705078142,56.1623878479005],[48.94845199584972,56.353889465332024],[49.120704650879134,56.42201614379877],[49.31427764892584,56.382301330566406],[49.441959381103516,56.46458053588867],[49.76081848144553,56.55646133422863],[50.0210914611817,56.46679306030285],[50.20691299438488,56.560447692871094],[50.07308959960966,56.66929626464855],[50.29765319824236,56.65757751464849],[50.57884979248052,56.54343032836919],[50.69608306884782,56.380413055420036],[50.91780853271507,56.28524780273443],[51.03194427490246,56.17633819580084],[51.32423019409191,56.09873199462896],[51.426757812500114,56.146137237548885]]]},"properties":{"ID_0":188,"ISO":"RU-TA","NAME_0":"Russia","ID_1":68,"NAME_1":"Tatarstan","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Татарстан","VARNAME_1":"Kazan|Kazanskaya G.|Tatar A.S.S.R.|Tatarskaya A.S.S.R.|Republic of Tatarstan|Respublika Tatars"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[84.25296020507841,60.84401702880865],[84.73190307617216,60.44677734375011],[84.82601928710938,60.33487319946295],[84.65495300292974,60.201347351074155],[84.57686614990229,59.98173141479492],[84.64437866210949,59.87342453002929],[85.54250335693386,59.88537597656256],[85.87180328369158,59.93009185791026],[86.45834350585936,59.946235656738345],[87.07840728759766,59.86007690429698],[87.1446151733399,59.67059707641613],[87.48242187500006,59.66497421264654],[87.69311523437517,59.38722610473633],[87.86553192138689,59.243034362793075],[88.5493774414063,59.286502838134766],[88.59142303466825,59.18015289306634],[88.80097961425787,59.01359558105481],[88.52142333984403,58.93806076049805],[88.30503082275389,58.76582717895507],[87.90283203125006,58.502258300781364],[87.9537887573245,58.270748138427784],[88.07513427734368,58.10902404785156],[88.63187408447277,58.046848297119254],[88.80641937255854,57.950714111328125],[89.16123199462889,57.942352294921925],[89.36644744873063,57.8667716979981],[89.38503265380865,57.654151916503956],[89.04875183105491,57.55642700195306],[89.09057617187527,57.47424316406249],[88.84272766113286,57.392879486083984],[88.69318389892578,57.18791198730463],[88.72753906250006,57.01923751831055],[88.61354064941435,56.87193679809582],[87.62561035156267,56.52936172485363],[87.57796478271489,56.644756317138786],[87.17589569091803,56.64091110229498],[87.14412689209013,56.56436920166027],[86.81172180175797,56.53054809570318],[86.60897827148455,56.614051818847656],[86.42799377441423,56.55036926269537],[86.19337463378923,56.615814208984425],[86.15843200683605,56.50875854492187],[85.88780212402361,56.43204879760747],[85.52743530273466,56.209197998046925],[85.25888824462919,56.19990539550775],[84.95735931396513,56.127262115478565],[84.7416458129884,56.12246322631841],[84.45922088623064,56.020111083984375],[84.27587890625011,55.965461730957145],[84.14360809326176,56.02264785766601],[83.96934509277372,55.99017333984375],[83.60433197021501,55.67186737060552],[83.27904510498053,55.6742668151856],[83.35403442382841,55.841747283935604],[83.08963775634771,56.21646499633789],[83.23370361328136,56.42011260986334],[83.1100006103516,56.52379608154297],[82.83723449707031,56.48358917236328],[82.78032684326182,56.39110183715831],[82.38423156738281,56.36865234375006],[81.73280334472668,56.25837326049799],[81.543754577637,56.26044845581066],[81.14511871337919,56.523666381835994],[80.58939361572283,56.4421958923341],[80.26486968994169,56.41904067993164],[79.73370361328153,56.83523178100591],[79.29233551025419,56.98184204101568],[78.74101257324219,57.03640365600586],[78.43326568603544,57.09355545043957],[78.36187744140648,57.153560638427734],[78.0177078247072,57.1381072998048],[76.78825378417986,57.1636352539063],[76.10438537597685,57.229522705078125],[75.82158660888689,57.47215270996093],[75.58903503417997,57.7135353088379],[75.51821899414085,57.94212341308593],[75.09281158447283,58.087249755859375],[75.23374176025408,58.20693588256836],[75.03644561767605,58.306667327880795],[75.34012603759794,58.43856811523432],[75.16059875488287,58.57164764404308],[75.14245605468756,58.649211883545036],[75.17931365966825,58.69867324829101],[75.67737579345696,58.94572830200201],[75.61545562744146,59.18246459960937],[75.82642364501959,59.28072738647472],[75.9382934570312,59.40827178955073],[76.17201232910156,59.52049636840832],[76.67018127441423,59.56427764892572],[76.76520538330084,59.97362899780279],[76.7211837768557,60.075912475585994],[76.86650848388678,60.22253799438482],[76.85919189453142,60.451816558838004],[77.0729522705081,60.53934097290044],[77.00238037109402,60.63495635986333],[77.05595397949247,60.789646148681754],[78.11224365234402,60.789642333984425],[78.87512207031256,60.74225234985357],[79.0121383666995,60.810642242431584],[79.24720764160173,60.790107727050895],[79.30303192138683,60.65766143798834],[80.16073608398466,60.6697731018067],[80.7252197265625,60.78895187377929],[81.0470581054688,60.733203887939396],[81.08193969726568,60.623523712158146],[81.47624206542997,60.60364532470703],[81.86383819580088,60.62518310546875],[82.15301513671868,60.50709152221685],[82.40245819091824,60.594604492187614],[82.41777801513688,60.69557189941406],[82.66909027099638,60.81636047363286],[83.19619750976562,61.00160598754882],[83.51782989501976,61.01337432861333],[83.94595336914078,60.83458328247076],[84.25296020507841,60.84401702880865]]]},"properties":{"ID_0":188,"ISO":"RU-TOM","NAME_0":"Russia","ID_1":69,"NAME_1":"Tomsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Томская область","VARNAME_1":"Tomskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.59634780883806,54.25447082519531],[38.6642951965332,54.23201370239252],[38.67010116577177,54.23009490966802],[38.6728973388673,54.22926712036138],[38.683719635009936,54.2278099060058],[38.8136940002442,54.1434059143067],[38.77686309814447,54.02089691162114],[38.84314346313471,53.81212234497076],[38.94269180297862,53.70460510253912],[38.913753509521655,53.56142807006836],[38.727420806884766,53.492717742919865],[38.822742462158374,53.36959075927745],[38.53716659545927,53.320228576660156],[38.711978912353516,53.11088943481445],[38.3254127502442,52.95281219482433],[38.278091430664006,53.05439758300787],[37.90835952758806,53.06698608398443],[37.85785293579101,53.017463684082145],[37.77911758422857,53.112495422363224],[37.58091354370117,53.142402648925895],[37.57963562011736,53.27813720703131],[37.29885482788091,53.30502319335943],[37.121025085449276,53.27268218994152],[36.75029754638666,53.30532836914057],[36.685241699218864,53.41013336181646],[36.500736236572436,53.39054107666027],[36.285392761230696,53.531932830810604],[36.039611816406364,53.57264328002924],[35.99767684936546,53.638332366943416],[35.927242279052734,53.75899887084961],[35.984798431396655,53.90098190307623],[36.24413681030302,54.0797691345216],[36.21937942504894,54.17079544067382],[36.50695419311529,54.271457672119254],[36.94339752197271,54.31204605102545],[36.97293472290067,54.4212303161621],[36.84381866455078,54.4885520935058],[37.0100402832034,54.5870513916015],[37.18505477905302,54.6140403747558],[37.23786544799833,54.82754898071289],[37.48008346557623,54.80990219116222],[37.68643188476557,54.693054199218864],[37.96731185913103,54.83044433593744],[38.13704299926752,54.690452575683594],[38.515602111816406,54.593887329101676],[38.44290924072283,54.397415161132926],[38.59634780883806,54.25447082519531]]]},"properties":{"ID_0":188,"ISO":"RU-TUL","NAME_0":"Russia","ID_1":70,"NAME_1":"Tula","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Тульская область","VARNAME_1":"Tul'skaya|Tulskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[99.209213256836,52.93704605102545],[99.00712585449236,52.9436759948731],[98.93306732177763,52.685543060302734],[98.81523132324212,52.54051589965832],[98.64746093750004,52.435390472412166],[98.64791870117216,52.278533935546925],[98.98967742919928,52.18605804443371],[98.98908996582054,52.123634338378956],[98.8526611328125,52.0411109924317],[98.69629669189459,51.820365905761776],[98.31530761718743,51.7178955078125],[98.23431396484375,51.46228027343749],[98.04824829101591,51.43787384033203],[97.86727905273432,50.94981765747082],[98.0128784179688,50.87408447265624],[97.95504760742203,50.781925201416065],[98.13265228271484,50.59640502929693],[98.32448577880876,50.538970947265625],[98.27804565429693,50.312072753906364],[98.11618041992182,50.103946685791016],[97.86272430419939,49.94789123535162],[97.76550292968756,49.98431396484375],[97.42997741699219,49.78806304931646],[97.19372558593756,49.7747192382813],[97.00298309326178,49.91452026367193],[96.71691894531277,49.90789794921886],[96.61174011230474,49.98205566406255],[96.40827941894537,49.90231323242193],[96.30212402343767,49.98712158203125],[96.0958099365235,50.01947021484381],[95.47781372070312,49.92234802246099],[95.1295547485352,49.948928833007926],[94.96422576904303,50.06171035766607],[94.60881805419922,50.03871154785161],[94.39892578125011,50.234130859375],[94.34870910644554,50.46482467651367],[94.2236709594726,50.58272171020508],[93.40289306640653,50.58551025390624],[93.10412597656254,50.566894531250114],[92.98245239257818,50.658187866210994],[93.03298950195318,50.7629508972168],[92.8438873291015,50.79410934448248],[92.60710144042991,50.71600723266596],[92.32531738281267,50.88637161254883],[92.30509185791033,50.74412918090826],[92.1957702636718,50.68482208251947],[91.88392639160149,50.73040771484369],[91.66287994384781,50.66690444946295],[91.65794372558611,50.58383941650396],[91.44643402099608,50.54964828491222],[91.44431304931656,50.46540069580083],[91.13926696777371,50.45790100097656],[90.7377319335938,50.487930297851676],[90.66803741455077,50.336765289306754],[90.77500152587908,50.288471221923885],[90.66252899169928,50.16356277465825],[90.36828613281278,50.14447021484369],[90.2874832153322,50.032325744628906],[89.60530853271489,49.94659423828131],[89.60778045654301,50.0583953857423],[89.40225219726574,50.31097412109369],[89.59128570556635,50.37336730957031],[89.79672241210955,50.374256134033196],[89.86594390869134,50.45931243896495],[89.5593032836914,50.646766662597706],[89.54168701171886,50.72339248657238],[89.36615753173834,50.86466598510748],[89.20065307617199,50.917152404785156],[89.03704071044939,51.05790328979498],[88.93582153320318,51.28644561767578],[88.99385833740261,51.3917350769044],[88.78808593750011,51.54139709472667],[89.16997528076188,51.53957366943365],[89.44203186035162,51.57472610473633],[89.6227493286134,51.51965332031261],[89.8809204101563,51.6950569152832],[90.06101989746122,51.74300384521496],[89.95777893066412,51.89212799072277],[90.17519378662108,52.113517761230526],[90.45197296142584,52.163402557373104],[90.65062713623041,52.0596656799317],[90.79418182373051,51.87935256958007],[90.98229980468761,51.929237365722656],[91.11965179443354,51.86716842651373],[91.38346099853531,51.892326354980575],[91.84846496582047,51.7764930725097],[92.38773345947271,51.7964248657226],[92.64479064941423,51.857685089111435],[92.82620239257812,51.851963043213004],[92.97964477539091,51.962425231933594],[93.41497039794939,52.184146881103516],[93.59529876709007,52.20566558837896],[93.74628448486345,52.48766326904297],[93.89962768554703,52.5786972045899],[94.13465881347656,52.88348770141613],[94.46691131591795,52.93654632568365],[94.66674041748041,53.387172698974666],[95.03922271728527,53.40536499023443],[95.12781524658203,53.46241760253912],[95.317451477051,53.398845672607536],[95.65732574462896,53.510955810546875],[95.99554443359402,53.47132110595703],[96.14958953857428,53.53629302978526],[96.35581207275412,53.53716659545892],[96.62551879882817,53.59534072875971],[96.6574020385745,53.67288589477545],[96.81473541259771,53.75337219238281],[97.04811096191406,53.61078643798834],[97.20844268798857,53.61151504516612],[97.51278686523443,53.382141113281364],[97.92311096191435,53.36027145385748],[97.99438476562506,53.23566818237305],[98.1916961669923,53.216613769531364],[98.20771026611338,53.10531616210943],[98.65788269042986,53.1620330810548],[99.209213256836,52.93704605102545]]]},"properties":{"ID_0":188,"ISO":"RU-TY","NAME_0":"Russia","ID_1":71,"NAME_1":"Tuva","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Республика Тыва","VARNAME_1":"Respublika Tyva|Republic of Tuva|Tyva|Tuvinskaya A.S.S.R.|Republic of Tyva"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.62685394287115,58.49007415771479],[37.66633224487322,58.4293899536134],[37.4277839660645,58.33383560180669],[37.43756103515641,58.216644287109425],[37.708984375,58.08309936523438],[37.41404342651373,57.96901702880859],[37.40953063964844,57.799392700195426],[37.604461669921875,57.76208114624034],[37.870578765869084,57.578578948974666],[37.89360427856474,57.434951782226555],[38.0726547241212,57.32637786865245],[38.334629058838004,57.360881805419915],[38.37487792968756,57.27999114990246],[38.223430633545036,57.1733856201173],[38.326648712158374,57.0173835754395],[38.18595123291027,56.97487640380854],[38.18656921386736,56.86711120605462],[38.32255554199236,56.75940322875988],[38.093559265136946,56.74406051635748],[38.02349853515641,56.84601593017584],[37.65044021606474,56.91661071777349],[37.586418151855526,56.81877136230474],[37.14842605590849,56.70548248291021],[37.131431579590014,56.52648162841797],[36.83159255981474,56.553646087646484],[36.24590301513677,56.3817977905274],[35.918178558349894,56.35478973388666],[35.67980957031273,56.460479736328125],[35.50653076171892,56.40373229980474],[35.47354507446295,56.2736701965332],[35.32214736938504,56.195327758789006],[35.328563690185604,56.07001113891607],[35.15716552734381,55.92962265014654],[34.818466186523494,55.944362640380916],[34.74118804931646,55.882789611816406],[34.231792449951165,56.03974914550781],[33.71378707885748,55.893928527832145],[33.72680664062517,55.80390548706055],[33.52970886230497,55.70221710205083],[33.298797607422046,55.67838668823242],[33.231391906738565,55.599971771240234],[33.012290954590014,55.5869140625],[32.6769828796389,55.628334045410156],[32.132472991943644,55.6372451782226],[32.09571456909197,55.7227554321289],[31.79309654235857,55.672634124755795],[31.457376480102763,55.75132369995123],[31.396373748779354,55.97911834716802],[31.53917884826666,56.05973815917969],[31.47416877746588,56.160060882568416],[31.506719589233683,56.317863464355526],[31.335454940796183,56.3177375793457],[31.250478744506836,56.43729400634771],[31.041820526123104,56.46479797363292],[31.071172714233395,56.614856719970646],[30.831148147583004,56.71336746215826],[31.013320922851847,56.941478729248104],[31.656005859375167,56.88953399658209],[31.81422615051275,57.05892181396489],[32.31204986572294,57.1481323242188],[32.30517959594726,57.20772933959961],[32.67626571655302,57.2868309020996],[32.80146408081072,57.39684677124035],[33.09372711181635,57.40131759643555],[33.387847900390796,57.55055236816406],[33.417179107666016,57.66699600219726],[33.64765548706083,57.71880340576171],[33.7308349609375,57.96771240234375],[33.62504196167009,58.04153060913097],[34.23824310302757,58.19052124023444],[34.742275238037166,58.056179046630916],[34.85094451904308,58.228973388671875],[35.094562530517635,58.172420501708984],[35.34325408935541,58.26561737060547],[35.40372085571312,58.3637351989746],[35.6119003295899,58.43427276611333],[35.98049926757807,58.39838790893566],[36.16667938232439,58.48733139038085],[36.471992492676065,58.522487640380916],[36.8418426513673,58.79821777343756],[37.09162139892584,58.84276199340826],[37.62685394287115,58.49007415771479]]]},"properties":{"ID_0":188,"ISO":"RU-TVE","NAME_0":"Russia","ID_1":72,"NAME_1":"Tver'","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Тверская область","VARNAME_1":"Kalinin|Kalininskaya|Tverskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[75.14245605468756,58.649211883545036],[75.16059875488287,58.57164764404308],[74.73494720458979,58.36335754394537],[74.15000915527361,58.11391830444341],[73.14716339111334,58.134361267089844],[72.82495117187517,57.959129333496094],[72.52975463867193,58.00011444091796],[72.17090606689447,57.99098587036144],[71.89984130859402,58.08410263061523],[71.3031387329102,58.02345657348633],[71.24032592773455,58.21358871459955],[71.290824890137,58.36579895019536],[70.87338256835938,58.52127838134772],[70.79064941406254,58.35472106933599],[70.54830169677746,58.04197692871105],[70.49469757080107,57.741832733154354],[70.6216735839846,57.66195678710937],[70.7104034423831,57.49315261840832],[70.42513275146501,57.3690223693847],[70.65911865234386,57.20405578613287],[70.81742095947294,57.31109619140636],[71.04919433593744,57.32264709472656],[71.14638519287132,57.171546936035156],[71.54615020751957,56.92844772338867],[71.62040710449247,56.82602691650396],[71.56251525878905,56.69229125976568],[71.37351989746098,56.617538452148494],[71.22164154052751,56.634525299072266],[70.96947479248063,56.42489624023443],[71.0162734985352,56.280860900878956],[70.87955474853521,56.16879653930664],[70.92158508300776,56.03067779541027],[70.77421569824219,55.86631774902337],[70.58161926269553,55.87178039550786],[70.71027374267595,55.474128723144645],[70.48387908935564,55.37136077880854],[70.52224731445312,55.27552413940424],[70.21791839599638,55.13327789306651],[69.91962432861357,55.215618133544865],[69.66804504394558,55.34294509887701],[69.33020019531273,55.36258316040044],[68.94994354248058,55.43181228637701],[68.65669250488287,55.25981140136719],[68.65050506591791,55.374019622802784],[68.20970916748058,55.61956024169921],[68.11446380615257,55.74163818359375],[67.8747177124024,55.69373321533203],[67.35261535644531,55.78641891479498],[67.2528152465822,55.97249221801757],[66.85343933105486,55.990516662597656],[66.62962341308622,56.05527114868164],[66.47815704345709,55.981964111328125],[66.30072021484375,56.105209350585994],[65.95559692382824,56.063632965087834],[65.5389633178713,56.33753967285162],[65.19559478759766,56.3365249633789],[64.98084259033203,56.6185188293457],[64.96775817871122,56.79666137695318],[65.20893096923845,56.81977462768554],[65.2780456542971,56.93207931518555],[65.09265136718773,56.97111129760753],[64.87589263916033,57.4865226745605],[65.0114135742188,57.61046600341796],[64.8923950195313,57.68666839599621],[65.41204071044939,57.84169769287114],[65.54083251953125,57.792900085449325],[65.88550567626957,57.9678192138673],[66.20344543457031,58.06344223022473],[66.03827667236334,58.27107238769542],[65.97730255126982,58.56711959838873],[66.30706024169945,58.57269287109375],[66.82949829101568,58.65853500366223],[66.8222045898438,58.88482666015631],[67.03288269042963,58.97479248046875],[67.16636657714872,58.91539764404291],[67.63455963134771,59.047012329101506],[67.76731109619146,59.156227111816456],[68.08787536621111,59.181385040283146],[68.42404937744169,59.2474479675293],[68.55377960205107,59.372577667236385],[68.61192321777372,59.54422378540039],[68.8736724853515,59.54337692260753],[69.40258026123041,59.762123107910156],[69.28900909423851,59.928524017333984],[69.55787658691423,59.9556884765625],[69.8055038452149,59.86115646362298],[70.1400146484375,59.93311691284179],[70.58908843994169,59.805034637451286],[71.19132232666033,59.842372894287166],[71.37345123291033,59.74011993408214],[71.87573242187506,59.53379440307622],[72.08049774169916,59.52090454101568],[72.43894195556639,59.299526214599666],[72.43045806884794,59.22414779663086],[72.65431976318365,59.09904098510742],[73.0994644165039,58.93502426147461],[72.96459960937499,58.85503768920893],[73.3410186767581,58.78667068481451],[73.62119293212918,58.845943450927734],[73.94738769531261,58.80373382568364],[74.12824249267594,58.7019538879395],[75.0425262451174,58.692779541015746],[75.14245605468756,58.649211883545036]]]},"properties":{"ID_0":188,"ISO":"RU-TYU","NAME_0":"Russia","ID_1":73,"NAME_1":"Tyumen'","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Тюменская область","VARNAME_1":"Tobol'sk|Tobol'skaya G.|Tyumenskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[53.7747535705567,58.49010086059576],[53.8800697326663,58.295551300048885],[53.81688690185564,58.25019454956065],[54.11820220947294,57.989734649658196],[54.192737579345874,57.83029937744151],[54.06269454956054,57.598224639892635],[54.255550384521534,57.5038414001466],[54.170021057129134,57.346649169921875],[54.30456542968761,57.325424194336044],[54.33173751831066,57.114879608154354],[54.065467834472656,56.83771133422857],[53.86454772949213,56.82402420043951],[53.882770538330014,56.655681610107365],[54.092826843262,56.627586364746094],[54.34623336792003,56.498722076416016],[54.40242767333979,56.371795654296875],[54.10133361816412,56.133831024169865],[53.79792785644536,55.980274200439396],[53.38531875610362,55.87492752075201],[53.259033203125,55.93959045410156],[53.58503341674799,56.170467376708984],[53.56889724731451,56.2570152282716],[53.23204040527372,56.1483612060548],[53.02949523925792,56.24081802368158],[52.99965667724615,56.42150115966808],[52.738582611084155,56.379337310791016],[52.572708129882756,56.274677276611385],[52.79676818847685,56.227539062500114],[52.483669281005916,56.03357315063482],[52.23495101928716,56.075416564941406],[52.25846862792974,55.924072265625114],[51.42961502075201,55.98303604125982],[51.53682708740228,56.09707260131836],[51.426757812500114,56.146137237548885],[51.33086013793951,56.37228012084961],[51.15329742431658,56.51069259643565],[51.165126800537394,56.65804290771496],[51.36336898803728,56.67270278930664],[51.52225494384788,56.877201080322315],[51.42948913574218,56.91449356079096],[51.11273574829096,57.29515075683594],[51.215572357177905,57.42981338500987],[51.523078918457145,57.451843261718864],[51.74322128295921,57.55364608764643],[51.92417526245117,57.746833801269524],[51.830421447753906,58.09310531616211],[51.669765472412166,58.17417907714856],[51.93144607543951,58.43129730224621],[52.190090179443416,58.474433898925724],[52.43425750732439,58.41974258422862],[52.84211349487316,58.40297698974615],[52.913887023926065,58.505149841308594],[53.1142158508303,58.543983459472706],[53.23191452026373,58.42437744140631],[53.38442230224638,58.41883087158209],[53.7747535705567,58.49010086059576]]]},"properties":{"ID_0":188,"ISO":"RU-UD","NAME_0":"Russia","ID_1":74,"NAME_1":"Udmurt","TYPE_1":"Respublika","ENGTYPE_1":"Republic","NL_NAME_1":"Удмуртская Республика","VARNAME_1":"Udmurtiya|Udmurt Republic|Udmurtskaya A.S.S.R.|Udmurtskaya Respublika"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.07981872558611,54.533687591552784],[50.24081802368169,54.36099243164073],[50.26553344726591,54.25235366821294],[50.1743354797365,54.07267379760748],[49.92872619628917,53.95122528076177],[49.58529663085937,53.82916259765631],[49.369068145752124,53.89337158203125],[48.99987792968767,53.84269332885753],[48.87150955200218,53.71326065063476],[48.57854080200218,53.777614593505916],[48.397457122802905,53.690464019775504],[48.41591644287114,53.52069091796875],[48.05347061157232,53.47399139404296],[47.986446380615234,53.38999557495123],[48.21672821044939,53.145809173583984],[48.179447174072436,53.058929443359375],[48.469799041748104,53.00088119506836],[48.55601501464855,52.94037628173834],[48.38547134399413,52.80673217773449],[47.84814834594743,52.754302978515625],[47.776252746582315,52.58022689819347],[47.596786499023715,52.630687713623104],[47.427352905273494,52.55996322631841],[46.970661163330135,52.65193176269531],[46.80248260498052,52.64192199707042],[46.98453521728527,52.813636779785156],[46.91351318359381,52.92414474487299],[46.96586608886713,53.160194396972656],[46.92005920410184,53.36815261840832],[46.675735473632926,53.49396133422857],[46.49107742309587,53.4961776733399],[46.49857711792015,53.624591827392635],[46.0453910827639,53.99513626098633],[45.84861755371099,53.97801208496105],[46.00680541992215,54.13702774047846],[46.36988449096708,54.2003440856933],[46.601036071777514,54.30510711669933],[46.69564056396484,54.39857864379883],[46.53348922729515,54.57398223876959],[46.480495452881144,54.76414489746099],[46.87243652343767,54.63331604003912],[47.05760574340826,54.71459960937506],[47.27970504760753,54.723297119140625],[47.44272613525408,54.574905395507805],[47.581104278564624,54.61192321777343],[47.775905609130916,54.76123809814453],[47.926410675048885,54.71271896362305],[48.11142730712885,54.77926254272461],[48.510887145996094,54.625183105468864],[48.83855438232422,54.65161132812505],[49.158420562744425,54.87781524658209],[49.432109832763956,54.82403945922845],[49.645526885986385,54.58616638183594],[49.87577819824219,54.53015899658208],[50.07981872558611,54.533687591552784]]]},"properties":{"ID_0":188,"ISO":"RU-ULY","NAME_0":"Russia","ID_1":75,"NAME_1":"Ul'yanovsk","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Ульяновская область","VARNAME_1":"Simbirsk|Simbirskaya G.|Ul'yanovskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.620475769043026,56.40495300292963],[42.744323730468864,56.2433128356933],[42.933547973632756,56.20075225830083],[42.71823883056657,56.08634185791021],[42.691493988037166,55.97716522216797],[42.47143936157254,55.90983963012701],[42.42458343505882,55.79261016845708],[42.26237106323248,55.743309020996094],[42.08871078491228,55.60809326171874],[42.13646697998041,55.408931732177784],[41.874668121338004,55.131786346435604],[41.8036880493164,55.11595535278326],[41.45321655273465,55.10940170288086],[41.20695114135759,55.21081161499035],[40.997104644775334,55.24111175537109],[40.877452850341854,55.18740081787115],[40.604900360107706,55.17817687988281],[40.50468063354492,55.309593200683594],[40.24649429321295,55.3130722045899],[40.081409454345874,55.50656509399413],[40.085449218750284,55.624637603759815],[39.92851257324213,55.812946319580135],[39.381835937500284,55.75542831420898],[39.14805984497075,55.83596420288086],[39.04911422729503,55.9370231628418],[38.864627838134815,55.91325378417969],[38.613887786865405,55.985824584960994],[38.56043624877958,56.14213943481451],[38.44150543212919,56.250606536865234],[38.48987960815441,56.3611679077149],[38.320983886718864,56.51554489135742],[38.432846069335994,56.68896484374994],[38.55662918090849,56.55862426757818],[38.78256225585948,56.60708236694336],[38.94511413574236,56.54873275756836],[39.140747070312784,56.58577728271478],[39.348094940185604,56.543270111084034],[39.43826293945318,56.76061248779302],[39.70699310302757,56.80736541748058],[39.885383605957315,56.765003204345696],[40.00674438476579,56.46383285522461],[40.22425842285178,56.40853500366211],[40.31420135498064,56.50989913940441],[40.723091125488565,56.59519195556646],[40.849788665771534,56.5037574768067],[41.60852432250999,56.44999694824219],[41.90042114257818,56.49721145629883],[41.9337806701663,56.36871337890619],[42.05952072143571,56.339920043945256],[42.2815208435058,56.45626831054681],[42.620475769043026,56.40495300292963]]]},"properties":{"ID_0":188,"ISO":"RU-VLA","NAME_0":"Russia","ID_1":76,"NAME_1":"Vladimir","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Владимирская область","VARNAME_1":"Vladimirskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[47.43362426757818,50.39659881591808],[47.31960678100602,50.33179473876953],[47.260910034179794,50.19892883300787],[47.33935546875017,50.105278015136776],[47.22412872314447,49.9663658142091],[46.89287567138671,49.83929443359369],[46.78265762329113,49.3326530456543],[47.05284500122076,49.16491317749035],[46.93761444091808,49.003669738769645],[46.778491973877124,48.9385337829591],[46.6070938110351,48.65580368041998],[46.58043670654313,48.71297836303716],[46.25581741333036,48.8485145568847],[46.065818786621264,48.853801727295036],[45.86848068237299,48.692279815673935],[45.58788681030285,48.569343566894645],[45.2648315429688,48.547519683838004],[45.052654266357706,48.36475753784191],[45.07697677612305,48.24496459960937],[45.33113098144531,48.13076019287115],[45.059612274170085,48.167221069335994],[44.98141098022478,48.0832252502442],[44.60692214965849,48.075504302978516],[44.635627746582315,48.17599868774414],[44.40397644042969,48.189575195312614],[44.3487663269043,48.071819305420036],[44.54751968383795,48.00454330444336],[44.40241241455095,47.869865417480526],[44.157932281494425,47.9174537658692],[44.05761718750006,47.80458068847656],[43.85755920410162,47.74082183837885],[43.71966552734398,47.63501739501953],[43.731311798095874,47.46975326538086],[43.27021026611345,47.40973663330078],[43.14810180664074,47.542148590088004],[43.01152420043945,47.48409271240229],[42.76799392700218,47.76208496093756],[42.732952117920206,47.863647460937614],[42.38208007812528,48.02016067504877],[42.0194854736331,48.04537200927746],[42.14414596557645,48.30023574829107],[42.08506393432611,48.418655395507926],[42.28453826904297,48.51268005371105],[42.61020660400419,48.56193923950201],[42.805290222168196,48.85587692260748],[42.75680541992193,48.93391799926769],[42.44863128662115,49.118022918701115],[42.282196044922046,49.177886962890625],[42.09750747680664,49.160408020019645],[42.08386230468767,49.40232086181635],[42.202400207519815,49.7384605407716],[41.9682693481447,49.85739135742199],[41.66932678222685,49.937877655029354],[41.69916534423828,50.027542114257756],[41.546077728271655,50.077735900878906],[41.4417343139649,50.186851501464844],[41.56347274780279,50.32399368286144],[41.52972030639654,50.60140991210948],[41.28280258178739,50.755706787109425],[41.5850906372072,50.919967651367294],[41.84122467041033,50.99868011474615],[41.92676162719743,51.13670349121094],[42.28616714477545,51.12461090087902],[42.69124984741228,51.16312408447277],[42.95245742797857,51.25340270996088],[43.39286422729498,51.04439163208019],[43.54269027709978,51.026103973388786],[43.82295989990251,51.13862609863281],[44.19629287719738,51.107051849365234],[44.310501098632976,51.183631896972656],[44.895298004150675,51.18392944335949],[45.10884475708007,51.12010574340826],[45.35993576049833,50.89147567749018],[45.35919570922863,50.785984039306754],[45.22847747802751,50.68468475341797],[45.29403305053711,50.5538063049317],[45.45093154907255,50.593265533447315],[45.727897644043026,50.57336425781256],[45.711803436279524,50.69474792480469],[45.89295959472684,50.764766693115284],[46.140678405761776,50.65069198608404],[46.12767028808599,50.541858673095646],[46.494293212890845,50.540046691894474],[46.673664093017635,50.69212722778332],[46.91388702392583,50.60490417480463],[47.01612854003912,50.488269805908146],[47.220188140869254,50.48167037963873],[47.43362426757818,50.39659881591808]]]},"properties":{"ID_0":188,"ISO":"RU-VGG","NAME_0":"Russia","ID_1":77,"NAME_1":"Volgograd","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Волгоградская область","VARNAME_1":"Stalingrad|Volgogradskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[37.788364410400504,61.55044174194341],[37.768093109130916,61.432945251464844],[38.202888488769815,61.08928680419927],[38.14723205566417,60.97548294067382],[38.679035186767635,60.74199295043945],[39.16817855834978,60.68583679199219],[39.504268646240405,60.709159851074276],[39.754878997802905,60.77202606201166],[39.99008941650418,60.68863677978527],[40.31475830078119,60.71973037719726],[40.438301086426065,60.796977996826165],[40.68736648559587,60.78285217285167],[40.9907875061038,60.68207168579112],[41.18537902832054,60.6755981445313],[41.432716369628906,60.7816772460938],[41.5980873107913,60.92374801635736],[41.82416534423834,60.92756271362299],[42.39422607421881,60.76912307739258],[42.71386337280302,60.8823509216308],[43.00558471679716,60.73624420166021],[43.13435363769559,60.82650756835943],[43.337352752685604,60.783920288085994],[43.743499755859425,60.996807098388615],[44.14776611328119,61.0461921691894],[44.2316551208496,60.957138061523494],[45.20437240600603,60.90912246704101],[45.28336715698242,61.202392578125064],[45.80521392822293,61.1678466796875],[45.736755371093864,61.03683090209972],[46.0068244934082,60.962619781494254],[46.31375122070307,60.97252655029297],[46.49473953247076,61.02838897705078],[46.79523849487316,60.95777893066417],[46.81387710571295,60.86542892456055],[47.071281433105526,60.86044311523443],[47.001819610595646,60.76008224487316],[47.069366455078175,60.592632293701115],[46.862567901611435,60.46040344238281],[46.800468444824496,60.27475738525402],[46.32950210571306,60.23822021484375],[46.41778564453131,60.1181526184082],[46.79274749755859,60.043579101562614],[47.042819976806754,60.154090881347656],[46.93797302246122,59.77157592773448],[47.10741424560564,59.74965667724621],[47.12318420410185,59.60858154296875],[46.42815017700195,59.5917701721192],[46.392559051513956,59.36978912353515],[46.05823135376004,59.32917404174817],[45.93606185913085,59.18530273437494],[45.32626342773466,59.222137451171875],[45.06600189209001,59.18870925903325],[44.99808120727545,59.11977386474614],[44.508804321289176,59.15933227539073],[44.31602096557622,59.13566207885742],[44.17053985595709,59.22280502319336],[43.36243438720709,59.21721649169921],[43.162059783935774,59.267299652099666],[42.83792495727556,59.14624786376953],[42.619132995605696,59.32605361938482],[42.24450302124034,59.31467056274426],[41.99591064453142,59.2617645263673],[42.09457015991239,59.10953521728527],[41.659282684326456,59.06169128417963],[41.29038619995123,58.98323059082036],[41.179321289062784,58.78628540039056],[41.28697204589861,58.72002029418945],[40.97508239746087,58.52682113647461],[40.519527435302905,58.55989074707031],[40.32236480712902,58.52770614624035],[40.11917114257835,58.589420318603565],[39.931518554687784,58.760929107666065],[39.31701660156244,58.92685699462884],[39.02193450927746,58.87201309204096],[38.91802215576189,58.72964096069341],[38.587203979492244,58.76531982421874],[38.43384552001959,58.70920181274419],[38.04698562622099,58.73508071899414],[37.91072845458979,58.619583129882756],[37.74551010131836,58.64282226562511],[37.62685394287115,58.49007415771479],[37.09162139892584,58.84276199340826],[36.8418426513673,58.79821777343756],[36.471992492676065,58.522487640380916],[36.33991622924816,58.53141403198243],[36.203342437744425,58.6744270324707],[35.52941894531267,58.867214202880966],[35.19412612915045,58.84885787963873],[35.04992294311529,58.977817535400504],[34.80104064941406,59.090866088867294],[34.95458221435547,59.27118301391613],[35.170425415039176,59.250576019287216],[35.381988525390796,59.30266571044922],[35.500534057617244,59.438350677490234],[35.55297851562523,59.670536041259815],[35.433513641357706,59.76806259155285],[35.442920684814624,59.94422531127935],[35.14369964599638,60.15491104125976],[35.33945846557623,60.61004638671886],[35.20337677001958,60.79714202880871],[35.494171142578125,60.85186004638678],[35.60015106201183,60.94232940673839],[35.67248916625982,61.2005271911621],[36.46399307250982,61.414272308349716],[36.625110626220874,61.560272216796996],[36.883815765380916,61.5478973388673],[37.073902130127124,61.63053894042969],[37.39406585693376,61.523868560791016],[37.788364410400504,61.55044174194341]]]},"properties":{"ID_0":188,"ISO":"RU-VLG","NAME_0":"Russia","ID_1":78,"NAME_1":"Vologda","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Вологодская область","VARNAME_1":"Vologodskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[40.6066513061524,51.93589782714844],[40.96789932251005,51.88087081909179],[41.007873535156364,51.72241210937494],[41.35627365112321,51.71627426147461],[41.41281127929681,51.770069122314446],[41.67168045043974,51.7427864074707],[42.00630569458025,51.63741683959972],[42.26778411865239,51.67601013183605],[42.58007812500028,51.57358169555664],[42.84353256225608,51.48182678222661],[42.9382286071779,51.39073944091797],[42.95245742797857,51.25340270996088],[42.69124984741228,51.16312408447277],[42.28616714477545,51.12461090087902],[41.92676162719743,51.13670349121094],[41.84122467041033,50.99868011474615],[41.5850906372072,50.919967651367294],[41.28280258178739,50.755706787109425],[41.52972030639654,50.60140991210948],[41.56347274780279,50.32399368286144],[41.4417343139649,50.186851501464844],[41.41949844360374,50.08774566650396],[41.128780364990234,49.90298843383795],[40.981307983398494,49.68046951293957],[40.58903884887718,49.580993652343864],[40.28217315673845,49.62424850463867],[40.20746994018549,49.56257247924815],[40.15028381347685,49.618324279785206],[39.794551849365405,49.56964111328125],[39.65687942504883,49.626773834228516],[39.603275299072266,49.74347686767583],[39.37724304199247,49.73956680297857],[39.228057861328345,49.82275772094738],[39.36486434936523,50.04544067382824],[39.24822235107421,50.1157836914063],[39.13768005371122,50.42704772949224],[39.21214675903326,50.487911224365234],[39.06449890136736,50.676937103271484],[38.82070922851574,50.82352828979503],[38.945518493652344,51.010120391845646],[38.7117538452149,51.011901855468864],[38.49182128906273,51.05882644653325],[38.54579162597679,51.24855804443365],[38.36970138549833,51.27934265136713],[38.405540466308764,51.355941772460994],[38.31935119628906,51.56193161010742],[38.211643218994304,51.65342330932628],[38.50942993164074,51.76330947875988],[38.4607200622558,51.92352294921881],[38.34043884277355,51.95900726318364],[38.730281829833984,52.10144042968749],[38.94610214233427,52.0831031799317],[39.146160125732706,51.97442626953124],[39.22228622436552,52.08960342407232],[39.56947708129899,52.04647827148432],[39.593559265137,51.95172500610363],[39.79224014282221,51.905361175537166],[39.9783210754395,51.94729614257807],[40.6066513061524,51.93589782714844]]]},"properties":{"ID_0":188,"ISO":"RU-VOR","NAME_0":"Russia","ID_1":79,"NAME_1":"Voronezh","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Воронежская область","VARNAME_1":"Voronezhskaya Oblast"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[69.54374694824236,66.76667022705078],[70.1770858764649,66.65625],[70.17656707763682,66.54322814941418],[69.87551879882835,66.4765625],[69.60676574707054,66.57343292236327],[69.54374694824236,66.76667022705078]]],[[[71.4135513305664,66.88784027099615],[71.5848999023438,66.65260314941406],[71.28749847412115,66.63957977294933],[70.9708328247072,66.52708435058594],[70.597915649414,66.50624847412121],[70.25468444824223,66.60572814941412],[71.4135513305664,66.88784027099615]]],[[[77.72968292236322,72.59843444824223],[78.18125152587913,72.55833435058594],[78.35156250000006,72.47135162353516],[77.81250000000017,72.2874984741211],[76.96250152587919,72.275001525879],[76.93801879882818,72.355728149414],[77.33802032470726,72.51823425292963],[77.72968292236322,72.59843444824223]]],[[[72.18333435058611,72.80208587646484],[72.70207977294933,72.72291564941406],[72.83750152587902,72.25416564941412],[72.58593749999994,72.07239532470709],[72.47083282470709,71.88749694824219],[72.30833435058616,71.83125305175781],[72.31822967529303,71.70051574707043],[71.84166717529325,71.52291870117216],[71.86302185058622,71.41718292236328],[72.24791717529325,71.19999694824224],[72.57083129882841,71.13333129882812],[72.57343292236334,70.98593902587913],[72.80573272705078,70.84531402587889],[72.67343902587918,70.61302185058594],[72.74948120117193,70.42656707763678],[72.42343902587884,70.28906250000011],[72.59166717529291,70.12916564941412],[72.49635314941406,69.97968292236357],[72.66822814941412,69.75260162353516],[72.49427032470707,69.6432342529298],[72.64323425292974,69.48802185058588],[72.5401000976563,69.37968444824213],[72.488021850586,69.0651016235352],[72.59426879882818,68.90676879882818],[73.07499694824236,68.72083282470732],[73.50572967529297,68.56406402587902],[73.4224014282227,68.37031555175776],[73.0755157470706,68.20781707763666],[73.05052185058621,68.04010009765653],[73.19531250000028,67.93281555175781],[73.09218597412126,67.73802185058605],[72.86458587646494,67.6312484741211],[72.52500152587896,67.57917022705078],[72.38957977294928,67.3125],[72.0380172729492,67.29322814941418],[72.0333328247073,67.14791870117188],[71.76406097412104,66.9151000976563],[71.38957977294928,66.90208435058594],[71.07656097412115,66.81093597412108],[70.86042022705078,66.81874847412108],[70.58333587646507,66.71041870117188],[70.26875305175781,66.6729202270509],[69.99010467529297,66.79843902587902],[69.6458358764649,66.75416564941435],[69.52916717529325,66.80625152587902],[69.04792022705101,66.81458282470707],[68.4395828247072,66.71041870117188],[68.40625,66.61666870117199],[68.7895812988283,66.75624847412115],[69.14791870117216,66.77083587646484],[69.12968444824217,66.61302185058622],[69.45207977294945,66.48750305175787],[70.37916564941423,66.32917022705084],[71.27916717529325,66.34999847412138],[72.089584350586,66.22916412353516],[72.41874694824223,66.34999847412138],[72.35468292236351,66.4484329223634],[72.48332977294916,66.59791564941412],[72.86250305175776,66.63124847412108],[72.97551727294926,66.707817077637],[73.48958587646513,66.82291412353516],[73.60832977294922,66.92708587646483],[73.85364532470707,66.98802185058605],[73.95365142822293,67.19426727294922],[73.90676879882824,67.27448272705084],[74.1192703247072,67.43698120117192],[74.62916564941412,67.62500000000023],[74.79114532470709,67.77031707763672],[74.79948425292969,68.0244827270509],[74.59114837646501,68.23906707763683],[74.31250000000017,68.36458587646494],[74.46614837646513,68.49635314941418],[74.44218444824236,68.66301727294928],[74.70417022705084,68.77291870117199],[75.32917022705084,68.8812484741212],[76.20833587646513,68.97708129882812],[76.60156250000006,68.96198272705072],[76.62135314941423,68.77552032470709],[77.33125305175798,68.47499847412121],[77.12343597412132,68.2671890258789],[77.33698272705095,68.22864532470703],[77.19635009765653,68.09218597412121],[77.29948425292991,67.89115142822277],[77.11927032470732,67.75051879882818],[77.70156097412132,67.57865142822288],[78.30885314941429,67.52968597412115],[78.83958435058611,67.5999984741211],[78.54374694824234,67.66666412353527],[78.12291717529324,67.6374969482423],[77.84791564941418,67.71875000000011],[77.45259857177734,67.76301574707026],[77.53385162353516,68.12239837646484],[77.7958297729495,68.214584350586],[78.17656707763666,68.25572967529297],[77.94426727294939,68.38385009765636],[77.95365142822266,68.47135162353544],[77.72135162353516,68.58802032470726],[77.68281555175781,68.8765640258789],[76.831771850586,69.03801727294928],[76.73332977294922,69.12708282470709],[76.44791412353544,69.12083435058605],[76.03125,69.2395858764649],[75.50000000000017,69.24791717529297],[75.12760162353521,69.13697814941412],[74.72916412353521,69.07499694824224],[74.4375,69.13124847412115],[73.99375152587885,69.06874847412121],[73.76927185058611,69.16301727294916],[73.90364837646507,69.39739990234386],[73.52968597412121,69.73384857177746],[73.66406250000006,69.82759857177734],[73.78697967529308,70.08073425292974],[73.67552185058616,70.11510467529325],[74.2307281494141,70.42760467529295],[74.26823425292986,70.66406250000011],[73.96302032470732,70.81718444824224],[73.89323425292963,70.97239685058616],[73.55573272705084,71.21823120117188],[73.03176879882818,71.42656707763678],[73.5161514282226,71.66822814941412],[73.46510314941405,71.77656555175787],[73.9270858764649,71.89583587646496],[74.61250305175774,72.01457977294928],[74.96406555175797,72.14218902587895],[75.08281707763699,72.27448272705095],[74.99791717529325,72.61875152587885],[74.76093292236345,72.80156707763678],[74.94791412353538,72.870834350586],[75.62239837646513,72.5546875],[75.49218750000017,72.49948120117216],[75.69531250000017,72.29322814941405],[75.55885314941412,72.22031402587908],[75.22083282470709,71.85624694824219],[75.4499969482423,71.55833435058616],[75.2171859741211,71.41093444824224],[75.4124984741211,71.29374694824217],[76.13749694824224,71.20833587646507],[76.89375305175781,71.18125152587913],[76.94374847412115,70.99791717529297],[76.94374847412115,71.07499694824219],[77.0104141235351,71.1770858764649],[77.77291870117216,71.1312484741211],[77.91510009765642,70.97968292236334],[78.35364532470707,70.92240142822266],[78.5958328247072,70.9499969482423],[78.3604202270509,71.06458282470732],[78.30000305175797,71.1895828247072],[77.90052032470732,71.28489685058605],[77.25416564941418,71.33125305175793],[77.05989837646489,71.41718292236328],[76.6583328247072,71.46458435058605],[76.2588500976563,71.58802032470697],[76.0359344482423,71.90364837646496],[76.40208435058616,72.00624847412121],[76.87291717529313,72.05208587646501],[77.48332977294926,71.83958435058605],[77.7937469482423,71.81041717529291],[78.24531555175787,71.96198272705084],[77.99791717529295,72.0999984741211],[77.51249694824217,72.05416870117182],[77.89427185058605,72.30781555175791],[78.52656555175776,72.37232208251947],[78.70376586914057,72.20899200439482],[79.29625701904301,72.04562377929688],[79.82361602783203,72.05065917968756],[80.43543243408214,71.92166137695312],[80.17088317871105,71.6934204101563],[79.84688568115234,71.60134887695324],[79.4478149414062,71.5979537963867],[79.32951354980497,71.41822052001963],[79.95226287841824,71.13273620605463],[80.64058685302757,71.04404449462885],[80.9412384033206,70.62785339355462],[80.77522277832036,70.47492980957031],[80.40042877197271,70.41894531250028],[79.77902221679693,70.19899749755864],[78.99893951416038,69.8693008422851],[79.11716461181646,69.65074920654297],[79.51301574707058,69.62089538574224],[79.62031555175787,69.46599578857428],[79.88831329345709,69.32746124267578],[80.70544433593773,69.28064727783214],[81.03229522705095,69.19174194335943],[81.7123413085938,69.2663192749024],[81.7941589355471,69.41696929931646],[82.07879638671886,69.34305572509777],[81.94712066650413,69.17728424072277],[82.473197937012,69.12739562988281],[82.43271636962896,69.02983856201183],[82.6866531372073,68.77631378173834],[82.94504547119163,68.60554504394531],[82.72123718261736,68.55062866210938],[82.76107025146479,68.26068878173828],[82.42337799072271,68.06729125976562],[82.40893554687528,67.92445373535179],[81.78427124023466,67.88308715820318],[82.13707733154303,67.60752105712902],[82.36286163330095,67.53440093994163],[82.3633575439456,67.28780364990239],[82.17472839355497,67.2007446289064],[83.06177520751976,66.88204956054686],[83.3520660400391,66.65151977539068],[83.10823059082048,66.49989318847662],[83.60469818115229,66.1426391601563],[83.37172698974632,66.0139617919923],[83.57308197021484,65.78657531738293],[83.96014404296898,65.75729370117188],[84.31130981445341,65.65745544433605],[84.5837707519533,65.44721984863287],[84.65340423583984,65.269142150879],[84.33868408203142,65.10496520996094],[84.42256927490229,64.90697479248047],[84.98545074462908,64.92274475097668],[85.25509643554716,64.7798461914063],[85.56273651123075,64.83673095703136],[85.81340026855463,64.78584289550774],[85.92136383056635,64.57178497314464],[85.81849670410185,64.49195098876953],[85.96559143066418,64.26583862304693],[85.96140289306652,64.05160522460943],[85.35650634765648,63.8379478454591],[85.31461334228527,63.66764068603521],[85.12200164794938,63.578701019287166],[85.61133575439476,63.36091995239269],[85.53903198242193,63.14397811889654],[85.61633300781278,63.075511932373104],[85.50865173339861,62.92270278930664],[85.04309844970707,62.66841125488286],[84.91792297363298,62.44660949707036],[84.5862808227539,62.26531600952154],[84.51454162597673,62.178100585937614],[84.11017608642595,62.375648498535206],[83.924057006836,62.51715087890631],[83.60777282714861,62.53034210205084],[83.4541778564456,62.45714187622075],[83.1026916503908,62.53255844116222],[83.07604217529297,62.60532760620117],[82.7977371215822,62.64584350585938],[82.79174041748074,62.75681686401373],[82.31701660156278,62.76225662231445],[82.12830352783209,62.82230377197271],[81.93137359619135,62.695571899414006],[81.75702667236338,62.710811614990234],[81.30226135253912,62.86458587646484],[81.33756256103543,62.918346405029354],[80.98886871337913,63.13390731811529],[80.6514282226563,63.08463287353527],[80.64023590087919,63.01207351684581],[80.22909545898455,62.845100402832145],[79.92871856689453,62.79586791992199],[79.83836364746115,62.58890533447277],[78.99143981933592,62.58255004882818],[78.79982757568365,62.60879898071294],[78.17890167236345,62.5573501586914],[77.83757019042974,62.56728744506847],[77.38918304443388,62.72827911376959],[77.15322113037138,62.84365081787109],[77.04341125488276,62.96817016601562],[76.74124908447294,63.03769302368164],[76.4052734375,62.970607757568416],[75.79931640625,63.121200561523494],[75.0422439575197,63.04962921142578],[74.53107452392595,63.03267669677734],[74.25740051269531,63.16174697875982],[73.42466735839844,63.20652770996105],[73.15238952636747,63.41143035888672],[72.93383789062494,63.4105224609375],[72.74829864501969,63.29071044921874],[72.2196655273438,63.295429229736385],[71.67887878417974,63.196769714355526],[71.56651306152344,63.410808563232415],[71.55718231201172,63.56864929199225],[71.35946655273465,63.688201904296875],[70.98557281494146,63.682006835937614],[70.65180969238303,64.00510406494146],[70.81331634521483,64.08845520019537],[70.75384521484398,64.1821517944337],[70.33610534667974,64.3324966430664],[69.87749481201183,64.30187225341803],[69.83003997802751,64.3594589233399],[69.46727752685564,64.35311889648438],[69.34092712402372,64.41421508789068],[69.04702758789074,64.31826019287115],[68.9477767944338,64.16963958740234],[68.51328277587913,64.27231597900396],[67.80738830566412,64.02831268310547],[67.66862487792986,64.06930541992188],[67.28074645996098,64.05672454833984],[66.97481536865257,64.15877532958984],[66.83994293212896,64.25575256347668],[66.95699310302751,64.41297149658203],[66.73339843750028,64.50668334960943],[66.40273284912126,64.44991302490246],[66.17908477783209,64.5268020629884],[65.55883026123075,64.4949111938477],[64.4892120361331,64.35369873046875],[64.10195922851568,64.3547744750976],[63.68376541137701,64.25371551513672],[63.508247375488565,64.32085418701172],[63.434528350830355,64.44148254394537],[63.067581176757805,64.51388549804688],[62.88588714599638,64.4736328125],[62.561855316162166,64.60882568359386],[62.87424087524431,64.7725677490235],[62.74229812622076,64.90599060058605],[62.81833267211931,64.98221588134771],[62.87464523315429,65.2905502319336],[62.45777511596708,65.40213012695312],[62.30106735229509,65.60311889648449],[62.06253051757807,65.7015686035158],[62.77543258667009,65.85578918457036],[62.83475112915056,66.02202606201172],[63.01632690429693,66.1111450195313],[63.33848190307634,66.42150878906256],[63.80997085571307,66.5367813110351],[64.02467346191406,66.64322662353533],[64.28661346435553,66.6426239013673],[64.60217285156243,66.79056549072271],[65.11894226074224,66.90106964111338],[65.05420684814447,67.0696487426759],[65.58485412597673,67.26663208007817],[65.75045013427734,67.36220550537115],[66.13677978515653,67.45228576660168],[65.98181915283209,67.66757965087896],[66.07022094726591,67.94718170166021],[65.5746612548831,67.90645599365229],[65.38114929199236,67.97439575195312],[65.33327484130876,68.28456878662115],[65.48619842529308,68.40888214111328],[65.711166381836,68.53039550781249],[65.30855560302757,68.81558227539068],[64.7704162597658,68.86550903320312],[64.59991455078142,69.00817871093749],[64.76014709472656,69.12368774414074],[64.75769042968756,69.12708282470709],[64.75578308105474,69.1297225952149],[64.94114685058594,69.1921844482423],[64.941665649414,69.25624847412121],[65.10416412353527,69.26041412353521],[65.77083587646501,69.08958435058588],[66.38333129882818,68.92916870117182],[66.92292022705082,68.85208129882824],[67.17134857177746,68.70677185058588],[68.13957977294922,68.40000152587896],[68.51041412353521,68.254165649414],[68.93906402587919,68.62760162353527],[69.05885314941418,68.79531097412108],[68.88124847412138,68.90416717529308],[68.50051879882817,68.95885467529303],[68.08802032470714,69.2421875],[68.12448120117205,69.50572967529308],[67.83750152587896,69.49375152587885],[66.80416870117216,69.73124694824219],[66.88593292236351,69.9598999023437],[67.39739990234392,70.04218292236351],[67.25624847412126,70.18125152587896],[67.12760162353538,70.22239685058594],[67.36042022705095,70.44583129882818],[67.2317657470706,70.51718902587902],[67.37291717529325,70.7624969482423],[66.78073120117182,70.91093444824219],[66.92082977294928,71.07707977294922],[66.75208282470732,71.10208129882812],[66.93750000000011,71.27083587646501],[67.34166717529308,71.339584350586],[68.09739685058611,71.5692672729495],[68.30625152587908,71.67292022705078],[68.52656555175798,71.84739685058604],[68.77031707763688,72.20885467529291],[68.9104156494141,72.5],[69.13957977294939,72.73332977294933],[69.29374694824224,72.82291412353521],[70.30416870117199,72.8812484741211],[71.4000015258789,72.86666870117199],[71.63124847412114,72.88749694824213],[72.18333435058611,72.80208587646484]]],[[[74.47760009765653,73.10676574707037],[74.73124694824241,73.08125305175793],[74.58750152587902,72.85208129882812],[74.13749694824224,72.97916412353521],[74.47760009765653,73.10676574707037]]],[[[70.85468292236345,73.47551727294932],[71.14791870117193,73.4375],[71.61250305175787,73.23332977294922],[71.1895828247072,73.1020812988283],[70.92292022705072,73.10832977294932],[70.44791412353537,73.01457977294922],[69.92968750000023,73.05260467529303],[70.21250152587889,73.36250305175787],[70.85468292236345,73.47551727294932]]]]},"properties":{"ID_0":188,"ISO":"RU-YAN","NAME_0":"Russia","ID_1":80,"NAME_1":"Yamal-Nenets","TYPE_1":"Avtonomnyy Okrug","ENGTYPE_1":"Autonomous Province","NL_NAME_1":"Ямало-Ненецкий АОк","VARNAME_1":"Yamalo-Nenetskiy A. Okrug"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[40.97508239746087,58.52682113647461],[41.21762084960943,58.34755706787121],[41.04389572143555,58.2803306579591],[40.92118072509771,58.123043060302734],[40.75995254516607,58.061565399170036],[40.77132034301775,57.953132629394645],[40.620868682861385,57.892883300781186],[40.69865417480497,57.792171478271534],[40.59346008300798,57.60753631591791],[40.414947509765625,57.47853851318365],[40.49948120117193,57.2833251953125],[40.08861160278349,57.21368789672857],[39.64764404296881,57.05530929565429],[39.43826293945318,56.76061248779302],[39.348094940185604,56.543270111084034],[39.140747070312784,56.58577728271478],[38.94511413574236,56.54873275756836],[38.78256225585948,56.60708236694336],[38.55662918090849,56.55862426757818],[38.432846069335994,56.68896484374994],[38.32255554199236,56.75940322875988],[38.18656921386736,56.86711120605462],[38.18595123291027,56.97487640380854],[38.326648712158374,57.0173835754395],[38.223430633545036,57.1733856201173],[38.37487792968756,57.27999114990246],[38.334629058838004,57.360881805419915],[38.0726547241212,57.32637786865245],[37.89360427856474,57.434951782226555],[37.870578765869084,57.578578948974666],[37.604461669921875,57.76208114624034],[37.40953063964844,57.799392700195426],[37.41404342651373,57.96901702880859],[37.708984375,58.08309936523438],[37.43756103515641,58.216644287109425],[37.4277839660645,58.33383560180669],[37.66633224487322,58.4293899536134],[37.62685394287115,58.49007415771479],[37.74551010131836,58.64282226562511],[37.91072845458979,58.619583129882756],[38.04698562622099,58.73508071899414],[38.43384552001959,58.70920181274419],[38.587203979492244,58.76531982421874],[38.91802215576189,58.72964096069341],[39.02193450927746,58.87201309204096],[39.31701660156244,58.92685699462884],[39.931518554687784,58.760929107666065],[40.11917114257835,58.589420318603565],[40.32236480712902,58.52770614624035],[40.519527435302905,58.55989074707031],[40.97508239746087,58.52682113647461]]]},"properties":{"ID_0":188,"ISO":"RU-YAR","NAME_0":"Russia","ID_1":81,"NAME_1":"Yaroslavl'","TYPE_1":"Oblast","ENGTYPE_1":"Region","NL_NAME_1":"Ярославская область","VARNAME_1":"Yaroslavskaya"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[134.29315185546898,48.373844146728516],[134.05769348144543,48.3353843688966],[133.80044555664062,48.19977951049815],[133.4681549072269,48.06760025024425],[133.16029357910168,48.10570144653326],[133.0079040527345,48.01818084716797],[132.69148254394565,47.953609466552734],[132.50482177734398,47.711250305175895],[132.37559509277355,47.753879547119254],[132.2450866699221,47.70516204833979],[131.8037261962893,47.66971206665045],[131.50099182128926,47.72776031494146],[131.25323486328136,47.73376083374029],[131.09564208984375,47.681346893310604],[130.9541931152346,47.7202720642091],[130.86395263671898,47.93212127685558],[130.65205383300804,48.109340667724666],[130.82553100585972,48.30009078979497],[130.7223663330078,48.50586318969732],[130.60110473632835,48.51501083374029],[130.52542114257835,48.638519287109425],[130.63667297363293,48.81423950195324],[130.5672607421876,48.86181259155285],[130.78848266601562,48.977741241455135],[130.95930480957054,48.994235992431584],[131.0970916748047,49.19723129272461],[131.22180175781295,49.26071929931646],[131.38809204101585,49.25324630737315],[131.48107910156284,49.22642135620117],[131.75328063964844,49.34252548217768],[131.97270202636741,49.29559707641596],[132.04080200195335,49.45930099487305],[132.14900207519543,49.48933029174815],[132.37709045410202,49.41337203979498],[132.3872070312501,49.319740295410156],[132.73899841308594,49.32287597656255],[132.78678894043014,49.24151229858404],[133.14349365234386,49.18630981445318],[133.23858642578148,48.904422760009766],[133.40159606933628,48.7902069091798],[133.73208618164074,48.69158172607433],[134.16358947753906,48.64513015747076],[134.31478881835938,48.747222900390675],[134.51039123535153,48.63659286499034],[134.89059448242233,48.59363937377941],[134.7577819824221,48.43090820312494],[134.5171813964845,48.47882461547863],[134.29315185546898,48.373844146728516]]]},"properties":{"ID_0":188,"ISO":"RU-YEV","NAME_0":"Russia","ID_1":82,"NAME_1":"Yevrey","TYPE_1":"Avtonomnaya Oblast","ENGTYPE_1":"Autonomous Region","NL_NAME_1":"Eврейская АОб","VARNAME_1":"Den jødiske autonome oblasten|Evrey|Jewish A.Obl.|Yahudi|Yevreyskaya A.Obl.|Evreyskaya AOb"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[119.0887908935548,58.2240562438966],[119.13709259033213,58.12749481201171],[119.00719451904308,57.72717666625987],[119.44618988037132,57.57947540283214],[119.39148712158214,57.418170928955135],[119.66258239746129,57.163555145263786],[119.63708496093774,56.98066711425787],[119.7814941406251,56.9057502746582],[119.62329101562536,56.78557205200189],[119.821083068848,56.698146820068416],[119.77268218994139,56.605785369873104],[119.94508361816405,56.495574951171875],[120.28088378906261,56.45709228515625],[120.4599838256837,56.246940612793026],[120.17959594726608,56.22220611572277],[120.05799865722656,56.15636444091802],[120.07330322265648,55.9106712341308],[120.35559082031271,55.89044189453131],[120.61238861083996,55.93164443969721],[120.83158111572276,56.02541351318359],[121.13418579101572,56.034633636474545],[121.24979400634788,55.98251724243175],[121.2721862792972,55.74502944946295],[121.3716735839846,55.50830078124994],[121.55158996582043,55.48530578613286],[121.68128967285168,55.60924148559576],[121.82729339599632,55.59227371215832],[121.98679351806663,55.391254425048935],[121.91439819335972,55.212265014648544],[121.95268249511729,55.022392272949276],[121.67738342285179,54.83369827270513],[121.86429595947287,54.791618347168026],[121.86299133300804,54.6698112487793],[122.07918548584018,54.45100402832037],[121.65828704833983,54.3732643127442],[121.73188781738283,54.19917678833019],[121.62589263916027,54.04391098022472],[121.79698181152354,53.9735717773438],[121.94478607177757,53.81986236572271],[121.95218658447266,53.553474426269474],[122.05168151855467,53.42110443115228],[121.81532287597679,53.414920806884766],[121.21849060058605,53.28129196166998],[120.87671661376976,53.28703308105469],[120.52926635742199,53.071357727050774],[120.28043365478537,52.866298675537216],[120.02459716796908,52.75965118408203],[120.06121063232456,52.58407211303711],[120.45249176025403,52.641300201416016],[120.71965026855467,52.52878952026367],[120.61812591552733,52.315029144287166],[120.75633239746107,52.2444801330567],[120.76122283935547,52.11244964599621],[120.65203094482443,51.934108734130916],[120.47400665283203,51.88294219970709],[120.17446899414061,51.68162155151373],[120.0864028930664,51.66909027099614],[119.9873733520509,51.45269012451183],[119.75689697265646,51.21081161499023],[119.74944305419933,51.10062026977545],[119.58075714111361,50.975570678710994],[119.42825317382824,50.69343948364269],[119.2734909057617,50.60175323486333],[119.18374633789085,50.345920562744254],[119.34559631347656,50.34682083129888],[119.36380767822287,50.17494964599621],[119.19748687744162,50.01208877563482],[118.54898834228538,49.91485214233404],[118.15896606445324,49.660980224609375],[117.84203338623047,49.506931304931584],[117.47849273681642,49.62837600708019],[117.27426910400413,49.63154983520508],[116.93340301513672,49.72518920898449],[116.71945190429709,49.82707977294916],[116.60668945312524,49.94030761718756],[116.20514678955078,50.031681060791016],[115.72094726562523,49.8845787048341],[115.37463378906251,49.90783309936534],[115.23792266845703,49.97939300537115],[115.00405120849621,50.17737579345708],[114.67230224609398,50.25628662109375],[114.34903717041027,50.282894134521484],[113.79571533203135,50.09408569335949],[113.23026275634766,49.83494567871093],[113.0875244140625,49.608276367187614],[112.71630859375023,49.49184036254894],[112.51316833496116,49.54648590087902],[111.93450927734403,49.3955078125],[111.3922729492187,49.373107910156364],[110.99224090576178,49.19986724853521],[110.7662963867187,49.14508056640625],[110.59631347656277,49.16210937500006],[110.39947509765652,49.258483886718864],[110.23412322998058,49.1651229858399],[109.70153045654303,49.23160934448248],[109.57109069824247,49.22258377075195],[109.32910156249994,49.34149169921875],[108.96551513671903,49.35949707031255],[108.55558776855491,49.33432006835943],[108.28427886962906,49.528659820556754],[107.9588928222658,49.66699218750006],[107.94702148437511,49.85554885864269],[107.74230957031256,49.982921600341854],[107.70338439941429,50.04202270507823],[107.90488433837885,50.1462135314942],[107.98388671875017,50.265735626220696],[108.45928192138678,50.41084289550787],[108.43138885498053,50.54073715209961],[108.09030151367205,50.65878677368158],[108.24688720703142,50.748924255371094],[108.29508209228544,51.0081024169923],[108.54918670654291,51.094142913818416],[108.3722000122072,51.181735992431754],[108.48529052734368,51.39182281494151],[108.71248626709,51.43352127075206],[108.95189666748045,51.42693328857433],[109.24658966064459,51.349941253662166],[109.6315917968751,51.42744827270502],[109.9656906127932,51.59393692016613],[110.35228729248053,51.586704254150334],[110.41329193115234,51.514919281005916],[110.65718841552727,51.49725341796881],[110.81089019775419,51.569496154785156],[110.84139251709013,51.66312026977545],[111.00709533691429,51.7771453857423],[111.27769470214844,51.86703491210937],[111.62138366699236,51.940441131591854],[111.90428161621094,52.17807769775385],[112.15048980712925,52.294643402099666],[112.3279037475586,52.229850769043026],[112.51860046386751,52.333370208740284],[112.92559051513672,52.34449768066412],[113.12449645996139,52.44719696044933],[113.56588745117188,52.47590255737316],[113.77400207519543,52.62709808349609],[114.02849578857422,52.6571502685548],[114.23398590087913,52.82198715209966],[114.30138397216807,53.043579101562614],[114.1680908203125,53.081085205078125],[114.102294921875,53.20202636718756],[113.94398498535156,53.27601242065441],[113.84599304199241,53.41097259521496],[113.84449005126964,53.61529922485357],[113.98649597168003,53.71546936035156],[114.4966812133789,53.81497573852545],[114.6169891357424,53.948337554931754],[114.8556900024414,54.00134658813482],[115.2238540649414,54.194267272949276],[115.45918273925781,54.270111083984375],[115.56758117675791,54.390731811523494],[116.2816848754885,54.51376342773448],[116.71199035644543,54.53763580322276],[116.81219482421874,54.61384201049816],[116.95027923583994,54.8743057250976],[116.82498168945312,55.08005523681651],[116.61997985839876,55.16183090209955],[116.41257476806686,55.337203979492294],[116.18379211425781,55.32855224609381],[115.96028900146507,55.37213516235357],[115.92726898193358,55.6559562683106],[115.79917907714889,56.01026535034179],[115.86387634277354,56.12752914428705],[115.71392822265636,56.350528717041016],[115.690185546875,56.56768798828125],[115.46198272705077,56.63488388061518],[115.62550354003906,56.72625732421881],[115.59595489501953,56.86897659301758],[115.7581253051759,56.95084381103509],[116.13798522949254,56.83269500732427],[116.24888610839857,56.87526321411133],[116.4649887084962,56.792110443115234],[116.9766845703125,56.7938613891601],[117.26209259033226,56.965255737304744],[117.40299224853516,56.85409545898449],[117.58058166503929,56.89760971069341],[117.66378784179709,57.079795837402344],[117.5772933959961,57.165882110595646],[117.72589111328125,57.26401901245123],[117.62229156494173,57.3300018310548],[117.32167816162121,57.347053527832024],[117.20367431640625,57.530384063720646],[117.28559112548841,57.62681198120122],[117.12066650390625,57.85252761840814],[117.29359436035168,57.84815216064458],[117.40738677978516,58.07118988037121],[117.57389831542969,58.14407348632806],[117.46318817138683,58.329998016357415],[117.7854843139653,58.42399978637695],[118.29698181152365,58.337387084960994],[118.44488525390624,58.22644805908214],[118.63647460937499,58.17738723754883],[119.0887908935548,58.2240562438966]]]},"properties":{"ID_0":188,"ISO":"RU-ZAB","NAME_0":"Russia","ID_1":83,"NAME_1":"Zabaykal'ye","TYPE_1":"Kray","ENGTYPE_1":"Territory","NL_NAME_1":"Забайкальский край","VARNAME_1":"Zabaykalsky"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/singapore.geojson b/superset/assets/visualizations/countries/singapore.geojson new file mode 100644 index 0000000000000..220894bad8c27 --- /dev/null +++ b/superset/assets/visualizations/countries/singapore.geojson @@ -0,0 +1,8 @@ +{ +"type": "FeatureCollection", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, + +"features": [ +{ "type": "Feature", "properties": { "ID_0": 205, "ISO": "SGP", "NAME_0": "Singapore", "OBJECTID_1": 197, "ISO3": "SGP", "NAME_ENGLI": "Singapore", "NAME_ISO": "SINGAPORE", "NAME_FAO": "Singapore", "NAME_LOCAL": "Singapore", "NAME_OBSOL": null, "NAME_VARIA": null, "NAME_NONLA": null, "NAME_FRENC": "Singapour", "NAME_SPANI": "Singapur", "NAME_RUSSI": "Сингапур", "NAME_ARABI": "سنغافورة", "NAME_CHINE": "新加坡", "WASPARTOF": null, "CONTAINS": null, "SOVEREIGN": "Singapore", "ISO2": "SG", "WWW": null, "FIPS": "SN", "ISON": 702, "VALIDFR": "19650809", "VALIDTO": "Present", "POP2000": 4018114, "SQKM": 526.04100000000005, "POPSQKM": 7638.4046110500003, "UNREGION1": "South-Eastern Asia", "UNREGION2": "Asia", "DEVELOPING": 1, "CIS": 0, "Transition": 0, "OECD": 0, "WBREGION": null, "WBINCOME": "High income: nonOECD", "WBDEBT": "Debt not classified", "WBOTHER": null, "CEEAC": 0, "CEMAC": 0, "CEPLG": 0, "COMESA": 0, "EAC": 0, "ECOWAS": 0, "IGAD": 0, "IOC": 0, "MRU": 0, "SACU": 0, "UEMOA": 0, "UMA": 0, "PALOP": 0, "PARTA": 0, "CACM": 0, "EurAsEC": 0, "Agadir": 0, "SAARC": 0, "ASEAN": 1, "NAFTA": 0, "GCC": 0, "CSN": 0, "CARICOM": 0, "EU": 0, "CAN": 0, "ACP": 0, "Landlocked": 0, "AOSIS": 1, "SIDS": 1, "Islands": 1, "LDC": 0 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 103.643478393554631, 1.346220970153922 ], [ 103.643669128417912, 1.345929026603699 ], [ 103.643875122070256, 1.345664978027457 ], [ 103.644050598144474, 1.345366001129264 ], [ 103.64420318603527, 1.345005989074764 ], [ 103.644432067871037, 1.34463894367218 ], [ 103.644699096679688, 1.344231009483337 ], [ 103.645103454589901, 1.343898057937736 ], [ 103.645568847656349, 1.343595027923641 ], [ 103.646049499511776, 1.343348979950008 ], [ 103.646530151367116, 1.343173027038574 ], [ 103.647018432617244, 1.343080043792781 ], [ 103.647483825683537, 1.343047976493892 ], [ 103.647933959960938, 1.343024969100952 ], [ 103.648368835449276, 1.343040943145809 ], [ 103.648818969726506, 1.343004941940364 ], [ 103.649246215820312, 1.342862963676566 ], [ 103.649650573730469, 1.342862963676566 ], [ 103.650009155273438, 1.34273803234106 ], [ 103.650283813476619, 1.342496991157645 ], [ 103.650505065918082, 1.342203021049613 ], [ 103.650604248046861, 1.341804027557316 ], [ 103.650749206542969, 1.341405034065247 ], [ 103.650703430175895, 1.34099900722515 ], [ 103.650535583496037, 1.340589046478385 ], [ 103.650314331054801, 1.340201020240784 ], [ 103.650161743164006, 1.339763998985291 ], [ 103.650001525878892, 1.339313030242977 ], [ 103.649887084960994, 1.33879101276392 ], [ 103.650024414062486, 1.338186979293937 ], [ 103.65030670166027, 1.337612032890377 ], [ 103.650665283203182, 1.337092995643616 ], [ 103.651000976562543, 1.336539030075073 ], [ 103.651420593261776, 1.336141943931579 ], [ 103.651885986328054, 1.335909962654171 ], [ 103.652366638183651, 1.335775017738285 ], [ 103.652824401855412, 1.335623025894108 ], [ 103.653312683105526, 1.335607051849479 ], [ 103.653785705566349, 1.335724949836845 ], [ 103.654258728027401, 1.335857033729667 ], [ 103.654685974121207, 1.336043953895569 ], [ 103.655128479003849, 1.336181044578552 ], [ 103.655487060546974, 1.336418032646293 ], [ 103.655799865722699, 1.336694002151489 ], [ 103.656082153320241, 1.336969971656856 ], [ 103.656295776367188, 1.337242960929871 ], [ 103.656425476074332, 1.3375279903413 ], [ 103.656448364257741, 1.337823987007255 ], [ 103.65641021728527, 1.338129997253532 ], [ 103.656326293945312, 1.338431000709647 ], [ 103.656112670898423, 1.338660955429077 ], [ 103.655853271484474, 1.338822960853634 ], [ 103.655487060546974, 1.338758945465088 ], [ 103.655021667480526, 1.338526010513419 ], [ 103.654594421386719, 1.338212013244686 ], [ 103.654205322265625, 1.338124990463371 ], [ 103.653923034668082, 1.338328003883476 ], [ 103.653739929199332, 1.3386470079422 ], [ 103.653579711914176, 1.338955044746456 ], [ 103.653404235839787, 1.339192032814026 ], [ 103.653244018554688, 1.339426994323787 ], [ 103.653099060058651, 1.339669942855835 ], [ 103.653060913085938, 1.340005040168762 ], [ 103.653053283691406, 1.340394973754996 ], [ 103.653022766113224, 1.340837001800651 ], [ 103.652877807617188, 1.341320991516113 ], [ 103.652793884277457, 1.341861009597778 ], [ 103.652778625488381, 1.342421054840145 ], [ 103.652763366699276, 1.34297704696661 ], [ 103.652679443359375, 1.343518018722534 ], [ 103.652458190917912, 1.344002962112483 ], [ 103.652107238769531, 1.344396948814449 ], [ 103.651718139648438, 1.344715952873344 ], [ 103.651344299316406, 1.344997048378048 ], [ 103.650993347167955, 1.345253944397029 ], [ 103.650642395019588, 1.345489025115967 ], [ 103.650329589843864, 1.34575796127325 ], [ 103.649978637695256, 1.345960974693355 ], [ 103.649673461914119, 1.346176981926078 ], [ 103.649398803710881, 1.34641003608715 ], [ 103.649162292480568, 1.346654057502803 ], [ 103.648948669433651, 1.346879005432243 ], [ 103.648727416992244, 1.347090959548893 ], [ 103.648437499999943, 1.347273945808467 ], [ 103.648132324218736, 1.347537994384709 ], [ 103.647789001464901, 1.347895979881287 ], [ 103.647399902343807, 1.348320007324276 ], [ 103.64697265625, 1.34872496128088 ], [ 103.646591186523438, 1.349087953567619 ], [ 103.646232604980526, 1.349359035492 ], [ 103.646003723144531, 1.349666953086853 ], [ 103.64572906494152, 1.349920034408626 ], [ 103.645347595214957, 1.350116014480648 ], [ 103.645004272460881, 1.350442051887455 ], [ 103.644668579101548, 1.350852012634221 ], [ 103.644363403320369, 1.351333022117672 ], [ 103.644073486328125, 1.351824998855591 ], [ 103.643821716308707, 1.352298974990958 ], [ 103.643623352050895, 1.352769017219543 ], [ 103.643440246582131, 1.353194952011165 ], [ 103.643150329589844, 1.353515982627982 ], [ 103.64286041259777, 1.353839993476925 ], [ 103.642646789550838, 1.35425698757183 ], [ 103.64239501953125, 1.354665040969792 ], [ 103.642059326171932, 1.355000019073543 ], [ 103.64170837402348, 1.355303049087638 ], [ 103.641395568847599, 1.355589985847473 ], [ 103.641181945800895, 1.355860948562679 ], [ 103.641212463378906, 1.356215000152702 ], [ 103.641716003418068, 1.356850981712341 ], [ 103.642265319824261, 1.357138037681579 ], [ 103.642753601074205, 1.357308983802852 ], [ 103.643188476562557, 1.35758197307598 ], [ 103.643630981445412, 1.357761979103145 ], [ 103.644065856933537, 1.357900977134705 ], [ 103.644454956054688, 1.358106017112789 ], [ 103.644691467285156, 1.358432054519596 ], [ 103.644828796386648, 1.35884702205658 ], [ 103.644935607910199, 1.35931396484375 ], [ 103.644882202148423, 1.359868049621639 ], [ 103.644905090332088, 1.360520005226192 ], [ 103.645332336425838, 1.361124038696346 ], [ 103.645591735839787, 1.361103057861328 ], [ 103.645668029785199, 1.361078023910579 ], [ 103.646049499511776, 1.360957980155888 ], [ 103.64652252197277, 1.361086964607296 ], [ 103.647041320800838, 1.361242055893058 ], [ 103.647491455078068, 1.361515998840332 ], [ 103.647933959960938, 1.361785054206962 ], [ 103.64844512939446, 1.361876010894832 ], [ 103.648986816406364, 1.361763954162541 ], [ 103.649505615234432, 1.36193501949316 ], [ 103.650016784667969, 1.36213397979742 ], [ 103.650512695312614, 1.362316012382507 ], [ 103.650955200195312, 1.362522959709167 ], [ 103.651390075683636, 1.362735033035335 ], [ 103.651947021484375, 1.362779021263179 ], [ 103.652496337890625, 1.362779021263179 ], [ 103.653335571289119, 1.361943960189876 ], [ 103.653892517089901, 1.361943960189876 ], [ 103.654167175292898, 1.361665964126587 ], [ 103.654441833496151, 1.361943960189876 ], [ 103.654441833496151, 1.362779021263179 ], [ 103.654167175292898, 1.363067984580937 ], [ 103.654014587402344, 1.363471031188965 ], [ 103.653900146484432, 1.363895058632011 ], [ 103.65380859375, 1.364305973053035 ], [ 103.653617858886705, 1.364657044410819 ], [ 103.653419494628906, 1.36496198177349 ], [ 103.653221130371023, 1.365224003791752 ], [ 103.652969360351662, 1.365457057952995 ], [ 103.652786254882926, 1.365823030471745 ], [ 103.652580261230526, 1.366233944892997 ], [ 103.652481079101562, 1.36672401428234 ], [ 103.652366638183651, 1.367205023765621 ], [ 103.652351379394588, 1.367702007293701 ], [ 103.652397155761832, 1.368181943893489 ], [ 103.652725219726605, 1.368567943572998 ], [ 103.653053283691406, 1.368896007537842 ], [ 103.653343200683651, 1.36919903755188 ], [ 103.653617858886705, 1.369461059570369 ], [ 103.653869628906307, 1.369709014892578 ], [ 103.654090881347713, 1.369961977005005 ], [ 103.654220581054673, 1.370254039764404 ], [ 103.654380798339844, 1.370620965957642 ], [ 103.654556274413991, 1.371165990829468 ], [ 103.654754638671875, 1.37188100814825 ], [ 103.654983520507812, 1.372444033622855 ], [ 103.655242919921918, 1.372658967971915 ], [ 103.655548095703125, 1.37254905700695 ], [ 103.655952453613281, 1.372483015060482 ], [ 103.656372070312557, 1.372359991073722 ], [ 103.656784057617301, 1.372207045555115 ], [ 103.657165527343849, 1.37202703952795 ], [ 103.657600402831974, 1.371956944465751 ], [ 103.658073425293026, 1.371986031532344 ], [ 103.658576965332031, 1.372148036956901 ], [ 103.659126281738224, 1.372213959694022 ], [ 103.659683227539162, 1.372223019599915 ], [ 103.660209655761776, 1.372223019599915 ], [ 103.66083526611321, 1.372223019599915 ], [ 103.663887023925724, 1.372223019599915 ], [ 103.66416931152348, 1.372498989105338 ], [ 103.666389465332031, 1.372498989105338 ], [ 103.666664123535213, 1.372779011726379 ], [ 103.666946411132741, 1.372776985168457 ], [ 103.667221069335994, 1.373054981231803 ], [ 103.667312622070426, 1.372964024543762 ], [ 103.667503356933707, 1.372776985168457 ], [ 103.668891906738281, 1.372779011726379 ], [ 103.66972351074223, 1.371945023536796 ], [ 103.66972351074223, 1.371667027473449 ], [ 103.669998168945256, 1.371389031410331 ], [ 103.669998168945256, 1.37055504322052 ], [ 103.670280456543011, 1.370277047157344 ], [ 103.670280456543011, 1.368610978126526 ], [ 103.670555114746207, 1.368332982063407 ], [ 103.670555114746207, 1.367776989936942 ], [ 103.670829772949205, 1.367501020431519 ], [ 103.670829772949205, 1.3672230243684 ], [ 103.67138671875, 1.366667032241935 ], [ 103.671943664550781, 1.366667032241935 ], [ 103.672225952148494, 1.366389036178589 ], [ 103.672500610351562, 1.366389036178589 ], [ 103.672775268554744, 1.366667032241935 ], [ 103.673057556152273, 1.366667032241935 ], [ 103.673889160156307, 1.367501020431519 ], [ 103.673889160156307, 1.368332982063407 ], [ 103.674163818359474, 1.368610978126526 ], [ 103.674163818359474, 1.369166970252991 ], [ 103.674446105957017, 1.369444966316337 ], [ 103.674163818359474, 1.369722962379512 ], [ 103.674163818359474, 1.37055504322052 ], [ 103.673889160156307, 1.370833039283866 ], [ 103.673889160156307, 1.371111035346985 ], [ 103.673614501953068, 1.371389031410331 ], [ 103.673614501953068, 1.371667027473449 ], [ 103.673332214355526, 1.371945023536796 ], [ 103.673332214355526, 1.372220993041992 ], [ 103.671669006347756, 1.373888969421386 ], [ 103.671669006347756, 1.374166965484733 ], [ 103.67138671875, 1.374444961547852 ], [ 103.67138671875, 1.375277042388916 ], [ 103.671669006347756, 1.375555038452205 ], [ 103.671669006347756, 1.375833034515381 ], [ 103.673057556152273, 1.377220988273677 ], [ 103.673233032226491, 1.377555966377258 ], [ 103.673324584960994, 1.377967000007686 ], [ 103.673355102539119, 1.378337979316825 ], [ 103.673439025878849, 1.378636956215018 ], [ 103.673774719238395, 1.378851056098938 ], [ 103.674339294433707, 1.378898978233281 ], [ 103.674942016601676, 1.378638982772941 ], [ 103.675422668457074, 1.378429055214042 ], [ 103.675842285156307, 1.378350019454956 ], [ 103.676269531250114, 1.378330945968685 ], [ 103.676681518554631, 1.378335952758903 ], [ 103.677055358886662, 1.378370046615714 ], [ 103.677314758300781, 1.378494977950993 ], [ 103.677360534668011, 1.378810048103389 ], [ 103.677131652832088, 1.379302024841309 ], [ 103.676742553710938, 1.379601001739502 ], [ 103.676261901855582, 1.379693984985465 ], [ 103.675735473632798, 1.379732966423092 ], [ 103.675231933593793, 1.379801034927368 ], [ 103.674789428710923, 1.379940032959098 ], [ 103.674163818359474, 1.379999995231572 ], [ 103.673889160156307, 1.379999995231572 ], [ 103.673332214355526, 1.380555987358036 ], [ 103.673332214355526, 1.381665945053044 ], [ 103.673057556152273, 1.38194394111639 ], [ 103.673057556152273, 1.382222056388912 ], [ 103.672225952148494, 1.383056044578666 ], [ 103.670280456543011, 1.383056044578666 ], [ 103.670059204101562, 1.383046984672603 ], [ 103.66972351074223, 1.383038043975887 ], [ 103.669303894042955, 1.38294696807867 ], [ 103.668830871582131, 1.382812023162785 ], [ 103.668342590332031, 1.382779955863953 ], [ 103.667854309082145, 1.382779955863953 ], [ 103.667488098144645, 1.382779955863953 ], [ 103.667366027832017, 1.382779955863953 ], [ 103.666862487793011, 1.382779955863953 ], [ 103.666343688964957, 1.382773041725159 ], [ 103.665809631347585, 1.38273203372961 ], [ 103.665306091308651, 1.382611989975089 ], [ 103.664825439453224, 1.382485985755977 ], [ 103.664390563964901, 1.382321953773499 ], [ 103.663948059082031, 1.3821879625321 ], [ 103.663543701171875, 1.381957054138184 ], [ 103.663078308105582, 1.381741046905631 ], [ 103.662521362304801, 1.381718039512634 ], [ 103.661994934081974, 1.381893992424068 ], [ 103.661514282226619, 1.381942033767814 ], [ 103.661132812500057, 1.381966948509159 ], [ 103.660850524902287, 1.382061958313102 ], [ 103.660606384277457, 1.382205963134879 ], [ 103.660346984863338, 1.382354021072501 ], [ 103.660171508789119, 1.382598042488212 ], [ 103.659942626953111, 1.382840037345943 ], [ 103.659675598144645, 1.38309299945837 ], [ 103.659362792968736, 1.383291006088314 ], [ 103.658973693847642, 1.383283972740173 ], [ 103.658599853515625, 1.383054018020744 ], [ 103.658256530761776, 1.382761955261344 ], [ 103.657989501953068, 1.382437944412231 ], [ 103.657768249511818, 1.382174015045166 ], [ 103.65756988525402, 1.381963968276921 ], [ 103.657371520996207, 1.38180494308483 ], [ 103.657218933105412, 1.381665945053044 ], [ 103.656944274902401, 1.38194394111639 ], [ 103.656944274902401, 1.382778048515377 ], [ 103.657157897949261, 1.38349103927618 ], [ 103.657463073730469, 1.384019970893974 ], [ 103.657760620117301, 1.384515047073307 ], [ 103.658050537109361, 1.3849680423736 ], [ 103.65838623046875, 1.385311961174068 ], [ 103.658737182617131, 1.385583996772766 ], [ 103.659027099609418, 1.385900020599422 ], [ 103.659217834472713, 1.386329054832458 ], [ 103.659454345703239, 1.386793971061707 ], [ 103.659729003906236, 1.387295007705688 ], [ 103.660057067871207, 1.387807965278625 ], [ 103.660461425781193, 1.388267993927059 ], [ 103.660820007324332, 1.388825058937186 ], [ 103.661109924316463, 1.389469981193599 ], [ 103.661392211914176, 1.390151023864746 ], [ 103.661666870117173, 1.390831947326717 ], [ 103.661666870117173, 1.391111016273499 ], [ 103.661941528320412, 1.391389012336788 ], [ 103.661941528320412, 1.392223000526428 ], [ 103.662223815917955, 1.392500996589774 ], [ 103.662223815917955, 1.396389007568359 ], [ 103.661666870117173, 1.396944999694824 ], [ 103.661392211914176, 1.396944999694824 ], [ 103.660552978515682, 1.397776961326656 ], [ 103.660552978515682, 1.398054957389832 ], [ 103.66083526611321, 1.398332953453121 ], [ 103.66083526611321, 1.398610949516296 ], [ 103.661109924316463, 1.398888945579642 ], [ 103.661109924316463, 1.399166941642761 ], [ 103.662498474121151, 1.400555014610291 ], [ 103.662498474121151, 1.40083301067358 ], [ 103.662658691406307, 1.401257038116455 ], [ 103.662788391113281, 1.401775002479553 ], [ 103.662879943847699, 1.402259945869559 ], [ 103.662872314453182, 1.402735948562622 ], [ 103.662757873535099, 1.403241991996822 ], [ 103.662590026855455, 1.403805017471427 ], [ 103.66251373291027, 1.404461979866142 ], [ 103.662559509277273, 1.405138969421387 ], [ 103.662849426269588, 1.405701994895992 ], [ 103.663291931152457, 1.406108975410518 ], [ 103.663742065429688, 1.406463027000484 ], [ 103.664131164550781, 1.406806945800781 ], [ 103.664428710937614, 1.407178044319267 ], [ 103.664634704589943, 1.407582044601384 ], [ 103.664733886718807, 1.408033013343925 ], [ 103.664878845214844, 1.408470988273677 ], [ 103.665115356445369, 1.408849000930786 ], [ 103.66546630859375, 1.409158945083618 ], [ 103.665908813476619, 1.409396052360535 ], [ 103.666450500488324, 1.40944600105297 ], [ 103.666938781738224, 1.409441947937125 ], [ 103.667297363281364, 1.409396052360535 ], [ 103.66754150390625, 1.409245967865104 ], [ 103.667816162109432, 1.409096956253165 ], [ 103.668006896972713, 1.409499049186707 ], [ 103.668212890625057, 1.409669995307979 ], [ 103.668548583984432, 1.40979897975933 ], [ 103.668914794921861, 1.410027027130184 ], [ 103.669265747070312, 1.410351037979126 ], [ 103.669647216796861, 1.410637974739132 ], [ 103.669929504394588, 1.411010026931763 ], [ 103.670051574707031, 1.411522030830383 ], [ 103.670211791992188, 1.412057995796317 ], [ 103.670310974121151, 1.412600040435905 ], [ 103.670463562011776, 1.413074970245361 ], [ 103.670631408691406, 1.413486957550049 ], [ 103.670867919921932, 1.413740038871822 ], [ 103.671104431152457, 1.41387498378748 ], [ 103.671218872070369, 1.414186954498291 ], [ 103.671356201171875, 1.414492011070308 ], [ 103.67138671875, 1.41496396064764 ], [ 103.671401977539062, 1.415488004684448 ], [ 103.671463012695369, 1.415987014770508 ], [ 103.671630859375057, 1.416432023048344 ], [ 103.671676635742301, 1.416867017746029 ], [ 103.671745300292969, 1.417263984680232 ], [ 103.671905517578068, 1.417587041854858 ], [ 103.671966552734375, 1.418002009391785 ], [ 103.672096252441349, 1.418421030044613 ], [ 103.672248840332131, 1.418866038322506 ], [ 103.672485351562443, 1.419273972511348 ], [ 103.672706604003906, 1.419674992561397 ], [ 103.672813415527457, 1.42011296749115 ], [ 103.672943115234432, 1.42051100730896 ], [ 103.673042297363224, 1.42091703414917 ], [ 103.673103332519531, 1.421334028244075 ], [ 103.673286437988281, 1.421699047088737 ], [ 103.673332214355526, 1.422083973884583 ], [ 103.67337799072277, 1.422453045845145 ], [ 103.673553466796918, 1.422767996787968 ], [ 103.673622131347599, 1.423156976699943 ], [ 103.673713684082088, 1.423563003540153 ], [ 103.673866271972642, 1.423964023590202 ], [ 103.673995971679631, 1.424396991729793 ], [ 103.674163818359474, 1.424723029136601 ], [ 103.674446105957017, 1.425001025199947 ], [ 103.674446105957017, 1.425276994705314 ], [ 103.677497863769531, 1.428333044052238 ], [ 103.677497863769531, 1.428611040115413 ], [ 103.677780151367287, 1.428889036178703 ], [ 103.678054809570312, 1.428889036178703 ], [ 103.678337097168068, 1.429167985916138 ], [ 103.678886413574276, 1.429167985916138 ], [ 103.679168701171875, 1.428889036178703 ], [ 103.679725646972599, 1.428889036178703 ], [ 103.680000305175838, 1.429167985916138 ], [ 103.680831909179801, 1.429165005683899 ], [ 103.682777404785099, 1.431112051010132 ], [ 103.683052062988338, 1.431112051010132 ], [ 103.683517456054801, 1.431118011474609 ], [ 103.684097290039176, 1.431154966354484 ], [ 103.684631347656364, 1.431143999099845 ], [ 103.68503570556652, 1.431198000908012 ], [ 103.685302734375, 1.431342005729732 ], [ 103.685554504394588, 1.431383013725338 ], [ 103.685813903808707, 1.431439995765743 ], [ 103.686073303222656, 1.431614995002747 ], [ 103.686347961425895, 1.431895971298275 ], [ 103.686683654785213, 1.43218994140625 ], [ 103.687103271484432, 1.432387948036194 ], [ 103.687515258789176, 1.432554006576652 ], [ 103.687896728515739, 1.432772994041443 ], [ 103.688262939453239, 1.432983040809688 ], [ 103.688720703125, 1.433161020279044 ], [ 103.689270019531193, 1.433300018310604 ], [ 103.689834594726506, 1.433326959609929 ], [ 103.690368652343849, 1.433333992958069 ], [ 103.690864562988338, 1.433379054069519 ], [ 103.691291809082088, 1.433550000190792 ], [ 103.691787719726548, 1.433606982231197 ], [ 103.692291259765739, 1.433655023574943 ], [ 103.6927490234375, 1.433841943740845 ], [ 103.693206787109432, 1.434003949165401 ], [ 103.693656921386662, 1.43417501449585 ], [ 103.694107055664119, 1.434383988380432 ], [ 103.694564819336037, 1.434617042541617 ], [ 103.695045471191406, 1.434862971305904 ], [ 103.695526123046989, 1.435121059417668 ], [ 103.69600677490233, 1.435366988182182 ], [ 103.696411132812557, 1.435747027397212 ], [ 103.696807861328182, 1.43617403507244 ], [ 103.697189331054744, 1.436611056327876 ], [ 103.697570800781307, 1.436998963356018 ], [ 103.697807312011832, 1.43746995925909 ], [ 103.698097229003906, 1.437873959541378 ], [ 103.698394775390724, 1.438272953033504 ], [ 103.698814392089844, 1.438660025596619 ], [ 103.699256896972713, 1.439088940620479 ], [ 103.699783325195312, 1.439535021782035 ], [ 103.70029449462902, 1.440021038055477 ], [ 103.700790405273494, 1.440477013588008 ], [ 103.701278686523381, 1.440798044204826 ], [ 103.701751708984432, 1.441004991531486 ], [ 103.702156066894588, 1.441221952438354 ], [ 103.702499389648494, 1.441517949104252 ], [ 103.70281982421875, 1.441859960556144 ], [ 103.70316314697277, 1.442203998565788 ], [ 103.703506469726619, 1.442556977272147 ], [ 103.703796386718736, 1.442960977554435 ], [ 103.704093933105568, 1.44337797164917 ], [ 103.704391479492188, 1.443812966346854 ], [ 103.704750061035156, 1.444177985191288 ], [ 103.705154418945312, 1.444466948509273 ], [ 103.705543518066406, 1.444766044616813 ], [ 103.705902099609361, 1.445073962211723 ], [ 103.706245422363224, 1.445397019386348 ], [ 103.706619262695256, 1.445705056190548 ], [ 103.706932067871151, 1.446104049682674 ], [ 103.70723724365233, 1.446493029594421 ], [ 103.707725524902457, 1.446565985679683 ], [ 103.708145141601506, 1.446727991104239 ], [ 103.708541870117188, 1.44681894779211 ], [ 103.708839416503949, 1.447054028511104 ], [ 103.70908355712902, 1.44740104675293 ], [ 103.709411621093807, 1.447749018669128 ], [ 103.709861755371037, 1.448050022125244 ], [ 103.710327148437557, 1.448289036750736 ], [ 103.710800170898551, 1.448382973671016 ], [ 103.711181640625114, 1.44858098030096 ], [ 103.711616516113281, 1.448735952377376 ], [ 103.712020874023438, 1.448956966400146 ], [ 103.712463378906307, 1.449192047119084 ], [ 103.712936401367188, 1.449450016021672 ], [ 103.713447570800895, 1.449715971946716 ], [ 103.714019775390739, 1.449957966804447 ], [ 103.714622497558537, 1.450129032135066 ], [ 103.715232849121094, 1.450296998024101 ], [ 103.7158203125, 1.450487017631588 ], [ 103.716453552246151, 1.450492978096065 ], [ 103.717033386230526, 1.450500011444205 ], [ 103.717552185058594, 1.45054399967205 ], [ 103.718017578125099, 1.450590968132076 ], [ 103.71842193603527, 1.450744032859916 ], [ 103.718879699707017, 1.450834989547786 ], [ 103.719406127929616, 1.450932979583797 ], [ 103.720001220703125, 1.451076984405518 ], [ 103.720687866211051, 1.451109051704407 ], [ 103.721389770507869, 1.451110959053153 ], [ 103.721946716308594, 1.451110959053153 ], [ 103.722221374511832, 1.450832962989864 ], [ 103.723052978515611, 1.450832962989864 ], [ 103.723335266113338, 1.451110959053153 ], [ 103.724166870117131, 1.451110959053153 ], [ 103.724441528320355, 1.451388955116329 ], [ 103.725280761718864, 1.451388955116329 ], [ 103.725555419921875, 1.451110959053153 ], [ 103.727775573730582, 1.451110959053153 ], [ 103.728057861328182, 1.450832962989864 ], [ 103.728332519531364, 1.450832962989864 ], [ 103.728614807128906, 1.450554966926688 ], [ 103.728889465332145, 1.450554966926688 ], [ 103.729164123535142, 1.450276970863342 ], [ 103.729446411132869, 1.450276970863342 ], [ 103.730003356933651, 1.449723005294857 ], [ 103.730552673339886, 1.449723005294857 ], [ 103.731666564941406, 1.44861102104187 ], [ 103.731666564941406, 1.448333024978751 ], [ 103.731941223144645, 1.448055028915405 ], [ 103.731941223144645, 1.447777032852287 ], [ 103.732498168945369, 1.447222948074397 ], [ 103.732498168945369, 1.446944952011052 ], [ 103.732940673828054, 1.446491003036499 ], [ 103.733245849609432, 1.446185946464652 ], [ 103.733650207519645, 1.446007966995296 ], [ 103.73394775390625, 1.445698022842464 ], [ 103.734252929687614, 1.445402026176509 ], [ 103.734596252441449, 1.44514000415802 ], [ 103.734985351562614, 1.444864034652824 ], [ 103.735359191894588, 1.444499015808162 ], [ 103.735763549804801, 1.444128036499023 ], [ 103.736160278320426, 1.443742990493831 ], [ 103.736557006835866, 1.443410038948173 ], [ 103.736831665039105, 1.443011045455876 ], [ 103.737007141113281, 1.442559957504386 ], [ 103.737220764160199, 1.442221999168396 ], [ 103.737503051757926, 1.44194400310522 ], [ 103.737503051757926, 1.441388010978756 ], [ 103.737777709960938, 1.441110014915466 ], [ 103.737777709960938, 1.440834045410213 ], [ 103.738052368164176, 1.440556049346924 ], [ 103.738052368164176, 1.440278053283748 ], [ 103.738334655761719, 1.440000057220459 ], [ 103.738334655761719, 1.439721941947937 ], [ 103.73847198486321, 1.439443945884818 ], [ 103.73847198486321, 1.439165949821472 ], [ 103.738403320312543, 1.438681006431693 ], [ 103.737503051757926, 1.4375 ], [ 103.737503051757926, 1.436944007873535 ], [ 103.737220764160199, 1.43666601181036 ], [ 103.737258911132869, 1.436354041099605 ], [ 103.737480163574332, 1.435932040214539 ], [ 103.737670898437614, 1.435487985610962 ], [ 103.737762451171875, 1.435009002685604 ], [ 103.737777709960938, 1.434517025947684 ], [ 103.737777709960938, 1.434010982513541 ], [ 103.737747192382798, 1.433480024337768 ], [ 103.737617492675838, 1.432944059372062 ], [ 103.737358093261719, 1.432410955429191 ], [ 103.736846923828182, 1.431988954544124 ], [ 103.736335754394645, 1.431547045707816 ], [ 103.736312866210994, 1.430922031402645 ], [ 103.736701965332145, 1.430444002151603 ], [ 103.737251281738338, 1.43026602268219 ], [ 103.737724304199219, 1.430099964141959 ], [ 103.738059997558707, 1.429851055145263 ], [ 103.738197326660213, 1.429641962051505 ], [ 103.738090515136662, 1.429324984550533 ], [ 103.737525939941349, 1.428586006164664 ], [ 103.737243652343793, 1.428308010101318 ], [ 103.737243652343793, 1.427752017974854 ], [ 103.736968994140625, 1.427193999290466 ], [ 103.736763000488224, 1.426360011100826 ], [ 103.736480712890682, 1.425611972808895 ], [ 103.736267089843807, 1.42531597614294 ], [ 103.736289978027401, 1.425179004669133 ], [ 103.736015319824219, 1.424654960632381 ], [ 103.735740661621151, 1.424244999885616 ], [ 103.735870361328125, 1.423784017562866 ], [ 103.735801696777273, 1.423552036285514 ], [ 103.735870361328125, 1.423045992851314 ], [ 103.73583984375, 1.422638058662471 ], [ 103.735832214355455, 1.422186970710811 ], [ 103.735809326171818, 1.421712040901184 ], [ 103.735694885253949, 1.42124795913702 ], [ 103.735527038574276, 1.42080104351038 ], [ 103.735237121581974, 1.420431971550045 ], [ 103.73486328125, 1.420124053955135 ], [ 103.734504699707031, 1.419777035713253 ], [ 103.734176635742244, 1.419394969940299 ], [ 103.733848571777457, 1.418992996215934 ], [ 103.733482360839957, 1.418637990951652 ], [ 103.733055114746151, 1.418334960937614 ], [ 103.732635498046932, 1.418027043342704 ], [ 103.732254028320369, 1.41767597198492 ], [ 103.731903076171932, 1.417297959327698 ], [ 103.731536865234432, 1.416944980621338 ], [ 103.731163024902401, 1.416591048240662 ], [ 103.73081207275402, 1.416198968887329 ], [ 103.73044586181652, 1.415807008743343 ], [ 103.730087280273381, 1.415392041206416 ], [ 103.729644775390739, 1.415066003799552 ], [ 103.72913360595696, 1.414844989776611 ], [ 103.728614807128906, 1.41470396518713 ], [ 103.728134155273551, 1.414540052413997 ], [ 103.727600097656193, 1.414459943771419 ], [ 103.727027893066349, 1.414443969726562 ], [ 103.726432800293082, 1.414401054382438 ], [ 103.725868225097756, 1.414175033569336 ], [ 103.725379943847656, 1.413810968399162 ], [ 103.724990844726548, 1.413375020027161 ], [ 103.724517822265739, 1.413023948669377 ], [ 103.724075317382855, 1.412704944610653 ], [ 103.723625183105469, 1.412489056587276 ], [ 103.72321319580071, 1.412292957305965 ], [ 103.722770690918026, 1.412206053733769 ], [ 103.722343444824276, 1.412107944488639 ], [ 103.721931457519531, 1.412027955055237 ], [ 103.721511840820312, 1.411985039711055 ], [ 103.721092224121193, 1.411991953849849 ], [ 103.720664978027401, 1.412042021751461 ], [ 103.72021484375, 1.412109971046561 ], [ 103.719718933105526, 1.412176966667175 ], [ 103.719192504882926, 1.412246942520198 ], [ 103.71868896484375, 1.412420034408569 ], [ 103.718215942382926, 1.412662029266301 ], [ 103.71771240234375, 1.412929058075008 ], [ 103.717376708984432, 1.413419008254948 ], [ 103.716964721679673, 1.413884043693599 ], [ 103.716514587402457, 1.414291977882385 ], [ 103.71600341796875, 1.414551019668636 ], [ 103.715484619140682, 1.414692997932434 ], [ 103.715156555175881, 1.414713025093192 ], [ 103.714996337890739, 1.414721965789908 ], [ 103.714721679687557, 1.414443969726562 ], [ 103.714447021484318, 1.414443969726562 ], [ 103.714309692382812, 1.414307951927242 ], [ 103.713890075683594, 1.413887977600098 ], [ 103.713890075683594, 1.413609981536979 ], [ 103.713470458984489, 1.413403034210319 ], [ 103.713058471679801, 1.413334012031555 ], [ 103.712776184082031, 1.413053989410514 ], [ 103.71221923828125, 1.41277801990509 ], [ 103.711944580078239, 1.41277801990509 ], [ 103.711669921875057, 1.413056015968436 ], [ 103.710830688476548, 1.413056015968436 ], [ 103.710281372070312, 1.412500023841971 ], [ 103.708610534668026, 1.412500023841971 ], [ 103.707809448242188, 1.412464022636414 ], [ 103.707015991210938, 1.412430047988948 ], [ 103.704925537109375, 1.412500023841971 ], [ 103.704742431640611, 1.412454962730521 ], [ 103.704376220703111, 1.412361025810185 ], [ 103.703887939453182, 1.411111950874442 ], [ 103.704170227050781, 1.410763025283813 ], [ 103.704605102539119, 1.410624027252254 ], [ 103.705001831054744, 1.410833954811153 ], [ 103.705276489257756, 1.411041975021419 ], [ 103.705558776855526, 1.411250948906059 ], [ 103.705627441406364, 1.411528944969177 ], [ 103.706039428710881, 1.411597967147884 ], [ 103.706459045410156, 1.411667943000736 ], [ 103.707221984863281, 1.411666035652161 ], [ 103.709724426269531, 1.411666035652161 ], [ 103.710281372070312, 1.411111950874442 ], [ 103.71097564697277, 1.409860968589783 ], [ 103.711662292480526, 1.409860968589783 ], [ 103.71250152587902, 1.411111950874442 ], [ 103.71250152587902, 1.411388039589042 ], [ 103.712776184082031, 1.411666035652161 ], [ 103.712776184082031, 1.411944031715507 ], [ 103.713058471679801, 1.412222027778625 ], [ 103.713607788085994, 1.412222027778625 ], [ 103.714164733886776, 1.41277801990509 ], [ 103.714447021484318, 1.41277801990509 ], [ 103.714721679687557, 1.412500023841971 ], [ 103.715118408203182, 1.412408947944755 ], [ 103.715377807617301, 1.412276983261108 ], [ 103.715560913086051, 1.412171959877014 ], [ 103.715675354003963, 1.411983013153133 ], [ 103.715805053710938, 1.411766052246094 ], [ 103.715911865234489, 1.411476969718933 ], [ 103.716064453125057, 1.411175966262817 ], [ 103.716102600097756, 1.41080200672161 ], [ 103.716110229492301, 1.410410046577454 ], [ 103.716156005859304, 1.41004300117504 ], [ 103.716331481933707, 1.40976095199585 ], [ 103.716484069824332, 1.409495949745292 ], [ 103.716697692871207, 1.40929996967327 ], [ 103.716987609863281, 1.409188985824699 ], [ 103.717361450195312, 1.409165978431702 ], [ 103.717781066894588, 1.409175038337764 ], [ 103.718231201171974, 1.409245967865104 ], [ 103.718635559081974, 1.409435033798331 ], [ 103.719062805175781, 1.409602999687195 ], [ 103.719505310058651, 1.409721970558167 ], [ 103.719970703124943, 1.409834027290458 ], [ 103.720451354980526, 1.409968018531856 ], [ 103.721008300781307, 1.410015940666199 ], [ 103.721572875976619, 1.410117983818054 ], [ 103.722152709960994, 1.410441994667167 ], [ 103.722694396972656, 1.410488009452934 ], [ 103.722846984863281, 1.410398960113639 ], [ 103.723075866699205, 1.410264015197754 ], [ 103.723335266113338, 1.410019993782043 ], [ 103.723495483398494, 1.409819960594177 ], [ 103.723609924316406, 1.409407019615173 ], [ 103.723869323730526, 1.409319043159542 ], [ 103.724075317382855, 1.409528017044124 ], [ 103.724349975585881, 1.409597039222717 ], [ 103.724601745605455, 1.409808993339539 ], [ 103.72502136230473, 1.40969002246868 ], [ 103.725448608398551, 1.409414052963313 ], [ 103.725799560546932, 1.409067988395748 ], [ 103.726066589355412, 1.4086869955064 ], [ 103.726219177246207, 1.408234000206107 ], [ 103.726356506347699, 1.407755017280579 ], [ 103.726387023925838, 1.407219052314872 ], [ 103.726348876953182, 1.406679034233036 ], [ 103.726158142089901, 1.406216979026851 ], [ 103.726028442382926, 1.405781030654907 ], [ 103.725860595703239, 1.405439019203186 ], [ 103.725746154785156, 1.405079007148743 ], [ 103.725563049316406, 1.404744029045162 ], [ 103.725372314453125, 1.404361009597892 ], [ 103.725242614746151, 1.40390598773962 ], [ 103.725044250488324, 1.40349996089941 ], [ 103.724967956542955, 1.403059959411735 ], [ 103.724807739257812, 1.402698040008658 ], [ 103.724700927734489, 1.402341961860714 ], [ 103.724555969238224, 1.402039051056022 ], [ 103.724441528320355, 1.401736021041927 ], [ 103.724334716796989, 1.401417016983032 ], [ 103.724205017089844, 1.401075005531368 ], [ 103.724166870117131, 1.400632977485714 ], [ 103.724121093750114, 1.400146961212272 ], [ 103.723968505859304, 1.399703025817871 ], [ 103.723831176757812, 1.399296998977604 ], [ 103.723701477050838, 1.39896202087408 ], [ 103.723823547363281, 1.398663997650203 ], [ 103.724014282226562, 1.398354053497371 ], [ 103.724250793457088, 1.39803504943842 ], [ 103.724441528320355, 1.397673964500484 ], [ 103.724571228027344, 1.397305011749324 ], [ 103.724479675293026, 1.396908998489437 ], [ 103.724411010742188, 1.396478056907654 ], [ 103.724235534667955, 1.396052002906856 ], [ 103.724052429199261, 1.395596027374324 ], [ 103.723762512207131, 1.395179033279419 ], [ 103.723381042480582, 1.394881963729802 ], [ 103.723022460937429, 1.394562959671077 ], [ 103.722648620605412, 1.394279003143311 ], [ 103.722328186035156, 1.393969058990479 ], [ 103.722061157226506, 1.393663048744145 ], [ 103.72168731689446, 1.393396019935665 ], [ 103.721221923828182, 1.393195986747798 ], [ 103.720794677734361, 1.393007040023917 ], [ 103.719772338867116, 1.392753958702144 ], [ 103.719772338867116, 1.392475962638855 ], [ 103.719909667968807, 1.392194986343441 ], [ 103.720046997070369, 1.391916990280151 ], [ 103.720115661621207, 1.391499996185416 ], [ 103.720741271972585, 1.391499996185416 ], [ 103.721015930175838, 1.391710042953491 ], [ 103.721229553222713, 1.39198803901678 ], [ 103.721504211425724, 1.392197966575679 ], [ 103.721984863281293, 1.392405033111686 ], [ 103.722404479980568, 1.392570972442627 ], [ 103.722785949707145, 1.392838001251278 ], [ 103.723175048828239, 1.39307701587677 ], [ 103.723571777343864, 1.39332103729248 ], [ 103.723968505859304, 1.393529057502803 ], [ 103.724372863769531, 1.393694996833858 ], [ 103.724716186523551, 1.39391398429882 ], [ 103.724998474121094, 1.394162058830204 ], [ 103.725242614746151, 1.394420027732792 ], [ 103.725433349609432, 1.394711971283016 ], [ 103.725669860839957, 1.395001053810176 ], [ 103.725936889648423, 1.395297050476131 ], [ 103.72618103027348, 1.395627975463981 ], [ 103.726371765136776, 1.395972013473624 ], [ 103.726486206054688, 1.396324992179984 ], [ 103.726623535156349, 1.396636962890739 ], [ 103.726669311523423, 1.397024989128226 ], [ 103.726715087890625, 1.397467017173824 ], [ 103.726898193359375, 1.397948026657104 ], [ 103.726943969726619, 1.398478984832821 ], [ 103.726943969726619, 1.399011969566345 ], [ 103.726882934570298, 1.399502038955688 ], [ 103.726715087890625, 1.399922013282833 ], [ 103.726669311523423, 1.400339007377738 ], [ 103.7266845703125, 1.400771975517273 ], [ 103.72678375244152, 1.401221036911068 ], [ 103.726943969726619, 1.401672005653381 ], [ 103.727119445800838, 1.402125954627991 ], [ 103.727294921875057, 1.402555942535457 ], [ 103.727523803710994, 1.402884960174561 ], [ 103.72780609130858, 1.403100967407283 ], [ 103.728073120117244, 1.403295040130672 ], [ 103.728431701660142, 1.403336048126278 ], [ 103.728813171386719, 1.403337955474854 ], [ 103.729209899902401, 1.403288006782589 ], [ 103.729545593261719, 1.403071045875549 ], [ 103.729873657226662, 1.402775049209595 ], [ 103.730178833007869, 1.402423977851868 ], [ 103.730400085449261, 1.401983976364192 ], [ 103.730636596679801, 1.401579022407589 ], [ 103.730842590331974, 1.40119302272808 ], [ 103.731063842773438, 1.400856018066406 ], [ 103.731208801269645, 1.400478005409298 ], [ 103.731376647949318, 1.400110960006714 ], [ 103.731536865234432, 1.39971399307251 ], [ 103.731704711914119, 1.399289965629691 ], [ 103.731948852539176, 1.398877978324947 ], [ 103.732223510742188, 1.398447036743164 ], [ 103.732498168945369, 1.397984027862663 ], [ 103.732757568359318, 1.397497057914734 ], [ 103.732986450195312, 1.396991014480591 ], [ 103.733146667480469, 1.396461963653621 ], [ 103.733322143554631, 1.395995020866394 ], [ 103.733474731445426, 1.395573019981498 ], [ 103.733589172363338, 1.395215034484977 ], [ 103.733612060546932, 1.39489400386816 ], [ 103.733619689941463, 1.394608974456844 ], [ 103.733657836914162, 1.39430403709423 ], [ 103.733886718749929, 1.3938889503479 ], [ 103.733612060546932, 1.393610954284782 ], [ 103.733612060546932, 1.39305496215826 ], [ 103.734169006347713, 1.392500996589774 ], [ 103.733886718749929, 1.392223000526428 ], [ 103.734443664550895, 1.391667008399963 ], [ 103.735000610351676, 1.391667008399963 ], [ 103.735054016113281, 1.391960978508109 ], [ 103.735244750976562, 1.392243027687186 ], [ 103.735427856445256, 1.392508029937687 ], [ 103.735572814941506, 1.392740011215267 ], [ 103.735603332519474, 1.392953991890067 ], [ 103.735542297363324, 1.393288969993591 ], [ 103.735557556152457, 1.393514990806693 ], [ 103.735557556152457, 1.393841028213558 ], [ 103.735557556152457, 1.394230961799622 ], [ 103.735603332519474, 1.394641041755733 ], [ 103.735786437988395, 1.395043969154358 ], [ 103.735832214355455, 1.3955299854278 ], [ 103.735832214355455, 1.396078944206351 ], [ 103.735786437988395, 1.396653056144771 ], [ 103.735610961914006, 1.397171020507926 ], [ 103.735511779785213, 1.397706031799373 ], [ 103.735298156738281, 1.398157954216003 ], [ 103.735099792480469, 1.398604035377502 ], [ 103.734832763671989, 1.399045944213981 ], [ 103.734504699707031, 1.399497985839957 ], [ 103.734169006347713, 1.400007963180485 ], [ 103.73386383056652, 1.400560021400452 ], [ 103.733604431152386, 1.401124954223633 ], [ 103.733329772949148, 1.401664972305241 ], [ 103.733047485351605, 1.402186989784298 ], [ 103.732719421386832, 1.402673006057739 ], [ 103.732353210449332, 1.403115034103394 ], [ 103.732078552246136, 1.403625011444092 ], [ 103.731864929199219, 1.404163002967948 ], [ 103.731651306152344, 1.404693961143494 ], [ 103.731376647949318, 1.405161023140067 ], [ 103.731086730957031, 1.405567049980277 ], [ 103.730773925781307, 1.405884027481079 ], [ 103.730499267578111, 1.406152963638306 ], [ 103.730232238769645, 1.406430959701652 ], [ 103.730033874511832, 1.406774997711295 ], [ 103.729942321777344, 1.407178044319267 ], [ 103.729774475097699, 1.407536029815617 ], [ 103.729705810546818, 1.407989978790397 ], [ 103.729637145996151, 1.40848004817974 ], [ 103.729614257812557, 1.408951997756958 ], [ 103.729698181152287, 1.409325003624019 ], [ 103.729728698730469, 1.409687995910758 ], [ 103.729804992675838, 1.410051941871757 ], [ 103.730018615722713, 1.410349011421317 ], [ 103.730331420898438, 1.410598993301505 ], [ 103.730712890624986, 1.410838961601314 ], [ 103.731117248535213, 1.41111695766449 ], [ 103.731513977050838, 1.411458969116325 ], [ 103.731811523437486, 1.411952972412223 ], [ 103.732078552246136, 1.412590980529842 ], [ 103.732444763183636, 1.413120031356812 ], [ 103.7327880859375, 1.413581013679504 ], [ 103.733184814453125, 1.413880944251957 ], [ 103.733551025390611, 1.414116024971122 ], [ 103.733856201171989, 1.41435801982891 ], [ 103.734115600585938, 1.414631009101868 ], [ 103.734474182128849, 1.414785981178284 ], [ 103.734764099121151, 1.414996027946529 ], [ 103.735046386718693, 1.415202975273189 ], [ 103.735328674316449, 1.415410995483455 ], [ 103.735549926757869, 1.415766000747794 ], [ 103.735939025879006, 1.415982961654777 ], [ 103.736343383789176, 1.416232943534965 ], [ 103.73681640625, 1.416411042213497 ], [ 103.737266540527401, 1.416635036468506 ], [ 103.73773193359375, 1.416880965232963 ], [ 103.73825836181652, 1.417127013206596 ], [ 103.738723754882812, 1.417554974555969 ], [ 103.739273071289062, 1.417950034141541 ], [ 103.739593505859489, 1.418529033661002 ], [ 103.739707946777401, 1.419204950332585 ], [ 103.739768981933693, 1.419849991798515 ], [ 103.739990234374943, 1.420385956764278 ], [ 103.740242004394531, 1.420868992805481 ], [ 103.740509033203182, 1.421332001686153 ], [ 103.740859985351619, 1.421753048896733 ], [ 103.741287231445426, 1.422122955322266 ], [ 103.741737365722656, 1.422461986541862 ], [ 103.742187500000057, 1.422754049301261 ], [ 103.742591857910213, 1.423053026199454 ], [ 103.74296569824223, 1.423362970352287 ], [ 103.743301391601548, 1.423722982406559 ], [ 103.743591308593864, 1.424157977104244 ], [ 103.743820190429631, 1.424654960632381 ], [ 103.744056701660156, 1.425165057182425 ], [ 103.744293212890682, 1.425667047500724 ], [ 103.744583129882741, 1.426115989685115 ], [ 103.744880676269574, 1.426535010337773 ], [ 103.74522399902348, 1.426887989044133 ], [ 103.745552062988281, 1.427206993103027 ], [ 103.745841979980526, 1.427513003349361 ], [ 103.746086120605582, 1.427824974060115 ], [ 103.746238708496207, 1.428197026252747 ], [ 103.746398925781307, 1.428529024124259 ], [ 103.746559143066449, 1.428864002227783 ], [ 103.746475219726491, 1.429224014282283 ], [ 103.746330261230469, 1.429620981216431 ], [ 103.746139526367173, 1.430050015449467 ], [ 103.746086120605582, 1.430574059486446 ], [ 103.745964050292969, 1.431118011474609 ], [ 103.745803833007869, 1.431664943695182 ], [ 103.745536804199162, 1.432742953300533 ], [ 103.745468139648494, 1.433024048805237 ], [ 103.744987487792969, 1.433580040931702 ], [ 103.744781494140625, 1.434137940406799 ], [ 103.74422454833983, 1.434903979301509 ], [ 103.743812561035099, 1.43553102016449 ], [ 103.743614196777273, 1.436112046241874 ], [ 103.743415832519645, 1.436568021774405 ], [ 103.743148803710994, 1.436939001083317 ], [ 103.742813110351676, 1.437327027320976 ], [ 103.742500305175781, 1.437791943550224 ], [ 103.742309570312486, 1.438323020935115 ], [ 103.742393493652401, 1.438864946365356 ], [ 103.742576599121136, 1.439342021942252 ], [ 103.742843627929801, 1.43969297409069 ], [ 103.743164062500057, 1.43997502326971 ], [ 103.743553161621151, 1.440194010734672 ], [ 103.744049072265625, 1.440325975418091 ], [ 103.744583129882741, 1.440387964248714 ], [ 103.745109558105582, 1.440158009529114 ], [ 103.745605468750057, 1.439820051193294 ], [ 103.746116638183594, 1.43949902057642 ], [ 103.746643066406364, 1.439195990562553 ], [ 103.747222900390739, 1.438887953758297 ], [ 103.747497558593736, 1.438887953758297 ], [ 103.74777984619152, 1.43861198425293 ], [ 103.748054504394517, 1.43861198425293 ], [ 103.748886108398494, 1.437777996063346 ], [ 103.749443054199261, 1.437777996063346 ], [ 103.749725341796804, 1.4375 ], [ 103.75, 1.4375 ], [ 103.750274658203239, 1.437222003936824 ], [ 103.750831604004006, 1.437777996063346 ], [ 103.751388549804787, 1.437777996063346 ], [ 103.751663208007812, 1.438055992126465 ], [ 103.752502441406307, 1.438055992126465 ], [ 103.752777099609304, 1.438333988189811 ], [ 103.753051757812557, 1.438333988189811 ], [ 103.753448486328182, 1.438537001609916 ], [ 103.753990173339844, 1.438645958900565 ], [ 103.754501342773366, 1.438789963722342 ], [ 103.755065917968693, 1.438717007637081 ], [ 103.755599975586051, 1.438629984855709 ], [ 103.756111145019574, 1.438609957695007 ], [ 103.756607055664062, 1.438568949699402 ], [ 103.757057189941463, 1.438403010368347 ], [ 103.757553100585881, 1.438457012176514 ], [ 103.758018493652401, 1.438384056091422 ], [ 103.758438110351605, 1.438362002372741 ], [ 103.758796691894588, 1.438485026359672 ], [ 103.759529113769588, 1.438662052154598 ], [ 103.760086059570312, 1.438662052154598 ], [ 103.760566711425895, 1.438452959060612 ], [ 103.761123657226676, 1.438591957092399 ], [ 103.761741638183537, 1.438730955123958 ], [ 103.762229919433651, 1.439079046249503 ], [ 103.762298583984474, 1.439357995986938 ], [ 103.7625732421875, 1.439844965934867 ], [ 103.762847900390739, 1.440261960029545 ], [ 103.763084411621023, 1.440675020217952 ], [ 103.763374328613338, 1.441169023513794 ], [ 103.763740539550838, 1.441640973091182 ], [ 103.764129638671932, 1.442077040672359 ], [ 103.764442443847656, 1.442499995231685 ], [ 103.764724731445369, 1.442778944969177 ], [ 103.764724731445369, 1.443056941032467 ], [ 103.766670227050895, 1.445001006126461 ], [ 103.766670227050895, 1.445279002189579 ], [ 103.766944885253906, 1.445554018020687 ], [ 103.766944885253906, 1.445832967758292 ], [ 103.767219543457145, 1.446110963821468 ], [ 103.767219543457145, 1.446666955947933 ], [ 103.767501831054688, 1.446944952011052 ], [ 103.767501831054688, 1.447500944137516 ], [ 103.767776489257855, 1.447777032852287 ], [ 103.767936706543026, 1.447618961334285 ], [ 103.768058776855469, 1.447500944137516 ], [ 103.768333435058636, 1.447777032852287 ], [ 103.768608093261662, 1.447777032852287 ], [ 103.768890380859432, 1.448055028915405 ], [ 103.768890380859432, 1.448333024978751 ], [ 103.769447326660213, 1.448889017105216 ], [ 103.769515991211051, 1.449167013168392 ], [ 103.770622253418026, 1.449720978736877 ], [ 103.770835876464901, 1.450001001358146 ], [ 103.771110534667969, 1.450001001358146 ], [ 103.771385192871151, 1.449723005294857 ], [ 103.772499084472713, 1.449723005294857 ], [ 103.772781372070426, 1.450001001358146 ], [ 103.773056030273423, 1.450001001358146 ], [ 103.773338317871193, 1.450217962265015 ], [ 103.77371978759777, 1.450530052185115 ], [ 103.774185180664062, 1.450783014297542 ], [ 103.774787902832074, 1.450855970382804 ], [ 103.775398254394588, 1.451002001762504 ], [ 103.775894165039062, 1.451331973075866 ], [ 103.776412963867287, 1.451689958572445 ], [ 103.776916503906307, 1.452077031135559 ], [ 103.777351379394645, 1.45252001285553 ], [ 103.777725219726662, 1.4529869556427 ], [ 103.778099060058707, 1.453390002250728 ], [ 103.778480529785256, 1.45375299453741 ], [ 103.779022216796932, 1.453922986984367 ], [ 103.779541015625, 1.4541610479356 ], [ 103.780052185058537, 1.45439803600317 ], [ 103.780578613281364, 1.454596042633113 ], [ 103.781135559082074, 1.454759955406246 ], [ 103.781669616699276, 1.455001950263977 ], [ 103.782226562500057, 1.455283999443054 ], [ 103.782806396484432, 1.45561504364025 ], [ 103.783378601074276, 1.456004023551998 ], [ 103.783874511718693, 1.456519007682857 ], [ 103.784355163574276, 1.457056999206543 ], [ 103.784957885742301, 1.457458019256649 ], [ 103.785568237304801, 1.457829952240047 ], [ 103.786102294921989, 1.458286046981925 ], [ 103.786697387695412, 1.458639025688285 ], [ 103.787185668945369, 1.45902597904211 ], [ 103.787605285644588, 1.459414005279541 ], [ 103.788040161132926, 1.459702968597526 ], [ 103.788414001464957, 1.459997057914677 ], [ 103.788772583007926, 1.460268974304199 ], [ 103.789138793945369, 1.460507988929692 ], [ 103.789566040039176, 1.460685968399105 ], [ 103.789978027343693, 1.46088898181921 ], [ 103.790390014648438, 1.461137056350822 ], [ 103.790771484375, 1.461473941802979 ], [ 103.791107177734318, 1.461910009384269 ], [ 103.791404724121151, 1.462388038635311 ], [ 103.791732788085923, 1.462828040122986 ], [ 103.791946411132812, 1.463055968284664 ], [ 103.792221069336051, 1.463333964347839 ], [ 103.792503356933594, 1.463333964347839 ], [ 103.792778015136832, 1.463611960411129 ], [ 103.793052673339844, 1.463611960411129 ], [ 103.793334960937543, 1.463889956474304 ], [ 103.793609619140625, 1.463888049125728 ], [ 103.793891906738338, 1.464166045189017 ], [ 103.794166564941349, 1.464166045189017 ], [ 103.794441223144588, 1.464444041252193 ], [ 103.794441223144588, 1.464722037315312 ], [ 103.794723510742287, 1.465000033378658 ], [ 103.794723510742287, 1.465278029441777 ], [ 103.796112060546875, 1.46666598320013 ], [ 103.798332214355582, 1.46666598320013 ], [ 103.798614501953125, 1.466943979263249 ], [ 103.799446105957074, 1.466943979263249 ], [ 103.799583435058651, 1.467082977295035 ], [ 103.799720764160156, 1.467221975326595 ], [ 103.800003051757869, 1.467221975326595 ], [ 103.800277709960881, 1.467499971389771 ], [ 103.800552368164119, 1.467499971389771 ], [ 103.802223205566406, 1.469166040420589 ], [ 103.802780151367188, 1.469166040420589 ], [ 103.803054809570369, 1.469444036483878 ], [ 103.803611755371151, 1.469444036483878 ], [ 103.804443359375114, 1.470278978347835 ], [ 103.804725646972656, 1.470278978347835 ], [ 103.805206298828239, 1.470208048820495 ], [ 103.806114196777401, 1.470553994178886 ], [ 103.80673980712902, 1.470623016357422 ], [ 103.807365417480469, 1.470623016357422 ], [ 103.807777404785156, 1.470762014389038 ], [ 103.808334350585938, 1.470831990242061 ], [ 103.808609008789176, 1.470831990242061 ], [ 103.808891296386719, 1.470553994178886 ], [ 103.8094482421875, 1.470553994178886 ], [ 103.809722900390682, 1.470278978347835 ], [ 103.810279846191463, 1.470278978347835 ], [ 103.810600280761719, 1.470026016235408 ], [ 103.811027526855526, 1.470039010048026 ], [ 103.811538696289062, 1.470234990119991 ], [ 103.812126159667969, 1.470275998115596 ], [ 103.812728881835938, 1.470278978347835 ], [ 103.813339233398494, 1.470275998115596 ], [ 103.813949584961051, 1.470275998115596 ], [ 103.814582824706974, 1.470312952995243 ], [ 103.81520843505858, 1.470505952835197 ], [ 103.815834045410213, 1.470810055732727 ], [ 103.816505432128906, 1.471027970314026 ], [ 103.817161560058651, 1.471063017845154 ], [ 103.81768798828125, 1.470937013626155 ], [ 103.8182373046875, 1.471040010452327 ], [ 103.818641662597656, 1.470896005630607 ], [ 103.819038391113338, 1.470752954483146 ], [ 103.819458007812543, 1.470502018928642 ], [ 103.819847106933636, 1.470285058021659 ], [ 103.820266723632912, 1.470085024833736 ], [ 103.820701599121094, 1.469846010208244 ], [ 103.821121215820312, 1.469560980796814 ], [ 103.821548461914119, 1.469272971153259 ], [ 103.821922302246151, 1.468984007835502 ], [ 103.822219848632812, 1.468703985214233 ], [ 103.822433471679688, 1.468464016914425 ], [ 103.82249450683598, 1.46819102764124 ], [ 103.822425842285156, 1.467895030975342 ], [ 103.822021484374929, 1.46757805347454 ], [ 103.821594238281364, 1.467478036880607 ], [ 103.821166992187557, 1.467375040054435 ], [ 103.820487976074162, 1.467087984085197 ], [ 103.819953918457031, 1.466714024543819 ], [ 103.819480895996207, 1.466295003890991 ], [ 103.819084167480526, 1.465852022171077 ], [ 103.818771362304616, 1.465415000915584 ], [ 103.818595886230469, 1.464944958686829 ], [ 103.818550109863395, 1.464467048645133 ], [ 103.818687438964901, 1.463986039161682 ], [ 103.818885803222713, 1.463611960411129 ], [ 103.819168090820298, 1.463888049125728 ], [ 103.819168090820298, 1.464166045189017 ], [ 103.819442749023494, 1.464444041252193 ], [ 103.819442749023494, 1.464722037315312 ], [ 103.819725036621037, 1.465000033378658 ], [ 103.820159912109361, 1.465407967567501 ], [ 103.820640563964957, 1.46579098701477 ], [ 103.8212890625, 1.466160058975277 ], [ 103.821678161621094, 1.466362953186092 ], [ 103.822059631347656, 1.466567993164119 ], [ 103.822463989257812, 1.466642975807133 ], [ 103.822662353515682, 1.466680049896183 ], [ 103.822975158691349, 1.466493010520935 ], [ 103.82328796386723, 1.466321945190487 ], [ 103.823600769042955, 1.466101050376949 ], [ 103.823936462402344, 1.465875029564017 ], [ 103.824401855468807, 1.465847969055176 ], [ 103.824890136718736, 1.465970993042106 ], [ 103.825271606445312, 1.466315031051693 ], [ 103.825584411621207, 1.466698050498962 ], [ 103.825828552246023, 1.467069983482418 ], [ 103.826011657714787, 1.467416048049984 ], [ 103.826110839843807, 1.46777796745306 ], [ 103.826110839843807, 1.468055963516235 ], [ 103.826385498046989, 1.468333959579525 ], [ 103.826385498046989, 1.468610048294124 ], [ 103.826667785644574, 1.468888044357413 ], [ 103.826667785644574, 1.469166040420589 ], [ 103.827499389648551, 1.47000098228466 ], [ 103.827499389648551, 1.470553994178886 ], [ 103.828330993652344, 1.471387982368526 ], [ 103.828887939453068, 1.471387982368526 ], [ 103.830001831054801, 1.470275998115596 ], [ 103.830276489257812, 1.470278978347835 ], [ 103.831108093261776, 1.469444036483878 ], [ 103.830833435058594, 1.469166040420589 ], [ 103.830833435058594, 1.468610048294124 ], [ 103.830276489257812, 1.468055963516235 ], [ 103.830276489257812, 1.46777796745306 ], [ 103.830558776855582, 1.467499971389771 ], [ 103.830833435058594, 1.467499971389771 ], [ 103.831390380859361, 1.466943979263249 ], [ 103.831665039062557, 1.466943979263249 ], [ 103.831947326660156, 1.46666598320013 ], [ 103.832221984863338, 1.46666598320013 ], [ 103.832496643066349, 1.466387987136784 ], [ 103.833053588867301, 1.466390013694763 ], [ 103.833610534668082, 1.466112017631588 ], [ 103.83388519287108, 1.466112017631588 ], [ 103.834167480468864, 1.465834021568298 ], [ 103.834167480468864, 1.465556025505123 ], [ 103.834442138671875, 1.465278029441777 ], [ 103.834442138671875, 1.465000033378658 ], [ 103.834724426269588, 1.464722037315312 ], [ 103.835281372070369, 1.464166045189017 ], [ 103.835830688476619, 1.464166045189017 ], [ 103.836112976074332, 1.463888049125728 ], [ 103.837501525878892, 1.463889956474304 ], [ 103.837776184082088, 1.463611960411129 ], [ 103.838294982910156, 1.463446021080074 ], [ 103.838844299316406, 1.463111042976493 ], [ 103.839385986328125, 1.462759971618766 ], [ 103.839851379394588, 1.462363004684562 ], [ 103.840263366699261, 1.46198296546936 ], [ 103.840591430664119, 1.461635947227478 ], [ 103.840881347656364, 1.461334943771362 ], [ 103.841102600097656, 1.461068987846375 ], [ 103.841316223144531, 1.460862994194031 ], [ 103.841606140136832, 1.460739970207271 ], [ 103.841941833496136, 1.460569024085999 ], [ 103.842369079589957, 1.4604190587998 ], [ 103.84285736083983, 1.46026599407196 ], [ 103.843353271484474, 1.460062980651855 ], [ 103.843833923339901, 1.459820032119808 ], [ 103.84422302246098, 1.459444046020451 ], [ 103.844573974609375, 1.459038019180411 ], [ 103.844947814941392, 1.458670973777828 ], [ 103.845375061035213, 1.458349943161124 ], [ 103.845840454101676, 1.45805299282074 ], [ 103.846321105957088, 1.457772970199642 ], [ 103.846771240234489, 1.457499027252197 ], [ 103.847183227539006, 1.457252979278564 ], [ 103.847610473632812, 1.457098007202148 ], [ 103.847999572753892, 1.456938982010001 ], [ 103.848411560058651, 1.456766009330806 ], [ 103.848892211914176, 1.456632971763725 ], [ 103.849342346191406, 1.456387042999268 ], [ 103.849784851074276, 1.45611405372631 ], [ 103.850189208984489, 1.455836057662964 ], [ 103.850540161132869, 1.455554962158203 ], [ 103.850830078125, 1.455227017402592 ], [ 103.851097106933651, 1.45484900474554 ], [ 103.851325988769574, 1.454401969909725 ], [ 103.851501464843807, 1.453909993171806 ], [ 103.851638793945298, 1.453428983688354 ], [ 103.851661682128963, 1.452947974205074 ], [ 103.851608276367188, 1.452479004859924 ], [ 103.851432800292969, 1.452023029327393 ], [ 103.851325988769574, 1.451462030410767 ], [ 103.851051330566406, 1.450904011726493 ], [ 103.850555419921932, 1.450373053550777 ], [ 103.849899291992188, 1.450065016746521 ], [ 103.849296569824162, 1.449962019920349 ], [ 103.84885406494152, 1.449820995330811 ], [ 103.84833526611321, 1.449723005294857 ], [ 103.847221374511719, 1.449723005294857 ], [ 103.846946716308693, 1.450001001358146 ], [ 103.846664428710938, 1.450001001358146 ], [ 103.846389770507926, 1.449723005294857 ], [ 103.846107482910142, 1.449723005294857 ], [ 103.8460693359375, 1.449516057968196 ], [ 103.846031188964957, 1.449308037757873 ], [ 103.846015930175895, 1.449023008346614 ], [ 103.846145629882869, 1.448740959167594 ], [ 103.846366882324276, 1.448519945144653 ], [ 103.846618652343693, 1.448340058326721 ], [ 103.846931457519588, 1.448200941085929 ], [ 103.847290039062557, 1.448075056076163 ], [ 103.847694396972713, 1.448035955429191 ], [ 103.848098754882926, 1.448042988777274 ], [ 103.848495483398537, 1.448050022125244 ], [ 103.848876953125114, 1.448061943054199 ], [ 103.849273681640739, 1.448115944862366 ], [ 103.849678039550724, 1.448277950286922 ], [ 103.85014343261723, 1.448333024978751 ], [ 103.850616455078054, 1.448392033576908 ], [ 103.85107421875, 1.44855797290802 ], [ 103.851562500000114, 1.448613047599849 ], [ 103.852043151855526, 1.448675036430416 ], [ 103.852478027343864, 1.448840975761527 ], [ 103.852951049804673, 1.448889017105216 ], [ 103.853446960449332, 1.448889017105216 ], [ 103.853965759277401, 1.448827028274593 ], [ 103.854415893554801, 1.44856500625616 ], [ 103.854759216308651, 1.448125004768428 ], [ 103.855094909668026, 1.447672009468135 ], [ 103.855361938476676, 1.447221040725822 ], [ 103.855575561523381, 1.446789979934636 ], [ 103.855789184570298, 1.446393013000488 ], [ 103.855911254882926, 1.445961952209529 ], [ 103.856079101562543, 1.445574998855705 ], [ 103.856185913085938, 1.445137023925781 ], [ 103.856346130371037, 1.444715976715202 ], [ 103.856369018554688, 1.444198012352047 ], [ 103.856277465820369, 1.443619966507072 ], [ 103.856071472168026, 1.442999958992061 ], [ 103.855682373046932, 1.44239795207983 ], [ 103.855094909668026, 1.441884994506893 ], [ 103.854484558105469, 1.441367983818054 ], [ 103.853897094726548, 1.440827965736389 ], [ 103.853324890136719, 1.44028294086462 ], [ 103.852973937988281, 1.439563035964966 ], [ 103.852767944335938, 1.439213991165161 ], [ 103.852973937988281, 1.439074993133602 ], [ 103.853248596191506, 1.439074993133602 ], [ 103.853477478027273, 1.439200043678284 ], [ 103.854034423828239, 1.439530968666133 ], [ 103.854583740234474, 1.440024971961975 ], [ 103.855094909668026, 1.440508008003235 ], [ 103.85565185546875, 1.440984964370784 ], [ 103.856254577636776, 1.441483974456844 ], [ 103.856872558593864, 1.441650032997245 ], [ 103.857009887695369, 1.441601991653556 ], [ 103.857406616210994, 1.441460967064017 ], [ 103.857864379882756, 1.441128015518245 ], [ 103.858261108398381, 1.440791010856742 ], [ 103.858543395996151, 1.44047200679779 ], [ 103.858734130859432, 1.440168976783752 ], [ 103.858932495117244, 1.439936041832084 ], [ 103.859092712402386, 1.439720034599361 ], [ 103.859169006347756, 1.439507961273137 ], [ 103.859321594238338, 1.439363956451416 ], [ 103.85948181152348, 1.43914103508007 ], [ 103.859725952148537, 1.438871979713497 ], [ 103.860000610351562, 1.438521027565059 ], [ 103.860282897949276, 1.438138008117789 ], [ 103.860572814941406, 1.43775999546051 ], [ 103.860839843750057, 1.437397003173828 ], [ 103.861114501953054, 1.437085032463017 ], [ 103.861389160156307, 1.436823010444755 ], [ 103.861640930175881, 1.436588048934937 ], [ 103.86185455322277, 1.436344981193542 ], [ 103.862014770507926, 1.436064004898128 ], [ 103.862190246582074, 1.435812950134334 ], [ 103.862297058105469, 1.435508012771663 ], [ 103.862464904785156, 1.435235023498535 ], [ 103.862541198730526, 1.434864997863883 ], [ 103.862701416015625, 1.434494018554744 ], [ 103.862770080566449, 1.434105992317256 ], [ 103.862739562988338, 1.433732986450195 ], [ 103.862579345703168, 1.433385968208313 ], [ 103.862464904785156, 1.433009982109183 ], [ 103.862266540527287, 1.432651996612663 ], [ 103.862083435058594, 1.432247042656059 ], [ 103.861846923828239, 1.431867957115116 ], [ 103.861557006835923, 1.431537985801754 ], [ 103.861305236816349, 1.431185007095394 ], [ 103.861015319824276, 1.430884003639278 ], [ 103.860733032226506, 1.430631041526851 ], [ 103.860527038574332, 1.430397987365836 ], [ 103.860420227050781, 1.430140972137508 ], [ 103.860298156738395, 1.429869055748043 ], [ 103.8602294921875, 1.429456949233952 ], [ 103.860000610351562, 1.429054021835327 ], [ 103.859718322753949, 1.428671002388057 ], [ 103.859413146972656, 1.428346991538945 ], [ 103.859085083007812, 1.428102970123291 ], [ 103.858772277832145, 1.427919030189571 ], [ 103.858528137207088, 1.427685976028556 ], [ 103.858306884765611, 1.42739200592041 ], [ 103.858055114746037, 1.427059054374752 ], [ 103.85782623291027, 1.426669955253658 ], [ 103.857810974121151, 1.426223039627189 ], [ 103.857658386230582, 1.42596805095684 ], [ 103.857315063476562, 1.42522203922266 ], [ 103.857177734375, 1.424805045127982 ], [ 103.857109069824162, 1.424314975738639 ], [ 103.856819152832088, 1.423555970192012 ], [ 103.856529235839787, 1.423176050186157 ], [ 103.856307983398551, 1.42270398139965 ], [ 103.856101989746207, 1.42225003242504 ], [ 103.855857849121151, 1.421849012374992 ], [ 103.855606079101562, 1.421447992324943 ], [ 103.855308532714901, 1.421048998832816 ], [ 103.854988098144645, 1.420645952224788 ], [ 103.854644775390625, 1.420289993286246 ], [ 103.854316711425781, 1.419967055320796 ], [ 103.853988647460994, 1.419590950012264 ], [ 103.853584289550824, 1.41926896572113 ], [ 103.853218078613324, 1.419000029563904 ], [ 103.85292816162108, 1.418709039688167 ], [ 103.852745056152344, 1.418266057968196 ], [ 103.852500915527457, 1.417778968811092 ], [ 103.852500915527457, 1.417222976684627 ], [ 103.852218627929673, 1.416944980621338 ], [ 103.852218627929673, 1.416666030883903 ], [ 103.851943969726676, 1.416388034820557 ], [ 103.851943969726676, 1.415832042694092 ], [ 103.851387023925724, 1.415277957916373 ], [ 103.851387023925724, 1.414999961853027 ], [ 103.851112365722713, 1.414721965789908 ], [ 103.851112365722713, 1.414443969726562 ], [ 103.850555419921932, 1.413887977600098 ], [ 103.850555419921932, 1.413609981536979 ], [ 103.849998474121207, 1.413056015968436 ], [ 103.849998474121207, 1.41277801990509 ], [ 103.849723815917955, 1.412500023841971 ], [ 103.849723815917955, 1.412222027778625 ], [ 103.849441528320412, 1.411944031715507 ], [ 103.849441528320412, 1.411388039589042 ], [ 103.8477783203125, 1.409721970558167 ], [ 103.847503662109432, 1.409721970558167 ], [ 103.847366333007926, 1.409582972526607 ], [ 103.847221374511719, 1.409443974495048 ], [ 103.846946716308693, 1.409443974495048 ], [ 103.846664428710938, 1.409165978431702 ], [ 103.846168518066463, 1.408846974372977 ], [ 103.845726013183594, 1.408468008041439 ], [ 103.845222473144588, 1.408113002777156 ], [ 103.844642639160213, 1.407811999321041 ], [ 103.844062805175838, 1.40756797790533 ], [ 103.843566894531193, 1.407523036003226 ], [ 103.843162536621207, 1.4075909852981 ], [ 103.842826843261719, 1.407739043235779 ], [ 103.842483520507812, 1.407832980156059 ], [ 103.842163085937557, 1.408010005950985 ], [ 103.841781616210994, 1.408100962638855 ], [ 103.841438293457131, 1.408282041549796 ], [ 103.841056823730582, 1.408475041389579 ], [ 103.840583801269531, 1.408638954162711 ], [ 103.84007263183598, 1.408857941627502 ], [ 103.839469909668011, 1.409019947052002 ], [ 103.838851928710938, 1.409217953681946 ], [ 103.838294982910156, 1.40944600105297 ], [ 103.83780670166027, 1.409626007080135 ], [ 103.837265014648381, 1.409594058990479 ], [ 103.836677551269645, 1.409594058990479 ], [ 103.836158752441406, 1.40969002246868 ], [ 103.835678100585994, 1.409778952598629 ], [ 103.835227966308594, 1.410006999969482 ], [ 103.834724426269588, 1.41027295589447 ], [ 103.834144592285213, 1.410455942154044 ], [ 103.833488464355469, 1.410318970680237 ], [ 103.832817077636776, 1.410161972045898 ], [ 103.832214355468807, 1.409968018531856 ], [ 103.831741333007756, 1.409711003303528 ], [ 103.831321716308707, 1.409443974495048 ], [ 103.830924987793082, 1.409183979034481 ], [ 103.830497741699261, 1.408951997756958 ], [ 103.830062866210938, 1.408702969551086 ], [ 103.829711914062486, 1.4083110094071 ], [ 103.829460144042912, 1.407822966575679 ], [ 103.829269409179631, 1.407320022583121 ], [ 103.829139709472656, 1.406842947006169 ], [ 103.828964233398494, 1.406447052955684 ], [ 103.828849792480568, 1.406057000160274 ], [ 103.828674316406364, 1.405724048614445 ], [ 103.828536987304688, 1.405370950698966 ], [ 103.828346252441406, 1.405056953430233 ], [ 103.828193664550824, 1.404718995094413 ], [ 103.828079223632926, 1.404368042945805 ], [ 103.828079223632926, 1.404010057449455 ], [ 103.828201293945369, 1.40369105339056 ], [ 103.828460693359474, 1.403442978859005 ], [ 103.828674316406364, 1.403205990791434 ], [ 103.828910827636719, 1.403128027915955 ], [ 103.829170227050838, 1.403326988220215 ], [ 103.829444885253835, 1.403607010841483 ], [ 103.829711914062486, 1.403908014297599 ], [ 103.829933166503963, 1.404219985008353 ], [ 103.830101013183651, 1.404531955718937 ], [ 103.830284118652344, 1.404783010482788 ], [ 103.830490112304744, 1.404989957809448 ], [ 103.830703735351619, 1.405174970626945 ], [ 103.830879211425838, 1.405426025390568 ], [ 103.831115722656364, 1.405634999275208 ], [ 103.8314208984375, 1.405830979347343 ], [ 103.831832885742244, 1.405951976776123 ], [ 103.832305908203054, 1.406067967414913 ], [ 103.832824707031307, 1.40615105628973 ], [ 103.833290100097656, 1.406326055526676 ], [ 103.833770751953182, 1.406453967094421 ], [ 103.834190368652457, 1.406622052192802 ], [ 103.834625244140625, 1.406635999679508 ], [ 103.834976196289006, 1.406522035598869 ], [ 103.835227966308594, 1.40635800361639 ], [ 103.835380554199219, 1.406152963638306 ], [ 103.835472106933651, 1.405907034874019 ], [ 103.835319519043082, 1.405604004859981 ], [ 103.835067749023494, 1.405207037925834 ], [ 103.834793090820256, 1.40473997592926 ], [ 103.834480285644531, 1.404274940490836 ], [ 103.83425140380858, 1.40375995635992 ], [ 103.834175109863395, 1.403185009956417 ], [ 103.834220886230398, 1.40262496471405 ], [ 103.834442138671875, 1.402160048484802 ], [ 103.834701538085994, 1.401739954948482 ], [ 103.834899902343807, 1.4013370275498 ], [ 103.834983825683537, 1.400962948799076 ], [ 103.834991455078068, 1.400640010833854 ], [ 103.834922790527401, 1.400367975234985 ], [ 103.834785461425724, 1.400140047073478 ], [ 103.834709167480526, 1.399883031845206 ], [ 103.834625244140625, 1.399624943733215 ], [ 103.834571838379006, 1.399374961853084 ], [ 103.834701538085994, 1.399057984352112 ], [ 103.834861755371094, 1.398705005645752 ], [ 103.835182189941349, 1.398432970047111 ], [ 103.835548400878849, 1.398223996162471 ], [ 103.835906982421974, 1.398036956787223 ], [ 103.836212158203182, 1.397851943969727 ], [ 103.836540222167969, 1.397786021232548 ], [ 103.836906433105469, 1.397776961326656 ], [ 103.83734130859375, 1.39777505397808 ], [ 103.837890625, 1.39777505397808 ], [ 103.838523864746136, 1.397781968116874 ], [ 103.839172363281193, 1.397873044014091 ], [ 103.839706420898551, 1.398269057273978 ], [ 103.840225219726619, 1.398617982864437 ], [ 103.840560913085938, 1.39910101890564 ], [ 103.840827941894588, 1.399606943130436 ], [ 103.84104156494152, 1.400117993354797 ], [ 103.841163635253963, 1.400632977485714 ], [ 103.841384887695355, 1.401036024093685 ], [ 103.841636657714957, 1.401361942291373 ], [ 103.841896057128906, 1.401605963707084 ], [ 103.842262268066406, 1.401633024215755 ], [ 103.842666625976548, 1.401473999023438 ], [ 103.843070983886776, 1.401186943054256 ], [ 103.843467712402401, 1.400910973548832 ], [ 103.843849182128963, 1.40080797672266 ], [ 103.844131469726506, 1.400846958160514 ], [ 103.844367980957031, 1.401026964187622 ], [ 103.844627380371151, 1.40131402015686 ], [ 103.844879150390724, 1.401780962944031 ], [ 103.844985961914119, 1.402356028556937 ], [ 103.845046997070426, 1.402904987335319 ], [ 103.845199584960994, 1.403318047523498 ], [ 103.84543609619152, 1.403625011444092 ], [ 103.845764160156307, 1.403903007507381 ], [ 103.846191406250099, 1.404170036315918 ], [ 103.846702575683651, 1.404448032379207 ], [ 103.847267150878963, 1.404749035835323 ], [ 103.847831726074219, 1.405063033104057 ], [ 103.848243713378963, 1.405514955520687 ], [ 103.848686218261832, 1.40590405464178 ], [ 103.849136352539062, 1.406250953674316 ], [ 103.849555969238338, 1.4066179990769 ], [ 103.850051879882756, 1.406929969787711 ], [ 103.850570678711051, 1.407222032547111 ], [ 103.851066589355469, 1.407502055168208 ], [ 103.851493835449276, 1.407788991928214 ], [ 103.85182952880858, 1.408103942871094 ], [ 103.852073669433651, 1.408470988273677 ], [ 103.852279663085994, 1.40885603427887 ], [ 103.852478027343864, 1.409222960472164 ], [ 103.852645874023494, 1.40957605838787 ], [ 103.852851867675824, 1.409876942634583 ], [ 103.853179931640682, 1.410099983215446 ], [ 103.853614807128963, 1.41030299663538 ], [ 103.854064941406193, 1.410604000091496 ], [ 103.854530334472699, 1.410994052887077 ], [ 103.855056762695312, 1.411424040794429 ], [ 103.855613708496094, 1.411806941032523 ], [ 103.856086730957088, 1.412137985229549 ], [ 103.85648345947277, 1.41247296333313 ], [ 103.856895446777457, 1.412775993347168 ], [ 103.857315063476562, 1.413071990013123 ], [ 103.857704162597642, 1.413404941558895 ], [ 103.858039855957145, 1.413774013519287 ], [ 103.858322143554688, 1.414147973060665 ], [ 103.858566284179744, 1.414510011673087 ], [ 103.85870361328125, 1.414939045906124 ], [ 103.858901977539119, 1.415375947952384 ], [ 103.859146118164119, 1.415830016136113 ], [ 103.859390258789006, 1.416300058364925 ], [ 103.859756469726676, 1.416654944419861 ], [ 103.860168457031179, 1.416944980621338 ], [ 103.860557556152344, 1.417233943939323 ], [ 103.860900878906364, 1.417603015899658 ], [ 103.861129760742188, 1.418125033378715 ], [ 103.861381530761776, 1.418722033500728 ], [ 103.861618041992244, 1.419381022453422 ], [ 103.861923217773423, 1.4200119972229 ], [ 103.862228393554801, 1.420606970787162 ], [ 103.862518310546875, 1.42112398147583 ], [ 103.862731933593807, 1.421573042869625 ], [ 103.862777709961051, 1.422031998634395 ], [ 103.862808227539176, 1.422495961189327 ], [ 103.862983703613395, 1.422948002815303 ], [ 103.863342285156307, 1.423349022865352 ], [ 103.863761901855582, 1.42374503612524 ], [ 103.864250183105526, 1.424062013626212 ], [ 103.864799499511719, 1.424255967140254 ], [ 103.865325927734375, 1.424456954002437 ], [ 103.865821838378963, 1.424667954444999 ], [ 103.866348266601619, 1.424769043922367 ], [ 103.866851806640611, 1.424949049949703 ], [ 103.867485046386761, 1.425001025199947 ], [ 103.868156433105582, 1.425037980079651 ], [ 103.868797302246094, 1.425099015235958 ], [ 103.869384765625, 1.424800992012081 ], [ 103.870048522949332, 1.424684047698975 ], [ 103.870468139648381, 1.424504041671867 ], [ 103.870941162109432, 1.424249053001461 ], [ 103.871536254882869, 1.424005031585807 ], [ 103.87187194824223, 1.423894047737178 ], [ 103.8721923828125, 1.423388004303035 ], [ 103.872558593749943, 1.422932028770503 ], [ 103.872970581054688, 1.422579050064144 ], [ 103.873374938964844, 1.422212004661503 ], [ 103.873764038085938, 1.421813011169434 ], [ 103.874130249023438, 1.421398043632621 ], [ 103.874443054199318, 1.420930981636104 ], [ 103.874717712402344, 1.420433998107967 ], [ 103.874977111816463, 1.419932007789669 ], [ 103.875221252441349, 1.419461011886597 ], [ 103.875473022460938, 1.419039011001701 ], [ 103.875793457031193, 1.418696999549809 ], [ 103.876152038574332, 1.418370962143001 ], [ 103.876564025878835, 1.418069958686885 ], [ 103.877044677734432, 1.417808055877742 ], [ 103.877639770507855, 1.417580008506888 ], [ 103.878349304199219, 1.417400002479553 ], [ 103.878746032714901, 1.41722905635828 ], [ 103.87895202636723, 1.416955947875977 ], [ 103.879234313964773, 1.416664004325924 ], [ 103.879577636718864, 1.416391015052795 ], [ 103.879928588867244, 1.416170001030082 ], [ 103.880157470703239, 1.415928006172294 ], [ 103.880302429199276, 1.415696024894771 ], [ 103.880310058593793, 1.41511702537548 ], [ 103.880226135253906, 1.414348959922847 ], [ 103.880241394042969, 1.413789987564087 ], [ 103.880325317382926, 1.413414001464957 ], [ 103.880386352539006, 1.413020014762878 ], [ 103.880424499511719, 1.412626028060913 ], [ 103.880729675293082, 1.412441015243587 ], [ 103.880966186523423, 1.412750959396419 ], [ 103.881156921386705, 1.413275003433227 ], [ 103.881233215332074, 1.413884043693599 ], [ 103.881225585937557, 1.41459500789648 ], [ 103.881057739257869, 1.415380954742545 ], [ 103.881034851074276, 1.415992021560669 ], [ 103.881294250488395, 1.416331052780151 ], [ 103.881683349609489, 1.416648030281067 ], [ 103.882232666015724, 1.416882991790885 ], [ 103.882919311523438, 1.416990041732788 ], [ 103.883590698242287, 1.417024016380424 ], [ 103.884315490722713, 1.41682600975048 ], [ 103.884979248046875, 1.416591048240662 ], [ 103.88555908203125, 1.416273951530513 ], [ 103.886192321777401, 1.415941953659058 ], [ 103.886817932129006, 1.415627002716178 ], [ 103.887420654296974, 1.415335059165955 ], [ 103.887977600097756, 1.415076017379704 ], [ 103.888336181640739, 1.414999961853027 ], [ 103.88861083984375, 1.414721965789908 ], [ 103.889442443847713, 1.414721965789908 ], [ 103.889724731445256, 1.414443969726562 ], [ 103.890830993652457, 1.414443969726562 ], [ 103.89111328125, 1.414165973663444 ], [ 103.891670227050781, 1.414165973663444 ], [ 103.892227172851562, 1.414145946502686 ], [ 103.892723083496207, 1.414065957069511 ], [ 103.893264770507869, 1.414029002189636 ], [ 103.893737792968679, 1.41389703750616 ], [ 103.894096374511832, 1.413663029670829 ], [ 103.894378662109418, 1.413300037384147 ], [ 103.89463043212902, 1.412866950035209 ], [ 103.894844055175881, 1.412351965904293 ], [ 103.894889831542969, 1.411806941032523 ], [ 103.894729614257812, 1.411329030990657 ], [ 103.894515991210938, 1.410895943641719 ], [ 103.894325256347642, 1.410513043403625 ], [ 103.894126892089844, 1.410114049911556 ], [ 103.893882751464957, 1.409744977951163 ], [ 103.893623352050838, 1.409420967102051 ], [ 103.89337158203125, 1.40914094448101 ], [ 103.893142700195412, 1.408890008926505 ], [ 103.892929077148537, 1.408663988113403 ], [ 103.892677307128963, 1.408475041389579 ], [ 103.892463684082031, 1.40821099281311 ], [ 103.892173767089943, 1.407961964607239 ], [ 103.891784667968864, 1.407745957374516 ], [ 103.891387939453239, 1.407500028610229 ], [ 103.890556335449219, 1.406667947769222 ], [ 103.890556335449219, 1.406389951705876 ], [ 103.889999389648494, 1.405833959579581 ], [ 103.889724731445256, 1.405833959579581 ], [ 103.889724731445256, 1.405555963516292 ], [ 103.889442443847713, 1.405277967453117 ], [ 103.888336181640739, 1.405277967453117 ], [ 103.888053894042969, 1.404999971389827 ], [ 103.887779235839957, 1.404999971389827 ], [ 103.887359619140682, 1.404582023620605 ], [ 103.886947631835994, 1.404165029525871 ], [ 103.886947631835994, 1.40389001369482 ], [ 103.886665344238224, 1.403612017631644 ], [ 103.886390686035213, 1.403334021568355 ], [ 103.886108398437443, 1.403054952621517 ], [ 103.886665344238224, 1.402498960495052 ], [ 103.886665344238224, 1.402220964431763 ], [ 103.886947631835994, 1.401945948600826 ], [ 103.887222290039176, 1.401945948600826 ], [ 103.887496948242188, 1.402220964431763 ], [ 103.887496948242188, 1.402498960495052 ], [ 103.887779235839957, 1.402776956558228 ], [ 103.887779235839957, 1.403054952621517 ], [ 103.888053894042969, 1.403334021568355 ], [ 103.88861083984375, 1.403334021568355 ], [ 103.889167785644531, 1.403632044792232 ], [ 103.889671325683707, 1.403892040252742 ], [ 103.890144348144531, 1.404163002967948 ], [ 103.890586853027401, 1.404407024383659 ], [ 103.891014099121193, 1.40454804897314 ], [ 103.891380310058651, 1.404744029045162 ], [ 103.891716003418026, 1.405004024505672 ], [ 103.892059326171875, 1.405277967453117 ], [ 103.892395019531193, 1.405542016029358 ], [ 103.892723083496207, 1.405792951583862 ], [ 103.893035888671861, 1.406077980995292 ], [ 103.893409729003906, 1.40635097026825 ], [ 103.893844604492244, 1.406579017639274 ], [ 103.894332885742188, 1.406646966934204 ], [ 103.894790649414105, 1.406574010849113 ], [ 103.895278930664062, 1.406111955642757 ], [ 103.895553588867244, 1.406389951705876 ], [ 103.895553588867244, 1.406667947769222 ], [ 103.89444732666027, 1.407778024673576 ], [ 103.894721984863281, 1.408056020736694 ], [ 103.894721984863281, 1.40833401680004 ], [ 103.894996643066463, 1.408612012863216 ], [ 103.894996643066463, 1.408887982368583 ], [ 103.895553588867244, 1.409443974495048 ], [ 103.895553588867244, 1.410555958747977 ], [ 103.895729064941463, 1.410665035247803 ], [ 103.895980834961037, 1.410953044891357 ], [ 103.896186828613395, 1.411370038986206 ], [ 103.896354675293082, 1.41180503368372 ], [ 103.896469116210938, 1.4122589826585 ], [ 103.896667480468807, 1.412646055221671 ], [ 103.896942138671989, 1.413056015968436 ], [ 103.896942138671989, 1.414721965789908 ], [ 103.897644042968807, 1.416108012199459 ], [ 103.898063659668082, 1.416803002357483 ], [ 103.89847564697277, 1.417361974716243 ], [ 103.899444580078068, 1.417500972747803 ], [ 103.899719238281307, 1.417778968811092 ], [ 103.900039672851562, 1.417925000190792 ], [ 103.900474548339844, 1.418246030807495 ], [ 103.900993347167969, 1.418583035469169 ], [ 103.901260375976619, 1.418706059455928 ], [ 103.901664733886776, 1.418889045715275 ], [ 103.902221679687557, 1.418889045715275 ], [ 103.902496337890568, 1.419167041778621 ], [ 103.903335571289062, 1.419167041778621 ], [ 103.903610229492301, 1.418889045715275 ], [ 103.903892517089844, 1.419167041778621 ], [ 103.90444183349608, 1.419167041778621 ], [ 103.904724121093807, 1.41944503784174 ], [ 103.904998779296861, 1.41944503784174 ], [ 103.905555725097599, 1.420001029968261 ], [ 103.906112670898551, 1.420001029968261 ], [ 103.906387329101562, 1.420279026031551 ], [ 103.906669616699332, 1.420279026031551 ], [ 103.907218933105582, 1.420832991600093 ], [ 103.907501220703125, 1.420832991600093 ], [ 103.907775878906307, 1.421110987663212 ], [ 103.908058166503906, 1.421110987663212 ], [ 103.908332824707088, 1.421388983726558 ], [ 103.908607482910099, 1.421388983726558 ], [ 103.908889770507869, 1.421110987663212 ], [ 103.909721374511832, 1.421110987663212 ], [ 103.910110473632926, 1.421324968338012 ], [ 103.910491943359489, 1.421473026275635 ], [ 103.910873413086037, 1.421674013137817 ], [ 103.911293029785156, 1.421872019767761 ], [ 103.911804199218864, 1.42189002037054 ], [ 103.912330627441463, 1.421707987785453 ], [ 103.912933349609432, 1.421502947807426 ], [ 103.913436889648438, 1.420953989029044 ], [ 103.913528442382926, 1.42025196552288 ], [ 103.913330078125114, 1.419631958007869 ], [ 103.913101196289105, 1.419127941131649 ], [ 103.913009643554688, 1.418617010116634 ], [ 103.913009643554688, 1.418269038200435 ], [ 103.91294097900402, 1.417502999305725 ], [ 103.91294097900402, 1.41715395450592 ], [ 103.913009643554688, 1.416039943695011 ], [ 103.913352966308707, 1.415483951568717 ], [ 103.913352966308707, 1.414368987083549 ], [ 103.913467407226605, 1.414006948471126 ], [ 103.913154602050881, 1.413599014282283 ], [ 103.913078308105511, 1.413051962852535 ], [ 103.913032531738281, 1.412430047988948 ], [ 103.912864685058594, 1.411857008934135 ], [ 103.912857055664062, 1.411242008209342 ], [ 103.913055419921875, 1.410734057426566 ], [ 103.913276672363338, 1.410312056541443 ], [ 103.913467407226605, 1.409906983375549 ], [ 103.913757324218693, 1.409556031227112 ], [ 103.914016723632798, 1.40917897224432 ], [ 103.914291381836051, 1.408849000930786 ], [ 103.914710998535099, 1.408741950988883 ], [ 103.914993286132855, 1.408799052238464 ], [ 103.915191650390682, 1.4086190462113 ], [ 103.915428161621207, 1.408063054084835 ], [ 103.915687561035156, 1.40772104263317 ], [ 103.915962219238324, 1.407474994659538 ], [ 103.916290283203125, 1.407248973846436 ], [ 103.916656494140625, 1.406927943229732 ], [ 103.917037963867188, 1.406512975692806 ], [ 103.917396545410156, 1.406052947044373 ], [ 103.917800903320298, 1.405596971511841 ], [ 103.918258666992244, 1.405158996582088 ], [ 103.918708801269474, 1.404634952545166 ], [ 103.919097900390568, 1.404049038887081 ], [ 103.91949462890625, 1.403596043586788 ], [ 103.919845581054787, 1.403254032135123 ], [ 103.920280456542969, 1.403054952621517 ], [ 103.920280456542969, 1.402498960495052 ], [ 103.921112060546932, 1.40166699886322 ], [ 103.921112060546932, 1.401389002800045 ], [ 103.921386718749929, 1.401111006736755 ], [ 103.921386718749929, 1.40083301067358 ], [ 103.921112060546932, 1.400555014610291 ], [ 103.921112060546932, 1.399999022483769 ], [ 103.920280456542969, 1.399166941642761 ], [ 103.920280456542969, 1.39722299575817 ], [ 103.919998168945426, 1.396944999694824 ], [ 103.919998168945426, 1.396667003631649 ], [ 103.919723510742188, 1.396389007568359 ], [ 103.919723510742188, 1.396111011505184 ], [ 103.919441223144645, 1.395833015441895 ], [ 103.919441223144645, 1.395555019378719 ], [ 103.919723510742188, 1.39527702331543 ], [ 103.919723510742188, 1.395001053810176 ], [ 103.919441223144645, 1.394723057746887 ], [ 103.919441223144645, 1.394444942474365 ], [ 103.918609619140668, 1.393610954284782 ], [ 103.918334960937443, 1.393610954284782 ], [ 103.917778015136719, 1.39305496215826 ], [ 103.917434692382798, 1.392259001731986 ], [ 103.917297363281293, 1.392120003700256 ], [ 103.916877746582017, 1.391770958900452 ], [ 103.916809082031193, 1.391561985015812 ], [ 103.91660308837902, 1.391422986984253 ], [ 103.916534423828182, 1.391283988952694 ], [ 103.917160034179801, 1.390795946121273 ], [ 103.917846679687557, 1.391561985015812 ], [ 103.918266296386776, 1.392120003700256 ], [ 103.919303894042969, 1.393164038658142 ], [ 103.919784545898494, 1.39365196228033 ], [ 103.920410156250114, 1.394207954406795 ], [ 103.920959472656364, 1.394626975059452 ], [ 103.921585083007756, 1.395043969154358 ], [ 103.921928405761832, 1.395463943481502 ], [ 103.924034118652457, 1.397148013114929 ], [ 103.924659729003906, 1.397426009178275 ], [ 103.925140380859432, 1.397845029830932 ], [ 103.925765991210881, 1.398123025894279 ], [ 103.926521301269645, 1.398471951484737 ], [ 103.92694091796875, 1.398610949516296 ], [ 103.927780151367244, 1.398610949516296 ], [ 103.928054809570241, 1.398888945579642 ], [ 103.928337097168026, 1.398888945579642 ], [ 103.928886413574219, 1.399445056915283 ], [ 103.929168701171989, 1.399445056915283 ], [ 103.929443359374986, 1.399723052978572 ], [ 103.931114196777287, 1.399723052978572 ], [ 103.931388854980511, 1.399445056915283 ], [ 103.93194580078125, 1.399445056915283 ], [ 103.932220458984489, 1.399166941642761 ], [ 103.933052062988281, 1.399166941642761 ], [ 103.933334350585994, 1.398888945579642 ], [ 103.933944702148551, 1.398805022239685 ], [ 103.934516906738395, 1.398470044136104 ], [ 103.934921264648366, 1.397917985916195 ], [ 103.935111999511648, 1.397405028343258 ], [ 103.935302734374943, 1.39697194099432 ], [ 103.935501098632741, 1.396569013595695 ], [ 103.935546875, 1.396129012107792 ], [ 103.935554504394517, 1.395717024803275 ], [ 103.935592651367244, 1.395357012748775 ], [ 103.935737609863281, 1.395071983337516 ], [ 103.935821533203168, 1.394757032394523 ], [ 103.935844421386832, 1.394426941871757 ], [ 103.936080932617116, 1.393542051315364 ], [ 103.936286926269517, 1.392912983894462 ], [ 103.936630249023551, 1.392148017883414 ], [ 103.936904907226562, 1.391868948936406 ], [ 103.937187194824318, 1.39131295680994 ], [ 103.937393188476676, 1.390854954719657 ], [ 103.937667846679688, 1.3903950452804 ], [ 103.938087463378963, 1.39001202583313 ], [ 103.938583374023438, 1.389713048934993 ], [ 103.939178466796875, 1.389574050903377 ], [ 103.93975830078125, 1.389430999755916 ], [ 103.94017028808598, 1.389255046844482 ], [ 103.940383911132855, 1.388913035392818 ], [ 103.940643310546804, 1.388519048690853 ], [ 103.940979003906364, 1.38810396194458 ], [ 103.94142913818358, 1.38775098323822 ], [ 103.94193267822277, 1.387446045875549 ], [ 103.942420959472656, 1.387163043022213 ], [ 103.942878723144574, 1.386855006218013 ], [ 103.943367004394531, 1.386589050292969 ], [ 103.943916320800781, 1.386368036270255 ], [ 103.94443511962902, 1.386078000068778 ], [ 103.944854736328068, 1.385692954063416 ], [ 103.945213317871193, 1.385303020477352 ], [ 103.945564270019645, 1.384992957115173 ], [ 103.945899963378963, 1.384747028350887 ], [ 103.946304321289119, 1.384596943855286 ], [ 103.946784973144517, 1.38447105884552 ], [ 103.94730377197277, 1.384392023086605 ], [ 103.94777679443358, 1.384199976921138 ], [ 103.948234558105582, 1.383988022804317 ], [ 103.948562622070369, 1.383633017539978 ], [ 103.948844909667912, 1.383206009864921 ], [ 103.949272155761719, 1.383023977279663 ], [ 103.949729919433651, 1.382819056510925 ], [ 103.950271606445369, 1.38273203372961 ], [ 103.950790405273438, 1.382545948028621 ], [ 103.951339721679631, 1.382501959800777 ], [ 103.951873779296989, 1.382498025894279 ], [ 103.952384948730526, 1.382500052452201 ], [ 103.952888488769531, 1.382501959800777 ], [ 103.953414916992301, 1.382501959800777 ], [ 103.953979492187614, 1.382482051849422 ], [ 103.954536437988395, 1.38237202167511 ], [ 103.955024719238267, 1.382143974304256 ], [ 103.955551147460938, 1.381979942321777 ], [ 103.956138610839844, 1.38189804553997 ], [ 103.956718444824219, 1.381695032119865 ], [ 103.957321166992244, 1.381556034088135 ], [ 103.957878112792969, 1.381422042846737 ], [ 103.958419799804688, 1.381389975547847 ], [ 103.958923339843864, 1.381387948989925 ], [ 103.959388732910156, 1.381387948989925 ], [ 103.959823608398494, 1.381387948989925 ], [ 103.96024322509777, 1.381387948989925 ], [ 103.960639953613381, 1.381389975547847 ], [ 103.961021423339957, 1.381415009498596 ], [ 103.96140289306652, 1.381533980369625 ], [ 103.961807250976676, 1.381643056869621 ], [ 103.962265014648438, 1.381665945053044 ], [ 103.962783813476491, 1.381688952446041 ], [ 103.963333129882926, 1.381793022155875 ], [ 103.963890075683693, 1.38194394111639 ], [ 103.964447021484489, 1.38194394111639 ], [ 103.965194702148494, 1.381858944892997 ], [ 103.966438293457031, 1.381718039512634 ], [ 103.9674072265625, 1.381579041481075 ], [ 103.966995239257812, 1.382416009902954 ], [ 103.965888977050781, 1.382416009902954 ], [ 103.965332031250057, 1.38283300399786 ], [ 103.965553283691463, 1.383056044578666 ], [ 103.965553283691463, 1.383334040641842 ], [ 103.964996337890682, 1.383888006210384 ], [ 103.964996337890682, 1.384166002273673 ], [ 103.965278625488281, 1.384443998336849 ], [ 103.965278625488281, 1.384721994400138 ], [ 103.965553283691463, 1.384999990463314 ], [ 103.965553283691463, 1.385555982589779 ], [ 103.965888977050781, 1.385889053344727 ], [ 103.966392517089787, 1.38638794422161 ], [ 103.966918945312614, 1.385784029960632 ], [ 103.966842651367188, 1.385236978530884 ], [ 103.967803955078125, 1.384958982467708 ], [ 103.969192504882855, 1.385236978530884 ], [ 103.969825744628849, 1.385645031929073 ], [ 103.970794677734318, 1.386482000350895 ], [ 103.971389770507812, 1.387500047683772 ], [ 103.97171783447277, 1.387814998626766 ], [ 103.972129821777287, 1.388049960136414 ], [ 103.972434997558651, 1.38824999332428 ], [ 103.972579956054744, 1.388502955436706 ], [ 103.972724914550781, 1.388726949691829 ], [ 103.972824096679744, 1.388990998268241 ], [ 103.973014831543026, 1.389271020889339 ], [ 103.973190307617244, 1.389574050903377 ], [ 103.973365783691463, 1.389855027198792 ], [ 103.973587036132869, 1.390077948570308 ], [ 103.973800659179801, 1.390326023101863 ], [ 103.973991394043082, 1.390655040740967 ], [ 103.974212646484318, 1.391039967536983 ], [ 103.974494934082088, 1.391443014145011 ], [ 103.974792480468679, 1.391865015029907 ], [ 103.97513580322277, 1.392209053039551 ], [ 103.975471496582088, 1.392508029937687 ], [ 103.975814819335938, 1.392763018608036 ], [ 103.976242065429744, 1.392846941947994 ], [ 103.976928710937486, 1.392413973808402 ], [ 103.977699279785156, 1.392331957817077 ], [ 103.978462219238281, 1.392568945884818 ], [ 103.978813171386719, 1.392810940742606 ], [ 103.97916412353527, 1.393051981926021 ], [ 103.979598999023423, 1.393002033233756 ], [ 103.980041503906307, 1.392799019813651 ], [ 103.980545043945298, 1.39267194271082 ], [ 103.981109619140625, 1.392725944519043 ], [ 103.981681823730469, 1.39267194271082 ], [ 103.982192993164176, 1.392750978469905 ], [ 103.982704162597713, 1.392773985862732 ], [ 103.983215332031236, 1.392758011818046 ], [ 103.983757019042912, 1.39267897605896 ], [ 103.984359741210938, 1.392660021781865 ], [ 103.985000610351619, 1.392500996589774 ], [ 103.986114501953125, 1.392500996589774 ], [ 103.986389160156364, 1.392223000526428 ], [ 103.986663818359375, 1.392223000526428 ], [ 103.986946105957145, 1.392500996589774 ], [ 103.987503051757869, 1.392500996589774 ], [ 103.987777709960938, 1.392776966094971 ], [ 103.988052368164119, 1.392500996589774 ], [ 103.988609313964901, 1.392500996589774 ], [ 103.988891601562599, 1.392223000526428 ], [ 103.989723205566406, 1.392223000526428 ], [ 103.989997863769645, 1.391945004463309 ], [ 103.990837097167969, 1.391945004463309 ], [ 103.991111755371151, 1.391667008399963 ], [ 103.991386413574162, 1.391667008399963 ], [ 103.991668701171932, 1.391389012336788 ], [ 103.992500305175895, 1.391389012336788 ], [ 103.992774963378906, 1.391111016273499 ], [ 103.993057250976676, 1.391111016273499 ], [ 103.993331909179688, 1.390831947326717 ], [ 103.993927001953111, 1.390800952911491 ], [ 103.99446868896483, 1.390656948089713 ], [ 103.995010375976506, 1.390478968620357 ], [ 103.995552062988395, 1.390279054641837 ], [ 103.995834350585938, 1.390001058578491 ], [ 103.997497558593693, 1.390001058578491 ], [ 103.997619628906293, 1.390118956565857 ], [ 103.997779846191463, 1.390279054641837 ], [ 103.998054504394474, 1.390275955200195 ], [ 103.998886108398438, 1.391111016273499 ], [ 103.999725341796989, 1.391111016273499 ], [ 104.0, 1.390831947326717 ], [ 104.000274658203182, 1.390553951263541 ], [ 104.000350952148366, 1.389788985252494 ], [ 104.000274658203182, 1.388118028640804 ], [ 104.000350952148366, 1.387282013893241 ], [ 104.001113891601506, 1.386028051376343 ], [ 104.001129150390625, 1.385593056678829 ], [ 104.001228332519588, 1.385172963142509 ], [ 104.001388549804744, 1.384786009788513 ], [ 104.001556396484375, 1.384428024291992 ], [ 104.001693725585881, 1.384093046188411 ], [ 104.001861572265739, 1.383813023567313 ], [ 104.001937866210938, 1.383499979972896 ], [ 104.002006530761761, 1.38318395614624 ], [ 104.002159118652386, 1.382912039756775 ], [ 104.00223541259777, 1.382581949234009 ], [ 104.002365112304744, 1.382279038429317 ], [ 104.002586364746207, 1.38201904296875 ], [ 104.002700805664062, 1.381626963615417 ], [ 104.00278472900402, 1.381240010261649 ], [ 104.002906799316463, 1.380902051925659 ], [ 104.003135681152401, 1.380628943443298 ], [ 104.003280639648438, 1.38028001785284 ], [ 104.003417968749986, 1.379930973053035 ], [ 104.003593444824162, 1.379634976387081 ], [ 104.003738403320412, 1.379320979118404 ], [ 104.003868103027401, 1.378970026969967 ], [ 104.003952026367301, 1.378579974174556 ], [ 104.004127502441506, 1.378232955932731 ], [ 104.004203796386719, 1.377854943275452 ], [ 104.004364013671818, 1.377555966377258 ], [ 104.004478454589901, 1.377223968505916 ], [ 104.004699707031364, 1.37695503234869 ], [ 104.004882812500114, 1.376639962196293 ], [ 104.005035400390682, 1.376289010047913 ], [ 104.005256652832145, 1.375985980033875 ], [ 104.005462646484474, 1.375637054443359 ], [ 104.005622863769574, 1.375226974487418 ], [ 104.00583648681652, 1.375002026557979 ], [ 104.006668090820298, 1.374165058135986 ], [ 104.006942749023494, 1.374166965484733 ], [ 104.007225036621037, 1.373888969421386 ], [ 104.007774353027457, 1.373888969421386 ], [ 104.008331298828239, 1.373332977294922 ], [ 104.008331298828239, 1.373190045356807 ], [ 104.008331298828239, 1.373054981231803 ], [ 104.007499694824276, 1.372220993041992 ], [ 104.007225036621037, 1.372223019599915 ], [ 104.006668090820298, 1.371667027473449 ], [ 104.006668090820298, 1.371389031410331 ], [ 104.006385803222713, 1.371111035346985 ], [ 104.006668090820298, 1.370833039283866 ], [ 104.006668090820298, 1.37055504322052 ], [ 104.006942749023494, 1.370277047157344 ], [ 104.006942749023494, 1.369999051094055 ], [ 104.007225036621037, 1.369722962379512 ], [ 104.007225036621037, 1.368888974189872 ], [ 104.006942749023494, 1.368610978126526 ], [ 104.006942749023494, 1.3672230243684 ], [ 104.006668090820298, 1.366945028305054 ], [ 104.006668090820298, 1.366667032241935 ], [ 104.006385803222713, 1.366389036178589 ], [ 104.006385803222713, 1.365278959274406 ], [ 104.004997253417969, 1.36388897895813 ], [ 104.004997253417969, 1.363610029220695 ], [ 104.004722595214957, 1.363332033157405 ], [ 104.004646301269588, 1.36299097538 ], [ 104.004478454589901, 1.362642049789542 ], [ 104.004341125488381, 1.362243056297416 ], [ 104.004249572753963, 1.361817002296448 ], [ 104.004173278808537, 1.361338019371146 ], [ 104.004104614257869, 1.360715985298157 ], [ 104.003852844238281, 1.360147953033561 ], [ 104.003585815429631, 1.359699010848999 ], [ 104.003318786621136, 1.359362006187439 ], [ 104.00307464599608, 1.35907697677618 ], [ 104.002891540527344, 1.358796954155082 ], [ 104.002761840820355, 1.358507037162837 ], [ 104.002624511718864, 1.35822498798376 ], [ 104.002525329589886, 1.357890009880066 ], [ 104.00241851806652, 1.357480049133244 ], [ 104.002311706542969, 1.357000946998596 ], [ 104.002204895019645, 1.35649299621582 ], [ 104.002067565917912, 1.356080055236816 ], [ 104.001930236816406, 1.355700016021785 ], [ 104.001838684082145, 1.35529804229742 ], [ 104.001716613769517, 1.354954004287777 ], [ 104.001457214355568, 1.354694008827266 ], [ 104.001373291015611, 1.354395985603389 ], [ 104.001335144042969, 1.354007959365902 ], [ 104.001121520996037, 1.353530049324092 ], [ 104.000968933105469, 1.352975964546204 ], [ 104.0, 1.35277795791626 ], [ 103.999725341796989, 1.352452039718741 ], [ 103.999374389648551, 1.351405978202934 ], [ 103.998680114746094, 1.350152015686035 ], [ 103.998130798339844, 1.348690986633414 ], [ 103.997215270996151, 1.34667003154766 ], [ 103.997039794921932, 1.34613394737255 ], [ 103.996551513671875, 1.344763994217033 ], [ 103.996002197265625, 1.34378898143774 ], [ 103.996276855468807, 1.343093991279659 ], [ 103.995376586914176, 1.34197902679449 ], [ 103.995170593261832, 1.340587019920463 ], [ 103.995033264160156, 1.339750051498413 ], [ 103.994544982910213, 1.338775038719291 ], [ 103.993644714355582, 1.336824059486332 ], [ 103.993026733398494, 1.334943056106624 ], [ 103.99163818359375, 1.331599950790519 ], [ 103.990638732910142, 1.329311966896057 ], [ 103.990776062011832, 1.328964948654175 ], [ 103.991470336914119, 1.328894972801152 ], [ 103.991676330566463, 1.328546047210693 ], [ 103.992713928222585, 1.328129053115788 ], [ 103.992782592773438, 1.327502012252864 ], [ 103.993270874023551, 1.327224016189689 ], [ 103.993957519531307, 1.327224016189689 ], [ 103.994445800781193, 1.32694399356842 ], [ 103.995002746581974, 1.32694399356842 ], [ 103.996109008789176, 1.325834035873413 ], [ 103.996109008789176, 1.325556039810294 ], [ 103.995834350585938, 1.325278043746948 ], [ 103.995834350585938, 1.32500004768383 ], [ 103.994445800781193, 1.3236119747163 ], [ 103.994445800781193, 1.323333978652954 ], [ 103.994720458984432, 1.323055982589835 ], [ 103.994720458984432, 1.32277703285223 ], [ 103.995277404785213, 1.32277703285223 ], [ 103.996665954589901, 1.3213889598847 ], [ 103.997779846191463, 1.3213889598847 ], [ 103.998054504394474, 1.321110963821411 ], [ 103.999443054199219, 1.321110963821411 ], [ 104.0, 1.321946024894828 ], [ 104.000274658203182, 1.322221040725765 ], [ 104.000556945800767, 1.322221040725765 ], [ 104.000831604003963, 1.321946024894828 ], [ 104.001113891601506, 1.321946024894828 ], [ 104.001388549804744, 1.321668028831482 ], [ 104.001945495605469, 1.321668028831482 ], [ 104.002220153808707, 1.3213889598847 ], [ 104.00250244140625, 1.3213889598847 ], [ 104.003334045410213, 1.322221040725765 ], [ 104.003890991210994, 1.322221040725765 ], [ 104.004165649414006, 1.322499036789054 ], [ 104.004447937011776, 1.322499036789054 ], [ 104.004722595214957, 1.322221040725765 ], [ 104.004997253417969, 1.322221040725765 ], [ 104.005279541015739, 1.322499036789054 ], [ 104.00583648681652, 1.322499036789054 ], [ 104.006111145019531, 1.322221040725765 ], [ 104.007225036621037, 1.322221040725765 ], [ 104.007354736328224, 1.322353959083671 ], [ 104.007499694824276, 1.322499036789054 ], [ 104.008331298828239, 1.322499036789054 ], [ 104.00888824462902, 1.323055982589835 ], [ 104.009719848632812, 1.323055982589835 ], [ 104.010002136230526, 1.32277703285223 ], [ 104.011665344238281, 1.32277703285223 ], [ 104.011947631836051, 1.323055982589835 ], [ 104.01277923583983, 1.323055982589835 ], [ 104.013885498046804, 1.324167966842765 ], [ 104.014999389648551, 1.324167966842765 ], [ 104.015274047851548, 1.323889970779476 ], [ 104.015556335449332, 1.323889970779476 ], [ 104.015830993652344, 1.324167966842765 ], [ 104.016670227050838, 1.324167966842765 ], [ 104.016944885253849, 1.324444055557308 ], [ 104.017219543457074, 1.324444055557308 ], [ 104.018348693847642, 1.324653029441947 ], [ 104.021118164062614, 1.324653029441947 ], [ 104.022781372070369, 1.324699044227714 ], [ 104.023612976074148, 1.324722051620483 ], [ 104.025001525878892, 1.324722051620483 ], [ 104.025276184082088, 1.32500004768383 ], [ 104.026779174804744, 1.324839949607849 ], [ 104.028366088867301, 1.324839949607849 ], [ 104.028579711914006, 1.324926972389164 ], [ 104.029441833496136, 1.325278043746948 ], [ 104.032218933105469, 1.325278043746948 ], [ 104.032493591308651, 1.325003981590328 ], [ 104.032775878906193, 1.324722051620483 ], [ 104.032775878906193, 1.324444055557308 ], [ 104.033058166503949, 1.324167966842765 ], [ 104.033058166503949, 1.3236119747163 ], [ 104.033332824707145, 1.323333978652954 ], [ 104.033332824707145, 1.321946024894828 ], [ 104.032775878906193, 1.3213889598847 ], [ 104.032775878906193, 1.321110963821411 ], [ 104.034164428710923, 1.319723010063228 ], [ 104.034446716308707, 1.319723010063228 ], [ 104.035003662109432, 1.319167017936763 ], [ 104.035003662109432, 1.318333029746952 ], [ 104.034721374511719, 1.318055033683834 ], [ 104.034721374511719, 1.317499041557369 ], [ 104.034164428710923, 1.31694495677948 ], [ 104.033889770507926, 1.31694495677948 ], [ 104.033607482910142, 1.316666960716304 ], [ 104.033607482910142, 1.316388964653015 ], [ 104.033332824707145, 1.31611096858984 ], [ 104.033058166503949, 1.31611096858984 ], [ 104.033058166503949, 1.31583297252655 ], [ 104.032775878906193, 1.315554976463375 ], [ 104.032775878906193, 1.315001010894832 ], [ 104.033058166503949, 1.314723014831543 ], [ 104.033058166503949, 1.313333034515438 ], [ 104.033332824707145, 1.313055038452092 ], [ 104.033058166503949, 1.312777042388973 ], [ 104.033058166503949, 1.31250095367443 ], [ 104.033607482910142, 1.311944961547908 ], [ 104.033607482910142, 1.311666965484619 ], [ 104.033332824707145, 1.311388969421444 ], [ 104.033332824707145, 1.310832977294978 ], [ 104.033607482910142, 1.310554027557373 ], [ 104.033607482910142, 1.310001015663147 ], [ 104.033332824707145, 1.309723019599971 ], [ 104.032218933105469, 1.309723019599971 ], [ 104.031669616699205, 1.310279011726436 ], [ 104.031669616699205, 1.312222957611084 ], [ 104.031112670898438, 1.312777042388973 ], [ 104.031112670898438, 1.313055038452092 ], [ 104.028610229492188, 1.315554976463375 ], [ 104.028335571289176, 1.315554976463375 ], [ 104.027778625488395, 1.31611096858984 ], [ 104.027496337890611, 1.31611096858984 ], [ 104.026947021484418, 1.316666960716304 ], [ 104.028335571289176, 1.318055033683834 ], [ 104.028335571289176, 1.318611025810298 ], [ 104.027496337890611, 1.319445013999939 ], [ 104.027221679687614, 1.319445013999939 ], [ 104.026947021484418, 1.319723010063228 ], [ 104.026664733886662, 1.319723010063228 ], [ 104.026107788085866, 1.319167017936763 ], [ 104.026107788085866, 1.318889021873417 ], [ 104.025833129882869, 1.318611025810298 ], [ 104.025558471679673, 1.318611025810298 ], [ 104.025276184082088, 1.318889021873417 ], [ 104.025001525878892, 1.318889021873417 ], [ 104.024444580078125, 1.319445013999939 ], [ 104.023887634277401, 1.319445013999939 ], [ 104.023612976074148, 1.319167017936763 ], [ 104.023330688476605, 1.319167017936763 ], [ 104.022781372070369, 1.318611025810298 ], [ 104.022781372070369, 1.31694495677948 ], [ 104.023056030273381, 1.316666960716304 ], [ 104.023056030273381, 1.316388964653015 ], [ 104.023330688476605, 1.31611096858984 ], [ 104.023330688476605, 1.31583297252655 ], [ 104.023612976074148, 1.315554976463375 ], [ 104.023612976074148, 1.315001010894832 ], [ 104.023887634277401, 1.313611030578556 ], [ 104.023887634277401, 1.312777042388973 ], [ 104.024169921875114, 1.31250095367443 ], [ 104.024444580078125, 1.31250095367443 ], [ 104.024444580078125, 1.312222957611084 ], [ 104.024719238281349, 1.311944961547908 ], [ 104.025276184082088, 1.311944961547908 ], [ 104.025558471679673, 1.311666965484619 ], [ 104.026947021484418, 1.311666965484619 ], [ 104.027496337890611, 1.311110973358154 ], [ 104.027496337890611, 1.310832977294978 ], [ 104.027221679687614, 1.310554027557373 ], [ 104.027221679687614, 1.310001015663147 ], [ 104.026390075683651, 1.309165954589844 ], [ 104.026107788085866, 1.309165954589844 ], [ 104.025833129882869, 1.309445023536682 ], [ 104.025558471679673, 1.309445023536682 ], [ 104.025276184082088, 1.309723019599971 ], [ 104.025001525878892, 1.309723019599971 ], [ 104.024719238281349, 1.310001015663147 ], [ 104.024444580078125, 1.310001015663147 ], [ 104.024169921875114, 1.310279011726436 ], [ 104.023887634277401, 1.310279011726436 ], [ 104.023612976074148, 1.310554027557373 ], [ 104.023330688476605, 1.310554027557373 ], [ 104.022499084472656, 1.311388969421444 ], [ 104.022499084472656, 1.311944961547908 ], [ 104.022224426269588, 1.312222957611084 ], [ 104.022224426269588, 1.31250095367443 ], [ 104.021942138671861, 1.312777042388973 ], [ 104.021942138671861, 1.313333034515438 ], [ 104.022224426269588, 1.313611030578556 ], [ 104.022224426269588, 1.314445018768367 ], [ 104.021667480468864, 1.315001010894832 ], [ 104.02138519287108, 1.314723014831543 ], [ 104.020835876464886, 1.314723014831543 ], [ 104.020553588867301, 1.315001010894832 ], [ 104.019721984863338, 1.315001010894832 ], [ 104.019447326660142, 1.315279006958008 ], [ 104.014167785644588, 1.315276980400029 ], [ 104.013885498046804, 1.315554976463375 ], [ 104.011665344238281, 1.315554976463375 ], [ 104.01139068603527, 1.315276980400029 ], [ 104.010559082031307, 1.315279006958008 ], [ 104.010276794433537, 1.315001010894832 ], [ 104.010002136230526, 1.315001010894832 ], [ 104.009719848632812, 1.314723014831543 ], [ 104.009445190429744, 1.314723014831543 ], [ 104.00888824462902, 1.314167022705078 ], [ 104.007774353027457, 1.313055038452092 ], [ 104.007499694824276, 1.313055038452092 ], [ 104.006942749023494, 1.312499046325797 ], [ 104.006668090820298, 1.312222957611084 ], [ 104.006385803222713, 1.312222957611084 ], [ 104.006111145019531, 1.311944961547908 ], [ 104.00583648681652, 1.311944961547908 ], [ 104.00555419921875, 1.311666965484619 ], [ 104.005279541015739, 1.311666965484619 ], [ 104.004997253417969, 1.311388969421444 ], [ 104.004447937011776, 1.311388969421444 ], [ 104.003890991210994, 1.310832977294978 ], [ 104.003608703613281, 1.310554027557373 ], [ 104.003051757812486, 1.310554027557373 ], [ 104.002777099609489, 1.310279011726436 ], [ 104.002220153808707, 1.310279011726436 ], [ 104.001945495605469, 1.310001015663147 ], [ 104.000556945800767, 1.310001015663147 ], [ 104.000274658203182, 1.310279011726436 ], [ 104.000274658203182, 1.310832977294978 ], [ 104.0, 1.310832977294978 ], [ 103.999725341796989, 1.311110973358154 ], [ 103.999168395996207, 1.310554027557373 ], [ 103.998886108398438, 1.310554027557373 ], [ 103.998611450195426, 1.310832977294978 ], [ 103.998336791992244, 1.310832977294978 ], [ 103.998054504394474, 1.311110973358154 ], [ 103.997779846191463, 1.311110973358154 ], [ 103.997497558593693, 1.311388969421444 ], [ 103.997222900390682, 1.311388969421444 ], [ 103.9969482421875, 1.311666965484619 ], [ 103.996665954589901, 1.311666965484619 ], [ 103.996391296386719, 1.311944961547908 ], [ 103.996109008789176, 1.311944961547908 ], [ 103.995834350585938, 1.312222957611084 ], [ 103.995277404785213, 1.312222957611084 ], [ 103.995002746581974, 1.311944961547908 ], [ 103.994445800781193, 1.31250095367443 ], [ 103.994163513183651, 1.31250095367443 ], [ 103.993888854980469, 1.312777042388973 ], [ 103.993614196777386, 1.312777042388973 ], [ 103.993331909179688, 1.313055038452092 ], [ 103.992774963378906, 1.313055038452092 ], [ 103.992225646972713, 1.313611030578556 ], [ 103.991111755371151, 1.313611030578556 ], [ 103.990837097167969, 1.313889026641903 ], [ 103.990554809570369, 1.313611030578556 ], [ 103.989997863769645, 1.313611030578556 ], [ 103.989166259765625, 1.312777042388973 ], [ 103.989166259765625, 1.31250095367443 ], [ 103.988052368164119, 1.311388969421444 ], [ 103.987220764160156, 1.312222957611084 ], [ 103.986946105957145, 1.312222957611084 ], [ 103.986663818359375, 1.31250095367443 ], [ 103.985832214355582, 1.31250095367443 ], [ 103.984725952148438, 1.313611030578556 ], [ 103.985000610351619, 1.313889026641903 ], [ 103.985000610351619, 1.314445018768367 ], [ 103.984725952148438, 1.314723014831543 ], [ 103.984725952148438, 1.315001010894832 ], [ 103.984443664550838, 1.315276980400029 ], [ 103.984443664550838, 1.315554976463375 ], [ 103.983886718750057, 1.31611096858984 ], [ 103.983612060546875, 1.31611096858984 ], [ 103.983329772949332, 1.316388964653015 ], [ 103.983329772949332, 1.316666960716304 ], [ 103.98276519775402, 1.316403031349239 ], [ 103.982238769531193, 1.316388964653015 ], [ 103.981674194335938, 1.316439032554626 ], [ 103.981109619140625, 1.31661498546606 ], [ 103.980545043945298, 1.316612005233821 ], [ 103.980003356933594, 1.316416025161857 ], [ 103.979446411132869, 1.316256999969539 ], [ 103.978889465332088, 1.316084027290344 ], [ 103.978385925293082, 1.315842032432613 ], [ 103.977882385253906, 1.315562009811515 ], [ 103.977485656738281, 1.315181016921997 ], [ 103.977233886718864, 1.315237998962402 ], [ 103.976974487304744, 1.31537497043621 ], [ 103.976722717285156, 1.315570950508231 ], [ 103.976493835449332, 1.31576502323162 ], [ 103.976234436035213, 1.315847039222774 ], [ 103.976013183593807, 1.315945029258785 ], [ 103.975807189941406, 1.316081047058105 ], [ 103.975517272949332, 1.316144943237305 ], [ 103.975173950195256, 1.316275000572318 ], [ 103.974761962890739, 1.316295981407166 ], [ 103.974311828613338, 1.316282033920288 ], [ 103.973861694335938, 1.316365957260189 ], [ 103.97342681884777, 1.316383957862797 ], [ 103.973182678222713, 1.316359043121452 ], [ 103.973014831543026, 1.316341042518673 ], [ 103.972633361816463, 1.316166043281669 ], [ 103.972251892089886, 1.316043019294796 ], [ 103.971862792968793, 1.315894007682857 ], [ 103.971435546875057, 1.31576502323162 ], [ 103.971000671386719, 1.315603017807063 ], [ 103.970497131347713, 1.315562009811515 ], [ 103.969963073730526, 1.315547943115234 ], [ 103.969406127929801, 1.315489053726253 ], [ 103.968872070312429, 1.315328955650273 ], [ 103.968322753906236, 1.315265059471074 ], [ 103.967826843261776, 1.315176963806096 ], [ 103.967384338378906, 1.315034985542297 ], [ 103.966926574707145, 1.314950942993221 ], [ 103.966499328613338, 1.314785003662109 ], [ 103.966049194335938, 1.314684033393917 ], [ 103.965660095214844, 1.314563035964909 ], [ 103.965293884277344, 1.314455986023063 ], [ 103.964958190918026, 1.314211964607352 ], [ 103.964538574218736, 1.313972949981633 ], [ 103.964080810546989, 1.313686013221797 ], [ 103.963516235351676, 1.313434958457947 ], [ 103.962837219238267, 1.313580989837646 ], [ 103.962272644042969, 1.3138090372085 ], [ 103.961791992187614, 1.313881993293762 ], [ 103.961647033691406, 1.313871026039124 ], [ 103.961364746093807, 1.313850045204276 ], [ 103.960983276367244, 1.313686013221797 ], [ 103.960556030273423, 1.313573956489563 ], [ 103.960136413574219, 1.313369035720825 ], [ 103.959648132324276, 1.313236951828003 ], [ 103.959144592285099, 1.313032031059322 ], [ 103.958618164062486, 1.312777042388973 ], [ 103.958045959472656, 1.31250095367443 ], [ 103.957443237304631, 1.312206983566398 ], [ 103.956871032714787, 1.311843991279716 ], [ 103.956375122070369, 1.311377048492488 ], [ 103.955848693847713, 1.311015009880066 ], [ 103.955276489257869, 1.311146974563712 ], [ 103.954658508300838, 1.311341047287101 ], [ 103.954017639160156, 1.311354041099548 ], [ 103.953399658203239, 1.311198949813956 ], [ 103.952766418457088, 1.31107401847845 ], [ 103.952201843261776, 1.310832977294978 ], [ 103.951644897460994, 1.31062304973608 ], [ 103.951042175293026, 1.310652017593384 ], [ 103.950469970703182, 1.310747981071586 ], [ 103.949981689453239, 1.310601949691886 ], [ 103.949485778808594, 1.310559034347534 ], [ 103.948989868164176, 1.310554027557373 ], [ 103.948471069335881, 1.310557007789612 ], [ 103.94793701171875, 1.310538053512687 ], [ 103.947410583496151, 1.31044697761547 ], [ 103.946945190429631, 1.310258030891418 ], [ 103.946540832519645, 1.310029983520565 ], [ 103.946128845214957, 1.309865951538086 ], [ 103.945732116699276, 1.3096879720689 ], [ 103.945365905761818, 1.309458017349243 ], [ 103.944953918457088, 1.309250950813237 ], [ 103.944488525390625, 1.309088945388908 ], [ 103.944046020507926, 1.308917999267635 ], [ 103.94358825683598, 1.308828949928341 ], [ 103.943206787109432, 1.308658003807125 ], [ 103.942787170410156, 1.308567047119254 ], [ 103.942443847656307, 1.308334946632499 ], [ 103.942108154296932, 1.308050036430416 ], [ 103.941741943359489, 1.307718992233333 ], [ 103.941322326660213, 1.307340979576111 ], [ 103.940742492675838, 1.307072043418998 ], [ 103.940185546875057, 1.307173967361564 ], [ 103.939643859863395, 1.307217955589351 ], [ 103.939147949218736, 1.307222008705253 ], [ 103.938667297363338, 1.307183980941716 ], [ 103.93833160400402, 1.306944012641907 ], [ 103.937774658203239, 1.306944012641907 ], [ 103.9375, 1.306666016578788 ], [ 103.936943054199276, 1.306666016578788 ], [ 103.936668395996094, 1.306388020515442 ], [ 103.936386108398494, 1.306390047073421 ], [ 103.936111450195298, 1.306112051010245 ], [ 103.935836791992301, 1.306112051010245 ], [ 103.935554504394517, 1.305834054946899 ], [ 103.93527984619152, 1.305834054946899 ], [ 103.93499755859375, 1.305556058883781 ], [ 103.934722900390739, 1.305556058883781 ], [ 103.934448242187557, 1.305277943611258 ], [ 103.934165954589773, 1.305277943611258 ], [ 103.933891296386776, 1.304999947547969 ], [ 103.930557250976562, 1.304999947547969 ], [ 103.930274963378963, 1.304721951484794 ], [ 103.930000305175767, 1.304721951484794 ], [ 103.92972564697277, 1.304443955421505 ], [ 103.929443359374986, 1.304443955421505 ], [ 103.929168701171989, 1.304165959358329 ], [ 103.928825378417912, 1.304103970527706 ], [ 103.928329467773494, 1.303923964500427 ], [ 103.927757263183651, 1.303830981254578 ], [ 103.927177429199219, 1.303653001785392 ], [ 103.926567077636719, 1.303611993789787 ], [ 103.92594146728527, 1.303609967231864 ], [ 103.925315856933651, 1.303609967231864 ], [ 103.9246826171875, 1.303575992584229 ], [ 103.924072265625, 1.303416013717651 ], [ 103.923454284668082, 1.303331971168518 ], [ 103.922851562500057, 1.303241014480648 ], [ 103.922294616699332, 1.303087949752864 ], [ 103.921768188476506, 1.303007960319633 ], [ 103.921348571777457, 1.302811980247441 ], [ 103.920883178710938, 1.302680015564022 ], [ 103.920425415039006, 1.302485942840633 ], [ 103.919960021972713, 1.302268028259277 ], [ 103.919425964355582, 1.302171945571899 ], [ 103.918937683105469, 1.301947951316947 ], [ 103.918426513671932, 1.301735997200069 ], [ 103.917823791503892, 1.301669955253601 ], [ 103.917198181152287, 1.301610946655217 ], [ 103.916679382324219, 1.301385045051688 ], [ 103.916229248046818, 1.301113963127136 ], [ 103.915840148925895, 1.300861001014709 ], [ 103.91544342041027, 1.30071496963501 ], [ 103.91507720947277, 1.300573945045471 ], [ 103.914672851562614, 1.300480961799678 ], [ 103.914260864257855, 1.300300955772514 ], [ 103.91378021240233, 1.300163984298706 ], [ 103.913269042968807, 1.29997897148138 ], [ 103.91275787353527, 1.299721956253109 ], [ 103.912216186523551, 1.299443960189933 ], [ 103.911651611328068, 1.299165964126644 ], [ 103.91107940673821, 1.298899054527283 ], [ 103.910476684570426, 1.298701047897396 ], [ 103.909828186035199, 1.2985999584198 ], [ 103.90918731689446, 1.29848396778118 ], [ 103.908546447753963, 1.29836297035223 ], [ 103.907882690429673, 1.298334002494925 ], [ 103.907218933105582, 1.29828405380249 ], [ 103.906631469726619, 1.298056006431636 ], [ 103.906074523925881, 1.297778010368461 ], [ 103.905563354492131, 1.297463059425468 ], [ 103.905151367187614, 1.297045946121216 ], [ 103.904617309570312, 1.296769976616019 ], [ 103.904014587402457, 1.29667699337017 ], [ 103.903457641601506, 1.296664953231868 ], [ 103.902954101562486, 1.296664953231868 ], [ 103.902488708496207, 1.29662394523632 ], [ 103.902061462402386, 1.296448945999145 ], [ 103.901596069335938, 1.296339035034179 ], [ 103.901176452636662, 1.296143054962215 ], [ 103.900726318359418, 1.295994997024593 ], [ 103.900291442871151, 1.295812964439449 ], [ 103.899917602539119, 1.295554995536861 ], [ 103.899528503418026, 1.29529595375061 ], [ 103.899101257324219, 1.295094966888485 ], [ 103.898620605468793, 1.294965028762761 ], [ 103.898200988769588, 1.294744014740047 ], [ 103.89776611328125, 1.294566035270691 ], [ 103.897323608398551, 1.294394969940242 ], [ 103.89689636230473, 1.294165015220585 ], [ 103.896408081054631, 1.293936967849731 ], [ 103.895790100097756, 1.29382598400116 ], [ 103.895149230957088, 1.293655037880058 ], [ 103.894477844238381, 1.293599963188228 ], [ 103.893821716308636, 1.293499946594295 ], [ 103.893249511718807, 1.293238043785152 ], [ 103.89273834228527, 1.292912006378174 ], [ 103.89227294921875, 1.29261302947998 ], [ 103.891891479492188, 1.292263984680176 ], [ 103.891532897949276, 1.291941046714896 ], [ 103.891220092773551, 1.291615009307861 ], [ 103.890975952148494, 1.29125702381134 ], [ 103.890708923339844, 1.290940046310538 ], [ 103.890327453613281, 1.290760040283203 ], [ 103.889907836913991, 1.290596008300724 ], [ 103.889411926269531, 1.29051399230957 ], [ 103.888931274414176, 1.290325045585746 ], [ 103.888465881347713, 1.290112972259521 ], [ 103.888046264648423, 1.289845943451041 ], [ 103.887634277343693, 1.289572954177913 ], [ 103.887245178222599, 1.289278984069938 ], [ 103.886894226074219, 1.288938999175969 ], [ 103.886520385742188, 1.288617968559322 ], [ 103.886116027832031, 1.28831505775463 ], [ 103.885696411132912, 1.288007020950374 ], [ 103.885299682617301, 1.287644982337952 ], [ 103.884872436523494, 1.287310004234371 ], [ 103.884338378906364, 1.287101984024105 ], [ 103.883834838867188, 1.286878943443412 ], [ 103.883407592773551, 1.286610007286128 ], [ 103.883041381835866, 1.286293029785213 ], [ 103.882667541503849, 1.286005973815975 ], [ 103.882286071777287, 1.285738945007324 ], [ 103.881942749023438, 1.285434007644653 ], [ 103.881607055664119, 1.285143971443233 ], [ 103.881187438964844, 1.284942030906734 ], [ 103.880775451660156, 1.284716010093632 ], [ 103.880340576171974, 1.284494996070919 ], [ 103.879829406738281, 1.284366965293998 ], [ 103.879325866699276, 1.284152984619254 ], [ 103.878829956054801, 1.283889055252132 ], [ 103.878326416015625, 1.283596992492732 ], [ 103.877861022949332, 1.283249974250907 ], [ 103.877449035644588, 1.282847046852226 ], [ 103.877037048339886, 1.28247594833374 ], [ 103.876663208007869, 1.282134056091422 ], [ 103.876296997070369, 1.281862020492554 ], [ 103.875831604003906, 1.281666040420589 ], [ 103.875556945800895, 1.281388044357413 ], [ 103.875000000000114, 1.281388044357413 ], [ 103.874725341796861, 1.281666040420589 ], [ 103.874443054199318, 1.281666040420589 ], [ 103.871665954589844, 1.284445047378654 ], [ 103.871665954589844, 1.284723043441772 ], [ 103.870834350585881, 1.285555005073604 ], [ 103.870834350585881, 1.28583300113678 ], [ 103.869720458984375, 1.286944985389709 ], [ 103.869720458984375, 1.287222981453056 ], [ 103.869445800781307, 1.287500977516174 ], [ 103.869445800781307, 1.287776947021598 ], [ 103.868888854980582, 1.288333058357239 ], [ 103.868888854980582, 1.288611054420528 ], [ 103.86861419677733, 1.288889050483704 ], [ 103.86861419677733, 1.289167046546993 ], [ 103.868331909179787, 1.289445042610168 ], [ 103.868331909179787, 1.289723038673515 ], [ 103.868057250976619, 1.289999008178711 ], [ 103.868057250976619, 1.290555000305176 ], [ 103.867774963379006, 1.290832996368465 ], [ 103.867774963379006, 1.291388988494987 ], [ 103.867500305175838, 1.291666984558105 ], [ 103.867500305175838, 1.291944980621452 ], [ 103.867225646972585, 1.29222297668457 ], [ 103.867225646972585, 1.292498946189937 ], [ 103.866943359375057, 1.292776942253113 ], [ 103.866943359375057, 1.293055057525635 ], [ 103.866668701171875, 1.293333053588924 ], [ 103.866668701171875, 1.2936110496521 ], [ 103.866386413574261, 1.293889045715389 ], [ 103.866386413574261, 1.294999003410396 ], [ 103.866111755371094, 1.295276999473572 ], [ 103.866111755371094, 1.295554995536861 ], [ 103.866203308105526, 1.296198010444698 ], [ 103.866188049316463, 1.296972990036124 ], [ 103.866607666015739, 1.297623038292045 ], [ 103.867225646972585, 1.297577023506278 ], [ 103.867828369140625, 1.297600030899105 ], [ 103.868278503418011, 1.297582030296326 ], [ 103.868888854980582, 1.29764997959137 ], [ 103.869522094726562, 1.297788977622929 ], [ 103.870277404785099, 1.298056006431636 ], [ 103.870552062988338, 1.298334002494925 ], [ 103.870834350585881, 1.298334002494925 ], [ 103.871109008789119, 1.298611998558101 ], [ 103.871391296386832, 1.298611998558101 ], [ 103.871665954589844, 1.29888999462122 ], [ 103.872222900390625, 1.299443960189933 ], [ 103.872222900390625, 1.300277948379573 ], [ 103.871948242187599, 1.300555944442692 ], [ 103.871948242187599, 1.300833940506038 ], [ 103.871665954589844, 1.30111205577856 ], [ 103.871665954589844, 1.302778005600032 ], [ 103.870834350585881, 1.303611993789787 ], [ 103.870552062988338, 1.303611993789787 ], [ 103.870277404785099, 1.303889989852962 ], [ 103.870002746582074, 1.303887963294983 ], [ 103.869720458984375, 1.304165959358329 ], [ 103.869445800781307, 1.303887963294983 ], [ 103.869163513183594, 1.303889989852962 ], [ 103.868331909179787, 1.303056001663322 ], [ 103.868331909179787, 1.302500009536857 ], [ 103.868057250976619, 1.302222013473511 ], [ 103.868057250976619, 1.301666021347046 ], [ 103.867774963379006, 1.30139005184185 ], [ 103.867774963379006, 1.30111205577856 ], [ 103.867500305175838, 1.30111205577856 ], [ 103.867225646972585, 1.300833940506038 ], [ 103.866943359375057, 1.300833940506038 ], [ 103.866668701171875, 1.300555944442692 ], [ 103.866111755371094, 1.300555944442692 ], [ 103.865554809570312, 1.299999952316398 ], [ 103.865280151367287, 1.299999952316398 ], [ 103.864860534668011, 1.299582958221492 ], [ 103.86472320556652, 1.299443960189933 ], [ 103.86472320556652, 1.299167990684566 ], [ 103.864440917968807, 1.29888999462122 ], [ 103.864440917968807, 1.298334002494925 ], [ 103.864166259765568, 1.298056006431636 ], [ 103.864166259765568, 1.297222018241996 ], [ 103.863334655761776, 1.296390056610164 ], [ 103.863334655761776, 1.296111941337642 ], [ 103.863609313964844, 1.295833945274296 ], [ 103.863609313964844, 1.294721007347107 ], [ 103.864166259765568, 1.294165015220585 ], [ 103.864166259765568, 1.2936110496521 ], [ 103.864440917968807, 1.293333053588924 ], [ 103.864440917968807, 1.292498946189937 ], [ 103.864166259765568, 1.29222297668457 ], [ 103.864166259765568, 1.291388988494987 ], [ 103.864440917968807, 1.291110992431641 ], [ 103.864440917968807, 1.289723038673515 ], [ 103.863891601562543, 1.289167046546993 ], [ 103.863334655761776, 1.289167046546993 ], [ 103.863052368164062, 1.288889050483704 ], [ 103.862503051757798, 1.288889050483704 ], [ 103.862220764160256, 1.289167046546993 ], [ 103.861640930175881, 1.287019968032951 ], [ 103.862266540527287, 1.286393046379146 ], [ 103.862060546874943, 1.28618395328516 ], [ 103.862060546874943, 1.286044955253601 ], [ 103.86240386962902, 1.285974025726318 ], [ 103.862754821777401, 1.285624980926457 ], [ 103.863052368164062, 1.285277009010315 ], [ 103.863334655761776, 1.285001039505119 ], [ 103.863891601562543, 1.285001039505119 ], [ 103.864440917968807, 1.284445047378654 ], [ 103.86472320556652, 1.284445047378654 ], [ 103.864997863769517, 1.284167051315308 ], [ 103.865554809570312, 1.284167051315308 ], [ 103.865837097168068, 1.283889055252132 ], [ 103.866386413574261, 1.283889055252132 ], [ 103.866668701171875, 1.283611059188843 ], [ 103.866943359375057, 1.283611059188843 ], [ 103.867225646972585, 1.283331990242061 ], [ 103.867500305175838, 1.283331990242061 ], [ 103.871109008789119, 1.279721975326595 ], [ 103.871109008789119, 1.27916598320013 ], [ 103.871391296386832, 1.278887987136955 ], [ 103.871391296386832, 1.277500033378658 ], [ 103.871109008789119, 1.277222037315482 ], [ 103.871109008789119, 1.276944041252193 ], [ 103.870002746582074, 1.275833964347839 ], [ 103.869720458984375, 1.275833964347839 ], [ 103.869445800781307, 1.275555968284664 ], [ 103.869163513183594, 1.275555968284664 ], [ 103.868331909179787, 1.274721980094853 ], [ 103.868057250976619, 1.274721980094853 ], [ 103.866111755371094, 1.272778034210262 ], [ 103.865837097168068, 1.272778034210262 ], [ 103.865280151367287, 1.272222042083797 ], [ 103.864997863769517, 1.272222042083797 ], [ 103.864715576171989, 1.271944046020621 ], [ 103.864341735839957, 1.271666049957332 ], [ 103.863975524902287, 1.271407961845341 ], [ 103.863571166992301, 1.271204948425407 ], [ 103.863136291503949, 1.271046042442322 ], [ 103.862739562988338, 1.270822048187313 ], [ 103.862388610839901, 1.27055299282074 ], [ 103.862052917480582, 1.270270943641662 ], [ 103.861717224121094, 1.269989967346305 ], [ 103.861358642578125, 1.269703030586243 ], [ 103.860954284667955, 1.269390940666312 ], [ 103.860527038574332, 1.269016981124935 ], [ 103.860046386718807, 1.268782019615287 ], [ 103.859565734863395, 1.269067049026603 ], [ 103.859153747558707, 1.269512057304439 ], [ 103.858711242675838, 1.269883036613578 ], [ 103.858184814453182, 1.269994974136466 ], [ 103.857688903808537, 1.270063042640743 ], [ 103.857254028320412, 1.270256996154785 ], [ 103.856796264648438, 1.270427942276058 ], [ 103.856361389160156, 1.270629048347587 ], [ 103.856040954589901, 1.270949959755058 ], [ 103.855682373046932, 1.271162033081055 ], [ 103.855384826660099, 1.271407961845341 ], [ 103.855110168457074, 1.271679043769893 ], [ 103.854804992675895, 1.271965980529785 ], [ 103.8544921875, 1.272259950637931 ], [ 103.854179382324276, 1.272544980049247 ], [ 103.853866577148366, 1.272802948951835 ], [ 103.853614807128963, 1.273056030273381 ], [ 103.85333251953125, 1.273056030273381 ], [ 103.853057861328224, 1.273334026336727 ], [ 103.852775573730469, 1.273056030273381 ], [ 103.852775573730469, 1.272778034210262 ], [ 103.852218627929673, 1.272222042083797 ], [ 103.852043151855526, 1.271898031234684 ], [ 103.852127075195426, 1.271613001823425 ], [ 103.852218627929673, 1.271216988563538 ], [ 103.852310180664176, 1.270761013031006 ], [ 103.852470397949276, 1.270341038703862 ], [ 103.852500915527457, 1.269914984703121 ], [ 103.852500915527457, 1.26948702335352 ], [ 103.852500915527457, 1.26901304721838 ], [ 103.852500915527457, 1.268465995788631 ], [ 103.852500915527457, 1.265128970146179 ], [ 103.852500915527457, 1.264466047286987 ], [ 103.852500915527457, 1.26389396190649 ], [ 103.852493286132926, 1.263463020324707 ], [ 103.852500915527457, 1.26313495635992 ], [ 103.852546691894531, 1.262799978256339 ], [ 103.852722167968693, 1.262374043464717 ], [ 103.852676391601676, 1.261773943901062 ], [ 103.852378845214844, 1.261144995689506 ], [ 103.851928710937614, 1.260555028915405 ], [ 103.851371765136832, 1.260105967521667 ], [ 103.850692749023423, 1.260175943374691 ], [ 103.850105285644531, 1.260547995567265 ], [ 103.849586486816463, 1.260987997055167 ], [ 103.849182128906307, 1.261528015136775 ], [ 103.848884582519645, 1.262102007865849 ], [ 103.848609924316463, 1.262501001358146 ], [ 103.848609924316463, 1.262776970863342 ], [ 103.848052978515668, 1.263332962989807 ], [ 103.847503662109432, 1.263054966926688 ], [ 103.847221374511719, 1.262776970863342 ], [ 103.846664428710938, 1.262776970863342 ], [ 103.846664428710938, 1.261945009231681 ], [ 103.846107482910142, 1.261389017105216 ], [ 103.846389770507926, 1.26111102104187 ], [ 103.846389770507926, 1.260833024978751 ], [ 103.845832824707145, 1.260277032852287 ], [ 103.845558166503949, 1.260277032852287 ], [ 103.845275878906193, 1.260555028915405 ], [ 103.845275878906193, 1.260833024978751 ], [ 103.845001220703182, 1.26111102104187 ], [ 103.845001220703182, 1.261389017105216 ], [ 103.844444274902401, 1.261945009231681 ], [ 103.844444274902401, 1.262223005294857 ], [ 103.844085693359474, 1.262452960014457 ], [ 103.843704223632926, 1.26269900798809 ], [ 103.843368530273381, 1.263012051582336 ], [ 103.842987060546818, 1.26329696178442 ], [ 103.842559814453239, 1.263558983802909 ], [ 103.842155456543026, 1.263880014419613 ], [ 103.841766357421932, 1.264222025871277 ], [ 103.841468811035099, 1.26462996006012 ], [ 103.841140747070312, 1.265023946762199 ], [ 103.840797424316463, 1.265411972999686 ], [ 103.840377807617188, 1.265741944313049 ], [ 103.839935302734318, 1.266077041625977 ], [ 103.839462280273494, 1.26637601852417 ], [ 103.839019775390625, 1.266669988632316 ], [ 103.838623046875, 1.266947984695435 ], [ 103.8382568359375, 1.267179965973014 ], [ 103.837860107421875, 1.267182946205253 ], [ 103.837501525878892, 1.266942977905273 ], [ 103.837219238281349, 1.266942977905273 ], [ 103.836570739746094, 1.26652204990387 ], [ 103.835556030273366, 1.266389012336731 ], [ 103.835281372070369, 1.266389012336731 ], [ 103.834999084472656, 1.266667008400077 ], [ 103.834167480468864, 1.266667008400077 ], [ 103.83388519287108, 1.266942977905273 ], [ 103.833053588867301, 1.266942977905273 ], [ 103.832778930664105, 1.266667008400077 ], [ 103.831947326660156, 1.266667008400077 ], [ 103.831665039062557, 1.266389012336731 ], [ 103.831390380859361, 1.266389012336731 ], [ 103.831108093261776, 1.266111016273612 ], [ 103.830833435058594, 1.266111016273612 ], [ 103.830696105957088, 1.265972018241825 ], [ 103.830558776855582, 1.265833020210266 ], [ 103.830001831054801, 1.265833020210266 ], [ 103.829795837402443, 1.26562595367443 ], [ 103.829170227050838, 1.264999032020683 ], [ 103.828887939453068, 1.265001058578605 ], [ 103.828330993652344, 1.264444947242794 ], [ 103.828056335449276, 1.264444947242794 ], [ 103.827774047851548, 1.264166951179618 ], [ 103.827499389648551, 1.264166951179618 ], [ 103.827224731445312, 1.263888955116329 ], [ 103.82694244384777, 1.263888955116329 ], [ 103.825836181640568, 1.262776970863342 ], [ 103.824996948242244, 1.262776970863342 ], [ 103.824722290039062, 1.262501001358146 ], [ 103.821662902832017, 1.262501001358146 ], [ 103.82138824462902, 1.262223005294857 ], [ 103.820274353027457, 1.262223005294857 ], [ 103.819999694824276, 1.261945009231681 ], [ 103.819435119628949, 1.262168049812374 ], [ 103.818832397460938, 1.262236952781734 ], [ 103.818626403808594, 1.262483000755367 ], [ 103.818397521972599, 1.262742996215934 ], [ 103.818016052246037, 1.262979984283504 ], [ 103.817436218261648, 1.263136982917842 ], [ 103.816955566406307, 1.263337969780025 ], [ 103.816627502441506, 1.263566017150879 ], [ 103.816322326660156, 1.263638019561824 ], [ 103.81607818603527, 1.263782024383602 ], [ 103.815773010253906, 1.263950943946895 ], [ 103.815422058105526, 1.264188051223812 ], [ 103.815055847168026, 1.264505028724784 ], [ 103.814704895019574, 1.264878034591675 ], [ 103.814331054687614, 1.265220046043396 ], [ 103.813873291015625, 1.265452980995235 ], [ 103.813400268554787, 1.265643954277039 ], [ 103.812988281250057, 1.26589298248291 ], [ 103.812591552734432, 1.266123056411743 ], [ 103.812225341796932, 1.266360044479484 ], [ 103.811828613281307, 1.266484975814819 ], [ 103.811485290527443, 1.266455054283256 ], [ 103.811149597167912, 1.266268968582267 ], [ 103.810859680175838, 1.265974998474064 ], [ 103.810592651367188, 1.26560997962963 ], [ 103.810279846191463, 1.265277028083801 ], [ 103.809997558593693, 1.264999032020683 ], [ 103.809722900390682, 1.265001058578605 ], [ 103.8094482421875, 1.264722943306083 ], [ 103.809165954589901, 1.265001058578605 ], [ 103.808891296386719, 1.264999032020683 ], [ 103.808609008789176, 1.265277028083801 ], [ 103.807502746582145, 1.265277028083801 ], [ 103.806663513183651, 1.264444947242794 ], [ 103.806663513183651, 1.263888955116329 ], [ 103.806114196777401, 1.263332962989807 ], [ 103.805686950683636, 1.263332962989807 ], [ 103.805313110351619, 1.263327956199646 ], [ 103.804992675781364, 1.263331055641231 ], [ 103.804672241210938, 1.263337969780025 ], [ 103.804328918457031, 1.26339495182043 ], [ 103.803993225097713, 1.263587951660213 ], [ 103.803565979003906, 1.26379299163824 ], [ 103.803062438964886, 1.264016985893193 ], [ 103.802513122558693, 1.264338016510066 ], [ 103.801986694335866, 1.264780044555721 ], [ 103.801483154296861, 1.265290975570679 ], [ 103.801017761230582, 1.265810012817496 ], [ 103.800582885742244, 1.26627504825592 ], [ 103.800247192382926, 1.266705989837703 ], [ 103.799972534179744, 1.267096042633113 ], [ 103.79965972900402, 1.267385005950928 ], [ 103.799247741699276, 1.267570018768424 ], [ 103.798889160156364, 1.267776966095084 ], [ 103.798614501953125, 1.268054962158203 ], [ 103.798057556152401, 1.268054962158203 ], [ 103.797775268554801, 1.267776966095084 ], [ 103.797500610351619, 1.267776966095084 ], [ 103.797225952148381, 1.267498970031738 ], [ 103.796669006347656, 1.268054962158203 ], [ 103.796386718750057, 1.268054962158203 ], [ 103.795829772949332, 1.268612027168331 ], [ 103.795555114746094, 1.268612027168331 ], [ 103.795280456543082, 1.268890023231506 ], [ 103.794998168945312, 1.268890023231506 ], [ 103.794441223144588, 1.269446015357971 ], [ 103.793609619140625, 1.269443035125732 ], [ 103.793334960937543, 1.269721031189022 ], [ 103.793052673339844, 1.269721031189022 ], [ 103.792503356933594, 1.270277976989803 ], [ 103.792221069336051, 1.270277976989803 ], [ 103.791946411132812, 1.270555973052979 ], [ 103.79166412353527, 1.270555973052979 ], [ 103.790557861328125, 1.271666049957332 ], [ 103.790275573730526, 1.271666049957332 ], [ 103.789718627929744, 1.272222042083797 ], [ 103.789443969726562, 1.272222042083797 ], [ 103.789169311523551, 1.272500038146916 ], [ 103.788772583007926, 1.272691011428947 ], [ 103.788352966308651, 1.272814035415649 ], [ 103.787902832031236, 1.273056030273381 ], [ 103.787422180175838, 1.273326992988586 ], [ 103.786926269531179, 1.273586988449154 ], [ 103.786483764648537, 1.273831009864864 ], [ 103.786209106445312, 1.274111032485905 ], [ 103.785858154296932, 1.274252057075614 ], [ 103.785102844238338, 1.274266004562321 ], [ 103.784538269043011, 1.27459895610815 ], [ 103.784149169921918, 1.274948000907955 ], [ 103.783721923828125, 1.275169014930668 ], [ 103.783218383789119, 1.275374054908752 ], [ 103.782669067382926, 1.275617957115287 ], [ 103.782089233398494, 1.275845050811824 ], [ 103.781478881835994, 1.276168942451591 ], [ 103.781005859374943, 1.276705026626644 ], [ 103.780677795410156, 1.277281045913696 ], [ 103.780502319335923, 1.277606964111385 ], [ 103.780281066894531, 1.277778029441776 ], [ 103.779998779296989, 1.277778029441776 ], [ 103.77972412109375, 1.278056025505123 ], [ 103.779441833496207, 1.278056025505123 ], [ 103.778892517089957, 1.278609991073665 ], [ 103.778610229492244, 1.278609991073665 ], [ 103.778335571289006, 1.278890013694763 ], [ 103.778053283691463, 1.278890013694763 ], [ 103.7772216796875, 1.279721975326595 ], [ 103.776947021484489, 1.279721975326595 ], [ 103.776664733886719, 1.279999971389713 ], [ 103.776390075683693, 1.279999971389713 ], [ 103.776107788085938, 1.28027796745306 ], [ 103.775276184081974, 1.28027796745306 ], [ 103.774444580078168, 1.279443979263249 ], [ 103.774444580078168, 1.278334021568241 ], [ 103.773887634277386, 1.277778029441776 ], [ 103.773330688476676, 1.277778029441776 ], [ 103.772781372070426, 1.277222037315482 ], [ 103.772781372070426, 1.276944041252193 ], [ 103.772499084472713, 1.276666045189017 ], [ 103.772224426269474, 1.276666045189017 ], [ 103.771385192871151, 1.275833964347839 ], [ 103.770835876464901, 1.275833964347839 ], [ 103.770835876464901, 1.275555968284664 ], [ 103.769996643066406, 1.274721980094853 ], [ 103.769996643066406, 1.274443984031734 ], [ 103.769447326660213, 1.273890018463192 ], [ 103.768608093261662, 1.273890018463192 ], [ 103.768058776855469, 1.274443984031734 ], [ 103.768058776855469, 1.274721980094853 ], [ 103.767501831054688, 1.275277972221375 ], [ 103.767219543457145, 1.275277972221375 ], [ 103.766944885253906, 1.275555968284664 ], [ 103.766944885253906, 1.276111960411129 ], [ 103.768608093261662, 1.277778029441776 ], [ 103.768608093261662, 1.278056025505123 ], [ 103.768890380859432, 1.278334021568241 ], [ 103.768890380859432, 1.279443979263249 ], [ 103.768280029296861, 1.279400944709721 ], [ 103.767227172851662, 1.279678940773067 ], [ 103.76612091064446, 1.279818058013973 ], [ 103.765640258789119, 1.280097961425895 ], [ 103.765220642089844, 1.28051495552063 ], [ 103.763771057128949, 1.280447006225529 ], [ 103.763557434082074, 1.281002998352051 ], [ 103.762733459472656, 1.28107404708868 ], [ 103.762382507324219, 1.281352043151855 ], [ 103.761001586914062, 1.281352043151855 ], [ 103.760375976562614, 1.281561970710754 ], [ 103.758789062500057, 1.282327055931148 ], [ 103.757820129394588, 1.283164024353027 ], [ 103.757820129394588, 1.283581018447933 ], [ 103.756851196289062, 1.284417033195496 ], [ 103.757263183593807, 1.284764051437378 ], [ 103.757957458496094, 1.284764051437378 ], [ 103.758300781249943, 1.284417033195496 ], [ 103.758369445800781, 1.283651947975216 ], [ 103.760307312011761, 1.282466053962708 ], [ 103.761070251464901, 1.282466053962708 ], [ 103.761619567871094, 1.282883048057613 ], [ 103.762176513671875, 1.282883048057613 ], [ 103.762313842773381, 1.283581018447933 ], [ 103.763702392578125, 1.283651947975216 ], [ 103.763839721679616, 1.283442020416317 ], [ 103.764045715332031, 1.283442020416317 ], [ 103.764320373535213, 1.282883048057613 ], [ 103.763908386230469, 1.282814979553222 ], [ 103.763908386230469, 1.282256960868949 ], [ 103.764183044433707, 1.282188057899589 ], [ 103.764251708984375, 1.281769037246761 ], [ 103.764526367187543, 1.281352043151855 ], [ 103.765083312988324, 1.28128099441534 ], [ 103.765708923339957, 1.280864000320434 ], [ 103.766601562500057, 1.281002998352051 ], [ 103.766601562500057, 1.28128099441534 ], [ 103.766464233398551, 1.281491041183585 ], [ 103.766601562500057, 1.281769037246761 ], [ 103.766952514648438, 1.281769037246761 ], [ 103.767295837402344, 1.28128099441534 ], [ 103.768058776855469, 1.281283974647579 ], [ 103.768402099609489, 1.28107404708868 ], [ 103.768821716308594, 1.28107404708868 ], [ 103.769027709960938, 1.280236959457511 ], [ 103.769165039062614, 1.279999971389713 ], [ 103.769996643066406, 1.280832052230948 ], [ 103.769996643066406, 1.281110048294067 ], [ 103.770278930664162, 1.281388044357413 ], [ 103.770278930664162, 1.281944036483878 ], [ 103.770553588867188, 1.282222986221313 ], [ 103.770553588867188, 1.283053994178885 ], [ 103.770278930664162, 1.283331990242061 ], [ 103.770278930664162, 1.283889055252132 ], [ 103.769721984863381, 1.284445047378654 ], [ 103.769447326660213, 1.284445047378654 ], [ 103.768890380859432, 1.285001039505119 ], [ 103.768608093261662, 1.285001039505119 ], [ 103.768333435058636, 1.285279035568237 ], [ 103.768058776855469, 1.285279035568237 ], [ 103.767776489257855, 1.285555005073604 ], [ 103.767501831054688, 1.285555005073604 ], [ 103.766944885253906, 1.286110997200126 ], [ 103.766670227050895, 1.286110997200126 ], [ 103.766113281250114, 1.286666989326591 ], [ 103.765830993652401, 1.286666989326591 ], [ 103.764999389648438, 1.287500977516174 ], [ 103.764167785644645, 1.287500977516174 ], [ 103.763610839843849, 1.288054943084717 ], [ 103.763336181640625, 1.288054943084717 ], [ 103.760559082031364, 1.290832996368465 ], [ 103.760559082031364, 1.291388988494987 ], [ 103.76027679443358, 1.291666984558105 ], [ 103.76027679443358, 1.293889045715389 ], [ 103.760833740234375, 1.29444599151617 ], [ 103.761108398437557, 1.29444599151617 ], [ 103.761390686035156, 1.294721007347107 ], [ 103.761665344238324, 1.294721007347107 ], [ 103.762222290039105, 1.295276999473572 ], [ 103.762222290039105, 1.295833945274296 ], [ 103.761947631835938, 1.296111941337642 ], [ 103.761634826660213, 1.29654502868658 ], [ 103.761283874511776, 1.296906948089656 ], [ 103.760894775390682, 1.297225952148551 ], [ 103.760513305664119, 1.297538042068481 ], [ 103.760131835937557, 1.297840952873173 ], [ 103.759849548339844, 1.298176050186271 ], [ 103.759513854980469, 1.29839301109314 ], [ 103.759201049804744, 1.298621058464164 ], [ 103.758888244628835, 1.29888999462122 ], [ 103.758613586425838, 1.29888999462122 ], [ 103.758331298828125, 1.299167990684566 ], [ 103.758056640625057, 1.299167990684566 ], [ 103.757499694824318, 1.298611998558101 ], [ 103.757499694824318, 1.298334002494925 ], [ 103.757225036621094, 1.298056006431636 ], [ 103.757225036621094, 1.297778010368461 ], [ 103.756942749023551, 1.297500014305172 ], [ 103.757225036621094, 1.297222018241996 ], [ 103.757225036621094, 1.296664953231868 ], [ 103.756111145019574, 1.295554995536861 ], [ 103.755279541015625, 1.295554995536861 ], [ 103.754997253418026, 1.295276999473572 ], [ 103.752502441406307, 1.295276999473572 ], [ 103.752220153808594, 1.294999003410396 ], [ 103.751663208007812, 1.294999003410396 ], [ 103.751388549804787, 1.295276999473572 ], [ 103.751113891601562, 1.295276999473572 ], [ 103.750831604004006, 1.295554995536861 ], [ 103.750556945800781, 1.295554995536861 ], [ 103.750274658203239, 1.295833945274296 ], [ 103.749725341796804, 1.295833945274296 ], [ 103.749458312988338, 1.296054959297237 ], [ 103.749000549316392, 1.29615497589117 ], [ 103.748558044433707, 1.296378016471863 ], [ 103.748077392578111, 1.296617984771842 ], [ 103.747505187988281, 1.29678201675415 ], [ 103.746948242187543, 1.296942949295044 ], [ 103.746665954589787, 1.296942949295044 ], [ 103.746391296386776, 1.297222018241996 ], [ 103.745834350585994, 1.297222018241996 ], [ 103.745552062988281, 1.297500014305172 ], [ 103.74444580078125, 1.297500014305172 ], [ 103.743888854980526, 1.298056006431636 ], [ 103.742774963378963, 1.298056006431636 ], [ 103.742500305175781, 1.298334002494925 ], [ 103.742225646972713, 1.298334002494925 ], [ 103.741943359374986, 1.298611998558101 ], [ 103.741668701171989, 1.298611998558101 ], [ 103.741386413574205, 1.29888999462122 ], [ 103.740554809570426, 1.29888999462122 ], [ 103.740203857421875, 1.299096941948051 ], [ 103.739700317382869, 1.299222946167049 ], [ 103.739273071289062, 1.299402952194214 ], [ 103.738838195800895, 1.299443960189933 ], [ 103.738403320312543, 1.299445986747685 ], [ 103.737937927246094, 1.299450993537903 ], [ 103.737442016601619, 1.299471020698604 ], [ 103.736938476562443, 1.29946398735052 ], [ 103.736450195312557, 1.299548983573914 ], [ 103.73602294921875, 1.29973495006567 ], [ 103.735679626464844, 1.299936056137028 ], [ 103.735282897949219, 1.299965977668762 ], [ 103.734786987304744, 1.299867987632808 ], [ 103.734024047851619, 1.299847006797791 ], [ 103.733230590820369, 1.300068020820675 ], [ 103.73270416259777, 1.300168037414608 ], [ 103.732223510742188, 1.300050020217895 ], [ 103.731590270996207, 1.300035953521785 ], [ 103.730987548828239, 1.300168037414608 ], [ 103.730552673339886, 1.300487995147819 ], [ 103.730186462402386, 1.300845026969853 ], [ 103.729881286621037, 1.301273941993713 ], [ 103.729675292968864, 1.30186402797699 ], [ 103.729454040527457, 1.302515983581543 ], [ 103.729309082031193, 1.303200006485099 ], [ 103.729164123535142, 1.303609967231864 ], [ 103.729446411132869, 1.303887963294983 ], [ 103.729164123535142, 1.304165959358329 ], [ 103.729164123535142, 1.304721951484794 ], [ 103.727500915527401, 1.306388020515442 ], [ 103.727500915527401, 1.306944012641907 ], [ 103.727218627929616, 1.307222008705253 ], [ 103.727218627929616, 1.309723019599971 ], [ 103.727149963378949, 1.310282945632991 ], [ 103.727149963378949, 1.310770988464412 ], [ 103.727355957031349, 1.311465978622437 ], [ 103.727706909179744, 1.311954021453801 ], [ 103.728256225585994, 1.31292903423315 ], [ 103.728332519531364, 1.313333034515438 ], [ 103.728332519531364, 1.313611030578556 ], [ 103.729164123535142, 1.314445018768367 ], [ 103.729164123535142, 1.314723014831543 ], [ 103.729721069335923, 1.315276980400029 ], [ 103.729721069335923, 1.315554976463375 ], [ 103.730003356933651, 1.31583297252655 ], [ 103.730003356933651, 1.31611096858984 ], [ 103.730552673339886, 1.316666960716304 ], [ 103.730552673339886, 1.31694495677948 ], [ 103.731666564941406, 1.318333029746952 ], [ 103.731941223144645, 1.318611025810298 ], [ 103.732223510742188, 1.318889021873417 ], [ 103.732223510742188, 1.319445013999939 ], [ 103.732498168945369, 1.319720983505306 ], [ 103.732498168945369, 1.320276975631771 ], [ 103.732780456542955, 1.320554971694889 ], [ 103.732780456542955, 1.321668028831482 ], [ 103.732986450195312, 1.322013974189758 ], [ 103.732498168945369, 1.322499036789054 ], [ 103.731941223144645, 1.322499036789054 ], [ 103.731666564941406, 1.322499036789054 ], [ 103.731391906738395, 1.322221040725765 ], [ 103.731391906738395, 1.321943044662589 ], [ 103.731109619140668, 1.321668028831482 ], [ 103.731109619140668, 1.321110963821411 ], [ 103.730552673339886, 1.320554971694889 ], [ 103.730552673339886, 1.320276975631771 ], [ 103.730278015136662, 1.319998979568425 ], [ 103.730278015136662, 1.319720983505306 ], [ 103.730003356933651, 1.319445013999939 ], [ 103.730003356933651, 1.318889021873417 ], [ 103.729721069335923, 1.318611025810298 ], [ 103.729721069335923, 1.318333029746952 ], [ 103.729446411132869, 1.318055033683834 ], [ 103.729164123535142, 1.317916035652274 ], [ 103.728469848632869, 1.317222952842769 ], [ 103.728332519531364, 1.31694495677948 ], [ 103.728057861328182, 1.316666960716304 ], [ 103.728057861328182, 1.316388964653015 ], [ 103.727775573730582, 1.31611096858984 ], [ 103.727775573730582, 1.315554976463375 ], [ 103.727500915527401, 1.315276980400029 ], [ 103.727500915527401, 1.315001010894832 ], [ 103.727218627929616, 1.314723014831543 ], [ 103.727165222168082, 1.314658999443168 ], [ 103.726943969726619, 1.314393043518123 ], [ 103.726593017578239, 1.313905000686759 ], [ 103.72618103027348, 1.313138961792049 ], [ 103.725906372070312, 1.312651038169975 ], [ 103.725837707519645, 1.312023997306824 ], [ 103.725692749023381, 1.311398029327336 ], [ 103.725555419921875, 1.310978055000419 ], [ 103.725555419921875, 1.310351967811528 ], [ 103.725349426269531, 1.309795975685233 ], [ 103.725143432617188, 1.309447050094604 ], [ 103.724998474121094, 1.309165954589844 ], [ 103.724998474121094, 1.308609962463379 ], [ 103.724441528320355, 1.308056950569153 ], [ 103.724441528320355, 1.307778000831718 ], [ 103.724166870117131, 1.307500004768372 ], [ 103.724166870117131, 1.307222008705253 ], [ 103.723892211914119, 1.306944012641907 ], [ 103.723892211914119, 1.305834054946899 ], [ 103.724166870117131, 1.305556058883781 ], [ 103.724166870117131, 1.305277943611258 ], [ 103.724441528320355, 1.304999947547969 ], [ 103.724723815918082, 1.304999947547969 ], [ 103.724998474121094, 1.304721951484794 ], [ 103.725555419921875, 1.304721951484794 ], [ 103.725830078125114, 1.304443955421505 ], [ 103.726028442382926, 1.304222941398734 ], [ 103.726264953613224, 1.303846955299434 ], [ 103.726455688476506, 1.303380012512264 ], [ 103.726676940917969, 1.302914977073613 ], [ 103.726898193359375, 1.302464008331299 ], [ 103.726943969726619, 1.301980018615779 ], [ 103.726936340332074, 1.301558971404972 ], [ 103.72686767578125, 1.301233053207511 ], [ 103.726676940917969, 1.301020979881286 ], [ 103.726402282714957, 1.300869941711426 ], [ 103.726043701171974, 1.300889015197868 ], [ 103.725662231445426, 1.301110029220581 ], [ 103.725204467773494, 1.301385045051688 ], [ 103.724670410156307, 1.301666021347046 ], [ 103.724105834960994, 1.301944017410392 ], [ 103.723571777343864, 1.302214980125427 ], [ 103.723091125488281, 1.30246102809906 ], [ 103.722717285156293, 1.302713990211487 ], [ 103.722396850586051, 1.302901029586906 ], [ 103.722160339355511, 1.303112983703556 ], [ 103.721939086914062, 1.303295016288871 ], [ 103.721664428711051, 1.303333997726497 ], [ 103.721389770507869, 1.303333997726497 ], [ 103.721107482910085, 1.303611993789787 ], [ 103.720558166503892, 1.303611993789787 ], [ 103.720275878906307, 1.303889989852962 ], [ 103.719444274902344, 1.304721951484794 ], [ 103.719444274902344, 1.304999947547969 ], [ 103.718330383300824, 1.306112051010245 ], [ 103.717781066894588, 1.306112051010245 ], [ 103.717498779296818, 1.305834054946899 ], [ 103.717224121093807, 1.305834054946899 ], [ 103.71694183349608, 1.305556058883781 ], [ 103.71694183349608, 1.305277943611258 ], [ 103.717498779296818, 1.304721951484794 ], [ 103.717498779296818, 1.304443955421505 ], [ 103.717781066894588, 1.304165959358329 ], [ 103.718055725097599, 1.304165959358329 ], [ 103.720832824707088, 1.30139005184185 ], [ 103.720558166503892, 1.30111205577856 ], [ 103.720558166503892, 1.300833940506038 ], [ 103.720001220703125, 1.300277948379573 ], [ 103.720001220703125, 1.299721956253109 ], [ 103.719169616699332, 1.29888999462122 ], [ 103.718887329101562, 1.29888999462122 ], [ 103.718612670898551, 1.298611998558101 ], [ 103.718330383300824, 1.29888999462122 ], [ 103.718055725097599, 1.29888999462122 ], [ 103.717781066894588, 1.299167990684566 ], [ 103.717224121093807, 1.299165964126644 ], [ 103.716392517089844, 1.299999952316398 ], [ 103.716110229492301, 1.299999952316398 ], [ 103.715835571289062, 1.300277948379573 ], [ 103.713607788085994, 1.300277948379573 ], [ 103.713333129882812, 1.300555944442692 ], [ 103.713058471679801, 1.300555944442692 ], [ 103.712776184082031, 1.300833940506038 ], [ 103.71250152587902, 1.300833940506038 ], [ 103.71221923828125, 1.30111205577856 ], [ 103.71221923828125, 1.30139005184185 ], [ 103.711944580078239, 1.301666021347046 ], [ 103.711944580078239, 1.302222013473511 ], [ 103.711669921875057, 1.302500009536857 ], [ 103.711669921875057, 1.303887963294983 ], [ 103.711944580078239, 1.304165959358329 ], [ 103.711669921875057, 1.304443955421505 ], [ 103.711669921875057, 1.305834054946899 ], [ 103.710830688476548, 1.306666016578788 ], [ 103.710556030273494, 1.306388020515442 ], [ 103.710281372070312, 1.306390047073421 ], [ 103.70999908447277, 1.306112051010245 ], [ 103.709724426269531, 1.306112051010245 ], [ 103.709442138671989, 1.305834054946899 ], [ 103.709442138671989, 1.305277943611258 ], [ 103.70916748046875, 1.304999947547969 ], [ 103.70916748046875, 1.303056001663322 ], [ 103.709442138671989, 1.302778005600032 ], [ 103.709442138671989, 1.302222013473511 ], [ 103.708610534668026, 1.30139005184185 ], [ 103.708053588867244, 1.30139005184185 ], [ 103.707778930664062, 1.30111205577856 ], [ 103.707496643066463, 1.30111205577856 ], [ 103.707221984863281, 1.300833940506038 ], [ 103.70694732666027, 1.300833940506038 ], [ 103.706542968750057, 1.300869941711426 ], [ 103.706069946289062, 1.301018953323364 ], [ 103.705635070800895, 1.301136970520076 ], [ 103.705307006835938, 1.301331043243522 ], [ 103.704971313476562, 1.301385045051688 ], [ 103.704719543456974, 1.30139005184185 ], [ 103.704170227050781, 1.30139005184185 ], [ 103.703887939453182, 1.30111205577856 ], [ 103.703330993652457, 1.30111205577856 ], [ 103.703056335449219, 1.30139005184185 ], [ 103.702774047851676, 1.30139005184185 ], [ 103.701942443847713, 1.302222013473511 ], [ 103.701942443847713, 1.302500009536857 ], [ 103.701667785644474, 1.302778005600032 ], [ 103.701667785644474, 1.303056001663322 ], [ 103.700836181640668, 1.303889989852962 ], [ 103.700553894042969, 1.303889989852962 ], [ 103.700279235839957, 1.303611993789787 ], [ 103.699996948242188, 1.303611993789787 ], [ 103.699722290039176, 1.303333997726497 ], [ 103.699996948242188, 1.303056001663322 ], [ 103.699996948242188, 1.301666021347046 ], [ 103.699447631835994, 1.30111205577856 ], [ 103.699447631835994, 1.300277948379573 ], [ 103.699165344238395, 1.299999952316398 ], [ 103.699165344238395, 1.299721956253109 ], [ 103.698890686035213, 1.299443960189933 ], [ 103.698333740234432, 1.299443960189933 ], [ 103.69805908203125, 1.299167990684566 ], [ 103.697776794433651, 1.299167990684566 ], [ 103.697219848632926, 1.298611998558101 ], [ 103.695831298828182, 1.298611998558101 ], [ 103.694999694824219, 1.299443960189933 ], [ 103.694999694824219, 1.302778005600032 ], [ 103.695274353027401, 1.303056001663322 ], [ 103.695274353027401, 1.303333997726497 ], [ 103.694725036621136, 1.303889989852962 ], [ 103.693885803222656, 1.303056001663322 ], [ 103.693885803222656, 1.302778005600032 ], [ 103.693611145019645, 1.302500009536857 ], [ 103.693611145019645, 1.301666021347046 ], [ 103.693885803222656, 1.30139005184185 ], [ 103.693885803222656, 1.30111205577856 ], [ 103.694168090820426, 1.300833940506038 ], [ 103.694168090820426, 1.299721956253109 ], [ 103.692222595214901, 1.299721956253109 ], [ 103.691947937011719, 1.299443960189933 ], [ 103.691665649414119, 1.299443960189933 ], [ 103.691299438476619, 1.299200057983398 ], [ 103.690940856933707, 1.29902005195629 ], [ 103.690521240234432, 1.298980951309261 ], [ 103.690155029296932, 1.299077033996695 ], [ 103.689910888671932, 1.299137949943656 ], [ 103.689231872558707, 1.29912900924694 ], [ 103.688621520996151, 1.299044966697636 ], [ 103.688316345214773, 1.299190998077336 ], [ 103.688056945800838, 1.299386978149528 ], [ 103.687721252441506, 1.299414038658199 ], [ 103.687385559082031, 1.299301981925964 ], [ 103.687088012695355, 1.299118041992244 ], [ 103.686729431152443, 1.2989759445191 ], [ 103.685989379882926, 1.298974037170524 ], [ 103.685279846191406, 1.29888999462122 ], [ 103.684997558593793, 1.299167990684566 ], [ 103.683334350586051, 1.299167990684566 ], [ 103.683395385742173, 1.299337029457035 ], [ 103.683677673339957, 1.299962997436523 ], [ 103.683395385742173, 1.300518989563045 ], [ 103.683395385742173, 1.301146030425968 ], [ 103.683120727539176, 1.301566004753113 ], [ 103.683120727539176, 1.302680015564022 ], [ 103.6829833984375, 1.303585052490291 ], [ 103.682426452636719, 1.304072976112366 ], [ 103.681808471679801, 1.304420948028678 ], [ 103.681808471679801, 1.30379498004919 ], [ 103.682083129882798, 1.303236007690487 ], [ 103.682151794433707, 1.302399992942924 ], [ 103.681877136230469, 1.301772952079773 ], [ 103.682289123535199, 1.301007032394409 ], [ 103.682289123535199, 1.2998930215835 ], [ 103.682220458984375, 1.298334002494925 ], [ 103.68111419677733, 1.297222018241996 ], [ 103.680831909179801, 1.297222018241996 ], [ 103.680557250976548, 1.297073006630058 ], [ 103.680198669433651, 1.296936988830566 ], [ 103.679809570312557, 1.296784043312073 ], [ 103.679275512695355, 1.296694993972778 ], [ 103.678756713867301, 1.296687960624695 ], [ 103.678421020507812, 1.296743035316524 ], [ 103.678153991699332, 1.296851992607174 ], [ 103.677825927734318, 1.297003030777034 ], [ 103.677459716796861, 1.297287940979118 ], [ 103.677154541015682, 1.297737002372742 ], [ 103.676818847656364, 1.298181056976318 ], [ 103.676506042480469, 1.298583984375114 ], [ 103.676155090332031, 1.298915028572139 ], [ 103.675796508789119, 1.299203991889954 ], [ 103.675392150878892, 1.299386978149528 ], [ 103.675079345703168, 1.299636960029716 ], [ 103.674812316894517, 1.299906015396118 ], [ 103.674591064453125, 1.300219058990535 ], [ 103.674407958984375, 1.300614953041077 ], [ 103.674270629882869, 1.301031947135982 ], [ 103.674079895019588, 1.301355957985038 ], [ 103.673820495605412, 1.3016020059585 ], [ 103.673492431640625, 1.301789045333976 ], [ 103.67314147949223, 1.302029967308101 ], [ 103.672836303711051, 1.30245399475109 ], [ 103.672531127929673, 1.303012967109794 ], [ 103.672348022460938, 1.303585052490291 ], [ 103.672538757324219, 1.304025053977966 ], [ 103.672698974609375, 1.30438494682312 ], [ 103.672660827636662, 1.304756045341605 ], [ 103.672576904296932, 1.305163979530448 ], [ 103.672363281250057, 1.30545103549963 ], [ 103.672180175781307, 1.305701971054134 ], [ 103.671943664550781, 1.305817961692924 ], [ 103.671646118164119, 1.305834054946899 ], [ 103.671340942382756, 1.305814027786369 ], [ 103.671112060546989, 1.305834054946899 ], [ 103.671112060546989, 1.305556058883781 ], [ 103.670555114746207, 1.304999947547969 ], [ 103.670555114746207, 1.304721951484794 ], [ 103.670280456543011, 1.304443955421505 ], [ 103.670280456543011, 1.303609967231864 ], [ 103.669998168945256, 1.303333997726497 ], [ 103.669998168945256, 1.303056001663322 ], [ 103.669998168945256, 1.302587032318172 ], [ 103.669784545898551, 1.302327036857662 ], [ 103.66972351074223, 1.302068948745728 ], [ 103.669715881347713, 1.301805019378662 ], [ 103.669746398925838, 1.301535964012203 ], [ 103.669860839843736, 1.301269054412898 ], [ 103.670066833496094, 1.301002979278508 ], [ 103.670150756836051, 1.300730943679866 ], [ 103.67024993896483, 1.300477981567439 ], [ 103.670539855957145, 1.300212025642452 ], [ 103.671081542968807, 1.299934029579276 ], [ 103.671676635742301, 1.29964005947113 ], [ 103.672111511230469, 1.299126982688961 ], [ 103.672264099121207, 1.298504948616028 ], [ 103.672477722167898, 1.297994017601013 ], [ 103.672775268554744, 1.297500014305172 ], [ 103.672775268554744, 1.297222018241996 ], [ 103.673057556152273, 1.296942949295044 ], [ 103.673332214355526, 1.296942949295044 ], [ 103.673614501953068, 1.296664953231868 ], [ 103.673889160156307, 1.296664953231868 ], [ 103.675277709960994, 1.295276999473572 ], [ 103.675277709960994, 1.294999003410396 ], [ 103.675552368164062, 1.294721007347107 ], [ 103.675552368164062, 1.293055057525635 ], [ 103.67472076416027, 1.29222297668457 ], [ 103.673889160156307, 1.29222297668457 ], [ 103.673614501953068, 1.292498946189937 ], [ 103.671669006347756, 1.292498946189937 ], [ 103.67138671875, 1.29222297668457 ], [ 103.671112060546989, 1.29222297668457 ], [ 103.670829772949205, 1.291944980621452 ], [ 103.670829772949205, 1.291666984558105 ], [ 103.670555114746207, 1.291388988494987 ], [ 103.670555114746207, 1.291110992431641 ], [ 103.66972351074223, 1.290277004242 ], [ 103.669296264648438, 1.290112972259521 ], [ 103.668914794921861, 1.289829969406185 ], [ 103.668632507324332, 1.28951799869543 ], [ 103.668449401855582, 1.289172053337211 ], [ 103.668266296386832, 1.28883004188549 ], [ 103.668029785156307, 1.288488030433655 ], [ 103.667778015136719, 1.288054943084717 ], [ 103.667503356933707, 1.288054943084717 ], [ 103.667221069335994, 1.287776947021598 ], [ 103.666946411132741, 1.287776947021598 ], [ 103.666389465332031, 1.288333058357239 ], [ 103.666114807128963, 1.288333058357239 ], [ 103.665275573730469, 1.289167046546993 ], [ 103.665000915527457, 1.289167046546993 ], [ 103.664718627929673, 1.289445042610168 ], [ 103.664718627929673, 1.289723038673515 ], [ 103.664443969726676, 1.289999008178711 ], [ 103.664443969726676, 1.290277004242 ], [ 103.663887023925724, 1.290832996368465 ], [ 103.663887023925724, 1.291110992431641 ], [ 103.663055419921932, 1.291944980621452 ], [ 103.66278076171875, 1.291666984558105 ], [ 103.662498474121151, 1.291666984558105 ], [ 103.662223815917955, 1.291388988494987 ], [ 103.660552978515682, 1.291388988494987 ], [ 103.659721374511719, 1.29222297668457 ], [ 103.659721374511719, 1.292498946189937 ], [ 103.660003662109432, 1.292776942253113 ], [ 103.659332275390625, 1.293444991111812 ], [ 103.659164428710938, 1.2936110496521 ], [ 103.658607482910142, 1.293055057525635 ], [ 103.658058166503949, 1.293055057525635 ], [ 103.657501220703168, 1.2936110496521 ], [ 103.657501220703168, 1.293889045715389 ], [ 103.657775878906364, 1.294167041778564 ], [ 103.657775878906364, 1.29444599151617 ], [ 103.658058166503949, 1.294721007347107 ], [ 103.658058166503949, 1.294999003410396 ], [ 103.658607482910142, 1.295554995536861 ], [ 103.658058166503949, 1.296111941337642 ], [ 103.657501220703168, 1.296111941337642 ], [ 103.656669616699219, 1.295276999473572 ], [ 103.656387329101619, 1.295276999473572 ], [ 103.656112670898423, 1.294999003410396 ], [ 103.655830383300895, 1.295276999473572 ], [ 103.655555725097642, 1.295276999473572 ], [ 103.654441833496151, 1.296390056610164 ], [ 103.654441833496151, 1.296664953231868 ], [ 103.654167175292898, 1.296942949295044 ], [ 103.654167175292898, 1.297222018241996 ], [ 103.653610229492188, 1.297778010368461 ], [ 103.653335571289119, 1.297778010368461 ], [ 103.650833129882869, 1.300277948379573 ], [ 103.650833129882869, 1.300555944442692 ], [ 103.648612976074332, 1.302778005600032 ], [ 103.648330688476619, 1.302778005600032 ], [ 103.645553588867301, 1.305556058883781 ], [ 103.645553588867301, 1.305834054946899 ], [ 103.644447326660099, 1.306944012641907 ], [ 103.644165039062557, 1.306944012641907 ], [ 103.644165039062557, 1.307778000831718 ], [ 103.644447326660099, 1.308056950569153 ], [ 103.644447326660099, 1.30833196640026 ], [ 103.645278930664105, 1.309165954589844 ], [ 103.645553588867301, 1.309165954589844 ], [ 103.645835876464844, 1.309445023536682 ], [ 103.647499084472599, 1.309445023536682 ], [ 103.647781372070369, 1.309723019599971 ], [ 103.647781372070369, 1.310001015663147 ], [ 103.648056030273366, 1.310279011726436 ], [ 103.648056030273366, 1.310554027557373 ], [ 103.648330688476619, 1.310832977294978 ], [ 103.648056030273366, 1.311110973358154 ], [ 103.648056030273366, 1.311666965484619 ], [ 103.646942138671875, 1.312777042388973 ], [ 103.646667480468807, 1.312777042388973 ], [ 103.646507263183707, 1.312618970870972 ], [ 103.646385192871094, 1.31250095367443 ], [ 103.646110534668082, 1.31250095367443 ], [ 103.645835876464844, 1.312777042388973 ], [ 103.644721984863338, 1.312777042388973 ], [ 103.644737243652401, 1.310696005821342 ], [ 103.644737243652401, 1.310176014900264 ], [ 103.644393920898551, 1.309617996215877 ], [ 103.643287658691349, 1.308364033699092 ], [ 103.642936706542969, 1.305508017540092 ], [ 103.638923645019517, 1.304465055465698 ], [ 103.638458251953168, 1.305899977684078 ], [ 103.638145446777287, 1.306857943534908 ], [ 103.637222290039048, 1.306390047073421 ], [ 103.636947631836051, 1.306112051010245 ], [ 103.636947631836051, 1.305834054946899 ], [ 103.636665344238281, 1.305556058883781 ], [ 103.636665344238281, 1.305277943611258 ], [ 103.63639068603527, 1.304999947547969 ], [ 103.63639068603527, 1.303611993789787 ], [ 103.6361083984375, 1.303333997726497 ], [ 103.635902404785156, 1.303109049797058 ], [ 103.635635375976676, 1.302850961685294 ], [ 103.635536193847656, 1.302526950836182 ], [ 103.635406494140682, 1.302219986915588 ], [ 103.635292053222599, 1.301903009414616 ], [ 103.635215759277401, 1.301542997360343 ], [ 103.635055541992301, 1.301167011260986 ], [ 103.635009765625057, 1.300711035728455 ], [ 103.635032653808651, 1.300194025039616 ], [ 103.635086059570256, 1.299664974212646 ], [ 103.634735107421875, 1.299167990684566 ], [ 103.634353637695312, 1.298750996589661 ], [ 103.634017944335938, 1.298403978347778 ], [ 103.633811950683594, 1.29803299903881 ], [ 103.633857727050838, 1.297667980194149 ], [ 103.634094238281364, 1.297376036643925 ], [ 103.634468078613381, 1.297178030013981 ], [ 103.634918212890611, 1.296949982643127 ], [ 103.635276794433523, 1.296612977981624 ], [ 103.635467529296804, 1.296267032623404 ], [ 103.635833740234489, 1.296072959900016 ], [ 103.636230468749943, 1.295869946479911 ], [ 103.636642456054673, 1.295672059059143 ], [ 103.637077331543026, 1.295447945594788 ], [ 103.637573242187443, 1.295230031013489 ], [ 103.638130187988395, 1.295045018196163 ], [ 103.638778686523438, 1.294963002205009 ], [ 103.639266967773551, 1.294849038124198 ], [ 103.63962554931652, 1.294636964797974 ], [ 103.639930725097656, 1.294239997863826 ], [ 103.640319824218807, 1.293779969215393 ], [ 103.640762329101676, 1.293411016464177 ], [ 103.641265869140611, 1.293077945709229 ], [ 103.641830444335938, 1.29287505149847 ], [ 103.642349243164006, 1.292677044868526 ], [ 103.642799377441463, 1.292503952980155 ], [ 103.643218994140682, 1.29239904880518 ], [ 103.643867492675724, 1.292202949524039 ], [ 103.644279479980455, 1.291923046112117 ], [ 103.645317077636776, 1.291643977165336 ], [ 103.646148681640568, 1.291296005249137 ], [ 103.646636962890682, 1.291223049163875 ], [ 103.646919250488224, 1.291074991226253 ], [ 103.647323608398438, 1.290971994400081 ], [ 103.647811889648494, 1.290552973747197 ], [ 103.648223876953239, 1.29000997543335 ], [ 103.648460388183594, 1.289553999900818 ], [ 103.648399353027457, 1.289165019989071 ], [ 103.648323059082017, 1.288707017898616 ], [ 103.648178100585994, 1.288210034370479 ], [ 103.648017883300895, 1.287781000137443 ], [ 103.647842407226676, 1.287361979484615 ], [ 103.647727966308594, 1.286932945251579 ], [ 103.647506713867173, 1.286545991897583 ], [ 103.647270202636818, 1.286175012588444 ], [ 103.646965026855469, 1.285902976989803 ], [ 103.646530151367116, 1.285830020904541 ], [ 103.646095275878949, 1.285796046257076 ], [ 103.645606994628906, 1.285738945007324 ], [ 103.644897460937557, 1.285912036895865 ], [ 103.643829345703239, 1.28585505485546 ], [ 103.643066406250114, 1.28599405288702 ], [ 103.642242431640682, 1.28599405288702 ], [ 103.641685485839886, 1.285923957824821 ], [ 103.640022277832145, 1.285923957824821 ], [ 103.639678955078068, 1.286134004592896 ], [ 103.637809753417969, 1.286134004592896 ], [ 103.636772155761832, 1.286203980445919 ], [ 103.63615417480473, 1.286273002624625 ], [ 103.635391235351619, 1.286342978477478 ], [ 103.634216308593807, 1.286412000656242 ], [ 103.632896423339901, 1.286481976509037 ], [ 103.632621765136662, 1.286692023277283 ], [ 103.631164550781293, 1.286692023277283 ], [ 103.629508972168082, 1.286898970603943 ], [ 103.629074096679744, 1.286939978599548 ], [ 103.628639221191406, 1.286947011947689 ], [ 103.628196716308707, 1.286944985389709 ], [ 103.627746582031307, 1.286944985389709 ], [ 103.627220153808707, 1.286944985389709 ], [ 103.626113891601676, 1.286944985389709 ], [ 103.625831604003963, 1.286666989326591 ], [ 103.625274658203182, 1.286666989326591 ], [ 103.625, 1.286944985389709 ], [ 103.624168395996207, 1.286944985389709 ], [ 103.623886108398438, 1.287222981453056 ], [ 103.623336791992188, 1.287222981453056 ], [ 103.622718811035142, 1.287225008010978 ], [ 103.622024536132869, 1.287266016006583 ], [ 103.621505737304801, 1.287490010261536 ], [ 103.621223449707031, 1.287893056869507 ], [ 103.620834350585938, 1.288333058357239 ], [ 103.618331909179673, 1.290832996368465 ], [ 103.618057250976619, 1.290832996368465 ], [ 103.616943359375114, 1.291944980621452 ], [ 103.616943359375114, 1.29222297668457 ], [ 103.616668701171932, 1.292498946189937 ], [ 103.616668701171932, 1.293333053588924 ], [ 103.616943359375114, 1.2936110496521 ], [ 103.616943359375114, 1.294721007347107 ], [ 103.616668701171932, 1.294999003410396 ], [ 103.616668701171932, 1.295554995536861 ], [ 103.616943359375114, 1.296460032463187 ], [ 103.618888854980412, 1.298334002494925 ], [ 103.618980407714901, 1.298624992370719 ], [ 103.619194030761776, 1.299072027206535 ], [ 103.619453430175724, 1.299525976181087 ], [ 103.619720458984432, 1.299988031387443 ], [ 103.619995117187614, 1.300467014312801 ], [ 103.620254516601562, 1.300955057144165 ], [ 103.620468139648438, 1.301452040672302 ], [ 103.620597839355412, 1.301947951316947 ], [ 103.620788574218693, 1.302363038063049 ], [ 103.620841979980469, 1.302783012390194 ], [ 103.620841979980469, 1.303190946579036 ], [ 103.620834350585938, 1.303617000579834 ], [ 103.620834350585938, 1.304101943969783 ], [ 103.620864868164119, 1.304658055305595 ], [ 103.621017456054673, 1.305235028266907 ], [ 103.621269226074276, 1.30576598644268 ], [ 103.621589660644531, 1.306228995323124 ], [ 103.621856689453182, 1.306735038757324 ], [ 103.622062683105511, 1.307297945022583 ], [ 103.622314453124943, 1.307767033577079 ], [ 103.622489929199332, 1.308213949203548 ], [ 103.622634887695369, 1.30872201919567 ], [ 103.622795104980511, 1.30919194221508 ], [ 103.622947692871094, 1.309679031372184 ], [ 103.623161315918011, 1.310130953788814 ], [ 103.623321533203111, 1.310601949691886 ], [ 103.623451232910099, 1.31109702587122 ], [ 103.623626708984489, 1.311589002609367 ], [ 103.623878479003906, 1.312036037445182 ], [ 103.624145507812557, 1.312471032142639 ], [ 103.624435424804688, 1.312880992889461 ], [ 103.624702453613338, 1.313320994377136 ], [ 103.624908447265682, 1.313827037811279 ], [ 103.625038146972656, 1.314419984817448 ], [ 103.625274658203182, 1.314946055412349 ], [ 103.625503540039176, 1.315454959869442 ], [ 103.625602722167955, 1.316017985344047 ], [ 103.625808715820312, 1.316526055335999 ], [ 103.625961303710938, 1.317070960998592 ], [ 103.626136779785099, 1.317607998848018 ], [ 103.626388549804688, 1.318114042282161 ], [ 103.626663208007926, 1.318626999855155 ], [ 103.626930236816406, 1.319162964820862 ], [ 103.627166748046932, 1.319725990295467 ], [ 103.627365112304744, 1.320291042327824 ], [ 103.627532958984375, 1.320827007293758 ], [ 103.627777099609432, 1.321254968643302 ], [ 103.628005981445426, 1.321648955345267 ], [ 103.628120422363338, 1.322070956230164 ], [ 103.628273010253906, 1.322410941124076 ], [ 103.628250122070298, 1.322823047637996 ], [ 103.628059387207031, 1.323384046554622 ], [ 103.627937316894574, 1.323979020118713 ], [ 103.628227233886662, 1.32459199428564 ], [ 103.628631591796875, 1.325042963027954 ], [ 103.628906250000043, 1.325515031814689 ], [ 103.629173278808537, 1.325942993164062 ], [ 103.629447937011776, 1.326364994049186 ], [ 103.629722595214957, 1.326791048049927 ], [ 103.629966735839844, 1.327232956886405 ], [ 103.630119323730568, 1.327736973762626 ], [ 103.630302429199332, 1.32820200920105 ], [ 103.630538940429688, 1.328619003295955 ], [ 103.630729675292969, 1.32905900478363 ], [ 103.630912780761719, 1.329530954361019 ], [ 103.631095886230412, 1.330042958259696 ], [ 103.631240844726662, 1.330618023872432 ], [ 103.631347656249986, 1.331298947334403 ], [ 103.631591796875057, 1.331905007362309 ], [ 103.631698608398438, 1.332434058189449 ], [ 103.631874084472656, 1.332895040512199 ], [ 103.631935119628963, 1.333369016647339 ], [ 103.631950378418026, 1.333845019340572 ], [ 103.631988525390739, 1.33432400226593 ], [ 103.63217926025402, 1.334776997566223 ], [ 103.632286071777344, 1.335307955741939 ], [ 103.632484436035156, 1.335821032524052 ], [ 103.632675170898438, 1.336369991302604 ], [ 103.632904052734432, 1.336897015571594 ], [ 103.633163452148551, 1.337350010871887 ], [ 103.633369445800724, 1.33778798580164 ], [ 103.633598327636719, 1.338157057762203 ], [ 103.6337890625, 1.338533043861332 ], [ 103.633911132812614, 1.338963985443172 ], [ 103.634078979492244, 1.339390039443913 ], [ 103.634162902832031, 1.340000987052861 ], [ 103.634162902832031, 1.341110944747868 ], [ 103.632774353027457, 1.342499017715568 ], [ 103.632774353027457, 1.343333005905208 ], [ 103.633331298828239, 1.343888998031673 ], [ 103.633331298828239, 1.344166994094962 ], [ 103.633613586425781, 1.344444990158138 ], [ 103.633613586425781, 1.344722986221257 ], [ 103.633888244628963, 1.34499895572668 ], [ 103.633888244628963, 1.34527695178997 ], [ 103.634162902832031, 1.345554947853145 ], [ 103.634162902832031, 1.345832943916434 ], [ 103.634445190429744, 1.346111059188956 ], [ 103.634162902832031, 1.346389055252075 ], [ 103.634162902832031, 1.348333001136893 ], [ 103.633888244628963, 1.348610997200069 ], [ 103.633888244628963, 1.348889946937675 ], [ 103.633613586425781, 1.349167943000793 ], [ 103.633613586425781, 1.34972095489502 ], [ 103.633331298828239, 1.349998950958366 ], [ 103.633331298828239, 1.350278019905147 ], [ 103.633056640625, 1.350556015968323 ], [ 103.633056640625, 1.350834012031612 ], [ 103.633613586425781, 1.351390004158133 ], [ 103.635559082031307, 1.351390004158133 ], [ 103.635696411132812, 1.351529002189693 ], [ 103.635833740234489, 1.351668000221252 ], [ 103.63639068603527, 1.351668000221252 ], [ 103.636665344238281, 1.351943969726619 ], [ 103.636947631836051, 1.351943969726619 ], [ 103.637222290039048, 1.352221965789795 ], [ 103.637496948242244, 1.352221965789795 ], [ 103.638336181640568, 1.351390004158133 ], [ 103.638336181640568, 1.351112008094788 ], [ 103.638610839843793, 1.350834012031612 ], [ 103.638336181640568, 1.350556015968323 ], [ 103.638336181640568, 1.34972095489502 ], [ 103.63944244384777, 1.348610997200069 ], [ 103.639999389648551, 1.348610997200069 ], [ 103.640472412109361, 1.34823298454296 ], [ 103.640953063964957, 1.347838997840825 ], [ 103.641441345214844, 1.347507953643799 ], [ 103.641914367675895, 1.347221016883964 ], [ 103.642349243164006, 1.346948027610836 ], [ 103.642768859863281, 1.346694946289062 ], [ 103.643188476562557, 1.34649395942688 ], [ 103.643478393554631, 1.346220970153922 ] ] ], [ [ [ 103.864997863769517, 1.4375 ], [ 103.864440917968807, 1.4375 ], [ 103.864440917968807, 1.437777996063346 ], [ 103.863609313964844, 1.438609957695007 ], [ 103.863609313964844, 1.439165949821472 ], [ 103.862777709961051, 1.440000057220459 ], [ 103.862220764160256, 1.440278053283748 ], [ 103.862220764160256, 1.441112041473389 ], [ 103.859725952148537, 1.443609952926693 ], [ 103.860000610351562, 1.443887948989868 ], [ 103.860000610351562, 1.446110963821468 ], [ 103.859169006347756, 1.446944952011052 ], [ 103.859169006347756, 1.447777032852287 ], [ 103.85888671875, 1.448055028915405 ], [ 103.85888671875, 1.448333024978751 ], [ 103.856941223144531, 1.450276970863342 ], [ 103.858329772949276, 1.450276970863342 ], [ 103.859443664550781, 1.449723005294857 ], [ 103.859443664550781, 1.449167013168392 ], [ 103.862503051757798, 1.446110963821468 ], [ 103.862503051757798, 1.444723010063285 ], [ 103.865554809570312, 1.441666007041931 ], [ 103.865280151367287, 1.441388010978756 ], [ 103.865837097168068, 1.440834045410213 ], [ 103.865837097168068, 1.440556049346924 ], [ 103.866111755371094, 1.440278053283748 ], [ 103.866111755371094, 1.438055992126465 ], [ 103.864997863769517, 1.437777996063346 ], [ 103.864997863769517, 1.4375 ] ] ], [ [ [ 103.685371398925838, 1.433935046196041 ], [ 103.685089111328125, 1.433725953102226 ], [ 103.684745788574219, 1.433864951133841 ], [ 103.684402465820369, 1.433935046196041 ], [ 103.684188842773494, 1.43428194522852 ], [ 103.684188842773494, 1.434630990028381 ], [ 103.684471130371193, 1.434769988060111 ], [ 103.684974670410213, 1.434860944747982 ], [ 103.685302734375, 1.435191035270691 ], [ 103.685577392578182, 1.435191035270691 ], [ 103.685852050781236, 1.434978961944694 ], [ 103.685920715332088, 1.434630990028381 ], [ 103.685371398925838, 1.433935046196041 ] ] ], [ [ [ 104.058647155761776, 1.432044029235954 ], [ 104.058570861816406, 1.431797981262264 ], [ 104.059150695800781, 1.431838989257869 ], [ 104.059150695800781, 1.431519985198974 ], [ 104.059417724609432, 1.431560993194523 ], [ 104.059402465820369, 1.43126904964447 ], [ 104.059890747070312, 1.43126904964447 ], [ 104.060386657714957, 1.43123900890356 ], [ 104.061088562011776, 1.43126904964447 ], [ 104.061088562011776, 1.430752038955632 ], [ 104.061820983886719, 1.430731058120784 ], [ 104.061935424804801, 1.430672049522457 ], [ 104.063575744628963, 1.430672049522457 ], [ 104.065589904785085, 1.430672049522457 ], [ 104.069046020507798, 1.430050015449467 ], [ 104.071769714355526, 1.429993033409232 ], [ 104.073524475097713, 1.428632020950431 ], [ 104.076416015625114, 1.426337003707886 ], [ 104.079589843750057, 1.423900008201656 ], [ 104.080749511718807, 1.422737956047058 ], [ 104.083618164062557, 1.419335007667655 ], [ 104.085067749023438, 1.415212035179252 ], [ 104.084022521972713, 1.415171027183646 ], [ 104.083259582519588, 1.414754033088741 ], [ 104.083465576171989, 1.414196014404354 ], [ 104.083724975585938, 1.413836002349854 ], [ 104.083602905273494, 1.41375100612646 ], [ 104.08355712890625, 1.413486957550049 ], [ 104.083862304687614, 1.413503050804252 ], [ 104.083847045898537, 1.41320896148693 ], [ 104.08412933349608, 1.41320896148693 ], [ 104.084144592285156, 1.412958025932426 ], [ 104.084419250488395, 1.412917017936707 ], [ 104.084434509277457, 1.412402033805961 ], [ 104.084724426269531, 1.41237294673914 ], [ 104.084709167480455, 1.412094950676021 ], [ 104.084457397460881, 1.412107944488639 ], [ 104.084434509277457, 1.411803007125968 ], [ 104.084678649902344, 1.411816000938416 ], [ 104.084709167480455, 1.411244034767265 ], [ 104.085510253906307, 1.411273956298828 ], [ 104.085556030273551, 1.410437941551265 ], [ 104.085800170898381, 1.410437941551265 ], [ 104.085800170898381, 1.41014397144329 ], [ 104.085540771484432, 1.410130023956356 ], [ 104.085540771484432, 1.409909009933472 ], [ 104.085258483886719, 1.409878969192562 ], [ 104.085235595703054, 1.409309029579163 ], [ 104.08499908447277, 1.409322977066097 ], [ 104.084960937500057, 1.408781051635856 ], [ 104.084678649902344, 1.408781051635856 ], [ 104.084709167480455, 1.408514022827205 ], [ 104.083892822265568, 1.408499956130925 ], [ 104.083877563476676, 1.407930970192069 ], [ 104.083587646484432, 1.40794396400463 ], [ 104.083572387695312, 1.407649993896484 ], [ 104.083045959472713, 1.407652020454407 ], [ 104.083038330078182, 1.407379031181449 ], [ 104.083030700683651, 1.407107949256897 ], [ 104.08332061767571, 1.407107949256897 ], [ 104.083335876464844, 1.407399058342037 ], [ 104.083572387695312, 1.407385945320243 ], [ 104.083625793457088, 1.407153010368347 ], [ 104.083847045898537, 1.407109975814876 ], [ 104.083847045898537, 1.406802058219966 ], [ 104.083602905273494, 1.406818032264823 ], [ 104.083602905273494, 1.406551957130432 ], [ 104.083297729492301, 1.406538009643555 ], [ 104.083282470703239, 1.406008958816585 ], [ 104.083618164062557, 1.406008958816585 ], [ 104.083602905273494, 1.405158996582088 ], [ 104.083007812499986, 1.405145049095211 ], [ 104.083045959472713, 1.403779983520508 ], [ 104.083312988281193, 1.403794050216732 ], [ 104.083297729492301, 1.403516054153442 ], [ 104.083030700683651, 1.403501987457332 ], [ 104.083030700683651, 1.403069019317627 ], [ 104.083023071289119, 1.402956962585563 ], [ 104.082756042480412, 1.402930021286011 ], [ 104.082725524902457, 1.402109980583305 ], [ 104.083045959472713, 1.402109980583305 ], [ 104.083045959472713, 1.401551008224601 ], [ 104.082450866699276, 1.401538014411983 ], [ 104.082450866699276, 1.401286959648189 ], [ 104.082206726074219, 1.401245951652584 ], [ 104.082206726074219, 1.400159001350403 ], [ 104.082481384277386, 1.400145053863469 ], [ 104.082481384277386, 1.399613976478577 ], [ 104.082206726074219, 1.399600028991699 ], [ 104.082176208496037, 1.399350047111511 ], [ 104.081909179687557, 1.399350047111511 ], [ 104.081909179687557, 1.399072051048336 ], [ 104.081909179687557, 1.398597002029419 ], [ 104.081939697265739, 1.398236989975089 ], [ 104.082176208496037, 1.398251056671143 ], [ 104.082191467285142, 1.397943019866943 ], [ 104.081619262695312, 1.397943019866943 ], [ 104.081634521484375, 1.397693037986755 ], [ 104.081359863281364, 1.397678971290702 ], [ 104.081344604492244, 1.396564006805477 ], [ 104.081634521484375, 1.396564006805477 ], [ 104.081634521484375, 1.396286010742188 ], [ 104.081344604492244, 1.39627301692974 ], [ 104.081344604492244, 1.396021962165946 ], [ 104.081085205078125, 1.396005988121089 ], [ 104.081085205078125, 1.395742058754024 ], [ 104.080833435058537, 1.395727992057914 ], [ 104.080802917480582, 1.395158052444571 ], [ 104.0810546875, 1.395185947418156 ], [ 104.081069946289062, 1.394281029701233 ], [ 104.080818176269645, 1.394338011741638 ], [ 104.080802917480582, 1.393795013427791 ], [ 104.080513000488267, 1.393766045570374 ], [ 104.080543518066449, 1.392444014549312 ], [ 104.080291748046875, 1.392400026321525 ], [ 104.08023834228527, 1.392053961753959 ], [ 104.079978942871151, 1.392122030258179 ], [ 104.079986572265668, 1.391803026199455 ], [ 104.079727172851562, 1.391803026199455 ], [ 104.079696655273381, 1.391553044319096 ], [ 104.079406738281307, 1.39153695106512 ], [ 104.079437255859432, 1.391258955001945 ], [ 104.078590393066406, 1.391301989555473 ], [ 104.078552246093693, 1.391021966934204 ], [ 104.078025817871094, 1.391021966934204 ], [ 104.078041076660156, 1.390756964683646 ], [ 104.077751159668082, 1.390756964683646 ], [ 104.077751159668082, 1.391008019447326 ], [ 104.077468872070312, 1.390993952751217 ], [ 104.077468872070312, 1.390756964683646 ], [ 104.076637268066349, 1.390743970871085 ], [ 104.076637268066349, 1.390171051025447 ], [ 104.076904296875, 1.390171051025447 ], [ 104.076919555664119, 1.389893054962101 ], [ 104.076087951660156, 1.389893054962101 ], [ 104.076103210449205, 1.390102982521 ], [ 104.076087951660156, 1.390187025070304 ], [ 104.0755615234375, 1.390143990516776 ], [ 104.0755615234375, 1.390421986579895 ], [ 104.075256347656364, 1.390465974807739 ], [ 104.075271606445426, 1.390715956687927 ], [ 104.074165344238224, 1.39070296287548 ], [ 104.07413482666027, 1.390993952751217 ], [ 104.073875427246136, 1.391008019447326 ], [ 104.073875427246136, 1.391288042068595 ], [ 104.072502136230469, 1.391286015510616 ], [ 104.072486877441392, 1.391566038131714 ], [ 104.071357727050781, 1.391566038131714 ], [ 104.071365356445312, 1.391301989555473 ], [ 104.07023620605473, 1.391286015510616 ], [ 104.070259094238324, 1.390993952751217 ], [ 104.070022583007812, 1.390993952751217 ], [ 104.069992065429673, 1.390887022018546 ], [ 104.069953918457145, 1.390743970871085 ], [ 104.069717407226619, 1.390715956687927 ], [ 104.069664001464901, 1.390452027320862 ], [ 104.069152832031349, 1.390421986579895 ], [ 104.069122314453182, 1.389920949935913 ], [ 104.068878173828125, 1.389937043190116 ], [ 104.06884765625, 1.390171051025447 ], [ 104.068336486816463, 1.390171051025447 ], [ 104.068305969238281, 1.389893054962101 ], [ 104.067756652832088, 1.389879941940364 ], [ 104.067756652832088, 1.389615058898983 ], [ 104.067199707031307, 1.38962900638586 ], [ 104.067192077636776, 1.389323949813899 ], [ 104.066955566406236, 1.389336943626461 ], [ 104.066909790039006, 1.389615058898983 ], [ 104.066665649414105, 1.38962900638586 ], [ 104.066665649414105, 1.389351010322571 ], [ 104.066375732421861, 1.389323949813899 ], [ 104.066345214843679, 1.389073014259395 ], [ 104.065765380859304, 1.389029979705867 ], [ 104.065834045410156, 1.38877904415142 ], [ 104.065544128418082, 1.38877904415142 ], [ 104.065185546875114, 1.388792991638297 ], [ 104.064727783203168, 1.388792991638297 ], [ 104.064682006835938, 1.388501048088074 ], [ 104.064140319824276, 1.38848698139202 ], [ 104.064155578613338, 1.38824999332428 ], [ 104.062744140625, 1.388208985328674 ], [ 104.062759399414062, 1.387958049774227 ], [ 104.062202453613267, 1.387928962707576 ], [ 104.06219482421875, 1.387663960456905 ], [ 104.061904907226676, 1.387663960456905 ], [ 104.06192779541027, 1.387400031089783 ], [ 104.061653137207074, 1.387385964393729 ], [ 104.061653137207074, 1.387680053710881 ], [ 104.061378479003849, 1.387680053710881 ], [ 104.061363220214943, 1.387359023094234 ], [ 104.060791015625114, 1.387385964393729 ], [ 104.060791015625114, 1.386829972267265 ], [ 104.060012817382926, 1.386832952499503 ], [ 104.060005187988381, 1.386566042900199 ], [ 104.059165954589844, 1.386551976203918 ], [ 104.059181213378963, 1.386260986328182 ], [ 104.05859375, 1.386288046836853 ], [ 104.05859375, 1.385995984077454 ], [ 104.057975769042969, 1.385995984077454 ], [ 104.058059692382855, 1.385745048523006 ], [ 104.057449340820312, 1.385745048523006 ], [ 104.05747985839848, 1.385187029838562 ], [ 104.056961059570426, 1.385172963142509 ], [ 104.056907653808651, 1.384922981262321 ], [ 104.056655883789062, 1.384852051735038 ], [ 104.056655883789062, 1.384281992912292 ], [ 104.056396484375114, 1.384310007095451 ], [ 104.056381225586051, 1.383752942085323 ], [ 104.056106567382812, 1.383767008781376 ], [ 104.056091308593736, 1.383515954017753 ], [ 104.055549621582088, 1.383489012718258 ], [ 104.0555419921875, 1.382706999778861 ], [ 104.055274963378849, 1.382680058479366 ], [ 104.055259704589957, 1.382151007652396 ], [ 104.0555419921875, 1.382107973098869 ], [ 104.055549621582088, 1.381844043731803 ], [ 104.054420471191463, 1.381844043731803 ], [ 104.054420471191463, 1.38175201416027 ], [ 104.054428100585994, 1.381564974784851 ], [ 104.053863525390668, 1.381579041481075 ], [ 104.053894042968849, 1.381858944892997 ], [ 104.053604125976562, 1.381858944892997 ], [ 104.053596496582017, 1.381672978401184 ], [ 104.0535888671875, 1.381301045417729 ], [ 104.05332183837902, 1.381301045417729 ], [ 104.05332183837902, 1.381036996841488 ], [ 104.05192565917973, 1.381008982658329 ], [ 104.051940917968807, 1.380743026733512 ], [ 104.050262451171932, 1.380728960037288 ], [ 104.050277709961051, 1.381538033485526 ], [ 104.050018310546932, 1.381551980972404 ], [ 104.04998779296875, 1.381788969039974 ], [ 104.049751281738224, 1.38185703754425 ], [ 104.049751281738224, 1.382138013839778 ], [ 104.049423217773438, 1.382179021835384 ], [ 104.049446105957088, 1.382331013679561 ], [ 104.049171447753849, 1.382401943206844 ], [ 104.049186706542912, 1.382680058479366 ], [ 104.048843383789062, 1.382680058479366 ], [ 104.048896789550838, 1.382930994033813 ], [ 104.048606872558537, 1.382943987846431 ], [ 104.048622131347656, 1.383502960205135 ], [ 104.048324584960994, 1.383515954017753 ], [ 104.048339843750057, 1.38407301902771 ], [ 104.048049926757812, 1.38407301902771 ], [ 104.048049926757812, 1.384323000907841 ], [ 104.047760009765682, 1.384364008903617 ], [ 104.047760009765682, 1.384631037712097 ], [ 104.047195434570355, 1.384644985199031 ], [ 104.047195434570355, 1.384909033775443 ], [ 104.046928405761719, 1.384909033775443 ], [ 104.046928405761719, 1.385450959205627 ], [ 104.046684265136832, 1.38546705245983 ], [ 104.046653747558707, 1.386036992073059 ], [ 104.046943664550781, 1.386036992073059 ], [ 104.046928405761719, 1.386260986328182 ], [ 104.04666900634777, 1.3862739801408 ], [ 104.046623229980526, 1.386566042900199 ], [ 104.046127319335881, 1.386551976203918 ], [ 104.046089172363395, 1.386845946311951 ], [ 104.045532226562614, 1.386829972267265 ], [ 104.045547485351506, 1.387611985206661 ], [ 104.045562744140568, 1.388211011886654 ], [ 104.044456481933594, 1.388252019882202 ], [ 104.04443359375, 1.388795018196106 ], [ 104.044143676757869, 1.388795018196106 ], [ 104.044158935546918, 1.389073014259395 ], [ 104.043769836425838, 1.38908696174633 ], [ 104.043899536132812, 1.389881968498287 ], [ 104.043609619140724, 1.389922976493892 ], [ 104.043609619140724, 1.390117049217281 ], [ 104.043289184570298, 1.390174031257686 ], [ 104.043327331542969, 1.391037940979061 ], [ 104.042732238769531, 1.391023993492126 ], [ 104.042778015136776, 1.391301989555473 ], [ 104.042503356933523, 1.391301989555473 ], [ 104.042503356933523, 1.391553044319096 ], [ 104.042236328125057, 1.391579985618648 ], [ 104.04222106933598, 1.392125010490417 ], [ 104.041931152343693, 1.392138004303035 ], [ 104.041931152343693, 1.392403006553764 ], [ 104.0413818359375, 1.392403006553764 ], [ 104.041366577148381, 1.392694950103817 ], [ 104.041091918945369, 1.392694950103817 ], [ 104.041091918945369, 1.39296102523798 ], [ 104.040824890136719, 1.392958998680228 ], [ 104.040840148925781, 1.393226027488708 ], [ 104.04056549072277, 1.393210053443852 ], [ 104.040550231933707, 1.394325971603337 ], [ 104.040298461914119, 1.394323945045585 ], [ 104.040298461914119, 1.395133018493652 ], [ 104.041366577148381, 1.395174026489201 ], [ 104.041366577148381, 1.395452022552547 ], [ 104.041091918945369, 1.395424962043876 ], [ 104.041091918945369, 1.395732998847961 ], [ 104.040809631347656, 1.395732998847961 ], [ 104.040824890136719, 1.396038055419922 ], [ 104.040283203125, 1.396038055419922 ], [ 104.040260314941406, 1.395815014839286 ], [ 104.040267944335938, 1.395704984664974 ], [ 104.040092468261719, 1.395704984664974 ], [ 104.039970397949332, 1.395676016807499 ], [ 104.039970397949332, 1.395370006561393 ], [ 104.039978027343864, 1.395231008529663 ], [ 104.039718627929744, 1.39516103267681 ], [ 104.039154052734432, 1.395174026489201 ], [ 104.039154052734432, 1.395272016525382 ], [ 104.039161682128963, 1.395550012588558 ], [ 104.039161682128963, 1.395719051361198 ], [ 104.038337707519531, 1.395719051361198 ], [ 104.038322448730469, 1.396023988723869 ], [ 104.038032531738338, 1.396023988723869 ], [ 104.038070678711051, 1.397668004036007 ], [ 104.037780761718736, 1.397654056549129 ], [ 104.037765502929688, 1.398239970207328 ], [ 104.037506103515739, 1.39821195602417 ], [ 104.037506103515739, 1.398530960083065 ], [ 104.037223815917969, 1.398489952087516 ], [ 104.037239074707088, 1.39960503578186 ], [ 104.036949157714957, 1.399631977081356 ], [ 104.036933898925895, 1.400719046592769 ], [ 104.036643981933594, 1.400706052780151 ], [ 104.036643981933594, 1.401304960250968 ], [ 104.036384582519645, 1.401275038719234 ], [ 104.036384582519645, 1.401556015014591 ], [ 104.035827636718693, 1.401522040367183 ], [ 104.035827636718693, 1.401604056358337 ], [ 104.035812377929801, 1.402102947235164 ], [ 104.035575866699261, 1.402119040489197 ], [ 104.035530090332074, 1.402397036552543 ], [ 104.035285949707017, 1.402410030364933 ], [ 104.035255432128849, 1.402675032615662 ], [ 104.035018920898551, 1.402675032615662 ], [ 104.035003662109432, 1.402925968170166 ], [ 104.034454345703239, 1.402938961982727 ], [ 104.034423828125057, 1.402716040611267 ], [ 104.034164428710923, 1.402688980102596 ], [ 104.034149169921875, 1.403246998786983 ], [ 104.033042907714901, 1.403175950050297 ], [ 104.033058166503949, 1.40378904342657 ], [ 104.032501220703182, 1.403761982917899 ], [ 104.032463073730469, 1.404026031494141 ], [ 104.03224945068358, 1.404026031494141 ], [ 104.032241821289062, 1.404361009597892 ], [ 104.031120300292969, 1.404361009597892 ], [ 104.031112670898438, 1.404592037200985 ], [ 104.030570983886776, 1.404621005058402 ], [ 104.030555725097656, 1.40488600730896 ], [ 104.030265808105582, 1.40488600730896 ], [ 104.030281066894645, 1.405441999435425 ], [ 104.030006408691463, 1.405454993248043 ], [ 104.029991149902401, 1.405706048011836 ], [ 104.02970123291027, 1.405706048011836 ], [ 104.02970123291027, 1.405984044075012 ], [ 104.029449462890682, 1.406000018119869 ], [ 104.02946472167973, 1.406263947486934 ], [ 104.029159545898381, 1.406263947486934 ], [ 104.029144287109318, 1.406584024429321 ], [ 104.028869628906307, 1.406584024429321 ], [ 104.028869628906307, 1.407114982605037 ], [ 104.028327941894588, 1.407114982605037 ], [ 104.028343200683707, 1.407727956771907 ], [ 104.028343200683707, 1.408337950706596 ], [ 104.028350830078239, 1.408645987510624 ], [ 104.02838897705071, 1.408758044242916 ], [ 104.028861999511761, 1.408828973770198 ], [ 104.028861999511761, 1.409286975860709 ], [ 104.029174804687486, 1.409343957901115 ], [ 104.029151916503849, 1.409872055053768 ], [ 104.029472351074276, 1.409886002540702 ], [ 104.029472351074276, 1.410150051116943 ], [ 104.029716491699162, 1.410207033157349 ], [ 104.029693603515739, 1.410415053367672 ], [ 104.029998779296932, 1.410457968711796 ], [ 104.030006408691463, 1.410694956779537 ], [ 104.030021667480511, 1.411237955093441 ], [ 104.030288696289006, 1.411265015602112 ], [ 104.03025054931652, 1.411864042282104 ], [ 104.030258178711051, 1.412101030349845 ], [ 104.030265808105582, 1.412186026573238 ], [ 104.030273437500114, 1.412297010421867 ], [ 104.030273437500114, 1.412379026413021 ], [ 104.030532836914062, 1.412379026413021 ], [ 104.030853271484489, 1.412392973899898 ], [ 104.030838012695426, 1.412531971931457 ], [ 104.030815124511832, 1.412785053253231 ], [ 104.030853271484489, 1.412965059280396 ], [ 104.031105041503906, 1.412950992584285 ], [ 104.03108978271483, 1.413383960723877 ], [ 104.027893066406293, 1.412811994552726 ], [ 104.027763366699332, 1.414453029632625 ], [ 104.027824401855412, 1.415402054786739 ], [ 104.027839660644517, 1.415639042854309 ], [ 104.029365539550767, 1.415478944778556 ], [ 104.02991485595696, 1.415693044662532 ], [ 104.030677795410099, 1.415554046630916 ], [ 104.031158447265682, 1.415693044662532 ], [ 104.031150817871151, 1.415771007537955 ], [ 104.031074523925781, 1.416280984878654 ], [ 104.030838012695426, 1.416280984878654 ], [ 104.030830383300881, 1.416376948356742 ], [ 104.030815124511832, 1.416545987129211 ], [ 104.030616760253963, 1.416602969169617 ], [ 104.030548095703125, 1.416852951049805 ], [ 104.030395507812557, 1.416852951049805 ], [ 104.030273437500114, 1.416864991188106 ], [ 104.030258178711051, 1.417060971260128 ], [ 104.030296325683537, 1.417368054390067 ], [ 104.030258178711051, 1.417701005935669 ], [ 104.030258178711051, 1.417951941490116 ], [ 104.029998779296932, 1.417951941490116 ], [ 104.029998779296932, 1.418761014938354 ], [ 104.029846191406307, 1.418774962425289 ], [ 104.029693603515739, 1.41880202293396 ], [ 104.02970123291027, 1.418885946273861 ], [ 104.029716491699162, 1.419024944305477 ], [ 104.029609680175838, 1.419052958488407 ], [ 104.029441833496136, 1.419052958488407 ], [ 104.029441833496136, 1.419581055641288 ], [ 104.029548645019531, 1.419581055641288 ], [ 104.029716491699162, 1.4196519851684 ], [ 104.029716491699162, 1.419875025749263 ], [ 104.029594421386719, 1.419916033744869 ], [ 104.029441833496136, 1.419916033744869 ], [ 104.029434204101619, 1.420014977455139 ], [ 104.029426574707088, 1.42014002799999 ], [ 104.029273986816463, 1.42014002799999 ], [ 104.029174804687486, 1.420153975486869 ], [ 104.029151916503849, 1.420333981514034 ], [ 104.029136657714957, 1.420794010162467 ], [ 104.029151916503849, 1.421183943748474 ], [ 104.029151916503849, 1.421447992324943 ], [ 104.029098510742301, 1.421545982360897 ], [ 104.028984069824219, 1.421545982360897 ], [ 104.028884887695369, 1.421560049057007 ], [ 104.028900146484432, 1.421655058860779 ], [ 104.028915405273537, 1.421810030937195 ], [ 104.028915405273537, 1.422019958496037 ], [ 104.02883148193358, 1.422117948532218 ], [ 104.028610229492188, 1.422117948532218 ], [ 104.02862548828125, 1.422494053840751 ], [ 104.028610229492188, 1.422673940658512 ], [ 104.028610229492188, 1.422924995422363 ], [ 104.028640747070312, 1.423153042793388 ], [ 104.028808593749986, 1.423205018043632 ], [ 104.028846740722713, 1.423267006874028 ], [ 104.028930664062614, 1.423385024070797 ], [ 104.028930664062614, 1.423650026321468 ], [ 104.02883148193358, 1.423761010170097 ], [ 104.02872467041027, 1.423789024353084 ], [ 104.028594970703125, 1.423802018165645 ], [ 104.028594970703125, 1.423900008201656 ], [ 104.028610229492188, 1.424263000488395 ], [ 104.028610229492188, 1.424499988555965 ], [ 104.02862548828125, 1.424805045127982 ], [ 104.028594970703125, 1.424890041351375 ], [ 104.028808593749986, 1.424875974655265 ], [ 104.028900146484432, 1.424890041351375 ], [ 104.028900146484432, 1.425197005271968 ], [ 104.028861999511761, 1.425447940826416 ], [ 104.029029846191406, 1.425470948219356 ], [ 104.029174804687486, 1.425470948219356 ], [ 104.029182434082031, 1.425734996795654 ], [ 104.029777526855455, 1.42570805549633 ], [ 104.029708862304787, 1.425971984863395 ], [ 104.030288696289006, 1.425999999046326 ], [ 104.03025054931652, 1.425430059432983 ], [ 104.030830383300881, 1.425443053245601 ], [ 104.030830383300881, 1.425122022628898 ], [ 104.0322265625, 1.425151944160461 ], [ 104.032203674316349, 1.424885034561157 ], [ 104.03275299072277, 1.424885034561157 ], [ 104.03275299072277, 1.425179004669133 ], [ 104.035842895507798, 1.425165057182425 ], [ 104.035812377929801, 1.424885034561157 ], [ 104.036674499511776, 1.424885034561157 ], [ 104.036674499511776, 1.425151944160461 ], [ 104.036964416503849, 1.425135970115662 ], [ 104.036918640136818, 1.425443053245601 ], [ 104.037460327148494, 1.425443053245601 ], [ 104.037475585937557, 1.425179004669133 ], [ 104.037734985351506, 1.425165057182425 ], [ 104.037765502929688, 1.42541599273693 ], [ 104.038040161132869, 1.425443053245601 ], [ 104.038040161132869, 1.425693988800049 ], [ 104.038619995117244, 1.425734996795654 ], [ 104.038619995117244, 1.425971984863395 ], [ 104.039146423339886, 1.425986051559448 ], [ 104.039131164550781, 1.426249980926513 ], [ 104.040008544921989, 1.426280021667424 ], [ 104.039978027343864, 1.427086949348563 ], [ 104.040542602539176, 1.427114009857234 ], [ 104.040573120117301, 1.427672028541679 ], [ 104.041656494140682, 1.427685976028556 ], [ 104.041656494140682, 1.428508996963501 ], [ 104.041969299316406, 1.428508996963501 ], [ 104.041931152343693, 1.428786993026847 ], [ 104.041641235351605, 1.428786993026847 ], [ 104.041656494140682, 1.429664015769958 ], [ 104.04222106933598, 1.429636955261287 ], [ 104.042190551757798, 1.429873943328857 ], [ 104.042495727539006, 1.429901003837529 ], [ 104.04245758056652, 1.430166006088257 ], [ 104.042793273925838, 1.430176973342952 ], [ 104.043952941894588, 1.430176973342952 ], [ 104.04496002197277, 1.430176973342952 ], [ 104.045860290527386, 1.430091023445243 ], [ 104.046562194824219, 1.430199980735892 ], [ 104.047348022460994, 1.430222988128662 ], [ 104.04837799072277, 1.429891943931636 ], [ 104.048995971679631, 1.429782986640987 ], [ 104.049476623535213, 1.429739952087459 ], [ 104.050773620605469, 1.429695963859672 ], [ 104.052238464355412, 1.42965304851532 ], [ 104.053337097168068, 1.429872035980281 ], [ 104.054054260253963, 1.430289030075187 ], [ 104.054542541503892, 1.430878996849117 ], [ 104.054580688476562, 1.431427955627441 ], [ 104.055023193359432, 1.431777000427246 ], [ 104.055923461914062, 1.431866049766541 ], [ 104.057670593261761, 1.431887030601558 ], [ 104.057815551757812, 1.431977987289429 ], [ 104.05816650390625, 1.432044029235954 ], [ 104.058334350585881, 1.432086944580078 ], [ 104.058441162109432, 1.432114005088749 ], [ 104.058647155761776, 1.432044029235954 ] ] ], [ [ [ 103.882675170898366, 1.418387055396977 ], [ 103.882362365722713, 1.418105006217957 ], [ 103.882102966308537, 1.41789698600769 ], [ 103.881637573242244, 1.417672038078422 ], [ 103.881309509277443, 1.417780995369071 ], [ 103.880905151367301, 1.417958974838257 ], [ 103.88043212890625, 1.418086051940861 ], [ 103.880119323730526, 1.418205022811889 ], [ 103.880012512207031, 1.418244004249516 ], [ 103.879486083984375, 1.418167948722839 ], [ 103.878967285156307, 1.418254971504211 ], [ 103.878425598144631, 1.41868102550518 ], [ 103.877914428710938, 1.419077992439327 ], [ 103.877494812011832, 1.419435977935848 ], [ 103.877136230468693, 1.419752001762333 ], [ 103.876770019531236, 1.420014977455139 ], [ 103.87642669677733, 1.42028105258953 ], [ 103.876106262207088, 1.420580029487667 ], [ 103.875823974609361, 1.420940041542167 ], [ 103.875549316406307, 1.421301960945243 ], [ 103.875259399414062, 1.421648979187125 ], [ 103.874961853027401, 1.42196094989788 ], [ 103.874664306640568, 1.422279953956604 ], [ 103.874389648437543, 1.42260396480566 ], [ 103.87409210205071, 1.422916054725647 ], [ 103.873779296875057, 1.423230051994381 ], [ 103.873435974121151, 1.423542976379451 ], [ 103.873039245605526, 1.423846006393489 ], [ 103.872573852539048, 1.424139976501465 ], [ 103.872055053710938, 1.42445898056036 ], [ 103.871421813964773, 1.424769043922367 ], [ 103.870689392089844, 1.425070047378483 ], [ 103.869987487793026, 1.425475001335258 ], [ 103.869628906250057, 1.425847053527889 ], [ 103.869422912597713, 1.426293969154358 ], [ 103.86924743652348, 1.426738023757935 ], [ 103.869400024414105, 1.427209973335266 ], [ 103.869544982910156, 1.427736043929997 ], [ 103.869796752929744, 1.428231000900382 ], [ 103.870178222656307, 1.428639054298344 ], [ 103.870559692382855, 1.429039955139274 ], [ 103.870971679687543, 1.429409027099609 ], [ 103.871429443359375, 1.429712057113704 ], [ 103.871902465820369, 1.429977059364376 ], [ 103.872314453125099, 1.430274963378906 ], [ 103.872688293457088, 1.430570960044861 ], [ 103.873046875000057, 1.430871963500977 ], [ 103.873413085937557, 1.431166052818298 ], [ 103.873840332031349, 1.431398987770194 ], [ 103.874267578124943, 1.431614995002747 ], [ 103.874763488769588, 1.431705951690788 ], [ 103.875236511230412, 1.431871056556702 ], [ 103.875701904296918, 1.43193697929388 ], [ 103.876174926757756, 1.431946039199943 ], [ 103.876640319824276, 1.431918025016784 ], [ 103.877090454101662, 1.431802034378165 ], [ 103.877548217773438, 1.43169295787817 ], [ 103.878028869628949, 1.431669950485172 ], [ 103.878501892089844, 1.431663036346436 ], [ 103.878959655761776, 1.431612968444938 ], [ 103.879371643066506, 1.431427955627441 ], [ 103.879806518554631, 1.431287050247306 ], [ 103.880195617675724, 1.431084036827144 ], [ 103.880584716796875, 1.430830955505371 ], [ 103.8809814453125, 1.430556058883667 ], [ 103.881393432617188, 1.43027305603033 ], [ 103.881813049316449, 1.429983019828853 ], [ 103.882202148437543, 1.429671049118099 ], [ 103.882606506347713, 1.429358959197998 ], [ 103.883056640624943, 1.429103970527592 ], [ 103.883506774902401, 1.428854942321721 ], [ 103.883934020996151, 1.428576946258602 ], [ 103.884384155273381, 1.428316950798034 ], [ 103.884841918945369, 1.428055047988948 ], [ 103.885322570800895, 1.427809000015259 ], [ 103.885856628418082, 1.427618026733455 ], [ 103.886306762695312, 1.427364945411682 ], [ 103.886657714843864, 1.427005052566585 ], [ 103.88700103759777, 1.426640033721924 ], [ 103.887397766113381, 1.426360011100826 ], [ 103.887756347656307, 1.426085948944205 ], [ 103.888031005859375, 1.425840020179749 ], [ 103.888137817382869, 1.425588965415955 ], [ 103.887710571289105, 1.425042033195552 ], [ 103.887260437011719, 1.424540996551514 ], [ 103.886932373046875, 1.424152970314083 ], [ 103.886665344238224, 1.423820972442741 ], [ 103.886459350586051, 1.42346298694622 ], [ 103.886291503906179, 1.423033952713013 ], [ 103.886085510254006, 1.422574043273926 ], [ 103.885795593261761, 1.422170996665955 ], [ 103.885437011718807, 1.421839952468929 ], [ 103.885055541992244, 1.421481966972351 ], [ 103.884704589843807, 1.421054005622977 ], [ 103.884346008300895, 1.420634031295833 ], [ 103.884040832519517, 1.420199036598149 ], [ 103.883728027343793, 1.419762015342712 ], [ 103.88339996337902, 1.419250965118522 ], [ 103.882980346679744, 1.418671965599117 ], [ 103.882675170898366, 1.418387055396977 ] ] ], [ [ [ 103.977218627929801, 1.425832986831608 ], [ 103.976387023925781, 1.425832986831608 ], [ 103.976387023925781, 1.426110982894954 ], [ 103.975555419921818, 1.426388978958073 ], [ 103.975555419921818, 1.428611040115413 ], [ 103.97615814208983, 1.428915023803768 ], [ 103.976669311523537, 1.429170012474117 ], [ 103.978057861328125, 1.429170012474117 ], [ 103.978889465332088, 1.428889036178703 ], [ 103.978889465332088, 1.427780032158011 ], [ 103.977218627929801, 1.426110982894954 ], [ 103.977218627929801, 1.425832986831608 ] ] ], [ [ [ 103.937225341796818, 1.427638053894043 ], [ 103.936943054199276, 1.427361965179443 ], [ 103.938140869140739, 1.426520943641719 ], [ 103.938163757324162, 1.426396012306213 ], [ 103.938613891601562, 1.426002025604305 ], [ 103.939735412597656, 1.425766944885311 ], [ 103.940444946289176, 1.425766944885311 ], [ 103.941383361816506, 1.425508975982723 ], [ 103.942352294921974, 1.425155997276363 ], [ 103.943115234375114, 1.424919009208793 ], [ 103.945381164550895, 1.424132943153324 ], [ 103.946380615234318, 1.4237979650498 ], [ 103.947685241699332, 1.423071026802063 ], [ 103.951202392578125, 1.421596050262565 ], [ 103.954292297363338, 1.420326948165894 ], [ 103.952781677246151, 1.419306039810181 ], [ 103.953117370605469, 1.419257998466491 ], [ 103.954231262207017, 1.419168949127197 ], [ 103.954788208007798, 1.417497992515564 ], [ 103.955337524413991, 1.417636990547294 ], [ 103.955558776855469, 1.418195962905997 ], [ 103.956390380859418, 1.418195962905997 ], [ 103.956390380859418, 1.417917966842708 ], [ 103.958892822265682, 1.417639970779533 ], [ 103.958900451660213, 1.418566942214966 ], [ 103.959068298339901, 1.418522000312862 ], [ 103.959823608398494, 1.418498992919922 ], [ 103.960762023925824, 1.418380022049064 ], [ 103.961654663085923, 1.418287038803044 ], [ 103.962539672851676, 1.418238997459525 ], [ 103.9630126953125, 1.418287038803044 ], [ 103.963859558105511, 1.418427944183406 ], [ 103.964515686035142, 1.418967962265015 ], [ 103.966667175293026, 1.419306039810181 ], [ 103.96722412109375, 1.419028043747062 ], [ 103.96722412109375, 1.418750047683716 ], [ 103.967781066894531, 1.418750047683716 ], [ 103.967781066894531, 1.419306039810181 ], [ 103.969444274902287, 1.419584035873527 ], [ 103.971664428710994, 1.419584035873527 ], [ 103.972221374511776, 1.419306039810181 ], [ 103.973052978515739, 1.419028043747062 ], [ 103.97360992431652, 1.418750047683716 ], [ 103.97360992431652, 1.418195962905997 ], [ 103.974998474121094, 1.418195962905997 ], [ 103.974998474121094, 1.418750047683716 ], [ 103.976112365722756, 1.418750047683716 ], [ 103.976943969726562, 1.418472051620597 ], [ 103.97715759277348, 1.418038010597343 ], [ 103.977912902832031, 1.41779899597168 ], [ 103.979652404785199, 1.417662024498043 ], [ 103.981163024902401, 1.418208956718445 ], [ 103.983589172363281, 1.418208956718445 ], [ 103.984207153320312, 1.418346047401428 ], [ 103.984375, 1.418750047683716 ], [ 103.985832214355582, 1.418750047683716 ], [ 103.985832214355582, 1.418195962905997 ], [ 103.987503051757869, 1.418195962905997 ], [ 103.987503051757869, 1.418750047683716 ], [ 103.988059997558651, 1.418750047683716 ], [ 103.989723205566406, 1.418195962905997 ], [ 103.990280151367188, 1.417917966842708 ], [ 103.990837097167969, 1.417361974716243 ], [ 103.990837097167969, 1.417083978653068 ], [ 103.991111755371151, 1.416805028915462 ], [ 103.991111755371151, 1.416527032852286 ], [ 103.991668701171932, 1.415971040725822 ], [ 103.991668701171932, 1.415696024894771 ], [ 103.991943359375114, 1.415416955947933 ], [ 103.991943359375114, 1.415138959884644 ], [ 103.991111755371151, 1.414304971695003 ], [ 103.991386413574162, 1.414029002189636 ], [ 103.991386413574162, 1.413195014 ], [ 103.991111755371151, 1.412917017936707 ], [ 103.991111755371151, 1.412639021873531 ], [ 103.990837097167969, 1.412361025810185 ], [ 103.990837097167969, 1.412083029747066 ], [ 103.990554809570369, 1.41180503368372 ], [ 103.990554809570369, 1.411527037620601 ], [ 103.990280151367188, 1.411250948906059 ], [ 103.990837097167969, 1.410694956779537 ], [ 103.990837097167969, 1.410416960716248 ], [ 103.990554809570369, 1.410138964653072 ], [ 103.991668701171932, 1.409582972526607 ], [ 103.991943359375114, 1.40930700302124 ], [ 103.991943359375114, 1.408195018768311 ], [ 103.988609313964901, 1.407917022705135 ], [ 103.985557556152401, 1.407639026641846 ], [ 103.984725952148438, 1.40736103057867 ], [ 103.984169006347656, 1.407083034515324 ], [ 103.984169006347656, 1.406806945800781 ], [ 103.983055114746094, 1.406806945800781 ], [ 103.983055114746094, 1.407083034515324 ], [ 103.982780456543068, 1.40736103057867 ], [ 103.981666564941349, 1.40736103057867 ], [ 103.981666564941349, 1.407083034515324 ], [ 103.980560302734375, 1.407083034515324 ], [ 103.980560302734375, 1.40736103057867 ], [ 103.980003356933594, 1.407917022705135 ], [ 103.978057861328125, 1.407917022705135 ], [ 103.977500915527344, 1.407639026641846 ], [ 103.976669311523537, 1.40736103057867 ], [ 103.976112365722756, 1.407083034515324 ], [ 103.975280761718807, 1.406806945800781 ], [ 103.974723815918011, 1.406528949737663 ], [ 103.973892211914062, 1.406250953674316 ], [ 103.973892211914062, 1.404029011726379 ], [ 103.97360992431652, 1.403751015663204 ], [ 103.972503662109318, 1.403473019599914 ], [ 103.972503662109318, 1.403193950653133 ], [ 103.972221374511776, 1.402915954589957 ], [ 103.971115112304801, 1.402637958526611 ], [ 103.971115112304801, 1.402084946632385 ], [ 103.97027587890625, 1.402084946632385 ], [ 103.97027587890625, 1.402362942695731 ], [ 103.970001220703224, 1.402637958526611 ], [ 103.968887329101506, 1.402637958526611 ], [ 103.968887329101506, 1.402084946632385 ], [ 103.968055725097699, 1.401250004768485 ], [ 103.965835571289006, 1.400972008705139 ], [ 103.961669921875, 1.40069401264202 ], [ 103.961944580078168, 1.400416016578674 ], [ 103.961387634277457, 1.400140047073478 ], [ 103.961387634277457, 1.399862051010189 ], [ 103.957778930664162, 1.399862051010189 ], [ 103.957778930664162, 1.400972008705139 ], [ 103.95611572265625, 1.402637958526611 ], [ 103.955558776855469, 1.402915954589957 ], [ 103.955558776855469, 1.403193950653133 ], [ 103.955001831054688, 1.403751015663204 ], [ 103.955001831054688, 1.404029011726379 ], [ 103.954444885253892, 1.404585003852844 ], [ 103.954444885253892, 1.404860973358211 ], [ 103.953887939453182, 1.405416965484676 ], [ 103.953056335449148, 1.405694961547851 ], [ 103.953056335449148, 1.405972957611198 ], [ 103.952224731445369, 1.406806945800781 ], [ 103.952781677246151, 1.407083034515324 ], [ 103.952781677246151, 1.407639026641846 ], [ 103.952224731445369, 1.408195018768311 ], [ 103.952224731445369, 1.410416960716248 ], [ 103.950836181640682, 1.410416960716248 ], [ 103.950836181640682, 1.409582972526607 ], [ 103.950553894043082, 1.40930700302124 ], [ 103.950553894043082, 1.4084730148316 ], [ 103.950279235839886, 1.408195018768311 ], [ 103.950279235839886, 1.407083034515324 ], [ 103.949447631835938, 1.407083034515324 ], [ 103.949447631835938, 1.40736103057867 ], [ 103.949165344238338, 1.407639026641846 ], [ 103.949165344238338, 1.407917022705135 ], [ 103.948608398437614, 1.4084730148316 ], [ 103.948890686035156, 1.408751010894775 ], [ 103.948890686035156, 1.40930700302124 ], [ 103.948333740234361, 1.409860968589783 ], [ 103.946945190429631, 1.410138964653072 ], [ 103.946945190429631, 1.410416960716248 ], [ 103.946113586425838, 1.411250948906059 ], [ 103.943336486816406, 1.411528944969177 ], [ 103.940559387207088, 1.412917017936707 ], [ 103.940559387207088, 1.413195014 ], [ 103.939170837402344, 1.414582967758179 ], [ 103.939445495605526, 1.414860963821468 ], [ 103.939445495605526, 1.415696024894771 ], [ 103.940002441406307, 1.41597402095806 ], [ 103.941390991211051, 1.417361974716243 ], [ 103.941390991211051, 1.417639970779533 ], [ 103.941108703613338, 1.417917966842708 ], [ 103.940559387207088, 1.417917966842708 ], [ 103.939170837402344, 1.416527032852286 ], [ 103.938613891601562, 1.416249036788997 ], [ 103.937782287597585, 1.41597402095806 ], [ 103.937782287597585, 1.415138959884644 ], [ 103.93527984619152, 1.415138959884644 ], [ 103.93527984619152, 1.415416955947933 ], [ 103.93499755859375, 1.415696024894771 ], [ 103.933891296386776, 1.41597402095806 ], [ 103.933891296386776, 1.416249036788997 ], [ 103.933609008789062, 1.416527032852286 ], [ 103.933609008789062, 1.416805028915462 ], [ 103.933334350585994, 1.417083978653068 ], [ 103.933891296386776, 1.417361974716243 ], [ 103.934165954589773, 1.417639970779533 ], [ 103.934165954589773, 1.417917966842708 ], [ 103.933891296386776, 1.418195962905997 ], [ 103.933609008789062, 1.418195962905997 ], [ 103.932502746582031, 1.417639970779533 ], [ 103.932502746582031, 1.417361974716243 ], [ 103.930274963378963, 1.417361974716243 ], [ 103.930274963378963, 1.417639970779533 ], [ 103.929168701171989, 1.418750047683716 ], [ 103.928054809570241, 1.419028043747062 ], [ 103.928054809570241, 1.419584035873527 ], [ 103.927780151367244, 1.419862031936646 ], [ 103.927780151367244, 1.42041802406311 ], [ 103.92749786376946, 1.420693993568534 ], [ 103.92749786376946, 1.420971989631653 ], [ 103.925834655761719, 1.422639966011104 ], [ 103.926109313964957, 1.422917962074393 ], [ 103.926109313964957, 1.424028038978576 ], [ 103.928886413574219, 1.424584031105042 ], [ 103.92972564697277, 1.42541599273693 ], [ 103.92972564697277, 1.426249980926513 ], [ 103.932502746582031, 1.42652797698986 ], [ 103.932502746582031, 1.427638053894043 ], [ 103.933334350585994, 1.427916049957332 ], [ 103.934165954589773, 1.427916049957332 ], [ 103.934165954589773, 1.427638053894043 ], [ 103.936386108398494, 1.427638053894043 ], [ 103.936386108398494, 1.428197026252747 ], [ 103.937225341796818, 1.428197026252747 ], [ 103.937225341796818, 1.427638053894043 ] ] ], [ [ [ 103.738792419433636, 1.425907969474849 ], [ 103.739006042480582, 1.425840020179749 ], [ 103.739212036132912, 1.425979018211308 ], [ 103.739418029785085, 1.426049947738647 ], [ 103.739624023437443, 1.425907969474849 ], [ 103.739761352539176, 1.42556202411663 ], [ 103.739761352539176, 1.425212979316768 ], [ 103.739624023437443, 1.425004005432186 ], [ 103.739280700683594, 1.424934983253479 ], [ 103.738937377929744, 1.42472505569458 ], [ 103.738792419433636, 1.424445033073482 ], [ 103.738655090331974, 1.4239599704743 ], [ 103.738243103027443, 1.423539996147213 ], [ 103.737899780273381, 1.423333048820552 ], [ 103.737754821777344, 1.423262000084037 ], [ 103.737480163574332, 1.423262000084037 ], [ 103.737411499023494, 1.423333048820552 ], [ 103.737548828125, 1.423539996147213 ], [ 103.737754821777344, 1.423889040947017 ], [ 103.738037109375114, 1.424098968505916 ], [ 103.738243103027443, 1.424376964569205 ], [ 103.738380432128963, 1.42472505569458 ], [ 103.738243103027443, 1.424865007400626 ], [ 103.738243103027443, 1.425004005432186 ], [ 103.738380432128963, 1.425212979316768 ], [ 103.738380432128963, 1.425701022148189 ], [ 103.738243103027443, 1.426049947738647 ], [ 103.738037109375114, 1.426257014274654 ], [ 103.737899780273381, 1.426537036895752 ], [ 103.737899780273381, 1.426954030990657 ], [ 103.738105773925781, 1.427163958549556 ], [ 103.738204956054744, 1.427096009254456 ], [ 103.738311767578125, 1.427023053169364 ], [ 103.738380432128963, 1.426815032959041 ], [ 103.738586425781307, 1.426535010337773 ], [ 103.738792419433636, 1.426396012306213 ], [ 103.738792419433636, 1.425907969474849 ] ] ], [ [ [ 103.889442443847713, 1.425001025199947 ], [ 103.889724731445256, 1.424723029136601 ], [ 103.889999389648494, 1.424723029136601 ], [ 103.890274047851676, 1.424445033073482 ], [ 103.890556335449219, 1.424445033073482 ], [ 103.890830993652457, 1.424167037010136 ], [ 103.89111328125, 1.424167037010136 ], [ 103.891944885253963, 1.423333048820552 ], [ 103.892219543457017, 1.423333048820552 ], [ 103.892776489257756, 1.422777056694087 ], [ 103.893058776855526, 1.422777056694087 ], [ 103.893333435058707, 1.422500967979488 ], [ 103.893890380859489, 1.422500967979488 ], [ 103.89444732666027, 1.421944975853023 ], [ 103.894721984863281, 1.421944975853023 ], [ 103.894996643066463, 1.421666979789734 ], [ 103.895278930664062, 1.421666979789734 ], [ 103.895835876464787, 1.421110987663212 ], [ 103.896110534668026, 1.421110987663212 ], [ 103.89749908447277, 1.419723033905086 ], [ 103.89749908447277, 1.41944503784174 ], [ 103.897781372070312, 1.419167041778621 ], [ 103.897781372070312, 1.418889045715275 ], [ 103.898056030273494, 1.418611049652156 ], [ 103.898056030273494, 1.418331980705375 ], [ 103.897781372070312, 1.418053984642029 ], [ 103.89749908447277, 1.418053984642029 ], [ 103.89749908447277, 1.417778968811092 ], [ 103.897224426269531, 1.417500972747803 ], [ 103.897026062011719, 1.416337966918888 ], [ 103.896469116210938, 1.415781974792594 ], [ 103.895835876464787, 1.415277957916373 ], [ 103.895553588867244, 1.414999961853027 ], [ 103.894996643066463, 1.414999961853027 ], [ 103.894721984863281, 1.414721965789908 ], [ 103.894721984863281, 1.414443969726562 ], [ 103.8941650390625, 1.414443969726562 ], [ 103.893608093261719, 1.414999961853027 ], [ 103.893058776855526, 1.414999961853027 ], [ 103.892776489257756, 1.415277957916373 ], [ 103.892219543457017, 1.415277957916373 ], [ 103.890769958496151, 1.415346980094909 ], [ 103.888885498046932, 1.415557026863155 ], [ 103.88861083984375, 1.415832042694092 ], [ 103.888336181640739, 1.415832042694092 ], [ 103.888053894042969, 1.416110038757381 ], [ 103.887779235839957, 1.416110038757381 ], [ 103.887222290039176, 1.416666030883903 ], [ 103.886947631835994, 1.416666030883903 ], [ 103.886665344238224, 1.416944980621338 ], [ 103.886108398437443, 1.416944980621338 ], [ 103.885833740234432, 1.417222976684627 ], [ 103.88555908203125, 1.417222976684627 ], [ 103.885276794433636, 1.417500972747803 ], [ 103.884445190429688, 1.417500972747803 ], [ 103.883888244628963, 1.418053984642029 ], [ 103.883956909179801, 1.418403029441833 ], [ 103.884162902832145, 1.418611049652156 ], [ 103.884445190429688, 1.418889045715275 ], [ 103.884445190429688, 1.419167041778621 ], [ 103.885070800781307, 1.419999003410453 ], [ 103.88555908203125, 1.420554995536747 ], [ 103.886108398437443, 1.421110987663212 ], [ 103.886108398437443, 1.421388983726558 ], [ 103.886665344238224, 1.421944975853023 ], [ 103.886665344238224, 1.422222971916199 ], [ 103.887222290039176, 1.422777056694087 ], [ 103.887222290039176, 1.423055052757377 ], [ 103.888473510742244, 1.424860000610408 ], [ 103.888961791992131, 1.424931049346924 ], [ 103.889251708984432, 1.424972057342529 ], [ 103.889442443847713, 1.425001025199947 ] ] ], [ [ [ 104.020553588867301, 1.421944975853023 ], [ 104.021110534668082, 1.421388983726558 ], [ 104.021667480468864, 1.421388983726558 ], [ 104.021942138671861, 1.421110987663212 ], [ 104.022781372070369, 1.421110987663212 ], [ 104.023887634277401, 1.420001029968261 ], [ 104.024169921875114, 1.420001029968261 ], [ 104.024444580078125, 1.419723033905086 ], [ 104.025001525878892, 1.419723033905086 ], [ 104.025833129882869, 1.418889045715275 ], [ 104.025833129882869, 1.417775988578853 ], [ 104.026107788085866, 1.417500972747803 ], [ 104.026107788085866, 1.416666030883903 ], [ 104.026664733886662, 1.416110038757381 ], [ 104.026664733886662, 1.415557026863155 ], [ 104.026947021484418, 1.415277957916373 ], [ 104.026947021484418, 1.414165973663444 ], [ 104.026107788085866, 1.413334012031555 ], [ 104.026107788085866, 1.413056015968436 ], [ 104.025558471679673, 1.412500023841971 ], [ 104.025276184082088, 1.412500023841971 ], [ 104.025001525878892, 1.412222027778625 ], [ 104.024169921875114, 1.412222027778625 ], [ 104.023887634277401, 1.412500023841971 ], [ 104.021667480468864, 1.412500023841971 ], [ 104.02138519287108, 1.412222027778625 ], [ 104.021110534668082, 1.412222027778625 ], [ 104.020835876464886, 1.412500023841971 ], [ 104.020553588867301, 1.412500023841971 ], [ 104.020278930664119, 1.41277801990509 ], [ 104.019996643066335, 1.41277801990509 ], [ 104.019721984863338, 1.413056015968436 ], [ 104.019447326660142, 1.413056015968436 ], [ 104.018333435058594, 1.414165973663444 ], [ 104.018058776855582, 1.414165973663444 ], [ 104.016944885253849, 1.415277957916373 ], [ 104.016944885253849, 1.415557026863155 ], [ 104.016670227050838, 1.415832042694092 ], [ 104.016670227050838, 1.416388034820557 ], [ 104.016387939453125, 1.416666030883903 ], [ 104.016387939453125, 1.416944980621338 ], [ 104.016670227050838, 1.417222976684627 ], [ 104.016670227050838, 1.418053984642029 ], [ 104.017219543457074, 1.418611049652156 ], [ 104.017219543457074, 1.418889045715275 ], [ 104.017501831054801, 1.419167041778621 ], [ 104.017501831054801, 1.41944503784174 ], [ 104.017776489257812, 1.419723033905086 ], [ 104.017776489257812, 1.420001029968261 ], [ 104.018333435058594, 1.420554995536747 ], [ 104.018333435058594, 1.420832991600093 ], [ 104.018608093261818, 1.421110987663212 ], [ 104.018608093261818, 1.421388983726558 ], [ 104.018890380859361, 1.421666979789734 ], [ 104.018890380859361, 1.422777056694087 ], [ 104.018608093261818, 1.423055052757377 ], [ 104.018981933593807, 1.423426032066345 ], [ 104.019165039062557, 1.423611044883842 ], [ 104.019447326660142, 1.423611044883842 ], [ 104.020278930664119, 1.422777056694087 ], [ 104.020278930664119, 1.422500967979488 ], [ 104.020553588867301, 1.422222971916199 ], [ 104.020553588867301, 1.421944975853023 ] ] ], [ [ [ 103.920234680175724, 1.413444042205867 ], [ 103.920684814453111, 1.413388967514038 ], [ 103.921119689941463, 1.413555026054496 ], [ 103.921623229980469, 1.413566946983451 ], [ 103.922142028808537, 1.413386940956116 ], [ 103.922645568847713, 1.413012981414909 ], [ 103.923049926757912, 1.412588953971863 ], [ 103.923393249511776, 1.412220001220703 ], [ 103.923683166503849, 1.411862015724182 ], [ 103.92391204833983, 1.411460995674076 ], [ 103.924140930175838, 1.411052942276115 ], [ 103.92427825927733, 1.410588026046866 ], [ 103.924468994140625, 1.410137057304496 ], [ 103.924713134765682, 1.40969002246868 ], [ 103.924964904785256, 1.409240961074943 ], [ 103.925376892089943, 1.408898949623221 ], [ 103.925827026367173, 1.408607006072998 ], [ 103.926269531250043, 1.40829694271099 ], [ 103.926666259765682, 1.407914996147213 ], [ 103.927055358886832, 1.407482028007621 ], [ 103.927452087402457, 1.407026052475089 ], [ 103.927947998046918, 1.406677007675284 ], [ 103.928421020507926, 1.406376004219169 ], [ 103.928825378417912, 1.406062006950435 ], [ 103.929153442382926, 1.405722022056693 ], [ 103.929473876953168, 1.405372977256889 ], [ 103.929847717285156, 1.405030965804997 ], [ 103.930160522460881, 1.404551029205379 ], [ 103.930366516113267, 1.403998970985469 ], [ 103.930503845214957, 1.403481960296631 ], [ 103.930412292480455, 1.402971029281616 ], [ 103.930076599121136, 1.402577042579708 ], [ 103.929870605468807, 1.402397036552543 ], [ 103.929634094238281, 1.402392029762325 ], [ 103.929267883300781, 1.402732014656124 ], [ 103.928955078125057, 1.403249025344962 ], [ 103.928619384765739, 1.403725981712341 ], [ 103.928291320800781, 1.404137969017029 ], [ 103.927902221679688, 1.404458999633903 ], [ 103.927513122558594, 1.404775977134818 ], [ 103.927116394042912, 1.405076980590934 ], [ 103.926666259765682, 1.405300021171627 ], [ 103.926254272460994, 1.40549898147583 ], [ 103.925903320312543, 1.405511975288448 ], [ 103.925613403320298, 1.405365943908748 ], [ 103.925254821777344, 1.405243039131221 ], [ 103.924926757812557, 1.405035972595215 ], [ 103.924606323242301, 1.404860973358211 ], [ 103.924362182617244, 1.404744029045162 ], [ 103.923950195312557, 1.404952049255428 ], [ 103.923553466796875, 1.40539205074316 ], [ 103.923591613769588, 1.405711054802055 ], [ 103.923698425292955, 1.406054973602352 ], [ 103.923858642578054, 1.406381011009159 ], [ 103.923881530761719, 1.406697988510132 ], [ 103.923820495605582, 1.406980037689152 ], [ 103.923645019531364, 1.40721499919897 ], [ 103.923515319824219, 1.407462954521179 ], [ 103.923294067382756, 1.407699942588749 ], [ 103.922958374023438, 1.407930970192069 ], [ 103.922500610351676, 1.408123970031795 ], [ 103.922012329101562, 1.408493041992188 ], [ 103.921463012695369, 1.408867001533565 ], [ 103.921119689941463, 1.409343957901115 ], [ 103.920829772949219, 1.409852027893066 ], [ 103.920562744140682, 1.410357952118034 ], [ 103.920310974121094, 1.410851955413932 ], [ 103.920043945312443, 1.411316990852356 ], [ 103.919685363769531, 1.411689043045158 ], [ 103.919265747070412, 1.412006020546073 ], [ 103.918907165527287, 1.412369966506901 ], [ 103.918594360351562, 1.412745952606258 ], [ 103.918296813964943, 1.413079023361206 ], [ 103.917984008789062, 1.413341045379696 ], [ 103.917663574218793, 1.413578033447266 ], [ 103.917259216308594, 1.413774013519287 ], [ 103.916702270507869, 1.413884043693599 ], [ 103.91607666015625, 1.414365053176823 ], [ 103.915870666503906, 1.414932012557983 ], [ 103.915802001953239, 1.415313005447501 ], [ 103.915740966796932, 1.415572047233525 ], [ 103.915672302246037, 1.415855050087032 ], [ 103.915885925292955, 1.416131019592228 ], [ 103.916313171386776, 1.416151046752987 ], [ 103.916580200195426, 1.416131019592228 ], [ 103.916847229003906, 1.416110038757381 ], [ 103.917404174804688, 1.416015028953666 ], [ 103.917884826660213, 1.415781974792594 ], [ 103.91831207275402, 1.415472030639762 ], [ 103.918632507324276, 1.415027976036185 ], [ 103.918998718261776, 1.414585947990417 ], [ 103.919425964355582, 1.414173007011357 ], [ 103.919830322265739, 1.413779020309448 ], [ 103.920234680175724, 1.413444042205867 ] ] ], [ [ [ 103.954170227050895, 1.399166941642761 ], [ 103.953330993652401, 1.399166941642761 ], [ 103.953330993652401, 1.399445056915283 ], [ 103.953056335449148, 1.399723052978572 ], [ 103.952499389648438, 1.399999022483769 ], [ 103.951667785644631, 1.40083301067358 ], [ 103.951110839843849, 1.401111006736755 ], [ 103.951110839843849, 1.401389002800045 ], [ 103.949996948242131, 1.402498960495052 ], [ 103.949996948242131, 1.402776956558228 ], [ 103.948333740234361, 1.404443025589046 ], [ 103.947219848632869, 1.404999971389827 ], [ 103.947219848632869, 1.405277967453117 ], [ 103.946662902832088, 1.405833959579581 ], [ 103.946662902832088, 1.406111955642757 ], [ 103.946113586425838, 1.406667947769222 ], [ 103.946113586425838, 1.406944036483765 ], [ 103.945274353027344, 1.407778024673576 ], [ 103.947219848632869, 1.407778024673576 ], [ 103.94777679443358, 1.407222032547111 ], [ 103.94777679443358, 1.406944036483765 ], [ 103.948333740234361, 1.406389951705876 ], [ 103.948333740234361, 1.406111955642757 ], [ 103.948608398437614, 1.405833959579581 ], [ 103.948608398437614, 1.404999971389827 ], [ 103.951110839843849, 1.402498960495052 ], [ 103.951110839843849, 1.401945948600826 ], [ 103.951667785644631, 1.40166699886322 ], [ 103.952774047851619, 1.400555014610291 ], [ 103.952774047851619, 1.400277018547115 ], [ 103.954170227050895, 1.399999022483769 ], [ 103.954170227050895, 1.399445056915283 ], [ 103.954170227050895, 1.399166941642761 ] ] ], [ [ [ 103.728172302246037, 1.404391050338802 ], [ 103.72747802734375, 1.404391050338802 ], [ 103.727203369140724, 1.404530048370361 ], [ 103.727058410644531, 1.404669046401921 ], [ 103.727134704589901, 1.404808044433707 ], [ 103.727272033691392, 1.405156970024166 ], [ 103.727409362792898, 1.405156970024166 ], [ 103.72747802734375, 1.40564501285553 ], [ 103.727684020996151, 1.406131982803458 ], [ 103.728096008300824, 1.405992984771729 ], [ 103.728240966796875, 1.405784010887146 ], [ 103.728446960449276, 1.405436992645264 ], [ 103.728446960449276, 1.404809951782283 ], [ 103.728172302246037, 1.404391050338802 ] ] ], [ [ [ 103.655082702636832, 1.377756953239441 ], [ 103.654594421386719, 1.377686023712101 ], [ 103.654594421386719, 1.378173947334346 ], [ 103.654876708984489, 1.378383994102592 ], [ 103.6551513671875, 1.378872036933956 ], [ 103.655632019043026, 1.379776000976619 ], [ 103.655914306640625, 1.38026404380804 ], [ 103.655914306640625, 1.380681037902889 ], [ 103.656188964843793, 1.380751967430228 ], [ 103.656463623046818, 1.380751967430228 ], [ 103.656745910644574, 1.380473971366882 ], [ 103.656532287597699, 1.379986047744865 ], [ 103.656532287597699, 1.379428029060477 ], [ 103.655982971191463, 1.378590941429252 ], [ 103.655914306640625, 1.378312945365906 ], [ 103.655708312988281, 1.378034949302787 ], [ 103.655082702636832, 1.377756953239441 ] ] ], [ [ [ 103.65183258056652, 1.369632005691642 ], [ 103.651473999023551, 1.369536042213554 ], [ 103.651100158691506, 1.369737029075736 ], [ 103.650749206542969, 1.369992017746085 ], [ 103.650421142578125, 1.370201945304984 ], [ 103.650039672851562, 1.37031102180481 ], [ 103.649742126464943, 1.370540976524467 ], [ 103.649490356445369, 1.370875954627991 ], [ 103.649269104003906, 1.371312022209167 ], [ 103.649208068847599, 1.371860980987492 ], [ 103.649391174316335, 1.372424006462097 ], [ 103.649719238281307, 1.372900009155387 ], [ 103.650062561035213, 1.373293995857296 ], [ 103.650382995605469, 1.373607039451713 ], [ 103.650665283203182, 1.373886942863464 ], [ 103.650924682617131, 1.374147057533378 ], [ 103.651214599609432, 1.374359011650199 ], [ 103.651557922363281, 1.37444794178009 ], [ 103.651893615722656, 1.374541044235286 ], [ 103.652168273925838, 1.374698042869625 ], [ 103.6524658203125, 1.374822020530644 ], [ 103.65280914306652, 1.375004053115958 ], [ 103.653297424316463, 1.375115990638847 ], [ 103.65380859375, 1.374848961830196 ], [ 103.653976440429631, 1.374760031700248 ], [ 103.654258728027401, 1.37418794631958 ], [ 103.654464721679744, 1.373636007309017 ], [ 103.65415191650402, 1.371597051620597 ], [ 103.653923034668082, 1.371345996856803 ], [ 103.653434753417969, 1.370895028114433 ], [ 103.652931213378963, 1.370533943176326 ], [ 103.652511596679688, 1.370219945907593 ], [ 103.652053833007926, 1.369871020317134 ], [ 103.65183258056652, 1.369632005691642 ] ] ], [ [ [ 104.023887634277401, 1.365833044052124 ], [ 104.024169921875114, 1.365555047989005 ], [ 104.024719238281349, 1.365555047989005 ], [ 104.025276184082088, 1.365000963211116 ], [ 104.026107788085866, 1.365000963211116 ], [ 104.026390075683651, 1.364722967147941 ], [ 104.026947021484418, 1.364722967147941 ], [ 104.027221679687614, 1.364444971084652 ], [ 104.027496337890611, 1.364444971084652 ], [ 104.027778625488395, 1.364166975021476 ], [ 104.028053283691392, 1.364166975021476 ], [ 104.028610229492188, 1.363610029220695 ], [ 104.028610229492188, 1.363332033157405 ], [ 104.029167175292969, 1.363332033157405 ], [ 104.029998779296932, 1.362501025200004 ], [ 104.030281066894645, 1.362501025200004 ], [ 104.030830383300881, 1.361943960189876 ], [ 104.031112670898438, 1.361943960189876 ], [ 104.031387329101662, 1.361665964126587 ], [ 104.031944274902401, 1.361665964126587 ], [ 104.032218933105469, 1.361387968063411 ], [ 104.032775878906193, 1.361387968063411 ], [ 104.033332824707145, 1.360834002494869 ], [ 104.033607482910142, 1.360834002494869 ], [ 104.034164428710923, 1.360278010368404 ], [ 104.034446716308707, 1.360278010368404 ], [ 104.0352783203125, 1.359444022178593 ], [ 104.035552978515668, 1.359444022178593 ], [ 104.036392211913991, 1.358610033989009 ], [ 104.037109375000114, 1.358610033989009 ], [ 104.037185668945312, 1.358558058738765 ], [ 104.038612365722713, 1.35722196102148 ], [ 104.038612365722713, 1.356943964958191 ], [ 104.038139343261719, 1.356467962265071 ], [ 104.037780761718736, 1.356112003326473 ], [ 104.037498474121193, 1.356112003326473 ], [ 104.036941528320412, 1.355556011200008 ], [ 104.036941528320412, 1.355278015136719 ], [ 104.036666870117244, 1.355000019073543 ], [ 104.036666870117244, 1.354722023010254 ], [ 104.036941528320412, 1.354444026947078 ], [ 104.036392211913991, 1.353889942169189 ], [ 104.036392211913991, 1.353333950042724 ], [ 104.03583526611321, 1.353333950042724 ], [ 104.034721374511719, 1.354444026947078 ], [ 104.034164428710923, 1.354444026947078 ], [ 104.033332824707145, 1.35361194610607 ], [ 104.033058166503949, 1.353889942169189 ], [ 104.033058166503949, 1.354166030883732 ], [ 104.032775878906193, 1.354444026947078 ], [ 104.032775878906193, 1.354722023010254 ], [ 104.032501220703182, 1.355000019073543 ], [ 104.032501220703182, 1.356112003326473 ], [ 104.032775878906193, 1.356387972831726 ], [ 104.032501220703182, 1.356665968895015 ], [ 104.032501220703182, 1.35722196102148 ], [ 104.032218933105469, 1.357499957084656 ], [ 104.032218933105469, 1.357777953147945 ], [ 104.031829833984304, 1.358170032501334 ], [ 104.031669616699205, 1.358333945274467 ], [ 104.031669616699205, 1.358610033989009 ], [ 104.031112670898438, 1.358610033989009 ], [ 104.030281066894645, 1.357777953147945 ], [ 104.030281066894645, 1.357499957084656 ], [ 104.029998779296932, 1.35722196102148 ], [ 104.029441833496136, 1.357777953147945 ], [ 104.028892517089901, 1.357777953147945 ], [ 104.028610229492188, 1.358055949211121 ], [ 104.028335571289176, 1.358055949211121 ], [ 104.028053283691392, 1.358333945274467 ], [ 104.027496337890611, 1.358333945274467 ], [ 104.027221679687614, 1.358610033989009 ], [ 104.026664733886662, 1.358610033989009 ], [ 104.026390075683651, 1.358333945274467 ], [ 104.026390075683651, 1.357499957084656 ], [ 104.026947021484418, 1.356943964958191 ], [ 104.027496337890611, 1.356943964958191 ], [ 104.027496337890611, 1.356665968895015 ], [ 104.027778625488395, 1.356665968895015 ], [ 104.028610229492188, 1.355834007263184 ], [ 104.029067993164119, 1.355695009231624 ], [ 104.029067993164119, 1.354997992515621 ], [ 104.028999328613281, 1.354648947715816 ], [ 104.028930664062614, 1.354300022125301 ], [ 104.028930664062614, 1.353744029998836 ], [ 104.028999328613281, 1.353466033935547 ], [ 104.028999328613281, 1.353186011314449 ], [ 104.028861999511761, 1.352838993072567 ], [ 104.028717041015739, 1.352211952209586 ], [ 104.028717041015739, 1.351515054702759 ], [ 104.028793334960938, 1.35123705863964 ], [ 104.028793334960938, 1.350468993186951 ], [ 104.028579711914006, 1.349982976913509 ], [ 104.028442382812486, 1.349774003028926 ], [ 104.028167724609489, 1.349635004997367 ], [ 104.027679443359375, 1.349424958229122 ], [ 104.027549743652386, 1.34930694103241 ], [ 104.027267456054688, 1.349097013473511 ], [ 104.026855468749943, 1.349028944969234 ], [ 104.026580810546918, 1.348819017410335 ], [ 104.025886535644645, 1.348119020462093 ], [ 104.025886535644645, 1.346655964851436 ], [ 104.025955200195312, 1.346029043197632 ], [ 104.026023864746151, 1.345679998397827 ], [ 104.025276184082088, 1.34499895572668 ], [ 104.024719238281349, 1.34499895572668 ], [ 104.024444580078125, 1.34527695178997 ], [ 104.024169921875114, 1.34527695178997 ], [ 104.024169921875114, 1.345554947853145 ], [ 104.023330688476605, 1.346389055252075 ], [ 104.023056030273381, 1.346389055252075 ], [ 104.022781372070369, 1.346667051315421 ], [ 104.021942138671861, 1.346667051315421 ], [ 104.02138519287108, 1.347221016883964 ], [ 104.018890380859361, 1.347221016883964 ], [ 104.018333435058594, 1.347777009010429 ], [ 104.017776489257812, 1.347221016883964 ], [ 104.017501831054801, 1.347221016883964 ], [ 104.016670227050838, 1.346389055252075 ], [ 104.016670227050838, 1.346111059188956 ], [ 104.016387939453125, 1.345832943916434 ], [ 104.016387939453125, 1.345554947853145 ], [ 104.016113281250057, 1.34527695178997 ], [ 104.015556335449332, 1.34527695178997 ], [ 104.014999389648551, 1.345832943916434 ], [ 104.013885498046804, 1.344722986221257 ], [ 104.013336181640611, 1.34527695178997 ], [ 104.013336181640611, 1.345554947853145 ], [ 104.013610839843807, 1.345832943916434 ], [ 104.013610839843807, 1.346111059188956 ], [ 104.013885498046804, 1.346389055252075 ], [ 104.013885498046804, 1.346945047378597 ], [ 104.014167785644588, 1.347221016883964 ], [ 104.014167785644588, 1.347499012947083 ], [ 104.01444244384777, 1.347777009010429 ], [ 104.01444244384777, 1.348055005073547 ], [ 104.014724731445312, 1.348333001136893 ], [ 104.014724731445312, 1.348889946937675 ], [ 104.014999389648551, 1.349167943000793 ], [ 104.014999389648551, 1.349442958831901 ], [ 104.015274047851548, 1.34972095489502 ], [ 104.015274047851548, 1.351112008094788 ], [ 104.015556335449332, 1.351390004158133 ], [ 104.015556335449332, 1.352221965789795 ], [ 104.015830993652344, 1.352499961853084 ], [ 104.015830993652344, 1.35277795791626 ], [ 104.015274047851548, 1.353333950042724 ], [ 104.014999389648551, 1.353333950042724 ], [ 104.014724731445312, 1.35361194610607 ], [ 104.014167785644588, 1.353055953979606 ], [ 104.014167785644588, 1.352499961853084 ], [ 104.013336181640611, 1.351668000221252 ], [ 104.013336181640611, 1.350556015968323 ], [ 104.013610839843807, 1.350278019905147 ], [ 104.013610839843807, 1.349998950958366 ], [ 104.013336181640611, 1.34972095489502 ], [ 104.013336181640611, 1.349442958831901 ], [ 104.013053894043026, 1.349167943000793 ], [ 104.013053894043026, 1.348333001136893 ], [ 104.01277923583983, 1.348055005073547 ], [ 104.01277923583983, 1.347777009010429 ], [ 104.012496948242244, 1.347499012947083 ], [ 104.012496948242244, 1.347221016883964 ], [ 104.012222290039062, 1.346945047378597 ], [ 104.012222290039062, 1.346389055252075 ], [ 104.011947631836051, 1.346111059188956 ], [ 104.011947631836051, 1.345832943916434 ], [ 104.011665344238281, 1.345554947853145 ], [ 104.011665344238281, 1.34499895572668 ], [ 104.011108398437543, 1.344444990158138 ], [ 104.011108398437543, 1.343888998031673 ], [ 104.010833740234318, 1.343611001968497 ], [ 104.010833740234318, 1.343333005905208 ], [ 104.010559082031307, 1.343055009842033 ], [ 104.010559082031307, 1.342223048210201 ], [ 104.010276794433537, 1.341945052147025 ], [ 104.010276794433537, 1.341667056083736 ], [ 104.008613586425781, 1.340000987052861 ], [ 104.008331298828239, 1.340276956558284 ], [ 104.008056640625057, 1.340276956558284 ], [ 104.008056640625057, 1.339722990989742 ], [ 104.007774353027457, 1.339444994926396 ], [ 104.008056640625057, 1.339166998863277 ], [ 104.008056640625057, 1.337501049041805 ], [ 104.007225036621037, 1.336666941642818 ], [ 104.006874084472656, 1.336424946785087 ], [ 104.006599426269631, 1.33516895771038 ], [ 104.006385803222713, 1.334444046020565 ], [ 104.005279541015739, 1.334444046020565 ], [ 104.005279541015739, 1.334166049957275 ], [ 104.004997253417969, 1.3338880538941 ], [ 104.004997253417969, 1.333331942558288 ], [ 104.004722595214957, 1.333055973053092 ], [ 104.004722595214957, 1.331943988800163 ], [ 104.004447937011776, 1.331665992736816 ], [ 104.004447937011776, 1.331112027168274 ], [ 104.004165649414006, 1.331112027168274 ], [ 104.003890991210994, 1.330834031105155 ], [ 104.003890991210994, 1.330556035041809 ], [ 104.003608703613281, 1.330556035041809 ], [ 104.002777099609489, 1.331387996673641 ], [ 104.002777099609489, 1.331665992736816 ], [ 104.00250244140625, 1.331943988800163 ], [ 104.00250244140625, 1.332499980926627 ], [ 104.002220153808707, 1.332777976989746 ], [ 104.002220153808707, 1.333610057830811 ], [ 104.002777099609489, 1.334166049957275 ], [ 104.002777099609489, 1.335831999778748 ], [ 104.003334045410213, 1.336387991905212 ], [ 104.003334045410213, 1.336666941642818 ], [ 104.003890991210994, 1.337223052978629 ], [ 104.003890991210994, 1.337501049041805 ], [ 104.004165649414006, 1.337779045104924 ], [ 104.002777099609489, 1.339166998863277 ], [ 104.003051757812486, 1.339444994926396 ], [ 104.003051757812486, 1.339722990989742 ], [ 104.003334045410213, 1.339722990989742 ], [ 104.003890991210994, 1.340276956558284 ], [ 104.003890991210994, 1.340554952621574 ], [ 104.004165649414006, 1.340832948684749 ], [ 104.004165649414006, 1.341388940811214 ], [ 104.004447937011776, 1.341667056083736 ], [ 104.004447937011776, 1.342223048210201 ], [ 104.00555419921875, 1.343333005905208 ], [ 104.00555419921875, 1.343611001968497 ], [ 104.00583648681652, 1.343888998031673 ], [ 104.00583648681652, 1.344444990158138 ], [ 104.00555419921875, 1.344722986221257 ], [ 104.00583648681652, 1.34499895572668 ], [ 104.00583648681652, 1.345832943916434 ], [ 104.006111145019531, 1.346111059188956 ], [ 104.006111145019531, 1.346389055252075 ], [ 104.006385803222713, 1.346389055252075 ], [ 104.006668090820298, 1.346667051315421 ], [ 104.006668090820298, 1.346945047378597 ], [ 104.007225036621037, 1.347499012947083 ], [ 104.007225036621037, 1.347777009010429 ], [ 104.007499694824276, 1.348055005073547 ], [ 104.007499694824276, 1.348610997200069 ], [ 104.007774353027457, 1.348889946937675 ], [ 104.007774353027457, 1.350556015968323 ], [ 104.008331298828239, 1.351112008094788 ], [ 104.008331298828239, 1.351390004158133 ], [ 104.008613586425781, 1.351668000221252 ], [ 104.008613586425781, 1.351943969726619 ], [ 104.009445190429744, 1.35277795791626 ], [ 104.009445190429744, 1.353055953979606 ], [ 104.009719848632812, 1.353333950042724 ], [ 104.009719848632812, 1.353889942169189 ], [ 104.010002136230526, 1.354166030883732 ], [ 104.010002136230526, 1.354444026947078 ], [ 104.010276794433537, 1.354722023010254 ], [ 104.010276794433537, 1.355278015136719 ], [ 104.010559082031307, 1.355556011200008 ], [ 104.010559082031307, 1.355834007263184 ], [ 104.009445190429744, 1.356943964958191 ], [ 104.009162902832017, 1.356943964958191 ], [ 104.008613586425781, 1.357499957084656 ], [ 104.008613586425781, 1.357777953147945 ], [ 104.00888824462902, 1.358055949211121 ], [ 104.00888824462902, 1.358888030052128 ], [ 104.009162902832017, 1.359166026115474 ], [ 104.009162902832017, 1.359722018241939 ], [ 104.009445190429744, 1.360000014305115 ], [ 104.009445190429744, 1.36055600643158 ], [ 104.010833740234318, 1.361943960189876 ], [ 104.010833740234318, 1.362221956253052 ], [ 104.012222290039062, 1.363610029220695 ], [ 104.012222290039062, 1.365000963211116 ], [ 104.012496948242244, 1.365278959274406 ], [ 104.013610839843807, 1.365278959274406 ], [ 104.013885498046804, 1.365000963211116 ], [ 104.013885498046804, 1.363610029220695 ], [ 104.013336181640611, 1.36305403709423 ], [ 104.013336181640611, 1.362501025200004 ], [ 104.012222290039062, 1.361387968063411 ], [ 104.012222290039062, 1.360278010368404 ], [ 104.010833740234318, 1.358888030052128 ], [ 104.010833740234318, 1.358333945274467 ], [ 104.010559082031307, 1.358055949211121 ], [ 104.010559082031307, 1.357777953147945 ], [ 104.01139068603527, 1.356943964958191 ], [ 104.012496948242244, 1.356943964958191 ], [ 104.013053894043026, 1.357499957084656 ], [ 104.013053894043026, 1.357777953147945 ], [ 104.014167785644588, 1.358888030052128 ], [ 104.015274047851548, 1.357777953147945 ], [ 104.015274047851548, 1.357499957084656 ], [ 104.014724731445312, 1.356943964958191 ], [ 104.014724731445312, 1.356387972831726 ], [ 104.015274047851548, 1.356387972831726 ], [ 104.016670227050838, 1.355000019073543 ], [ 104.017776489257812, 1.356112003326473 ], [ 104.017776489257812, 1.356665968895015 ], [ 104.018058776855582, 1.356943964958191 ], [ 104.018058776855582, 1.357499957084656 ], [ 104.018608093261818, 1.358055949211121 ], [ 104.018608093261818, 1.358888030052128 ], [ 104.018890380859361, 1.359166026115474 ], [ 104.018890380859361, 1.359444022178593 ], [ 104.019447326660142, 1.360000014305115 ], [ 104.019447326660142, 1.36055600643158 ], [ 104.019721984863338, 1.360834002494869 ], [ 104.019721984863338, 1.361387968063411 ], [ 104.019996643066335, 1.361665964126587 ], [ 104.019996643066335, 1.362221956253052 ], [ 104.020278930664119, 1.362501025200004 ], [ 104.020278930664119, 1.362779021263179 ], [ 104.02138519287108, 1.36388897895813 ], [ 104.021667480468864, 1.36388897895813 ], [ 104.021942138671861, 1.364166975021476 ], [ 104.022224426269588, 1.364166975021476 ], [ 104.023056030273381, 1.365000963211116 ], [ 104.023056030273381, 1.365278959274406 ], [ 104.023612976074148, 1.365833044052124 ], [ 104.023887634277401, 1.365833044052124 ] ] ], [ [ [ 103.693611145019645, 1.291944980621452 ], [ 103.693611145019645, 1.290277004242 ], [ 103.692497253417912, 1.289167046546993 ], [ 103.692222595214901, 1.289167046546993 ], [ 103.691886901855582, 1.288831949234122 ], [ 103.691665649414119, 1.288611054420528 ], [ 103.691368103027273, 1.288303017616329 ], [ 103.691108703613324, 1.287996053695736 ], [ 103.690849304199219, 1.287665009498653 ], [ 103.690643310546875, 1.287268996238822 ], [ 103.690582275390724, 1.286712050438041 ], [ 103.690643310546875, 1.286087989807129 ], [ 103.690879821777401, 1.285627961158696 ], [ 103.691055297851619, 1.285248994827327 ], [ 103.690994262695298, 1.284891009330806 ], [ 103.690811157226562, 1.284562945366019 ], [ 103.690574645996207, 1.284283041954097 ], [ 103.690391540527457, 1.283980011940002 ], [ 103.690261840820298, 1.283619999885559 ], [ 103.690086364746094, 1.283295989036617 ], [ 103.68988037109375, 1.282940030098075 ], [ 103.689498901367188, 1.282547950744686 ], [ 103.688697814941349, 1.282364010810852 ], [ 103.68817138671875, 1.282464027404785 ], [ 103.687789916992188, 1.282441020012016 ], [ 103.687500000000114, 1.282176971435547 ], [ 103.687225341796861, 1.281774044036922 ], [ 103.686943054199332, 1.281276941299438 ], [ 103.686614990234375, 1.280748009681645 ], [ 103.686203002929631, 1.28030800819397 ], [ 103.686027526855412, 1.280089020729178 ], [ 103.685760498046932, 1.279978036880607 ], [ 103.685325622558594, 1.279860973358154 ], [ 103.684722900390625, 1.280084967613334 ], [ 103.684165954589844, 1.280555963516235 ], [ 103.683891296386818, 1.280832052230948 ], [ 103.683891296386818, 1.28250098228466 ], [ 103.681663513183594, 1.284723043441772 ], [ 103.681663513183594, 1.285001039505119 ], [ 103.681945800781293, 1.285279035568237 ], [ 103.681945800781293, 1.285555005073604 ], [ 103.683609008789062, 1.287222981453056 ], [ 103.683609008789062, 1.287500977516174 ], [ 103.683891296386818, 1.287776947021598 ], [ 103.683891296386818, 1.288054943084717 ], [ 103.684165954589844, 1.288333058357239 ], [ 103.684165954589844, 1.288611054420528 ], [ 103.685554504394588, 1.290001034736633 ], [ 103.685836791992131, 1.289999008178711 ], [ 103.686386108398537, 1.290555000305176 ], [ 103.686668395996151, 1.290555000305176 ], [ 103.687225341796861, 1.291110992431641 ], [ 103.687500000000114, 1.291110992431641 ], [ 103.687774658203125, 1.291388988494987 ], [ 103.688331604003906, 1.291388988494987 ], [ 103.688613891601605, 1.291110992431641 ], [ 103.688888549804631, 1.291110992431641 ], [ 103.689163208007869, 1.290832996368465 ], [ 103.689445495605412, 1.290832996368465 ], [ 103.689720153808651, 1.290555000305176 ], [ 103.690277099609375, 1.290555000305176 ], [ 103.690551757812614, 1.290832996368465 ], [ 103.691665649414119, 1.290832996368465 ], [ 103.692222595214901, 1.291388988494987 ], [ 103.692222595214901, 1.291944980621452 ], [ 103.692497253417912, 1.29222297668457 ], [ 103.692497253417912, 1.293055057525635 ], [ 103.693336486816392, 1.293889045715389 ], [ 103.693611145019645, 1.293889045715389 ], [ 103.694442749023438, 1.293055057525635 ], [ 103.693885803222656, 1.292498946189937 ], [ 103.693885803222656, 1.29222297668457 ], [ 103.693611145019645, 1.291944980621452 ] ] ], [ [ [ 103.707221984863281, 1.293889045715389 ], [ 103.707496643066463, 1.2936110496521 ], [ 103.708885192871207, 1.2936110496521 ], [ 103.709724426269531, 1.292776942253113 ], [ 103.709724426269531, 1.292498946189937 ], [ 103.710830688476548, 1.291388988494987 ], [ 103.711112976074276, 1.291388988494987 ], [ 103.711387634277287, 1.291666984558105 ], [ 103.711387634277287, 1.292498946189937 ], [ 103.711669921875057, 1.292776942253113 ], [ 103.711944580078239, 1.292776942253113 ], [ 103.71250152587902, 1.29222297668457 ], [ 103.71250152587902, 1.291944980621452 ], [ 103.713058471679801, 1.291388988494987 ], [ 103.713333129882812, 1.291388988494987 ], [ 103.714447021484318, 1.290277004242 ], [ 103.714447021484318, 1.289999008178711 ], [ 103.714721679687557, 1.289723038673515 ], [ 103.714721679687557, 1.289445042610168 ], [ 103.716392517089844, 1.287776947021598 ], [ 103.716392517089844, 1.286388993263245 ], [ 103.716667175293026, 1.286110997200126 ], [ 103.716667175293026, 1.28583300113678 ], [ 103.717224121093807, 1.285279035568237 ], [ 103.717498779296818, 1.285279035568237 ], [ 103.718055725097599, 1.28583300113678 ], [ 103.718330383300824, 1.28583300113678 ], [ 103.718612670898551, 1.285555005073604 ], [ 103.718887329101562, 1.285555005073604 ], [ 103.722221374511832, 1.282222986221313 ], [ 103.722503662109375, 1.282222986221313 ], [ 103.722747802734432, 1.282372951507568 ], [ 103.72308349609375, 1.2825510501861 ], [ 103.723388671875114, 1.28276002407074 ], [ 103.723854064941406, 1.282910943031425 ], [ 103.724563598632812, 1.282992959022579 ], [ 103.725151062011719, 1.283115983009338 ], [ 103.725639343261832, 1.283416986465454 ], [ 103.72618103027348, 1.283794999122676 ], [ 103.726837158203068, 1.284235000610408 ], [ 103.726928710937557, 1.284219026565552 ], [ 103.727218627929616, 1.284167051315308 ], [ 103.727500915527401, 1.284167051315308 ], [ 103.727775573730582, 1.283889055252132 ], [ 103.727775573730582, 1.283611059188843 ], [ 103.728057861328182, 1.283331990242061 ], [ 103.728057861328182, 1.282778978347778 ], [ 103.728332519531364, 1.28250098228466 ], [ 103.729164123535142, 1.281666040420589 ], [ 103.729446411132869, 1.281666040420589 ], [ 103.729721069335923, 1.281388044357413 ], [ 103.730278015136662, 1.281388044357413 ], [ 103.733055114746151, 1.278609991073665 ], [ 103.733551025390611, 1.278373003006095 ], [ 103.734146118164062, 1.278375029564017 ], [ 103.734695434570298, 1.27859902381897 ], [ 103.734939575195355, 1.278658032417354 ], [ 103.735191345214957, 1.278718948364315 ], [ 103.735488891601548, 1.278432011604423 ], [ 103.735794067382756, 1.278143048286438 ], [ 103.736335754394645, 1.277598023414669 ], [ 103.736694335937557, 1.277091979980469 ], [ 103.736946105956974, 1.276666045189017 ], [ 103.737503051757926, 1.276111960411129 ], [ 103.737777709960938, 1.276111960411129 ], [ 103.738052368164176, 1.275833964347839 ], [ 103.738334655761719, 1.275833964347839 ], [ 103.739723205566463, 1.274443984031734 ], [ 103.739723205566463, 1.272500038146916 ], [ 103.737503051757926, 1.270277976989803 ], [ 103.737503051757926, 1.269999980926513 ], [ 103.735557556152457, 1.268054962158203 ], [ 103.735275268554673, 1.268054962158203 ], [ 103.733886718749929, 1.269446015357971 ], [ 103.733612060546932, 1.269168019294796 ], [ 103.733329772949148, 1.269168019294796 ], [ 103.733055114746151, 1.268890023231506 ], [ 103.731941223144645, 1.269999980926513 ], [ 103.731109619140668, 1.269999980926513 ], [ 103.730644226074162, 1.270166039466915 ], [ 103.730346679687557, 1.270264029502925 ], [ 103.729949951171875, 1.270354986190796 ], [ 103.729606628418026, 1.270549058914185 ], [ 103.729240417480526, 1.270743012428397 ], [ 103.728828430175824, 1.270908951759338 ], [ 103.728401184082031, 1.271077990531978 ], [ 103.728218078613267, 1.271090984344596 ], [ 103.72794342041027, 1.271108984947205 ], [ 103.727462768554673, 1.271077990531978 ], [ 103.726982116699332, 1.27093601226818 ], [ 103.726478576660156, 1.271000027656555 ], [ 103.72591400146483, 1.271077990531978 ], [ 103.725250244140682, 1.271108984947205 ], [ 103.724617004394531, 1.27154195308691 ], [ 103.724357604980412, 1.272003054618835 ], [ 103.724128723144631, 1.272333025932369 ], [ 103.723831176757812, 1.272560954094047 ], [ 103.723480224609432, 1.272789001464901 ], [ 103.723075866699205, 1.273018956184387 ], [ 103.722549438476619, 1.273149013519401 ], [ 103.722007751464886, 1.273347973823604 ], [ 103.721488952636662, 1.273612022399902 ], [ 103.721008300781307, 1.273910999298209 ], [ 103.720558166503892, 1.274165987968388 ], [ 103.715835571289062, 1.278890013694763 ], [ 103.71555328369152, 1.278887987136955 ], [ 103.715278625488338, 1.27916598320013 ], [ 103.714164733886776, 1.27916598320013 ], [ 103.713058471679801, 1.278056025505123 ], [ 103.712776184082031, 1.278056025505123 ], [ 103.71250152587902, 1.277778029441776 ], [ 103.71221923828125, 1.277778029441776 ], [ 103.711669921875057, 1.278334021568241 ], [ 103.711387634277287, 1.278334021568241 ], [ 103.711112976074276, 1.278609991073665 ], [ 103.710830688476548, 1.278609991073665 ], [ 103.710556030273494, 1.278890013694763 ], [ 103.70916748046875, 1.278887987136955 ], [ 103.708610534668026, 1.279443979263249 ], [ 103.708335876464787, 1.279443979263249 ], [ 103.708053588867244, 1.279721975326595 ], [ 103.707778930664062, 1.279721975326595 ], [ 103.70694732666027, 1.280555963516235 ], [ 103.70694732666027, 1.281388044357413 ], [ 103.7066650390625, 1.281666040420589 ], [ 103.7066650390625, 1.283611059188843 ], [ 103.706390380859489, 1.283889055252132 ], [ 103.706390380859489, 1.285001039505119 ], [ 103.706108093261719, 1.285277009010315 ], [ 103.706108093261719, 1.286110997200126 ], [ 103.705833435058707, 1.286388993263245 ], [ 103.705833435058707, 1.286666989326591 ], [ 103.705558776855526, 1.286944985389709 ], [ 103.705558776855526, 1.287500977516174 ], [ 103.705276489257756, 1.287776947021598 ], [ 103.705276489257756, 1.288054943084717 ], [ 103.704170227050781, 1.289167046546993 ], [ 103.704170227050781, 1.289445042610168 ], [ 103.703887939453182, 1.289723038673515 ], [ 103.703887939453182, 1.290832996368465 ], [ 103.704444885253963, 1.291388988494987 ], [ 103.704719543456974, 1.291388988494987 ], [ 103.705276489257756, 1.291944980621452 ], [ 103.705558776855526, 1.291944980621452 ], [ 103.706108093261719, 1.292498946189937 ], [ 103.706108093261719, 1.293055057525635 ], [ 103.70644378662108, 1.293388009071407 ], [ 103.70694732666027, 1.293889045715389 ], [ 103.707221984863281, 1.293889045715389 ] ] ], [ [ [ 103.723335266113338, 1.287222981453056 ], [ 103.723335266113338, 1.286944985389709 ], [ 103.722778320312614, 1.286944985389709 ], [ 103.722778320312614, 1.287222981453056 ], [ 103.722221374511832, 1.287222981453056 ], [ 103.722221374511832, 1.286944985389709 ], [ 103.721664428711051, 1.286944985389709 ], [ 103.721664428711051, 1.287500977516174 ], [ 103.721946716308594, 1.287776947021598 ], [ 103.721946716308594, 1.288054943084717 ], [ 103.722221374511832, 1.288333058357239 ], [ 103.722221374511832, 1.288611054420528 ], [ 103.721664428711051, 1.289167046546993 ], [ 103.722503662109375, 1.289999008178711 ], [ 103.722503662109375, 1.290277004242 ], [ 103.723335266113338, 1.290277004242 ], [ 103.723335266113338, 1.289723038673515 ], [ 103.723892211914119, 1.289445042610168 ], [ 103.723892211914119, 1.287776947021598 ], [ 103.723335266113338, 1.287222981453056 ] ] ], [ [ [ 103.698890686035213, 1.28583300113678 ], [ 103.699165344238395, 1.285555005073604 ], [ 103.699722290039176, 1.285555005073604 ], [ 103.700279235839957, 1.285001039505119 ], [ 103.700836181640668, 1.285001039505119 ], [ 103.702224731445256, 1.283611059188843 ], [ 103.702224731445256, 1.282775998115539 ], [ 103.703887939453182, 1.281110048294067 ], [ 103.703887939453182, 1.280832052230948 ], [ 103.704170227050781, 1.280555963516235 ], [ 103.704170227050781, 1.279443979263249 ], [ 103.704444885253963, 1.27916598320013 ], [ 103.704444885253963, 1.278609991073665 ], [ 103.704719543456974, 1.278334021568241 ], [ 103.704719543456974, 1.278056025505123 ], [ 103.705276489257756, 1.277500033378658 ], [ 103.705276489257756, 1.277222037315482 ], [ 103.70694732666027, 1.275555968284664 ], [ 103.707496643066463, 1.275555968284664 ], [ 103.707778930664062, 1.275277972221375 ], [ 103.708053588867244, 1.275277972221375 ], [ 103.708335876464787, 1.275555968284664 ], [ 103.70916748046875, 1.275555968284664 ], [ 103.709442138671989, 1.275833964347839 ], [ 103.710556030273494, 1.275833964347839 ], [ 103.710830688476548, 1.275555968284664 ], [ 103.711112976074276, 1.275555968284664 ], [ 103.711387634277287, 1.275277972221375 ], [ 103.711669921875057, 1.275277972221375 ], [ 103.71221923828125, 1.275833964347839 ], [ 103.713058471679801, 1.275833964347839 ], [ 103.714164733886776, 1.274721980094853 ], [ 103.714164733886776, 1.274443984031734 ], [ 103.716392517089844, 1.272222042083797 ], [ 103.716667175293026, 1.272222042083797 ], [ 103.718055725097599, 1.270833969116268 ], [ 103.718612670898551, 1.270833969116268 ], [ 103.718887329101562, 1.271111965179443 ], [ 103.719444274902344, 1.271111965179443 ], [ 103.720832824707088, 1.269721031189022 ], [ 103.722778320312614, 1.269721031189022 ], [ 103.723052978515611, 1.269443035125732 ], [ 103.723335266113338, 1.269446015357971 ], [ 103.723892211914119, 1.268890023231506 ], [ 103.724166870117131, 1.268890023231506 ], [ 103.724441528320355, 1.269168019294796 ], [ 103.724563598632812, 1.269047021865845 ], [ 103.724723815918082, 1.268890023231506 ], [ 103.725830078125114, 1.268890023231506 ], [ 103.726387023925838, 1.268332958221549 ], [ 103.726623535156349, 1.267843008041382 ], [ 103.726715087890625, 1.267328023910466 ], [ 103.726585388183651, 1.266582965850773 ], [ 103.726425170898551, 1.265776038169861 ], [ 103.726310729980469, 1.265247941017208 ], [ 103.726173400878963, 1.264965057373047 ], [ 103.726058959961051, 1.264701008796806 ], [ 103.725875854492131, 1.264428973197937 ], [ 103.725769042968807, 1.264032959938049 ], [ 103.72554779052733, 1.263628959655761 ], [ 103.725250244140682, 1.263211965561027 ], [ 103.724884033203239, 1.26281297206873 ], [ 103.724464416503963, 1.262459993362427 ], [ 103.724052429199261, 1.262102007865849 ], [ 103.72365570068358, 1.261715054512081 ], [ 103.723251342773438, 1.261304974555912 ], [ 103.722785949707145, 1.260882973671016 ], [ 103.722167968750057, 1.260594010353032 ], [ 103.721832275390739, 1.260493040084839 ], [ 103.721519470214844, 1.260480046272391 ], [ 103.721107482910085, 1.260545969009513 ], [ 103.720672607421918, 1.260632038116569 ], [ 103.720298767089943, 1.260841965675468 ], [ 103.71994781494152, 1.261106014251709 ], [ 103.719566345214943, 1.261378049850577 ], [ 103.719139099121151, 1.261628031730709 ], [ 103.718704223632798, 1.261872053146419 ], [ 103.718330383300824, 1.26217794418335 ], [ 103.717964172363324, 1.262462019920349 ], [ 103.717567443847713, 1.262676954269409 ], [ 103.717094421386832, 1.262802004814262 ], [ 103.716644287109432, 1.262997984886283 ], [ 103.716224670410156, 1.263234972953853 ], [ 103.715934753418082, 1.263545036316032 ], [ 103.715583801269474, 1.263756990432853 ], [ 103.715240478515611, 1.264004945755062 ], [ 103.714866638183594, 1.264143943786678 ], [ 103.714439392089787, 1.264166951179618 ], [ 103.713958740234432, 1.264214992523136 ], [ 103.713500976562486, 1.264443039894161 ], [ 103.712959289550767, 1.264701008796806 ], [ 103.712341308593693, 1.264932990074158 ], [ 103.711860656738338, 1.265329957008362 ], [ 103.711433410644517, 1.265758037567252 ], [ 103.711097717285199, 1.266309976577816 ], [ 103.710762023925895, 1.266883969306889 ], [ 103.710426330566349, 1.267464995384273 ], [ 103.710151672363324, 1.268000960350037 ], [ 103.709953308105526, 1.268437981605473 ], [ 103.709701538085938, 1.268731951713676 ], [ 103.709419250488324, 1.268949031829834 ], [ 103.70916748046875, 1.269168019294796 ], [ 103.708885192871207, 1.269168019294796 ], [ 103.708610534668026, 1.269446015357971 ], [ 103.708335876464787, 1.269446015357971 ], [ 103.708053588867244, 1.269168019294796 ], [ 103.707778930664062, 1.269168019294796 ], [ 103.707656860351605, 1.269047021865845 ], [ 103.707496643066463, 1.268890023231506 ], [ 103.707221984863281, 1.268890023231506 ], [ 103.70694732666027, 1.268612027168331 ], [ 103.7066650390625, 1.268612027168331 ], [ 103.705833435058707, 1.267776966095084 ], [ 103.705833435058707, 1.267498970031738 ], [ 103.705558776855526, 1.26722097396862 ], [ 103.705558776855526, 1.266389012336731 ], [ 103.705001831054744, 1.265833020210266 ], [ 103.706108093261719, 1.264722943306083 ], [ 103.706108093261719, 1.264444947242794 ], [ 103.706390380859489, 1.264166951179618 ], [ 103.706390380859489, 1.263610959053153 ], [ 103.7066650390625, 1.263332962989807 ], [ 103.7066650390625, 1.263054966926688 ], [ 103.707221984863281, 1.262501001358146 ], [ 103.707221984863281, 1.261945009231681 ], [ 103.707778930664062, 1.261389017105216 ], [ 103.707778930664062, 1.26111102104187 ], [ 103.708335876464787, 1.26111102104187 ], [ 103.708610534668026, 1.260833024978751 ], [ 103.709442138671989, 1.260833024978751 ], [ 103.70999908447277, 1.260277032852287 ], [ 103.710556030273494, 1.260277032852287 ], [ 103.710830688476548, 1.260000944137516 ], [ 103.711944580078239, 1.260000944137516 ], [ 103.71221923828125, 1.259722948074397 ], [ 103.712776184082031, 1.259722948074397 ], [ 103.713058471679801, 1.259444952011222 ], [ 103.713058471679801, 1.258888959884757 ], [ 103.712776184082031, 1.258610963821468 ], [ 103.712776184082031, 1.258054971694946 ], [ 103.713607788085994, 1.257223010063285 ], [ 103.713607788085994, 1.256945014 ], [ 103.713890075683594, 1.25666701793682 ], [ 103.713890075683594, 1.256389021873474 ], [ 103.714164733886776, 1.256109952926693 ], [ 103.714164733886776, 1.255275964736882 ], [ 103.714447021484318, 1.255000948906002 ], [ 103.714447021484318, 1.25444400310522 ], [ 103.713890075683594, 1.253888010978756 ], [ 103.713607788085994, 1.253888010978756 ], [ 103.713058471679801, 1.25444400310522 ], [ 103.712776184082031, 1.25444400310522 ], [ 103.71221923828125, 1.255000948906002 ], [ 103.711944580078239, 1.255000948906002 ], [ 103.711669921875057, 1.25527894496912 ], [ 103.711387634277287, 1.25527894496912 ], [ 103.711112976074276, 1.255556941032467 ], [ 103.710556030273494, 1.255556941032467 ], [ 103.710281372070312, 1.255831956863403 ], [ 103.70916748046875, 1.255831956863403 ], [ 103.708610534668026, 1.25527894496912 ], [ 103.707778930664062, 1.25527894496912 ], [ 103.707336425781364, 1.254834055900631 ], [ 103.707221984863281, 1.254721999168396 ], [ 103.70694732666027, 1.254721999168396 ], [ 103.705001831054744, 1.252778053283748 ], [ 103.704719543456974, 1.252778053283748 ], [ 103.70361328125, 1.251665949821472 ], [ 103.703330993652457, 1.251943945884761 ], [ 103.702774047851676, 1.251387953758297 ], [ 103.701667785644474, 1.251387953758297 ], [ 103.701385498046932, 1.251665949821472 ], [ 103.700836181640668, 1.251665949821472 ], [ 103.700553894042969, 1.251943945884761 ], [ 103.700279235839957, 1.251943945884761 ], [ 103.699447631835994, 1.251109957695007 ], [ 103.699165344238395, 1.25111198425293 ], [ 103.698890686035213, 1.250833988189811 ], [ 103.698608398437443, 1.250833988189811 ], [ 103.698333740234432, 1.25111198425293 ], [ 103.697502136230469, 1.25111198425293 ], [ 103.697219848632926, 1.251387953758297 ], [ 103.696113586425881, 1.251387953758297 ], [ 103.695831298828182, 1.251665949821472 ], [ 103.695556640624943, 1.251665949821472 ], [ 103.695274353027401, 1.251943945884761 ], [ 103.695274353027401, 1.252221941947937 ], [ 103.694999694824219, 1.252500057220459 ], [ 103.694999694824219, 1.254166007041931 ], [ 103.694725036621136, 1.25444400310522 ], [ 103.694725036621136, 1.254721999168396 ], [ 103.694442749023438, 1.255000948906002 ], [ 103.694442749023438, 1.255275964736882 ], [ 103.693611145019645, 1.256109952926693 ], [ 103.693611145019645, 1.256389021873474 ], [ 103.693054199218864, 1.256945014 ], [ 103.693054199218864, 1.257223010063285 ], [ 103.692779541015682, 1.25750100612646 ], [ 103.692779541015682, 1.25777900218975 ], [ 103.693054199218864, 1.258054971694946 ], [ 103.693054199218864, 1.259166955947933 ], [ 103.693336486816392, 1.259444952011222 ], [ 103.693336486816392, 1.263610959053153 ], [ 103.693054199218864, 1.263888955116329 ], [ 103.693054199218864, 1.264166951179618 ], [ 103.692779541015682, 1.264444947242794 ], [ 103.692779541015682, 1.264722943306083 ], [ 103.692222595214901, 1.265277028083801 ], [ 103.691390991210938, 1.265277028083801 ], [ 103.691230773925767, 1.265120029449463 ], [ 103.691108703613324, 1.264999032020683 ], [ 103.690834045410156, 1.265001058578605 ], [ 103.690551757812614, 1.264722943306083 ], [ 103.690551757812614, 1.264166951179618 ], [ 103.689720153808651, 1.263332962989807 ], [ 103.688888549804631, 1.264166951179618 ], [ 103.688888549804631, 1.264444947242794 ], [ 103.688613891601605, 1.264722943306083 ], [ 103.688056945800838, 1.264722943306083 ], [ 103.687911987304801, 1.264582037925777 ], [ 103.687774658203125, 1.264444947242794 ], [ 103.687500000000114, 1.264444947242794 ], [ 103.686668395996151, 1.265277028083801 ], [ 103.686386108398537, 1.265277028083801 ], [ 103.685836791992131, 1.265833020210266 ], [ 103.685836791992131, 1.266667008400077 ], [ 103.685554504394588, 1.266942977905273 ], [ 103.685554504394588, 1.26722097396862 ], [ 103.685279846191406, 1.267498970031738 ], [ 103.685279846191406, 1.267776966095084 ], [ 103.684997558593793, 1.268054962158203 ], [ 103.684722900390625, 1.267776966095084 ], [ 103.684448242187599, 1.267498970031738 ], [ 103.684165954589844, 1.267498970031738 ], [ 103.683609008789062, 1.266942977905273 ], [ 103.683052062988338, 1.267498970031738 ], [ 103.683052062988338, 1.268054962158203 ], [ 103.683334350586051, 1.268332958221549 ], [ 103.683334350586051, 1.268612027168331 ], [ 103.683609008789062, 1.268890023231506 ], [ 103.683609008789062, 1.269168019294796 ], [ 103.683891296386818, 1.269446015357971 ], [ 103.683891296386818, 1.270833969116268 ], [ 103.683609008789062, 1.271111965179443 ], [ 103.683609008789062, 1.271389961242733 ], [ 103.683334350586051, 1.271666049957332 ], [ 103.683334350586051, 1.272500038146916 ], [ 103.683052062988338, 1.272778034210262 ], [ 103.683052062988338, 1.273056030273381 ], [ 103.682777404785099, 1.273334026336727 ], [ 103.683052062988338, 1.273612022399902 ], [ 103.683052062988338, 1.273890018463192 ], [ 103.683609008789062, 1.274443984031734 ], [ 103.684448242187599, 1.273612022399902 ], [ 103.684448242187599, 1.273334026336727 ], [ 103.685279846191406, 1.272500038146916 ], [ 103.685836791992131, 1.272500038146916 ], [ 103.686668395996151, 1.273334026336727 ], [ 103.686943054199332, 1.273334026336727 ], [ 103.687225341796861, 1.273612022399902 ], [ 103.688056945800838, 1.273612022399902 ], [ 103.688362121582031, 1.274446010589656 ], [ 103.688613891601605, 1.275277972221375 ], [ 103.691108703613324, 1.277778029441776 ], [ 103.692222595214901, 1.277778029441776 ], [ 103.692779541015682, 1.277222037315482 ], [ 103.692779541015682, 1.276944041252193 ], [ 103.693054199218864, 1.276666045189017 ], [ 103.692779541015682, 1.276388049125728 ], [ 103.692779541015682, 1.274443984031734 ], [ 103.692497253417912, 1.274443984031734 ], [ 103.692222595214901, 1.274165987968388 ], [ 103.692222595214901, 1.273890018463192 ], [ 103.691947937011719, 1.273612022399902 ], [ 103.691947937011719, 1.273334026336727 ], [ 103.691665649414119, 1.273056030273381 ], [ 103.691947937011719, 1.272778034210262 ], [ 103.691947937011719, 1.272500038146916 ], [ 103.692497253417912, 1.271944046020621 ], [ 103.693336486816392, 1.271944046020621 ], [ 103.693611145019645, 1.271666049957332 ], [ 103.693885803222656, 1.271666049957332 ], [ 103.694168090820426, 1.271944046020621 ], [ 103.693885803222656, 1.272222042083797 ], [ 103.694168090820426, 1.272500038146916 ], [ 103.694168090820426, 1.272778034210262 ], [ 103.694442749023438, 1.273056030273381 ], [ 103.694442749023438, 1.273334026336727 ], [ 103.694168090820426, 1.273612022399902 ], [ 103.694168090820426, 1.273890018463192 ], [ 103.694725036621136, 1.274443984031734 ], [ 103.694725036621136, 1.275555968284664 ], [ 103.694442749023438, 1.275833964347839 ], [ 103.694442749023438, 1.276666045189017 ], [ 103.695274353027401, 1.277500033378658 ], [ 103.695274353027401, 1.278056025505123 ], [ 103.695556640624943, 1.278334021568241 ], [ 103.695556640624943, 1.278887987136955 ], [ 103.695831298828182, 1.27916598320013 ], [ 103.695274353027401, 1.279721975326595 ], [ 103.695274353027401, 1.279999971389713 ], [ 103.694999694824219, 1.28027796745306 ], [ 103.694999694824219, 1.280555963516235 ], [ 103.694725036621136, 1.280832052230948 ], [ 103.694725036621136, 1.281110048294067 ], [ 103.694442749023438, 1.281388044357413 ], [ 103.694442749023438, 1.281944036483878 ], [ 103.694999694824219, 1.28250098228466 ], [ 103.695274353027401, 1.28250098228466 ], [ 103.695556640624943, 1.282778978347778 ], [ 103.696388244628906, 1.282778978347778 ], [ 103.696945190429688, 1.283331990242061 ], [ 103.696945190429688, 1.283611059188843 ], [ 103.697502136230469, 1.284167051315308 ], [ 103.697502136230469, 1.284445047378654 ], [ 103.698890686035213, 1.28583300113678 ] ] ], [ [ [ 103.680046081543026, 1.27981603145605 ], [ 103.680496215820256, 1.27957904338848 ], [ 103.681037902832145, 1.279598951339665 ], [ 103.681388854980582, 1.27954196929943 ], [ 103.681564331054744, 1.279513001442012 ], [ 103.681999206543068, 1.279163956642151 ], [ 103.682418823242188, 1.278704047203121 ], [ 103.682907104492244, 1.278239011764526 ], [ 103.683456420898494, 1.277866959571895 ], [ 103.683914184570256, 1.277595996856689 ], [ 103.684242248535213, 1.2773339748382 ], [ 103.684371948242188, 1.27706694602972 ], [ 103.684211730957088, 1.276736974716187 ], [ 103.68387603759777, 1.276358008384761 ], [ 103.683525085449318, 1.275938987731933 ], [ 103.683120727539176, 1.27559494972229 ], [ 103.682640075683594, 1.275303006172237 ], [ 103.682014465331974, 1.275025010108948 ], [ 103.681716918945369, 1.274940967559814 ], [ 103.681297302246094, 1.274813055992126 ], [ 103.680717468261719, 1.274883985519409 ], [ 103.680191040039119, 1.275109052658195 ], [ 103.679763793945312, 1.275393962860107 ], [ 103.679412841796875, 1.275696992874202 ], [ 103.679046630859432, 1.275938987731933 ], [ 103.678657531738338, 1.276113986969108 ], [ 103.678298950195369, 1.276272058486938 ], [ 103.67795562744152, 1.276376962661857 ], [ 103.677604675293082, 1.276465058326835 ], [ 103.677238464355412, 1.276626944542045 ], [ 103.676811218261818, 1.27674305439001 ], [ 103.676445007324318, 1.276960015296993 ], [ 103.676200866699261, 1.277253985405025 ], [ 103.676177978515668, 1.277729988098258 ], [ 103.676239013671989, 1.278347969055176 ], [ 103.676307678222656, 1.278926968574581 ], [ 103.676414489746136, 1.279562950134277 ], [ 103.676681518554631, 1.280107021331787 ], [ 103.677078247070312, 1.280316948890686 ], [ 103.67758941650402, 1.280519962310791 ], [ 103.677917480468807, 1.280578970909175 ], [ 103.678253173828111, 1.280639052390995 ], [ 103.678680419921932, 1.280537962913627 ], [ 103.679115295410256, 1.280436038971061 ], [ 103.679649353027401, 1.280118942260742 ], [ 103.680046081543026, 1.27981603145605 ] ] ], [ [ [ 103.813056945800724, 1.262501001358146 ], [ 103.811386108398438, 1.262501001358146 ], [ 103.811386108398438, 1.262776970863342 ], [ 103.810554504394645, 1.263054966926688 ], [ 103.811111450195426, 1.263610959053153 ], [ 103.811111450195426, 1.263888955116329 ], [ 103.811386108398438, 1.264166951179618 ], [ 103.811386108398438, 1.264444947242794 ], [ 103.811523437499943, 1.264582037925777 ], [ 103.811668395996207, 1.264722943306083 ], [ 103.812225341796932, 1.264722943306083 ], [ 103.812225341796932, 1.264166951179618 ], [ 103.813331604003963, 1.263610959053153 ], [ 103.813613891601506, 1.263332962989807 ], [ 103.813056945800724, 1.262776970863342 ], [ 103.813056945800724, 1.262501001358146 ] ] ], [ [ [ 103.836669921875114, 1.264444947242794 ], [ 103.837776184082088, 1.263332962989807 ], [ 103.837776184082088, 1.263054966926688 ], [ 103.840278625488395, 1.260555028915405 ], [ 103.840553283691406, 1.260555028915405 ], [ 103.842498779296932, 1.258610963821468 ], [ 103.842498779296932, 1.257223010063285 ], [ 103.841667175292898, 1.256389021873474 ], [ 103.841392517089901, 1.256389021873474 ], [ 103.841110229492188, 1.25666701793682 ], [ 103.840278625488395, 1.25666701793682 ], [ 103.839996337890611, 1.256389021873474 ], [ 103.839447021484418, 1.256389021873474 ], [ 103.839164733886832, 1.256109952926693 ], [ 103.838333129882869, 1.256109952926693 ], [ 103.838195800781364, 1.255970954895133 ], [ 103.838058471679673, 1.255831956863403 ], [ 103.837776184082088, 1.255831956863403 ], [ 103.836387634277344, 1.25444400310522 ], [ 103.836112976074332, 1.254721999168396 ], [ 103.835830688476619, 1.254721999168396 ], [ 103.835556030273366, 1.255000948906002 ], [ 103.834999084472656, 1.255000948906002 ], [ 103.834724426269588, 1.25527894496912 ], [ 103.833053588867301, 1.25527894496912 ], [ 103.832778930664105, 1.255556941032467 ], [ 103.832496643066349, 1.255556941032467 ], [ 103.832221984863338, 1.255831956863403 ], [ 103.831665039062557, 1.255831956863403 ], [ 103.831390380859361, 1.256109952926693 ], [ 103.830833435058594, 1.256109952926693 ], [ 103.830558776855582, 1.256389021873474 ], [ 103.830276489257812, 1.256109952926693 ], [ 103.828330993652344, 1.256109952926693 ], [ 103.828056335449276, 1.256389021873474 ], [ 103.827774047851548, 1.256389021873474 ], [ 103.827499389648551, 1.25666701793682 ], [ 103.82694244384777, 1.25666701793682 ], [ 103.826385498046989, 1.257223010063285 ], [ 103.826385498046989, 1.258054971694946 ], [ 103.82527923583983, 1.259166955947933 ], [ 103.82527923583983, 1.259722948074397 ], [ 103.824996948242244, 1.260000944137516 ], [ 103.824996948242244, 1.260555028915405 ], [ 103.82527923583983, 1.260833024978751 ], [ 103.82527923583983, 1.26111102104187 ], [ 103.825553894043026, 1.261389017105216 ], [ 103.826110839843807, 1.261389017105216 ], [ 103.827224731445312, 1.262501001358146 ], [ 103.827499389648551, 1.262501001358146 ], [ 103.827774047851548, 1.262776970863342 ], [ 103.828330993652344, 1.262776970863342 ], [ 103.828613281250057, 1.263054966926688 ], [ 103.828887939453068, 1.263054966926688 ], [ 103.829444885253835, 1.263610959053153 ], [ 103.829719543457088, 1.263610959053153 ], [ 103.830001831054801, 1.263888955116329 ], [ 103.830276489257812, 1.263888955116329 ], [ 103.830558776855582, 1.264166951179618 ], [ 103.830833435058594, 1.264166951179618 ], [ 103.831108093261776, 1.264444947242794 ], [ 103.831665039062557, 1.264444947242794 ], [ 103.831947326660156, 1.264166951179618 ], [ 103.832221984863338, 1.264166951179618 ], [ 103.832496643066349, 1.264444947242794 ], [ 103.833610534668082, 1.264444947242794 ], [ 103.83388519287108, 1.264166951179618 ], [ 103.834167480468864, 1.264166951179618 ], [ 103.834442138671875, 1.264444947242794 ], [ 103.835556030273366, 1.264444947242794 ], [ 103.836112976074332, 1.264444947242794 ], [ 103.836387634277344, 1.264166951179618 ], [ 103.836669921875114, 1.264444947242794 ] ] ], [ [ [ 103.809722900390682, 1.259722948074397 ], [ 103.809997558593693, 1.259444952011222 ], [ 103.810279846191463, 1.259444952011222 ], [ 103.810554504394645, 1.259166955947933 ], [ 103.810836791992244, 1.259166955947933 ], [ 103.811111450195426, 1.258888959884757 ], [ 103.811943054199219, 1.258888959884757 ], [ 103.812225341796932, 1.258610963821468 ], [ 103.814163208007926, 1.258610963821468 ], [ 103.814445495605469, 1.258332967758292 ], [ 103.815551757812486, 1.258332967758292 ], [ 103.815834045410213, 1.258610963821468 ], [ 103.816947937011776, 1.258610963821468 ], [ 103.817222595214957, 1.258888959884757 ], [ 103.81833648681652, 1.258888959884757 ], [ 103.818611145019517, 1.258610963821468 ], [ 103.818885803222713, 1.258610963821468 ], [ 103.819168090820298, 1.258332967758292 ], [ 103.819725036621037, 1.258332967758292 ], [ 103.819999694824276, 1.258054971694946 ], [ 103.820831298828239, 1.258054971694946 ], [ 103.821113586425781, 1.25777900218975 ], [ 103.821945190429744, 1.25777900218975 ], [ 103.822502136230526, 1.257223010063285 ], [ 103.823333740234489, 1.257223010063285 ], [ 103.8236083984375, 1.256945014 ], [ 103.82389068603527, 1.256945014 ], [ 103.82527923583983, 1.255556941032467 ], [ 103.82527923583983, 1.25527894496912 ], [ 103.825553894043026, 1.255000948906002 ], [ 103.825836181640568, 1.255000948906002 ], [ 103.826110839843807, 1.254721999168396 ], [ 103.826385498046989, 1.254721999168396 ], [ 103.826667785644574, 1.25444400310522 ], [ 103.827224731445312, 1.25444400310522 ], [ 103.827499389648551, 1.254166007041931 ], [ 103.829170227050838, 1.254166007041931 ], [ 103.829444885253835, 1.253888010978756 ], [ 103.829719543457088, 1.254166007041931 ], [ 103.830001831054801, 1.254166007041931 ], [ 103.830276489257812, 1.25444400310522 ], [ 103.830558776855582, 1.25444400310522 ], [ 103.831108093261776, 1.253888010978756 ], [ 103.832778930664105, 1.253888010978756 ], [ 103.833053588867301, 1.253610014915409 ], [ 103.833335876464844, 1.253610014915409 ], [ 103.833610534668082, 1.253332018852291 ], [ 103.834167480468864, 1.253332018852291 ], [ 103.834999084472656, 1.252500057220459 ], [ 103.835556030273366, 1.252500057220459 ], [ 103.836669921875114, 1.251387953758297 ], [ 103.836944580078125, 1.251387953758297 ], [ 103.836944580078125, 1.250833988189811 ], [ 103.837501525878892, 1.250277996063289 ], [ 103.837501525878892, 1.25 ], [ 103.838058471679673, 1.249444007873535 ], [ 103.838333129882869, 1.249444007873535 ], [ 103.838470458984361, 1.249583005905265 ], [ 103.838607788085881, 1.249722003936824 ], [ 103.839164733886832, 1.249722003936824 ], [ 103.839447021484418, 1.25 ], [ 103.839996337890611, 1.25 ], [ 103.840835571289119, 1.250833988189811 ], [ 103.840835571289119, 1.251109957695007 ], [ 103.841392517089901, 1.251665949821472 ], [ 103.842224121093679, 1.251665949821472 ], [ 103.842498779296932, 1.251943945884761 ], [ 103.843330383300881, 1.251943945884761 ], [ 103.843612670898423, 1.252221941947937 ], [ 103.843887329101619, 1.252221941947937 ], [ 103.844169616699205, 1.251943945884761 ], [ 103.844718933105398, 1.251943945884761 ], [ 103.845558166503949, 1.252778053283748 ], [ 103.846389770507926, 1.252778053283748 ], [ 103.846664428710938, 1.252500057220459 ], [ 103.846664428710938, 1.251387953758297 ], [ 103.8477783203125, 1.250277996063289 ], [ 103.8477783203125, 1.25 ], [ 103.847221374511719, 1.249444007873535 ], [ 103.847221374511719, 1.24916601181036 ], [ 103.846946716308693, 1.24888801574707 ], [ 103.846946716308693, 1.248612046241817 ], [ 103.846664428710938, 1.248612046241817 ], [ 103.846664428710938, 1.248334050178528 ], [ 103.846107482910142, 1.247778058052063 ], [ 103.845764160156307, 1.247153043747005 ], [ 103.845626831054801, 1.246945977210998 ], [ 103.845275878906193, 1.246665954589901 ], [ 103.845001220703182, 1.246389985084534 ], [ 103.845001220703182, 1.245833992958069 ], [ 103.844718933105398, 1.24555599689495 ], [ 103.844718933105398, 1.245278000831604 ], [ 103.844444274902401, 1.245000004768428 ], [ 103.844444274902401, 1.244722008705139 ], [ 103.843887329101619, 1.244166016578674 ], [ 103.843269348144588, 1.243473052978572 ], [ 103.842918395996151, 1.243056058883667 ], [ 103.842498779296932, 1.242777943611145 ], [ 103.842224121093679, 1.24249899387371 ], [ 103.841941833496136, 1.24249899387371 ], [ 103.841392517089901, 1.241943001747245 ], [ 103.841110229492188, 1.241943001747245 ], [ 103.840835571289119, 1.241667985916138 ], [ 103.840835571289119, 1.241111040115413 ], [ 103.840278625488395, 1.240555047988892 ], [ 103.840278625488395, 1.240277051925773 ], [ 103.839996337890611, 1.239999055862427 ], [ 103.839996337890611, 1.239722967147884 ], [ 103.838890075683636, 1.238610982894954 ], [ 103.838333129882869, 1.238610982894954 ], [ 103.838058471679673, 1.238888978958073 ], [ 103.837501525878892, 1.238888978958073 ], [ 103.837501525878892, 1.240277051925773 ], [ 103.836669921875114, 1.240277051925773 ], [ 103.836387634277344, 1.239999055862427 ], [ 103.836112976074332, 1.240002036094666 ], [ 103.834167480468864, 1.238054990768489 ], [ 103.834167480468864, 1.237776994705314 ], [ 103.833610534668082, 1.237221002578849 ], [ 103.832778930664105, 1.237221002578849 ], [ 103.830558776855582, 1.239444971084538 ], [ 103.830001831054801, 1.239444971084538 ], [ 103.829719543457088, 1.239722967147884 ], [ 103.829444885253835, 1.239722967147884 ], [ 103.828056335449276, 1.241111040115413 ], [ 103.828330993652344, 1.241389989853019 ], [ 103.828056335449276, 1.241667985916138 ], [ 103.828056335449276, 1.241943001747245 ], [ 103.827774047851548, 1.242220997810364 ], [ 103.827224731445312, 1.242220997810364 ], [ 103.826873779296932, 1.242223978042603 ], [ 103.826461791992173, 1.24215304851532 ], [ 103.824996948242244, 1.243334054946956 ], [ 103.824996948242244, 1.243890047073478 ], [ 103.824722290039062, 1.244166016578674 ], [ 103.824722290039062, 1.244444012641964 ], [ 103.824165344238281, 1.245000004768428 ], [ 103.824165344238281, 1.245278000831604 ], [ 103.8236083984375, 1.245833992958069 ], [ 103.8236083984375, 1.246665954589901 ], [ 103.822502136230526, 1.247778058052063 ], [ 103.821945190429744, 1.247778058052063 ], [ 103.821113586425781, 1.248612046241817 ], [ 103.821113586425781, 1.24888801574707 ], [ 103.820831298828239, 1.24916601181036 ], [ 103.820556640625, 1.24916601181036 ], [ 103.820274353027457, 1.249444007873535 ], [ 103.819168090820298, 1.249444007873535 ], [ 103.818885803222713, 1.249722003936824 ], [ 103.818611145019517, 1.249722003936824 ], [ 103.817779541015739, 1.250555992126465 ], [ 103.817779541015739, 1.250833988189811 ], [ 103.816665649414006, 1.251943945884761 ], [ 103.816390991210994, 1.251943945884761 ], [ 103.815834045410213, 1.252500057220459 ], [ 103.815551757812486, 1.252500057220459 ], [ 103.814445495605469, 1.253610014915409 ], [ 103.813888549804744, 1.253610014915409 ], [ 103.813613891601506, 1.253888010978756 ], [ 103.813056945800724, 1.253888010978756 ], [ 103.812225341796932, 1.254721999168396 ], [ 103.812225341796932, 1.255000948906002 ], [ 103.811668395996207, 1.255556941032467 ], [ 103.811668395996207, 1.255831956863403 ], [ 103.811386108398438, 1.255831956863403 ], [ 103.811111450195426, 1.256109952926693 ], [ 103.810836791992244, 1.256109952926693 ], [ 103.810554504394645, 1.256389021873474 ], [ 103.810279846191463, 1.256389021873474 ], [ 103.809997558593693, 1.25666701793682 ], [ 103.8094482421875, 1.25666701793682 ], [ 103.808334350585938, 1.25777900218975 ], [ 103.808052062988395, 1.25777900218975 ], [ 103.806945800781193, 1.258888959884757 ], [ 103.806945800781193, 1.259166955947933 ], [ 103.807220458984432, 1.259444952011222 ], [ 103.807777404785156, 1.259444952011222 ], [ 103.808052062988395, 1.259722948074397 ], [ 103.809722900390682, 1.259722948074397 ] ] ], [ [ [ 103.838066101074219, 1.254377961158752 ], [ 103.838760375976676, 1.253958940506095 ], [ 103.839996337890611, 1.253958940506095 ], [ 103.839996337890611, 1.253680944442749 ], [ 103.839721679687614, 1.25340294837963 ], [ 103.839721679687614, 1.253124952316284 ], [ 103.837776184082088, 1.253124952316284 ], [ 103.837303161621094, 1.25340294837963 ], [ 103.837516784667969, 1.253960967064017 ], [ 103.838066101074219, 1.254377961158752 ] ] ], [ [ [ 103.763053894043082, 1.241111040115413 ], [ 103.763336181640625, 1.240833044052238 ], [ 103.763610839843849, 1.240833044052238 ], [ 103.763885498046875, 1.240555047988892 ], [ 103.764167785644645, 1.240555047988892 ], [ 103.764442443847656, 1.240277051925773 ], [ 103.764724731445369, 1.240277051925773 ], [ 103.764999389648438, 1.239999055862427 ], [ 103.765274047851619, 1.240002036094666 ], [ 103.766944885253906, 1.238332986831779 ], [ 103.767219543457145, 1.238332986831779 ], [ 103.767776489257855, 1.237776994705314 ], [ 103.768058776855469, 1.237779021263066 ], [ 103.768333435058636, 1.237501025199947 ], [ 103.768890380859432, 1.237501025199947 ], [ 103.769165039062614, 1.237223029136601 ], [ 103.769447326660213, 1.237223029136601 ], [ 103.771942138671932, 1.234722971916199 ], [ 103.771942138671932, 1.234444975853023 ], [ 103.772499084472713, 1.233888983726558 ], [ 103.772499084472713, 1.233610987663212 ], [ 103.775558471679744, 1.230555057525692 ], [ 103.778892517089957, 1.227221965789909 ], [ 103.778892517089957, 1.226943969726562 ], [ 103.779167175292955, 1.226665973663444 ], [ 103.779167175292955, 1.22527801990509 ], [ 103.779441833496207, 1.225000023841971 ], [ 103.779441833496207, 1.224444031715507 ], [ 103.778892517089957, 1.223888039588985 ], [ 103.778892517089957, 1.223611950874442 ], [ 103.778610229492244, 1.223333954811153 ], [ 103.778335571289006, 1.223333954811153 ], [ 103.778053283691463, 1.223611950874442 ], [ 103.777778625488281, 1.223611950874442 ], [ 103.777496337890682, 1.223889946937618 ], [ 103.776947021484489, 1.223888039588985 ], [ 103.776664733886719, 1.224166035652161 ], [ 103.776107788085938, 1.224166035652161 ], [ 103.775833129882912, 1.224444031715507 ], [ 103.773887634277386, 1.224444031715507 ], [ 103.772781372070426, 1.225556015968436 ], [ 103.772781372070426, 1.225834012031555 ], [ 103.772087097167969, 1.227061033249015 ], [ 103.772087097167969, 1.22747802734375 ], [ 103.771881103515625, 1.22761702537548 ], [ 103.771530151367173, 1.22782397270214 ], [ 103.771461486816349, 1.228103995323238 ], [ 103.771186828613338, 1.228312015533504 ], [ 103.770912170410156, 1.228660941123962 ], [ 103.770286560058707, 1.228870034217948 ], [ 103.770080566406364, 1.228592038154602 ], [ 103.770011901855469, 1.227964997291622 ], [ 103.770011901855469, 1.227267980575675 ], [ 103.769943237304631, 1.226709961891231 ], [ 103.76924896240233, 1.226362943649349 ], [ 103.768905639648494, 1.226083040237427 ], [ 103.768554687500114, 1.225875020027161 ], [ 103.767448425293082, 1.225594997406063 ], [ 103.766067504882869, 1.225594997406063 ], [ 103.765441894531307, 1.225388050079402 ], [ 103.765167236328068, 1.225388050079402 ], [ 103.764442443847656, 1.22527801990509 ], [ 103.764167785644645, 1.225000023841971 ], [ 103.763610839843849, 1.225000023841971 ], [ 103.763336181640625, 1.22527801990509 ], [ 103.762779235839901, 1.22527801990509 ], [ 103.762222290039105, 1.22534894943243 ], [ 103.761528015136832, 1.22534894943243 ], [ 103.760833740234375, 1.225834012031555 ], [ 103.760559082031364, 1.225834012031555 ], [ 103.76027679443358, 1.226109981536979 ], [ 103.760002136230582, 1.226109981536979 ], [ 103.759719848632869, 1.226387977600098 ], [ 103.759445190429631, 1.226387977600098 ], [ 103.757774353027344, 1.228057026863155 ], [ 103.757499694824318, 1.228057026863155 ], [ 103.757225036621094, 1.228332042694092 ], [ 103.756942749023551, 1.228332042694092 ], [ 103.756111145019574, 1.229166984558162 ], [ 103.756111145019574, 1.229444980621338 ], [ 103.755554199218793, 1.230000972747803 ], [ 103.755554199218793, 1.230278968811092 ], [ 103.754165649414048, 1.231667041778621 ], [ 103.754165649414048, 1.23194503784174 ], [ 103.753890991211051, 1.232223033905086 ], [ 103.753890991211051, 1.233054995536918 ], [ 103.754165649414048, 1.233332991600093 ], [ 103.754165649414048, 1.234444975853023 ], [ 103.753890991211051, 1.234722971916199 ], [ 103.753890991211051, 1.235277056694031 ], [ 103.754165649414048, 1.235555052757377 ], [ 103.754165649414048, 1.236111044883842 ], [ 103.754997253418026, 1.236945033073482 ], [ 103.755554199218793, 1.236945033073482 ], [ 103.755836486816335, 1.237223029136601 ], [ 103.756668090820369, 1.237223029136601 ], [ 103.757774353027344, 1.236111044883842 ], [ 103.757774353027344, 1.235833048820552 ], [ 103.758056640625057, 1.235555052757377 ], [ 103.758056640625057, 1.235277056694031 ], [ 103.758331298828125, 1.235000967979488 ], [ 103.758331298828125, 1.234722971916199 ], [ 103.759162902832088, 1.233888983726558 ], [ 103.759445190429631, 1.233888983726558 ], [ 103.759719848632869, 1.234166979789677 ], [ 103.759719848632869, 1.234444975853023 ], [ 103.76027679443358, 1.235000967979488 ], [ 103.76027679443358, 1.235833048820552 ], [ 103.760002136230582, 1.236111044883842 ], [ 103.760002136230582, 1.236389040947017 ], [ 103.759719848632869, 1.236667037010307 ], [ 103.759719848632869, 1.236945033073482 ], [ 103.759162902832088, 1.237498998642025 ], [ 103.759162902832088, 1.238054990768489 ], [ 103.758888244628835, 1.238332986831779 ], [ 103.758888244628835, 1.238888978958073 ], [ 103.761108398437557, 1.241111040115413 ], [ 103.761947631835938, 1.241111040115413 ], [ 103.762222290039105, 1.240833044052238 ], [ 103.762496948242131, 1.241111040115413 ], [ 103.763053894043082, 1.241111040115413 ] ] ], [ [ [ 103.751113891601562, 1.239444971084538 ], [ 103.751388549804787, 1.239166975021419 ], [ 103.751388549804787, 1.238888978958073 ], [ 103.750831604004006, 1.238332986831779 ], [ 103.750831604004006, 1.235555052757377 ], [ 103.751113891601562, 1.235277056694031 ], [ 103.751113891601562, 1.235000967979488 ], [ 103.751388549804787, 1.234722971916199 ], [ 103.751388549804787, 1.234166979789677 ], [ 103.750831604004006, 1.233610987663212 ], [ 103.750831604004006, 1.233332991600093 ], [ 103.75, 1.233332991600093 ], [ 103.749443054199261, 1.232779026031551 ], [ 103.749168395996094, 1.232779026031551 ], [ 103.748336791992301, 1.23194503784174 ], [ 103.747497558593736, 1.23194503784174 ], [ 103.747222900390739, 1.231667041778621 ], [ 103.747222900390739, 1.231389045715446 ], [ 103.745277404785213, 1.231389045715446 ], [ 103.745002746582031, 1.231111049652156 ], [ 103.744720458984474, 1.231111049652156 ], [ 103.74444580078125, 1.231389045715446 ], [ 103.743614196777273, 1.231389045715446 ], [ 103.74333190917973, 1.231111049652156 ], [ 103.742774963378963, 1.231111049652156 ], [ 103.742500305175781, 1.231389045715446 ], [ 103.741943359374986, 1.231389045715446 ], [ 103.741668701171989, 1.231667041778621 ], [ 103.741386413574205, 1.231667041778621 ], [ 103.73944091796875, 1.233610987663212 ], [ 103.73944091796875, 1.233888983726558 ], [ 103.741111755371207, 1.235555052757377 ], [ 103.741386413574205, 1.235555052757377 ], [ 103.741943359374986, 1.236111044883842 ], [ 103.742225646972713, 1.236389040947017 ], [ 103.742774963378963, 1.236389040947017 ], [ 103.743057250976506, 1.236667037010307 ], [ 103.743057250976506, 1.236945033073482 ], [ 103.74333190917973, 1.237221002578849 ], [ 103.742500305175781, 1.238054990768489 ], [ 103.741943359374986, 1.238054990768489 ], [ 103.741668701171989, 1.238332986831779 ], [ 103.741668701171989, 1.238888978958073 ], [ 103.742225646972713, 1.239444971084538 ], [ 103.742500305175781, 1.239444971084538 ], [ 103.742721557617188, 1.239665985107479 ], [ 103.743057250976506, 1.240002036094666 ], [ 103.74333190917973, 1.240002036094666 ], [ 103.743888854980526, 1.239442944526786 ], [ 103.744163513183707, 1.239444971084538 ], [ 103.74444580078125, 1.239166975021419 ], [ 103.745002746582031, 1.239166975021419 ], [ 103.745552062988281, 1.239722967147884 ], [ 103.746109008788991, 1.239722967147884 ], [ 103.746391296386776, 1.240002036094666 ], [ 103.746948242187543, 1.240002036094666 ], [ 103.747222900390739, 1.239722967147884 ], [ 103.747497558593736, 1.239722967147884 ], [ 103.74777984619152, 1.239444971084538 ], [ 103.748054504394517, 1.239444971084538 ], [ 103.748886108398494, 1.240277051925773 ], [ 103.749168395996094, 1.240277051925773 ], [ 103.749725341796804, 1.240833044052238 ], [ 103.750274658203239, 1.240833044052238 ], [ 103.750831604004006, 1.240277051925773 ], [ 103.750831604004006, 1.239999055862427 ], [ 103.751113891601562, 1.239722967147884 ], [ 103.751113891601562, 1.239444971084538 ] ] ], [ [ [ 103.839111328125057, 1.22832095623022 ], [ 103.838706970214901, 1.228245973587036 ], [ 103.838493347168026, 1.228453040123043 ], [ 103.838264465332031, 1.228811025619564 ], [ 103.837905883789062, 1.229223012924308 ], [ 103.837486267089844, 1.229704022407532 ], [ 103.837036132812614, 1.230193972587699 ], [ 103.836685180664176, 1.230782032013053 ], [ 103.836410522460994, 1.231423020362911 ], [ 103.836288452148551, 1.232095003128165 ], [ 103.836418151855526, 1.23244404792797 ], [ 103.836502075195241, 1.232676029205379 ], [ 103.837005615234432, 1.232606053352356 ], [ 103.837356567382869, 1.232467055320797 ], [ 103.837699890136719, 1.232118010520935 ], [ 103.837905883789062, 1.231840014457816 ], [ 103.838180541992301, 1.231351971626225 ], [ 103.838462829589844, 1.231003999710083 ], [ 103.838737487793011, 1.230725049972648 ], [ 103.839218139648438, 1.230028033256644 ], [ 103.839569091796818, 1.229750037193298 ], [ 103.839843750000057, 1.229611039161739 ], [ 103.840026855468793, 1.22921705245983 ], [ 103.839736938476662, 1.228718042373771 ], [ 103.839111328125057, 1.22832095623022 ] ] ], [ [ [ 103.856178283691392, 1.228680968284721 ], [ 103.855628967285156, 1.228680968284721 ], [ 103.855209350585881, 1.229166984558162 ], [ 103.855003356933537, 1.229444980621338 ], [ 103.854789733886832, 1.22993195056921 ], [ 103.855278015136776, 1.230278968811092 ], [ 103.855972290038991, 1.230762004852295 ], [ 103.856666564941463, 1.23194503784174 ], [ 103.856803894043026, 1.232084035873527 ], [ 103.856941223144531, 1.232223033905086 ], [ 103.857223510742244, 1.232223033905086 ], [ 103.857498168945256, 1.23194503784174 ], [ 103.858123779296875, 1.231111049652156 ], [ 103.857986450195369, 1.230417966842708 ], [ 103.857223510742244, 1.229375958442745 ], [ 103.856941223144531, 1.229166984558162 ], [ 103.856178283691392, 1.228680968284721 ] ] ], [ [ [ 103.853614807128963, 1.230000972747803 ], [ 103.852920532226491, 1.229374051094169 ], [ 103.852363586425781, 1.228543996810913 ], [ 103.851943969726676, 1.228057026863155 ], [ 103.851600646972656, 1.227985978126469 ], [ 103.850692749023423, 1.227985978126469 ], [ 103.850273132324219, 1.228263974189815 ], [ 103.849441528320412, 1.228610038757381 ], [ 103.849441528320412, 1.229722976684627 ], [ 103.849929809570312, 1.23006200790411 ], [ 103.850204467773551, 1.23006200790411 ], [ 103.850547790527401, 1.22985303401947 ], [ 103.850761413574332, 1.229784011840934 ], [ 103.85103607177733, 1.229784011840934 ], [ 103.851593017578111, 1.22985303401947 ], [ 103.851867675781307, 1.230340003967399 ], [ 103.852416992187557, 1.230620980262813 ], [ 103.852630615234432, 1.230788946151847 ], [ 103.852767944335938, 1.230898976325932 ], [ 103.85333251953125, 1.230555057525692 ], [ 103.853614807128963, 1.230278968811092 ], [ 103.853614807128963, 1.230000972747803 ] ] ], [ [ [ 103.851943969726676, 1.226665973663444 ], [ 103.852500915527457, 1.226109981536979 ], [ 103.852775573730469, 1.226109981536979 ], [ 103.853057861328224, 1.226387977600098 ], [ 103.85333251953125, 1.226387977600098 ], [ 103.855278015136776, 1.224444031715507 ], [ 103.855552673339943, 1.224444031715507 ], [ 103.857223510742244, 1.222777962684631 ], [ 103.857498168945256, 1.222777962684631 ], [ 103.857734680175781, 1.222440958023128 ], [ 103.858016967773551, 1.222123980522213 ], [ 103.858238220214957, 1.221717953681946 ], [ 103.858299255371094, 1.221212029457149 ], [ 103.858207702636832, 1.220720052719173 ], [ 103.858070373535099, 1.220296025276184 ], [ 103.857948303222713, 1.219918012619075 ], [ 103.85782623291027, 1.219580054283085 ], [ 103.857780456543011, 1.219174981117362 ], [ 103.857635498046989, 1.218688964843693 ], [ 103.857086181640739, 1.218126058578491 ], [ 103.856765747070312, 1.217870950698909 ], [ 103.856536865234318, 1.217965006828422 ], [ 103.856201171874986, 1.218085050582886 ], [ 103.855903625488338, 1.218269944191036 ], [ 103.855682373046932, 1.218507051467952 ], [ 103.855537414550895, 1.218822002411002 ], [ 103.855354309082145, 1.219138026237488 ], [ 103.855094909668026, 1.219445943832341 ], [ 103.854782104492301, 1.219746947288456 ], [ 103.854438781738224, 1.220064043998775 ], [ 103.854080200195312, 1.220368981361446 ], [ 103.853767395019588, 1.220661044120845 ], [ 103.853614807128963, 1.22083401680004 ], [ 103.852775573730469, 1.221665978431701 ], [ 103.852775573730469, 1.221943974495048 ], [ 103.852500915527457, 1.222221970558167 ], [ 103.852500915527457, 1.222499966621513 ], [ 103.852218627929673, 1.222777962684631 ], [ 103.852218627929673, 1.223055958747977 ], [ 103.851943969726676, 1.223333954811153 ], [ 103.851943969726676, 1.223611950874442 ], [ 103.85166931152348, 1.223888039588985 ], [ 103.851943969726676, 1.224166035652161 ], [ 103.851387023925724, 1.224722027778625 ], [ 103.851387023925724, 1.225000023841971 ], [ 103.850830078125, 1.225556015968436 ], [ 103.850830078125, 1.226109981536979 ], [ 103.851051330566406, 1.226333975791931 ], [ 103.851387023925724, 1.226665973663444 ], [ 103.851943969726676, 1.226665973663444 ] ] ], [ [ [ 103.753051757812557, 1.223611950874442 ], [ 103.752220153808594, 1.223611950874442 ], [ 103.752220153808594, 1.223888039588985 ], [ 103.752502441406307, 1.224166035652161 ], [ 103.752502441406307, 1.224444031715507 ], [ 103.751945495605526, 1.225000023841971 ], [ 103.751945495605526, 1.22527801990509 ], [ 103.751388549804787, 1.225834012031555 ], [ 103.751663208007812, 1.226109981536979 ], [ 103.751388549804787, 1.226387977600098 ], [ 103.752777099609304, 1.226387977600098 ], [ 103.753051757812557, 1.226109981536979 ], [ 103.753051757812557, 1.223889946937618 ], [ 103.753051757812557, 1.223611950874442 ] ] ], [ [ [ 103.859725952148537, 1.224722027778625 ], [ 103.859725952148537, 1.224444031715507 ], [ 103.86027526855473, 1.224444031715507 ], [ 103.860557556152344, 1.224166035652161 ], [ 103.861114501953054, 1.224166035652161 ], [ 103.861389160156307, 1.224444031715507 ], [ 103.861663818359474, 1.224166035652161 ], [ 103.861991882324276, 1.223945021629447 ], [ 103.862213134765739, 1.223552942276115 ], [ 103.862396240234474, 1.223171949386597 ], [ 103.862564086914119, 1.222833037376461 ], [ 103.8626708984375, 1.222511053085327 ], [ 103.862457275390568, 1.222123980522213 ], [ 103.862220764160256, 1.221768021583614 ], [ 103.861984252929744, 1.221745967865104 ], [ 103.861656188964957, 1.221881985664425 ], [ 103.861114501953054, 1.221943974495048 ], [ 103.860832214355526, 1.222221970558167 ], [ 103.860557556152344, 1.222221970558167 ], [ 103.86027526855473, 1.222499966621513 ], [ 103.860000610351562, 1.222499966621513 ], [ 103.859725952148537, 1.222777962684631 ], [ 103.859443664550781, 1.222777962684631 ], [ 103.859169006347756, 1.223055958747977 ], [ 103.85888671875, 1.223055958747977 ], [ 103.858612060546989, 1.223333954811153 ], [ 103.858329772949276, 1.223333954811153 ], [ 103.857780456543011, 1.223888039588985 ], [ 103.857780456543011, 1.224166035652161 ], [ 103.857498168945256, 1.224166035652161 ], [ 103.857223510742244, 1.224444031715507 ], [ 103.857223510742244, 1.224722027778625 ], [ 103.856941223144531, 1.225000023841971 ], [ 103.857780456543011, 1.225834012031555 ], [ 103.858055114746037, 1.225834012031555 ], [ 103.858329772949276, 1.226109981536979 ], [ 103.85888671875, 1.226109981536979 ], [ 103.859169006347756, 1.225834012031555 ], [ 103.859169006347756, 1.22527801990509 ], [ 103.859725952148537, 1.224722027778625 ] ] ], [ [ [ 103.749725341796804, 1.222777962684631 ], [ 103.748886108398494, 1.222777962684631 ], [ 103.748886108398494, 1.223055958747977 ], [ 103.748336791992301, 1.223333954811153 ], [ 103.748054504394517, 1.223611950874442 ], [ 103.747497558593736, 1.223888039588985 ], [ 103.748054504394517, 1.224444031715507 ], [ 103.748054504394517, 1.225000023841971 ], [ 103.74777984619152, 1.22527801990509 ], [ 103.74777984619152, 1.225556015968436 ], [ 103.747497558593736, 1.225834012031555 ], [ 103.750274658203239, 1.225834012031555 ], [ 103.750274658203239, 1.22527801990509 ], [ 103.749725341796804, 1.224722027778625 ], [ 103.75, 1.224444031715507 ], [ 103.749443054199261, 1.224166035652161 ], [ 103.75, 1.223888039588985 ], [ 103.75, 1.223333954811153 ], [ 103.749725341796804, 1.223055958747977 ], [ 103.749725341796804, 1.222777962684631 ] ] ], [ [ [ 103.846389770507926, 1.222777962684631 ], [ 103.846664428710938, 1.222499966621513 ], [ 103.846946716308693, 1.222499966621513 ], [ 103.847221374511719, 1.222221970558167 ], [ 103.8477783203125, 1.222221970558167 ], [ 103.848052978515668, 1.222498059272766 ], [ 103.848609924316463, 1.223055958747977 ], [ 103.848892211914176, 1.223055958747977 ], [ 103.849723815917955, 1.222221970558167 ], [ 103.849723815917955, 1.221665978431701 ], [ 103.849998474121207, 1.221387982368583 ], [ 103.850555419921932, 1.221390008926505 ], [ 103.85166931152348, 1.220278024673576 ], [ 103.85166931152348, 1.220000028610229 ], [ 103.851387023925724, 1.219722032547111 ], [ 103.851112365722713, 1.219722032547111 ], [ 103.850555419921932, 1.219166040420646 ], [ 103.850555419921932, 1.218055963516292 ], [ 103.850830078125, 1.217777967453117 ], [ 103.850830078125, 1.217499971389771 ], [ 103.851112365722713, 1.217221975326652 ], [ 103.851112365722713, 1.216665029525871 ], [ 103.851387023925724, 1.21639001369482 ], [ 103.851387023925724, 1.215834021568298 ], [ 103.851112365722713, 1.21555602550518 ], [ 103.851081848144588, 1.215222954750004 ], [ 103.851043701171875, 1.214771032333374 ], [ 103.850608825683707, 1.214279055595455 ], [ 103.850448608398438, 1.214146971702633 ], [ 103.850112915039062, 1.214226961135864 ], [ 103.849723815917955, 1.214450001716727 ], [ 103.849357604980455, 1.214723944663945 ], [ 103.849067687988395, 1.215008974075431 ], [ 103.848838806152401, 1.215320944786185 ], [ 103.848625183105526, 1.215662956237907 ], [ 103.848419189453168, 1.216076970100346 ], [ 103.848098754882926, 1.216459989547843 ], [ 103.8477783203125, 1.216943979263306 ], [ 103.846389770507926, 1.218333959579581 ], [ 103.846389770507926, 1.218611955642757 ], [ 103.845558166503949, 1.219444036483765 ], [ 103.845283508300724, 1.21971499919897 ], [ 103.844955444335938, 1.220031976699943 ], [ 103.844512939453068, 1.220350980758667 ], [ 103.844055175781307, 1.220767974853572 ], [ 103.843536376953239, 1.221145987510795 ], [ 103.843185424804631, 1.221622943878174 ], [ 103.84322357177733, 1.222242951393184 ], [ 103.843711853027457, 1.222774028778133 ], [ 103.844245910644574, 1.223193049430961 ], [ 103.844779968261719, 1.223405003547782 ], [ 103.845222473144588, 1.223497986793632 ], [ 103.845420837402457, 1.223384022712764 ], [ 103.845565795898494, 1.223297953605709 ], [ 103.845870971679673, 1.223096966743583 ], [ 103.846168518066463, 1.222954034805298 ], [ 103.846389770507926, 1.222777962684631 ] ] ], [ [ [ 103.761665344238324, 1.211666941642761 ], [ 103.762222290039105, 1.211110949516296 ], [ 103.763069152831974, 1.211181998252982 ], [ 103.764038085937443, 1.210832953453121 ], [ 103.764442443847656, 1.210832953453121 ], [ 103.764724731445369, 1.210554957389832 ], [ 103.765274047851619, 1.210554957389832 ], [ 103.766113281250114, 1.209722995758113 ], [ 103.766387939453111, 1.209722995758113 ], [ 103.766670227050895, 1.209444999694824 ], [ 103.766944885253906, 1.209444999694824 ], [ 103.767219543457145, 1.209167003631649 ], [ 103.767776489257855, 1.209167003631649 ], [ 103.768890380859432, 1.208611011505184 ], [ 103.769996643066406, 1.208611011505184 ], [ 103.770278930664162, 1.208889007568359 ], [ 103.770881652832131, 1.209274053573722 ], [ 103.771987915039176, 1.209620952606258 ], [ 103.772407531738395, 1.210039973259086 ], [ 103.773330688476676, 1.210554957389832 ], [ 103.774719238281193, 1.210554957389832 ], [ 103.774993896484432, 1.210831046104545 ], [ 103.775276184081974, 1.211110949516296 ], [ 103.776390075683693, 1.211110949516296 ], [ 103.776664733886719, 1.211388945579585 ], [ 103.776947021484489, 1.211388945579585 ], [ 103.777084350585994, 1.211527943611202 ], [ 103.7772216796875, 1.211666941642761 ], [ 103.777496337890682, 1.211388945579585 ], [ 103.777778625488281, 1.211388945579585 ], [ 103.778053283691463, 1.211110949516296 ], [ 103.778335571289006, 1.211388945579585 ], [ 103.778610229492244, 1.211388945579585 ], [ 103.779167175292955, 1.211945056915283 ], [ 103.779441833496207, 1.211666941642761 ], [ 103.780281066894531, 1.211418986320552 ], [ 103.780700683593807, 1.210513949394226 ], [ 103.78125, 1.209192037582397 ], [ 103.781600952148423, 1.208217024803275 ], [ 103.781600952148423, 1.205428957939148 ], [ 103.781669616699276, 1.20313203334814 ], [ 103.781669616699276, 1.201665997505188 ], [ 103.781669616699276, 1.201110005378723 ], [ 103.781387329101506, 1.200832009315604 ], [ 103.781387329101506, 1.200000047683716 ], [ 103.779998779296989, 1.198611974716243 ], [ 103.77972412109375, 1.198611974716243 ], [ 103.778083801269588, 1.198037981987 ], [ 103.776565551757912, 1.197410941124019 ], [ 103.775802612304801, 1.196715950965995 ], [ 103.775733947753906, 1.195392012596187 ], [ 103.775558471679744, 1.193889975547847 ], [ 103.775558471679744, 1.193333983421383 ], [ 103.775276184081974, 1.193055987358036 ], [ 103.77435302734375, 1.191882014274711 ], [ 103.773101806640682, 1.190768003463802 ], [ 103.772224426269474, 1.189721941947994 ], [ 103.771942138671932, 1.189721941947994 ], [ 103.771804809570426, 1.189581990242118 ], [ 103.771667480468693, 1.189442992210388 ], [ 103.771110534667969, 1.189442992210388 ], [ 103.770835876464901, 1.189167976379451 ], [ 103.770553588867188, 1.189167976379451 ], [ 103.770416259765682, 1.189028978347892 ], [ 103.770278930664162, 1.188889980316162 ], [ 103.769996643066406, 1.188889980316162 ], [ 103.769721984863381, 1.188611984252987 ], [ 103.767776489257855, 1.18833398818964 ], [ 103.767501831054688, 1.188611984252987 ], [ 103.767219543457145, 1.188611984252987 ], [ 103.766944885253906, 1.188889980316162 ], [ 103.766670227050895, 1.188889980316162 ], [ 103.766387939453111, 1.189167976379451 ], [ 103.766113281250114, 1.189164996147212 ], [ 103.765274047851619, 1.190000057220516 ], [ 103.765274047851619, 1.190278053283805 ], [ 103.765830993652401, 1.19083404541027 ], [ 103.766387939453111, 1.19083404541027 ], [ 103.766670227050895, 1.190556049346981 ], [ 103.767776489257855, 1.190556049346981 ], [ 103.768058776855469, 1.190278053283805 ], [ 103.768608093261662, 1.190278053283805 ], [ 103.768890380859432, 1.190000057220516 ], [ 103.769447326660213, 1.190000057220516 ], [ 103.769721984863381, 1.190278053283805 ], [ 103.769996643066406, 1.190278053283805 ], [ 103.770553588867188, 1.19083404541027 ], [ 103.771110534667969, 1.19083404541027 ], [ 103.771385192871151, 1.191112041473446 ], [ 103.771667480468693, 1.191112041473446 ], [ 103.773887634277386, 1.193333983421383 ], [ 103.773887634277386, 1.193889975547847 ], [ 103.774169921875, 1.194165945053214 ], [ 103.774169921875, 1.195834040641842 ], [ 103.774444580078168, 1.196112036705131 ], [ 103.774444580078168, 1.196390032768306 ], [ 103.773612976074219, 1.197221994400138 ], [ 103.773056030273423, 1.197221994400138 ], [ 103.772781372070426, 1.197499990463314 ], [ 103.772499084472713, 1.197499990463314 ], [ 103.772224426269474, 1.197777986526603 ], [ 103.771942138671932, 1.197777986526603 ], [ 103.771385192871151, 1.198333978652897 ], [ 103.771110534667969, 1.198333978652897 ], [ 103.770835876464901, 1.198611974716243 ], [ 103.770553588867188, 1.198609948158321 ], [ 103.769721984863381, 1.199444055557251 ], [ 103.769447326660213, 1.199444055557251 ], [ 103.768608093261662, 1.200278043747062 ], [ 103.768333435058636, 1.200278043747062 ], [ 103.767776489257855, 1.200832009315604 ], [ 103.767501831054688, 1.200832009315604 ], [ 103.766944885253906, 1.201388001442069 ], [ 103.766670227050895, 1.201388001442069 ], [ 103.766387939453111, 1.201665997505188 ], [ 103.766113281250114, 1.201665997505188 ], [ 103.765830993652401, 1.201388001442069 ], [ 103.764999389648438, 1.201388001442069 ], [ 103.764724731445369, 1.201110005378723 ], [ 103.764442443847656, 1.201110005378723 ], [ 103.764167785644645, 1.200832009315604 ], [ 103.763885498046875, 1.200832009315604 ], [ 103.763336181640625, 1.200278043747062 ], [ 103.763336181640625, 1.200000047683716 ], [ 103.761108398437557, 1.197777986526603 ], [ 103.761108398437557, 1.197221994400138 ], [ 103.760833740234375, 1.196943998336849 ], [ 103.760833740234375, 1.195834040641842 ], [ 103.761947631835938, 1.194722056388855 ], [ 103.761947631835938, 1.19444394111639 ], [ 103.762222290039105, 1.19444394111639 ], [ 103.764442443847656, 1.192221999168453 ], [ 103.764442443847656, 1.191944003105277 ], [ 103.763885498046875, 1.191390037536564 ], [ 103.763610839843849, 1.191390037536564 ], [ 103.759162902832088, 1.195834040641842 ], [ 103.759162902832088, 1.196112036705131 ], [ 103.759445190429631, 1.196390032768306 ], [ 103.759445190429631, 1.197221994400138 ], [ 103.759719848632869, 1.197499990463314 ], [ 103.759719848632869, 1.197777986526603 ], [ 103.760002136230582, 1.198055982589779 ], [ 103.760002136230582, 1.198333978652897 ], [ 103.759719848632869, 1.198609948158321 ], [ 103.759719848632869, 1.19888794422161 ], [ 103.759445190429631, 1.199166059494132 ], [ 103.759445190429631, 1.199444055557251 ], [ 103.759162902832088, 1.199722051620597 ], [ 103.759162902832088, 1.200000047683716 ], [ 103.758888244628835, 1.200278043747062 ], [ 103.758888244628835, 1.200556993484497 ], [ 103.758613586425838, 1.200832009315604 ], [ 103.758613586425838, 1.201388001442069 ], [ 103.758331298828125, 1.201665997505188 ], [ 103.758331298828125, 1.201944947242851 ], [ 103.758056640625057, 1.202222943305969 ], [ 103.758056640625057, 1.202501058578491 ], [ 103.758331298828125, 1.20277905464178 ], [ 103.758331298828125, 1.203057050704956 ], [ 103.758056640625057, 1.203333020210323 ], [ 103.758056640625057, 1.203889012336788 ], [ 103.757774353027344, 1.204167008399963 ], [ 103.757774353027344, 1.204445004463253 ], [ 103.757499694824318, 1.204723000526428 ], [ 103.757499694824318, 1.207223057746887 ], [ 103.757774353027344, 1.207499027252254 ], [ 103.757774353027344, 1.207777023315373 ], [ 103.757499694824318, 1.208055019378719 ], [ 103.757499694824318, 1.208889007568359 ], [ 103.757774353027344, 1.209167003631649 ], [ 103.757774353027344, 1.210000991821289 ], [ 103.758331298828125, 1.210554957389832 ], [ 103.758331298828125, 1.211110949516296 ], [ 103.758613586425838, 1.211388945579585 ], [ 103.758613586425838, 1.21222102642065 ], [ 103.758888244628835, 1.212499022483769 ], [ 103.758888244628835, 1.213611006736755 ], [ 103.758613586425838, 1.213889002800045 ], [ 103.758613586425838, 1.21416795253748 ], [ 103.758056640625057, 1.214720964431706 ], [ 103.758056640625057, 1.215834021568298 ], [ 103.758331298828125, 1.216112017631644 ], [ 103.758331298828125, 1.21639001369482 ], [ 103.759162902832088, 1.217221975326652 ], [ 103.759162902832088, 1.216943979263306 ], [ 103.759719848632869, 1.21639001369482 ], [ 103.759719848632869, 1.215276956558228 ], [ 103.76027679443358, 1.214720964431706 ], [ 103.76027679443358, 1.214442968368587 ], [ 103.761390686035156, 1.21333301067358 ], [ 103.761390686035156, 1.213055014610234 ], [ 103.761665344238324, 1.212777018547115 ], [ 103.761665344238324, 1.211666941642761 ] ] ], [ [ [ 103.833335876464844, 1.214998960495052 ], [ 103.832496643066349, 1.214998960495052 ], [ 103.832496643066349, 1.215276956558228 ], [ 103.831947326660156, 1.21555602550518 ], [ 103.831947326660156, 1.216668009758109 ], [ 103.832221984863338, 1.216943979263306 ], [ 103.833610534668082, 1.216943979263306 ], [ 103.833610534668082, 1.21555602550518 ], [ 103.833335876464844, 1.215276956558228 ], [ 103.833335876464844, 1.214998960495052 ] ] ], [ [ [ 103.834800720214773, 1.212789058685416 ], [ 103.834686279296932, 1.212617993354797 ], [ 103.834495544433651, 1.212779998779354 ], [ 103.833869934082031, 1.212777018547115 ], [ 103.83359527587902, 1.212916016578674 ], [ 103.833389282226619, 1.213264942169133 ], [ 103.83359527587902, 1.213543057441825 ], [ 103.83359527587902, 1.213822960853577 ], [ 103.833663940429688, 1.214025974273682 ], [ 103.833793640136832, 1.214468002319336 ], [ 103.834053039550781, 1.214941978454647 ], [ 103.834411621093693, 1.215502977371273 ], [ 103.83488464355473, 1.215746998786983 ], [ 103.835357666015568, 1.215754032135123 ], [ 103.835830688476619, 1.215633034706173 ], [ 103.836219787597699, 1.215242981910762 ], [ 103.836387634277344, 1.214586973190364 ], [ 103.836074829101676, 1.214112997054997 ], [ 103.835662841796918, 1.213750004768485 ], [ 103.835334777832145, 1.213376998901424 ], [ 103.835067749023494, 1.213037014007625 ], [ 103.834800720214773, 1.212789058685416 ] ] ], [ [ [ 103.723609924316406, 1.211945056915283 ], [ 103.723609924316406, 1.211666941642761 ], [ 103.724166870117131, 1.211110949516296 ], [ 103.724166870117131, 1.210832953453121 ], [ 103.724441528320355, 1.210554957389832 ], [ 103.724723815918082, 1.210554957389832 ], [ 103.725280761718864, 1.210000991821289 ], [ 103.726112365722656, 1.210000991821289 ], [ 103.726387023925838, 1.210276961326656 ], [ 103.726669311523423, 1.210276961326656 ], [ 103.726943969726619, 1.210554957389832 ], [ 103.727218627929616, 1.210554957389832 ], [ 103.727493286132855, 1.210831046104545 ], [ 103.727775573730582, 1.211110949516296 ], [ 103.728057861328182, 1.211110949516296 ], [ 103.728332519531364, 1.211388945579585 ], [ 103.729446411132869, 1.211388945579585 ], [ 103.729721069335923, 1.211110949516296 ], [ 103.730003356933651, 1.210832953453121 ], [ 103.730003356933651, 1.210554957389832 ], [ 103.730087280273381, 1.210147023200989 ], [ 103.730216979980568, 1.209867000579891 ], [ 103.730216979980568, 1.209450006484985 ], [ 103.729728698730469, 1.209380984306449 ], [ 103.729385375976562, 1.209380984306449 ], [ 103.728828430175824, 1.209239959716911 ], [ 103.728347778320426, 1.208822965622005 ], [ 103.728073120117244, 1.208474040031547 ], [ 103.728073120117244, 1.208057045936641 ], [ 103.728279113769588, 1.207918047905082 ], [ 103.728553771972599, 1.207779049873352 ], [ 103.729248046875057, 1.207638025283813 ], [ 103.73028564453125, 1.207638025283813 ], [ 103.730560302734432, 1.207430005073547 ], [ 103.731132507324261, 1.206943035125789 ], [ 103.731826782226562, 1.206665039062614 ], [ 103.731964111328239, 1.206593990325985 ], [ 103.732223510742188, 1.205832958221436 ], [ 103.733329772949148, 1.204723000526428 ], [ 103.733612060546932, 1.204723000526428 ], [ 103.733833312988338, 1.204195976257381 ], [ 103.733818054199276, 1.203655958175773 ], [ 103.733551025390611, 1.203207015991211 ], [ 103.733139038085881, 1.202908992767334 ], [ 103.732650756835994, 1.202833056450004 ], [ 103.732200622558594, 1.202970027923641 ], [ 103.731819152832031, 1.203122973442078 ], [ 103.731552124023537, 1.203312039375305 ], [ 103.731338500976619, 1.203420996665955 ], [ 103.731010437011832, 1.203557968139762 ], [ 103.730789184570426, 1.203415036201477 ], [ 103.730453491210881, 1.203143000602836 ], [ 103.730003356933651, 1.202823996543941 ], [ 103.729400634765682, 1.202618956565857 ], [ 103.728698730468864, 1.202461957931519 ], [ 103.727989196777287, 1.202234029770011 ], [ 103.727241516113281, 1.202077031135616 ], [ 103.726875305175781, 1.20203804969799 ], [ 103.726524353027344, 1.202182054519767 ], [ 103.726074218749943, 1.202280044555778 ], [ 103.725639343261832, 1.202486991882381 ], [ 103.72518157958983, 1.202684998512325 ], [ 103.724647521972713, 1.202816963195801 ], [ 103.724464416503963, 1.20287203788763 ], [ 103.724105834960994, 1.202976942062378 ], [ 103.723533630371151, 1.202947020530814 ], [ 103.722946166992244, 1.202823996543941 ], [ 103.722366333007869, 1.202782988548336 ], [ 103.721794128418011, 1.20277905464178 ], [ 103.721221923828182, 1.202774047851619 ], [ 103.720672607421918, 1.20272600650793 ], [ 103.720191955566392, 1.202520966529846 ], [ 103.719711303710994, 1.202371001243648 ], [ 103.71923828125, 1.202306985855103 ], [ 103.718727111816463, 1.202419042587337 ], [ 103.718276977539048, 1.202399969101066 ], [ 103.717857360839957, 1.202270030975399 ], [ 103.717414855957088, 1.202226996421871 ], [ 103.716949462890625, 1.20221996307373 ], [ 103.716484069824332, 1.202239036560172 ], [ 103.716056823730526, 1.202311038970947 ], [ 103.715667724609432, 1.202455043792725 ], [ 103.71527099609375, 1.20251905918127 ], [ 103.714904785156307, 1.202617049217281 ], [ 103.714546203613338, 1.202741980552787 ], [ 103.714149475097713, 1.202774047851619 ], [ 103.713714599609361, 1.202775955200195 ], [ 103.713272094726676, 1.202780961990413 ], [ 103.712821960449261, 1.20282697677618 ], [ 103.712394714355469, 1.203009009361267 ], [ 103.711944580078239, 1.203099966049308 ], [ 103.71152496337902, 1.203259944915885 ], [ 103.711067199707017, 1.203323006629944 ], [ 103.710578918457145, 1.203333020210323 ], [ 103.710067749023438, 1.203336954116878 ], [ 103.70953369140625, 1.203374028205928 ], [ 103.708992004394574, 1.20351505279541 ], [ 103.708427429199276, 1.203626990318298 ], [ 103.70787048339848, 1.203794956207332 ], [ 103.707328796386832, 1.204049944877681 ], [ 103.706977844238381, 1.204552054405326 ], [ 103.707000732421818, 1.205211043357792 ], [ 103.707336425781364, 1.205762028694267 ], [ 103.707771301269474, 1.206207036972159 ], [ 103.708244323730526, 1.206608057022208 ], [ 103.708816528320355, 1.206933975219727 ], [ 103.709419250488324, 1.207221031188908 ], [ 103.710006713867301, 1.207502961158809 ], [ 103.710563659668026, 1.207808971405086 ], [ 103.711051940917969, 1.208201050758419 ], [ 103.711456298828111, 1.208678960800285 ], [ 103.711845397949276, 1.209187984466496 ], [ 103.712211608886719, 1.209714055061397 ], [ 103.712577819824219, 1.210240960121268 ], [ 103.712966918945312, 1.210716962814331 ], [ 103.713409423828182, 1.21109497547161 ], [ 103.713890075683594, 1.211388945579585 ], [ 103.714447021484318, 1.211388945579585 ], [ 103.714584350586051, 1.211527943611202 ], [ 103.714721679687557, 1.211666941642761 ], [ 103.715278625488338, 1.211666941642761 ], [ 103.71555328369152, 1.211945056915283 ], [ 103.716110229492301, 1.211945056915283 ], [ 103.716392517089844, 1.21222102642065 ], [ 103.71694183349608, 1.21222102642065 ], [ 103.717224121093807, 1.211945056915283 ], [ 103.718055725097599, 1.211945056915283 ], [ 103.718330383300824, 1.21222102642065 ], [ 103.718612670898551, 1.21222102642065 ], [ 103.718887329101562, 1.212499022483769 ], [ 103.719444274902344, 1.212499022483769 ], [ 103.719558715820426, 1.212617993354797 ], [ 103.719718933105526, 1.212777018547115 ], [ 103.720275878906307, 1.212777018547115 ], [ 103.720558166503892, 1.213055014610234 ], [ 103.720832824707088, 1.213055014610234 ], [ 103.721107482910085, 1.21333301067358 ], [ 103.721389770507869, 1.21333301067358 ], [ 103.721664428711051, 1.213611006736755 ], [ 103.721946716308594, 1.213611006736755 ], [ 103.722221374511832, 1.213889002800045 ], [ 103.722503662109375, 1.213889002800045 ], [ 103.723335266113338, 1.213055014610234 ], [ 103.723335266113338, 1.21222102642065 ], [ 103.723609924316406, 1.211945056915283 ] ] ], [ [ [ 103.793609619140625, 1.211388945579585 ], [ 103.793891906738338, 1.211110949516296 ], [ 103.794441223144588, 1.211110949516296 ], [ 103.796112060546875, 1.209444999694824 ], [ 103.796112060546875, 1.208889007568359 ], [ 103.796386718750057, 1.208611011505184 ], [ 103.796386718750057, 1.208333015441895 ], [ 103.797225952148381, 1.207499027252254 ], [ 103.797225952148381, 1.207223057746887 ], [ 103.798057556152401, 1.2063889503479 ], [ 103.798614501953125, 1.2063889503479 ], [ 103.798889160156364, 1.206666946411246 ], [ 103.799003601074219, 1.206547975540218 ], [ 103.799163818359375, 1.2063889503479 ], [ 103.799446105957074, 1.2063889503479 ], [ 103.799720764160156, 1.206110954284725 ], [ 103.799720764160156, 1.205832958221436 ], [ 103.800003051757869, 1.20555496215826 ], [ 103.800003051757869, 1.205276966094971 ], [ 103.800277709960881, 1.205000996589774 ], [ 103.800552368164119, 1.205000996589774 ], [ 103.801109313964901, 1.204445004463253 ], [ 103.801109313964901, 1.204167008399963 ], [ 103.801940917968864, 1.203333020210323 ], [ 103.802223205566406, 1.203057050704956 ], [ 103.802223205566406, 1.201944947242851 ], [ 103.801940917968864, 1.201665997505188 ], [ 103.801940917968864, 1.201388001442069 ], [ 103.801216125488224, 1.200660943984985 ], [ 103.800277709960881, 1.200832009315604 ], [ 103.800003051757869, 1.201110005378723 ], [ 103.799446105957074, 1.201110005378723 ], [ 103.799163818359375, 1.201388001442069 ], [ 103.798889160156364, 1.201110005378723 ], [ 103.798110961914119, 1.201343059539795 ], [ 103.797393798828224, 1.201496005058232 ], [ 103.797126770019588, 1.201823949813843 ], [ 103.79689788818358, 1.202137947082576 ], [ 103.796669006347656, 1.202501058578491 ], [ 103.796386718750057, 1.202501058578491 ], [ 103.796112060546875, 1.20277905464178 ], [ 103.795829772949332, 1.20277905464178 ], [ 103.795555114746094, 1.203057050704956 ], [ 103.794998168945312, 1.203053951263541 ], [ 103.794166564941349, 1.203889012336788 ], [ 103.792503356933594, 1.203889012336788 ], [ 103.792221069336051, 1.204167008399963 ], [ 103.792221069336051, 1.204445004463253 ], [ 103.791946411132812, 1.204723000526428 ], [ 103.791946411132812, 1.20555496215826 ], [ 103.79166412353527, 1.205832958221436 ], [ 103.79166412353527, 1.206666946411246 ], [ 103.791389465332088, 1.206944942474365 ], [ 103.791389465332088, 1.207223057746887 ], [ 103.791221618652401, 1.207849979400635 ], [ 103.791389465332088, 1.208588004112244 ], [ 103.791625976562557, 1.209177970886344 ], [ 103.791709899902344, 1.209681987762565 ], [ 103.791915893554688, 1.20999002456665 ], [ 103.792221069336051, 1.210276961326656 ], [ 103.792503356933594, 1.210554957389832 ], [ 103.792503356933594, 1.210832953453121 ], [ 103.793052673339844, 1.211388945579585 ], [ 103.793609619140625, 1.211388945579585 ] ] ], [ [ [ 103.728057861328182, 1.191390037536564 ], [ 103.728332519531364, 1.191112041473446 ], [ 103.728614807128906, 1.191112041473446 ], [ 103.728889465332145, 1.19083404541027 ], [ 103.729446411132869, 1.19083404541027 ], [ 103.731941223144645, 1.18833398818964 ], [ 103.731666564941406, 1.188055038452205 ], [ 103.731666564941406, 1.18749904632574 ], [ 103.731109619140668, 1.186946034431514 ], [ 103.729446411132869, 1.186946034431514 ], [ 103.729164123535142, 1.186666965484733 ], [ 103.728889465332145, 1.186666965484733 ], [ 103.728889465332145, 1.186388969421387 ], [ 103.728614807128906, 1.186110973358268 ], [ 103.728614807128906, 1.185832977294922 ], [ 103.728332519531364, 1.185554981231803 ], [ 103.728332519531364, 1.184167027473449 ], [ 103.727500915527401, 1.183333039283809 ], [ 103.726387023925838, 1.183333039283809 ], [ 103.726112365722656, 1.18305504322052 ], [ 103.724723815918082, 1.18305504322052 ], [ 103.724441528320355, 1.182777047157344 ], [ 103.724166870117131, 1.182777047157344 ], [ 103.724006652832031, 1.182616949081421 ], [ 103.723892211914119, 1.182499051094055 ], [ 103.723609924316406, 1.182500958442802 ], [ 103.723335266113338, 1.182222962379456 ], [ 103.722778320312614, 1.182222962379456 ], [ 103.722503662109375, 1.181944966316337 ], [ 103.722221374511832, 1.181944966316337 ], [ 103.721664428711051, 1.181388974189872 ], [ 103.721107482910085, 1.181388974189872 ], [ 103.719718933105526, 1.180001020431519 ], [ 103.719444274902344, 1.180279016494865 ], [ 103.719169616699332, 1.180276989936942 ], [ 103.718887329101562, 1.180554986000061 ], [ 103.718887329101562, 1.180832982063407 ], [ 103.718612670898551, 1.181110978126526 ], [ 103.718612670898551, 1.181388974189872 ], [ 103.718330383300824, 1.181666970252991 ], [ 103.718330383300824, 1.181944966316337 ], [ 103.718055725097599, 1.182222962379456 ], [ 103.718055725097599, 1.182777047157344 ], [ 103.718330383300824, 1.18305504322052 ], [ 103.718330383300824, 1.183333039283809 ], [ 103.718055725097599, 1.183611035346985 ], [ 103.718055725097599, 1.184445023536796 ], [ 103.717781066894588, 1.184720993041992 ], [ 103.717781066894588, 1.184998989105281 ], [ 103.717224121093807, 1.185554981231803 ], [ 103.717224121093807, 1.185832977294922 ], [ 103.716667175293026, 1.186388969421387 ], [ 103.716667175293026, 1.186666965484733 ], [ 103.716392517089844, 1.186943054199275 ], [ 103.716392517089844, 1.187221050262451 ], [ 103.716667175293026, 1.18749904632574 ], [ 103.716804504394588, 1.187567949295101 ], [ 103.71707916259777, 1.187777042388916 ], [ 103.717781066894588, 1.187221050262451 ], [ 103.718055725097599, 1.187221050262451 ], [ 103.718330383300824, 1.18749904632574 ], [ 103.718887329101562, 1.18749904632574 ], [ 103.719169616699332, 1.187221050262451 ], [ 103.720001220703125, 1.187221050262451 ], [ 103.720275878906307, 1.186943054199275 ], [ 103.720832824707088, 1.186943054199275 ], [ 103.721107482910085, 1.187221050262451 ], [ 103.721389770507869, 1.187221050262451 ], [ 103.722503662109375, 1.18833398818964 ], [ 103.722503662109375, 1.188889980316162 ], [ 103.722778320312614, 1.189164996147212 ], [ 103.722778320312614, 1.189721941947994 ], [ 103.723052978515611, 1.190000057220516 ], [ 103.723052978515611, 1.191112041473446 ], [ 103.723335266113338, 1.191390037536564 ], [ 103.725280761718864, 1.191390037536564 ], [ 103.725555419921875, 1.191112041473446 ], [ 103.726669311523423, 1.191112041473446 ], [ 103.726943969726619, 1.191390037536564 ], [ 103.728057861328182, 1.191390037536564 ] ] ], [ [ [ 103.732780456542955, 1.176110982895011 ], [ 103.733055114746151, 1.175832033157405 ], [ 103.733612060546932, 1.175832033157405 ], [ 103.734443664550895, 1.175001025200004 ], [ 103.734725952148438, 1.175001025200004 ], [ 103.735000610351676, 1.174723029136658 ], [ 103.735275268554673, 1.174723029136658 ], [ 103.735557556152457, 1.174443960189876 ], [ 103.735832214355455, 1.174723029136658 ], [ 103.73638916015625, 1.174723029136658 ], [ 103.736946105956974, 1.175279021263123 ], [ 103.737503051757926, 1.175279021263123 ], [ 103.737777709960938, 1.175001025200004 ], [ 103.738052368164176, 1.175001025200004 ], [ 103.738334655761719, 1.174723029136658 ], [ 103.73944091796875, 1.174723029136658 ], [ 103.739723205566463, 1.174443960189876 ], [ 103.740554809570426, 1.174443960189876 ], [ 103.741111755371207, 1.173887968063411 ], [ 103.741386413574205, 1.173887968063411 ], [ 103.741668701171989, 1.17416596412653 ], [ 103.741943359374986, 1.17416596412653 ], [ 103.742134094238281, 1.173614978790283 ], [ 103.742073059082131, 1.173117995262146 ], [ 103.741851806640739, 1.172683000564632 ], [ 103.741607666015682, 1.172322988510188 ], [ 103.741340637206974, 1.172032952308712 ], [ 103.741088867187614, 1.171769022941646 ], [ 103.740921020507926, 1.171509027481079 ], [ 103.740783691406236, 1.171262979507446 ], [ 103.740669250488338, 1.170977950096187 ], [ 103.740501403808651, 1.170694947242851 ], [ 103.740280151367244, 1.170397043228149 ], [ 103.740074157714901, 1.170029997825736 ], [ 103.739982604980582, 1.169556021690425 ], [ 103.739891052246136, 1.169057011604366 ], [ 103.739974975586051, 1.168552994728145 ], [ 103.73999786376946, 1.168041944503784 ], [ 103.739944458007926, 1.167541027069149 ], [ 103.739723205566463, 1.167222023010197 ], [ 103.739166259765682, 1.166666030883732 ], [ 103.7388916015625, 1.166389942169189 ], [ 103.738609313964943, 1.166666030883732 ], [ 103.738334655761719, 1.166389942169189 ], [ 103.73638916015625, 1.166389942169189 ], [ 103.736114501953182, 1.166666030883732 ], [ 103.735832214355455, 1.166666030883732 ], [ 103.735557556152457, 1.166944026947078 ], [ 103.733612060546932, 1.166944026947078 ], [ 103.731391906738395, 1.169165968895015 ], [ 103.731391906738395, 1.171110033989009 ], [ 103.731109619140668, 1.171388030052299 ], [ 103.731109619140668, 1.171944022178593 ], [ 103.730834960937443, 1.171944022178593 ], [ 103.730552673339886, 1.172222018241939 ], [ 103.728889465332145, 1.172222018241939 ], [ 103.728614807128906, 1.172500014305058 ], [ 103.728057861328182, 1.17305600643158 ], [ 103.728057861328182, 1.173334956169185 ], [ 103.728332519531364, 1.173609972000065 ], [ 103.728332519531364, 1.173887968063411 ], [ 103.729446411132869, 1.175001025200004 ], [ 103.729721069335923, 1.175001025200004 ], [ 103.730003356933651, 1.175279021263123 ], [ 103.730834960937443, 1.175279021263123 ], [ 103.731109619140668, 1.17555403709423 ], [ 103.731391906738395, 1.17555403709423 ], [ 103.731666564941406, 1.175832033157405 ], [ 103.731941223144645, 1.175832033157405 ], [ 103.732223510742188, 1.176110982895011 ], [ 103.732780456542955, 1.176110982895011 ] ] ] ] } } +] +} diff --git a/superset/assets/visualizations/countries/spain.geojson b/superset/assets/visualizations/countries/spain.geojson new file mode 100644 index 0000000000000..0a60276b94333 --- /dev/null +++ b/superset/assets/visualizations/countries/spain.geojson @@ -0,0 +1,54 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.630097031593323,37.37485122680675],[-1.670694947242737,37.357360839843864],[-1.706527948379517,37.306526184082024],[-1.808472990989628,37.213470458984375],[-1.849583983421269,37.07097244262707],[-1.901250004768372,36.987640380859375],[-1.905972003936768,36.93624877929699],[-1.981250047683716,36.90263748168945],[-2.002084016799927,36.83625030517584],[-2.062083959579411,36.807083129882926],[-2.063472032546997,36.77513885498047],[-2.12375092506403,36.73152923583989],[-2.194027900695801,36.720973968505966],[-2.254859924316406,36.79013824462902],[-2.318243026733342,36.833473205566406],[-2.367361068725529,36.841526031494254],[-2.430139064788818,36.81069564819336],[-2.474582910537606,36.83541488647472],[-2.565139055252018,36.81402587890624],[-2.641804933547974,36.706249237060604],[-2.699583053588867,36.6823616027832],[-2.772083044052067,36.68152618408209],[-2.859026908874398,36.70013809204107],[-2.927638053894043,36.75208282470703],[-2.967082977294865,36.74041748046875],[-3.12844800949091,36.750709533691406],[-3.140079021453801,36.78782272338867],[-3.02889609336853,36.84447479248058],[-3.070403099060059,36.901214599609375],[-2.978310108184814,36.97389221191406],[-3.023822069168091,37.08445739746105],[-2.948858976364136,37.09659194946289],[-2.928219079971257,37.15734481811529],[-2.895196914672851,37.167091369628906],[-2.845283985137939,37.279262542724716],[-2.778903961181641,37.26269531250005],[-2.660017967224121,37.212036132812614],[-2.665518999099731,37.2851295471192],[-2.635528087615967,37.394248962402344],[-2.568881988525391,37.44580841064459],[-2.460067033767587,37.50759124755865],[-2.35841703414917,37.522331237793026],[-2.375886917114258,37.61229705810547],[-2.31572508811945,37.62223052978521],[-2.32324290275568,37.69391250610363],[-2.276421070098877,37.776885986328125],[-2.301439046859741,37.810287475585994],[-2.294845104217416,37.876358032226676],[-2.207566022872811,37.91661071777355],[-2.171906948089599,37.88873291015631],[-2.123106002807617,37.900489807128906],[-2.062150001525822,37.883510589599716],[-1.99518895149231,37.841426849365234],[-2.008748054504338,37.774990081787216],[-1.995744943618774,37.72808837890631],[-2.011836051940918,37.673496246338004],[-1.953919053077698,37.58831787109381],[-1.845173954963684,37.45486831665045],[-1.736989974975529,37.44267654418951],[-1.630097031593323,37.37485122680675]]]},"properties":{"ID_0":215,"ISO":"ES-AL","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":1,"NAME_2":"Almería","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.142242908477726,37.003887176513615],[-5.115006923675537,36.98898315429693],[-5.086628913879395,36.9051170349121],[-5.133933067321777,36.83859252929699],[-5.170263767242432,36.823577880859375],[-5.277233123779297,36.878669738769474],[-5.340572834014893,36.819442749023494],[-5.290791988372803,36.775199890136776],[-5.329536914825383,36.681949615478516],[-5.378942012786865,36.63262557983404],[-5.438354969024601,36.61420059204113],[-5.522013187408447,36.53181838989252],[-5.610074043273926,36.54459381103521],[-5.608139038085937,36.51231765747082],[-5.524099826812744,36.497741699218864],[-5.490570068359375,36.53681564331055],[-5.43215799331665,36.53431701660162],[-5.355302810668945,36.43382263183605],[-5.315357208251952,36.34088134765631],[-5.252076148986816,36.31097412109381],[-5.314861774444523,36.23374938964855],[-5.339027881622314,36.15467453002941],[-5.425971984863281,36.17680740356457],[-5.441526889801025,36.0870819091798],[-5.484028816223087,36.05430603027338],[-5.581250190734863,36.01263809204096],[-5.643472194671631,36.0487518310548],[-5.796805858612004,36.07736206054699],[-5.842360973358154,36.13124847412115],[-5.921526908874455,36.18680572509771],[-5.973473072051945,36.17708206176757],[-6.054027080535832,36.20291519165045],[-6.085972785949707,36.26847076416027],[-6.144306182861328,36.29763793945324],[-6.20486211776722,36.381526947021484],[-6.239028930664006,36.463748931884766],[-6.22736215591425,36.58124923706055],[-6.296528816223145,36.616249084472656],[-6.392638206481934,36.63263702392578],[-6.439013957977238,36.720146179199325],[-6.348751068115234,36.79670333862315],[-6.353057861328125,36.85504913330078],[-6.330854892730655,36.89881896972662],[-6.187014102935791,36.89360046386719],[-6.104298114776554,36.85727310180664],[-5.97753381729126,36.84552383422863],[-5.893436908721867,36.85160446166997],[-5.876375198364258,36.89472961425781],[-5.804832935333195,36.92547988891613],[-5.716869831085205,36.91954040527344],[-5.667803764343262,36.975975036621094],[-5.58291578292841,36.914859771728516],[-5.524351119995117,36.937652587890625],[-5.46959209442133,36.983970642089844],[-5.510847091674805,37.0336265563966],[-5.433547973632812,37.052467346191406],[-5.393181800842285,36.972190856933594],[-5.301580905914306,37.01795578002941],[-5.234878063201904,36.9412078857423],[-5.142242908477726,37.003887176513615]]]},"properties":{"ID_0":215,"ISO":"ES-CA","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":2,"NAME_2":"Cádiz","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.046835899352971,38.72910690307617],[-5.000820159912109,38.696800231933594],[-4.868766784667969,38.68095397949219],[-4.860057830810547,38.61399841308594],[-4.787430763244629,38.59707260131847],[-4.622152805328312,38.523490905761776],[-4.608470916747933,38.49472808837902],[-4.505751132965088,38.45755767822277],[-4.435056209564209,38.4022598266601],[-4.268754959106444,38.347198486328125],[-4.220058917999268,38.29853820800781],[-4.168633937835693,38.13655853271479],[-4.282131195068359,38.0228385925293],[-4.259792804717961,37.9577865600587],[-4.28661394119257,37.79656982421881],[-4.211495876312142,37.78276443481451],[-4.239456176757812,37.72645950317388],[-4.164247035980225,37.68153381347656],[-4.227981090545654,37.63956451416015],[-4.16302299499506,37.599338531494254],[-4.048017978668213,37.4680061340332],[-4.000699043273869,37.40212249755865],[-4.085820198059082,37.403778076171875],[-4.154415130615178,37.34588623046881],[-4.20920991897583,37.352500915527344],[-4.263124942779541,37.260410308838004],[-4.255185127258301,37.22959899902355],[-4.327489852905273,37.18436050415039],[-4.372388839721566,37.215885162353565],[-4.377594947814885,37.270381927490234],[-4.417837142944336,37.28243637084966],[-4.476914882659912,37.25739288330084],[-4.499290943145752,37.223457336425895],[-4.576076030731201,37.209194183349666],[-4.653213024139404,37.25585937500006],[-4.671775817871037,37.335018157958984],[-4.779951095581055,37.33544158935558],[-4.821993827819824,37.35822296142578],[-4.884609222412109,37.43801116943365],[-4.940755844116154,37.53656005859375],[-4.931580066680851,37.61735153198242],[-4.999695777893066,37.70661544799805],[-5.047622203826847,37.71820831298833],[-5.107796192169133,37.66260147094732],[-5.17664098739624,37.6805992126466],[-5.343643188476505,37.587429046630916],[-5.381317138671818,37.611248016357415],[-5.405365943908635,37.69201278686535],[-5.303967952728271,37.72180175781255],[-5.33928108215332,37.8315315246582],[-5.399909973144474,37.86357879638683],[-5.414253234863281,37.94113922119146],[-5.493587017059325,38.000137329101676],[-5.495430946350098,38.042411804199276],[-5.584665775299072,38.13172149658209],[-5.535662174224797,38.16869735717767],[-5.525836944580077,38.26414108276373],[-5.575497150421085,38.329601287841854],[-5.584943771362304,38.38586044311529],[-5.568015098571721,38.4334068298341],[-5.484333992004338,38.46340560913086],[-5.418834209442139,38.512550354003906],[-5.368871212005502,38.58493423461914],[-5.309496879577637,38.57734680175775],[-5.293152809143066,38.6090927124024],[-5.167891979217529,38.677337646484375],[-5.046835899352971,38.72910690307617]]]},"properties":{"ID_0":215,"ISO":"ES-CO","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":3,"NAME_2":"Córdoba","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.551191091537419,38.084133148193416],[-2.423309087753295,38.03374099731451],[-2.341528892517033,38.026039123535206],[-2.276753902435246,37.960090637207145],[-2.207566022872811,37.91661071777355],[-2.294845104217416,37.876358032226676],[-2.301439046859741,37.810287475585994],[-2.276421070098877,37.776885986328125],[-2.32324290275568,37.69391250610363],[-2.31572508811945,37.62223052978521],[-2.375886917114258,37.61229705810547],[-2.35841703414917,37.522331237793026],[-2.460067033767587,37.50759124755865],[-2.568881988525391,37.44580841064459],[-2.635528087615967,37.394248962402344],[-2.665518999099731,37.2851295471192],[-2.660017967224121,37.212036132812614],[-2.778903961181641,37.26269531250005],[-2.845283985137939,37.279262542724716],[-2.895196914672851,37.167091369628906],[-2.928219079971257,37.15734481811529],[-2.948858976364136,37.09659194946289],[-3.023822069168091,37.08445739746105],[-2.978310108184814,36.97389221191406],[-3.070403099060059,36.901214599609375],[-3.02889609336853,36.84447479248058],[-3.140079021453801,36.78782272338867],[-3.12844800949091,36.750709533691406],[-3.260972976684513,36.753192901611385],[-3.348750114440918,36.7320823669433],[-3.425971031188908,36.695415496826286],[-3.554027080535889,36.71458435058605],[-3.600693941116276,36.74375152587896],[-3.67541599273676,36.72958374023443],[-3.777324914932251,36.73708343505871],[-3.765851974487191,36.78832244873047],[-3.827050924301147,36.8555641174317],[-3.999087095260563,36.88986968994152],[-4.111199855804443,36.949691772460994],[-4.166514873504582,36.95710754394531],[-4.223219871520996,37.01237106323248],[-4.272380828857365,37.01493835449224],[-4.28694009780878,37.119552612304794],[-4.327489852905273,37.18436050415039],[-4.255185127258301,37.22959899902355],[-4.263124942779541,37.260410308838004],[-4.20920991897583,37.352500915527344],[-4.154415130615178,37.34588623046881],[-4.085820198059082,37.403778076171875],[-4.000699043273869,37.40212249755865],[-3.950764894485416,37.37837982177745],[-3.843409061431884,37.385368347168026],[-3.802089929580631,37.45338439941406],[-3.684324979782104,37.517677307128906],[-3.626955032348633,37.52856826782237],[-3.536324977874756,37.58084106445318],[-3.506433963775578,37.61725234985363],[-3.399195909500122,37.564079284668026],[-3.296830892562866,37.5879859924317],[-3.262383937835637,37.63923645019537],[-3.171957015991211,37.64289855957042],[-3.09158992767334,37.59658813476557],[-2.902107000350838,37.66574096679693],[-2.903687000274601,37.7512092590332],[-2.819883108139038,37.8519744873048],[-2.784991979598885,37.91707992553722],[-2.694159030914307,37.9744873046875],[-2.67038798332203,37.961402893066456],[-2.597613096237183,38.00724792480463],[-2.598856925964299,38.058807373046875],[-2.551191091537419,38.084133148193416]]]},"properties":{"ID_0":215,"ISO":"ES-GR","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":4,"NAME_2":"Granada","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.974027156829834,37.29624938964844],[-7.032915115356388,37.20541763305669],[-7.137917995452824,37.217361450195426],[-7.16486120223999,37.20652770996105],[-7.407327175140324,37.183414459228516],[-7.432222843170165,37.24649429321283],[-7.440489768981933,37.391025543213004],[-7.490282058715821,37.518386840820256],[-7.522677898406925,37.55307388305664],[-7.444843769073486,37.6639404296875],[-7.422598838806151,37.7546005249024],[-7.324351787567139,37.81582641601568],[-7.254800796508789,37.92370223999029],[-7.245584964752198,37.99180221557623],[-7.158813953399658,37.99389648437494],[-7.108306884765568,38.04093933105474],[-7.007203102111816,38.020755767822266],[-6.969247817993164,38.1604843139649],[-6.931529998779297,38.208320617675774],[-6.857994079589787,38.17985916137701],[-6.794967174530029,38.178546905517635],[-6.815689086914062,38.12014389038091],[-6.758090019226017,38.09272003173828],[-6.622326850891113,38.09716796875006],[-6.587048053741398,38.026786804199276],[-6.494914054870605,38.01914215087896],[-6.413776874542179,38.05857467651373],[-6.303243160247803,37.97825622558588],[-6.201983928680419,37.95951080322277],[-6.180110931396428,37.941040039062614],[-6.125260829925537,37.90092086791992],[-6.159060955047607,37.873458862304744],[-6.126297950744629,37.797183990478516],[-6.18410587310791,37.80946350097656],[-6.248309135437012,37.75910186767572],[-6.310890197753906,37.76488113403332],[-6.473649978637695,37.72534561157232],[-6.51354789733881,37.62516403198242],[-6.39871883392334,37.612556457519645],[-6.402295112609863,37.579956054687614],[-6.30540895462036,37.42633056640625],[-6.356122016906738,37.412181854248104],[-6.384430885314941,37.33750152587896],[-6.332860946655273,37.299118041992244],[-6.345101833343506,37.21829605102538],[-6.386240005493107,37.074447631835994],[-6.356688976287842,37.00019836425781],[-6.37089300155634,36.926788330078125],[-6.330854892730655,36.89881896972662],[-6.353057861328125,36.85504913330078],[-6.348751068115234,36.79670333862315],[-6.390416145324649,36.803470611572266],[-6.455695152282658,36.91652679443365],[-6.520140171050968,36.97680664062506],[-6.595139026641846,37.02208328247076],[-6.779860973358097,37.11513900756836],[-6.875137805938721,37.148750305175724],[-6.930140018463078,37.184307098388786],[-6.974027156829834,37.29624938964844]]]},"properties":{"ID_0":215,"ISO":"ES-H","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":5,"NAME_2":"Huelva","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.551191091537419,38.084133148193416],[-2.598856925964299,38.058807373046875],[-2.597613096237183,38.00724792480463],[-2.67038798332203,37.961402893066456],[-2.694159030914307,37.9744873046875],[-2.784991979598885,37.91707992553722],[-2.819883108139038,37.8519744873048],[-2.903687000274601,37.7512092590332],[-2.902107000350838,37.66574096679693],[-3.09158992767334,37.59658813476557],[-3.171957015991211,37.64289855957042],[-3.262383937835637,37.63923645019537],[-3.296830892562866,37.5879859924317],[-3.399195909500122,37.564079284668026],[-3.506433963775578,37.61725234985363],[-3.536324977874756,37.58084106445318],[-3.626955032348633,37.52856826782237],[-3.684324979782104,37.517677307128906],[-3.802089929580631,37.45338439941406],[-3.843409061431884,37.385368347168026],[-3.950764894485416,37.37837982177745],[-4.000699043273869,37.40212249755865],[-4.048017978668213,37.4680061340332],[-4.16302299499506,37.599338531494254],[-4.227981090545654,37.63956451416015],[-4.164247035980225,37.68153381347656],[-4.239456176757812,37.72645950317388],[-4.211495876312142,37.78276443481451],[-4.28661394119257,37.79656982421881],[-4.259792804717961,37.9577865600587],[-4.282131195068359,38.0228385925293],[-4.168633937835693,38.13655853271479],[-4.220058917999268,38.29853820800781],[-4.268754959106444,38.347198486328125],[-4.255440235137939,38.401844024658196],[-4.155951023101807,38.38135528564459],[-3.961827993392944,38.36612319946289],[-3.854177951812631,38.37516784667963],[-3.807749032974186,38.42184448242199],[-3.729901075363102,38.424392700195305],[-3.62036299705494,38.39401245117199],[-3.528333902358952,38.40866851806646],[-3.472486019134464,38.39798355102539],[-3.376575946807861,38.43962478637701],[-3.374902963638192,38.47526168823242],[-3.130091905593815,38.43879699707037],[-3.06486010551447,38.47827911376959],[-2.99340295791626,38.450149536132805],[-2.938338994979801,38.47477340698253],[-2.889669895172119,38.455909729003906],[-2.761981964111328,38.53278350830078],[-2.672630071639958,38.496654510498104],[-2.598725080490112,38.51287078857433],[-2.566536903381348,38.49049758911133],[-2.571449995040894,38.41395568847656],[-2.483309030532723,38.39788818359375],[-2.485029935836735,38.30028152465832],[-2.440682888030949,38.28513717651373],[-2.446175098419189,38.18522644042969],[-2.551191091537419,38.084133148193416]]]},"properties":{"ID_0":215,"ISO":"ES-J","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":6,"NAME_2":"Jaén","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.327489852905273,37.18436050415039],[-4.28694009780878,37.119552612304794],[-4.272380828857365,37.01493835449224],[-4.223219871520996,37.01237106323248],[-4.166514873504582,36.95710754394531],[-4.111199855804443,36.949691772460994],[-3.999087095260563,36.88986968994152],[-3.827050924301147,36.8555641174317],[-3.765851974487191,36.78832244873047],[-3.777324914932251,36.73708343505871],[-3.833472013473511,36.753749847412166],[-3.955416917800846,36.726806640625114],[-4.064860820770207,36.74874877929699],[-4.109305858611947,36.72486114501959],[-4.24763822555542,36.710693359375],[-4.392639160156192,36.72291564941412],[-4.42847204208374,36.708751678466854],[-4.509861946105899,36.59951782226568],[-4.609304904937744,36.55791854858409],[-4.639028072357178,36.50624847412115],[-4.754027843475342,36.48513793945323],[-4.859583854675293,36.507637023925895],[-4.934584140777531,36.50013732910162],[-5.004860877990723,36.459861755371094],[-5.083751201629581,36.45013809204113],[-5.217360973358097,36.37930679321295],[-5.252076148986816,36.31097412109381],[-5.315357208251952,36.34088134765631],[-5.355302810668945,36.43382263183605],[-5.43215799331665,36.53431701660162],[-5.490570068359375,36.53681564331055],[-5.524099826812744,36.497741699218864],[-5.608139038085937,36.51231765747082],[-5.610074043273926,36.54459381103521],[-5.522013187408447,36.53181838989252],[-5.438354969024601,36.61420059204113],[-5.378942012786865,36.63262557983404],[-5.329536914825383,36.681949615478516],[-5.290791988372803,36.775199890136776],[-5.340572834014893,36.819442749023494],[-5.277233123779297,36.878669738769474],[-5.170263767242432,36.823577880859375],[-5.133933067321777,36.83859252929699],[-5.086628913879395,36.9051170349121],[-5.115006923675537,36.98898315429693],[-5.142242908477726,37.003887176513615],[-5.055153846740723,37.03273773193371],[-4.90823221206665,37.114677429199276],[-4.889711856842041,37.15507888793957],[-4.825770854949894,37.20073318481445],[-4.801078796386662,37.16056823730463],[-4.708467960357609,37.19772338867199],[-4.735610961914062,37.24486160278326],[-4.653213024139404,37.25585937500006],[-4.576076030731201,37.209194183349666],[-4.499290943145752,37.223457336425895],[-4.476914882659912,37.25739288330084],[-4.417837142944336,37.28243637084966],[-4.377594947814885,37.270381927490234],[-4.372388839721566,37.215885162353565],[-4.327489852905273,37.18436050415039]]]},"properties":{"ID_0":215,"ISO":"ES-MA","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":7,"NAME_2":"Málaga","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.584665775299072,38.13172149658209],[-5.495430946350098,38.042411804199276],[-5.493587017059325,38.000137329101676],[-5.414253234863281,37.94113922119146],[-5.399909973144474,37.86357879638683],[-5.33928108215332,37.8315315246582],[-5.303967952728271,37.72180175781255],[-5.405365943908635,37.69201278686535],[-5.381317138671818,37.611248016357415],[-5.343643188476505,37.587429046630916],[-5.17664098739624,37.6805992126466],[-5.107796192169133,37.66260147094732],[-5.047622203826847,37.71820831298833],[-4.999695777893066,37.70661544799805],[-4.931580066680851,37.61735153198242],[-4.940755844116154,37.53656005859375],[-4.884609222412109,37.43801116943365],[-4.821993827819824,37.35822296142578],[-4.779951095581055,37.33544158935558],[-4.671775817871037,37.335018157958984],[-4.653213024139404,37.25585937500006],[-4.735610961914062,37.24486160278326],[-4.708467960357609,37.19772338867199],[-4.801078796386662,37.16056823730463],[-4.825770854949894,37.20073318481445],[-4.889711856842041,37.15507888793957],[-4.90823221206665,37.114677429199276],[-5.055153846740723,37.03273773193371],[-5.142242908477726,37.003887176513615],[-5.234878063201904,36.9412078857423],[-5.301580905914306,37.01795578002941],[-5.393181800842285,36.972190856933594],[-5.433547973632812,37.052467346191406],[-5.510847091674805,37.0336265563966],[-5.46959209442133,36.983970642089844],[-5.524351119995117,36.937652587890625],[-5.58291578292841,36.914859771728516],[-5.667803764343262,36.975975036621094],[-5.716869831085205,36.91954040527344],[-5.804832935333195,36.92547988891613],[-5.876375198364258,36.89472961425781],[-5.893436908721867,36.85160446166997],[-5.97753381729126,36.84552383422863],[-6.104298114776554,36.85727310180664],[-6.187014102935791,36.89360046386719],[-6.330854892730655,36.89881896972662],[-6.37089300155634,36.926788330078125],[-6.356688976287842,37.00019836425781],[-6.386240005493107,37.074447631835994],[-6.345101833343506,37.21829605102538],[-6.332860946655273,37.299118041992244],[-6.384430885314941,37.33750152587896],[-6.356122016906738,37.412181854248104],[-6.30540895462036,37.42633056640625],[-6.402295112609863,37.579956054687614],[-6.39871883392334,37.612556457519645],[-6.51354789733881,37.62516403198242],[-6.473649978637695,37.72534561157232],[-6.310890197753906,37.76488113403332],[-6.248309135437012,37.75910186767572],[-6.18410587310791,37.80946350097656],[-6.126297950744629,37.797183990478516],[-6.159060955047607,37.873458862304744],[-6.125260829925537,37.90092086791992],[-6.180110931396428,37.941040039062614],[-6.136054992675724,37.972171783447315],[-6.031247138976994,37.997680664062614],[-5.953561782836857,37.995361328125114],[-5.908856868743896,38.062862396240234],[-5.912795066833496,38.122703552246094],[-5.837734222412053,38.17444229125976],[-5.688713073730468,38.17123794555664],[-5.740613937377872,38.126556396484425],[-5.693505764007568,38.083759307861385],[-5.633309841155949,38.13813781738281],[-5.584665775299072,38.13172149658209]]]},"properties":{"ID_0":215,"ISO":"ES-SE","NAME_0":"Spain","ID_1":1,"NAME_1":"Andalucía","ID_2":8,"NAME_2":"Sevilla","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.727500021457615,42.9192619323731],[-0.57361793518055,42.80739974975586],[-0.509380161762181,42.825286865234425],[-0.444918990135193,42.796031951904354],[-0.384153068065643,42.803859710693416],[-0.306374996900558,42.84132003784174],[-0.14766700565815,42.77390289306635],[-0.061586000025159,42.694717407226676],[0.000748000398744,42.68521118164057],[0.175992712378616,42.73564529418957],[0.259584814310074,42.71584320068365],[0.293188005685863,42.676197052001946],[0.360368013382015,42.72373199462885],[0.396131992340088,42.69387817382818],[0.525922417640686,42.70210647583008],[0.660093009471893,42.69099807739269],[0.708410024642944,42.621208190918026],[0.767548978328705,42.6112632751466],[0.733303010463658,42.50447082519536],[0.696869015693721,42.47412109374999],[0.759205996990261,42.34838485717779],[0.69586402177805,42.15201568603521],[0.702202022075653,42.12190628051758],[0.651740014553013,42.026268005371094],[0.562467992305812,41.93270874023449],[0.592813014984245,41.88443374633789],[0.542420983314514,41.820400238037166],[0.483260989189262,41.80148315429699],[0.469689011573905,41.765640258789176],[0.400644987821579,41.75671005249029],[0.328245997428894,41.68109130859381],[0.34964698553091,41.599483489990234],[0.40205600857746,41.59273910522472],[0.446954995393753,41.54225921630865],[0.397873997688407,41.49129104614269],[0.347351998090858,41.4877662658692],[0.334996998310089,41.40824508666998],[0.245143994689101,41.42873001098644],[0.219129994511604,41.40358734130865],[0.130989000201339,41.3889045715332],[0.106335997581539,41.35083770751953],[-0.069962002336979,41.372982025146534],[-0.104933001101017,41.485500335693416],[-0.156624004244804,41.535312652588004],[-0.156405001878682,41.589992523193416],[-0.239502996206227,41.572566986083984],[-0.355516999959889,41.63235855102544],[-0.367563009262028,41.67787170410162],[-0.503946006298008,41.74616622924805],[-0.524581015109959,41.8483505249024],[-0.630096018314362,41.912548065185604],[-0.657782971858921,41.95750427246105],[-0.796326994895878,41.9626083374024],[-0.854133009910583,42.02234268188476],[-0.8281329870224,42.082561492920036],[-0.762829005718231,42.06806182861334],[-0.761878013610783,42.23134613037114],[-0.730346024036351,42.291175842285156],[-0.780686020851135,42.31838989257824],[-0.813055992126465,42.264495849609375],[-0.893405020236969,42.28195953369152],[-0.842725992202759,42.36635208129894],[-0.8420490026474,42.407394409179744],[-0.881860971450806,42.45706176757824],[-0.924754023551884,42.587974548339844],[-0.887696027755737,42.66762161254883],[-0.901054024696293,42.74272537231445],[-0.84750097990036,42.785926818847656],[-0.856801986694336,42.84689331054699],[-0.783181011676788,42.921730041503906],[-0.727500021457615,42.9192619323731]]]},"properties":{"ID_0":215,"ISO":"ES-HU","NAME_0":"Spain","ID_1":2,"NAME_1":"Aragón","ID_2":9,"NAME_2":"Huesca","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.220387995243129,41.071453094482536],[0.281127005815563,40.98719024658209],[0.246047005057449,40.88722229003912],[0.278264999389762,40.82106018066412],[0.170766994357109,40.732860565185604],[0.11254400014883,40.72716140747082],[0.042220998555536,40.6910285949707],[0.015783000737713,40.72845077514654],[-0.064652003347874,40.7274284362793],[-0.194418996572495,40.78184509277355],[-0.223985999822617,40.75418090820324],[-0.235943004488888,40.69112777709972],[-0.306116998195648,40.66398620605463],[-0.378042012453079,40.66743469238281],[-0.379617005586624,40.623550415039],[-0.29323598742485,40.611064910888615],[-0.301809996366501,40.51598739624029],[-0.290322989225388,40.47063446044922],[-0.347303003072739,40.443962097168026],[-0.285189986228943,40.38634109497082],[-0.341042995452881,40.32904434204107],[-0.400052011012974,40.29418563842779],[-0.383570998907089,40.26486968994146],[-0.494459986686593,40.22875595092779],[-0.544130027294045,40.25168228149425],[-0.586925029754639,40.13145446777338],[-0.664054989814758,40.05146408081055],[-0.7622110247612,40.04128646850597],[-0.789560973644257,39.9899406433106],[-0.837882995605469,39.976573944091854],[-0.829923987388554,39.90680694580078],[-0.797631025314274,39.88109207153332],[-0.867357015609684,39.84680175781256],[-0.912501990795135,39.872379302978516],[-0.905973970890045,39.94398117065435],[-0.991253018379211,39.981857299804744],[-1.142333984374943,39.97186660766612],[-1.165125966072025,40.0101203918457],[-1.084169030189514,40.036235809326165],[-1.072069048881474,40.06050872802729],[-1.147271037101689,40.11396026611328],[-1.244909048080444,40.116165161132926],[-1.284281015396118,40.171520233154354],[-1.357035994529667,40.128910064697266],[-1.44879400730133,40.14536285400402],[-1.47435200214386,40.18506622314453],[-1.540416955947876,40.190826416015625],[-1.806290030479431,40.398250579833984],[-1.748532056808415,40.4629135131837],[-1.692445039749145,40.48684310913097],[-1.685752987861576,40.579925537109375],[-1.598682999610844,40.56207275390631],[-1.535573959350529,40.68703842163086],[-1.561952948570251,40.739768981933594],[-1.544618010520935,40.81620788574219],[-1.620244026184025,40.87950134277355],[-1.617385983467045,40.94374847412121],[-1.557870984077454,40.93934249877929],[-1.446859002113342,40.976554870605575],[-1.4578759670257,41.01837158203119],[-1.409960031509399,41.0579185485841],[-1.287374019622803,41.04887771606451],[-1.271312952041569,41.103294372558594],[-1.209926962852421,41.13881683349615],[-1.121549010276738,41.13494110107422],[-1.104665040969849,41.16767883300792],[-0.957207024097443,41.07636260986322],[-0.883608996868134,41.13013076782232],[-0.798951029777527,41.103305816650504],[-0.76136302947998,41.16967391967785],[-0.693919003009796,41.11231231689459],[-0.609851002693176,41.1916961669923],[-0.629670023918152,41.31177520751953],[-0.558869004249573,41.35432052612316],[-0.47988298535347,41.34595108032238],[-0.405813008546772,41.272380828857415],[-0.31326499581337,41.2556533813476],[-0.222430005669537,41.18887710571295],[-0.180301994085255,41.187881469726676],[-0.012187999673188,41.120269775390625],[0.000441999786005,41.08927536010742],[0.145895004272575,41.063064575195305],[0.220387995243129,41.071453094482536]]]},"properties":{"ID_0":215,"ISO":"ES-TE","NAME_0":"Spain","ID_1":2,"NAME_1":"Aragón","ID_2":10,"NAME_2":"Teruel","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.334996998310089,41.40824508666998],[0.373762995004768,41.35042572021496],[0.348551005125103,41.32979202270508],[0.385697990655899,41.278869628906364],[0.36421799659729,41.227695465088004],[0.322441011667308,41.22526168823242],[0.303355991840419,41.16440200805664],[0.219870999455452,41.13244628906249],[0.220387995243129,41.071453094482536],[0.145895004272575,41.063064575195305],[0.000441999786005,41.08927536010742],[-0.012187999673188,41.120269775390625],[-0.180301994085255,41.187881469726676],[-0.222430005669537,41.18887710571295],[-0.31326499581337,41.2556533813476],[-0.405813008546772,41.272380828857415],[-0.47988298535347,41.34595108032238],[-0.558869004249573,41.35432052612316],[-0.629670023918152,41.31177520751953],[-0.609851002693176,41.1916961669923],[-0.693919003009796,41.11231231689459],[-0.76136302947998,41.16967391967785],[-0.798951029777527,41.103305816650504],[-0.883608996868134,41.13013076782232],[-0.957207024097443,41.07636260986322],[-1.104665040969849,41.16767883300792],[-1.121549010276738,41.13494110107422],[-1.209926962852421,41.13881683349615],[-1.271312952041569,41.103294372558594],[-1.287374019622803,41.04887771606451],[-1.409960031509399,41.0579185485841],[-1.4578759670257,41.01837158203119],[-1.446859002113342,40.976554870605575],[-1.557870984077454,40.93934249877929],[-1.617385983467045,40.94374847412121],[-1.816406965255737,41.09529495239269],[-1.932382941245976,41.13860321044922],[-1.958953022956791,41.172496795654354],[-2.051626920700073,41.14686203002929],[-2.146174907684326,41.18440628051752],[-2.170420885086003,41.31884002685547],[-2.120090007781982,41.37968444824219],[-2.101455926895141,41.44579696655279],[-2.035559892654362,41.42689895629883],[-2.029207944869995,41.3841667175293],[-1.953624963760376,41.40864562988281],[-1.981048941612187,41.486442565917905],[-1.967273950576782,41.546073913574276],[-1.993265986442566,41.60013961791998],[-1.923038959503174,41.59833908081055],[-1.858929038047791,41.66153717041009],[-1.813053965568485,41.6605682373048],[-1.787713050842228,41.73413848876959],[-1.852859020233155,41.78956985473644],[-1.818503975868168,41.82995986938482],[-1.857223987579289,41.9095191955567],[-1.856485962867737,41.966403961181754],[-1.847131967544556,42.00800323486334],[-1.766844987869263,41.99579620361334],[-1.734251022338867,41.963905334472656],[-1.654091000556889,41.96535491943371],[-1.596199035644418,41.927097320556754],[-1.4217289686203,41.913078308105575],[-1.304774999618473,42.042953491211044],[-1.398833036422729,42.12622451782237],[-1.416308999061584,42.22200393676752],[-1.399036049842834,42.2913055419923],[-1.329038977622986,42.35538864135742],[-1.359730005264225,42.37836456298828],[-1.341464996337834,42.42394256591797],[-1.272691965103092,42.48237228393555],[-1.288095951080265,42.522792816162045],[-1.232185006141606,42.543357849121094],[-1.157616019248962,42.61046981811529],[-1.152374029159489,42.647567749023494],[-1.038563013076782,42.64833450317383],[-1.027948975563049,42.70006561279308],[-0.948643982410431,42.71146011352539],[-0.901054024696293,42.74272537231445],[-0.887696027755737,42.66762161254883],[-0.924754023551884,42.587974548339844],[-0.881860971450806,42.45706176757824],[-0.8420490026474,42.407394409179744],[-0.842725992202759,42.36635208129894],[-0.893405020236969,42.28195953369152],[-0.813055992126465,42.264495849609375],[-0.780686020851135,42.31838989257824],[-0.730346024036351,42.291175842285156],[-0.761878013610783,42.23134613037114],[-0.762829005718231,42.06806182861334],[-0.8281329870224,42.082561492920036],[-0.854133009910583,42.02234268188476],[-0.796326994895878,41.9626083374024],[-0.657782971858921,41.95750427246105],[-0.630096018314362,41.912548065185604],[-0.524581015109959,41.8483505249024],[-0.503946006298008,41.74616622924805],[-0.367563009262028,41.67787170410162],[-0.355516999959889,41.63235855102544],[-0.239502996206227,41.572566986083984],[-0.156405001878682,41.589992523193416],[-0.156624004244804,41.535312652588004],[-0.104933001101017,41.485500335693416],[-0.069962002336979,41.372982025146534],[0.106335997581539,41.35083770751953],[0.130989000201339,41.3889045715332],[0.219129994511604,41.40358734130865],[0.245143994689101,41.42873001098644],[0.334996998310089,41.40824508666998]]]},"properties":{"ID_0":215,"ISO":"ES-Z","NAME_0":"Spain","ID_1":2,"NAME_1":"Aragón","ID_2":11,"NAME_2":"Zaragoza","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.153194904327393,43.353248596191456],[-3.157285928726196,43.30130386352545],[-3.225183963775635,43.308917999267635],[-3.382946014404297,43.2704696655274],[-3.430324077606201,43.24207305908209],[-3.417598009109497,43.13340759277355],[-3.486917972564584,43.13323974609369],[-3.650960922241211,43.18101501464849],[-3.719187021255493,43.10832595825207],[-3.960742950439453,42.99242401123058],[-3.990813970565739,42.93080902099615],[-3.825279951095524,42.86861038208008],[-3.821597099304199,42.800266265869254],[-3.999572992324773,42.76895523071295],[-4.045835018157902,42.766590118408196],[-4.081262111663818,42.76144027709961],[-4.14983606338501,42.78928375244146],[-4.148914813995361,42.86573028564459],[-4.22562217712391,42.85885620117193],[-4.23841476440424,42.95434188842779],[-4.347248077392521,42.97212219238281],[-4.398038864135685,43.03483200073248],[-4.463020801544133,43.060028076171875],[-4.558369159698486,43.01948165893555],[-4.7369189262389,43.02095413208019],[-4.76641321182251,43.07451248168951],[-4.851337909698486,43.125907897949276],[-4.840936183929443,43.180740356445256],[-4.745722770690917,43.18407821655268],[-4.730861186981201,43.257293701171925],[-4.634801864624023,43.26873016357421],[-4.59830904006958,43.298503875732536],[-4.521636009216252,43.28058624267584],[-4.539379119873047,43.343917846679744],[-4.512214183807316,43.393196105957145],[-4.274028778076172,43.38930511474615],[-4.076806068420352,43.43097305297857],[-3.96986198425293,43.440418243408146],[-3.945137977600097,43.4684715270996],[-3.812360048294067,43.49458312988287],[-3.771249055862427,43.448749542236385],[-3.597637891769352,43.513195037841854],[-3.545137882232666,43.508193969726676],[-3.44430494308466,43.422916412353516],[-3.327084064483643,43.415996551513786],[-3.222637891769352,43.396526336670036],[-3.153194904327393,43.353248596191456]]]},"properties":{"ID_0":215,"ISO":"ES-S3","NAME_0":"Spain","ID_1":3,"NAME_1":"Cantabria","ID_2":12,"NAME_2":"Cantabria","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.928873002529087,38.78386688232433],[-0.961362004280033,38.774822235107536],[-0.915727019309941,38.69599914550781],[-0.962399005889779,38.65695953369146],[-1.026051044464111,38.655689239501946],[-1.183928966522217,38.754447937011776],[-1.249382972717285,38.73839569091797],[-1.342898011207581,38.677524566650504],[-1.402217030525151,38.69132614135742],[-1.447710990905762,38.64936065673834],[-1.45231294631958,38.58181762695318],[-1.498383045196533,38.5320663452149],[-1.48065805435175,38.48085021972656],[-1.478346943855286,38.376396179199276],[-1.589324951171818,38.311233520507926],[-1.669927000999337,38.31235504150396],[-1.681859970092717,38.36017990112316],[-1.743435978889465,38.381320953369254],[-1.907454013824463,38.29799270629894],[-1.978098034858647,38.282218933105526],[-2.063683986663818,38.29762268066412],[-2.113636016845646,38.23823547363281],[-2.213428020477295,38.2018394470216],[-2.261549949645882,38.11299514770519],[-2.329797983169555,38.065437316894524],[-2.341528892517033,38.026039123535206],[-2.423309087753295,38.03374099731451],[-2.551191091537419,38.084133148193416],[-2.446175098419189,38.18522644042969],[-2.440682888030949,38.28513717651373],[-2.485029935836735,38.30028152465832],[-2.483309030532723,38.39788818359375],[-2.571449995040894,38.41395568847656],[-2.566536903381348,38.49049758911133],[-2.598725080490112,38.51287078857433],[-2.672630071639958,38.496654510498104],[-2.761981964111328,38.53278350830078],[-2.750001907348519,38.61559677124018],[-2.668765068054142,38.649250030517635],[-2.637800931930485,38.73465347290039],[-2.750186920166016,38.8071403503418],[-2.761782884597721,38.880363464355526],[-2.835716009139958,38.90600204467779],[-2.880106925964241,38.953166961670036],[-2.809843063354492,39.02385711669916],[-2.804920911788884,39.07897186279308],[-2.842566967010498,39.13451766967779],[-2.723104000091553,39.26482009887706],[-2.742161989212036,39.31818008422857],[-2.619170904159546,39.3401718139649],[-2.550766944885254,39.323516845703125],[-2.510960102081242,39.342182159423885],[-2.37399506568903,39.23281097412115],[-2.321110010147038,39.28376770019537],[-2.288595914840698,39.22668838500988],[-2.168374061584473,39.28105545043956],[-2.074924945831242,39.266067504882926],[-2.086193084716683,39.347206115722656],[-2.044286012649479,39.35919952392578],[-1.989724040031433,39.293708801269645],[-1.887004971504211,39.30482101440435],[-1.769783020019531,39.28053665161133],[-1.73921000957489,39.32118988037121],[-1.626757979392948,39.36095809936534],[-1.505107045173588,39.418025970458984],[-1.462545990943852,39.379417419433594],[-1.383658051490784,39.36626052856451],[-1.352220058441162,39.33981323242193],[-1.161823034286442,39.30544662475597],[-1.194430947303658,39.180438995361385],[-1.265632987022343,39.075496673583984],[-1.146587014198303,38.929386138916016],[-0.959344983100891,38.944614410400334],[-0.940787971019688,38.89965057373058],[-0.928873002529087,38.78386688232433]]]},"properties":{"ID_0":215,"ISO":"ES-AB","NAME_0":"Spain","ID_1":4,"NAME_1":"Castilla-La Mancha","ID_2":13,"NAME_2":"Albacete","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-4.755263805389404,39.41572570800787],[-4.861216068267821,39.379329681396484],[-4.940631866455021,39.395133972168026],[-4.898127079009953,39.5120735168457],[-4.863014221191406,39.55615997314464],[-4.762368202209473,39.514049530029354],[-4.740404129028263,39.45617675781256],[-4.755263805389404,39.41572570800787]]],[[[-2.931284904479924,39.471508026123104],[-2.889579057693424,39.421947479248104],[-2.882286071777287,39.35090637207037],[-2.84558010101307,39.34932327270519],[-2.793028116226139,39.39775848388672],[-2.742161989212036,39.31818008422857],[-2.723104000091553,39.26482009887706],[-2.842566967010498,39.13451766967779],[-2.804920911788884,39.07897186279308],[-2.809843063354492,39.02385711669916],[-2.880106925964241,38.953166961670036],[-2.835716009139958,38.90600204467779],[-2.761782884597721,38.880363464355526],[-2.750186920166016,38.8071403503418],[-2.637800931930485,38.73465347290039],[-2.668765068054142,38.649250030517635],[-2.750001907348519,38.61559677124018],[-2.761981964111328,38.53278350830078],[-2.889669895172119,38.455909729003906],[-2.938338994979801,38.47477340698253],[-2.99340295791626,38.450149536132805],[-3.06486010551447,38.47827911376959],[-3.130091905593815,38.43879699707037],[-3.374902963638192,38.47526168823242],[-3.376575946807861,38.43962478637701],[-3.472486019134464,38.39798355102539],[-3.528333902358952,38.40866851806646],[-3.62036299705494,38.39401245117199],[-3.729901075363102,38.424392700195305],[-3.807749032974186,38.42184448242199],[-3.854177951812631,38.37516784667963],[-3.961827993392944,38.36612319946289],[-4.155951023101807,38.38135528564459],[-4.255440235137939,38.401844024658196],[-4.268754959106444,38.347198486328125],[-4.435056209564209,38.4022598266601],[-4.505751132965088,38.45755767822277],[-4.608470916747933,38.49472808837902],[-4.622152805328312,38.523490905761776],[-4.787430763244629,38.59707260131847],[-4.860057830810547,38.61399841308594],[-4.868766784667969,38.68095397949219],[-5.000820159912109,38.696800231933594],[-5.046835899352971,38.72910690307617],[-4.989881992340031,38.739776611328175],[-4.943374156951847,38.8543968200683],[-4.914830207824707,38.887458801269645],[-4.847708225250186,38.882068634033196],[-4.832901954650879,38.939323425293075],[-4.933557987213135,38.975593566894645],[-4.962394237518311,39.05874633789074],[-4.882243156433049,39.032867431640625],[-4.832681179046574,39.0461807250976],[-4.874311923980656,39.099037170410156],[-4.810163021087646,39.19943237304693],[-4.714297771453801,39.18763732910162],[-4.705051898956299,39.21376037597662],[-4.760903835296517,39.320804595947266],[-4.709940910339355,39.345764160156364],[-4.669393062591553,39.4245491027832],[-4.687589168548584,39.45030975341808],[-4.618028163909855,39.45441436767578],[-4.613893032073975,39.48527908325201],[-4.554523944854736,39.5107917785645],[-4.521309852600041,39.55591964721674],[-4.452974796295109,39.517303466796875],[-4.320546150207463,39.48342895507818],[-4.241985797881966,39.4779167175293],[-4.193128108978271,39.495403289795036],[-4.166355133056641,39.566905975341854],[-4.041675090789738,39.57537460327143],[-4.058722972869873,39.47220611572271],[-4.117967128753661,39.456901550293026],[-4.147966861724797,39.36278533935558],[-3.972095966338998,39.35219573974615],[-3.965364933013859,39.298198699951286],[-3.841568946838379,39.259601593017635],[-3.765589952468872,39.293338775634766],[-3.720587968826294,39.269809722900334],[-3.675055980682373,39.2966651916505],[-3.556068897247258,39.299072265625114],[-3.476778030395451,39.343170166015625],[-3.410178899765015,39.40461349487316],[-3.349462985992375,39.4083366394043],[-3.294100999832153,39.470870971679744],[-3.143331050872803,39.495552062988224],[-3.069504976272526,39.450298309326165],[-2.977644920349064,39.44470214843755],[-2.931284904479924,39.471508026123104]]]]},"properties":{"ID_0":215,"ISO":"ES-CR","NAME_0":"Spain","ID_1":4,"NAME_1":"Castilla-La Mancha","ID_2":14,"NAME_2":"Ciudad Real","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.806290030479431,40.398250579833984],[-1.540416955947876,40.190826416015625],[-1.47435200214386,40.18506622314453],[-1.44879400730133,40.14536285400402],[-1.383072972297611,40.03899002075207],[-1.248002052307072,39.9950904846192],[-1.165125966072025,40.0101203918457],[-1.142333984374943,39.97186660766612],[-1.203917026519662,39.94937133789062],[-1.19991397857666,39.85945892333996],[-1.214938044547978,39.808799743652344],[-1.275374054908639,39.737014770507756],[-1.261929988861084,39.69892883300781],[-1.312760949134827,39.670509338378906],[-1.368468046188297,39.689640045166016],[-1.417865991592407,39.65496063232433],[-1.462015032768193,39.57664489746093],[-1.504294991493225,39.56393051147455],[-1.505107045173588,39.418025970458984],[-1.626757979392948,39.36095809936534],[-1.73921000957489,39.32118988037121],[-1.769783020019531,39.28053665161133],[-1.887004971504211,39.30482101440435],[-1.989724040031433,39.293708801269645],[-2.044286012649479,39.35919952392578],[-2.086193084716683,39.347206115722656],[-2.074924945831242,39.266067504882926],[-2.168374061584473,39.28105545043956],[-2.288595914840698,39.22668838500988],[-2.321110010147038,39.28376770019537],[-2.37399506568903,39.23281097412115],[-2.510960102081242,39.342182159423885],[-2.550766944885254,39.323516845703125],[-2.619170904159546,39.3401718139649],[-2.742161989212036,39.31818008422857],[-2.793028116226139,39.39775848388672],[-2.84558010101307,39.34932327270519],[-2.882286071777287,39.35090637207037],[-2.889579057693424,39.421947479248104],[-2.931284904479924,39.471508026123104],[-2.925425052642822,39.60182189941406],[-2.908144950866586,39.6423568725587],[-2.997659921646118,39.718891143798885],[-3.059587001800537,39.83749389648449],[-3.122030019760132,39.876094818115284],[-3.096506118774414,39.98695755004894],[-3.142473936080875,39.984981536865284],[-3.161286115646362,40.06514358520519],[-3.088567972183227,40.07051086425786],[-3.053999900817871,40.10651397705078],[-3.067744016647339,40.157539367675895],[-2.887505054473877,40.16464996337885],[-2.825897932052555,40.20225524902344],[-2.802547931671143,40.26404190063482],[-2.816610097885018,40.3347053527832],[-2.807231903076115,40.40726852416998],[-2.722819089889526,40.39713287353527],[-2.67627906799305,40.435794830322266],[-2.504460096359252,40.44866561889654],[-2.52865290641779,40.49839782714855],[-2.379930019378605,40.5436019897462],[-2.28596806526184,40.592239379882926],[-2.274527072906494,40.64477157592785],[-2.213742017745915,40.61919403076172],[-2.156863927841186,40.65870666503906],[-2.091131925582886,40.64638137817383],[-2.034471988677865,40.60095214843756],[-1.923588037490845,40.592041015625114],[-1.856394052505493,40.42881011962885],[-1.806290030479431,40.398250579833984]]]},"properties":{"ID_0":215,"ISO":"ES-CU","NAME_0":"Spain","ID_1":4,"NAME_1":"Castilla-La Mancha","ID_2":15,"NAME_2":"Cuenca","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.051626920700073,41.14686203002929],[-1.958953022956791,41.172496795654354],[-1.932382941245976,41.13860321044922],[-1.816406965255737,41.09529495239269],[-1.617385983467045,40.94374847412121],[-1.620244026184025,40.87950134277355],[-1.544618010520935,40.81620788574219],[-1.561952948570251,40.739768981933594],[-1.535573959350529,40.68703842163086],[-1.598682999610844,40.56207275390631],[-1.685752987861576,40.579925537109375],[-1.692445039749145,40.48684310913097],[-1.748532056808415,40.4629135131837],[-1.806290030479431,40.398250579833984],[-1.856394052505493,40.42881011962885],[-1.923588037490845,40.592041015625114],[-2.034471988677865,40.60095214843756],[-2.091131925582886,40.64638137817383],[-2.156863927841186,40.65870666503906],[-2.213742017745915,40.61919403076172],[-2.274527072906494,40.64477157592785],[-2.28596806526184,40.592239379882926],[-2.379930019378605,40.5436019897462],[-2.52865290641779,40.49839782714855],[-2.504460096359252,40.44866561889654],[-2.67627906799305,40.435794830322266],[-2.722819089889526,40.39713287353527],[-2.807231903076115,40.40726852416998],[-2.816610097885018,40.3347053527832],[-2.802547931671143,40.26404190063482],[-2.825897932052555,40.20225524902344],[-2.887505054473877,40.16464996337885],[-3.067744016647339,40.157539367675895],[-3.078999996185246,40.22401046752941],[-3.111999988555908,40.28564453125006],[-3.183469057083073,40.269290924072266],[-3.130392074584904,40.40507888793945],[-3.19864296913147,40.44232177734386],[-3.200581073760986,40.51469421386719],[-3.330382108688354,40.59740447998058],[-3.323318958282471,40.63013458251959],[-3.461599111557006,40.69269943237299],[-3.434103012084961,40.73077011108404],[-3.465787887573242,40.7842636108399],[-3.50255298614502,40.789062500000114],[-3.444138050079289,40.8878631591798],[-3.397598028182927,41.00736618042003],[-3.438203096389657,41.04261016845703],[-3.539695978164673,41.16501235961913],[-3.409140110015869,41.21182250976562],[-3.399427890777531,41.254547119140625],[-3.290096044540405,41.25793457031244],[-3.207281112670842,41.30424118041992],[-3.061829090118408,41.27343368530284],[-2.950057983398438,41.29264450073248],[-2.90659499168396,41.32764053344738],[-2.86681509017933,41.274475097656364],[-2.782421112060547,41.25377273559576],[-2.760874032974243,41.274032592773494],[-2.654762029647827,41.24066162109381],[-2.516866922378483,41.14645385742193],[-2.469394922256469,41.07811737060547],[-2.323337078094426,41.05651855468744],[-2.232078075408879,41.097023010253906],[-2.175230026245117,41.08376693725586],[-2.065555095672551,41.09580230712902],[-2.051626920700073,41.14686203002929]]]},"properties":{"ID_0":215,"ISO":"ES-GU","NAME_0":"Spain","ID_1":4,"NAME_1":"Castilla-La Mancha","ID_2":16,"NAME_2":"Guadalajara","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.161286115646362,40.06514358520519],[-3.142473936080875,39.984981536865284],[-3.096506118774414,39.98695755004894],[-3.122030019760132,39.876094818115284],[-3.059587001800537,39.83749389648449],[-2.997659921646118,39.718891143798885],[-2.908144950866586,39.6423568725587],[-2.925425052642822,39.60182189941406],[-2.931284904479924,39.471508026123104],[-2.977644920349064,39.44470214843755],[-3.069504976272526,39.450298309326165],[-3.143331050872803,39.495552062988224],[-3.294100999832153,39.470870971679744],[-3.349462985992375,39.4083366394043],[-3.410178899765015,39.40461349487316],[-3.476778030395451,39.343170166015625],[-3.556068897247258,39.299072265625114],[-3.675055980682373,39.2966651916505],[-3.720587968826294,39.269809722900334],[-3.765589952468872,39.293338775634766],[-3.841568946838379,39.259601593017635],[-3.965364933013859,39.298198699951286],[-3.972095966338998,39.35219573974615],[-4.147966861724797,39.36278533935558],[-4.117967128753661,39.456901550293026],[-4.058722972869873,39.47220611572271],[-4.041675090789738,39.57537460327143],[-4.166355133056641,39.566905975341854],[-4.193128108978271,39.495403289795036],[-4.241985797881966,39.4779167175293],[-4.320546150207463,39.48342895507818],[-4.452974796295109,39.517303466796875],[-4.521309852600041,39.55591964721674],[-4.554523944854736,39.5107917785645],[-4.613893032073975,39.48527908325201],[-4.618028163909855,39.45441436767578],[-4.687589168548584,39.45030975341808],[-4.755263805389404,39.41572570800787],[-4.740404129028263,39.45617675781256],[-4.762368202209473,39.514049530029354],[-4.863014221191406,39.55615997314464],[-4.898127079009953,39.5120735168457],[-4.940631866455021,39.395133972168026],[-4.952404022216797,39.39500808715826],[-5.058783054351807,39.48942947387701],[-5.083785057067871,39.49067687988287],[-5.201958179473877,39.59203338623058],[-5.151309013366699,39.66129684448248],[-5.137683868408203,39.71500778198242],[-5.166789054870548,39.79989242553711],[-5.205974102020264,39.79773712158203],[-5.254111766815186,39.75255203247082],[-5.316100120544434,39.7727890014649],[-5.283411979675293,39.857219696045036],[-5.326340198516845,39.89197540283209],[-5.400968074798584,39.885673522949276],[-5.364984989166146,39.983856201171875],[-5.368899822235051,40.100090026855526],[-5.33586597442627,40.11582183837885],[-5.124691009521428,40.10409927368163],[-5.06272983551014,40.15164184570324],[-5.006133079528809,40.10971832275385],[-4.925343990325928,40.13604354858404],[-4.924567222595158,40.169990539550724],[-4.761082172393799,40.260944366455135],[-4.698033809661808,40.282199859619254],[-4.686550140380803,40.211029052734375],[-4.61680078506464,40.2002220153808],[-4.578898906707764,40.217411041259766],[-4.535758018493596,40.19956970214843],[-4.427375793457031,40.25784683227539],[-4.356800079345589,40.30965805053722],[-4.341254234313965,40.23995208740246],[-4.295822143554631,40.21909713745111],[-4.245747089385986,40.27372360229498],[-4.104146003723145,40.241806030273494],[-4.071133136749268,40.26481246948248],[-3.992347955703679,40.20973205566412],[-3.952852964401245,40.21233367919916],[-3.800069093704223,40.17570495605463],[-3.771778106689396,40.13958740234381],[-3.723573923110961,40.147117614746094],[-3.606399059295597,40.10900497436535],[-3.620538949966374,40.05612182617182],[-3.700261116027832,40.01890945434576],[-3.751385927200203,39.95280456542969],[-3.808095932006779,39.95481109619152],[-3.875791072845402,39.92867660522461],[-3.814594030380249,39.88585662841797],[-3.589570045471135,40.01348114013677],[-3.515156030654907,40.04327392578131],[-3.429590940475464,40.03875732421869],[-3.327255010604744,40.07956695556652],[-3.276740074157601,40.0474472045899],[-3.161286115646362,40.06514358520519]]]},"properties":{"ID_0":215,"ISO":"ES-TO","NAME_0":"Spain","ID_1":4,"NAME_1":"Castilla-La Mancha","ID_2":17,"NAME_2":"Toledo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.722003936767578,41.14931488037114],[-4.716413021087646,41.07158279418951],[-4.639432907104492,41.030052185058594],[-4.606649875640869,40.97080230712896],[-4.566255092620793,40.95619964599604],[-4.546289920806885,40.82555007934575],[-4.49367618560791,40.83351898193371],[-4.480476856231633,40.786163330078175],[-4.431028842925969,40.742385864257756],[-4.419524192809945,40.633430480957145],[-4.319613933563232,40.647518157958984],[-4.275018215179443,40.67631149291992],[-4.160161018371525,40.68984603881836],[-4.161231994628906,40.623374938964844],[-4.283215999603271,40.59530639648449],[-4.322902202606144,40.551105499267635],[-4.324088096618652,40.41864013671881],[-4.432000160217285,40.39775848388672],[-4.455410957336369,40.319923400878906],[-4.504278182983341,40.3151092529298],[-4.569112777709903,40.25721359252941],[-4.578898906707764,40.217411041259766],[-4.61680078506464,40.2002220153808],[-4.686550140380803,40.211029052734375],[-4.698033809661808,40.282199859619254],[-4.761082172393799,40.260944366455135],[-4.924567222595158,40.169990539550724],[-4.925343990325928,40.13604354858404],[-5.006133079528809,40.10971832275385],[-5.06272983551014,40.15164184570324],[-5.124691009521428,40.10409927368163],[-5.33586597442627,40.11582183837885],[-5.36788606643671,40.16411209106457],[-5.369561195373535,40.2183189392091],[-5.429717063903752,40.25226211547863],[-5.470802783966064,40.20785522460943],[-5.530856132507324,40.19472503662121],[-5.609930038452148,40.21548843383789],[-5.692549228668155,40.29211044311535],[-5.737448215484619,40.294128417968864],[-5.686246871948185,40.35537338256841],[-5.691077232360839,40.4219970703125],[-5.589688777923584,40.46725463867193],[-5.544643878936767,40.42309951782232],[-5.460343837738037,40.47404479980469],[-5.430967807769719,40.56723785400402],[-5.517374992370549,40.54562377929693],[-5.516111850738468,40.58538055419933],[-5.447542190551701,40.57959747314459],[-5.382845878601074,40.62076568603521],[-5.364667892455997,40.67943572998041],[-5.292736053466797,40.710269927978516],[-5.161398887634277,40.81400299072271],[-5.161437034606934,40.86224746704113],[-5.111110210418644,40.9149284362793],[-5.128064155578613,40.948574066162166],[-5.089735984802189,40.99662780761713],[-5.146436214447021,41.04364013671881],[-5.124823093414249,41.132038116455135],[-5.013811111450138,41.162197113037166],[-4.967510223388614,41.15229797363281],[-4.870148181915226,41.10026550292969],[-4.805746078491211,41.13515853881847],[-4.722003936767578,41.14931488037114]]]},"properties":{"ID_0":215,"ISO":"ES-AV","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":18,"NAME_2":"Ávila","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.830471992492676,42.79212188720709],[-2.743621110916137,42.792179107666016],[-2.562522888183537,42.74126815795904],[-2.578068971633854,42.673976898193416],[-2.767848014831486,42.66600036621094],[-2.784454107284545,42.69892883300792],[-2.854151964187622,42.7363853454591],[-2.830471992492676,42.79212188720709]]],[[[-3.141315937042179,43.16151809692394],[-3.181739091873169,43.120861053466854],[-3.133893013000431,43.0972175598145],[-3.144740104675236,43.00682067871094],[-3.060210943221989,43.003494262695426],[-3.011576890945321,42.9524307250976],[-3.016088962554818,42.91053771972661],[-3.126481056213322,42.90404129028332],[-3.147705078124943,42.932670593261776],[-3.224679946899414,42.94967269897461],[-3.282557010650634,42.875492095947266],[-3.225788116455078,42.83009719848632],[-3.100594997406006,42.76715087890631],[-3.017769098281804,42.74121093750005],[-2.986951112747192,42.70883941650402],[-2.90244889259327,42.69358825683605],[-2.858040094375554,42.63819122314459],[-2.883472919464054,42.624416351318466],[-3.004699945449772,42.64425277709972],[-3.105381011962834,42.55391311645508],[-3.071721076965275,42.527660369873104],[-3.05308198928833,42.37340927124035],[-3.109194040298405,42.35187149047862],[-3.088526964187565,42.2457160949707],[-3.128798961639347,42.20092773437494],[-3.034306049346924,42.08595657348644],[-2.932396888732853,42.08089065551758],[-2.913556098937988,42.022846221923935],[-2.998411893844604,41.93259811401373],[-3.0166978836059,41.886905670166016],[-3.087666034698486,41.87634658813488],[-3.171284914016724,41.79301834106457],[-3.19442892074585,41.82892990112305],[-3.278966903686467,41.86791229248041],[-3.275383949279785,41.768676757812614],[-3.352828979492131,41.73793411254883],[-3.358329057693368,41.69343185424816],[-3.407270908355656,41.675594329833984],[-3.459089040756168,41.58963394165045],[-3.541496038436889,41.577602386474666],[-3.645179033279362,41.572093963623104],[-3.728228092193604,41.517627716064396],[-3.732327938079834,41.469879150390625],[-3.823774099349919,41.48111724853515],[-3.863621950149479,41.528957366943416],[-3.980581045150756,41.58335876464844],[-4.030276775360107,41.63048171997082],[-4.025950908660832,41.6923713684082],[-4.068036079406681,41.72653961181652],[-4.040792942047062,41.7683486938476],[-4.089988231658936,41.8308563232423],[-4.088746070861703,41.870639801025504],[-3.980622053146305,41.90060806274425],[-4.014701843261662,41.998573303222656],[-3.980102062225341,42.04302978515624],[-4.104028224945067,42.0616111755371],[-4.05613183975214,42.10089492797846],[-4.120851993560791,42.12826538085932],[-4.205338001251164,42.13459396362315],[-4.190876960754338,42.1809921264649],[-4.226846218109017,42.22954559326166],[-4.278985977172852,42.36120986938487],[-4.321503162383976,42.3798828125],[-4.335258007049561,42.43059539794922],[-4.242513179779053,42.456222534179744],[-4.292514801025334,42.60594558715832],[-4.275951862335205,42.67304992675781],[-4.185306072235051,42.73616027832031],[-4.081262111663818,42.76144027709961],[-4.045835018157902,42.766590118408196],[-3.999572992324773,42.76895523071295],[-3.821597099304199,42.800266265869254],[-3.825279951095524,42.86861038208008],[-3.990813970565739,42.93080902099615],[-3.960742950439453,42.99242401123058],[-3.719187021255493,43.10832595825207],[-3.650960922241211,43.18101501464849],[-3.486917972564584,43.13323974609369],[-3.417598009109497,43.13340759277355],[-3.253370046615543,43.19855880737316],[-3.223452091217041,43.17222976684582],[-3.141315937042179,43.16151809692394]]]]},"properties":{"ID_0":215,"ISO":"ES-BU","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":19,"NAME_2":"Burgos","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.7369189262389,43.02095413208019],[-4.794729232788086,42.98661804199219],[-4.802559852600041,42.94947433471673],[-4.88846302032465,42.841106414795036],[-4.936265945434513,42.744441986083984],[-4.879868030548039,42.703971862793026],[-4.914418220519963,42.54469299316406],[-4.887893199920654,42.537002563476506],[-4.903138160705566,42.38650512695324],[-4.942393779754639,42.34652709960937],[-4.953344821929875,42.29713439941411],[-5.002037048339787,42.28910827636718],[-5.093648910522404,42.309272766113224],[-5.197799205779972,42.26052474975597],[-5.244579792022648,42.26385116577154],[-5.265536785125675,42.21088027954107],[-5.38798999786377,42.221427917480526],[-5.371414184570312,42.130050659179744],[-5.376186847686711,42.041454315185604],[-5.421480178833008,42.030662536621094],[-5.480814933776855,42.05241012573253],[-5.520780086517277,42.09712600708008],[-5.580058097839355,42.058437347412166],[-5.645112991333008,42.13214874267584],[-5.743112087249756,42.11341094970703],[-5.837953090667668,42.11875915527343],[-5.911478042602539,42.14057159423834],[-5.953343868255558,42.123668670654354],[-6.028653144836425,42.1575813293457],[-6.105393886566048,42.161975860595696],[-6.212265014648323,42.1480598449707],[-6.329322814941406,42.19984817504894],[-6.427759170532227,42.20192337036144],[-6.47811222076416,42.18220901489258],[-6.638508796691895,42.21727752685558],[-6.703650951385441,42.20935821533203],[-6.784176826476993,42.25360107421875],[-6.741003990173339,42.29864501953125],[-6.733810901641789,42.35909271240234],[-6.820662021636906,42.38562393188488],[-6.808454990386906,42.46942901611339],[-6.924909114837646,42.519416809082145],[-6.973406791687012,42.493991851806584],[-7.076904773712158,42.508171081543075],[-7.046858787536621,42.632678985595696],[-7.045044898986816,42.6947402954101],[-7.010742187499943,42.72363662719721],[-6.904046058654785,42.75954437255871],[-6.840179920196533,42.823337554931754],[-6.871138095855712,42.87380981445324],[-6.82404899597168,42.91502761840826],[-6.749083042144775,42.89411544799816],[-6.72252178192133,42.91745376586914],[-6.612791061401367,42.92452239990245],[-6.541102886199951,42.91247558593756],[-6.442235946655217,42.939292907714844],[-6.396917819976806,43.038288116455135],[-6.226683139801025,43.008876800537166],[-6.185967922210636,43.049510955810604],[-6.136545181274414,43.02095413208019],[-5.974021911621037,43.06490707397461],[-5.95662784576416,43.018558502197266],[-5.850213050842285,42.967369079589844],[-5.765460968017521,42.969188690185604],[-5.728264808654728,43.04247665405279],[-5.688209056854134,43.05683898925787],[-5.540303230285588,43.01831436157237],[-5.383000850677489,43.08720016479492],[-5.28202009201044,43.07738876342779],[-5.188504219055119,43.0997314453125],[-5.10164022445673,43.10181045532238],[-5.063722133636475,43.17945098876953],[-4.996514797210693,43.18535232543957],[-4.893488883972111,43.238437652587834],[-4.840936183929443,43.180740356445256],[-4.851337909698486,43.125907897949276],[-4.76641321182251,43.07451248168951],[-4.7369189262389,43.02095413208019]]]},"properties":{"ID_0":215,"ISO":"ES-LE","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":20,"NAME_2":"León","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.081262111663818,42.76144027709961],[-4.185306072235051,42.73616027832031],[-4.275951862335205,42.67304992675781],[-4.292514801025334,42.60594558715832],[-4.242513179779053,42.456222534179744],[-4.335258007049561,42.43059539794922],[-4.321503162383976,42.3798828125],[-4.278985977172852,42.36120986938487],[-4.226846218109017,42.22954559326166],[-4.190876960754338,42.1809921264649],[-4.205338001251164,42.13459396362315],[-4.120851993560791,42.12826538085932],[-4.05613183975214,42.10089492797846],[-4.104028224945067,42.0616111755371],[-3.980102062225341,42.04302978515624],[-4.014701843261662,41.998573303222656],[-3.980622053146305,41.90060806274425],[-4.088746070861703,41.870639801025504],[-4.089988231658936,41.8308563232423],[-4.040792942047062,41.7683486938476],[-4.236254215240479,41.81143188476573],[-4.317554950714111,41.76343536376953],[-4.391609191894531,41.787265777588004],[-4.442101001739502,41.75864028930669],[-4.493570804595947,41.780345916748104],[-4.487257957458496,41.820083618164055],[-4.565999984741211,41.81256103515636],[-4.66959095001215,41.90048980712901],[-4.789156913757267,41.81801223754894],[-4.838173866271973,41.89851760864252],[-4.889681816101017,41.932769775390625],[-5.004751205444279,41.937931060791065],[-4.949601173400822,42.0509986877442],[-4.916663169860782,42.07829284667963],[-4.927398204803467,42.15019607543951],[-5.02686595916748,42.1538925170899],[-5.002037048339787,42.28910827636718],[-4.953344821929875,42.29713439941411],[-4.942393779754639,42.34652709960937],[-4.903138160705566,42.38650512695324],[-4.887893199920654,42.537002563476506],[-4.914418220519963,42.54469299316406],[-4.879868030548039,42.703971862793026],[-4.936265945434513,42.744441986083984],[-4.88846302032465,42.841106414795036],[-4.802559852600041,42.94947433471673],[-4.794729232788086,42.98661804199219],[-4.7369189262389,43.02095413208019],[-4.558369159698486,43.01948165893555],[-4.463020801544133,43.060028076171875],[-4.398038864135685,43.03483200073248],[-4.347248077392521,42.97212219238281],[-4.23841476440424,42.95434188842779],[-4.22562217712391,42.85885620117193],[-4.148914813995361,42.86573028564459],[-4.14983606338501,42.78928375244146],[-4.081262111663818,42.76144027709961]]]},"properties":{"ID_0":215,"ISO":"ES-P","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":21,"NAME_2":"Palencia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.28863620758051,41.18198394775402],[-5.179552078247013,41.16728591918945],[-5.124823093414249,41.132038116455135],[-5.146436214447021,41.04364013671881],[-5.089735984802189,40.99662780761713],[-5.128064155578613,40.948574066162166],[-5.111110210418644,40.9149284362793],[-5.161437034606934,40.86224746704113],[-5.161398887634277,40.81400299072271],[-5.292736053466797,40.710269927978516],[-5.364667892455997,40.67943572998041],[-5.382845878601074,40.62076568603521],[-5.447542190551701,40.57959747314459],[-5.516111850738468,40.58538055419933],[-5.517374992370549,40.54562377929693],[-5.430967807769719,40.56723785400402],[-5.460343837738037,40.47404479980469],[-5.544643878936767,40.42309951782232],[-5.589688777923584,40.46725463867193],[-5.691077232360839,40.4219970703125],[-5.686246871948185,40.35537338256841],[-5.737448215484619,40.294128417968864],[-5.79740095138544,40.35325241088867],[-5.884130954742375,40.326610565185604],[-5.941554069518986,40.28442382812494],[-6.006086826324463,40.30612945556652],[-6.015903949737492,40.340297698974666],[-6.08226490020752,40.363216400146534],[-6.075037956237793,40.40340805053711],[-6.129370212554932,40.420791625976676],[-6.19857215881342,40.48143768310558],[-6.239820003509521,40.48586273193359],[-6.344528198242131,40.442783355713004],[-6.375850200653076,40.40019607543951],[-6.536169052123966,40.3472518920899],[-6.586908817291203,40.270729064941406],[-6.718111991882324,40.26924514770519],[-6.755440235137939,40.24626922607433],[-6.837078094482365,40.24859619140624],[-6.864787101745605,40.27046966552746],[-6.863920211791992,40.29617691040039],[-6.790332794189452,40.33421707153326],[-6.781215190887337,40.363792419433594],[-6.838720798492432,40.41472244262701],[-6.849691867828369,40.45151138305669],[-6.795266151428165,40.511356353759766],[-6.845355033874455,40.565944671630916],[-6.798898220062199,40.65530395507818],[-6.830523014068604,40.74294281005871],[-6.803274154663029,40.84621047973644],[-6.859950065612735,40.95076370239252],[-6.93162298202509,41.016799926757926],[-6.808920860290471,41.03648757934576],[-6.754182815551701,41.10404968261719],[-6.767859935760441,41.13482666015631],[-6.701457977294922,41.18027114868164],[-6.648365020751895,41.247539520263615],[-6.550790786743164,41.24652481079107],[-6.479554176330566,41.29416656494152],[-6.372146129608154,41.286300659179794],[-6.266939163207951,41.253818511963004],[-6.134377956390324,41.190383911132926],[-6.109189033508243,41.21261215209972],[-6.008712768554688,41.20049285888683],[-6.002445220947209,41.153129577636776],[-5.9337477684021,41.15145111083996],[-5.897554874420165,41.23858642578131],[-5.765182971954289,41.21581649780279],[-5.678825855255127,41.23186492919921],[-5.587816238403263,41.20243453979498],[-5.554854869842472,41.21375274658203],[-5.487728118896428,41.17157745361328],[-5.407484054565373,41.18558502197271],[-5.400081157684269,41.14542770385748],[-5.297749996185303,41.12586975097662],[-5.28863620758051,41.18198394775402]]]},"properties":{"ID_0":215,"ISO":"ES-SA","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":22,"NAME_2":"Salamanca","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.541496038436889,41.577602386474666],[-3.53826189041132,41.552009582519645],[-3.423968076705932,41.48272705078131],[-3.338887929916382,41.45294189453131],[-3.329150915145817,41.37627410888677],[-3.207281112670842,41.30424118041992],[-3.290096044540405,41.25793457031244],[-3.399427890777531,41.254547119140625],[-3.409140110015869,41.21182250976562],[-3.539695978164673,41.16501235961913],[-3.613569021224919,41.149085998535156],[-3.65056395530695,41.10730361938488],[-3.739191055297852,41.053863525390625],[-3.781764984130859,41.00020217895508],[-3.895008087158146,40.966968536376896],[-3.952636003494206,40.89347839355469],[-3.979568958282471,40.79984664917003],[-4.069965839385986,40.79380035400396],[-4.160161018371525,40.68984603881836],[-4.275018215179443,40.67631149291992],[-4.319613933563232,40.647518157958984],[-4.419524192809945,40.633430480957145],[-4.431028842925969,40.742385864257756],[-4.480476856231633,40.786163330078175],[-4.49367618560791,40.83351898193371],[-4.546289920806885,40.82555007934575],[-4.566255092620793,40.95619964599604],[-4.606649875640869,40.97080230712896],[-4.639432907104492,41.030052185058594],[-4.716413021087646,41.07158279418951],[-4.722003936767578,41.14931488037114],[-4.636256217956543,41.19060134887701],[-4.623836994171029,41.234336853027344],[-4.495807170867863,41.36392211914068],[-4.515182018279972,41.39408493041992],[-4.407388210296631,41.44184112548828],[-4.233403205871525,41.4557266235351],[-3.999819040298405,41.51609039306646],[-3.980581045150756,41.58335876464844],[-3.863621950149479,41.528957366943416],[-3.823774099349919,41.48111724853515],[-3.732327938079834,41.469879150390625],[-3.728228092193604,41.517627716064396],[-3.645179033279362,41.572093963623104],[-3.541496038436889,41.577602386474666]]]},"properties":{"ID_0":215,"ISO":"ES-SG","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":23,"NAME_2":"Segovia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.856485962867737,41.966403961181754],[-1.857223987579289,41.9095191955567],[-1.818503975868168,41.82995986938482],[-1.852859020233155,41.78956985473644],[-1.787713050842228,41.73413848876959],[-1.813053965568485,41.6605682373048],[-1.858929038047791,41.66153717041009],[-1.923038959503174,41.59833908081055],[-1.993265986442566,41.60013961791998],[-1.967273950576782,41.546073913574276],[-1.981048941612187,41.486442565917905],[-1.953624963760376,41.40864562988281],[-2.029207944869995,41.3841667175293],[-2.035559892654362,41.42689895629883],[-2.101455926895141,41.44579696655279],[-2.120090007781982,41.37968444824219],[-2.170420885086003,41.31884002685547],[-2.146174907684326,41.18440628051752],[-2.051626920700073,41.14686203002929],[-2.065555095672551,41.09580230712902],[-2.175230026245117,41.08376693725586],[-2.232078075408879,41.097023010253906],[-2.323337078094426,41.05651855468744],[-2.469394922256469,41.07811737060547],[-2.516866922378483,41.14645385742193],[-2.654762029647827,41.24066162109381],[-2.760874032974243,41.274032592773494],[-2.782421112060547,41.25377273559576],[-2.86681509017933,41.274475097656364],[-2.90659499168396,41.32764053344738],[-2.950057983398438,41.29264450073248],[-3.061829090118408,41.27343368530284],[-3.207281112670842,41.30424118041992],[-3.329150915145817,41.37627410888677],[-3.338887929916382,41.45294189453131],[-3.423968076705932,41.48272705078131],[-3.53826189041132,41.552009582519645],[-3.541496038436889,41.577602386474666],[-3.459089040756168,41.58963394165045],[-3.407270908355656,41.675594329833984],[-3.358329057693368,41.69343185424816],[-3.352828979492131,41.73793411254883],[-3.275383949279785,41.768676757812614],[-3.278966903686467,41.86791229248041],[-3.19442892074585,41.82892990112305],[-3.171284914016724,41.79301834106457],[-3.087666034698486,41.87634658813488],[-3.0166978836059,41.886905670166016],[-2.998411893844604,41.93259811401373],[-2.913556098937988,42.022846221923935],[-2.883758068084716,42.009483337402344],[-2.797920942306519,42.046840667724666],[-2.791543960571232,42.10874938964855],[-2.72844409942627,42.122863769531364],[-2.7083580493927,42.08628463745123],[-2.757519006729069,42.03261184692377],[-2.673516988754272,41.99806213378912],[-2.579847097396851,41.996261596679794],[-2.514817953109741,42.0688591003418],[-2.514616012573185,42.114540100097656],[-2.438404083251953,42.13726806640625],[-2.319078922271729,42.145221710205135],[-2.23778510093689,42.102218627929744],[-2.136692047119141,42.10308456420904],[-2.161855936050415,42.0667343139649],[-2.116950035095158,42.02151107788097],[-2.109899997711124,41.957870483398494],[-2.028101921081543,41.953125000000114],[-1.961284995079041,41.92030715942383],[-1.856485962867737,41.966403961181754]]]},"properties":{"ID_0":215,"ISO":"ES-SO","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":24,"NAME_2":"Soria","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.421480178833008,42.030662536621094],[-5.444848060607853,41.97186279296869],[-5.520780086517277,42.09712600708008],[-5.480814933776855,42.05241012573253],[-5.421480178833008,42.030662536621094]]],[[[-5.002037048339787,42.28910827636718],[-5.02686595916748,42.1538925170899],[-4.927398204803467,42.15019607543951],[-4.916663169860782,42.07829284667963],[-4.949601173400822,42.0509986877442],[-5.004751205444279,41.937931060791065],[-4.889681816101017,41.932769775390625],[-4.838173866271973,41.89851760864252],[-4.789156913757267,41.81801223754894],[-4.66959095001215,41.90048980712901],[-4.565999984741211,41.81256103515636],[-4.487257957458496,41.820083618164055],[-4.493570804595947,41.780345916748104],[-4.442101001739502,41.75864028930669],[-4.391609191894531,41.787265777588004],[-4.317554950714111,41.76343536376953],[-4.236254215240479,41.81143188476573],[-4.040792942047062,41.7683486938476],[-4.068036079406681,41.72653961181652],[-4.025950908660832,41.6923713684082],[-4.030276775360107,41.63048171997082],[-3.980581045150756,41.58335876464844],[-3.999819040298405,41.51609039306646],[-4.233403205871525,41.4557266235351],[-4.407388210296631,41.44184112548828],[-4.515182018279972,41.39408493041992],[-4.495807170867863,41.36392211914068],[-4.623836994171029,41.234336853027344],[-4.636256217956543,41.19060134887701],[-4.722003936767578,41.14931488037114],[-4.805746078491211,41.13515853881847],[-4.870148181915226,41.10026550292969],[-4.967510223388614,41.15229797363281],[-5.013811111450138,41.162197113037166],[-5.124823093414249,41.132038116455135],[-5.179552078247013,41.16728591918945],[-5.28863620758051,41.18198394775402],[-5.297160148620549,41.292339324951286],[-5.322011947631836,41.32632446289068],[-5.3370361328125,41.47629547119151],[-5.228765010833683,41.52842330932623],[-5.328784942626953,41.61590957641601],[-5.328072071075439,41.681785583496094],[-5.391274929046573,41.760498046875114],[-5.279519081115723,41.8134384155274],[-5.306369781494026,41.857826232910156],[-5.280545234680119,41.97878646850597],[-5.376186847686711,42.041454315185604],[-5.371414184570312,42.130050659179744],[-5.38798999786377,42.221427917480526],[-5.265536785125675,42.21088027954107],[-5.244579792022648,42.26385116577154],[-5.197799205779972,42.26052474975597],[-5.093648910522404,42.309272766113224],[-5.002037048339787,42.28910827636718]]]]},"properties":{"ID_0":215,"ISO":"ES-VA","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":25,"NAME_2":"Valladolid","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.520780086517277,42.09712600708008],[-5.444848060607853,41.97186279296869],[-5.421480178833008,42.030662536621094],[-5.376186847686711,42.041454315185604],[-5.280545234680119,41.97878646850597],[-5.306369781494026,41.857826232910156],[-5.279519081115723,41.8134384155274],[-5.391274929046573,41.760498046875114],[-5.328072071075439,41.681785583496094],[-5.328784942626953,41.61590957641601],[-5.228765010833683,41.52842330932623],[-5.3370361328125,41.47629547119151],[-5.322011947631836,41.32632446289068],[-5.297160148620549,41.292339324951286],[-5.28863620758051,41.18198394775402],[-5.297749996185303,41.12586975097662],[-5.400081157684269,41.14542770385748],[-5.407484054565373,41.18558502197271],[-5.487728118896428,41.17157745361328],[-5.554854869842472,41.21375274658203],[-5.587816238403263,41.20243453979498],[-5.678825855255127,41.23186492919921],[-5.765182971954289,41.21581649780279],[-5.897554874420165,41.23858642578131],[-5.9337477684021,41.15145111083996],[-6.002445220947209,41.153129577636776],[-6.008712768554688,41.20049285888683],[-6.109189033508243,41.21261215209972],[-6.134377956390324,41.190383911132926],[-6.266939163207951,41.253818511963004],[-6.372146129608154,41.286300659179794],[-6.479554176330566,41.29416656494152],[-6.415255069732609,41.34794235229498],[-6.315393924713078,41.39005279541021],[-6.3052659034729,41.44969558715832],[-6.189142227172852,41.57481384277344],[-6.254438877105713,41.63298416137707],[-6.3546462059021,41.67639160156261],[-6.452342033386174,41.680896759033146],[-6.51253414154047,41.66120910644531],[-6.54825305938715,41.68558120727545],[-6.564451217651367,41.7516708374024],[-6.517614841461182,41.87507629394537],[-6.571154117584229,41.88348388671881],[-6.545938968658447,41.930778503418026],[-6.599432945251351,41.94829177856457],[-6.699979782104492,41.93330383300792],[-6.750555992126408,41.94363403320306],[-6.944279193878174,41.94464874267578],[-6.983427047729435,41.97294235229492],[-6.960995197296086,42.027191162109375],[-7.012526035308781,42.05270004272461],[-6.989671230316162,42.1212997436524],[-6.886747837066593,42.21433639526378],[-6.784176826476993,42.25360107421875],[-6.703650951385441,42.20935821533203],[-6.638508796691895,42.21727752685558],[-6.47811222076416,42.18220901489258],[-6.427759170532227,42.20192337036144],[-6.329322814941406,42.19984817504894],[-6.212265014648323,42.1480598449707],[-6.105393886566048,42.161975860595696],[-6.028653144836425,42.1575813293457],[-5.953343868255558,42.123668670654354],[-5.911478042602539,42.14057159423834],[-5.837953090667668,42.11875915527343],[-5.743112087249756,42.11341094970703],[-5.645112991333008,42.13214874267584],[-5.580058097839355,42.058437347412166],[-5.520780086517277,42.09712600708008]]]},"properties":{"ID_0":215,"ISO":"ES-ZA","NAME_0":"Spain","ID_1":5,"NAME_1":"Castilla y León","ID_2":26,"NAME_2":"Zamora","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.777084112167472,41.65056991577143],[2.462915897369442,41.543472290039006],[2.380971908569449,41.49514007568365],[2.257082939148062,41.452640533447266],[2.178471088409538,41.373748779296875],[2.113471984863281,41.28958511352545],[2.027362108230591,41.26680374145502],[1.951527953147945,41.264862060546875],[1.85486102104187,41.23374938964844],[1.645221948623714,41.19569396972661],[1.588165998458862,41.294017791748104],[1.569373965263367,41.36840057373046],[1.490190029144401,41.40150833129883],[1.484586000442505,41.47494888305664],[1.404628992080688,41.50663375854498],[1.446748018264771,41.5524139404298],[1.392874002456665,41.5751190185548],[1.359647989273014,41.613563537597706],[1.44834303855896,41.63612365722667],[1.381950020790214,41.70578002929682],[1.426337957382316,41.80190277099621],[1.548342943191585,41.770671844482536],[1.630328059196529,41.85880279541015],[1.615944027900696,41.90602493286133],[1.719246029853934,41.98448944091797],[1.674355983734131,42.05920791625982],[1.722069978714103,42.09111022949218],[1.698943018913326,42.12847137451172],[1.737717986106873,42.189472198486385],[1.690161943435783,42.27712249755864],[1.842630982399101,42.306423187255916],[1.903136014938468,42.32332229614258],[2.066350936889705,42.29020690917969],[2.020646095275936,42.23194122314459],[2.060525894165096,42.1779136657716],[2.012845993042106,42.14929580688488],[2.144706010818595,42.13143157958989],[2.215128898620719,42.14211654663085],[2.366029977798576,42.12137603759777],[2.411026954650878,42.06864547729503],[2.466706991195679,42.073764801025504],[2.506162881851139,42.032299041748104],[2.480134963989258,41.9291229248048],[2.325997114181575,41.85569000244152],[2.354305982589779,41.80714416503912],[2.426551103591976,41.80462646484375],[2.515767097473258,41.76208496093749],[2.53755092620861,41.72177505493164],[2.724809885025138,41.744346618652344],[2.765845060348624,41.72572326660162],[2.777084112167472,41.65056991577143]]]},"properties":{"ID_0":215,"ISO":"ES-B","NAME_0":"Spain","ID_1":6,"NAME_1":"Cataluña","ID_2":27,"NAME_2":"Barcelona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.777084112167472,41.65056991577143],[2.765845060348624,41.72572326660162],[2.724809885025138,41.744346618652344],[2.53755092620861,41.72177505493164],[2.515767097473258,41.76208496093749],[2.426551103591976,41.80462646484375],[2.354305982589779,41.80714416503912],[2.325997114181575,41.85569000244152],[2.480134963989258,41.9291229248048],[2.506162881851139,42.032299041748104],[2.466706991195679,42.073764801025504],[2.411026954650878,42.06864547729503],[2.366029977798576,42.12137603759777],[2.215128898620719,42.14211654663085],[2.144706010818595,42.13143157958989],[2.012845993042106,42.14929580688488],[2.060525894165096,42.1779136657716],[2.020646095275936,42.23194122314459],[2.066350936889705,42.29020690917969],[1.903136014938468,42.32332229614258],[1.842630982399101,42.306423187255916],[1.850962042808646,42.37350463867199],[1.807072043418941,42.4186363220216],[1.731945037841854,42.44039916992193],[1.730936050415096,42.49245071411144],[1.805248141288814,42.48865509033208],[1.915668964385986,42.44618606567383],[1.964365005493164,42.38256072998047],[2.023496389388981,42.35522842407232],[2.08593320846569,42.36374664306646],[2.13316917419445,42.41434097290045],[2.257082462310791,42.43848800659174],[2.410337686538753,42.392154693603516],[2.498432397842521,42.3426246643067],[2.582230091094971,42.35707473754883],[2.67544794082653,42.34234619140631],[2.653826713562125,42.38768005371094],[2.72396111488348,42.422725677490234],[2.793810606002807,42.41819381713873],[2.839868068695182,42.45898818969732],[2.918404102325553,42.45623397827143],[2.945468902588004,42.480087280273494],[3.047425985336417,42.45684432983398],[3.085840940475464,42.42583847045904],[3.170973062515315,42.43402862548828],[3.155416011810416,42.379028320312614],[3.31680607795721,42.32374954223638],[3.280694961547908,42.255416870117244],[3.21847295761114,42.232360839843864],[3.162915945053214,42.264862060546875],[3.110416889190617,42.20264053344732],[3.114305019378776,42.14902877807623],[3.184027910232658,42.103473663330135],[3.212915897369442,42.056251525878956],[3.193751096725578,42.024028778076115],[3.231806039810123,41.968750000000114],[3.202639102935904,41.89125061035162],[3.144582986831665,41.84902954101557],[3.10014009475708,41.84375],[3.057081937790031,41.787082672119254],[2.977638959884643,41.757637023925895],[2.933748960495109,41.71930694580089],[2.818751096725578,41.68847274780285],[2.777084112167472,41.65056991577143]]]},"properties":{"ID_0":215,"ISO":"ES-GI","NAME_0":"Spain","ID_1":6,"NAME_1":"Cataluña","ID_2":28,"NAME_2":"Girona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.730936050415096,42.49245071411144],[1.731945037841854,42.44039916992193],[1.807072043418941,42.4186363220216],[1.850962042808646,42.37350463867199],[1.842630982399101,42.306423187255916],[1.690161943435783,42.27712249755864],[1.737717986106873,42.189472198486385],[1.698943018913326,42.12847137451172],[1.722069978714103,42.09111022949218],[1.674355983734131,42.05920791625982],[1.719246029853934,41.98448944091797],[1.615944027900696,41.90602493286133],[1.630328059196529,41.85880279541015],[1.548342943191585,41.770671844482536],[1.426337957382316,41.80190277099621],[1.381950020790214,41.70578002929682],[1.44834303855896,41.63612365722667],[1.359647989273014,41.613563537597706],[1.392874002456665,41.5751190185548],[1.371724963188171,41.56541442871094],[1.219892024993896,41.569606781005916],[1.167945981025696,41.54049301147472],[1.180976033210868,41.48813629150402],[1.072150945663395,41.463035583496094],[0.96432501077652,41.3554954528808],[0.596840023994446,41.293563842773544],[0.554458975791988,41.32669067382818],[0.503309011459464,41.28975296020508],[0.385697990655899,41.278869628906364],[0.348551005125103,41.32979202270508],[0.373762995004768,41.35042572021496],[0.334996998310089,41.40824508666998],[0.347351998090858,41.4877662658692],[0.397873997688407,41.49129104614269],[0.446954995393753,41.54225921630865],[0.40205600857746,41.59273910522472],[0.34964698553091,41.599483489990234],[0.328245997428894,41.68109130859381],[0.400644987821579,41.75671005249029],[0.469689011573905,41.765640258789176],[0.483260989189262,41.80148315429699],[0.542420983314514,41.820400238037166],[0.592813014984245,41.88443374633789],[0.562467992305812,41.93270874023449],[0.651740014553013,42.026268005371094],[0.702202022075653,42.12190628051758],[0.69586402177805,42.15201568603521],[0.759205996990261,42.34838485717779],[0.696869015693721,42.47412109374999],[0.733303010463658,42.50447082519536],[0.767548978328705,42.6112632751466],[0.708410024642944,42.621208190918026],[0.660093009471893,42.69099807739269],[0.662559688091278,42.841106414795036],[0.708183944225425,42.86132812500005],[0.858305692672843,42.82571792602538],[0.925827205181179,42.789672851562614],[0.960393071174678,42.80515670776373],[1.073248028755188,42.78236389160162],[1.165018081665039,42.70952606201177],[1.357378125190735,42.71942138671881],[1.442003011703605,42.59934616088867],[1.439666986465454,42.54370498657232],[1.469215989112854,42.51079177856445],[1.444411993026847,42.4414443969726],[1.515771031379813,42.428844451904354],[1.557031035423392,42.45393753051752],[1.730936050415096,42.49245071411144]]]},"properties":{"ID_0":215,"ISO":"ES-L","NAME_0":"Spain","ID_1":6,"NAME_1":"Cataluña","ID_2":29,"NAME_2":"Lleida","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.645221948623714,41.19569396972661],[1.532083034515438,41.18208312988281],[1.394860982894954,41.13124847412121],[1.296527981758231,41.12791824340832],[1.144027948379516,41.07263946533208],[1.045416951179448,41.06319427490228],[0.961804986000061,41.025417327880916],[0.862640023231506,40.94708251953125],[0.791805982589779,40.866249084472706],[0.706250011920986,40.80958175659191],[0.729583978653011,40.769859313964844],[0.826526999473629,40.7362518310548],[0.869584023952598,40.69597244262695],[0.769029021263179,40.64736175537121],[0.600971996784324,40.62208175659191],[0.538195013999939,40.56708145141607],[0.515139997005576,40.52296447753912],[0.449036002159232,40.541316986083984],[0.389198988676128,40.606647491455185],[0.278872996568737,40.63008117675781],[0.217080995440597,40.73255157470709],[0.170766994357109,40.732860565185604],[0.278264999389762,40.82106018066412],[0.246047005057449,40.88722229003912],[0.281127005815563,40.98719024658209],[0.220387995243129,41.071453094482536],[0.219870999455452,41.13244628906249],[0.303355991840419,41.16440200805664],[0.322441011667308,41.22526168823242],[0.36421799659729,41.227695465088004],[0.385697990655899,41.278869628906364],[0.503309011459464,41.28975296020508],[0.554458975791988,41.32669067382818],[0.596840023994446,41.293563842773544],[0.96432501077652,41.3554954528808],[1.072150945663395,41.463035583496094],[1.180976033210868,41.48813629150402],[1.167945981025696,41.54049301147472],[1.219892024993896,41.569606781005916],[1.371724963188171,41.56541442871094],[1.392874002456665,41.5751190185548],[1.446748018264771,41.5524139404298],[1.404628992080688,41.50663375854498],[1.484586000442505,41.47494888305664],[1.490190029144401,41.40150833129883],[1.569373965263367,41.36840057373046],[1.588165998458862,41.294017791748104],[1.645221948623714,41.19569396972661]]]},"properties":{"ID_0":215,"ISO":"ES-T","NAME_0":"Spain","ID_1":6,"NAME_1":"Cataluña","ID_2":30,"NAME_2":"Tarragona","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":null,"properties":{"ID_0":215,"ISO":"ES-CE","NAME_0":"Spain","ID_1":7,"NAME_1":"Ceuta y Melilla","ID_2":31,"NAME_2":"Ceuta","TYPE_2":"Ciudad Autónoma","ENGTYPE_2":"Autonomous City","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":null,"properties":{"ID_0":215,"ISO":"ES-ML","NAME_0":"Spain","ID_1":7,"NAME_1":"Ceuta y Melilla","ID_2":32,"NAME_2":"Melilla","TYPE_2":"Ciudad Autónoma","ENGTYPE_2":"Autonomous City","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.067744016647339,40.157539367675895],[-3.053999900817871,40.10651397705078],[-3.088567972183227,40.07051086425786],[-3.161286115646362,40.06514358520519],[-3.276740074157601,40.0474472045899],[-3.327255010604744,40.07956695556652],[-3.429590940475464,40.03875732421869],[-3.515156030654907,40.04327392578131],[-3.589570045471135,40.01348114013677],[-3.814594030380249,39.88585662841797],[-3.875791072845402,39.92867660522461],[-3.808095932006779,39.95481109619152],[-3.751385927200203,39.95280456542969],[-3.700261116027832,40.01890945434576],[-3.620538949966374,40.05612182617182],[-3.606399059295597,40.10900497436535],[-3.723573923110961,40.147117614746094],[-3.771778106689396,40.13958740234381],[-3.800069093704223,40.17570495605463],[-3.952852964401245,40.21233367919916],[-3.992347955703679,40.20973205566412],[-4.071133136749268,40.26481246948248],[-4.104146003723145,40.241806030273494],[-4.245747089385986,40.27372360229498],[-4.295822143554631,40.21909713745111],[-4.341254234313965,40.23995208740246],[-4.356800079345589,40.30965805053722],[-4.427375793457031,40.25784683227539],[-4.535758018493596,40.19956970214843],[-4.578898906707764,40.217411041259766],[-4.569112777709903,40.25721359252941],[-4.504278182983341,40.3151092529298],[-4.455410957336369,40.319923400878906],[-4.432000160217285,40.39775848388672],[-4.324088096618652,40.41864013671881],[-4.322902202606144,40.551105499267635],[-4.283215999603271,40.59530639648449],[-4.161231994628906,40.623374938964844],[-4.160161018371525,40.68984603881836],[-4.069965839385986,40.79380035400396],[-3.979568958282471,40.79984664917003],[-3.952636003494206,40.89347839355469],[-3.895008087158146,40.966968536376896],[-3.781764984130859,41.00020217895508],[-3.739191055297852,41.053863525390625],[-3.65056395530695,41.10730361938488],[-3.613569021224919,41.149085998535156],[-3.539695978164673,41.16501235961913],[-3.438203096389657,41.04261016845703],[-3.397598028182927,41.00736618042003],[-3.444138050079289,40.8878631591798],[-3.50255298614502,40.789062500000114],[-3.465787887573242,40.7842636108399],[-3.434103012084961,40.73077011108404],[-3.461599111557006,40.69269943237299],[-3.323318958282471,40.63013458251959],[-3.330382108688354,40.59740447998058],[-3.200581073760986,40.51469421386719],[-3.19864296913147,40.44232177734386],[-3.130392074584904,40.40507888793945],[-3.183469057083073,40.269290924072266],[-3.111999988555908,40.28564453125006],[-3.078999996185246,40.22401046752941],[-3.067744016647339,40.157539367675895]]]},"properties":{"ID_0":215,"ISO":"ES-M5","NAME_0":"Spain","ID_1":8,"NAME_1":"Comunidad de Madrid","ID_2":33,"NAME_2":"Madrid","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.727500021457615,42.9192619323731],[-0.783181011676788,42.921730041503906],[-0.856801986694336,42.84689331054699],[-0.84750097990036,42.785926818847656],[-0.901054024696293,42.74272537231445],[-0.948643982410431,42.71146011352539],[-1.027948975563049,42.70006561279308],[-1.038563013076782,42.64833450317383],[-1.152374029159489,42.647567749023494],[-1.157616019248962,42.61046981811529],[-1.232185006141606,42.543357849121094],[-1.288095951080265,42.522792816162045],[-1.272691965103092,42.48237228393555],[-1.341464996337834,42.42394256591797],[-1.359730005264225,42.37836456298828],[-1.329038977622986,42.35538864135742],[-1.399036049842834,42.2913055419923],[-1.416308999061584,42.22200393676752],[-1.398833036422729,42.12622451782237],[-1.304774999618473,42.042953491211044],[-1.4217289686203,41.913078308105575],[-1.596199035644418,41.927097320556754],[-1.654091000556889,41.96535491943371],[-1.734251022338867,41.963905334472656],[-1.766844987869263,41.99579620361334],[-1.847131967544556,42.00800323486334],[-1.901520967483463,42.029682159423885],[-1.905748963355904,42.06706237792969],[-1.821568965911808,42.15357208251964],[-1.781929969787598,42.137737274169915],[-1.690219998359623,42.1483993530274],[-1.708482980728149,42.209659576416016],[-1.799937963485661,42.22280120849615],[-1.870609045028573,42.28896713256836],[-1.995471954345646,42.36360931396495],[-2.078922033309937,42.36875915527355],[-2.132924079894963,42.421188354492294],[-2.176405906677246,42.40807342529291],[-2.325795888900756,42.468151092529354],[-2.420650959014836,42.48929595947277],[-2.392153024673462,42.51694869995117],[-2.399277925491333,42.5978736877442],[-2.49058008193964,42.58535003662115],[-2.415749073028564,42.662673950195426],[-2.347239971160889,42.63406372070324],[-2.309253931045532,42.67115020751953],[-2.323702096939087,42.724075317382926],[-2.262392997741642,42.748222351074276],[-2.280967950820866,42.7851295471192],[-2.235771894454899,42.83448028564459],[-2.250744104385319,42.89572525024414],[-2.210221052169743,42.949905395507926],[-2.129463911056405,42.93936920166021],[-2.038304090499878,42.98098754882824],[-2.022789955139103,43.06518936157237],[-1.947491049766484,43.0975227355957],[-1.904384016990548,43.14381790161144],[-1.922013044357243,43.18671417236328],[-1.794939994812012,43.24692535400385],[-1.783207058906498,43.28681945800781],[-1.728865027427616,43.29613113403325],[-1.623861193656865,43.303966522216854],[-1.616579055786133,43.25727081298828],[-1.505856394767704,43.29327774047857],[-1.384181141853275,43.25322341918951],[-1.384948015213013,43.18828964233398],[-1.415738105773926,43.12852859497082],[-1.471323013305664,43.091773986816456],[-1.441393017768746,43.046195983886776],[-1.353703975677433,43.02801895141612],[-1.345170617103576,43.092971801757926],[-1.247508406639099,43.04235839843756],[-1.113268375396729,43.02121734619146],[-1.010465979576054,42.99109649658214],[-0.974991023540497,42.96329879760748],[-0.808800995349884,42.95145416259777],[-0.752805233001595,42.966960906982536],[-0.727500021457615,42.9192619323731]]]},"properties":{"ID_0":215,"ISO":"ES-NA7","NAME_0":"Spain","ID_1":9,"NAME_1":"Comunidad Foral de Navarra","ID_2":34,"NAME_2":"Navarra","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.037640001624823,38.88569259643555],[0.112916000187454,38.84736251831054],[0.199860006570816,38.802639007568416],[0.224583998322544,38.74930572509771],[0.073472999036539,38.641250610351506],[-0.01402799971396,38.62736129760753],[-0.095693998038769,38.52569580078125],[-0.147640004754066,38.53680419921881],[-0.302917003631592,38.48180389404297],[-0.37458199262619,38.44291687011719],[-0.444862008094788,38.363193511963004],[-0.512082993984222,38.32347106933605],[-0.510138988494759,38.2015266418457],[-0.595695018768311,38.18875122070318],[-0.638472020626068,38.13680648803722],[-0.660139977931919,37.98347091674816],[-0.69263797998417,37.973194122314396],[-0.762360990047398,37.846981048583984],[-0.830178976058903,37.86429977416992],[-0.921250998973846,37.944534301757805],[-1.022176027297973,38.075237274169865],[-1.036584973335266,38.13743209838867],[-0.988690972328186,38.19958877563488],[-0.967746019363346,38.25588226318365],[-0.989009976386967,38.3205680847168],[-1.084408044815007,38.34651565551758],[-1.081730008125305,38.441864013671925],[-1.013854980468693,38.49708557128906],[-1.00148594379425,38.572860717773494],[-1.026051044464111,38.655689239501946],[-0.962399005889779,38.65695953369146],[-0.915727019309941,38.69599914550781],[-0.961362004280033,38.774822235107536],[-0.928873002529087,38.78386688232433],[-0.861626982688904,38.77092361450201],[-0.830160975456238,38.732517242431584],[-0.752013981342202,38.75541305541992],[-0.643378973007202,38.727798461914176],[-0.617990016937256,38.686687469482536],[-0.50705498456955,38.74301147460943],[-0.565582990646362,38.75546264648449],[-0.595155000686646,38.79513168334961],[-0.474433988332748,38.803890228271484],[-0.382313013076725,38.83457565307617],[-0.310752987861576,38.881546020507926],[-0.230486005544549,38.853523254394645],[-0.148025006055832,38.858463287353516],[-0.037640001624823,38.88569259643555]]]},"properties":{"ID_0":215,"ISO":"ES-A","NAME_0":"Spain","ID_1":10,"NAME_1":"Comunidad Valenciana","ID_2":35,"NAME_2":"Alicante","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Alacant"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.170766994357109,40.732860565185604],[0.217080995440597,40.73255157470709],[0.278872996568737,40.63008117675781],[0.389198988676128,40.606647491455185],[0.449036002159232,40.541316986083984],[0.515139997005576,40.52296447753912],[0.417915999889374,40.4012489318847],[0.405970990657863,40.35486221313488],[0.274583995342368,40.239028930664006],[0.263473004102764,40.20763778686534],[0.184027001261711,40.16347122192383],[0.134861007332745,40.07347106933587],[0.049304999411106,40.03513717651372],[-0.005973000079393,39.91458511352545],[-0.087361000478268,39.85597229003912],[-0.188750997185707,39.72208404541027],[-0.271135002374592,39.750480651855526],[-0.308512985706273,39.79701614379883],[-0.377862006425858,39.79990386962902],[-0.409543991088867,39.74522399902338],[-0.46094799041748,39.715377807617244],[-0.548345983028412,39.79575729370123],[-0.588167011737823,39.74171447753912],[-0.652288019657135,39.7541122436524],[-0.6560919880867,39.8359870910645],[-0.736377000808659,39.82009124755865],[-0.797631025314274,39.88109207153332],[-0.829923987388554,39.90680694580078],[-0.837882995605469,39.976573944091854],[-0.789560973644257,39.9899406433106],[-0.7622110247612,40.04128646850597],[-0.664054989814758,40.05146408081055],[-0.586925029754639,40.13145446777338],[-0.544130027294045,40.25168228149425],[-0.494459986686593,40.22875595092779],[-0.383570998907089,40.26486968994146],[-0.400052011012974,40.29418563842779],[-0.341042995452881,40.32904434204107],[-0.285189986228943,40.38634109497082],[-0.347303003072739,40.443962097168026],[-0.290322989225388,40.47063446044922],[-0.301809996366501,40.51598739624029],[-0.29323598742485,40.611064910888615],[-0.379617005586624,40.623550415039],[-0.378042012453079,40.66743469238281],[-0.306116998195648,40.66398620605463],[-0.235943004488888,40.69112777709972],[-0.223985999822617,40.75418090820324],[-0.194418996572495,40.78184509277355],[-0.064652003347874,40.7274284362793],[0.015783000737713,40.72845077514654],[0.042220998555536,40.6910285949707],[0.11254400014883,40.72716140747082],[0.170766994357109,40.732860565185604]]]},"properties":{"ID_0":215,"ISO":"ES-CS","NAME_0":"Spain","ID_1":10,"NAME_1":"Comunidad Valenciana","ID_2":36,"NAME_2":"Castellón","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Castelló"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-0.797631025314274,39.88109207153332],[-0.736377000808659,39.82009124755865],[-0.6560919880867,39.8359870910645],[-0.652288019657135,39.7541122436524],[-0.588167011737823,39.74171447753912],[-0.548345983028412,39.79575729370123],[-0.46094799041748,39.715377807617244],[-0.409543991088867,39.74522399902338],[-0.377862006425858,39.79990386962902],[-0.308512985706273,39.79701614379883],[-0.271135002374592,39.750480651855526],[-0.188750997185707,39.72208404541027],[-0.213751003146115,39.64791488647461],[-0.260971993207932,39.61319351196289],[-0.317916005849838,39.51958465576166],[-0.334306001663208,39.42597198486328],[-0.288194000720978,39.29763793945318],[-0.223195001482964,39.189304351806754],[-0.236249998211804,39.13597106933605],[-0.185973003506604,39.03486251831055],[-0.135139003395977,38.969028472900334],[-0.037640001624823,38.88569259643555],[-0.148025006055832,38.858463287353516],[-0.230486005544549,38.853523254394645],[-0.310752987861576,38.881546020507926],[-0.382313013076725,38.83457565307617],[-0.474433988332748,38.803890228271484],[-0.595155000686646,38.79513168334961],[-0.565582990646362,38.75546264648449],[-0.50705498456955,38.74301147460943],[-0.617990016937256,38.686687469482536],[-0.643378973007202,38.727798461914176],[-0.752013981342202,38.75541305541992],[-0.830160975456238,38.732517242431584],[-0.861626982688904,38.77092361450201],[-0.928873002529087,38.78386688232433],[-0.940787971019688,38.89965057373058],[-0.959344983100891,38.944614410400334],[-1.146587014198303,38.929386138916016],[-1.265632987022343,39.075496673583984],[-1.194430947303658,39.180438995361385],[-1.161823034286442,39.30544662475597],[-1.352220058441162,39.33981323242193],[-1.383658051490784,39.36626052856451],[-1.462545990943852,39.379417419433594],[-1.505107045173588,39.418025970458984],[-1.504294991493225,39.56393051147455],[-1.462015032768193,39.57664489746093],[-1.417865991592407,39.65496063232433],[-1.368468046188297,39.689640045166016],[-1.312760949134827,39.670509338378906],[-1.261929988861084,39.69892883300781],[-1.275374054908639,39.737014770507756],[-1.214938044547978,39.808799743652344],[-1.19991397857666,39.85945892333996],[-1.203917026519662,39.94937133789062],[-1.142333984374943,39.97186660766612],[-0.991253018379211,39.981857299804744],[-0.905973970890045,39.94398117065435],[-0.912501990795135,39.872379302978516],[-0.867357015609684,39.84680175781256],[-0.797631025314274,39.88109207153332]]],[[[-1.165125966072025,40.0101203918457],[-1.248002052307072,39.9950904846192],[-1.383072972297611,40.03899002075207],[-1.44879400730133,40.14536285400402],[-1.357035994529667,40.128910064697266],[-1.284281015396118,40.171520233154354],[-1.244909048080444,40.116165161132926],[-1.147271037101689,40.11396026611328],[-1.072069048881474,40.06050872802729],[-1.084169030189514,40.036235809326165],[-1.165125966072025,40.0101203918457]]]]},"properties":{"ID_0":215,"ISO":"ES-V","NAME_0":"Spain","ID_1":10,"NAME_1":"Comunidad Valenciana","ID_2":37,"NAME_2":"Valencia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"València"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.046835899352971,38.72910690307617],[-5.167891979217529,38.677337646484375],[-5.293152809143066,38.6090927124024],[-5.309496879577637,38.57734680175775],[-5.368871212005502,38.58493423461914],[-5.418834209442139,38.512550354003906],[-5.484333992004338,38.46340560913086],[-5.568015098571721,38.4334068298341],[-5.584943771362304,38.38586044311529],[-5.575497150421085,38.329601287841854],[-5.525836944580077,38.26414108276373],[-5.535662174224797,38.16869735717767],[-5.584665775299072,38.13172149658209],[-5.633309841155949,38.13813781738281],[-5.693505764007568,38.083759307861385],[-5.740613937377872,38.126556396484425],[-5.688713073730468,38.17123794555664],[-5.837734222412053,38.17444229125976],[-5.912795066833496,38.122703552246094],[-5.908856868743896,38.062862396240234],[-5.953561782836857,37.995361328125114],[-6.031247138976994,37.997680664062614],[-6.136054992675724,37.972171783447315],[-6.180110931396428,37.941040039062614],[-6.201983928680419,37.95951080322277],[-6.303243160247803,37.97825622558588],[-6.413776874542179,38.05857467651373],[-6.494914054870605,38.01914215087896],[-6.587048053741398,38.026786804199276],[-6.622326850891113,38.09716796875006],[-6.758090019226017,38.09272003173828],[-6.815689086914062,38.12014389038091],[-6.794967174530029,38.178546905517635],[-6.857994079589787,38.17985916137701],[-6.931529998779297,38.208320617675774],[-7.011837959289493,38.203315734863224],[-7.097784996032714,38.179256439208984],[-7.142959117889404,38.26171875],[-7.317911148071288,38.44009017944347],[-7.30337381362915,38.54310226440441],[-7.263917922973576,38.5878677368164],[-7.260046005249023,38.722942352295036],[-7.125417232513371,38.81532669067383],[-7.09638595581049,38.81596374511713],[-7.033034801483154,38.87882232666021],[-7.02626991271967,38.924510955810604],[-6.959072113037053,39.01730346679693],[-6.980916023254338,39.08781814575207],[-7.028202056884709,39.11565017700207],[-7.144035816192627,39.108627319335994],[-7.132203102111703,39.16469955444347],[-7.221617221832275,39.1932945251466],[-7.248027801513615,39.25337219238281],[-7.232083797454833,39.27888488769531],[-7.203741073608342,39.265705108642635],[-7.151902198791504,39.32148742675787],[-7.154179096221924,39.36751556396496],[-7.017407894134521,39.39199829101562],[-7.049267768859863,39.436679840088004],[-6.872087955474854,39.38240432739258],[-6.811333179473876,39.39141464233404],[-6.797057151794434,39.344783782958984],[-6.747077941894474,39.315780639648494],[-6.80074405670166,39.23942565917969],[-6.767386913299447,39.18837738037115],[-6.680887222290039,39.17715835571289],[-6.659619808197021,39.199081420898494],[-6.491010189056396,39.167930603027344],[-6.371192932128905,39.162998199462834],[-6.327253818511963,39.1866912841798],[-6.295248031616154,39.09815216064459],[-6.230739116668644,39.08980941772461],[-6.141983032226562,39.031589508056584],[-6.078536987304631,39.09373855590832],[-6.018487930297851,39.12912750244152],[-6.011497974395695,39.06328582763683],[-5.763001918792668,39.135372161865234],[-5.689970970153809,39.083019256591854],[-5.610637187957764,39.099193572998104],[-5.576447010040226,39.150917053222656],[-5.61313009262085,39.188228607177734],[-5.518423080444336,39.20415496826171],[-5.465030193328801,39.16073608398443],[-5.3839111328125,39.17419815063488],[-5.347023010253906,39.24796295166027],[-5.339900970458984,39.33332443237299],[-5.24750900268549,39.30183792114269],[-5.150166988372746,39.320983886718864],[-5.116882801055851,39.34349822998058],[-4.952404022216797,39.39500808715826],[-4.940631866455021,39.395133972168026],[-4.861216068267821,39.379329681396484],[-4.755263805389404,39.41572570800787],[-4.687589168548584,39.45030975341808],[-4.669393062591553,39.4245491027832],[-4.709940910339355,39.345764160156364],[-4.760903835296517,39.320804595947266],[-4.705051898956299,39.21376037597662],[-4.714297771453801,39.18763732910162],[-4.810163021087646,39.19943237304693],[-4.874311923980656,39.099037170410156],[-4.832681179046574,39.0461807250976],[-4.882243156433049,39.032867431640625],[-4.962394237518311,39.05874633789074],[-4.933557987213135,38.975593566894645],[-4.832901954650879,38.939323425293075],[-4.847708225250186,38.882068634033196],[-4.914830207824707,38.887458801269645],[-4.943374156951847,38.8543968200683],[-4.989881992340031,38.739776611328175],[-5.046835899352971,38.72910690307617]]]},"properties":{"ID_0":215,"ISO":"ES-BA","NAME_0":"Spain","ID_1":11,"NAME_1":"Extremadura","ID_2":38,"NAME_2":"Badajoz","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.737448215484619,40.294128417968864],[-5.692549228668155,40.29211044311535],[-5.609930038452148,40.21548843383789],[-5.530856132507324,40.19472503662121],[-5.470802783966064,40.20785522460943],[-5.429717063903752,40.25226211547863],[-5.369561195373535,40.2183189392091],[-5.36788606643671,40.16411209106457],[-5.33586597442627,40.11582183837885],[-5.368899822235051,40.100090026855526],[-5.364984989166146,39.983856201171875],[-5.400968074798584,39.885673522949276],[-5.326340198516845,39.89197540283209],[-5.283411979675293,39.857219696045036],[-5.316100120544434,39.7727890014649],[-5.254111766815186,39.75255203247082],[-5.205974102020264,39.79773712158203],[-5.166789054870548,39.79989242553711],[-5.137683868408203,39.71500778198242],[-5.151309013366699,39.66129684448248],[-5.201958179473877,39.59203338623058],[-5.083785057067871,39.49067687988287],[-5.058783054351807,39.48942947387701],[-4.952404022216797,39.39500808715826],[-5.116882801055851,39.34349822998058],[-5.150166988372746,39.320983886718864],[-5.24750900268549,39.30183792114269],[-5.339900970458984,39.33332443237299],[-5.347023010253906,39.24796295166027],[-5.3839111328125,39.17419815063488],[-5.465030193328801,39.16073608398443],[-5.518423080444336,39.20415496826171],[-5.61313009262085,39.188228607177734],[-5.576447010040226,39.150917053222656],[-5.610637187957764,39.099193572998104],[-5.689970970153809,39.083019256591854],[-5.763001918792668,39.135372161865234],[-6.011497974395695,39.06328582763683],[-6.018487930297851,39.12912750244152],[-6.078536987304631,39.09373855590832],[-6.141983032226562,39.031589508056584],[-6.230739116668644,39.08980941772461],[-6.295248031616154,39.09815216064459],[-6.327253818511963,39.1866912841798],[-6.371192932128905,39.162998199462834],[-6.491010189056396,39.167930603027344],[-6.659619808197021,39.199081420898494],[-6.680887222290039,39.17715835571289],[-6.767386913299447,39.18837738037115],[-6.80074405670166,39.23942565917969],[-6.747077941894474,39.315780639648494],[-6.797057151794434,39.344783782958984],[-6.811333179473876,39.39141464233404],[-6.872087955474854,39.38240432739258],[-7.049267768859863,39.436679840088004],[-7.017407894134521,39.39199829101562],[-7.154179096221924,39.36751556396496],[-7.151902198791504,39.32148742675787],[-7.203741073608342,39.265705108642635],[-7.232083797454833,39.27888488769531],[-7.310348987579345,39.34095764160162],[-7.322863101959172,39.381950378418026],[-7.29426813125599,39.45682144165045],[-7.382153987884464,39.491973876953125],[-7.499413013458252,39.58960342407232],[-7.533764839172306,39.66716384887695],[-7.331165790557862,39.64099121093755],[-7.251526832580566,39.66680526733404],[-7.151356220245304,39.6530647277832],[-7.015522956848145,39.6704216003418],[-6.976929187774601,39.77197647094738],[-6.987209796905461,39.81002044677746],[-6.903596878051701,39.87069702148449],[-6.885511875152531,39.940124511718864],[-6.880933761596565,40.041667938232536],[-6.940790176391545,40.11174392700195],[-7.01514196395874,40.13559722900402],[-7.012691974639836,40.22544860839855],[-6.951418876647892,40.25756454467779],[-6.864787101745605,40.27046966552746],[-6.837078094482365,40.24859619140624],[-6.755440235137939,40.24626922607433],[-6.718111991882324,40.26924514770519],[-6.586908817291203,40.270729064941406],[-6.536169052123966,40.3472518920899],[-6.375850200653076,40.40019607543951],[-6.344528198242131,40.442783355713004],[-6.239820003509521,40.48586273193359],[-6.19857215881342,40.48143768310558],[-6.129370212554932,40.420791625976676],[-6.075037956237793,40.40340805053711],[-6.08226490020752,40.363216400146534],[-6.015903949737492,40.340297698974666],[-6.006086826324463,40.30612945556652],[-5.941554069518986,40.28442382812494],[-5.884130954742375,40.326610565185604],[-5.79740095138544,40.35325241088867],[-5.737448215484619,40.294128417968864]]]},"properties":{"ID_0":215,"ISO":"ES-CC","NAME_0":"Spain","ID_1":11,"NAME_1":"Extremadura","ID_2":39,"NAME_2":"Cáceres","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.707084178924561,43.71073532104492],[-7.69084882736206,43.65462875366211],[-7.748589038848876,43.57762908935558],[-7.744204044341984,43.529899597168026],[-7.779913902282714,43.44886779785167],[-7.822897911071721,43.40070724487316],[-7.879839897155762,43.407306671142635],[-7.881449222564697,43.35241317749029],[-7.946941852569581,43.28598785400402],[-7.921685218811034,43.26942825317388],[-7.961221218109074,43.1898078918457],[-7.936906814575138,43.111774444580185],[-7.942819118499699,43.06759262084961],[-7.905149936676025,42.985366821289176],[-7.935346126556396,42.90342712402343],[-7.999567985534668,42.84886932373047],[-8.04576587677002,42.83145904541027],[-8.183547973632812,42.85999298095709],[-8.210221290588322,42.823669433593864],[-8.311788558959961,42.833919525146484],[-8.354201316833496,42.77883911132824],[-8.43016529083252,42.74663543701172],[-8.49303913116455,42.756385803222656],[-8.59975528717041,42.74309921264643],[-8.717191696166992,42.70634841918945],[-8.72664833068842,42.67708206176769],[-8.79486083984375,42.63680648803722],[-8.850973129272461,42.665973663330135],[-8.899306297302187,42.64069366455083],[-8.983195304870605,42.543472290039176],[-9.080971717834473,42.59680557250971],[-9.040695190429688,42.64125061035162],[-9.033472061157113,42.694862365722706],[-8.980972290038949,42.77847290039057],[-9.117917060851994,42.75236129760748],[-9.14013767242426,42.794860839843864],[-9.115415573120117,42.845695495605526],[-9.127082824707031,42.90513992309576],[-9.29819393157959,42.921527862548885],[-9.260695457458494,42.972084045410156],[-9.282361030578613,43.01930618286132],[-9.256805419921875,43.092082977295036],[-9.166250228881836,43.10458374023449],[-9.21513843536377,43.15180587768565],[-9.137361526489258,43.19847106933588],[-9.0620822906493,43.18375015258789],[-8.981526374816895,43.229305267333984],[-8.984028816223088,43.2820816040039],[-8.914027214050293,43.31986236572271],[-8.802360534667969,43.31347274780279],[-8.71791744232172,43.28958511352539],[-8.589860916137695,43.32152938842779],[-8.508749008178654,43.326248168945426],[-8.438471794128361,43.382362365722656],[-8.347360610961914,43.3484725952149],[-8.350695610046387,43.396526336670036],[-8.297083854675293,43.39791488647461],[-8.25291633605957,43.3529167175293],[-8.189583778381348,43.41347122192394],[-8.260695457458496,43.42208480834972],[-8.30986022949213,43.45430374145519],[-8.33041572570795,43.507362365722706],[-8.216806411743105,43.58263778686529],[-8.18291664123535,43.62125015258789],[-8.108750343322697,43.64125061035162],[-8.062359809875488,43.70541763305664],[-8.005971908569279,43.704303741455135],[-7.908751010894775,43.76124954223633],[-7.860138893127385,43.76486206054693],[-7.85125017166132,43.70875167846691],[-7.740972042083739,43.745693206787166],[-7.707084178924561,43.71073532104492]]]},"properties":{"ID_0":215,"ISO":"ES-C","NAME_0":"Spain","ID_1":12,"NAME_1":"Galicia","ID_2":40,"NAME_2":"A Coruña","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"La Coruña"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.052639007568303,43.47458267211913],[-7.102732181549072,43.42698669433593],[-7.172832012176513,43.43037033081055],[-7.178483963012694,43.387973785400334],[-7.065142154693604,43.249412536621094],[-6.964973926544189,43.187049865722656],[-6.941421985626164,43.13179016113287],[-6.871572971343937,43.17982482910156],[-6.827466964721679,43.12314987182623],[-6.951677799224796,43.07615661621105],[-6.964306831359863,43.026531219482365],[-6.835949897766112,42.95773315429699],[-6.82404899597168,42.91502761840826],[-6.871138095855712,42.87380981445324],[-6.840179920196533,42.823337554931754],[-6.904046058654785,42.75954437255871],[-7.010742187499943,42.72363662719721],[-7.045044898986816,42.6947402954101],[-7.046858787536621,42.632678985595696],[-7.076904773712158,42.508171081543075],[-7.099860191345214,42.458557128906364],[-7.147932052612248,42.43713378906255],[-7.171702861785889,42.379211425781364],[-7.229681968688908,42.37601089477545],[-7.306783199310303,42.42942810058588],[-7.403017044067383,42.42878341674805],[-7.500978946685791,42.38869476318365],[-7.630708217620849,42.40655517578125],[-7.75257110595703,42.451011657714844],[-7.911825180053654,42.527305603027344],[-7.930586814880371,42.57858276367182],[-7.89238882064808,42.629611968994084],[-7.872705936431886,42.720203399658146],[-7.935206890106201,42.73971939086914],[-7.978425979614257,42.77894210815441],[-7.999567985534668,42.84886932373047],[-7.935346126556396,42.90342712402343],[-7.905149936676025,42.985366821289176],[-7.942819118499699,43.06759262084961],[-7.936906814575138,43.111774444580185],[-7.961221218109074,43.1898078918457],[-7.921685218811034,43.26942825317388],[-7.946941852569581,43.28598785400402],[-7.881449222564697,43.35241317749029],[-7.879839897155762,43.407306671142635],[-7.822897911071721,43.40070724487316],[-7.779913902282714,43.44886779785167],[-7.744204044341984,43.529899597168026],[-7.748589038848876,43.57762908935558],[-7.69084882736206,43.65462875366211],[-7.707084178924561,43.71073532104492],[-7.629583835601808,43.745693206787166],[-7.611804962158202,43.67235946655268],[-7.527083873748666,43.736526489257926],[-7.456251144409122,43.698192596435604],[-7.355971813201847,43.6701393127442],[-7.295416831970158,43.59402847290039],[-7.220139980316104,43.56486129760748],[-7.041528224945068,43.55708312988281],[-7.052639007568303,43.47458267211913]]]},"properties":{"ID_0":215,"ISO":"ES-LU","NAME_0":"Spain","ID_1":12,"NAME_1":"Galicia","ID_2":41,"NAME_2":"Lugo","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.076904773712158,42.508171081543075],[-6.973406791687012,42.493991851806584],[-6.924909114837646,42.519416809082145],[-6.808454990386906,42.46942901611339],[-6.820662021636906,42.38562393188488],[-6.733810901641789,42.35909271240234],[-6.741003990173339,42.29864501953125],[-6.784176826476993,42.25360107421875],[-6.886747837066593,42.21433639526378],[-6.989671230316162,42.1212997436524],[-7.012526035308781,42.05270004272461],[-6.960995197296086,42.027191162109375],[-6.983427047729435,41.97294235229492],[-7.076929092407227,41.9519309997558],[-7.141430854797306,41.990749359130916],[-7.18663215637207,41.96942901611328],[-7.173623085021974,41.91891479492193],[-7.196712017059269,41.879974365234375],[-7.315289974212589,41.842540740966854],[-7.389939785003661,41.842300415039176],[-7.452474117279053,41.865077972412166],[-7.573887825012207,41.829715728759766],[-7.704116821289062,41.9073371887207],[-7.733328819274846,41.892276763916016],[-7.921279907226562,41.88181686401373],[-7.988607883453311,41.867580413818466],[-8.012578964233398,41.83353424072277],[-8.093894004821777,41.80803680419922],[-8.164990425109862,41.818115234375114],[-8.161748886108398,41.86097717285162],[-8.216875076293945,41.91315841674816],[-8.162994384765568,41.98269653320323],[-8.086008071899414,42.016494750976506],[-8.118673324584902,42.08230972290044],[-8.18612289428711,42.072589874267635],[-8.1995010375976,42.15414047241211],[-8.174139976501351,42.1711044311524],[-8.168798446655273,42.245994567871094],[-8.26441001892084,42.252849578857536],[-8.261775016784611,42.31496429443371],[-8.311040878295842,42.34378051757824],[-8.35245132446289,42.48074722290045],[-8.302559852600098,42.49019241333008],[-8.17369270324707,42.5719566345216],[-8.016239166259766,42.54269409179698],[-7.930586814880371,42.57858276367182],[-7.911825180053654,42.527305603027344],[-7.75257110595703,42.451011657714844],[-7.630708217620849,42.40655517578125],[-7.500978946685791,42.38869476318365],[-7.403017044067383,42.42878341674805],[-7.306783199310303,42.42942810058588],[-7.229681968688908,42.37601089477545],[-7.171702861785889,42.379211425781364],[-7.147932052612248,42.43713378906255],[-7.099860191345214,42.458557128906364],[-7.076904773712158,42.508171081543075]]]},"properties":{"ID_0":215,"ISO":"ES-OR","NAME_0":"Spain","ID_1":12,"NAME_1":"Galicia","ID_2":42,"NAME_2":"Ourense","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.999567985534668,42.84886932373047],[-7.978425979614257,42.77894210815441],[-7.935206890106201,42.73971939086914],[-7.872705936431886,42.720203399658146],[-7.89238882064808,42.629611968994084],[-7.930586814880371,42.57858276367182],[-8.016239166259766,42.54269409179698],[-8.17369270324707,42.5719566345216],[-8.302559852600098,42.49019241333008],[-8.35245132446289,42.48074722290045],[-8.311040878295842,42.34378051757824],[-8.261775016784611,42.31496429443371],[-8.26441001892084,42.252849578857536],[-8.168798446655273,42.245994567871094],[-8.174139976501351,42.1711044311524],[-8.1995010375976,42.15414047241211],[-8.253607749938963,42.136688232421875],[-8.331864356994629,42.083839416503906],[-8.429669380187931,42.07236480712902],[-8.518028259277287,42.07956314086914],[-8.5468111038208,42.05399703979492],[-8.636755943298283,42.0474967956543],[-8.661334991455078,42.00332641601557],[-8.74594497680664,41.964553833007926],[-8.747705459594727,41.94314956665033],[-8.88208293914795,41.880973815918026],[-8.885416984558105,42.047359466552734],[-8.895972251892033,42.09958267211914],[-8.816805839538517,42.1370849609375],[-8.816528320312441,42.18680572509776],[-8.762915611267033,42.23152923583989],[-8.864583969116211,42.27819442749029],[-8.674028396606388,42.414306640625114],[-8.704584121704102,42.43430709838867],[-8.762915611267033,42.393749237060604],[-8.86541557312006,42.4120826721192],[-8.907638549804688,42.47486114501953],[-8.81541633605957,42.51569366455078],[-8.836527824401799,42.55291748046881],[-8.765972137451172,42.60124969482433],[-8.72664833068842,42.67708206176769],[-8.717191696166992,42.70634841918945],[-8.59975528717041,42.74309921264643],[-8.49303913116455,42.756385803222656],[-8.43016529083252,42.74663543701172],[-8.354201316833496,42.77883911132824],[-8.311788558959961,42.833919525146484],[-8.210221290588322,42.823669433593864],[-8.183547973632812,42.85999298095709],[-8.04576587677002,42.83145904541027],[-7.999567985534668,42.84886932373047]]]},"properties":{"ID_0":215,"ISO":"ES-PO","NAME_0":"Spain","ID_1":12,"NAME_1":"Galicia","ID_2":43,"NAME_2":"Pontevedra","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[1.420694947242793,38.79124832153332],[1.44625103473669,38.68458175659191],[1.380139946937618,38.6929168701173],[1.434584021568298,38.764583587646484],[1.420694947242793,38.79124832153332]]],[[[1.533470988273734,39.11875152587896],[1.605139017105103,39.089862823486385],[1.608194947242794,39.0359725952149],[1.529304981231803,38.94541549682617],[1.436527967453117,38.9120826721192],[1.403193950653133,38.87541580200195],[1.324306011200065,38.86180496215832],[1.212918043136654,38.90319442749035],[1.299306035041866,38.97735977172863],[1.289860963821411,39.02708435058605],[1.358749985694885,39.07402801513666],[1.439028024673519,39.08208465576172],[1.533470988273734,39.11875152587896]]],[[[3.213193893432617,39.96236038208019],[3.116805076599235,39.910415649414055],[3.088473081588859,39.86791610717785],[3.151806116104126,39.76819610595709],[3.24319410324108,39.72958374023432],[3.379581928253174,39.76569366455078],[3.457916021347046,39.74458312988286],[3.45347189903265,39.66930389404291],[3.403193950653076,39.63569259643555],[3.373749971389771,39.556526184082145],[3.302917003631705,39.50402832031256],[3.275139093399105,39.4281959533692],[3.232362031936589,39.3612518310548],[3.142082929611206,39.32541656494135],[3.049583911895809,39.26514053344732],[2.957360982894954,39.36347198486334],[2.789860963821468,39.362083435058594],[2.739583015441895,39.41041564941411],[2.728193998336849,39.53041839599621],[2.654304981231689,39.564304351806584],[2.540971994399968,39.524307250976676],[2.500416994094791,39.460693359375],[2.456249952316227,39.534862518310604],[2.364583015441895,39.53097152709961],[2.344583988189697,39.58791732788097],[2.369584083557242,39.614582061767635],[2.549860954284782,39.69930648803722],[2.778193950653076,39.85597229003912],[2.875138998031673,39.878749847412166],[2.951251029968262,39.9198608398438],[3.060972929000854,39.92069625854498],[3.145972967147941,39.95347213745117],[3.213193893432617,39.96236038208019]]],[[[4.080973148346061,40.09097290039073],[4.09930610656744,40.05014038085943],[4.166248798370418,40.06263732910156],[4.171804904937801,40.025138854980526],[4.256249904632682,39.9654159545899],[4.309584140777702,39.87902832031256],[4.273194789886588,39.80902862548834],[4.182360172271729,39.83819580078131],[4.020693778991699,39.921806335449325],[3.937361955642757,39.937362670898494],[3.819860935211182,39.92680740356451],[3.833472013473567,39.96291732788097],[3.795593023300227,40.001251220703125],[3.821249008178711,40.05014038085943],[4.035971164703369,40.06458282470708],[4.080973148346061,40.09097290039073]]]]},"properties":{"ID_0":215,"ISO":"ES-PM","NAME_0":"Spain","ID_1":13,"NAME_1":"Islas Baleares","ID_2":44,"NAME_2":"Baleares","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-15.419304847717285,28.182083129882926],[-15.413750648498533,28.045974731445312],[-15.373749732971135,27.998193740844783],[-15.39263916015625,27.886249542236328],[-15.4309720993042,27.802360534667912],[-15.561805725097654,27.761528015136832],[-15.573751449584904,27.735139846801758],[-15.701806068420353,27.773750305175724],[-15.787360191345213,27.833471298218],[-15.831527709960938,27.90958213806158],[-15.833472251892031,27.97291755676264],[-15.721805572509709,28.07041740417486],[-15.696805953979492,28.15208244323742],[-15.629583358764648,28.168472290039116],[-15.597638130187988,28.14458274841314],[-15.515972137451172,28.147361755371207],[-15.443472862243652,28.132083892822266],[-15.419304847717285,28.182083129882926]]],[[[-13.88680458068842,28.757638931274418],[-13.831526756286506,28.698749542236328],[-13.824028968810978,28.55486106872564],[-13.862639427185059,28.493473052978626],[-13.84847164154047,28.408472061157283],[-13.935417175292967,28.232915878295955],[-14.225693702697697,28.160139083862475],[-14.326806068420353,28.04708290100109],[-14.493749618530275,28.083194732666126],[-14.389028549194334,28.110694885253963],[-14.317639350891056,28.14236068725586],[-14.21541786193842,28.22597312927246],[-14.20958328247059,28.313194274902344],[-14.1620836257934,28.3709716796875],[-14.151804924011229,28.43097114562994],[-14.098751068115178,28.478748321533317],[-14.008472442626951,28.67374992370617],[-14.020694732666016,28.7081947326663],[-13.977640151977539,28.736251831054688],[-13.88680458068842,28.757638931274418]]],[[[-13.469584465026799,29.241527557373157],[-13.422917366027775,29.209028244018555],[-13.427360534667912,29.15541648864746],[-13.464305877685547,29.128194808960014],[-13.447916984558104,29.085695266723633],[-13.485694885253906,28.995416641235465],[-13.642083168029785,28.91902732849132],[-13.74236011505127,28.89986038208013],[-13.77791690826416,28.843751907348686],[-13.87708473205555,28.858749389648494],[-13.834583282470646,28.940139770507812],[-13.816805839538516,29.033472061157227],[-13.752361297607365,29.0795841217041],[-13.708749771118107,29.0795841217041],[-13.65847206115717,29.125139236450305],[-13.524862289428652,29.141805648803825],[-13.497637748718203,29.217916488647578],[-13.469584465026799,29.241527557373157]]]]},"properties":{"ID_0":215,"ISO":"ES-GC","NAME_0":"Spain","ID_1":14,"NAME_1":"Islas Canarias","ID_2":45,"NAME_2":"Las Palmas","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-17.927917480468746,27.84958267211914],[-17.882638931274414,27.802917480468864],[-17.929861068725586,27.728750228881836],[-17.95736122131342,27.719028472900447],[-17.971527099609318,27.64708328247076],[-18.039304733276254,27.687084197998047],[-18.160694122314453,27.71486091613764],[-18.153194427490174,27.75819396972662],[-18.069305419921875,27.753749847412163],[-17.99375152587885,27.79458427429205],[-17.927917480468746,27.84958267211914]]],[[[-17.25958251953125,28.217916488647404],[-17.201250076293945,28.20069503784191],[-17.118749618530273,28.15291404724121],[-17.11347007751459,28.087085723876953],[-17.197639465331918,28.024028778076456],[-17.244583129882812,28.019582748413086],[-17.31097221374506,28.051805496215877],[-17.349029541015625,28.097639083862532],[-17.318193435668885,28.20458221435558],[-17.25958251953125,28.217916488647404]]],[[[-16.158193588256836,28.589027404785213],[-16.119583129882756,28.556526184081974],[-16.1587505340575,28.52125167846685],[-16.234861373901367,28.485971450805778],[-16.30791664123535,28.409025192260852],[-16.35986137390131,28.379861831665096],[-16.362083435058594,28.304861068725696],[-16.424306869506836,28.20375061035162],[-16.442638397216797,28.140138626098917],[-16.52263832092279,28.05209350585937],[-16.677085876464787,27.99847221374517],[-16.707361221313477,28.010417938232422],[-16.736249923706055,28.084861755371094],[-16.76902770996088,28.109582901001033],[-16.837360382080078,28.207639694213867],[-16.84041786193842,28.265138626098803],[-16.923194885253906,28.355415344238338],[-16.833194732666016,28.393472671508903],[-16.749860763549805,28.371248245239485],[-16.67680358886713,28.399305343627873],[-16.6020832061767,28.394861221313477],[-16.513473510742074,28.419305801391598],[-16.42736053466797,28.491529464721737],[-16.380416870117127,28.547916412353743],[-16.314027786254883,28.572359085083118],[-16.206527709960934,28.569026947021655],[-16.158193588256836,28.589027404785213]]],[[[-17.920139312744027,28.85847282409668],[-17.852638244628906,28.833471298217773],[-17.788194656372013,28.843751907348686],[-17.72569465637207,28.733472824096623],[-17.76847267150879,28.677360534668026],[-17.750137329101562,28.626529693603572],[-17.75930404663086,28.573472976684627],[-17.8326416015625,28.45680618286161],[-17.857082366943303,28.459861755371094],[-17.885416030883786,28.549304962158256],[-17.964305877685547,28.6673583984375],[-18.00458335876459,28.786247253418026],[-17.920139312744027,28.85847282409668]]]]},"properties":{"ID_0":215,"ISO":"ES-TF","NAME_0":"Spain","ID_1":14,"NAME_1":"Islas Canarias","ID_2":46,"NAME_2":"Santa Cruz de Tenerife","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.858040094375554,42.63819122314459],[-2.780428886413517,42.579597473144524],[-2.763668060302678,42.622829437255916],[-2.680489063262939,42.594509124755795],[-2.691374063491764,42.542755126953125],[-2.65648698806757,42.50404357910156],[-2.577991962432804,42.482967376708984],[-2.537844896316528,42.49404144287121],[-2.420650959014836,42.48929595947277],[-2.325795888900756,42.468151092529354],[-2.176405906677246,42.40807342529291],[-2.132924079894963,42.421188354492294],[-2.078922033309937,42.36875915527355],[-1.995471954345646,42.36360931396495],[-1.870609045028573,42.28896713256836],[-1.799937963485661,42.22280120849615],[-1.708482980728149,42.209659576416016],[-1.690219998359623,42.1483993530274],[-1.781929969787598,42.137737274169915],[-1.821568965911808,42.15357208251964],[-1.905748963355904,42.06706237792969],[-1.901520967483463,42.029682159423885],[-1.847131967544556,42.00800323486334],[-1.856485962867737,41.966403961181754],[-1.961284995079041,41.92030715942383],[-2.028101921081543,41.953125000000114],[-2.109899997711124,41.957870483398494],[-2.116950035095158,42.02151107788097],[-2.161855936050415,42.0667343139649],[-2.136692047119141,42.10308456420904],[-2.23778510093689,42.102218627929744],[-2.319078922271729,42.145221710205135],[-2.438404083251953,42.13726806640625],[-2.514616012573185,42.114540100097656],[-2.514817953109741,42.0688591003418],[-2.579847097396851,41.996261596679794],[-2.673516988754272,41.99806213378912],[-2.757519006729069,42.03261184692377],[-2.7083580493927,42.08628463745123],[-2.72844409942627,42.122863769531364],[-2.791543960571232,42.10874938964855],[-2.797920942306519,42.046840667724666],[-2.883758068084716,42.009483337402344],[-2.913556098937988,42.022846221923935],[-2.932396888732853,42.08089065551758],[-3.034306049346924,42.08595657348644],[-3.128798961639347,42.20092773437494],[-3.088526964187565,42.2457160949707],[-3.109194040298405,42.35187149047862],[-3.05308198928833,42.37340927124035],[-3.071721076965275,42.527660369873104],[-3.105381011962834,42.55391311645508],[-3.004699945449772,42.64425277709972],[-2.883472919464054,42.624416351318466],[-2.858040094375554,42.63819122314459]]]},"properties":{"ID_0":215,"ISO":"ES-LO4","NAME_0":"Spain","ID_1":15,"NAME_1":"La Rioja","ID_2":47,"NAME_2":"La Rioja","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.546610116958561,43.08816528320318],[-2.540780067443848,43.02492141723638],[-2.60089898109436,43.00135421752924],[-2.580981969833317,42.964244842529354],[-2.40985703468317,42.959491729736385],[-2.302284002304077,42.92594528198248],[-2.250744104385319,42.89572525024414],[-2.235771894454899,42.83448028564459],[-2.280967950820866,42.7851295471192],[-2.262392997741642,42.748222351074276],[-2.323702096939087,42.724075317382926],[-2.309253931045532,42.67115020751953],[-2.347239971160889,42.63406372070324],[-2.415749073028564,42.662673950195426],[-2.49058008193964,42.58535003662115],[-2.399277925491333,42.5978736877442],[-2.392153024673462,42.51694869995117],[-2.420650959014836,42.48929595947277],[-2.537844896316528,42.49404144287121],[-2.577991962432804,42.482967376708984],[-2.65648698806757,42.50404357910156],[-2.691374063491764,42.542755126953125],[-2.680489063262939,42.594509124755795],[-2.763668060302678,42.622829437255916],[-2.780428886413517,42.579597473144524],[-2.858040094375554,42.63819122314459],[-2.90244889259327,42.69358825683605],[-2.986951112747192,42.70883941650402],[-3.017769098281804,42.74121093750005],[-3.100594997406006,42.76715087890631],[-3.225788116455078,42.83009719848632],[-3.282557010650634,42.875492095947266],[-3.224679946899414,42.94967269897461],[-3.147705078124943,42.932670593261776],[-3.126481056213322,42.90404129028332],[-3.016088962554818,42.91053771972661],[-3.011576890945321,42.9524307250976],[-3.060210943221989,43.003494262695426],[-3.144740104675236,43.00682067871094],[-3.133893013000431,43.0972175598145],[-3.181739091873169,43.120861053466854],[-3.141315937042179,43.16151809692394],[-3.108736038207951,43.14363479614252],[-2.946352005004826,43.17085266113281],[-2.960747003555241,43.09305572509765],[-2.894120931625309,43.04640579223633],[-2.72968411445612,43.023937225341854],[-2.66684103012085,43.03141403198248],[-2.633012056350594,43.087028503418075],[-2.546610116958561,43.08816528320318]],[[-2.830471992492676,42.79212188720709],[-2.854151964187622,42.7363853454591],[-2.784454107284545,42.69892883300792],[-2.767848014831486,42.66600036621094],[-2.578068971633854,42.673976898193416],[-2.562522888183537,42.74126815795904],[-2.743621110916137,42.792179107666016],[-2.830471992492676,42.79212188720709]]]},"properties":{"ID_0":215,"ISO":"ES-VI","NAME_0":"Spain","ID_1":16,"NAME_1":"País Vasco","ID_2":48,"NAME_2":"Álava","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":"Araba"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.728865027427616,43.29613113403325],[-1.783207058906498,43.28681945800781],[-1.794939994812012,43.24692535400385],[-1.922013044357243,43.18671417236328],[-1.904384016990548,43.14381790161144],[-1.947491049766484,43.0975227355957],[-2.022789955139103,43.06518936157237],[-2.038304090499878,42.98098754882824],[-2.129463911056405,42.93936920166021],[-2.210221052169743,42.949905395507926],[-2.250744104385319,42.89572525024414],[-2.302284002304077,42.92594528198248],[-2.40985703468317,42.959491729736385],[-2.580981969833317,42.964244842529354],[-2.60089898109436,43.00135421752924],[-2.540780067443848,43.02492141723638],[-2.546610116958561,43.08816528320318],[-2.505120992660466,43.09706115722656],[-2.463221073150578,43.22345352172857],[-2.418303966522217,43.26805877685558],[-2.412362098693791,43.321224212646484],[-2.325972080230656,43.29763793945324],[-2.2287499904632,43.311248779296875],[-2.177917003631535,43.287639617919865],[-1.881528973579407,43.35124969482416],[-1.833750963211003,43.3837509155274],[-1.752957820892334,43.34073638916027],[-1.728865027427616,43.29613113403325]]]},"properties":{"ID_0":215,"ISO":"ES-SS","NAME_0":"Spain","ID_1":16,"NAME_1":"País Vasco","ID_2":49,"NAME_2":"Guipúzcoa","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.412362098693791,43.321224212646484],[-2.418303966522217,43.26805877685558],[-2.463221073150578,43.22345352172857],[-2.505120992660466,43.09706115722656],[-2.546610116958561,43.08816528320318],[-2.633012056350594,43.087028503418075],[-2.66684103012085,43.03141403198248],[-2.72968411445612,43.023937225341854],[-2.894120931625309,43.04640579223633],[-2.960747003555241,43.09305572509765],[-2.946352005004826,43.17085266113281],[-3.108736038207951,43.14363479614252],[-3.141315937042179,43.16151809692394],[-3.223452091217041,43.17222976684582],[-3.253370046615543,43.19855880737316],[-3.417598009109497,43.13340759277355],[-3.430324077606201,43.24207305908209],[-3.382946014404297,43.2704696655274],[-3.225183963775635,43.308917999267635],[-3.157285928726196,43.30130386352545],[-3.153194904327393,43.353248596191456],[-3.058193922042847,43.34375],[-2.947083950042668,43.435970306396534],[-2.849581956863403,43.43013763427739],[-2.754584074020386,43.454860687255966],[-2.684859991073495,43.40430450439453],[-2.545137882232609,43.373195648193416],[-2.510138988494873,43.37736129760748],[-2.412362098693791,43.321224212646484]]]},"properties":{"ID_0":215,"ISO":"ES-BI","NAME_0":"Spain","ID_1":16,"NAME_1":"País Vasco","ID_2":50,"NAME_2":"Vizcaya","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.512214183807316,43.393196105957145],[-4.539379119873047,43.343917846679744],[-4.521636009216252,43.28058624267584],[-4.59830904006958,43.298503875732536],[-4.634801864624023,43.26873016357421],[-4.730861186981201,43.257293701171925],[-4.745722770690917,43.18407821655268],[-4.840936183929443,43.180740356445256],[-4.893488883972111,43.238437652587834],[-4.996514797210693,43.18535232543957],[-5.063722133636475,43.17945098876953],[-5.10164022445673,43.10181045532238],[-5.188504219055119,43.0997314453125],[-5.28202009201044,43.07738876342779],[-5.383000850677489,43.08720016479492],[-5.540303230285588,43.01831436157237],[-5.688209056854134,43.05683898925787],[-5.728264808654728,43.04247665405279],[-5.765460968017521,42.969188690185604],[-5.850213050842285,42.967369079589844],[-5.95662784576416,43.018558502197266],[-5.974021911621037,43.06490707397461],[-6.136545181274414,43.02095413208019],[-6.185967922210636,43.049510955810604],[-6.226683139801025,43.008876800537166],[-6.396917819976806,43.038288116455135],[-6.442235946655217,42.939292907714844],[-6.541102886199951,42.91247558593756],[-6.612791061401367,42.92452239990245],[-6.72252178192133,42.91745376586914],[-6.749083042144775,42.89411544799816],[-6.82404899597168,42.91502761840826],[-6.835949897766112,42.95773315429699],[-6.964306831359863,43.026531219482365],[-6.951677799224796,43.07615661621105],[-6.827466964721679,43.12314987182623],[-6.871572971343937,43.17982482910156],[-6.941421985626164,43.13179016113287],[-6.964973926544189,43.187049865722656],[-7.065142154693604,43.249412536621094],[-7.178483963012694,43.387973785400334],[-7.172832012176513,43.43037033081055],[-7.102732181549072,43.42698669433593],[-7.052639007568303,43.47458267211913],[-7.022916793823185,43.55680465698242],[-6.92430591583252,43.575416564941406],[-6.816805839538574,43.55652618408203],[-6.59819507598877,43.554306030273494],[-6.437082767486515,43.55930709838867],[-6.357082843780518,43.55097198486328],[-6.242639064788818,43.58902740478521],[-6.117362022399901,43.554862976074276],[-6.030971050262451,43.58541488647461],[-5.945138931274414,43.584304809570426],[-5.90736198425293,43.62374877929693],[-5.834029197692871,43.64541625976562],[-5.694583892822208,43.545139312744084],[-5.415139198303222,43.554584503173885],[-5.385416984558105,43.53263854980463],[-5.294859886169434,43.53513717651373],[-5.207637786865178,43.47402954101574],[-5.085416793823185,43.47624969482421],[-4.770692825317383,43.43069458007818],[-4.653750896453801,43.40097045898443],[-4.512214183807316,43.393196105957145]]]},"properties":{"ID_0":215,"ISO":"ES-O2","NAME_0":"Spain","ID_1":17,"NAME_1":"Principado de Asturias","ID_2":51,"NAME_2":"Asturias","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.026051044464111,38.655689239501946],[-1.00148594379425,38.572860717773494],[-1.013854980468693,38.49708557128906],[-1.081730008125305,38.441864013671925],[-1.084408044815007,38.34651565551758],[-0.989009976386967,38.3205680847168],[-0.967746019363346,38.25588226318365],[-0.988690972328186,38.19958877563488],[-1.036584973335266,38.13743209838867],[-1.022176027297973,38.075237274169865],[-0.921250998973846,37.944534301757805],[-0.830178976058903,37.86429977416992],[-0.762360990047398,37.846981048583984],[-0.800137996673584,37.782638549804744],[-0.859583020210266,37.72291564941406],[-0.788469016551971,37.652111053466854],[-0.71763801574707,37.60680389404302],[-0.91509997844696,37.55908203125],[-1.074581980705261,37.5837516784668],[-1.126250028610229,37.55374908447271],[-1.242916941642704,37.577362060546875],[-1.320973038673344,37.56319427490246],[-1.401805043220463,37.50680541992187],[-1.459305047988778,37.48680496215832],[-1.48120105266571,37.453491210937614],[-1.630097031593323,37.37485122680675],[-1.736989974975529,37.44267654418951],[-1.845173954963684,37.45486831665045],[-1.953919053077698,37.58831787109381],[-2.011836051940918,37.673496246338004],[-1.995744943618774,37.72808837890631],[-2.008748054504338,37.774990081787216],[-1.99518895149231,37.841426849365234],[-2.062150001525822,37.883510589599716],[-2.123106002807617,37.900489807128906],[-2.171906948089599,37.88873291015631],[-2.207566022872811,37.91661071777355],[-2.276753902435246,37.960090637207145],[-2.341528892517033,38.026039123535206],[-2.329797983169555,38.065437316894524],[-2.261549949645882,38.11299514770519],[-2.213428020477295,38.2018394470216],[-2.113636016845646,38.23823547363281],[-2.063683986663818,38.29762268066412],[-1.978098034858647,38.282218933105526],[-1.907454013824463,38.29799270629894],[-1.743435978889465,38.381320953369254],[-1.681859970092717,38.36017990112316],[-1.669927000999337,38.31235504150396],[-1.589324951171818,38.311233520507926],[-1.478346943855286,38.376396179199276],[-1.48065805435175,38.48085021972656],[-1.498383045196533,38.5320663452149],[-1.45231294631958,38.58181762695318],[-1.447710990905762,38.64936065673834],[-1.402217030525151,38.69132614135742],[-1.342898011207581,38.677524566650504],[-1.249382972717285,38.73839569091797],[-1.183928966522217,38.754447937011776],[-1.026051044464111,38.655689239501946]]]},"properties":{"ID_0":215,"ISO":"ES-MU6","NAME_0":"Spain","ID_1":18,"NAME_1":"Región de Murcia","ID_2":52,"NAME_2":"Murcia","TYPE_2":"Provincia","ENGTYPE_2":"Province","NL_NAME_2":null,"VARNAME_2":null}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/uk.geojson b/superset/assets/visualizations/countries/uk.geojson new file mode 100644 index 0000000000000..14fecaa71e0a3 --- /dev/null +++ b/superset/assets/visualizations/countries/uk.geojson @@ -0,0 +1,194 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.152421995997429,51.59897994995117],[0.159775003790799,51.563388824463004],[0.193339005112705,51.55400085449213],[0.172252997756004,51.528106689453125],[0.166115000844059,51.506519317627],[0.119151003658828,51.51191329956066],[0.097815997898692,51.5101890563966],[0.074619002640361,51.542129516601676],[0.127525001764411,51.55410003662115],[0.137917995452995,51.591773986816406],[0.152421995997429,51.59897994995117]]]},"properties":{"ID_0":242,"ISO":"GB-BDG","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":1,"NAME_2":"Barking and Dagenham","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.712670087814331,51.31989288330084],[-2.714828968048096,51.342681884765625],[-2.680032968521061,51.34134292602544],[-2.646574974060059,51.34937286376953],[-2.633456945419198,51.382179260253906],[-2.562264919281006,51.38015365600586],[-2.539515018463078,51.39353561401367],[-2.522646903991642,51.41886901855474],[-2.503379106521606,51.405582427978565],[-2.397656917572021,51.40290451049804],[-2.280632972717285,51.420318603515625],[-2.279999017715397,51.37250137329113],[-2.333611011505127,51.34693908691411],[-2.296669006347543,51.34027099609381],[-2.290097951889038,51.324958801269524],[-2.34583401679987,51.29999923706065],[-2.40500092506403,51.29943847656256],[-2.42305588722229,51.28221893310547],[-2.458056926727294,51.27304840087885],[-2.488332986831608,51.27582931518555],[-2.493057012557927,51.289440155029354],[-2.539444923400879,51.29999923706065],[-2.591387987136727,51.28305053710943],[-2.62083196640009,51.28305053710943],[-2.668334007263184,51.31193923950201],[-2.712670087814331,51.31989288330084]]]},"properties":{"ID_0":242,"ISO":"GB-BAS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":2,"NAME_2":"Bath and North East Somerset","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.385149002075138,51.92111587524414],[-0.403178989887238,51.91548156738281],[-0.464507997035866,51.91367721557617],[-0.477133989334106,51.89022827148448],[-0.471720993518829,51.866779327392635],[-0.45266801118845,51.847469329833984],[-0.482221007346993,51.83443832397472],[-0.491389989852848,51.81499099731457],[-0.514999985694885,51.801940917968864],[-0.533610999584198,51.819438934326165],[-0.561110973358154,51.854721069335994],[-0.603057026863098,51.88000106811535],[-0.625555992126465,51.87638854980469],[-0.661110997200012,51.896389007568416],[-0.688054978847504,51.90277099609381],[-0.657158970832768,51.94794845581065],[-0.641668021678868,51.96194076538086],[-0.654165983200016,51.9880485534668],[-0.634442985057717,52.00444030761724],[-0.630001008510589,52.028331756591854],[-0.658333003520909,52.03889083862316],[-0.621945977210999,52.071659088134815],[-0.573612987995148,52.09666061401373],[-0.588057994842416,52.11804962158203],[-0.63160502910614,52.1465110778808],[-0.621200978755894,52.174911499023494],[-0.654443979263249,52.192501068115234],[-0.634442985057717,52.216110229492244],[-0.641389012336731,52.259159088134815],[-0.590556025505009,52.26610946655267],[-0.558610975742226,52.248050689697266],[-0.525277018547001,52.260551452636776],[-0.525277018547001,52.283329010009766],[-0.503054976463204,52.30305099487315],[-0.458727985620499,52.30881881713878],[-0.429443985223656,52.29748916625982],[-0.418888986110687,52.27804946899419],[-0.371111005544662,52.26778030395519],[-0.368333011865616,52.241939544677734],[-0.355277985334396,52.227218627929744],[-0.293334007263127,52.22415924072271],[-0.29194301366806,52.20277023315441],[-0.253057003021183,52.191940307617244],[-0.233888998627606,52.17277908325207],[-0.246943995356503,52.160549163818416],[-0.206945002078953,52.150550842285206],[-0.216665998101234,52.13277053833019],[-0.130555003881341,52.12137985229492],[-0.146109998226166,52.069721221923885],[-0.204723000526428,52.03026962280279],[-0.200832992792073,52.00999069213867],[-0.236945003271103,51.996379852295036],[-0.254720002412796,51.978610992431754],[-0.289999008178597,51.99361038208008],[-0.311388999223652,51.98389053344732],[-0.347777992486897,51.981380462646484],[-0.344166994094792,51.96305084228521],[-0.361110001802444,51.949440002441406],[-0.386388003826141,51.97111129760747],[-0.399167001247349,51.935001373291016],[-0.385149002075138,51.92111587524414]]]},"properties":{"ID_0":242,"ISO":"GB-BDF","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":3,"NAME_2":"Bedfordshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.486946940422058,51.332500457763665],[-1.498057007789498,51.366100311279354],[-1.533334016799813,51.37749099731445],[-1.56333398818964,51.4122200012207],[-1.521944999694767,51.4258308410645],[-1.528332948684692,51.4513893127442],[-1.550554990768433,51.46139144897455],[-1.580399990081673,51.50305557250982],[-1.584468007087594,51.517429351806754],[-1.567499995231572,51.54582977294921],[-1.534168004989624,51.550548553466854],[-1.486667990684452,51.54693984985357],[-1.448889017105103,51.53277969360351],[-1.418334960937386,51.54027938842779],[-1.388056993484497,51.536109924316406],[-1.365556955337524,51.544998168945426],[-1.338889002799988,51.53722000122076],[-1.321943998336792,51.549999237060604],[-1.289721012115422,51.54861068725586],[-1.264443993568364,51.53248977661144],[-1.226943016052246,51.53332901000976],[-1.184167981147709,51.52304840087902],[-1.148056983947697,51.53165817260748],[-1.132778048515206,51.51082992553711],[-1.100556015968323,51.48917007446295],[-1.063611030578613,51.48527908325195],[-0.983610987663269,51.44916915893566],[-0.97222197055811,51.448051452636776],[-0.907221019268036,51.47499847412121],[-0.868332028388977,51.50194168090826],[-0.890277981758061,51.5286102294923],[-0.891583979129791,51.54838180541992],[-0.850832998752537,51.539161682128906],[-0.798332989215851,51.541381835937614],[-0.772499024868011,51.55722045898449],[-0.709721982479039,51.55833053588867],[-0.687223017215672,51.53998947143554],[-0.70472198724741,51.50471115112304],[-0.660278975963593,51.48083114624035],[-0.623161017894745,51.480899810791016],[-0.64333397150034,51.503330230713004],[-0.644442975521031,51.5263786315919],[-0.616667985916138,51.530269622802734],[-0.561389982700291,51.521938323974666],[-0.557501018047333,51.50416946411133],[-0.523611009120941,51.506389617920036],[-0.51277798414219,51.475830078125],[-0.526400029659271,51.43140029907238],[-0.569967985153085,51.442989349365284],[-0.590278029441833,51.42638015747076],[-0.598887979984227,51.403610229492244],[-0.619722008705139,51.38777160644537],[-0.658056974410954,51.38222122192394],[-0.720833003520966,51.36388015747082],[-0.765276014804726,51.33137893676758],[-0.819719970226288,51.348880767822266],[-0.886389970779362,51.35139083862305],[-0.919166028499603,51.36027908325207],[-0.9666650295257,51.357219696045036],[-0.996388018131199,51.36222076416021],[-1.031944036483708,51.35472106933594],[-1.060279011726379,51.37332916259777],[-1.111111998558044,51.37137985229492],[-1.120000958442631,51.35472106933594],[-1.245278000831547,51.368888854980526],[-1.399446010589599,51.37054824829113],[-1.436666011810246,51.35248947143549],[-1.433055996894836,51.33472061157238],[-1.486946940422058,51.332500457763665]]]},"properties":{"ID_0":242,"ISO":"GB-WBK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":4,"NAME_2":"Berkshire","TYPE_2":"County","ENGTYPE_2":"County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.080312997102794,51.431617736816456],[0.087980002164898,51.465873718261655],[0.121247999370098,51.476787567138786],[0.119151003658828,51.51191329956066],[0.166115000844059,51.506519317627],[0.191625997424126,51.48337554931651],[0.224682003259659,51.489070892333984],[0.223610997200012,51.47333145141607],[0.211390003561974,51.456939697265625],[0.160833999514637,51.41722106933605],[0.16627000272274,51.39855575561529],[0.138674005866051,51.412044525146484],[0.104828998446465,51.41489028930663],[0.080312997102794,51.431617736816456]]]},"properties":{"ID_0":242,"ISO":"GB-BEX","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":5,"NAME_2":"Bexley","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.35657095909113,53.66466140747076],[-2.376390933990479,53.63499069213878],[-2.434444904327393,53.64416885375971],[-2.463610887527465,53.62416076660162],[-2.504431962966919,53.62708282470714],[-2.526494026184025,53.653591156005916],[-2.525605916976872,53.7379989624024],[-2.496287107467595,53.76198577880859],[-2.446531057357788,53.77264785766607],[-2.418098926544189,53.76554107666027],[-2.379894018173217,53.707790374755916],[-2.35657095909113,53.66466140747076]]]},"properties":{"ID_0":242,"ISO":"GB-BBD","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":6,"NAME_2":"Blackburn with Darwen","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"Blackburn, Blackburn and Darwen"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.885833978652954,50.71349334716797],[-1.921450018882751,50.71969223022461],[-1.920369982719308,50.75004577636713],[-1.870257973670959,50.75146865844737],[-1.816418051719666,50.738227844238224],[-1.79193997383112,50.719028472900504],[-1.83027803897852,50.72069549560547],[-1.885833978652954,50.71349334716797]]]},"properties":{"ID_0":242,"ISO":"GB-BMH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":7,"NAME_2":"Bournemouth","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.236594006419125,51.52651214599621],[-0.293960005044937,51.52960205078125],[-0.32547599077219,51.54936599731445],[-0.305317014455795,51.57789230346691],[-0.283463001251164,51.581935882568295],[-0.266775012016239,51.60105514526367],[-0.243687003850937,51.57310104370123],[-0.204728007316589,51.551540374755916],[-0.178977996110916,51.52835083007818],[-0.211057007312775,51.522098541259766],[-0.236594006419125,51.52651214599621]]]},"properties":{"ID_0":242,"ISO":"GB-BEN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":8,"NAME_2":"Brent","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.017590999603328,50.78486251831049],[-0.085277996957302,50.809860229492244],[-0.157499000429993,50.8223609924317],[-0.207498997449875,50.82641601562506],[-0.230278998613301,50.85694122314459],[-0.213330999016762,50.87498855590826],[-0.181667000055313,50.872501373291065],[-0.152777001261711,50.89139175415045],[-0.128588005900383,50.88260269165044],[-0.05392400175333,50.84808731079107],[-0.011202000081539,50.8243522644043],[0.017590999603328,50.78486251831049]]]},"properties":{"ID_0":242,"ISO":"GB-BNH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":9,"NAME_2":"Brighton and Hove","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.633456945419198,51.382179260253906],[-2.630516052246037,51.44305419921874],[-2.66798996925354,51.46714019775396],[-2.705461025238037,51.48052597045898],[-2.731005907058602,51.49736022949219],[-2.683054924011174,51.53552627563482],[-2.666650056838932,51.520671844482536],[-2.571633100509644,51.48721694946294],[-2.518100023269653,51.47249603271496],[-2.522646903991642,51.41886901855474],[-2.539515018463078,51.39353561401367],[-2.562264919281006,51.38015365600586],[-2.633456945419198,51.382179260253906]]]},"properties":{"ID_0":242,"ISO":"GB-BST","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":10,"NAME_2":"Bristol","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.013167000375745,51.32074356079107],[0.000276000239069,51.34575653076172],[-0.030860999599042,51.38095474243164],[-0.05952399969101,51.39484405517584],[-0.07634399831295,51.414375305175724],[-0.074546001851559,51.41921997070318],[-0.066652998328209,51.42107391357422],[-0.022267000749707,51.41886138916021],[0.003723999951148,51.411174774170036],[0.025491999462304,51.438079833984375],[0.080312997102794,51.431617736816456],[0.104828998446465,51.41489028930663],[0.138674005866051,51.412044525146484],[0.16627000272274,51.39855575561529],[0.155277997255325,51.35472106933594],[0.096665002405643,51.31110000610346],[0.09388899803173,51.288330078125],[0.054444000124988,51.28998947143555],[0.022500000894127,51.289718627929744],[0.013167000375745,51.32074356079107]]]},"properties":{"ID_0":242,"ISO":"GB-BRY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":11,"NAME_2":"Bromley","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.493405014276448,51.5909881591798],[-0.471388995647374,51.549999237060604],[-0.484445989131927,51.49443817138683],[-0.497188985347748,51.477870941162166],[-0.51277798414219,51.475830078125],[-0.523611009120941,51.506389617920036],[-0.557501018047333,51.50416946411133],[-0.561389982700291,51.521938323974666],[-0.616667985916138,51.530269622802734],[-0.644442975521031,51.5263786315919],[-0.64333397150034,51.503330230713004],[-0.623161017894745,51.480899810791016],[-0.660278975963593,51.48083114624035],[-0.70472198724741,51.50471115112304],[-0.687223017215672,51.53998947143554],[-0.709721982479039,51.55833053588867],[-0.772499024868011,51.55722045898449],[-0.798332989215851,51.541381835937614],[-0.850832998752537,51.539161682128906],[-0.891583979129791,51.54838180541992],[-0.931945025920868,51.57054901123058],[-0.911945998668671,51.5897216796875],[-0.944446027278843,51.61915969848632],[-0.930554986000061,51.63471984863281],[-0.921387970447483,51.667221069335994],[-0.876667022705078,51.664440155029354],[-0.884442985057831,51.71638107299816],[-0.911945998668671,51.740550994873104],[-0.965555012226048,51.756099700927734],[-1.018057942390385,51.75249099731445],[-1.040277004241943,51.74332809448242],[-1.065834999084473,51.7513885498048],[-1.079722046852112,51.773048400878956],[-1.108610033988953,51.7797203063966],[-1.1161110401153,51.83805084228515],[-1.069445013999939,51.823879241943416],[-1.047220945358276,51.83304977416998],[-1.062777042388916,51.87860870361339],[-1.081665992736816,51.89776992797862],[-1.075834035873356,51.919441223144474],[-1.047220945358276,51.939720153808594],[-1.082499980926457,51.95249938964843],[-1.053056001663151,51.992771148681754],[-1.108158946037292,52.00925827026373],[-1.141713976860046,52.01774978637707],[-1.096667051315251,52.04388046264659],[-1.03666698932642,52.05360031127941],[-1.02333402633667,52.06472015380864],[-0.990832984447479,52.063049316406364],[-0.940555989742222,52.07194137573236],[-0.901345014572144,52.018619537353565],[-0.867379009723663,52.03387069702154],[-0.837885022163334,52.011081695556754],[-0.778361022472325,51.976810455322266],[-0.722445011138916,51.9497528076173],[-0.657158970832768,51.94794845581065],[-0.688054978847504,51.90277099609381],[-0.661110997200012,51.896389007568416],[-0.625555992126465,51.87638854980469],[-0.603057026863098,51.88000106811535],[-0.561110973358154,51.854721069335994],[-0.533610999584198,51.819438934326165],[-0.551944971084538,51.82165908813488],[-0.579445004463196,51.80138015747076],[-0.653887987136784,51.811389923095646],[-0.676388025283813,51.829158782958984],[-0.674444019794464,51.84304809570318],[-0.713056981563511,51.84833145141607],[-0.730000019073486,51.82777023315441],[-0.709721982479039,51.80916976928711],[-0.678331971168518,51.79582977294933],[-0.673609972000065,51.76943969726568],[-0.631389021873417,51.7488899230957],[-0.588890016078949,51.74916076660156],[-0.548331975936833,51.71638107299816],[-0.537222027778625,51.67499923706066],[-0.498055011033955,51.667770385742244],[-0.523889005184174,51.641109466552734],[-0.518612027168274,51.60776901245123],[-0.493405014276448,51.5909881591798]]]},"properties":{"ID_0":242,"ISO":"GB-BKM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":12,"NAME_2":"Buckinghamshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.447221010923329,52.43222045898443],[0.392776995897293,52.40805053710949],[0.389721006155128,52.39027023315424],[0.419167995452938,52.35583114624029],[0.446667999029103,52.34000015258795],[0.434166997671127,52.309719085693416],[0.472499012947196,52.30833053588873],[0.510555982589665,52.28165817260748],[0.495555013418311,52.264999389648544],[0.430554002523422,52.253879547119254],[0.382777005434036,52.276939392089844],[0.349721997976417,52.25777053833007],[0.392498999834118,52.22499847412104],[0.426943987608013,52.2380485534669],[0.462222993373985,52.2397193908692],[0.50472199916851,52.2283287048341],[0.517220973968563,52.210548400878906],[0.498333007097301,52.177219390869084],[0.498611003160477,52.160831451416016],[0.46166700124752,52.16389083862305],[0.431665986776409,52.145000457763665],[0.427500009536743,52.12916946411133],[0.398056000471172,52.104438781738395],[0.408932000398693,52.05936050415039],[0.365554988384247,52.04417037963873],[0.325278997421265,52.07416915893566],[0.286664992570934,52.0849990844726],[0.255832999944744,52.07693862915039],[0.206668004393578,52.08166885375971],[0.193610996007976,52.05693817138683],[0.139166995883045,52.04193878173828],[0.106389999389705,52.054988861083984],[0.108332000672874,52.027500152587834],[0.08055599778902,52.00249099731457],[0.051389999687728,52.04333114624018],[-0.011388000100794,52.051670074463],[-0.029443999752345,52.039989471435604],[-0.067220002412796,52.03387832641607],[-0.109168000519276,52.01943969726562],[-0.135555997490883,52.04360961914057],[-0.146109998226166,52.069721221923885],[-0.130555003881341,52.12137985229492],[-0.216665998101234,52.13277053833019],[-0.206945002078953,52.150550842285206],[-0.246943995356503,52.160549163818416],[-0.233888998627606,52.17277908325207],[-0.253057003021183,52.191940307617244],[-0.29194301366806,52.20277023315441],[-0.293334007263127,52.22415924072271],[-0.355277985334396,52.227218627929744],[-0.368333011865616,52.241939544677734],[-0.371111005544662,52.26778030395519],[-0.418888986110687,52.27804946899419],[-0.429443985223656,52.29748916625982],[-0.458727985620499,52.30881881713878],[-0.461389988660812,52.32360839843744],[-0.485556006431523,52.348609924316406],[-0.484445989131927,52.365550994873104],[-0.425832986831608,52.38249969482433],[-0.416388988494816,52.39582824707037],[-0.382777988910675,52.412220001220696],[-0.335557013750019,52.45555114746105],[-0.348055988550129,52.4900016784669],[-0.407130986451989,52.5118293762207],[-0.39832898974413,52.537429809570256],[-0.414335012435913,52.559688568115234],[-0.397866010665837,52.55894088745117],[-0.326526999473515,52.50751113891607],[-0.286709994077682,52.504192352294915],[-0.238598003983498,52.532394409179744],[-0.215372994542065,52.552303314209034],[-0.140716001391411,52.57719039916986],[-0.062739998102188,52.58548355102544],[-0.049467999488115,52.598758697509766],[-0.049467999488115,52.65792465209961],[3.98e-13,52.64752960205078],[0.032219998538608,52.64804840087885],[0.057222999632472,52.670558929443416],[0.052777998149509,52.70055007934582],[0.097498998046035,52.70804977416992],[0.149443000555095,52.725269317626946],[0.172442004084644,52.724388122558594],[0.157077997922954,52.67021179199219],[0.197501003742218,52.66110992431646],[0.184722006321067,52.63000106811534],[0.245831996202469,52.60139083862316],[0.219998002052307,52.58443832397455],[0.228332996368408,52.56082916259777],[0.218331992626247,52.543331146240284],[0.223055005073547,52.52165985107422],[0.253055006265754,52.48749923706066],[0.285834014415855,52.500000000000114],[0.32861098647129,52.503330230713],[0.362500995397568,52.49055099487315],[0.398056000471172,52.45528030395519],[0.447221010923329,52.43222045898443]]]},"properties":{"ID_0":242,"ISO":"GB-CAM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":13,"NAME_2":"Cambridgeshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.130917996168137,51.56416702270519],[-0.110025003552437,51.5265617370606],[-0.096313998103028,51.51580429077148],[-0.102742999792099,51.51198959350586],[-0.121914997696877,51.509796142578125],[-0.145739004015809,51.52985763549816],[-0.178977996110916,51.52835083007818],[-0.204728007316589,51.551540374755916],[-0.16264800727356,51.566417694091854],[-0.130917996168137,51.56416702270519]]]},"properties":{"ID_0":242,"ISO":"GB-CMD","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":14,"NAME_2":"Camden","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.976848959922791,53.207370758056754],[-2.005557060241642,53.18610000610357],[-2.030555009841919,53.18471908569335],[-2.06833291053772,53.165828704833984],[-2.140001058578491,53.16999816894537],[-2.134721994399968,53.15027999877935],[-2.157778024673462,53.14749908447271],[-2.20491099357605,53.113666534423885],[-2.243597030639535,53.08589172363286],[-2.272222995757943,53.07749938964849],[-2.305557012557927,53.0791587829591],[-2.33555793762207,53.056110382080185],[-2.36583399772644,53.0522193908692],[-2.37388801574707,53.03722000122081],[-2.366389989852848,53.00027084350586],[-2.378781080245972,52.98960876464855],[-2.423609972000065,52.9786109924317],[-2.430835008621216,52.96500015258788],[-2.478888034820557,52.95415878295904],[-2.512778997421208,52.96165847778332],[-2.527224063873234,52.94721984863287],[-2.57778000831604,52.95360946655279],[-2.589446067810059,52.9769401550294],[-2.622776985168457,52.98582839965826],[-2.727740049362126,52.96660995483404],[-2.7744460105896,52.9849891662597],[-2.812777042388916,52.984161376953125],[-2.827500104904174,53.00222015380871],[-2.860470056533813,53.021930694580185],[-2.864376068115177,53.05360031127941],[-2.895487070083504,53.100749969482536],[-2.93833398818964,53.124721527099666],[-2.956809043884277,53.14467239379883],[-2.909168004989624,53.171390533447266],[-2.912499904632568,53.18638992309582],[-2.955276966094914,53.215549468994254],[-3.001389026641846,53.23944091796881],[-3.037220954894906,53.25111007690429],[-3.092499971389771,53.25672149658203],[-3.099165916442757,53.285758972168026],[-3.066668033599854,53.30554962158203],[-3.02527904510498,53.29360961914068],[-2.974445104598999,53.29666137695318],[-2.944998025894165,53.2894401550293],[-2.924989938735962,53.30680465698242],[-2.878056049346923,53.28930664062494],[-2.838610887527465,53.29402923583996],[-2.813055038452148,53.304584503173885],[-2.771389961242676,53.304862976074276],[-2.763055086135864,53.32764053344732],[-2.808409929275455,53.32847213745128],[-2.767220973968449,53.347770690918026],[-2.77222204208374,53.365001678466854],[-2.741111993789616,53.388328552246094],[-2.680557012557927,53.37887954711914],[-2.662832021713257,53.357460021972656],[-2.605659961700383,53.338134765624936],[-2.580697059631234,53.31558609008789],[-2.55492901802063,53.31236648559575],[-2.447022914886475,53.355045318603516],[-2.42877006530756,53.38039016723633],[-2.364721059799137,53.36249923706055],[-2.316668033599854,53.359989166259766],[-2.28333306312561,53.34222030639659],[-2.238333940505868,53.35499954223644],[-2.176111936569157,53.34555053710949],[-2.159446954727173,53.321388244628906],[-2.140279054641724,53.3277702331543],[-2.119998931884766,53.359439849853516],[-2.080832004547119,53.3611106872558],[-2.049443960189762,53.3522186279298],[-2.016736030578613,53.370479583740234],[-1.998056054115296,53.33583068847667],[-1.995555996894836,53.26416015624999],[-1.990556001663208,53.241661071777344],[-1.970834016799927,53.23027038574224],[-1.976848959922791,53.207370758056754]]]},"properties":{"ID_0":242,"ISO":"GB-CHS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":15,"NAME_2":"Cheshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-4.554721832275391,50.92303848266607],[-4.458333015441895,50.92110061645508],[-4.455832958221436,50.90166091918951],[-4.417778015136719,50.85499954223644],[-4.439445972442627,50.841110229492244],[-4.450000762939453,50.799438476562614],[-4.440556049346924,50.77972030639648],[-4.412777900695744,50.76055145263672],[-4.376945018768311,50.764438629150504],[-4.37805700302124,50.74166107177729],[-4.362500190734863,50.71944046020502],[-4.360834121704045,50.69250106811534],[-4.346944808959961,50.6786003112794],[-4.335000038146972,50.64278030395508],[-4.296113014221191,50.62554931640625],[-4.301390171051025,50.58777999877941],[-4.273055076599121,50.56499099731445],[-4.270555019378662,50.54249954223633],[-4.216945171356144,50.533611297607536],[-4.189723014831543,50.494438171386825],[-4.217779159545842,50.494720458984375],[-4.23097801208496,50.470417022705135],[-4.204721927642765,50.44013977050781],[-4.209722995758057,50.39291763305664],[-4.18305492401123,50.35763931274414],[-4.208611011505013,50.317916870117244],[-4.245832920074406,50.34208297729498],[-4.291944980621338,50.358470916748104],[-4.366943836212158,50.35985946655284],[-4.386943817138672,50.36402893066406],[-4.436943054199218,50.36041641235363],[-4.451388835906869,50.34347152709972],[-4.53916692733759,50.323192596435604],[-4.58583307266224,50.33180618286144],[-4.602499961852971,50.324306488037166],[-4.682499885558968,50.32263946533203],[-4.70527791976923,50.340415954589844],[-4.765833854675293,50.323192596435604],[-4.755833148956299,50.2993049621582],[-4.783610820770264,50.287361145019524],[-4.785276889801025,50.2454185485841],[-4.798057079315186,50.23041534423833],[-4.863055229186955,50.23430633544916],[-4.903610229492131,50.21097183227539],[-4.958610057830811,50.20124816894542],[-4.973611831665039,50.18430709838873],[-4.972498893737792,50.16402816772461],[-5.008612155914306,50.139026641845646],[-5.025277137756347,50.15430450439459],[-5.020277023315429,50.18347167968756],[-5.031943798065186,50.200416564941406],[-5.063055992126407,50.1926383972168],[-5.04527711868286,50.16930389404297],[-5.069723129272461,50.161804199218864],[-5.066944122314453,50.14458465576177],[-5.08861207962036,50.12430572509765],[-5.086390018463078,50.1043052673341],[-5.101944923400879,50.09375],[-5.07694482803339,50.07930374145519],[-5.059165954589787,50.051528930664176],[-5.069167137145882,50.03374862670893],[-5.089166164398192,50.030971527099666],[-5.100276947021428,50.004028320312614],[-5.156389236450138,50.007362365722656],[-5.197638988494759,49.95847320556651],[-5.245139122009277,49.974304199218864],[-5.268610954284668,50.006248474121094],[-5.256945133209229,50.02069473266607],[-5.279166221618539,50.05625152587896],[-5.333610057830754,50.09041595458989],[-5.357500076293888,50.088748931884815],[-5.389165878295842,50.103195190429744],[-5.428610801696777,50.10458374023448],[-5.461390018463078,50.12236022949219],[-5.491387844085637,50.12847137451172],[-5.529723167419434,50.12374877929693],[-5.546944141387939,50.1073608398438],[-5.531389236450082,50.089027404785156],[-5.549166202545166,50.06180572509771],[-5.572500228881835,50.05263900756836],[-5.670833110809269,50.03458404541027],[-5.716389179229735,50.06402969360363],[-5.693055152893066,50.08263778686523],[-5.704721927642822,50.13541793823242],[-5.671946048736515,50.16680526733404],[-5.621943950653076,50.176807403564446],[-5.565277099609318,50.20013809204107],[-5.549166202545166,50.21180725097656],[-5.499722957611084,50.2198600769044],[-5.468056201934814,50.19958496093744],[-5.436944007873478,50.19374847412115],[-5.391944885253906,50.22735977172851],[-5.395833015441838,50.24013900756836],[-5.344723224639893,50.238193511963],[-5.315277099609375,50.249584197998104],[-5.275834083557129,50.27513885498046],[-5.245833873748779,50.28680419921875],[-5.23527717590332,50.31874847412121],[-5.199721813201847,50.32097244262707],[-5.181944847106934,50.340694427490234],[-5.158610820770207,50.34875106811529],[-5.147500038146916,50.37513732910161],[-5.146944046020451,50.40569305419927],[-5.070279121398926,50.420696258545036],[-5.042500972747746,50.443473815918026],[-5.024721145629883,50.539859771728565],[-4.984166145324707,50.54264068603521],[-4.970832824706974,50.55875015258795],[-4.937500953674259,50.55347061157238],[-4.915277004241887,50.575138092041065],[-4.870277881622314,50.5951385498048],[-4.795832157134896,50.59847259521484],[-4.770834922790471,50.62486267089849],[-4.757499217987004,50.67208480834972],[-4.70638990402216,50.68597412109375],[-4.655278205871582,50.715972900390625],[-4.652500152587833,50.739582061767635],[-4.620276927947941,50.751251220703125],[-4.557500839233398,50.78763961791997],[-4.556387901306152,50.8576393127442],[-4.569721221923771,50.904304504394645],[-4.554721832275391,50.92303848266607]]],[[[-6.314583778381291,49.913192749023494],[-6.309862136840763,49.93319320678722],[-6.275972843170166,49.92791748046881],[-6.28652811050415,49.909862518310604],[-6.314583778381291,49.913192749023494]]]]},"properties":{"ID_0":242,"ISO":"GB-CON","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":16,"NAME_2":"Cornwall","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":"Cornouailles|Cornovaglia|Cornualha|Cornualles|Cornwall and Isles of Scilly"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.163618996739387,51.31964111328125],[-0.110386997461319,51.34771347045892],[-0.11829599738121,51.37684249877941],[-0.131302997469902,51.38724136352539],[-0.126905992627087,51.408092498779354],[-0.07634399831295,51.414375305175724],[-0.05952399969101,51.39484405517584],[-0.030860999599042,51.38095474243164],[0.000276000239069,51.34575653076172],[0.013167000375745,51.32074356079107],[-0.026667999103609,51.330829620361385],[-0.046666998416185,51.315551757812614],[-0.084721997380257,51.31110000610346],[-0.101943001150971,51.29277038574224],[-0.12805700302124,51.28916168212896],[-0.163618996739387,51.31964111328125]]]},"properties":{"ID_0":242,"ISO":"GB-CRY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":17,"NAME_2":"Croydon","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-3.049704074859619,54.98513412475591],[-3.030833005905151,55.0166587829591],[-3.033334970474243,55.05250167846691],[-2.977777004241943,55.03998947143555],[-2.950556993484497,55.04055023193364],[-2.92833304405201,55.071388244628906],[-2.884166002273446,55.08137893676758],[-2.850555896758976,55.112220764160156],[-2.819998979568481,55.13972091674799],[-2.771111965179443,55.14611053466791],[-2.699444055557194,55.1772193908692],[-2.685632944107056,55.19132995605469],[-2.64083194732666,55.13222122192394],[-2.59777903556818,55.12360000610357],[-2.587500095367375,55.103050231933594],[-2.547223091125375,55.079990386963],[-2.505280017852783,55.08694076538086],[-2.481945991516113,55.039161682128906],[-2.559999942779541,55.01194000244146],[-2.56777906417841,54.986110687255916],[-2.591943979263306,54.96665954589844],[-2.565000057220459,54.95777130126959],[-2.541666984558105,54.92304992675787],[-2.559443950653076,54.91582870483398],[-2.570276975631657,54.89305114746094],[-2.59361004829401,54.88277053833019],[-2.566387891769409,54.85832977294922],[-2.56361198425293,54.82360839843749],[-2.533612012863102,54.808048248291016],[-2.5,54.8052711486817],[-2.400000095367375,54.84722137451166],[-2.361944913864135,54.810829162597656],[-2.305007934570312,54.78327178955089],[-2.327223062515259,54.72748947143565],[-2.353888988494873,54.69083023071295],[-2.344722032546997,54.68222045898449],[-2.290832042694035,54.66582870483404],[-2.279166936874276,54.65027999877923],[-2.305557012557927,54.627780914306584],[-2.285279989242497,54.58805084228515],[-2.209444046020451,54.552219390869254],[-2.191667079925537,54.531391143798885],[-2.1630539894104,54.52804946899414],[-2.155178070068359,54.4556999206544],[-2.194166898727303,54.44665908813482],[-2.244719982147217,54.44805145263671],[-2.276667118072453,54.43555068969726],[-2.29555606842041,54.417770385742244],[-2.28333306312561,54.382770538330135],[-2.347222089767456,54.35026931762689],[-2.306111097335815,54.32054901123058],[-2.311387062072754,54.281391143798935],[-2.3002769947052,54.265270233154354],[-2.309720993041992,54.243328094482415],[-2.352498054504395,54.250549316406364],[-2.40055608749384,54.2283287048341],[-2.4474999904632,54.230270385742244],[-2.457778930664062,54.23833084106445],[-2.531666040420532,54.208610534668075],[-2.576667070388737,54.19610977172862],[-2.62805700302124,54.19916915893566],[-2.671112060546875,54.15861129760742],[-2.709167003631592,54.16444015502941],[-2.733057022094726,54.183048248291016],[-2.792222976684513,54.19083023071289],[-2.83472204208374,54.16813278198242],[-2.865833044052067,54.18319320678711],[-2.879168033599854,54.201805114746094],[-2.909166097640991,54.190692901611385],[-2.919723033905029,54.15930557250988],[-2.981389045715332,54.149307250976676],[-3.003611087799072,54.160694122314446],[-2.996387958526554,54.175971984863395],[-3.053055047988834,54.19819259643566],[-3.060832977294865,54.16152954101557],[-3.075278043746948,54.154861450195256],[-3.105278968810978,54.11875152587902],[-3.157500982284432,54.08902740478527],[-3.189167022705078,54.10069274902338],[-3.2286119461059,54.09458160400385],[-3.245276927947884,54.131805419921875],[-3.236943960189819,54.155139923095646],[-3.244723081588688,54.172084808349716],[-3.215832948684692,54.17819595336925],[-3.198611974716187,54.228473663330135],[-3.225276947021484,54.24236297607433],[-3.253056049346924,54.21875],[-3.240278959274292,54.20291519165045],[-3.260277986526489,54.190418243408146],[-3.283612012863159,54.19652938842767],[-3.324167013168335,54.190692901611385],[-3.36583399772644,54.233470916748104],[-3.40416693687439,54.26374816894542],[-3.423055887222233,54.34041595458996],[-3.450834035873413,54.35541534423834],[-3.486388921737614,54.395973205566406],[-3.561944961547795,54.450973510742244],[-3.600276947021484,54.48708343505871],[-3.639722108840942,54.511806488037045],[-3.614166021347045,54.524581909179744],[-3.584166049957218,54.56402587890625],[-3.571388959884587,54.60374832153314],[-3.575834035873413,54.64402770996099],[-3.56250095367426,54.66069412231451],[-3.517498970031738,54.69347381591808],[-3.507500886917057,54.71569442749035],[-3.461389064788818,54.73986053466797],[-3.433610916137695,54.764305114746094],[-3.434722900390625,54.806251525878906],[-3.40083193778986,54.866806030273494],[-3.365278005599975,54.89291763305664],[-3.295279026031494,54.88291549682623],[-3.27027702331543,54.902637481689396],[-3.303055047988892,54.915138244628906],[-3.280277967453003,54.93624877929699],[-3.206387996673527,54.95458221435558],[-3.135833024978581,54.92791748046875],[-3.07027792930603,54.93847274780285],[-3.090276956558228,54.95652770996093],[-3.049704074859619,54.98513412475591]]],[[[-3.25527811050415,54.15291595458996],[-3.26583194732666,54.14458465576172],[-3.249166965484505,54.122638702392635],[-3.273055076599121,54.115970611572315],[-3.276945114135742,54.14374923706054],[-3.25527811050415,54.15291595458996]]]]},"properties":{"ID_0":242,"ISO":"GB-CMA","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":18,"NAME_2":"Cumbria","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.431946039199829,54.48117065429699],[-1.466667056083679,54.482769012451286],[-1.446110963821411,54.45111083984375],[-1.472221016883793,54.44805145263671],[-1.495000958442688,54.478881835937614],[-1.525555014610291,54.480831146240284],[-1.532500028610173,54.46527099609381],[-1.577777028083744,54.48971939086913],[-1.600278973579293,54.51250076293951],[-1.629999041557312,54.50833129882812],[-1.642222046852055,54.523330688476676],[-1.68175303935999,54.53115844726573],[-1.680750966072083,54.578582763671925],[-1.672726035118046,54.59161758422857],[-1.628597021102905,54.59563064575201],[-1.572435021400452,54.57256317138666],[-1.483175039291325,54.57256317138666],[-1.450077056884709,54.579582214355575],[-1.412564992904663,54.60003280639654],[-1.396942973136845,54.584720611572266],[-1.401111960411072,54.56444168090832],[-1.424721956253052,54.554988861083984],[-1.434447050094548,54.53499984741216],[-1.411944985389652,54.51250076293951],[-1.431946039199829,54.48117065429699]]]},"properties":{"ID_0":242,"ISO":"GB-DAL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":19,"NAME_2":"Darlington","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.17599701881403,53.29296112060547],[-1.160277962684575,53.285831451416016],[-1.160277962684575,53.262210845947315],[-1.195832967758122,53.232498168945305],[-1.18944597244257,53.20972061157226],[-1.190834045410156,53.1677703857423],[-1.230000972747746,53.162498474121094],[-1.243888020515385,53.15166091918957],[-1.276389002799988,53.154159545898494],[-1.309720993041992,53.14278030395508],[-1.312777042388916,53.13109970092773],[-1.291944026947021,53.08388900756841],[-1.329723000526371,53.050281524658196],[-1.321388006210213,53.0130500793457],[-1.283889055252018,52.98582839965826],[-1.282500982284546,52.946109771728516],[-1.269443988799992,52.919170379638786],[-1.271111965179387,52.898891448974666],[-1.23259699344635,52.88074111938482],[-1.262778043746891,52.861660003662166],[-1.301388025283813,52.86249923706066],[-1.370558023452702,52.83137893676763],[-1.395277023315373,52.789989471435604],[-1.427222013473397,52.78387832641607],[-1.474722981452942,52.74860000610357],[-1.532778024673405,52.74972152709966],[-1.543334960937443,52.73360061645502],[-1.534999966621285,52.70610809326177],[-1.583055019378605,52.685001373291016],[-1.639999985694828,52.685001373291016],[-1.645833969116097,52.70666885375988],[-1.700348973274231,52.726200103759766],[-1.672500014305115,52.758331298828125],[-1.629166960716191,52.77222061157232],[-1.615000009536743,52.79804992675787],[-1.590831995010376,52.810829162597706],[-1.630555033683777,52.84111022949219],[-1.720834016799927,52.84527969360357],[-1.754999995231572,52.86610031127941],[-1.823889017105103,52.875549316406364],[-1.840831995010319,52.90472030639648],[-1.84027898311615,52.9244384765625],[-1.816944956779423,52.92998886108404],[-1.812222003936768,52.96139144897461],[-1.75777804851532,52.98249816894537],[-1.74555504322052,53],[-1.747499942779484,53.022220611572266],[-1.763888955116272,53.03194046020508],[-1.776111960411015,53.07083129882818],[-1.771667957305851,53.09027099609381],[-1.799445986747742,53.118610382080135],[-1.798889994621277,53.14165878295904],[-1.824167013168335,53.1630592346192],[-1.856667995452824,53.17638015747075],[-1.932224035263062,53.194999694824276],[-1.952499032020512,53.2138786315918],[-1.976848959922791,53.207370758056754],[-1.970834016799927,53.23027038574224],[-1.990556001663208,53.241661071777344],[-1.995555996894836,53.26416015624999],[-1.998056054115296,53.33583068847667],[-2.016736030578613,53.370479583740234],[-1.981389045715275,53.39833068847662],[-2.011667013168335,53.41249847412121],[-2.009166955947819,53.4275016784668],[-1.982499003410283,53.443889617919865],[-1.963611960411015,53.49472045898432],[-1.918890953063908,53.50083160400385],[-1.897222995758,53.53305053710949],[-1.870833039283696,53.532218933105526],[-1.816110968589726,53.51610946655279],[-1.795554995536747,53.496940612793026],[-1.787222981452828,53.46860885620123],[-1.731112957000676,53.441108703613395],[-1.734166979789734,53.41083145141607],[-1.701665997505188,53.40361022949218],[-1.6905579566955,53.38750076293945],[-1.646389961242676,53.3766593933106],[-1.650277972221317,53.35194015502941],[-1.592499971389771,53.337779998779354],[-1.582777023315373,53.326389312744254],[-1.610002040863037,53.30582809448242],[-1.570556998252869,53.3049888610841],[-1.531389951705933,53.28971862792969],[-1.458889961242562,53.306938171386776],[-1.43194401264185,53.32360839843761],[-1.393610954284554,53.32527160644537],[-1.380835056304932,53.306938171386776],[-1.332499027252197,53.29888153076172],[-1.31138896942133,53.3138885498048],[-1.281944990158081,53.2994384765625],[-1.242499947547913,53.290828704834034],[-1.17599701881403,53.29296112060547]],[[-1.420825958251953,52.852661132812614],[-1.397094011306706,52.89257049560541],[-1.401407957077026,52.909832000732365],[-1.45318603515625,52.93463897705083],[-1.48662698268879,52.93787765502923],[-1.538403034210148,52.89796447753906],[-1.545956015586853,52.876392364502],[-1.494178056716862,52.84726715087896],[-1.431610941886902,52.84187316894531],[-1.420825958251953,52.852661132812614]]]},"properties":{"ID_0":242,"ISO":"GB-DBY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":20,"NAME_2":"Derbyshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.420825958251953,52.852661132812614],[-1.431610941886902,52.84187316894531],[-1.494178056716862,52.84726715087896],[-1.545956015586853,52.876392364502],[-1.538403034210148,52.89796447753906],[-1.48662698268879,52.93787765502923],[-1.45318603515625,52.93463897705083],[-1.401407957077026,52.909832000732365],[-1.397094011306706,52.89257049560541],[-1.420825958251953,52.852661132812614]]]},"properties":{"ID_0":242,"ISO":"GB-DER","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":21,"NAME_2":"Derby","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.124557971954289,50.34541702270508],[-4.100728034973088,50.36006164550781],[-4.038702964782658,50.378669738769645],[-4.041804790496826,50.39934539794921],[-4.124504089355469,50.43552398681635],[-4.154482841491642,50.43552398681635],[-4.184873104095402,50.42597198486339],[-4.201387882232609,50.45569610595714],[-4.23097801208496,50.470417022705135],[-4.217779159545842,50.494720458984375],[-4.189723014831543,50.494438171386825],[-4.216945171356144,50.533611297607536],[-4.270555019378662,50.54249954223633],[-4.273055076599121,50.56499099731445],[-4.301390171051025,50.58777999877941],[-4.296113014221191,50.62554931640625],[-4.335000038146972,50.64278030395508],[-4.346944808959961,50.6786003112794],[-4.360834121704045,50.69250106811534],[-4.362500190734863,50.71944046020502],[-4.37805700302124,50.74166107177729],[-4.376945018768311,50.764438629150504],[-4.412777900695744,50.76055145263672],[-4.440556049346924,50.77972030639648],[-4.450000762939453,50.799438476562614],[-4.439445972442627,50.841110229492244],[-4.417778015136719,50.85499954223644],[-4.455832958221436,50.90166091918951],[-4.458333015441895,50.92110061645508],[-4.554721832275391,50.92303848266607],[-4.533610820770264,50.965415954589844],[-4.535276889800969,50.99375152587902],[-4.522500038146973,51.02152633667003],[-4.470277786254883,51.021804809570426],[-4.425833225250244,51.01430511474615],[-4.389165878295842,50.99430465698242],[-4.343610763549805,50.98930740356457],[-4.309165954589844,50.99514007568354],[-4.25916576385498,51.03819274902355],[-4.23638916015625,51.04347229003912],[-4.226387977600098,51.062362670898494],[-4.181944847106877,51.05625152587896],[-4.154167175292969,51.0801391601563],[-4.215277194976807,51.07680511474609],[-4.221389770507812,51.11680603027355],[-4.25750017166132,51.1470832824707],[-4.215833187103271,51.150138854980526],[-4.209722995758057,51.17208480834961],[-4.220833778381348,51.1845817565919],[-4.201943874359074,51.2006950378418],[-4.174722194671631,51.19847106933588],[-4.121943950653076,51.21236038208008],[-4.073057174682617,51.21791839599604],[-4.050833225250244,51.20819473266607],[-4.029167175292969,51.21625137329113],[-3.949721097946167,51.2212486267091],[-3.924721002578679,51.23208236694347],[-3.881387948989811,51.22930526733398],[-3.839723110198918,51.23513793945312],[-3.770277976989746,51.237915039062614],[-3.714181900024414,51.23208236694347],[-3.72416710853571,51.1786003112793],[-3.770277976989746,51.17332839965831],[-3.821110010147094,51.17721939086914],[-3.825834035873413,51.14194107055664],[-3.774724960327035,51.111110687255916],[-3.750554084777775,51.10694122314453],[-3.71555590629572,51.08304977416998],[-3.678333044052124,51.08250045776373],[-3.636389970779362,51.06222152709961],[-3.596111059188843,51.06304931640619],[-3.588057041168212,51.054721832275504],[-3.607778072357178,51.02444076538086],[-3.59972095489502,51.011940002441406],[-3.528887987136841,51.00722122192394],[-3.50805401802063,51.03054809570318],[-3.474999904632568,51.03610992431652],[-3.444443941116333,51.0263786315918],[-3.422224044799748,51.02944183349621],[-3.373888015747013,51.008609771728516],[-3.370556116104069,50.98083114624029],[-3.321388959884643,50.978881835937614],[-3.268332958221378,50.94749069213873],[-3.221667051315308,50.943889617920036],[-3.157222032546997,50.948608398437436],[-3.178056001663208,50.91471862792968],[-3.147500038146973,50.896938323974666],[-3.089998960494995,50.90805053710943],[-3.047499895095768,50.90583038330089],[-3.048333883285466,50.87778091430664],[-2.962778091430664,50.8505592346192],[-2.948494911193791,50.82255172729498],[-2.882221937179565,50.797218322753906],[-2.946666955947876,50.770828247070426],[-2.932499885559025,50.761940002441406],[-2.949167013168221,50.73416137695324],[-2.942807912826538,50.719306945800895],[-3.018611907958984,50.6981925964356],[-3.083055019378662,50.701248168945305],[-3.095278024673405,50.68486022949219],[-3.193054914474487,50.684028625488395],[-3.263056039810181,50.67124938964855],[-3.304721117019596,50.628749847412166],[-3.368056058883667,50.60958480834961],[-3.408611059188842,50.61125183105469],[-3.416944026947021,50.63069534301769],[-3.451387882232666,50.67375183105462],[-3.4663889408111,50.66097259521479],[-3.451387882232666,50.648471832275504],[-3.444721937179565,50.5915260314942],[-3.466943025588989,50.57708358764654],[-3.494720935821533,50.543472290039176],[-3.510278940200806,50.50804138183594],[-3.587133884429874,50.50906753540039],[-3.609673976898193,50.49882125854492],[-3.642460107803345,50.46398544311535],[-3.648608922958317,50.433246612548885],[-3.61991906166071,50.406608581543026],[-3.512501001358032,50.37486267089855],[-3.516388893127441,50.34736251831055],[-3.575834035873413,50.324306488037166],[-3.608056068420353,50.31958389282232],[-3.643610954284611,50.28930664062505],[-3.654721021652221,50.2595825195313],[-3.658056020736695,50.2176399230957],[-3.682498931884765,50.221248626708984],[-3.719166040420532,50.20208358764654],[-3.77361011505127,50.225692749023544],[-3.786945104598999,50.209026336669865],[-3.824166059494019,50.21736145019531],[-3.859723091125488,50.24263763427746],[-3.862500905990487,50.264862060546875],[-3.879165887832642,50.28430557250982],[-3.960278034210205,50.30430603027337],[-3.993053913116398,50.30680465698248],[-4.03916597366333,50.29264068603526],[-4.070831775665283,50.30319595336925],[-4.083611011505127,50.31708145141607],[-4.111389160156193,50.31541824340831],[-4.124557971954289,50.34541702270508]]]},"properties":{"ID_0":242,"ISO":"GB-DEV","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":22,"NAME_2":"Devon","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.942807912826538,50.719306945800895],[-2.949167013168221,50.73416137695324],[-2.932499885559025,50.761940002441406],[-2.946666955947876,50.770828247070426],[-2.882221937179565,50.797218322753906],[-2.948494911193791,50.82255172729498],[-2.920279026031494,50.841110229492244],[-2.788888931274357,50.85472106933605],[-2.75888895988453,50.867221832275504],[-2.714724063873177,50.86804962158209],[-2.653054952621346,50.88666915893565],[-2.614444017410221,50.88555145263677],[-2.616111993789559,50.911380767822266],[-2.595000982284489,50.95750045776367],[-2.598889112472534,50.97639083862305],[-2.549998998641911,50.97861099243175],[-2.541944980621338,51.0019416809082],[-2.495832920074406,50.99528121948242],[-2.47055792808527,50.96277999877941],[-2.441112995147705,50.95277023315429],[-2.432497978210449,50.970550537109375],[-2.40055608749384,50.9652709960938],[-2.337776899337769,50.98305892944336],[-2.370556116104126,50.9988899230957],[-2.364167928695621,51.016391754150504],[-2.324166059493962,51.04222106933605],[-2.335279941558838,51.06472015380871],[-2.321666002273502,51.08332824707031],[-2.238610029220581,51.07138824462902],[-2.194166898727303,51.04388046264643],[-2.144166946411132,50.98611068725585],[-2.123333930969238,50.98110961914068],[-2.099168062210083,50.955829620361385],[-2.058888912200928,50.95999908447276],[-2.033334970474186,50.97166061401373],[-1.996111989021301,50.97748947143566],[-1.970278024673462,50.99277114868163],[-1.950001001358032,50.98833084106457],[-1.907220959663391,50.943889617920036],[-1.879721045494023,50.92472076416027],[-1.836946964263859,50.93360900878911],[-1.804999947547912,50.92943954467768],[-1.811388015747013,50.905548095703125],[-1.839166045188847,50.89139175415045],[-1.832777976989632,50.86582946777338],[-1.805701971054077,50.8677215576173],[-1.796110987663212,50.83166885375982],[-1.809445977210999,50.802219390869084],[-1.786492943763676,50.76871871948248],[-1.735000967979374,50.77804946899414],[-1.734166979789734,50.75444030761712],[-1.676666021347046,50.75444030761712],[-1.671587944030705,50.73541641235362],[-1.719720959663391,50.73541641235362],[-1.744721055030709,50.713748931884766],[-1.79193997383112,50.719028472900504],[-1.816418051719666,50.738227844238224],[-1.870257973670959,50.75146865844737],[-1.920369982719308,50.75004577636713],[-1.941753029823303,50.76559066772455],[-1.994711041450443,50.770004272460994],[-2.006184101104679,50.762943267822266],[-2.020304918289127,50.72851943969732],[-2.037964105606022,50.71763992309576],[-2.021944046020451,50.681251525878906],[-1.974166035652161,50.66597366333019],[-1.932499051094055,50.63069534301769],[-1.95749902725214,50.616527557373104],[-1.959167003631592,50.59069442749018],[-2.026387929916325,50.58847045898449],[-2.057501077651978,50.57652664184582],[-2.065277099609318,50.59069442749018],[-2.106944084167423,50.59652709960937],[-2.129722118377686,50.610694885253956],[-2.205833911895752,50.622081756591854],[-2.243609905242863,50.61569595336914],[-2.324166059493962,50.62458419799816],[-2.337498903274536,50.631805419921875],[-2.423612117767277,50.63569259643566],[-2.452500104904174,50.613471984863395],[-2.465832948684579,50.592082977294915],[-2.461945056915226,50.571804046630795],[-2.426944017410221,50.56819534301758],[-2.414721012115479,50.54902648925781],[-2.457499980926514,50.51291656494152],[-2.44861197471613,50.55875015258795],[-2.506387948989754,50.598194122314446],[-2.604721069335938,50.65013885498047],[-2.738610982894897,50.70236206054682],[-2.79249906539917,50.71791839599615],[-2.910278081893864,50.73374938964849],[-2.942807912826538,50.719306945800895]]]},"properties":{"ID_0":242,"ISO":"GB-DOR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":23,"NAME_2":"Dorset","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.68175303935999,54.53115844726573],[-1.724722027778568,54.52499008178711],[-1.766945004463196,54.52861022949224],[-1.787222981452828,54.481670379638615],[-1.824445009231567,54.5027809143067],[-1.850833058357125,54.48054885864258],[-1.930557012557983,54.45471954345703],[-1.956110954284668,54.45444107055663],[-2.006944894790593,54.47249984741222],[-2.045556068420353,54.47972106933594],[-2.099721908569336,54.46804809570307],[-2.138889074325562,54.44971084594732],[-2.155178070068359,54.4556999206544],[-2.1630539894104,54.52804946899414],[-2.191667079925537,54.531391143798885],[-2.209444046020451,54.552219390869254],[-2.285279989242497,54.58805084228515],[-2.305557012557927,54.627780914306584],[-2.279166936874276,54.65027999877923],[-2.290832042694035,54.66582870483404],[-2.344722032546997,54.68222045898449],[-2.353888988494873,54.69083023071295],[-2.327223062515259,54.72748947143565],[-2.305007934570312,54.78327178955089],[-2.272500991821289,54.792221069335994],[-2.211390018463135,54.77861022949219],[-2.191389083862305,54.80028152465825],[-2.160278081893921,54.80360031127941],[-2.133055925369263,54.82194137573236],[-2.129724025726318,54.836940765380916],[-2.082222938537598,54.830551147460994],[-1.993056058883667,54.86471939086914],[-1.920279026031437,54.84498977661144],[-1.904167056083679,54.83415985107427],[-1.866665959358215,54.84833145141601],[-1.820001006126347,54.90472030639643],[-1.70114004611969,54.894161224365284],[-1.595293998718205,54.89270019531256],[-1.560006022453308,54.879650115966854],[-1.552342057228032,54.85789871215826],[-1.523211956024113,54.831798553466854],[-1.506346940994263,54.7999000549317],[-1.440425038337708,54.79700088500976],[-1.411224007606506,54.80133056640631],[-1.389835000038033,54.860801696777344],[-1.351943969726506,54.86963653564459],[-1.324722051620427,54.83736038208019],[-1.29694402217865,54.76569366455083],[-1.24530100822443,54.72541809082037],[-1.294167995452824,54.71139144897461],[-1.325834035873413,54.68222045898449],[-1.333611011505127,54.64749908447277],[-1.379444003105163,54.63888931274414],[-1.38845598697651,54.62672805786138],[-1.412564992904663,54.60003280639654],[-1.450077056884709,54.579582214355575],[-1.483175039291325,54.57256317138666],[-1.572435021400452,54.57256317138666],[-1.628597021102905,54.59563064575201],[-1.672726035118046,54.59161758422857],[-1.680750966072083,54.578582763671925],[-1.68175303935999,54.53115844726573]]]},"properties":{"ID_0":242,"ISO":"GB-DUR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":24,"NAME_2":"Durham","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":"County Durham"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.39266499876976,51.49367141723633],[-0.370314002037048,51.517177581787166],[-0.399996995925846,51.52495956420898],[-0.367751985788288,51.54844665527355],[-0.32547599077219,51.54936599731445],[-0.293960005044937,51.52960205078125],[-0.236594006419125,51.52651214599621],[-0.244496002793255,51.494441986083984],[-0.359903007745743,51.488414764404354],[-0.39266499876976,51.49367141723633]]]},"properties":{"ID_0":242,"ISO":"GB-EAL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":25,"NAME_2":"Ealing","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.296339988708496,53.74236297607422],[-0.309246003627663,53.76496505737304],[-0.341006010770798,53.78765106201183],[-0.386379003524723,53.7887840270996],[-0.426079988479557,53.77403640747082],[-0.444227993488255,53.7490844726563],[-0.449739009141865,53.71374893188488],[-0.488611996173859,53.71625137329113],[-0.55138897895813,53.70847320556646],[-0.60527902841568,53.73014068603515],[-0.669167995452767,53.72236251831048],[-0.700277984142303,53.68819046020519],[-0.766933023929482,53.658145904541016],[-0.843985974788666,53.613910675048885],[-0.860692024230957,53.612518310546925],[-0.860000014305058,53.63249969482422],[-0.94138997793192,53.656940460205014],[-0.996388018131199,53.65999984741205],[-1.073925971984863,53.647708892822315],[-1.109722018241882,53.675548553466854],[-1.093862056732178,53.713638305664176],[-1.020555973052979,53.69472122192383],[-0.982779026031494,53.70249938964844],[-0.942499995231515,53.719989776611385],[-0.963611006736755,53.74304962158214],[-0.93416702747345,53.76832962036127],[-0.920278012752476,53.807781219482536],[-0.941111981868687,53.83554840087902],[-0.940470993518829,53.86803817749035],[-0.939999997615814,53.89194107055664],[-0.920831978321075,53.94388961791998],[-0.927909016609192,53.97192001342779],[-0.889317989349365,54.007209777832145],[-0.73388797044754,54.02222061157226],[-0.70194399356842,54.00833129882823],[-0.668332993984166,54.007221221923885],[-0.665557026863098,54.024990081787166],[-0.640833020210266,54.03221893310541],[-0.641111016273499,54.05887985229492],[-0.604166984558105,54.06776809692394],[-0.57083398103714,54.08472061157238],[-0.513333976268768,54.083328247070256],[-0.446666985750198,54.107219696045036],[-0.448610991239491,54.12360000610357],[-0.420278996229172,54.138610839843864],[-0.415832996368351,54.162769317626896],[-0.37389001250267,54.165550231933594],[-0.354999989271164,54.14944076538085],[-0.294443011283818,54.13610839843761],[-0.222778007388001,54.133049011230526],[-0.196943998336792,54.155754089355575],[-0.131945997476578,54.136528015136825],[-0.098610997200012,54.13124847412109],[-0.075277000665551,54.113471984863224],[-0.104167997837067,54.10319519042969],[-0.168610006570816,54.09763717651372],[-0.211389005184174,54.06069564819347],[-0.212498992681503,54.00485992431646],[-0.155833005905151,53.90236282348644],[-0.131945997476578,53.874027252197266],[-0.024167999625149,53.77847290039068],[0.041942998767013,53.727359771728516],[0.118611000478325,53.661804199218686],[0.130278006196136,53.64652633666998],[0.125277996063289,53.62236022949219],[0.065833002328873,53.64347076416027],[0.031389001756963,53.647361755371094],[-0.054168000817299,53.6290283203125],[-0.106944002211094,53.635692596435604],[-0.166943997144699,53.671249389648494],[-0.172500997781754,53.679584503173935],[-0.227501004934311,53.70791625976574],[-0.244721993803978,53.732360839843864],[-0.296339988708496,53.74236297607422]]]},"properties":{"ID_0":242,"ISO":"GB-ERY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":26,"NAME_2":"East Riding of Yorkshire","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"East Riding, East Yorkshire"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.128588005900383,50.88260269165044],[-0.116944000124818,50.92694091796881],[-0.093888998031616,50.94944000244146],[-0.105555996298733,50.970279693603516],[-0.067501001060009,50.993328094482365],[-0.044167000800371,50.98083114624029],[-0.015832999721113,50.981941223144645],[-0.006665999535414,51.02249908447271],[0.019168000668344,51.05054092407238],[-0.021111000329142,51.090549468994254],[0.01472099963587,51.0980491638183],[0.036667000502405,51.11138153076177],[0.021364999935145,51.135879516601676],[0.06278099864727,51.135879516601676],[0.132499992847499,51.14416885375988],[0.154384002089614,51.13933944702154],[0.140560999512729,51.11169052124029],[0.221388995647487,51.12194061279308],[0.266943991184348,51.11027908325195],[0.331389009952545,51.119998931884766],[0.335557013750133,51.10694122314453],[0.401111990213508,51.081939697265625],[0.416667014360485,51.06528091430664],[0.474721997976303,51.04777908325201],[0.479721993208045,51.03026962280279],[0.536943972110805,51.01832962036133],[0.569723010063228,51],[0.658056974411011,51.013889312744254],[0.69583398103714,50.99554824829107],[0.763333022594509,50.997219085693416],[0.786666989326477,50.98833084106457],[0.821111023426056,50.944160461425895],[0.866666972637233,50.943889617920036],[0.867712974548283,50.921249389648494],[0.792499005794639,50.93319320678722],[0.773055970668906,50.93180465698248],[0.728609979152736,50.91263961792003],[0.667500019073486,50.871250152588004],[0.586390018463135,50.8531951904298],[0.532500028610343,50.84958267211914],[0.48027798533451,50.837150573730526],[0.41694501042366,50.830696105957145],[0.357499003410396,50.81347274780268],[0.32916700840002,50.784305572509766],[0.302500993013496,50.774581909179744],[0.241944000124988,50.73374938964849],[0.218057006597633,50.736251831054744],[0.154165998101234,50.757637023925895],[0.120277002453804,50.757915496826286],[0.066389001905918,50.78208160400402],[0.017590999603328,50.78486251831049],[-0.011202000081539,50.8243522644043],[-0.05392400175333,50.84808731079107],[-0.128588005900383,50.88260269165044]]]},"properties":{"ID_0":242,"ISO":"GB-ESX","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":27,"NAME_2":"East Sussex","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.029931999742985,51.60110855102545],[-0.060770999640113,51.6061897277832],[-0.130517005920296,51.60783386230469],[-0.148900002241135,51.59728622436529],[-0.16264800727356,51.566417694091854],[-0.204728007316589,51.551540374755916],[-0.243687003850937,51.57310104370123],[-0.266775012016239,51.60105514526367],[-0.293592989444676,51.6384162902832],[-0.25416699051857,51.644168853759766],[-0.245278000831604,51.667499542236385],[-0.217500001192093,51.65415954589844],[-0.173332005739212,51.6663818359375],[-0.148056998848858,51.68915939331055],[-0.011218000203371,51.67724990844738],[-0.002580000087562,51.6466522216798],[-0.029931999742985,51.60110855102545]]]},"properties":{"ID_0":242,"ISO":"GB-ENF","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":28,"NAME_2":"Enfield","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.547411978244895,51.51680374145513],[0.544757008552608,51.52919769287103],[0.481191992759818,51.54315185546874],[0.355614006519374,51.5571060180664],[0.31991100311285,51.5579986572265],[0.30833300948143,51.57889175415033],[0.28444600105297,51.58388900756836],[0.231389999389762,51.629169464111385],[0.148513004183826,51.61749649047857],[0.112222999334449,51.61555099487305],[0.083888001739979,51.601100921630916],[0.02760099992156,51.62652587890625],[-0.002580000087562,51.6466522216798],[-0.011218000203371,51.67724990844738],[3.98e-13,51.733119964599666],[0.035555001348314,51.76832962036133],[0.108332000672874,51.77750015258789],[0.158053994178829,51.790550231933594],[0.173057004809493,51.82527160644531],[0.173611000180301,51.84833145141607],[0.199166998267287,51.86582946777355],[0.189999997615928,51.890270233154354],[0.141666993498859,51.88388824462896],[0.110831998288745,51.97360992431635],[0.082501001656112,51.98332977294933],[0.08055599778902,52.00249099731457],[0.108332000672874,52.027500152587834],[0.106389999389705,52.054988861083984],[0.139166995883045,52.04193878173828],[0.193610996007976,52.05693817138683],[0.206668004393578,52.08166885375971],[0.255832999944744,52.07693862915039],[0.286664992570934,52.0849990844726],[0.325278997421265,52.07416915893566],[0.365554988384247,52.04417037963873],[0.408932000398693,52.05936050415039],[0.489167004823685,52.069160461425895],[0.524999022483882,52.0483283996582],[0.636111974716243,52.07500076293945],[0.678332984447479,52.07722091674815],[0.701112985611075,52.06750106811535],[0.715255022049007,52.04413986206054],[0.721665978431815,52.01194000244152],[0.787778973579464,51.954719543457145],[0.865832984447479,51.9594383239746],[0.914444029331264,51.96833038330078],[0.96805602312088,51.963878631591854],[1.019443988800049,51.95055007934576],[1.058055043220634,51.94908523559582],[1.136389017105159,51.94041824340825],[1.171388983726615,51.94819259643555],[1.196944952011108,51.94069290161144],[1.243054986000175,51.94847106933594],[1.267500996589717,51.94541549682623],[1.270833015442008,51.92874908447277],[1.239089012145996,51.88124847412121],[1.259166002273616,51.8835334777832],[1.290277957916316,51.86319351196294],[1.234166026115417,51.81735992431652],[1.130831956863517,51.77624893188488],[1.045833945274353,51.76930618286133],[1.0302770137788,51.795696258545036],[0.995278000831661,51.81458282470703],[0.944166004657859,51.810138702392635],[0.900833010673523,51.791526794433594],[0.890832006931362,51.76791763305663],[0.841389000415916,51.738471984863274],[0.763611018657684,51.73902893066406],[0.713611006736812,51.71513748168945],[0.756388008594513,51.710140228271484],[0.792499005794639,51.71763992309576],[0.859166026115417,51.71791839599615],[0.901944994926453,51.745693206787166],[0.930276989936772,51.7473602294923],[0.948055028915519,51.73458480834961],[0.941944003105164,51.69680404663085],[0.949723005294743,51.68291854858404],[0.931389987468776,51.630416870117244],[0.948055028915519,51.60652923583989],[0.918610990047455,51.585693359375],[0.828007996082363,51.54264068603521],[0.820719003677482,51.54780197143549],[0.685837984085197,51.57725906372076],[0.648630976676998,51.56950759887706],[0.634675979614371,51.54315185546874],[0.644990980625209,51.536804199218864],[0.617500007152614,51.51430511474621],[0.570833027362823,51.508193969726676],[0.547411978244895,51.51680374145513]]]},"properties":{"ID_0":242,"ISO":"GB-ESS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":29,"NAME_2":"Essex","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.62972092628479,51.60569381713873],[-2.66444802284235,51.613750457763786],[-2.675554037094059,51.637771606445305],[-2.659168004989567,51.673049926757805],[-2.676944971084537,51.68915939331055],[-2.685276985168457,51.7269401550293],[-2.667778015136719,51.74000167846691],[-2.68388891220087,51.76554870605469],[-2.676778078079167,51.78963088989269],[-2.647500991821289,51.82221984863281],[-2.619997978210449,51.8377799987793],[-2.550554990768319,51.861660003662166],[-2.519721031188965,51.8588905334472],[-2.505834102630558,51.88000106811535],[-2.470279932022038,51.88277053833008],[-2.434444904327393,51.896659851074276],[-2.433888912200928,51.91555023193365],[-2.460278987884521,51.94778060913086],[-2.481389999389648,51.95804977417003],[-2.460834980010986,52.01971817016601],[-2.42944693565363,51.99443817138672],[-2.393331050872803,51.99472045898443],[-2.351562023162785,52.01398468017583],[-2.341665983200016,52.01499938964838],[-2.307776927947998,51.97360992431635],[-2.234168052673283,51.96416091918956],[-2.208055973052979,51.99082946777344],[-2.174724102020264,51.98778152465832],[-2.176332950592041,52.007350921630916],[-2.164720058441048,52.04055023193371],[-2.114902973174992,52.04222106933605],[-2.143285036086979,52.006328582763615],[-2.07166600227356,52.007770538330135],[-2.030833005905151,52],[-1.970834016799927,52.02611160278332],[-1.904167056083679,52.03139114379888],[-1.878888964652901,52.028049468994254],[-1.843611001968384,52.007770538330135],[-1.827777981758004,52.034439086914176],[-1.863332033157349,52.06277084350597],[-1.843055009841919,52.07305145263672],[-1.813889026641846,52.068889617919865],[-1.778331995010376,52.098880767822266],[-1.75777804851532,52.10583114624035],[-1.715832948684636,52.0849990844726],[-1.706666946411076,52.06528091430663],[-1.674445986747685,52.031108856201286],[-1.612221002578735,52.02666091918951],[-1.652547955513,51.983989715576286],[-1.656944990158081,51.95915985107421],[-1.618888020515385,51.94499969482416],[-1.612777948379517,51.93165969848638],[-1.64611196517933,51.90999984741205],[-1.63749897480011,51.893878936767635],[-1.657778978347778,51.88304901123047],[-1.675832033157349,51.855270385742244],[-1.679167032241764,51.797218322753906],[-1.709167003631535,51.77499008178711],[-1.692499041557312,51.76250076293951],[-1.676110029220581,51.70471954345703],[-1.647222042083683,51.68638992309576],[-1.683266997337284,51.67866897583008],[-1.701110005378723,51.68111038208019],[-1.724444031715336,51.66276931762707],[-1.749668955802917,51.65884017944336],[-1.777338027954045,51.660419464111385],[-1.79583299159998,51.694438934326286],[-1.832777976989632,51.656658172607536],[-1.866387963294983,51.673328399658196],[-1.887222051620483,51.66249847412121],[-1.940000057220402,51.66305923461914],[-1.94861102104187,51.63999938964855],[-1.988055944442749,51.64582824707037],[-2.057219982147217,51.664161682128956],[-2.101109981536752,51.620281219482365],[-2.148890018463078,51.58943939208996],[-2.191667079925537,51.59833145141613],[-2.240000009536686,51.579158782959034],[-2.271603107452279,51.57722091674805],[-2.3002769947052,51.60667037963873],[-2.3438880443573,51.60860061645519],[-2.36499905586237,51.594718933105526],[-2.384166955947819,51.603050231933594],[-2.37916707992548,51.635829925537166],[-2.444998979568368,51.64833068847662],[-2.478888034820557,51.63916015625005],[-2.487222909927254,51.65972137451172],[-2.544723033905029,51.67605972290044],[-2.575277090072632,51.649028778076286],[-2.583611965179443,51.62930679321289],[-2.62972092628479,51.60569381713873]]]},"properties":{"ID_0":242,"ISO":"GB-GLS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":30,"NAME_2":"Gloucestershire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.025491999462304,51.438079833984375],[0.013474999926984,51.465690612792905],[-0.023135000839716,51.4887351989746],[-0.004727000370622,51.479656219482536],[0.019481999799609,51.50265884399414],[0.033514998853207,51.49438095092785],[0.073413997888565,51.49655532836914],[0.097815997898692,51.5101890563966],[0.119151003658828,51.51191329956066],[0.121247999370098,51.476787567138786],[0.087980002164898,51.465873718261655],[0.080312997102794,51.431617736816456],[0.025491999462304,51.438079833984375]]]},"properties":{"ID_0":242,"ISO":"GB-GRE","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":31,"NAME_2":"Greenwich","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.011008000001254,51.543540954589844],[-0.066616997122765,51.52652359008795],[-0.072025001049042,51.51602935791027],[-0.087598003447056,51.528736114501946],[-0.071289002895298,51.54322433471674],[-0.094132997095585,51.56012344360357],[-0.089492000639382,51.5714225769044],[-0.052708998322487,51.5736465454101],[-0.010583999566734,51.55247879028325],[-0.011008000001254,51.543540954589844]]]},"properties":{"ID_0":242,"ISO":"GB-HCK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":32,"NAME_2":"Hackney","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.099165916442757,53.285758972168026],[-3.122499942779484,53.304862976074276],[-3.12860989570612,53.328193664550895],[-3.171942949295044,53.354026794433594],[-3.200278043746891,53.38569259643566],[-3.169167041778508,53.40319442749029],[-3.099165916442757,53.422084808349666],[-3.074166059493962,53.43486022949219],[-3.038611888885441,53.44124984741211],[-3.015834093093815,53.410137176513615],[-2.998054027557316,53.37041854858409],[-2.924989938735962,53.30680465698242],[-2.944998025894165,53.2894401550293],[-2.974445104598999,53.29666137695318],[-3.02527904510498,53.29360961914068],[-3.066668033599854,53.30554962158203],[-3.099165916442757,53.285758972168026]]]},"properties":{"ID_0":242,"ISO":"GB-HAL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":33,"NAME_2":"Halton","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.213793992996216,51.4719123840332],[-0.236507996916771,51.48230743408203],[-0.244496002793255,51.494441986083984],[-0.236594006419125,51.52651214599621],[-0.211057007312775,51.522098541259766],[-0.19922100007534,51.490581512451115],[-0.168094992637634,51.47075271606445],[-0.188695996999684,51.4587020874024],[-0.213793992996216,51.4719123840332]]]},"properties":{"ID_0":242,"ISO":"GB-HMF","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":34,"NAME_2":"Hammersmith and Fulham","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.320162057876587,50.851249694824276],[-1.307240962982121,50.891723632812614],[-1.30865204334259,50.92132568359369],[-1.369269967079163,50.945293426513665],[-1.425657987594604,50.94106292724615],[-1.446804046630859,50.925556182861385],[-1.450752019882202,50.903751373291016],[-1.413611054420471,50.88430404663091],[-1.307500958442574,50.81458282470703],[-1.342499017715454,50.78541564941412],[-1.376943945884648,50.78513717651373],[-1.414723038673344,50.76708221435547],[-1.45861005783081,50.76180648803711],[-1.527498960494995,50.74708175659191],[-1.564165949821415,50.707916259765625],[-1.585278034210205,50.719306945800895],[-1.671587944030705,50.73541641235362],[-1.676666021347046,50.75444030761712],[-1.734166979789734,50.75444030761712],[-1.735000967979374,50.77804946899414],[-1.786492943763676,50.76871871948248],[-1.809445977210999,50.802219390869084],[-1.796110987663212,50.83166885375982],[-1.805701971054077,50.8677215576173],[-1.832777976989632,50.86582946777338],[-1.839166045188847,50.89139175415045],[-1.811388015747013,50.905548095703125],[-1.804999947547912,50.92943954467768],[-1.836946964263859,50.93360900878911],[-1.879721045494023,50.92472076416027],[-1.907220959663391,50.943889617920036],[-1.950001001358032,50.98833084106457],[-1.92641901969904,50.999519348144645],[-1.837499976158085,51.00915908813471],[-1.810832023620548,50.99277114868163],[-1.740556955337468,50.97805023193365],[-1.698055982589722,50.97499847412115],[-1.65499901771534,50.950271606445426],[-1.610558032989502,50.95972061157238],[-1.599722981452885,50.9769401550293],[-1.621389985084534,50.99472045898449],[-1.59666895866394,51.01749038696295],[-1.621947050094548,51.03416061401367],[-1.620278000831604,51.0541610717774],[-1.631389021873474,51.08610916137701],[-1.621947050094548,51.108329772949276],[-1.65277898311615,51.12638854980469],[-1.647778034210148,51.14999008178711],[-1.65499901771534,51.17139053344732],[-1.685279011726379,51.20528030395508],[-1.696388006210327,51.23666000366222],[-1.628057003021183,51.234161376953125],[-1.579723000526428,51.257770538330135],[-1.538334012031441,51.24499893188482],[-1.539168000221252,51.275550842285156],[-1.519999027252197,51.30250167846691],[-1.52666699886322,51.32971954345703],[-1.486946940422058,51.332500457763665],[-1.433055996894836,51.33472061157238],[-1.436666011810246,51.35248947143549],[-1.399446010589599,51.37054824829113],[-1.245278000831547,51.368888854980526],[-1.120000958442631,51.35472106933594],[-1.111111998558044,51.37137985229492],[-1.060279011726379,51.37332916259777],[-1.031944036483708,51.35472106933594],[-0.996388018131199,51.36222076416021],[-0.9666650295257,51.357219696045036],[-0.919166028499603,51.36027908325207],[-0.886389970779362,51.35139083862305],[-0.819719970226288,51.348880767822266],[-0.765276014804726,51.33137893676758],[-0.729722023010254,51.29166030883789],[-0.731109976768494,51.24388885498047],[-0.748332977294922,51.23167037963873],[-0.799444973468724,51.239170074463],[-0.829167008399906,51.226100921630916],[-0.839999973773899,51.203891754150504],[-0.824445009231511,51.18278121948242],[-0.823611021041813,51.15166091918945],[-0.79083198308939,51.1469383239746],[-0.779999971389714,51.12360000610346],[-0.746945023536682,51.11138153076177],[-0.753660023212376,51.08871078491211],[-0.774721026420479,51.08110809326183],[-0.788056015968266,51.06055068969732],[-0.828611016273442,51.063610076904354],[-0.862500011920929,51.043609619140625],[-0.866110026836395,51.028049468994084],[-0.890833973884526,51.00999069213867],[-0.893055975437164,50.993610382080135],[-0.930832982063237,50.943889617920036],[-0.921666026115417,50.92055892944341],[-0.952500998973846,50.89194107055669],[-0.92333197593689,50.86526870727545],[-0.932498991489297,50.8398818969726],[-0.996389985084477,50.84014892578131],[-0.998512029647827,50.85084152221691],[-1.074637055397034,50.85788726806646],[-1.1036119461059,50.84469223022472],[-1.148610949516296,50.835971832275334],[-1.111943960189819,50.78874969482433],[-1.136944055557194,50.77347183227539],[-1.184721946716252,50.78763961791997],[-1.214722037315368,50.809581756591854],[-1.304167032241764,50.83819580078125],[-1.320162057876587,50.851249694824276]]]},"properties":{"ID_0":242,"ISO":"GB-HAM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":35,"NAME_2":"Hampshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":"Southampton"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.094132997095585,51.56012344360357],[-0.130917996168137,51.56416702270519],[-0.16264800727356,51.566417694091854],[-0.148900002241135,51.59728622436529],[-0.130517005920296,51.60783386230469],[-0.060770999640113,51.6061897277832],[-0.029931999742985,51.60110855102545],[-0.052708998322487,51.5736465454101],[-0.089492000639382,51.5714225769044],[-0.094132997095585,51.56012344360357]]]},"properties":{"ID_0":242,"ISO":"GB-HRY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":36,"NAME_2":"Haringey","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.367751985788288,51.54844665527355],[-0.399760007858276,51.614810943603516],[-0.37389001250267,51.614440917968864],[-0.320834010839405,51.63444137573242],[-0.293592989444676,51.6384162902832],[-0.266775012016239,51.60105514526367],[-0.283463001251164,51.581935882568295],[-0.305317014455795,51.57789230346691],[-0.32547599077219,51.54936599731445],[-0.367751985788288,51.54844665527355]]]},"properties":{"ID_0":242,"ISO":"GB-HRW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":37,"NAME_2":"Harrow","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.211668014526367,54.606704711914006],[-1.318693995475712,54.61167907714844],[-1.38845598697651,54.62672805786138],[-1.379444003105163,54.63888931274414],[-1.333611011505127,54.64749908447277],[-1.325834035873413,54.68222045898449],[-1.294167995452824,54.71139144897461],[-1.24530100822443,54.72541809082037],[-1.180276989936715,54.700416564941406],[-1.198611021041813,54.68013763427729],[-1.1686110496521,54.63735961914074],[-1.190773010253849,54.621528625488395],[-1.211668014526367,54.606704711914006]]]},"properties":{"ID_0":242,"ISO":"GB-HPL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":38,"NAME_2":"Hartlepool","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.31991100311285,51.5579986572265],[0.336111009120941,51.53998947143554],[0.247777000069732,51.52000045776367],[0.242221996188164,51.49888992309575],[0.224682003259659,51.489070892333984],[0.191625997424126,51.48337554931651],[0.166115000844059,51.506519317627],[0.172252997756004,51.528106689453125],[0.193339005112705,51.55400085449213],[0.159775003790799,51.563388824463004],[0.152421995997429,51.59897994995117],[0.148513004183826,51.61749649047857],[0.231389999389762,51.629169464111385],[0.28444600105297,51.58388900756836],[0.30833300948143,51.57889175415033],[0.31991100311285,51.5579986572265]]]},"properties":{"ID_0":242,"ISO":"GB-HAV","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":39,"NAME_2":"Havering","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.647500991821289,51.82221984863281],[-2.682285070419198,51.82587814331066],[-2.697777986526489,51.83943939208989],[-2.737222909927368,51.83943939208989],[-2.778609991073608,51.8858299255371],[-2.820832967758179,51.90166091918945],[-2.866389036178532,51.92889022827143],[-2.895555019378662,51.92638015747082],[-2.943888902664185,51.90665817260747],[-2.988888025283757,51.92554855346685],[-2.994446992874088,51.943328857421875],[-3.051388978958016,51.98332977294933],[-3.08666706085205,52.022220611572266],[-3.082221031188965,52.04666137695307],[-3.112498998641968,52.069438934326286],[-3.115890026092529,52.098251342773494],[-3.099999904632568,52.1124992370606],[-3.129722118377686,52.12694168090826],[-3.075556039810181,52.14804840087896],[-3.113610982894897,52.166110992431754],[-3.061666965484562,52.21500015258789],[-3.055001020431404,52.23110961914057],[-3.013056039810124,52.25555038452154],[-2.953888893127441,52.26137924194336],[-3.001111030578613,52.28722000122082],[-2.992222070693912,52.310268402099666],[-2.956943035125732,52.32471084594726],[-2.957314968109017,52.34125900268549],[-2.932777881622258,52.34471893310552],[-2.838888883590698,52.391391754150504],[-2.80333399772644,52.380268096923885],[-2.781388044357243,52.35277938842779],[-2.731945037841797,52.35139083862304],[-2.746109962463379,52.3244400024414],[-2.694999933242798,52.30360031127935],[-2.674998044967595,52.30638885498058],[-2.66527795791626,52.329719543456974],[-2.64086389541626,52.33226013183594],[-2.631388902664185,52.29195022583013],[-2.615957021713143,52.27780532836914],[-2.618530988693237,52.252086639404354],[-2.606956958770752,52.241798400878906],[-2.527225971221924,52.24308395385742],[-2.488646984100342,52.26494598388677],[-2.447496891021672,52.25851440429699],[-2.45778489112854,52.23022460937506],[-2.415348052978516,52.21993637084972],[-2.406347990035954,52.205791473388786],[-2.410203933715707,52.15692520141607],[-2.392200946807861,52.13120651245128],[-2.360050916671696,52.12220382690435],[-2.349762916564941,52.106773376464844],[-2.351562023162785,52.01398468017583],[-2.393331050872803,51.99472045898443],[-2.42944693565363,51.99443817138672],[-2.460834980010986,52.01971817016601],[-2.481389999389648,51.95804977417003],[-2.460278987884521,51.94778060913086],[-2.433888912200928,51.91555023193365],[-2.434444904327393,51.896659851074276],[-2.470279932022038,51.88277053833008],[-2.505834102630558,51.88000106811535],[-2.519721031188965,51.8588905334472],[-2.550554990768319,51.861660003662166],[-2.619997978210449,51.8377799987793],[-2.647500991821289,51.82221984863281]]]},"properties":{"ID_0":242,"ISO":"GB-HRT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":40,"NAME_2":"Herefordshire","TYPE_2":"Unitary Authority (county)","ENGTYPE_2":"Unitary Authority (county)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.399760007858276,51.614810943603516],[-0.458889991044941,51.61082839965826],[-0.481389999389592,51.6161003112793],[-0.493405014276448,51.5909881591798],[-0.518612027168274,51.60776901245123],[-0.523889005184174,51.641109466552734],[-0.498055011033955,51.667770385742244],[-0.537222027778625,51.67499923706066],[-0.548331975936833,51.71638107299816],[-0.588890016078949,51.74916076660156],[-0.631389021873417,51.7488899230957],[-0.673609972000065,51.76943969726568],[-0.678331971168518,51.79582977294933],[-0.709721982479039,51.80916976928711],[-0.730000019073486,51.82777023315441],[-0.713056981563511,51.84833145141607],[-0.674444019794464,51.84304809570318],[-0.676388025283813,51.829158782958984],[-0.653887987136784,51.811389923095646],[-0.579445004463196,51.80138015747076],[-0.551944971084538,51.82165908813488],[-0.533610999584198,51.819438934326165],[-0.514999985694885,51.801940917968864],[-0.491389989852848,51.81499099731457],[-0.482221007346993,51.83443832397472],[-0.45266801118845,51.847469329833984],[-0.418610990047455,51.843330383300895],[-0.379999995231572,51.82444000244151],[-0.335278987884465,51.85110092163085],[-0.348612010478917,51.88109970092779],[-0.367778986692372,51.892219543457024],[-0.385149002075138,51.92111587524414],[-0.399167001247349,51.935001373291016],[-0.386388003826141,51.97111129760747],[-0.361110001802444,51.949440002441406],[-0.344166994094792,51.96305084228521],[-0.347777992486897,51.981380462646484],[-0.311388999223652,51.98389053344732],[-0.289999008178597,51.99361038208008],[-0.254720002412796,51.978610992431754],[-0.236945003271103,51.996379852295036],[-0.200832992792073,52.00999069213867],[-0.204723000526428,52.03026962280279],[-0.146109998226166,52.069721221923885],[-0.135555997490883,52.04360961914057],[-0.109168000519276,52.01943969726562],[-0.067220002412796,52.03387832641607],[-0.029443999752345,52.039989471435604],[-0.011388000100794,52.051670074463],[0.051389999687728,52.04333114624018],[0.08055599778902,52.00249099731457],[0.082501001656112,51.98332977294933],[0.110831998288745,51.97360992431635],[0.141666993498859,51.88388824462896],[0.189999997615928,51.890270233154354],[0.199166998267287,51.86582946777355],[0.173611000180301,51.84833145141607],[0.173057004809493,51.82527160644531],[0.158053994178829,51.790550231933594],[0.108332000672874,51.77750015258789],[0.035555001348314,51.76832962036133],[3.98e-13,51.733119964599666],[-0.011218000203371,51.67724990844738],[-0.148056998848858,51.68915939331055],[-0.173332005739212,51.6663818359375],[-0.217500001192093,51.65415954589844],[-0.245278000831604,51.667499542236385],[-0.25416699051857,51.644168853759766],[-0.293592989444676,51.6384162902832],[-0.320834010839405,51.63444137573242],[-0.37389001250267,51.614440917968864],[-0.399760007858276,51.614810943603516]]]},"properties":{"ID_0":242,"ISO":"GB-HEF","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":41,"NAME_2":"Hertfordshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.493405014276448,51.5909881591798],[-0.481389999389592,51.6161003112793],[-0.458889991044941,51.61082839965826],[-0.399760007858276,51.614810943603516],[-0.367751985788288,51.54844665527355],[-0.399996995925846,51.52495956420898],[-0.370314002037048,51.517177581787166],[-0.39266499876976,51.49367141723633],[-0.426436990499496,51.452278137207145],[-0.441388010978585,51.45389175415045],[-0.473610997200012,51.458889007568466],[-0.497188985347748,51.477870941162166],[-0.484445989131927,51.49443817138683],[-0.471388995647374,51.549999237060604],[-0.493405014276448,51.5909881591798]]]},"properties":{"ID_0":242,"ISO":"GB-HIL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":42,"NAME_2":"Hillingdon","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.236507996916771,51.48230743408203],[-0.270539999008179,51.4798583984375],[-0.306046992540359,51.46807479858393],[-0.314743995666447,51.45487976074219],[-0.366232007741928,51.450191497802734],[-0.368874996900558,51.429012298583984],[-0.384377986192703,51.413726806640675],[-0.431665986776352,51.430271148681754],[-0.441388010978585,51.45389175415045],[-0.426436990499496,51.452278137207145],[-0.39266499876976,51.49367141723633],[-0.359903007745743,51.488414764404354],[-0.244496002793255,51.494441986083984],[-0.236507996916771,51.48230743408203]]]},"properties":{"ID_0":242,"ISO":"GB-HNS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":43,"NAME_2":"Hounslow","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.073055028915292,50.689861297607536],[-1.096389055252018,50.67069625854498],[-1.139165997505131,50.66013717651367],[-1.165832042694092,50.64402770996094],[-1.182500004768372,50.59736251831049],[-1.242499947547913,50.581806182861385],[-1.299165964126587,50.5745849609375],[-1.344167947769165,50.60402679443365],[-1.390277028083744,50.62736129760742],[-1.443055033683777,50.64125061035162],[-1.484722018241882,50.6662483215332],[-1.528610944747868,50.666805267333984],[-1.570279002189636,50.658473968505916],[-1.523054957389832,50.707637786865234],[-1.469166994094849,50.710140228271484],[-1.429165959358102,50.72652816772461],[-1.41305494308466,50.725139617920036],[-1.354166030883732,50.73902893066406],[-1.323055982589722,50.764862060546925],[-1.270833969116154,50.76597213745111],[-1.21416604518879,50.73513793945324],[-1.153612017631474,50.73374938964849],[-1.106943964958191,50.72069549560547],[-1.094166994094735,50.69625091552746],[-1.073055028915292,50.689861297607536]]]},"properties":{"ID_0":242,"ISO":"GB-IOW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":44,"NAME_2":"Isle of Wight","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.130917996168137,51.56416702270519],[-0.094132997095585,51.56012344360357],[-0.071289002895298,51.54322433471674],[-0.087598003447056,51.528736114501946],[-0.072025001049042,51.51602935791027],[-0.096313998103028,51.51580429077148],[-0.110025003552437,51.5265617370606],[-0.130917996168137,51.56416702270519]]]},"properties":{"ID_0":242,"ISO":"GB-ISL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":45,"NAME_2":"Islington","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.211057007312775,51.522098541259766],[-0.198547005653381,51.5209007263183],[-0.166424006223679,51.492107391357365],[-0.138977006077766,51.47813796997082],[-0.168094992637634,51.47075271606445],[-0.19922100007534,51.490581512451115],[-0.211057007312775,51.522098541259766]]]},"properties":{"ID_0":242,"ISO":"GB-KEC","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":46,"NAME_2":"Kensington and Chelsea","TYPE_2":"London Borough (royal)","ENGTYPE_2":"London Borough (royal)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[0.16627000272274,51.39855575561529],[0.160833999514637,51.41722106933605],[0.211390003561974,51.456939697265625],[0.223610997200012,51.47333145141607],[0.265554010868073,51.456668853759766],[0.31222099065792,51.46554946899425],[0.341390013694877,51.44638824462901],[0.366111993789787,51.44332885742199],[0.414166986942348,51.449993133544915],[0.458056002855301,51.45402908325201],[0.468055009841919,51.4826393127442],[0.510277986526546,51.48541641235363],[0.48258700966835,51.46253204345709],[0.485686004161892,51.43772888183599],[0.512041985988617,51.42687606811518],[0.504293024539891,51.40206909179693],[0.456230998039189,51.363311767578125],[0.446929991245327,51.33850479125988],[0.5058429837228,51.34780883789057],[0.535299003124351,51.34315490722662],[0.592661976814384,51.312149047851506],[0.648476004600582,51.33695602416998],[0.667222023010311,51.3837509155274],[0.686389029026088,51.39152908325207],[0.696388006210441,51.41958236694347],[0.717499971389884,51.42041778564458],[0.725831985473746,51.399860382080135],[0.764167010784149,51.38402938842779],[0.764167010784149,51.36375045776367],[0.819723010063171,51.35430526733404],[0.876942992210502,51.35402679443365],[0.896389007568473,51.34152603149419],[0.933611989021301,51.346805572509766],[1.003054976463318,51.3484725952149],[1.031944990158081,51.36597061157238],[1.099722027778739,51.372638702392635],[1.166388988494873,51.37402725219737],[1.206943988800049,51.38069534301769],[1.277498960494995,51.37763977050787],[1.287500023841915,51.382362365722656],[1.378054976463318,51.387084960937614],[1.423611998558158,51.39263916015619],[1.44972205162054,51.37763977050787],[1.444167971611137,51.35097122192383],[1.409721016883907,51.32652664184582],[1.373610019683952,51.32791519165039],[1.37694501876831,51.28874969482422],[1.404723048210144,51.23236083984386],[1.40527701377863,51.17097091674805],[1.380833029747066,51.14236068725586],[1.315278053283691,51.12236022949213],[1.26916694641119,51.1015281677246],[1.225276947021428,51.09930419921875],[1.191388964653129,51.0765266418457],[1.085832953453064,51.06597137451171],[1.045833945274353,51.05374908447265],[0.995278000831661,51.023471832275334],[0.978055000305289,51.0054168701173],[0.964165985584373,50.96097183227539],[0.982499003410339,50.92013931274414],[0.973610997200012,50.910415649414176],[0.867712974548283,50.921249389648494],[0.866666972637233,50.943889617920036],[0.821111023426056,50.944160461425895],[0.786666989326477,50.98833084106457],[0.763333022594509,50.997219085693416],[0.69583398103714,50.99554824829107],[0.658056974411011,51.013889312744254],[0.569723010063228,51],[0.536943972110805,51.01832962036133],[0.479721993208045,51.03026962280279],[0.474721997976303,51.04777908325201],[0.416667014360485,51.06528091430664],[0.401111990213508,51.081939697265625],[0.335557013750133,51.10694122314453],[0.331389009952545,51.119998931884766],[0.266943991184348,51.11027908325195],[0.221388995647487,51.12194061279308],[0.140560999512729,51.11169052124029],[0.154384002089614,51.13933944702154],[0.132499992847499,51.14416885375988],[0.06278099864727,51.135879516601676],[0.060279000550565,51.181659698486385],[0.04444300010806,51.20999908447271],[0.063888996839523,51.242221832275504],[0.054444000124988,51.28998947143555],[0.09388899803173,51.288330078125],[0.096665002405643,51.31110000610346],[0.155277997255325,51.35472106933594],[0.16627000272274,51.39855575561529]]],[[[0.739721000194606,51.415973663330185],[0.744722008705253,51.44847106933605],[0.790277004241943,51.43986129760742],[0.819167017936706,51.42680740356451],[0.885277986526546,51.42124938964838],[0.935833990573883,51.39263916015619],[0.950276970863456,51.37458419799816],[0.920276999473515,51.357639312744084],[0.894722998142186,51.35402679443365],[0.820833027362937,51.369026184082024],[0.764723002910614,51.37069320678716],[0.768055021762905,51.38347244262701],[0.727500021457729,51.405693054199276],[0.739721000194606,51.415973663330185]]]]},"properties":{"ID_0":242,"ISO":"GB-KEN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":47,"NAME_2":"Kent","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.296339988708496,53.74236297607422],[-0.449739009141865,53.71374893188488],[-0.444227993488255,53.7490844726563],[-0.426079988479557,53.77403640747082],[-0.386379003524723,53.7887840270996],[-0.341006010770798,53.78765106201183],[-0.309246003627663,53.76496505737304],[-0.296339988708496,53.74236297607422]]]},"properties":{"ID_0":242,"ISO":"GB-KHL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":48,"NAME_2":"Kingston upon Hull","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":"Hull"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.224751994013786,51.385395050048885],[-0.243055999278965,51.37360000610363],[-0.268334001302719,51.36166000366211],[-0.293334007263127,51.32889175415039],[-0.314999014139175,51.34722137451183],[-0.298056006431523,51.37054824829113],[-0.306676000356674,51.38444137573247],[-0.298146992921772,51.410175323486385],[-0.279599010944366,51.423812866210994],[-0.244277000427246,51.43251037597656],[-0.224751994013786,51.385395050048885]]]},"properties":{"ID_0":242,"ISO":"GB-KTT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":49,"NAME_2":"Kingston upon Thames","TYPE_2":"London Borough (royal)","ENGTYPE_2":"London Borough (royal)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.07634399831295,51.414375305175724],[-0.126905992627087,51.408092498779354],[-0.13170200586319,51.41772079467768],[-0.141544997692051,51.46076202392578],[-0.121486999094429,51.476806640625],[-0.103221997618618,51.502265930175895],[-0.080381996929646,51.46084976196288],[-0.091673001646996,51.443386077880916],[-0.074546001851559,51.41921997070318],[-0.07634399831295,51.414375305175724]]]},"properties":{"ID_0":242,"ISO":"GB-LBH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":50,"NAME_2":"Lambeth","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.504431962966919,53.62708282470714],[-2.558887958526611,53.59915924072271],[-2.589999914169311,53.61304855346691],[-2.616111993789559,53.595550537109425],[-2.6349999904632,53.60694122314453],[-2.686667919158935,53.599720001220646],[-2.692500114440861,53.56082916259771],[-2.713057994842529,53.52999877929698],[-2.751987934112549,53.51115036010747],[-2.776109933853149,53.5288810729981],[-2.801666021346989,53.51694107055658],[-2.805000066757145,53.493610382080135],[-2.863610982894841,53.51805114746094],[-2.910278081893864,53.52444076538086],[-2.954444885253906,53.54582977294933],[-2.958611965179443,53.51583099365239],[-3.031666994094849,53.54193878173834],[-3.030555009841805,53.56026840209961],[-3.011667966842651,53.57749938964837],[-3.018887996673527,53.593608856201286],[-2.996387958526554,53.613609313964844],[-2.963609933853149,53.6261100769043],[-2.932777881622258,53.66054916381847],[-2.947770118713265,53.70819473266613],[-2.942501068115121,53.73208236694347],[-3.017499923705998,53.7398681640625],[-3.045834064483642,53.75763702392583],[-3.058054924011174,53.77847290039068],[-3.056945085525456,53.83069610595709],[-3.047499895095768,53.867916107177734],[-3.046387910842896,53.92319488525396],[-2.997500896453801,53.92819595336914],[-2.914721965789738,53.946529388427734],[-2.896389007568359,53.94152832031256],[-2.8536119461059,53.96652603149414],[-2.874166965484562,53.97152709960948],[-2.905277967452889,54.02208328247076],[-2.893054962158203,54.05986022949213],[-2.860277891159001,54.07736206054699],[-2.818054914474487,54.08902740478527],[-2.793055057525635,54.12652587890631],[-2.814167022705078,54.13319396972661],[-2.83472204208374,54.16813278198242],[-2.792222976684513,54.19083023071289],[-2.733057022094726,54.183048248291016],[-2.709167003631592,54.16444015502941],[-2.671112060546875,54.15861129760742],[-2.62805700302124,54.19916915893566],[-2.576667070388737,54.19610977172862],[-2.531666040420532,54.208610534668075],[-2.457778930664062,54.23833084106445],[-2.4474999904632,54.230270385742244],[-2.45333194732666,54.21722030639654],[-2.511666059493962,54.171661376953125],[-2.547498941421509,54.15111160278332],[-2.545001029968262,54.11360931396496],[-2.519166946411132,54.09722137451183],[-2.46777701377863,54.07971954345703],[-2.458332061767578,54.04721832275396],[-2.426944017410221,54.03805923461914],[-2.380557060241642,54.045558929443416],[-2.35472297668457,54.04249954223638],[-2.347500085830688,54.0022201538087],[-2.335000991821289,53.99110031127924],[-2.299998998641968,53.989170074463],[-2.274167060851994,53.96998977661132],[-2.227499008178711,53.982769012451165],[-2.222223043441772,53.96804809570318],[-2.190557003021183,53.965831756591854],[-2.174166917800903,53.936100006103565],[-2.105000019073486,53.91471862792963],[-2.097500085830575,53.88861083984375],[-2.066113948822021,53.862781524658196],[-2.032510042190552,53.84766006469738],[-2.047224044799748,53.82444000244146],[-2.095555067062378,53.810550689697266],[-2.120558023452759,53.7913818359375],[-2.121388912200871,53.755268096923885],[-2.159722089767456,53.725559234619254],[-2.15134596824646,53.69654846191406],[-2.225554943084717,53.67221832275396],[-2.275001049041691,53.62665939331055],[-2.279999017715397,53.66527938842785],[-2.329166889190617,53.65777969360357],[-2.35657095909113,53.66466140747076],[-2.379894018173217,53.707790374755916],[-2.418098926544189,53.76554107666027],[-2.446531057357788,53.77264785766607],[-2.496287107467595,53.76198577880859],[-2.525605916976872,53.7379989624024],[-2.526494026184025,53.653591156005916],[-2.504431962966919,53.62708282470714]]]},"properties":{"ID_0":242,"ISO":"GB-LAN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":51,"NAME_2":"Lancashire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.651041984558105,52.747573852539176],[-0.727120995521545,52.7162742614746],[-0.782460987567845,52.71879196166997],[-0.805100023746377,52.70872879028326],[-0.800069987773895,52.673511505126896],[-0.800069987773895,52.59553527832037],[-0.764853000640869,52.53264999389654],[-0.729862987995148,52.50671386718744],[-0.761111974716187,52.49943923950195],[-0.78916597366333,52.50693893432623],[-0.870832026004678,52.50500106811529],[-0.892499983310699,52.473880767822266],[-0.870278000831547,52.462219238281364],[-0.897499978542214,52.44721984863281],[-0.937223970889988,52.4616584777832],[-0.962777018547058,52.46361160278325],[-1.033612966537419,52.444721221923885],[-1.02222204208374,52.432781219482536],[-1.045194983482247,52.40248107910161],[-1.100556015968323,52.42416000366216],[-1.134166002273503,52.403610229492244],[-1.156666040420475,52.37833023071294],[-1.186583995818978,52.38137817382824],[-1.211665987968445,52.41582870483393],[-1.241111993789673,52.4261093139649],[-1.293334007263184,52.47943878173822],[-1.395833015441838,52.51250076293957],[-1.417222976684513,52.53527069091808],[-1.495000958442688,52.556388854980526],[-1.517778992652836,52.574440002441406],[-1.545832991600037,52.58082962036133],[-1.542222023010197,52.60083007812506],[-1.558889985084477,52.62166976928711],[-1.533890008926391,52.64165878295893],[-1.580000996589661,52.6769409179688],[-1.583055019378605,52.685001373291016],[-1.534999966621285,52.70610809326177],[-1.543334960937443,52.73360061645502],[-1.532778024673405,52.74972152709966],[-1.474722981452942,52.74860000610357],[-1.427222013473397,52.78387832641607],[-1.395277023315373,52.789989471435604],[-1.370558023452702,52.83137893676763],[-1.301388025283813,52.86249923706066],[-1.262778043746891,52.861660003662166],[-1.268056035041752,52.81916046142578],[-1.259721040725594,52.79916000366222],[-1.225556969642582,52.77804946899413],[-1.188184022903386,52.77230834960943],[-1.166388034820556,52.78610992431652],[-1.133610010147038,52.79193878173833],[-1.10000205039978,52.808048248291016],[-1.052222013473454,52.803890228271534],[-0.979444980621338,52.807781219482536],[-0.968887984752655,52.8255500793457],[-0.849722981452885,52.893051147460994],[-0.821111023426056,52.92916107177745],[-0.819445013999882,52.9413795471192],[-0.791666984558105,52.957500457763786],[-0.766695976257324,52.96121978759777],[-0.764442026615086,52.94388961791997],[-0.744445025920868,52.928329467773494],[-0.763056993484497,52.89471817016613],[-0.753611981868687,52.87083053588872],[-0.723612010478917,52.86582946777355],[-0.690554976463318,52.816669464111385],[-0.676110029220581,52.80693817138666],[-0.651041984558105,52.747573852539176]],[[-1.064187049865723,52.59553527832037],[-1.056640982627869,52.62320327758788],[-1.07173395156849,52.648357391357415],[-1.119526982307434,52.655906677246094],[-1.159773945808354,52.655906677246094],[-1.179896950721684,52.63829803466808],[-1.167320966720581,52.57541275024419],[-1.122040987014771,52.565349578857536],[-1.064187049865723,52.59553527832037]]]},"properties":{"ID_0":242,"ISO":"GB-LEC","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":52,"NAME_2":"Leicestershire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.064187049865723,52.59553527832037],[-1.122040987014771,52.565349578857536],[-1.167320966720581,52.57541275024419],[-1.179896950721684,52.63829803466808],[-1.159773945808354,52.655906677246094],[-1.119526982307434,52.655906677246094],[-1.07173395156849,52.648357391357415],[-1.056640982627869,52.62320327758788],[-1.064187049865723,52.59553527832037]]]},"properties":{"ID_0":242,"ISO":"GB-LCE","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":53,"NAME_2":"Leicester","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.066652998328209,51.42107391357422],[-0.034924998879433,51.44993972778331],[-0.047993998974448,51.47789382934576],[-0.023135000839716,51.4887351989746],[0.013474999926984,51.465690612792905],[0.025491999462304,51.438079833984375],[0.003723999951148,51.411174774170036],[-0.022267000749707,51.41886138916021],[-0.066652998328209,51.42107391357422]]]},"properties":{"ID_0":242,"ISO":"GB-LEW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":54,"NAME_2":"Lewisham","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.288432002067509,52.8223609924317],[0.262499988079128,52.775829315185604],[0.276389002800045,52.75638961791998],[0.199723005294913,52.72166061401373],[0.172442004084644,52.724388122558594],[0.149443000555095,52.725269317626946],[0.097498998046035,52.70804977416992],[0.052777998149509,52.70055007934582],[0.057222999632472,52.670558929443416],[0.032219998538608,52.64804840087885],[3.98e-13,52.64752960205078],[-0.049467999488115,52.65792465209961],[-0.101388998329639,52.6519393920899],[-0.137500002980175,52.63861083984381],[-0.183054998517036,52.6419410705567],[-0.19946500658989,52.656269073486385],[-0.261945009231567,52.647499084472656],[-0.314999014139175,52.663600921630795],[-0.401942998170853,52.63694000244151],[-0.466666013002396,52.64332962036144],[-0.490702003240472,52.63652038574224],[-0.495279014110508,52.65055084228515],[-0.4497210085392,52.661659240722656],[-0.415279000997543,52.68666076660162],[-0.51555597782135,52.70972061157237],[-0.526389002799931,52.72499847412114],[-0.563609004020691,52.740550994873104],[-0.651041984558105,52.747573852539176],[-0.676110029220581,52.80693817138666],[-0.690554976463318,52.816669464111385],[-0.723612010478917,52.86582946777355],[-0.753611981868687,52.87083053588872],[-0.763056993484497,52.89471817016613],[-0.744445025920868,52.928329467773494],[-0.764442026615086,52.94388961791997],[-0.766695976257324,52.96121978759777],[-0.78638797998417,52.98666000366222],[-0.781387984752655,53.00609970092785],[-0.738888978958073,53.036380767822315],[-0.688610970973912,53.04972076416026],[-0.7119420170784,53.08304977416992],[-0.70305597782135,53.09666061401372],[-0.710831999778748,53.1402702331543],[-0.706112027168274,53.160270690918026],[-0.745001018047333,53.17082977294933],[-0.730831980705148,53.191669464111385],[-0.692220985889435,53.203891754150504],[-0.66444498300541,53.20333099365234],[-0.656944990158081,53.2313804626466],[-0.70472198724741,53.24110031127941],[-0.72388702630991,53.22943878173828],[-0.766381978988591,53.23249053955078],[-0.770555019378662,53.26639175415045],[-0.742779016494694,53.290828704834034],[-0.762221992015839,53.33443832397461],[-0.787500023841858,53.347499847412166],[-0.773055016994419,53.368328094482536],[-0.811110019683838,53.4163818359375],[-0.788331985473633,53.43610000610351],[-0.785458028316498,53.45186996459972],[-0.747223019599915,53.48666000366211],[-0.739723026752472,53.513889312744084],[-0.61583399772644,53.50526809692394],[-0.609444975852966,53.488048553466854],[-0.621388018131199,53.46500015258795],[-0.60333198308939,53.452770233154354],[-0.56888997554779,53.45111083984375],[-0.466944009065628,53.47249984741205],[-0.458889991044941,53.50387954711919],[-0.399167001247349,53.50999069213873],[-0.400555014610234,53.53139114379894],[-0.476942986249924,53.53833007812506],[-0.416667014360371,53.56610870361328],[-0.352499991655293,53.555828094482536],[-0.327499985694885,53.558048248291065],[-0.290832996368408,53.58304977416997],[-0.282074987888336,53.606346130371094],[-0.237498998641968,53.58972167968749],[-0.208610996603966,53.56610870361328],[-0.170277997851372,53.557498931884815],[-0.19777800142765,53.535549163818416],[-0.184166997671127,53.5013885498048],[-0.19055600464344,53.47748947143554],[-0.142222002148628,53.4508285522462],[-0.113609999418259,53.42694091796881],[-0.07277899980545,53.44250106811534],[-0.092500999569836,53.461940765380916],[-0.058056000620127,53.51028060913085],[0.016943000257072,53.52251434326183],[0.034166999161357,53.51013946533214],[0.060832999646777,53.51208496093744],[0.083057001233158,53.49319458007807],[0.154165998101234,53.47652816772461],[0.176388993859291,53.44124984741211],[0.200832992792186,53.419029235839844],[0.264165997505188,53.34486007690441],[0.306944996118546,53.28819274902343],[0.338611990213394,53.23847198486334],[0.356388986110801,53.18347167968749],[0.348610013723487,53.128192901611435],[0.33749899268156,53.09430694580084],[0.294721990823859,53.08430480957031],[0.271944999694938,53.06819534301758],[0.155834004282951,53.009029388427734],[0.115832999348754,52.9781951904298],[0.069168001413402,52.923473358154354],[0.077500000596103,52.902915954589844],[0.123612001538334,52.89680480957031],[0.182500004768372,52.8609733581544],[0.224722996354103,52.82319259643566],[0.288432002067509,52.8223609924317]]]},"properties":{"ID_0":242,"ISO":"GB-LIN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":55,"NAME_2":"Lincolnshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.072025001049042,51.51602935791027],[-0.077073000371399,51.50599288940441],[-0.0998620018363,51.507091522216854],[-0.102742999792099,51.51198959350586],[-0.096313998103028,51.51580429077148],[-0.072025001049042,51.51602935791027]]]},"properties":{"ID_0":242,"ISO":"GB-LND","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":56,"NAME_2":"London","TYPE_2":"London Borough (city)","ENGTYPE_2":"London Borough (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.45266801118845,51.847469329833984],[-0.471720993518829,51.866779327392635],[-0.477133989334106,51.89022827148448],[-0.464507997035866,51.91367721557617],[-0.403178989887238,51.91548156738281],[-0.385149002075138,51.92111587524414],[-0.367778986692372,51.892219543457024],[-0.348612010478917,51.88109970092779],[-0.335278987884465,51.85110092163085],[-0.379999995231572,51.82444000244151],[-0.418610990047455,51.843330383300895],[-0.45266801118845,51.847469329833984]]]},"properties":{"ID_0":242,"ISO":"GB-LUT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":57,"NAME_2":"Luton","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.42877006530756,53.38039016723633],[-2.460556983947754,53.388328552246094],[-2.446665048599186,53.4188804626466],[-2.485001087188664,53.46221923828131],[-2.522222995758056,53.46249008178716],[-2.566404104232788,53.43566894531255],[-2.59972095489502,53.458328247070305],[-2.603888988494873,53.47249984741205],[-2.690000057220345,53.47166061401373],[-2.751987934112549,53.51115036010747],[-2.713057994842529,53.52999877929698],[-2.692500114440861,53.56082916259771],[-2.686667919158935,53.599720001220646],[-2.6349999904632,53.60694122314453],[-2.616111993789559,53.595550537109425],[-2.589999914169311,53.61304855346691],[-2.558887958526611,53.59915924072271],[-2.504431962966919,53.62708282470714],[-2.463610887527465,53.62416076660162],[-2.434444904327393,53.64416885375971],[-2.376390933990479,53.63499069213878],[-2.35657095909113,53.66466140747076],[-2.329166889190617,53.65777969360357],[-2.279999017715397,53.66527938842785],[-2.275001049041691,53.62665939331055],[-2.225554943084717,53.67221832275396],[-2.15134596824646,53.69654846191406],[-2.098612070083618,53.67193984985357],[-2.046390056610051,53.68416976928722],[-2.031388998031616,53.663330078124936],[-2.035001039505005,53.646938323974666],[-2.01694393157959,53.61861038208002],[-1.988055944442749,53.6147193908692],[-1.97694194316864,53.593891143798885],[-1.937777996063176,53.5680503845216],[-1.897222995758,53.53305053710949],[-1.918890953063908,53.50083160400385],[-1.963611960411015,53.49472045898432],[-1.982499003410283,53.443889617919865],[-2.009166955947819,53.4275016784668],[-2.011667013168335,53.41249847412121],[-1.981389045715275,53.39833068847662],[-2.016736030578613,53.370479583740234],[-2.049443960189762,53.3522186279298],[-2.080832004547119,53.3611106872558],[-2.119998931884766,53.359439849853516],[-2.140279054641724,53.3277702331543],[-2.159446954727173,53.321388244628906],[-2.176111936569157,53.34555053710949],[-2.238333940505868,53.35499954223644],[-2.28333306312561,53.34222030639659],[-2.316668033599854,53.359989166259766],[-2.364721059799137,53.36249923706055],[-2.42877006530756,53.38039016723633]]]},"properties":{"ID_0":242,"ISO":"GB-MAN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":58,"NAME_2":"Manchester","TYPE_2":"Metropolitan Borough (city)","ENGTYPE_2":"Metropolitan Borough (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.667222023010311,51.3837509155274],[0.648476004600582,51.33695602416998],[0.592661976814384,51.312149047851506],[0.535299003124351,51.34315490722662],[0.5058429837228,51.34780883789057],[0.446929991245327,51.33850479125988],[0.456230998039189,51.363311767578125],[0.504293024539891,51.40206909179693],[0.512041985988617,51.42687606811518],[0.485686004161892,51.43772888183599],[0.48258700966835,51.46253204345709],[0.510277986526546,51.48541641235363],[0.548054993152732,51.487361907958984],[0.611944019794464,51.478748321533146],[0.700832009315491,51.472637176513786],[0.723612010478973,51.443195343017635],[0.703611016273555,51.43319320678711],[0.634720981121063,51.43930435180664],[0.604166984558219,51.41458511352545],[0.550276994705257,51.40652847290039],[0.576945006847438,51.39097213745128],[0.667222023010311,51.3837509155274]]]},"properties":{"ID_0":242,"ISO":"GB-MDW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":59,"NAME_2":"Medway","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"Medway Towns"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.566404104232788,53.43566894531255],[-2.616111993789559,53.43054962158208],[-2.639722108840942,53.44055175781244],[-2.670834064483643,53.431110382080014],[-2.648056983947754,53.391391754150504],[-2.680557012557927,53.37887954711914],[-2.741111993789616,53.388328552246094],[-2.77222204208374,53.365001678466854],[-2.767220973968449,53.347770690918026],[-2.808409929275455,53.32847213745128],[-2.838054895401001,53.32680511474614],[-2.880278110504094,53.334304809570426],[-2.987499952316284,53.38791656494135],[-3.009167909622192,53.439861297607536],[-3.040833950042668,53.4651374816895],[-3.06138896942133,53.501251220703125],[-3.06361198425293,53.5223617553712],[-3.1002779006958,53.54291534423834],[-3.1002779006958,53.56652832031256],[-3.051388978958016,53.62236022949219],[-3.01916599273676,53.65124893188476],[-2.99083399772644,53.66736221313482],[-2.972501039504948,53.69402694702154],[-2.947770118713265,53.70819473266613],[-2.932777881622258,53.66054916381847],[-2.963609933853149,53.6261100769043],[-2.996387958526554,53.613609313964844],[-3.018887996673527,53.593608856201286],[-3.011667966842651,53.57749938964837],[-3.030555009841805,53.56026840209961],[-3.031666994094849,53.54193878173834],[-2.958611965179443,53.51583099365239],[-2.954444885253906,53.54582977294933],[-2.910278081893864,53.52444076538086],[-2.863610982894841,53.51805114746094],[-2.805000066757145,53.493610382080135],[-2.801666021346989,53.51694107055658],[-2.776109933853149,53.5288810729981],[-2.751987934112549,53.51115036010747],[-2.690000057220345,53.47166061401373],[-2.603888988494873,53.47249984741205],[-2.59972095489502,53.458328247070305],[-2.566404104232788,53.43566894531255]]]},"properties":{"ID_0":242,"ISO":"GB-MER","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":60,"NAME_2":"Merseyside","TYPE_2":"Metropolitan County","ENGTYPE_2":"Metropolitan County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.244277000427246,51.43251037597656],[-0.199147999286652,51.43706512451183],[-0.167852997779789,51.42296600341791],[-0.13170200586319,51.41772079467768],[-0.126905992627087,51.408092498779354],[-0.131302997469902,51.38724136352539],[-0.187601998448372,51.382141113281186],[-0.224751994013786,51.385395050048885],[-0.244277000427246,51.43251037597656]]]},"properties":{"ID_0":242,"ISO":"GB-MRT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":61,"NAME_2":"Merton","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.250823020935002,54.48669433593761],[-1.292322039604187,54.502136230468864],[-1.299860954284611,54.51515960693354],[-1.293007969856262,54.54463195800787],[-1.259423017501717,54.5775299072265],[-1.218665003776493,54.57542419433588],[-1.21761405467987,54.55353927612316],[-1.179504990577698,54.503860473632926],[-1.235002040863037,54.499721527099666],[-1.250823020935002,54.48669433593761]]]},"properties":{"ID_0":242,"ISO":"GB-MDB","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":62,"NAME_2":"Middlesbrough","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.867379009723663,52.03387069702154],[-0.855832993984166,52.05860900878911],[-0.827777028083801,52.07221984863275],[-0.851666986942177,52.08583068847656],[-0.87833297252655,52.116100311279354],[-0.825833022594452,52.12749099731445],[-0.806666016578674,52.15222167968756],[-0.776111006736755,52.1469383239746],[-0.761943995952606,52.162498474121094],[-0.728887975215855,52.16165924072277],[-0.654443979263249,52.192501068115234],[-0.621200978755894,52.174911499023494],[-0.63160502910614,52.1465110778808],[-0.588057994842416,52.11804962158203],[-0.573612987995148,52.09666061401373],[-0.621945977210999,52.071659088134815],[-0.658333003520909,52.03889083862316],[-0.630001008510589,52.028331756591854],[-0.634442985057717,52.00444030761724],[-0.654165983200016,51.9880485534668],[-0.641668021678868,51.96194076538086],[-0.657158970832768,51.94794845581065],[-0.722445011138916,51.9497528076173],[-0.778361022472325,51.976810455322266],[-0.837885022163334,52.011081695556754],[-0.867379009723663,52.03387069702154]]]},"properties":{"ID_0":242,"ISO":"GB-MIK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":63,"NAME_2":"Milton Keynes","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.097815997898692,51.5101890563966],[0.073413997888565,51.49655532836914],[0.033514998853207,51.49438095092785],[0.019481999799609,51.50265884399414],[0.003920000046605,51.5137672424317],[-0.011008000001254,51.543540954589844],[-0.010583999566734,51.55247879028325],[0.023910999298096,51.5543327331543],[0.053291000425872,51.56283187866222],[0.074619002640361,51.542129516601676],[0.097815997898692,51.5101890563966]]]},"properties":{"ID_0":242,"ISO":"GB-NWM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":64,"NAME_2":"Newham","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.741943955421448,52.530696868896484],[1.690832018852234,52.54222106933594],[1.663334012031555,52.53194046020519],[1.65305495262146,52.51082992553711],[1.675832986831779,52.4927711486817],[1.700278997421265,52.4877815246582],[1.66055595874792,52.459159851074276],[1.640555977821464,52.453609466552734],[1.598055005073547,52.46944046020508],[1.519443035125846,52.4511108398438],[1.490000963211173,52.458049774169915],[1.464444994926453,52.45138931274419],[1.44222104549408,52.46139144897472],[1.411388993263301,52.43693923950201],[1.363052964210567,52.42248916625988],[1.323611021041813,52.383609771728516],[1.274443030357418,52.38193893432617],[1.234722018241882,52.36054992675787],[1.202499985694999,52.353881835937614],[1.124166011810303,52.364719390869084],[1.077221989631596,52.3652687072755],[1.034999012947196,52.374160766601506],[0.973333001136893,52.359989166259766],[0.931389987468776,52.38222122192394],[0.881389975547791,52.382770538330135],[0.837776005268211,52.395271301269645],[0.787778973579464,52.38166046142578],[0.751389980316162,52.3794403076173],[0.733888983726501,52.38777160644537],[0.693333983421326,52.38916015625006],[0.670000016689301,52.39889144897461],[0.671109974384308,52.41971969604498],[0.709721028804893,52.43748855590826],[0.676388978958244,52.44694137573242],[0.638611972332058,52.43972015380871],[0.558332026004791,52.44638824462902],[0.491943001747188,52.43138885498047],[0.447221010923329,52.43222045898443],[0.398056000471172,52.45528030395519],[0.362500995397568,52.49055099487315],[0.32861098647129,52.503330230713],[0.285834014415855,52.500000000000114],[0.253055006265754,52.48749923706066],[0.223055005073547,52.52165985107422],[0.218331992626247,52.543331146240284],[0.228332996368408,52.56082916259777],[0.219998002052307,52.58443832397455],[0.245831996202469,52.60139083862316],[0.184722006321067,52.63000106811534],[0.197501003742218,52.66110992431646],[0.157077997922954,52.67021179199219],[0.172442004084644,52.724388122558594],[0.199723005294913,52.72166061401373],[0.276389002800045,52.75638961791998],[0.262499988079128,52.775829315185604],[0.288432002067509,52.8223609924317],[0.322499990463371,52.820415496826165],[0.351943999528942,52.80486297607422],[0.392498999834118,52.83124923706049],[0.444721013307685,52.850139617919865],[0.443055003881454,52.867637634277344],[0.47194600105297,52.90763854980463],[0.49583300948143,52.955696105957145],[0.528612017631587,52.97513961791998],[0.631945014,52.974029541015625],[0.689720988273621,52.988193511963],[0.760276973247585,52.979305267333984],[0.966943979263363,52.964584350585994],[0.994722008705196,52.9781951904298],[1.136945009231624,52.949859619140625],[1.210834026336784,52.94652938842779],[1.29916703701025,52.93402862548828],[1.425832033157349,52.885692596435604],[1.485277056694031,52.849861145019524],[1.603611946106014,52.79013824462902],[1.658612012863159,52.75597381591808],[1.697500944137687,52.72236251831055],[1.744166016578731,52.630973815918026],[1.733610987663326,52.55152893066417],[1.741943955421448,52.530696868896484]]]},"properties":{"ID_0":242,"ISO":"GB-NFK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":65,"NAME_2":"Norfolk","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.016943000257072,53.52251434326183],[-0.058056000620127,53.51028060913085],[-0.092500999569836,53.461940765380916],[-0.07277899980545,53.44250106811534],[-0.113609999418259,53.42694091796881],[-0.142222002148628,53.4508285522462],[-0.19055600464344,53.47748947143554],[-0.184166997671127,53.5013885498048],[-0.19777800142765,53.535549163818416],[-0.170277997851372,53.557498931884815],[-0.208610996603966,53.56610870361328],[-0.237498998641968,53.58972167968749],[-0.282074987888336,53.606346130371094],[-0.274780988693237,53.616764068603516],[-0.1875,53.63209152221691],[-0.094723001122475,53.58152770996094],[-0.072498999536037,53.5837516784668],[-0.031943999230862,53.566249847412166],[0.016943000257072,53.52251434326183]]]},"properties":{"ID_0":242,"ISO":"GB-NEL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":66,"NAME_2":"North East Lincolnshire","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.282074987888336,53.606346130371094],[-0.290832996368408,53.58304977416997],[-0.327499985694885,53.558048248291065],[-0.352499991655293,53.555828094482536],[-0.416667014360371,53.56610870361328],[-0.476942986249924,53.53833007812506],[-0.400555014610234,53.53139114379894],[-0.399167001247349,53.50999069213873],[-0.458889991044941,53.50387954711919],[-0.466944009065628,53.47249984741205],[-0.56888997554779,53.45111083984375],[-0.60333198308939,53.452770233154354],[-0.621388018131199,53.46500015258795],[-0.609444975852966,53.488048553466854],[-0.61583399772644,53.50526809692394],[-0.739723026752472,53.513889312744084],[-0.747223019599915,53.48666000366211],[-0.785458028316498,53.45186996459972],[-0.904999017715397,53.45777130126953],[-0.890833973884526,53.47137832641601],[-0.919336974620819,53.48748016357416],[-0.943333983421326,53.51805114746094],[-0.914722025394383,53.53305053710949],[-0.881111025810242,53.52804946899414],[-0.872775971889382,53.54582977294933],[-0.904443025588932,53.57165908813488],[-0.860831022262516,53.581668853759766],[-0.860692024230957,53.612518310546925],[-0.843985974788666,53.613910675048885],[-0.766933023929482,53.658145904541016],[-0.700277984142303,53.68819046020519],[-0.686945021152439,53.69874954223633],[-0.619722008705139,53.71430587768566],[-0.550832986831665,53.679584503173935],[-0.504167020320892,53.680416107177734],[-0.478055000305176,53.69597244262701],[-0.400276988744736,53.69902801513672],[-0.335833013057709,53.710693359375],[-0.29305499792099,53.71374893188488],[-0.210277006030083,53.64236068725591],[-0.1875,53.63209152221691],[-0.274780988693237,53.616764068603516],[-0.282074987888336,53.606346130371094]]]},"properties":{"ID_0":242,"ISO":"GB-NLN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":67,"NAME_2":"North Lincolnshire","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.991249084472656,51.32125091552746],[-2.961944103240853,51.382083892822266],[-2.941943883895817,51.39847183227538],[-2.907500028610173,51.40013885498046],[-2.885277986526489,51.428749084472656],[-2.808053970336857,51.482082366943416],[-2.731005907058602,51.49736022949219],[-2.705461025238037,51.48052597045898],[-2.66798996925354,51.46714019775396],[-2.630516052246037,51.44305419921874],[-2.633456945419198,51.382179260253906],[-2.646574974060059,51.34937286376953],[-2.680032968521061,51.34134292602544],[-2.714828968048096,51.342681884765625],[-2.712670087814331,51.31989288330084],[-2.811944961547852,51.327499389648494],[-2.788888931274357,51.29721832275402],[-2.837223052978515,51.29444122314453],[-2.879446029663086,51.30167007446295],[-2.889445066452026,51.28638076782232],[-2.929721117019596,51.29916000366216],[-2.975832939147892,51.29333114624035],[-2.991249084472656,51.32125091552746]]]},"properties":{"ID_0":242,"ISO":"GB-NSM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":68,"NAME_2":"North Somerset","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"North West Somerset"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.927909016609192,53.97192001342779],[-0.987452983856087,53.974716186523494],[-1.004220962524414,53.99008560180669],[-1.007017970085144,54.02781677246087],[-1.026579022407532,54.03899383544927],[-1.092252969741764,54.040390014648544],[-1.146749019622746,54.02781677246087],[-1.177492022514343,53.98030471801758],[-1.231986045837402,53.9691276550294],[-1.23478102684021,53.945373535156364],[-1.218013048171997,53.91463088989252],[-1.177492022514343,53.87690353393555],[-1.14116096496582,53.86013412475585],[-1.025182008743229,53.85734176635748],[-0.969289004802704,53.87131500244146],[-0.940470993518829,53.86803817749035],[-0.941111981868687,53.83554840087902],[-0.920278012752476,53.807781219482536],[-0.93416702747345,53.76832962036127],[-0.963611006736755,53.74304962158214],[-0.942499995231515,53.719989776611385],[-0.982779026031494,53.70249938964844],[-1.020555973052979,53.69472122192383],[-1.093862056732178,53.713638305664176],[-1.109722018241882,53.675548553466854],[-1.073925971984863,53.647708892822315],[-1.199445009231511,53.63861083984381],[-1.229943990707341,53.620719909668026],[-1.246947050094548,53.63555145263671],[-1.245278000831547,53.67193984985357],[-1.219980001449585,53.714698791503906],[-1.259443044662419,53.71776962280285],[-1.304167032241764,53.749721527099666],[-1.288612008094788,53.77027130126959],[-1.307500958442574,53.79027938842773],[-1.305276989936772,53.819721221923885],[-1.326110005378666,53.846378326416016],[-1.305557012557869,53.860828399658146],[-1.307777047157288,53.89471817016607],[-1.294167995452824,53.9255485534668],[-1.333611011505127,53.94499969482433],[-1.386667013168221,53.9394416809082],[-1.454722046852055,53.90610885620117],[-1.507187962532043,53.91077041625988],[-1.534446001052856,53.93526840209961],[-1.549167037010193,53.90861129760747],[-1.583333015441838,53.900829315185604],[-1.641389966011047,53.907218933105526],[-1.728610038757267,53.90277099609374],[-1.79778003692627,53.94305038452142],[-1.871762990951538,53.9404411315918],[-1.901944994926396,53.95499038696294],[-1.943611979484501,53.957771301269645],[-1.950834989547729,53.93193817138672],[-1.973610043525696,53.91722106933594],[-1.966109991073608,53.87638854980463],[-2.002779006957951,53.86999893188471],[-2.032510042190552,53.84766006469738],[-2.066113948822021,53.862781524658196],[-2.097500085830575,53.88861083984375],[-2.105000019073486,53.91471862792963],[-2.174166917800903,53.936100006103565],[-2.190557003021183,53.965831756591854],[-2.222223043441772,53.96804809570318],[-2.227499008178711,53.982769012451165],[-2.274167060851994,53.96998977661132],[-2.299998998641968,53.989170074463],[-2.335000991821289,53.99110031127924],[-2.347500085830688,54.0022201538087],[-2.35472297668457,54.04249954223638],[-2.380557060241642,54.045558929443416],[-2.426944017410221,54.03805923461914],[-2.458332061767578,54.04721832275396],[-2.46777701377863,54.07971954345703],[-2.519166946411132,54.09722137451183],[-2.545001029968262,54.11360931396496],[-2.547498941421509,54.15111160278332],[-2.511666059493962,54.171661376953125],[-2.45333194732666,54.21722030639654],[-2.4474999904632,54.230270385742244],[-2.40055608749384,54.2283287048341],[-2.352498054504395,54.250549316406364],[-2.309720993041992,54.243328094482415],[-2.3002769947052,54.265270233154354],[-2.311387062072754,54.281391143798935],[-2.306111097335815,54.32054901123058],[-2.347222089767456,54.35026931762689],[-2.28333306312561,54.382770538330135],[-2.29555606842041,54.417770385742244],[-2.276667118072453,54.43555068969726],[-2.244719982147217,54.44805145263671],[-2.194166898727303,54.44665908813482],[-2.155178070068359,54.4556999206544],[-2.138889074325562,54.44971084594732],[-2.099721908569336,54.46804809570307],[-2.045556068420353,54.47972106933594],[-2.006944894790593,54.47249984741222],[-1.956110954284668,54.45444107055663],[-1.930557012557983,54.45471954345703],[-1.850833058357125,54.48054885864258],[-1.824445009231567,54.5027809143067],[-1.787222981452828,54.481670379638615],[-1.766945004463196,54.52861022949224],[-1.724722027778568,54.52499008178711],[-1.68175303935999,54.53115844726573],[-1.642222046852055,54.523330688476676],[-1.629999041557312,54.50833129882812],[-1.600278973579293,54.51250076293951],[-1.577777028083744,54.48971939086913],[-1.532500028610173,54.46527099609381],[-1.525555014610291,54.480831146240284],[-1.495000958442688,54.478881835937614],[-1.472221016883793,54.44805145263671],[-1.446110963821411,54.45111083984375],[-1.466667056083679,54.482769012451286],[-1.431946039199829,54.48117065429699],[-1.408334970474243,54.49248886108404],[-1.369721055030766,54.48888015747082],[-1.361945033073425,54.467498779296875],[-1.326665997505074,54.4622192382813],[-1.250823020935002,54.48669433593761],[-1.235002040863037,54.499721527099666],[-1.179504990577698,54.503860473632926],[-1.114166975021305,54.49805068969738],[-1.07444596290577,54.505001068115234],[-1.029168009757995,54.49248886108404],[-0.976109981536865,54.5],[-0.932501018047333,54.48666000366211],[-0.880833029746896,54.495830535888665],[-0.838334023952427,54.48722076416021],[-0.837777972221374,54.5158309936524],[-0.814722001552525,54.540550231933594],[-0.778769016265755,54.55736160278332],[-0.744166970252934,54.52791595458996],[-0.712500989437103,54.53374862670893],[-0.680833995342255,54.51958465576171],[-0.661388993263245,54.49902725219721],[-0.590278029441833,54.4879150390625],[-0.520832002162876,54.44736099243164],[-0.531388998031559,54.42652893066406],[-0.463055998086873,54.39041519165045],[-0.414723008871078,54.330417633056584],[-0.417501002550068,54.31180572509776],[-0.395832985639572,54.27264022827143],[-0.353612005710545,54.2406959533692],[-0.266945987939778,54.21819305419922],[-0.282501012086868,54.192916870117244],[-0.236945003271103,54.16291809082031],[-0.196943998336792,54.155754089355575],[-0.222778007388001,54.133049011230526],[-0.294443011283818,54.13610839843761],[-0.354999989271164,54.14944076538085],[-0.37389001250267,54.165550231933594],[-0.415832996368351,54.162769317626896],[-0.420278996229172,54.138610839843864],[-0.448610991239491,54.12360000610357],[-0.446666985750198,54.107219696045036],[-0.513333976268768,54.083328247070256],[-0.57083398103714,54.08472061157238],[-0.604166984558105,54.06776809692394],[-0.641111016273499,54.05887985229492],[-0.640833020210266,54.03221893310541],[-0.665557026863098,54.024990081787166],[-0.668332993984166,54.007221221923885],[-0.70194399356842,54.00833129882823],[-0.73388797044754,54.02222061157226],[-0.889317989349365,54.007209777832145],[-0.927909016609192,53.97192001342779]]]},"properties":{"ID_0":242,"ISO":"GB-NYK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":69,"NAME_2":"North Yorkshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.867379009723663,52.03387069702154],[-0.901345014572144,52.018619537353565],[-0.940555989742222,52.07194137573236],[-0.990832984447479,52.063049316406364],[-1.02333402633667,52.06472015380864],[-1.03666698932642,52.05360031127941],[-1.096667051315251,52.04388046264659],[-1.141713976860046,52.01774978637707],[-1.108158946037292,52.00925827026373],[-1.138334035873299,51.989719390869254],[-1.183611989021244,51.978328704833984],[-1.264999985694828,51.97972106933588],[-1.296666026115417,52.03889083862316],[-1.293889999389648,52.07138824462896],[-1.237221956253052,52.096111297607536],[-1.321192026138306,52.161590576171925],[-1.303056955337524,52.181110382080135],[-1.248610019683781,52.195270538330135],[-1.265833973884526,52.227779388427734],[-1.208055973052979,52.25],[-1.208889961242676,52.27249908447259],[-1.22416698932642,52.28248977661144],[-1.202499032020512,52.30138015747082],[-1.241667985916138,52.31110000610362],[-1.233332991600037,52.327499389648494],[-1.181112051010132,52.3383293151856],[-1.165277957916203,52.348049163818416],[-1.186583995818978,52.38137817382824],[-1.156666040420475,52.37833023071294],[-1.134166002273503,52.403610229492244],[-1.100556015968323,52.42416000366216],[-1.045194983482247,52.40248107910161],[-1.02222204208374,52.432781219482536],[-1.033612966537419,52.444721221923885],[-0.962777018547058,52.46361160278325],[-0.937223970889988,52.4616584777832],[-0.897499978542214,52.44721984863281],[-0.870278000831547,52.462219238281364],[-0.892499983310699,52.473880767822266],[-0.870832026004678,52.50500106811529],[-0.78916597366333,52.50693893432623],[-0.761111974716187,52.49943923950195],[-0.729862987995148,52.50671386718744],[-0.696942985057831,52.52304840087896],[-0.681666016578674,52.54304885864252],[-0.548057019710541,52.590549468994084],[-0.521109998226109,52.62388992309581],[-0.490702003240472,52.63652038574224],[-0.46611300110817,52.609161376953125],[-0.473888993263245,52.568050384521484],[-0.414335012435913,52.559688568115234],[-0.39832898974413,52.537429809570256],[-0.407130986451989,52.5118293762207],[-0.348055988550129,52.4900016784669],[-0.335557013750019,52.45555114746105],[-0.382777988910675,52.412220001220696],[-0.416388988494816,52.39582824707037],[-0.425832986831608,52.38249969482433],[-0.484445989131927,52.365550994873104],[-0.485556006431523,52.348609924316406],[-0.461389988660812,52.32360839843744],[-0.458727985620499,52.30881881713878],[-0.503054976463204,52.30305099487315],[-0.525277018547001,52.283329010009766],[-0.525277018547001,52.260551452636776],[-0.558610975742226,52.248050689697266],[-0.590556025505009,52.26610946655267],[-0.641389012336731,52.259159088134815],[-0.634442985057717,52.216110229492244],[-0.654443979263249,52.192501068115234],[-0.728887975215855,52.16165924072277],[-0.761943995952606,52.162498474121094],[-0.776111006736755,52.1469383239746],[-0.806666016578674,52.15222167968756],[-0.825833022594452,52.12749099731445],[-0.87833297252655,52.116100311279354],[-0.851666986942177,52.08583068847656],[-0.827777028083801,52.07221984863275],[-0.855832993984166,52.05860900878911],[-0.867379009723663,52.03387069702154]]]},"properties":{"ID_0":242,"ISO":"GB-NTH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":70,"NAME_2":"Northamptonshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.454121947288513,55.07013702392589],[-1.493610978126469,55.04916000366211],[-1.559999942779484,55.05110931396479],[-1.586109042167664,55.06055068969721],[-1.688889026641789,55.07221984863287],[-1.697221994400024,55.033050537109375],[-1.728332042694035,55.02804946899419],[-1.766667008399963,54.98443984985363],[-1.799998998641968,54.97222137451172],[-1.821666955947819,54.92943954467779],[-1.850558042526132,54.91971969604498],[-1.820001006126347,54.90472030639643],[-1.866665959358215,54.84833145141601],[-1.904167056083679,54.83415985107427],[-1.920279026031437,54.84498977661144],[-1.993056058883667,54.86471939086914],[-2.082222938537598,54.830551147460994],[-2.129724025726318,54.836940765380916],[-2.133055925369263,54.82194137573236],[-2.160278081893921,54.80360031127941],[-2.191389083862305,54.80028152465825],[-2.211390018463135,54.77861022949219],[-2.272500991821289,54.792221069335994],[-2.305007934570312,54.78327178955089],[-2.361944913864135,54.810829162597656],[-2.400000095367375,54.84722137451166],[-2.5,54.8052711486817],[-2.533612012863102,54.808048248291016],[-2.56361198425293,54.82360839843749],[-2.566387891769409,54.85832977294922],[-2.59361004829401,54.88277053833019],[-2.570276975631657,54.89305114746094],[-2.559443950653076,54.91582870483398],[-2.541666984558105,54.92304992675787],[-2.565000057220459,54.95777130126959],[-2.591943979263306,54.96665954589844],[-2.56777906417841,54.986110687255916],[-2.559999942779541,55.01194000244146],[-2.481945991516113,55.039161682128906],[-2.505280017852783,55.08694076538086],[-2.547223091125375,55.079990386963],[-2.587500095367375,55.103050231933594],[-2.59777903556818,55.12360000610357],[-2.64083194732666,55.13222122192394],[-2.685632944107056,55.19132995605469],[-2.659723997116032,55.21638107299799],[-2.626111030578613,55.22333145141607],[-2.618335008621216,55.244159698486385],[-2.628334999084473,55.26554870605469],[-2.569998979568425,55.29222106933594],[-2.55222392082203,55.31555175781256],[-2.522778987884521,55.3255500793457],[-2.463057041168213,55.36111068725597],[-2.427778005599919,55.366939544677734],[-2.402225017547551,55.361381530761776],[-2.38499903678894,55.344158172607536],[-2.349721908569279,55.3647193908692],[-2.330832958221436,55.39833068847662],[-2.29416799545288,55.4030494689942],[-2.273334980010986,55.419719696044865],[-2.216109991073552,55.4252815246582],[-2.182499885559082,55.458889007568416],[-2.213887929916268,55.490268707275504],[-2.216944932937565,55.50944137573248],[-2.257777929305973,55.54943847656256],[-2.278332948684635,55.589721679687614],[-2.325834989547673,55.62221908569347],[-2.330925941467228,55.64054870605469],[-2.238610029220581,55.65193939208979],[-2.172498941421452,55.719158172607365],[-2.088495016098022,55.7584495544433],[-2.080277919769287,55.79444122314453],[-2.030278921127262,55.80439758300781],[-2.004723072052002,55.78985977172857],[-1.989168047904968,55.75541687011724],[-1.959720969200021,55.73291778564459],[-1.874722957611084,55.685695648193416],[-1.857499957084599,55.65625],[-1.829722046852055,55.638748168945426],[-1.781944036483765,55.641803741455135],[-1.764166951179504,55.627082824707145],[-1.693055987358093,55.60652923583979],[-1.628054976463318,55.55458450317383],[-1.639168024062997,55.54013824462902],[-1.610833048820496,55.5198593139649],[-1.616389989852905,55.49986267089855],[-1.591943979263306,55.49069595336913],[-1.592499971389771,55.439304351806754],[-1.578611016273442,55.43125152587885],[-1.57916700839985,55.4070816040039],[-1.610277056694031,55.38791656494152],[-1.584720969200077,55.34125137329107],[-1.550832986831665,55.3223609924317],[-1.571944952011108,55.275417327880916],[-1.560834050178471,55.253471374511825],[-1.533612012863159,55.2334709167481],[-1.50916600227356,55.198749542236385],[-1.525277018547058,55.15902709960949],[-1.491945028304997,55.12263870239263],[-1.496945023536625,55.10319519042963],[-1.454121947288513,55.07013702392589]]]},"properties":{"ID_0":242,"ISO":"GB-NBL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":71,"NAME_2":"Northumberland","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.17599701881403,53.29296112060547],[-1.134999990463257,53.32582855224615],[-1.144721031188965,53.337779998779354],[-1.113888025283813,53.356109619140625],[-1.118057012557927,53.378608703613274],[-1.066388964653015,53.41305923461914],[-1.013056993484383,53.40832901000982],[-0.977500021457672,53.43444061279308],[-0.969721972942352,53.46305084228527],[-0.919336974620819,53.48748016357416],[-0.890833973884526,53.47137832641601],[-0.904999017715397,53.45777130126953],[-0.785458028316498,53.45186996459972],[-0.788331985473633,53.43610000610351],[-0.811110019683838,53.4163818359375],[-0.773055016994419,53.368328094482536],[-0.787500023841858,53.347499847412166],[-0.762221992015839,53.33443832397461],[-0.742779016494694,53.290828704834034],[-0.770555019378662,53.26639175415045],[-0.766381978988591,53.23249053955078],[-0.72388702630991,53.22943878173828],[-0.70472198724741,53.24110031127941],[-0.656944990158081,53.2313804626466],[-0.66444498300541,53.20333099365234],[-0.692220985889435,53.203891754150504],[-0.730831980705148,53.191669464111385],[-0.745001018047333,53.17082977294933],[-0.706112027168274,53.160270690918026],[-0.710831999778748,53.1402702331543],[-0.70305597782135,53.09666061401372],[-0.7119420170784,53.08304977416992],[-0.688610970973912,53.04972076416026],[-0.738888978958073,53.036380767822315],[-0.781387984752655,53.00609970092785],[-0.78638797998417,52.98666000366222],[-0.766695976257324,52.96121978759777],[-0.791666984558105,52.957500457763786],[-0.819445013999882,52.9413795471192],[-0.821111023426056,52.92916107177745],[-0.849722981452885,52.893051147460994],[-0.968887984752655,52.8255500793457],[-0.979444980621338,52.807781219482536],[-1.052222013473454,52.803890228271534],[-1.10000205039978,52.808048248291016],[-1.133610010147038,52.79193878173833],[-1.166388034820556,52.78610992431652],[-1.188184022903386,52.77230834960943],[-1.225556969642582,52.77804946899413],[-1.259721040725594,52.79916000366222],[-1.268056035041752,52.81916046142578],[-1.262778043746891,52.861660003662166],[-1.23259699344635,52.88074111938482],[-1.271111965179387,52.898891448974666],[-1.269443988799992,52.919170379638786],[-1.282500982284546,52.946109771728516],[-1.283889055252018,52.98582839965826],[-1.321388006210213,53.0130500793457],[-1.329723000526371,53.050281524658196],[-1.291944026947021,53.08388900756841],[-1.312777042388916,53.13109970092773],[-1.309720993041992,53.14278030395508],[-1.276389002799988,53.154159545898494],[-1.243888020515385,53.15166091918957],[-1.230000972747746,53.162498474121094],[-1.190834045410156,53.1677703857423],[-1.18944597244257,53.20972061157226],[-1.195832967758122,53.232498168945305],[-1.160277962684575,53.262210845947315],[-1.160277962684575,53.285831451416016],[-1.17599701881403,53.29296112060547]],[[-1.142567038536072,52.89261627197265],[-1.10401797294611,52.918991088867244],[-1.103003025054875,52.94029617309581],[-1.135465025901738,52.98188781738281],[-1.160825014114266,52.99507522583019],[-1.192271947860718,52.99203109741222],[-1.217632055282479,52.96971511840832],[-1.228793025016671,52.91595077514648],[-1.200387954711914,52.87942886352545],[-1.170971989631596,52.872329711914176],[-1.142567038536072,52.89261627197265]]]},"properties":{"ID_0":242,"ISO":"GB-NTT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":72,"NAME_2":"Nottinghamshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.142567038536072,52.89261627197265],[-1.170971989631596,52.872329711914176],[-1.200387954711914,52.87942886352545],[-1.228793025016671,52.91595077514648],[-1.217632055282479,52.96971511840832],[-1.192271947860718,52.99203109741222],[-1.160825014114266,52.99507522583019],[-1.135465025901738,52.98188781738281],[-1.103003025054875,52.94029617309581],[-1.10401797294611,52.918991088867244],[-1.142567038536072,52.89261627197265]]]},"properties":{"ID_0":242,"ISO":"GB-NGM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":73,"NAME_2":"Nottingham","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.891583979129791,51.54838180541992],[-0.890277981758061,51.5286102294923],[-0.868332028388977,51.50194168090826],[-0.907221019268036,51.47499847412121],[-0.97222197055811,51.448051452636776],[-0.983610987663269,51.44916915893566],[-1.063611030578613,51.48527908325195],[-1.100556015968323,51.48917007446295],[-1.132778048515206,51.51082992553711],[-1.148056983947697,51.53165817260748],[-1.184167981147709,51.52304840087902],[-1.226943016052246,51.53332901000976],[-1.264443993568364,51.53248977661144],[-1.289721012115422,51.54861068725586],[-1.321943998336792,51.549999237060604],[-1.338889002799988,51.53722000122076],[-1.365556955337524,51.544998168945426],[-1.388056993484497,51.536109924316406],[-1.418334960937386,51.54027938842779],[-1.448889017105103,51.53277969360351],[-1.486667990684452,51.54693984985357],[-1.534168004989624,51.550548553466854],[-1.567499995231572,51.54582977294921],[-1.584468007087594,51.517429351806754],[-1.602777004241887,51.52027130126953],[-1.646667957305908,51.568599700927734],[-1.67527794837946,51.572780609130795],[-1.677778959274292,51.599720001220696],[-1.659721016883793,51.611110687255966],[-1.654441952705383,51.63193893432617],[-1.68388903141016,51.650550842285156],[-1.683266997337284,51.67866897583008],[-1.647222042083683,51.68638992309576],[-1.676110029220581,51.70471954345703],[-1.692499041557312,51.76250076293951],[-1.709167003631535,51.77499008178711],[-1.679167032241764,51.797218322753906],[-1.675832033157349,51.855270385742244],[-1.657778978347778,51.88304901123047],[-1.63749897480011,51.893878936767635],[-1.64611196517933,51.90999984741205],[-1.612777948379517,51.93165969848638],[-1.618888020515385,51.94499969482416],[-1.656944990158081,51.95915985107421],[-1.652547955513,51.983989715576286],[-1.603888988494816,51.954990386963004],[-1.586109042167664,51.96722030639643],[-1.549721002578735,51.96915817260742],[-1.545554041862488,51.984718322753906],[-1.509721994400024,51.998329162597706],[-1.495277047157231,52.060829162597656],[-1.470278978347778,52.08861160278326],[-1.436388015747013,52.09304809570312],[-1.407500028610229,52.107769012451286],[-1.379444003105163,52.09194183349615],[-1.351112008094731,52.104438781738395],[-1.373610019683838,52.11832809448242],[-1.341390013694763,52.134441375732536],[-1.321192026138306,52.161590576171925],[-1.237221956253052,52.096111297607536],[-1.293889999389648,52.07138824462896],[-1.296666026115417,52.03889083862316],[-1.264999985694828,51.97972106933588],[-1.183611989021244,51.978328704833984],[-1.138334035873299,51.989719390869254],[-1.108158946037292,52.00925827026373],[-1.053056001663151,51.992771148681754],[-1.082499980926457,51.95249938964843],[-1.047220945358276,51.939720153808594],[-1.075834035873356,51.919441223144474],[-1.081665992736816,51.89776992797862],[-1.062777042388916,51.87860870361339],[-1.047220945358276,51.83304977416998],[-1.069445013999939,51.823879241943416],[-1.1161110401153,51.83805084228515],[-1.108610033988953,51.7797203063966],[-1.079722046852112,51.773048400878956],[-1.065834999084473,51.7513885498048],[-1.040277004241943,51.74332809448242],[-1.018057942390385,51.75249099731445],[-0.965555012226048,51.756099700927734],[-0.911945998668671,51.740550994873104],[-0.884442985057831,51.71638107299816],[-0.876667022705078,51.664440155029354],[-0.921387970447483,51.667221069335994],[-0.930554986000061,51.63471984863281],[-0.944446027278843,51.61915969848632],[-0.911945998668671,51.5897216796875],[-0.931945025920868,51.57054901123058],[-0.891583979129791,51.54838180541992]]]},"properties":{"ID_0":242,"ISO":"GB-OXF","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":74,"NAME_2":"Oxfordshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.414335012435913,52.559688568115234],[-0.473888993263245,52.568050384521484],[-0.46611300110817,52.609161376953125],[-0.490702003240472,52.63652038574224],[-0.466666013002396,52.64332962036144],[-0.401942998170853,52.63694000244151],[-0.314999014139175,52.663600921630795],[-0.261945009231567,52.647499084472656],[-0.19946500658989,52.656269073486385],[-0.183054998517036,52.6419410705567],[-0.137500002980175,52.63861083984381],[-0.101388998329639,52.6519393920899],[-0.049467999488115,52.65792465209961],[-0.049467999488115,52.598758697509766],[-0.062739998102188,52.58548355102544],[-0.140716001391411,52.57719039916986],[-0.215372994542065,52.552303314209034],[-0.238598003983498,52.532394409179744],[-0.286709994077682,52.504192352294915],[-0.326526999473515,52.50751113891607],[-0.397866010665837,52.55894088745117],[-0.414335012435913,52.559688568115234]]]},"properties":{"ID_0":242,"ISO":"GB-PTE","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":75,"NAME_2":"Peterborough","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.124557971954289,50.34541702270508],[-4.125277996063232,50.36402893066406],[-4.163054943084717,50.36069488525396],[-4.204721927642765,50.39986038208013],[-4.184873104095402,50.42597198486339],[-4.154482841491642,50.43552398681635],[-4.124504089355469,50.43552398681635],[-4.041804790496826,50.39934539794921],[-4.038702964782658,50.378669738769645],[-4.100728034973088,50.36006164550781],[-4.124557971954289,50.34541702270508]]]},"properties":{"ID_0":242,"ISO":"GB-PLY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":76,"NAME_2":"Plymouth","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.037964105606022,50.71763992309576],[-2.020304918289127,50.72851943969732],[-2.006184101104679,50.762943267822266],[-1.994711041450443,50.770004272460994],[-1.941753029823303,50.76559066772455],[-1.920369982719308,50.75004577636713],[-1.921450018882751,50.71969223022461],[-1.885833978652954,50.71349334716797],[-1.932499051094055,50.698471069335994],[-1.953611016273498,50.7095832824707],[-2.014720916748047,50.71041488647472],[-2.037964105606022,50.71763992309576]]]},"properties":{"ID_0":242,"ISO":"GB-POL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":77,"NAME_2":"Poole","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.1036119461059,50.84469223022472],[-1.074637055397034,50.85788726806646],[-0.998512029647827,50.85084152221691],[-0.996389985084477,50.84014892578131],[-1.044167041778564,50.82902908325201],[-1.032500982284489,50.78625106811523],[-1.089722990989685,50.777362823486435],[-1.109722018241882,50.7904167175293],[-1.098610997199955,50.82069396972662],[-1.1036119461059,50.84469223022472]]],[[[-0.97083401679987,50.83791732788086],[-0.951943993568364,50.82847213745123],[-0.943055987358093,50.77597045898449],[-1.023612022399902,50.78625106811523],[-0.989723026752472,50.804027557373104],[-0.991388976573944,50.82597351074219],[-0.97083401679987,50.83791732788086]]]]},"properties":{"ID_0":242,"ISO":"GB-POR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":78,"NAME_2":"Portsmouth","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.074619002640361,51.542129516601676],[0.053291000425872,51.56283187866222],[0.023910999298096,51.5543327331543],[0.020289000123739,51.58667373657238],[0.02760099992156,51.62652587890625],[0.083888001739979,51.601100921630916],[0.112222999334449,51.61555099487305],[0.148513004183826,51.61749649047857],[0.152421995997429,51.59897994995117],[0.137917995452995,51.591773986816406],[0.127525001764411,51.55410003662115],[0.074619002640361,51.542129516601676]]]},"properties":{"ID_0":242,"ISO":"GB-RDB","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":79,"NAME_2":"Redbridge","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.778769016265755,54.55736160278332],[-0.814722001552525,54.540550231933594],[-0.837777972221374,54.5158309936524],[-0.838334023952427,54.48722076416021],[-0.880833029746896,54.495830535888665],[-0.932501018047333,54.48666000366211],[-0.976109981536865,54.5],[-1.029168009757995,54.49248886108404],[-1.07444596290577,54.505001068115234],[-1.114166975021305,54.49805068969738],[-1.179504990577698,54.503860473632926],[-1.21761405467987,54.55353927612316],[-1.218665003776493,54.57542419433588],[-1.211668014526367,54.606704711914006],[-1.190773010253849,54.621528625488395],[-1.123610973358097,54.63041687011719],[-0.970278024673405,54.58680725097662],[-0.925831973552704,54.58708190917969],[-0.899722993373871,54.57347106933605],[-0.852500975131989,54.571804046630916],[-0.809166014194432,54.559028625488224],[-0.778769016265755,54.55736160278332]]]},"properties":{"ID_0":242,"ISO":"GB-RCC","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":80,"NAME_2":"Redcar and Cleveland","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.306676000356674,51.38444137573247],[-0.343333005905151,51.394168853759815],[-0.384377986192703,51.413726806640675],[-0.368874996900558,51.429012298583984],[-0.366232007741928,51.450191497802734],[-0.314743995666447,51.45487976074219],[-0.306046992540359,51.46807479858393],[-0.270539999008179,51.4798583984375],[-0.236507996916771,51.48230743408203],[-0.213793992996216,51.4719123840332],[-0.245690003037453,51.45571517944336],[-0.244277000427246,51.43251037597656],[-0.279599010944366,51.423812866210994],[-0.298146992921772,51.410175323486385],[-0.306676000356674,51.38444137573247]]]},"properties":{"ID_0":242,"ISO":"GB-RIC","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":81,"NAME_2":"Richmond upon Thames","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.651041984558105,52.747573852539176],[-0.563609004020691,52.740550994873104],[-0.526389002799931,52.72499847412114],[-0.51555597782135,52.70972061157237],[-0.415279000997543,52.68666076660162],[-0.4497210085392,52.661659240722656],[-0.495279014110508,52.65055084228515],[-0.490702003240472,52.63652038574224],[-0.521109998226109,52.62388992309581],[-0.548057019710541,52.590549468994084],[-0.681666016578674,52.54304885864252],[-0.696942985057831,52.52304840087896],[-0.729862987995148,52.50671386718744],[-0.764853000640869,52.53264999389654],[-0.800069987773895,52.59553527832037],[-0.800069987773895,52.673511505126896],[-0.805100023746377,52.70872879028326],[-0.782460987567845,52.71879196166997],[-0.727120995521545,52.7162742614746],[-0.651041984558105,52.747573852539176]]]},"properties":{"ID_0":242,"ISO":"GB-RUT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":82,"NAME_2":"Rutland","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.957314968109017,52.34125900268549],[-2.97555494308466,52.34637832641613],[-3.021944046020508,52.34027099609375],[-3.067778110504037,52.34498977661138],[-3.103888034820499,52.368610382080135],[-3.140279054641724,52.38388824462885],[-3.166388988494816,52.403610229492244],[-3.196110963821411,52.41027069091797],[-3.214167118072396,52.43138885498047],[-3.214167118072396,52.4511108398438],[-3.196110963821411,52.46722030639654],[-3.149446010589542,52.478328704834034],[-3.108613014221191,52.494438171386776],[-3.029444932937622,52.496940612793075],[-3.019721984863224,52.51361083984375],[-2.991389989852905,52.51916885375988],[-2.974445104598999,52.54193878173834],[-3.01083397865284,52.569721221923935],[-3.068056106567383,52.54610061645502],[-3.086389064788818,52.52888107299816],[-3.125,52.56610870361334],[-3.124166011810303,52.582218170166016],[-3.080554962158146,52.60110092163086],[-3.063889980316162,52.63832855224604],[-3.02916693687439,52.6533317565918],[-3.032778978347778,52.682220458984375],[-3.011111974716073,52.711658477783146],[-2.968888044357186,52.7161102294923],[-2.957221031188908,52.73276901245123],[-2.992222070693912,52.74528121948242],[-3.001111030578613,52.75777053833019],[-3.058888912200928,52.7658309936524],[-3.075521945953369,52.781478881835994],[-3.11388897895813,52.784439086914055],[-3.140832901000977,52.796390533447266],[-3.155833959579468,52.82194137573242],[-3.11916804313654,52.85610961914074],[-3.131666898727417,52.883331298828175],[-3.096668004989624,52.89416885375988],[-3.089446067810059,52.913059234619254],[-2.993890047073364,52.95360946655279],[-2.962729930877686,52.95272827148443],[-2.92833304405201,52.93278121948242],[-2.879168033599854,52.9419403076173],[-2.853610038757324,52.939720153808594],[-2.783334970474129,52.898609161376946],[-2.75,52.91471862792969],[-2.71972203254694,52.91722106933593],[-2.716943979263249,52.946109771728516],[-2.727740049362126,52.96660995483404],[-2.622776985168457,52.98582839965826],[-2.589446067810059,52.9769401550294],[-2.57778000831604,52.95360946655279],[-2.527224063873234,52.94721984863287],[-2.512778997421208,52.96165847778332],[-2.478888034820557,52.95415878295904],[-2.430835008621216,52.96500015258788],[-2.423609972000065,52.9786109924317],[-2.378781080245972,52.98960876464855],[-2.364167928695621,52.9802703857423],[-2.375277996063232,52.94971084594726],[-2.419167995452881,52.9363899230957],[-2.442501068115234,52.91276931762701],[-2.449445962905827,52.88555145263672],[-2.434444904327393,52.86804962158209],[-2.36583399772644,52.884159088134815],[-2.378057003021127,52.838050842285156],[-2.396553993225098,52.82164764404297],[-2.473174095153695,52.798183441162166],[-2.53649806976307,52.784614562988224],[-2.588511943817139,52.767650604248104],[-2.646181106567383,52.75860595703131],[-2.663141965866089,52.74277496337896],[-2.640526056289559,52.72129058837885],[-2.460736989974976,52.61725997924805],[-2.424552917480412,52.60708236694347],[-2.396282911300602,52.64100646972656],[-2.339746952056885,52.729206085205014],[-2.323899984359741,52.747806549072315],[-2.305557012557927,52.73389053344732],[-2.310276985168457,52.70055007934582],[-2.293056011199951,52.6802711486817],[-2.231389999389535,52.66917037963867],[-2.226943016052246,52.63666915893566],[-2.236943960189762,52.61249923706054],[-2.266387939453125,52.60361099243169],[-2.303333044052124,52.608890533447266],[-2.310554981231689,52.591381072998104],[-2.269165992736816,52.57749938964844],[-2.2511110305785,52.56248855590832],[-2.267221927642822,52.54832839965826],[-2.255002021789494,52.51832962036138],[-2.284168004989624,52.50500106811529],[-2.298610925674382,52.47555923461914],[-2.286118984222298,52.444629669189396],[-2.304723024368229,52.43082809448248],[-2.339446067810002,52.43444061279297],[-2.350486040115243,52.423778533935604],[-2.327501058578491,52.38972091674805],[-2.390558004379272,52.383609771728516],[-2.410279035568237,52.36333084106456],[-2.46972107887268,52.35721969604503],[-2.46777701377863,52.33721923828125],[-2.493057012557927,52.32666015624994],[-2.525279998779297,52.33972167968756],[-2.546945095062199,52.330280303955135],[-2.555556058883667,52.30860900878906],[-2.59777903556818,52.30527114868164],[-2.616389989852905,52.324169158935604],[-2.64086389541626,52.33226013183594],[-2.66527795791626,52.329719543456974],[-2.674998044967595,52.30638885498058],[-2.694999933242798,52.30360031127935],[-2.746109962463379,52.3244400024414],[-2.731945037841797,52.35139083862304],[-2.781388044357243,52.35277938842779],[-2.80333399772644,52.380268096923885],[-2.838888883590698,52.391391754150504],[-2.932777881622258,52.34471893310552],[-2.957314968109017,52.34125900268549]]]},"properties":{"ID_0":242,"ISO":"GB-SHR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":83,"NAME_2":"Shropshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":"Salop"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.991249084472656,51.32125091552746],[-2.975832939147892,51.29333114624035],[-2.929721117019596,51.29916000366216],[-2.889445066452026,51.28638076782232],[-2.879446029663086,51.30167007446295],[-2.837223052978515,51.29444122314453],[-2.788888931274357,51.29721832275402],[-2.811944961547852,51.327499389648494],[-2.712670087814331,51.31989288330084],[-2.668334007263184,51.31193923950201],[-2.62083196640009,51.28305053710943],[-2.591387987136727,51.28305053710943],[-2.539444923400879,51.29999923706065],[-2.493057012557927,51.289440155029354],[-2.488332986831608,51.27582931518555],[-2.458056926727294,51.27304840087885],[-2.42305588722229,51.28221893310547],[-2.40500092506403,51.29943847656256],[-2.34583401679987,51.29999923706065],[-2.290097951889038,51.324958801269524],[-2.26694393157959,51.316379547119254],[-2.271110057830811,51.295829772949276],[-2.242779016494751,51.28527069091796],[-2.236109972000065,51.26416015625006],[-2.252501010894775,51.24472045898443],[-2.266109943389892,51.20888900756836],[-2.348891019821167,51.1177711486817],[-2.347500085830688,51.09498977661127],[-2.321666002273502,51.08332824707031],[-2.335279941558838,51.06472015380871],[-2.324166059493962,51.04222106933605],[-2.364167928695621,51.016391754150504],[-2.370556116104126,50.9988899230957],[-2.337776899337769,50.98305892944336],[-2.40055608749384,50.9652709960938],[-2.432497978210449,50.970550537109375],[-2.441112995147705,50.95277023315429],[-2.47055792808527,50.96277999877941],[-2.495832920074406,50.99528121948242],[-2.541944980621338,51.0019416809082],[-2.549998998641911,50.97861099243175],[-2.598889112472534,50.97639083862305],[-2.595000982284489,50.95750045776367],[-2.616111993789559,50.911380767822266],[-2.614444017410221,50.88555145263677],[-2.653054952621346,50.88666915893565],[-2.714724063873177,50.86804962158209],[-2.75888895988453,50.867221832275504],[-2.788888931274357,50.85472106933605],[-2.920279026031494,50.841110229492244],[-2.948494911193791,50.82255172729498],[-2.962778091430664,50.8505592346192],[-3.048333883285466,50.87778091430664],[-3.047499895095768,50.90583038330089],[-3.089998960494995,50.90805053710943],[-3.147500038146973,50.896938323974666],[-3.178056001663208,50.91471862792968],[-3.157222032546997,50.948608398437436],[-3.221667051315308,50.943889617920036],[-3.268332958221378,50.94749069213873],[-3.321388959884643,50.978881835937614],[-3.370556116104069,50.98083114624029],[-3.373888015747013,51.008609771728516],[-3.422224044799748,51.02944183349621],[-3.444443941116333,51.0263786315918],[-3.474999904632568,51.03610992431652],[-3.50805401802063,51.03054809570318],[-3.528887987136841,51.00722122192394],[-3.59972095489502,51.011940002441406],[-3.607778072357178,51.02444076538086],[-3.588057041168212,51.054721832275504],[-3.596111059188843,51.06304931640619],[-3.636389970779362,51.06222152709961],[-3.678333044052124,51.08250045776373],[-3.71555590629572,51.08304977416998],[-3.750554084777775,51.10694122314453],[-3.774724960327035,51.111110687255916],[-3.825834035873413,51.14194107055664],[-3.821110010147094,51.17721939086914],[-3.770277976989746,51.17332839965831],[-3.72416710853571,51.1786003112793],[-3.714181900024414,51.23208236694347],[-3.616389036178588,51.21791839599604],[-3.579165935516357,51.231529235839844],[-3.535279035568237,51.231529235839844],[-3.446389913558903,51.209026336670036],[-3.409723043441772,51.18347167968756],[-3.36694407463068,51.185138702392635],[-3.274723052978459,51.18041610717785],[-3.200278043746891,51.20236206054693],[-3.157500982284432,51.20847320556646],[-3.098612070083561,51.20847320556646],[-3.057498931884708,51.20319366455089],[-2.999722957611027,51.23236083984386],[-3.016943931579533,51.26041793823242],[-3.01083397865284,51.32152938842785],[-2.991249084472656,51.32125091552746]]]},"properties":{"ID_0":242,"ISO":"GB-SOM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":84,"NAME_2":"Somerset","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.683054924011174,51.53552627563482],[-2.664721965789794,51.57374954223632],[-2.62972092628479,51.60569381713873],[-2.583611965179443,51.62930679321289],[-2.575277090072632,51.649028778076286],[-2.544723033905029,51.67605972290044],[-2.487222909927254,51.65972137451172],[-2.478888034820557,51.63916015625005],[-2.444998979568368,51.64833068847662],[-2.37916707992548,51.635829925537166],[-2.384166955947819,51.603050231933594],[-2.36499905586237,51.594718933105526],[-2.3438880443573,51.60860061645519],[-2.3002769947052,51.60667037963873],[-2.271603107452279,51.57722091674805],[-2.245275974273682,51.518608093261776],[-2.280555009841862,51.509990692138786],[-2.313333988189697,51.49388885498058],[-2.286946058273315,51.4813804626466],[-2.280632972717285,51.420318603515625],[-2.397656917572021,51.40290451049804],[-2.503379106521606,51.405582427978565],[-2.522646903991642,51.41886901855474],[-2.518100023269653,51.47249603271496],[-2.571633100509644,51.48721694946294],[-2.666650056838932,51.520671844482536],[-2.683054924011174,51.53552627563482]]]},"properties":{"ID_0":242,"ISO":"GB-SGC","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":85,"NAME_2":"South Gloucestershire","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.919336974620819,53.48748016357416],[-0.969721972942352,53.46305084228527],[-0.977500021457672,53.43444061279308],[-1.013056993484383,53.40832901000982],[-1.066388964653015,53.41305923461914],[-1.118057012557927,53.378608703613274],[-1.113888025283813,53.356109619140625],[-1.144721031188965,53.337779998779354],[-1.134999990463257,53.32582855224615],[-1.17599701881403,53.29296112060547],[-1.242499947547913,53.290828704834034],[-1.281944990158081,53.2994384765625],[-1.31138896942133,53.3138885498048],[-1.332499027252197,53.29888153076172],[-1.380835056304932,53.306938171386776],[-1.393610954284554,53.32527160644537],[-1.43194401264185,53.32360839843761],[-1.458889961242562,53.306938171386776],[-1.531389951705933,53.28971862792969],[-1.570556998252869,53.3049888610841],[-1.610002040863037,53.30582809448242],[-1.582777023315373,53.326389312744254],[-1.592499971389771,53.337779998779354],[-1.650277972221317,53.35194015502941],[-1.646389961242676,53.3766593933106],[-1.6905579566955,53.38750076293945],[-1.701665997505188,53.40361022949218],[-1.734166979789734,53.41083145141607],[-1.731112957000676,53.441108703613395],[-1.787222981452828,53.46860885620123],[-1.795554995536747,53.496940612793026],[-1.816110968589726,53.51610946655279],[-1.80666601657856,53.531940460205135],[-1.771667957305851,53.53527069091802],[-1.714722990989628,53.55472183227539],[-1.674445986747685,53.54999923706055],[-1.615278005599975,53.56333160400402],[-1.584167957305851,53.59777069091797],[-1.560556054115239,53.60667037963873],[-1.535277962684631,53.593608856201286],[-1.485000014305115,53.59222030639654],[-1.448055028915405,53.600830078125],[-1.423889994621277,53.59498977661133],[-1.367776989936829,53.59888076782232],[-1.344444036483708,53.58082962036144],[-1.305276989936772,53.57611083984386],[-1.24333202838892,53.59693908691417],[-1.229943990707341,53.620719909668026],[-1.199445009231511,53.63861083984381],[-1.073925971984863,53.647708892822315],[-0.996388018131199,53.65999984741205],[-0.94138997793192,53.656940460205014],[-0.860000014305058,53.63249969482422],[-0.860692024230957,53.612518310546925],[-0.860831022262516,53.581668853759766],[-0.904443025588932,53.57165908813488],[-0.872775971889382,53.54582977294933],[-0.881111025810242,53.52804946899414],[-0.914722025394383,53.53305053710949],[-0.943333983421326,53.51805114746094],[-0.919336974620819,53.48748016357416]]]},"properties":{"ID_0":242,"ISO":"GB-SY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":86,"NAME_2":"South Yorkshire","TYPE_2":"Metropolitan County","ENGTYPE_2":"Metropolitan County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.320162057876587,50.851249694824276],[-1.385277032852116,50.89125061035156],[-1.442500948905888,50.90791702270508],[-1.450752019882202,50.903751373291016],[-1.446804046630859,50.925556182861385],[-1.425657987594604,50.94106292724615],[-1.369269967079163,50.945293426513665],[-1.30865204334259,50.92132568359369],[-1.307240962982121,50.891723632812614],[-1.320162057876587,50.851249694824276]]]},"properties":{"ID_0":242,"ISO":"GB-STH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":87,"NAME_2":"Southampton","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[0.968609988689422,51.80875015258789],[0.995278000831661,51.78958511352545],[0.947501003742218,51.774581909179744],[0.901944994926453,51.774028778076165],[0.907500028610343,51.79041671752924],[0.942499995231628,51.806804656982536],[0.968609988689422,51.80875015258789]]],[[[0.828007996082363,51.54264068603521],[0.785833001136893,51.52125167846691],[0.765277028083915,51.527637481689446],[0.644990980625209,51.536804199218864],[0.634675979614371,51.54315185546874],[0.648630976676998,51.56950759887706],[0.685837984085197,51.57725906372076],[0.820719003677482,51.54780197143549],[0.828007996082363,51.54264068603521]]]]},"properties":{"ID_0":242,"ISO":"GB-SOS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":88,"NAME_2":"Southend-on-Sea","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"Southend"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.066652998328209,51.42107391357422],[-0.074546001851559,51.41921997070318],[-0.091673001646996,51.443386077880916],[-0.080381996929646,51.46084976196288],[-0.103221997618618,51.502265930175895],[-0.0998620018363,51.507091522216854],[-0.077073000371399,51.50599288940441],[-0.034336999058667,51.50417709350586],[-0.023135000839716,51.4887351989746],[-0.047993998974448,51.47789382934576],[-0.034924998879433,51.44993972778331],[-0.066652998328209,51.42107391357422]]]},"properties":{"ID_0":242,"ISO":"GB-SWK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":89,"NAME_2":"Southwark","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.580000996589661,52.6769409179688],[-1.600833058357239,52.656108856201286],[-1.631111025810242,52.64278030395519],[-1.623888015747013,52.626110076904354],[-1.634721040725708,52.58805084228521],[-1.665555953979435,52.575828552246094],[-1.753610014915466,52.579441070556754],[-1.777673006057739,52.575420379638786],[-1.815001010894719,52.590831756591854],[-1.855556011199895,52.57555007934576],[-1.875277042388859,52.58639144897461],[-1.896389007568303,52.617488861083984],[-1.897222995758,52.649440765380966],[-1.934445977210999,52.66527938842785],[-1.952499032020512,52.637500762939446],[-2.025834083557072,52.61610031127924],[-2.066389083862248,52.60805892944347],[-2.097500085830575,52.63415908813482],[-2.131109952926579,52.629440307617244],[-2.144166946411132,52.61278152465826],[-2.180556058883667,52.599998474121094],[-2.200557947158757,52.579441070556754],[-2.174444913864136,52.567501068115234],[-2.157500028610229,52.54639053344732],[-2.12611198425293,52.544441223144645],[-2.134443998336735,52.5152702331543],[-2.177500009536743,52.5011100769043],[-2.158890008926335,52.47748947143555],[-2.153856039047241,52.423000335693416],[-2.171113014221191,52.421661376953125],[-2.220556974410954,52.43555068969732],[-2.260555982589664,52.43638992309582],[-2.286118984222298,52.444629669189396],[-2.298610925674382,52.47555923461914],[-2.284168004989624,52.50500106811529],[-2.255002021789494,52.51832962036138],[-2.267221927642822,52.54832839965826],[-2.2511110305785,52.56248855590832],[-2.269165992736816,52.57749938964844],[-2.310554981231689,52.591381072998104],[-2.303333044052124,52.608890533447266],[-2.266387939453125,52.60361099243169],[-2.236943960189762,52.61249923706054],[-2.226943016052246,52.63666915893566],[-2.231389999389535,52.66917037963867],[-2.293056011199951,52.6802711486817],[-2.310276985168457,52.70055007934582],[-2.305557012557927,52.73389053344732],[-2.323899984359741,52.747806549072315],[-2.368890047073364,52.781940460205135],[-2.368334054946899,52.80693817138666],[-2.396553993225098,52.82164764404297],[-2.378057003021127,52.838050842285156],[-2.36583399772644,52.884159088134815],[-2.434444904327393,52.86804962158209],[-2.449445962905827,52.88555145263672],[-2.442501068115234,52.91276931762701],[-2.419167995452881,52.9363899230957],[-2.375277996063232,52.94971084594726],[-2.364167928695621,52.9802703857423],[-2.378781080245972,52.98960876464855],[-2.366389989852848,53.00027084350586],[-2.37388801574707,53.03722000122081],[-2.36583399772644,53.0522193908692],[-2.33555793762207,53.056110382080185],[-2.305557012557927,53.0791587829591],[-2.272222995757943,53.07749938964849],[-2.243597030639535,53.08589172363286],[-2.228863954544067,53.05550003051769],[-2.201549053192082,52.963798522949276],[-2.178138017654362,52.94526672363281],[-2.111800909042358,52.94038772583008],[-2.090338945388794,52.96575164794927],[-2.09814190864563,52.98916244506847],[-2.148870944976807,53.05159759521496],[-2.191793918609562,53.083789825439396],[-2.20491099357605,53.113666534423885],[-2.157778024673462,53.14749908447271],[-2.134721994399968,53.15027999877935],[-2.140001058578491,53.16999816894537],[-2.06833291053772,53.165828704833984],[-2.030555009841919,53.18471908569335],[-2.005557060241642,53.18610000610357],[-1.976848959922791,53.207370758056754],[-1.952499032020512,53.2138786315918],[-1.932224035263062,53.194999694824276],[-1.856667995452824,53.17638015747075],[-1.824167013168335,53.1630592346192],[-1.798889994621277,53.14165878295904],[-1.799445986747742,53.118610382080135],[-1.771667957305851,53.09027099609381],[-1.776111960411015,53.07083129882818],[-1.763888955116272,53.03194046020508],[-1.747499942779484,53.022220611572266],[-1.74555504322052,53],[-1.75777804851532,52.98249816894537],[-1.812222003936768,52.96139144897461],[-1.816944956779423,52.92998886108404],[-1.84027898311615,52.9244384765625],[-1.840831995010319,52.90472030639648],[-1.823889017105103,52.875549316406364],[-1.754999995231572,52.86610031127941],[-1.720834016799927,52.84527969360357],[-1.630555033683777,52.84111022949219],[-1.590831995010376,52.810829162597706],[-1.615000009536743,52.79804992675787],[-1.629166960716191,52.77222061157232],[-1.672500014305115,52.758331298828125],[-1.700348973274231,52.726200103759766],[-1.645833969116097,52.70666885375988],[-1.639999985694828,52.685001373291016],[-1.583055019378605,52.685001373291016],[-1.580000996589661,52.6769409179688]]]},"properties":{"ID_0":242,"ISO":"GB-STS","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":90,"NAME_2":"Staffordshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.250823020935002,54.48669433593761],[-1.326665997505074,54.4622192382813],[-1.361945033073425,54.467498779296875],[-1.369721055030766,54.48888015747082],[-1.408334970474243,54.49248886108404],[-1.431946039199829,54.48117065429699],[-1.411944985389652,54.51250076293951],[-1.434447050094548,54.53499984741216],[-1.424721956253052,54.554988861083984],[-1.401111960411072,54.56444168090832],[-1.396942973136845,54.584720611572266],[-1.412564992904663,54.60003280639654],[-1.38845598697651,54.62672805786138],[-1.318693995475712,54.61167907714844],[-1.211668014526367,54.606704711914006],[-1.218665003776493,54.57542419433588],[-1.259423017501717,54.5775299072265],[-1.293007969856262,54.54463195800787],[-1.299860954284611,54.51515960693354],[-1.292322039604187,54.502136230468864],[-1.250823020935002,54.48669433593761]]]},"properties":{"ID_0":242,"ISO":"GB-STT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":91,"NAME_2":"Stockton-on-Tees","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"Stockton"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.243597030639535,53.08589172363286],[-2.20491099357605,53.113666534423885],[-2.191793918609562,53.083789825439396],[-2.148870944976807,53.05159759521496],[-2.09814190864563,52.98916244506847],[-2.090338945388794,52.96575164794927],[-2.111800909042358,52.94038772583008],[-2.178138017654362,52.94526672363281],[-2.201549053192082,52.963798522949276],[-2.228863954544067,53.05550003051769],[-2.243597030639535,53.08589172363286]]]},"properties":{"ID_0":242,"ISO":"GB-STE","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":92,"NAME_2":"Stoke-on-Trent","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.063611030578613,51.948875427246094],[1.062499046325683,51.94891738891595],[1.058055043220634,51.94908523559582],[1.019443988800049,51.95055007934576],[0.96805602312088,51.963878631591854],[0.914444029331264,51.96833038330078],[0.865832984447479,51.9594383239746],[0.787778973579464,51.954719543457145],[0.721665978431815,52.01194000244152],[0.715255022049007,52.04413986206054],[0.701112985611075,52.06750106811535],[0.678332984447479,52.07722091674815],[0.636111974716243,52.07500076293945],[0.524999022483882,52.0483283996582],[0.489167004823685,52.069160461425895],[0.408932000398693,52.05936050415039],[0.398056000471172,52.104438781738395],[0.427500009536743,52.12916946411133],[0.431665986776409,52.145000457763665],[0.46166700124752,52.16389083862305],[0.498611003160477,52.160831451416016],[0.498333007097301,52.177219390869084],[0.517220973968563,52.210548400878906],[0.50472199916851,52.2283287048341],[0.462222993373985,52.2397193908692],[0.426943987608013,52.2380485534669],[0.392498999834118,52.22499847412104],[0.349721997976417,52.25777053833007],[0.382777005434036,52.276939392089844],[0.430554002523422,52.253879547119254],[0.495555013418311,52.264999389648544],[0.510555982589665,52.28165817260748],[0.472499012947196,52.30833053588873],[0.434166997671127,52.309719085693416],[0.446667999029103,52.34000015258795],[0.419167995452938,52.35583114624029],[0.389721006155128,52.39027023315424],[0.392776995897293,52.40805053710949],[0.447221010923329,52.43222045898443],[0.491943001747188,52.43138885498047],[0.558332026004791,52.44638824462902],[0.638611972332058,52.43972015380871],[0.676388978958244,52.44694137573242],[0.709721028804893,52.43748855590826],[0.671109974384308,52.41971969604498],[0.670000016689301,52.39889144897461],[0.693333983421326,52.38916015625006],[0.733888983726501,52.38777160644537],[0.751389980316162,52.3794403076173],[0.787778973579464,52.38166046142578],[0.837776005268211,52.395271301269645],[0.881389975547791,52.382770538330135],[0.931389987468776,52.38222122192394],[0.973333001136893,52.359989166259766],[1.034999012947196,52.374160766601506],[1.077221989631596,52.3652687072755],[1.124166011810303,52.364719390869084],[1.202499985694999,52.353881835937614],[1.234722018241882,52.36054992675787],[1.274443030357418,52.38193893432617],[1.323611021041813,52.383609771728516],[1.363052964210567,52.42248916625988],[1.411388993263301,52.43693923950201],[1.44222104549408,52.46139144897472],[1.464444994926453,52.45138931274419],[1.490000963211173,52.458049774169915],[1.519443035125846,52.4511108398438],[1.598055005073547,52.46944046020508],[1.640555977821464,52.453609466552734],[1.66055595874792,52.459159851074276],[1.700278997421265,52.4877815246582],[1.675832986831779,52.4927711486817],[1.65305495262146,52.51082992553711],[1.663334012031555,52.53194046020519],[1.690832018852234,52.54222106933594],[1.741943955421448,52.530696868896484],[1.76249897480011,52.47652816772461],[1.736945986747855,52.45264053344721],[1.727501034736576,52.3948593139649],[1.692499995231685,52.352085113525504],[1.680276989936829,52.3218040466308],[1.646944999694938,52.29763793945324],[1.632500052452144,52.275695800781364],[1.622498989105281,52.20402908325201],[1.581943988800106,52.08763885498058],[1.565832972526664,52.079029083251946],[1.490277051925716,52.05764007568365],[1.443611979484672,52.02597045898443],[1.430279016494808,52.003749847412166],[1.39416599273693,51.98652648925792],[1.370278000831661,51.96513748168945],[1.312500000000114,51.953750610351676],[1.282500028610343,51.968471527099666],[1.186388015747127,51.95541763305664],[1.176944017410335,51.96541595458979],[1.127500057220573,51.953750610351676],[1.089166998863334,51.95847320556646],[1.063611030578613,51.948875427246094]]]},"properties":{"ID_0":242,"ISO":"GB-SFK","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":93,"NAME_2":"Suffolk","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.06278099864727,51.135879516601676],[0.021364999935145,51.135879516601676],[-0.053334001451731,51.13528060913086],[-0.076110996305943,51.14139175415039],[-0.119167000055256,51.134441375732536],[-0.14138799905777,51.15222167968755],[-0.181944996118546,51.161380767822266],[-0.302500009536743,51.116661071777344],[-0.351666003465596,51.11500167846691],[-0.420556992292404,51.096939086914176],[-0.475555002689305,51.09527969360357],[-0.541387975215912,51.07915878295893],[-0.60166597366333,51.07611083984381],[-0.626668989658299,51.084438323974666],[-0.688054978847504,51.07083129882824],[-0.731109976768494,51.078048706054744],[-0.753660023212376,51.08871078491211],[-0.746945023536682,51.11138153076177],[-0.779999971389714,51.12360000610346],[-0.79083198308939,51.1469383239746],[-0.823611021041813,51.15166091918945],[-0.824445009231511,51.18278121948242],[-0.839999973773899,51.203891754150504],[-0.829167008399906,51.226100921630916],[-0.799444973468724,51.239170074463],[-0.748332977294922,51.23167037963873],[-0.731109976768494,51.24388885498047],[-0.729722023010254,51.29166030883789],[-0.765276014804726,51.33137893676758],[-0.720833003520966,51.36388015747082],[-0.658056974410954,51.38222122192394],[-0.619722008705139,51.38777160644537],[-0.598887979984227,51.403610229492244],[-0.590278029441833,51.42638015747076],[-0.569967985153085,51.442989349365284],[-0.526400029659271,51.43140029907238],[-0.51277798414219,51.475830078125],[-0.497188985347748,51.477870941162166],[-0.473610997200012,51.458889007568466],[-0.441388010978585,51.45389175415045],[-0.431665986776352,51.430271148681754],[-0.384377986192703,51.413726806640675],[-0.343333005905151,51.394168853759815],[-0.306676000356674,51.38444137573247],[-0.298056006431523,51.37054824829113],[-0.314999014139175,51.34722137451183],[-0.293334007263127,51.32889175415039],[-0.268334001302719,51.36166000366211],[-0.243055999278965,51.37360000610363],[-0.218055993318558,51.35305023193365],[-0.219444006681442,51.32833099365246],[-0.178332999348584,51.339160919189446],[-0.163618996739387,51.31964111328125],[-0.12805700302124,51.28916168212896],[-0.101943001150971,51.29277038574224],[-0.084721997380257,51.31110000610346],[-0.046666998416185,51.315551757812614],[-0.026667999103609,51.330829620361385],[0.013167000375745,51.32074356079107],[0.022500000894127,51.289718627929744],[0.054444000124988,51.28998947143555],[0.063888996839523,51.242221832275504],[0.04444300010806,51.20999908447271],[0.060279000550565,51.181659698486385],[0.06278099864727,51.135879516601676]]]},"properties":{"ID_0":242,"ISO":"GB-SRY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":94,"NAME_2":"Surrey","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.163618996739387,51.31964111328125],[-0.178332999348584,51.339160919189446],[-0.219444006681442,51.32833099365246],[-0.218055993318558,51.35305023193365],[-0.243055999278965,51.37360000610363],[-0.224751994013786,51.385395050048885],[-0.187601998448372,51.382141113281186],[-0.131302997469902,51.38724136352539],[-0.11829599738121,51.37684249877941],[-0.110386997461319,51.34771347045892],[-0.163618996739387,51.31964111328125]]]},"properties":{"ID_0":242,"ISO":"GB-STN","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":95,"NAME_2":"Sutton","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.580399990081673,51.50305557250982],[-1.600487947463989,51.490497589111385],[-1.697631955146789,51.46014022827154],[-1.760949015617371,51.46274185180663],[-1.810387969016972,51.480091094970646],[-1.834674000740051,51.50784683227545],[-1.839010953903141,51.546875],[-1.831205010414124,51.565959930419915],[-1.756611943244934,51.642284393310604],[-1.749668955802917,51.65884017944336],[-1.724444031715336,51.66276931762707],[-1.701110005378723,51.68111038208019],[-1.683266997337284,51.67866897583008],[-1.68388903141016,51.650550842285156],[-1.654441952705383,51.63193893432617],[-1.659721016883793,51.611110687255966],[-1.677778959274292,51.599720001220696],[-1.67527794837946,51.572780609130795],[-1.646667957305908,51.568599700927734],[-1.602777004241887,51.52027130126953],[-1.584468007087594,51.517429351806754],[-1.580399990081673,51.50305557250982]]]},"properties":{"ID_0":242,"ISO":"GB-SWD","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":96,"NAME_2":"Swindon","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"Thamesdown"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.396553993225098,52.82164764404297],[-2.368334054946899,52.80693817138666],[-2.368890047073364,52.781940460205135],[-2.323899984359741,52.747806549072315],[-2.339746952056885,52.729206085205014],[-2.396282911300602,52.64100646972656],[-2.424552917480412,52.60708236694347],[-2.460736989974976,52.61725997924805],[-2.640526056289559,52.72129058837885],[-2.663141965866089,52.74277496337896],[-2.646181106567383,52.75860595703131],[-2.588511943817139,52.767650604248104],[-2.53649806976307,52.784614562988224],[-2.473174095153695,52.798183441162166],[-2.396553993225098,52.82164764404297]]]},"properties":{"ID_0":242,"ISO":"GB-TFW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":97,"NAME_2":"Telford and Wrekin","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":"The Wrekin, Wrekin"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.547411978244895,51.51680374145513],[0.510277986526546,51.5051383972168],[0.458609998226279,51.50652694702154],[0.44083300232893,51.49180603027355],[0.436944991350117,51.46513748168951],[0.414166986942348,51.449993133544915],[0.366111993789787,51.44332885742199],[0.341390013694877,51.44638824462901],[0.31222099065792,51.46554946899425],[0.265554010868073,51.456668853759766],[0.223610997200012,51.47333145141607],[0.224682003259659,51.489070892333984],[0.242221996188164,51.49888992309575],[0.247777000069732,51.52000045776367],[0.336111009120941,51.53998947143554],[0.31991100311285,51.5579986572265],[0.355614006519374,51.5571060180664],[0.481191992759818,51.54315185546874],[0.544757008552608,51.52919769287103],[0.547411978244895,51.51680374145513]]]},"properties":{"ID_0":242,"ISO":"GB-THR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":98,"NAME_2":"Thurrock","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.512501001358032,50.37486267089855],[-3.61991906166071,50.406608581543026],[-3.648608922958317,50.433246612548885],[-3.642460107803345,50.46398544311535],[-3.609673976898193,50.49882125854492],[-3.587133884429874,50.50906753540039],[-3.510278940200806,50.50804138183594],[-3.514723062515258,50.48236083984381],[-3.491389036178589,50.470417022705135],[-3.510278940200806,50.45458221435558],[-3.533610105514526,50.46263885498047],[-3.559721946716309,50.437084197998104],[-3.555834054946899,50.40902709960937],[-3.513611078262215,50.39902877807617],[-3.512501001358032,50.37486267089855]]]},"properties":{"ID_0":242,"ISO":"GB-TOB","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":99,"NAME_2":"Torbay","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.077073000371399,51.50599288940441],[-0.072025001049042,51.51602935791027],[-0.066616997122765,51.52652359008795],[-0.011008000001254,51.543540954589844],[0.003920000046605,51.5137672424317],[0.019481999799609,51.50265884399414],[-0.004727000370622,51.479656219482536],[-0.023135000839716,51.4887351989746],[-0.034336999058667,51.50417709350586],[-0.077073000371399,51.50599288940441]]]},"properties":{"ID_0":242,"ISO":"GB-TWH","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":100,"NAME_2":"Tower Hamlets","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.351943969726506,54.86963653564459],[-1.389835000038033,54.860801696777344],[-1.411224007606506,54.80133056640631],[-1.440425038337708,54.79700088500976],[-1.506346940994263,54.7999000549317],[-1.523211956024113,54.831798553466854],[-1.552342057228032,54.85789871215826],[-1.560006022453308,54.879650115966854],[-1.595293998718205,54.89270019531256],[-1.70114004611969,54.894161224365284],[-1.820001006126347,54.90472030639643],[-1.850558042526132,54.91971969604498],[-1.821666955947819,54.92943954467779],[-1.799998998641968,54.97222137451172],[-1.766667008399963,54.98443984985363],[-1.728332042694035,55.02804946899419],[-1.697221994400024,55.033050537109375],[-1.688889026641789,55.07221984863287],[-1.586109042167664,55.06055068969721],[-1.559999942779484,55.05110931396479],[-1.493610978126469,55.04916000366211],[-1.454121947288513,55.07013702392589],[-1.428056001663208,55.03819274902344],[-1.42972195148468,55.007362365722706],[-1.379166007041931,54.98597335815424],[-1.353055953979379,54.95652770996093],[-1.367498993873483,54.93847274780285],[-1.350834012031498,54.905418395996094],[-1.360277056693917,54.89014053344732],[-1.351943969726506,54.86963653564459]]]},"properties":{"ID_0":242,"ISO":"GB-TAW","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":101,"NAME_2":"Tyne and Wear","TYPE_2":"Metropolitan County","ENGTYPE_2":"Metropolitan County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.023910999298096,51.5543327331543],[-0.010583999566734,51.55247879028325],[-0.052708998322487,51.5736465454101],[-0.029931999742985,51.60110855102545],[-0.002580000087562,51.6466522216798],[0.02760099992156,51.62652587890625],[0.020289000123739,51.58667373657238],[0.023910999298096,51.5543327331543]]]},"properties":{"ID_0":242,"ISO":"GB-WFT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":102,"NAME_2":"Waltham Forest","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.213793992996216,51.4719123840332],[-0.188695996999684,51.4587020874024],[-0.168094992637634,51.47075271606445],[-0.138977006077766,51.47813796997082],[-0.121486999094429,51.476806640625],[-0.141544997692051,51.46076202392578],[-0.13170200586319,51.41772079467768],[-0.167852997779789,51.42296600341791],[-0.199147999286652,51.43706512451183],[-0.244277000427246,51.43251037597656],[-0.245690003037453,51.45571517944336],[-0.213793992996216,51.4719123840332]]]},"properties":{"ID_0":242,"ISO":"GB-WND","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":103,"NAME_2":"Wandsworth","TYPE_2":"London Borough","ENGTYPE_2":"London Borough","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.680557012557927,53.37887954711914],[-2.648056983947754,53.391391754150504],[-2.670834064483643,53.431110382080014],[-2.639722108840942,53.44055175781244],[-2.616111993789559,53.43054962158208],[-2.566404104232788,53.43566894531255],[-2.522222995758056,53.46249008178716],[-2.485001087188664,53.46221923828131],[-2.446665048599186,53.4188804626466],[-2.460556983947754,53.388328552246094],[-2.42877006530756,53.38039016723633],[-2.447022914886475,53.355045318603516],[-2.55492901802063,53.31236648559575],[-2.580697059631234,53.31558609008789],[-2.605659961700383,53.338134765624936],[-2.662832021713257,53.357460021972656],[-2.680557012557927,53.37887954711914]]]},"properties":{"ID_0":242,"ISO":"GB-WRT","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":104,"NAME_2":"Warrington","TYPE_2":"Unitary Authority","ENGTYPE_2":"Unitary Authority","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.75777804851532,52.10583114624035],[-1.787222981452828,52.12944030761713],[-1.840831995010319,52.136108398437614],[-1.875262975692692,52.14947128295904],[-1.890872955322209,52.13365936279297],[-1.944447040557862,52.164718627929794],[-1.923056960105839,52.195270538330135],[-1.902222990989628,52.210548400878906],[-1.902778983116093,52.230548858642635],[-1.920001029968262,52.26610946655267],[-1.88277804851532,52.2741584777832],[-1.868057012557983,52.29888153076172],[-1.847499012947082,52.310001373291016],[-1.876945018768197,52.34471893310552],[-1.852777004241943,52.362499237060604],[-1.844444990158081,52.383609771728516],[-1.82249903678894,52.3763885498048],[-1.79694497585291,52.35221862792963],[-1.751667976379281,52.34749984741222],[-1.714722990989628,52.35527038574213],[-1.682500958442688,52.34249877929682],[-1.562777996063176,52.37221908569335],[-1.536944031715336,52.35583114624029],[-1.510833978652954,52.36748886108404],[-1.46277904510498,52.36582946777343],[-1.431666016578617,52.383609771728516],[-1.438053965568486,52.429439544677734],[-1.455000042915287,52.43804931640619],[-1.619444012641793,52.444438934326115],[-1.661666989326477,52.42472076416015],[-1.682500958442688,52.43972015380871],[-1.741111040115356,52.49750137329101],[-1.733332037925663,52.5116691589356],[-1.753056049346867,52.54666137695318],[-1.777673006057739,52.575420379638786],[-1.753610014915466,52.579441070556754],[-1.665555953979435,52.575828552246094],[-1.634721040725708,52.58805084228521],[-1.623888015747013,52.626110076904354],[-1.631111025810242,52.64278030395519],[-1.600833058357239,52.656108856201286],[-1.580000996589661,52.6769409179688],[-1.533890008926391,52.64165878295893],[-1.558889985084477,52.62166976928711],[-1.542222023010197,52.60083007812506],[-1.545832991600037,52.58082962036133],[-1.517778992652836,52.574440002441406],[-1.495000958442688,52.556388854980526],[-1.417222976684513,52.53527069091808],[-1.395833015441838,52.51250076293957],[-1.293334007263184,52.47943878173822],[-1.241111993789673,52.4261093139649],[-1.211665987968445,52.41582870483393],[-1.186583995818978,52.38137817382824],[-1.165277957916203,52.348049163818416],[-1.181112051010132,52.3383293151856],[-1.233332991600037,52.327499389648494],[-1.241667985916138,52.31110000610362],[-1.202499032020512,52.30138015747082],[-1.22416698932642,52.28248977661144],[-1.208889961242676,52.27249908447259],[-1.208055973052979,52.25],[-1.265833973884526,52.227779388427734],[-1.248610019683781,52.195270538330135],[-1.303056955337524,52.181110382080135],[-1.321192026138306,52.161590576171925],[-1.341390013694763,52.134441375732536],[-1.373610019683838,52.11832809448242],[-1.351112008094731,52.104438781738395],[-1.379444003105163,52.09194183349615],[-1.407500028610229,52.107769012451286],[-1.436388015747013,52.09304809570312],[-1.470278978347778,52.08861160278326],[-1.495277047157231,52.060829162597656],[-1.509721994400024,51.998329162597706],[-1.545554041862488,51.984718322753906],[-1.549721002578735,51.96915817260742],[-1.586109042167664,51.96722030639643],[-1.603888988494816,51.954990386963004],[-1.652547955513,51.983989715576286],[-1.612221002578735,52.02666091918951],[-1.674445986747685,52.031108856201286],[-1.706666946411076,52.06528091430663],[-1.715832948684636,52.0849990844726],[-1.75777804851532,52.10583114624035]]]},"properties":{"ID_0":242,"ISO":"GB-WAR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":105,"NAME_2":"Warwickshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.844444990158081,52.383609771728516],[-1.90055501461029,52.39278030395508],[-1.954723000526428,52.38694000244135],[-1.983054995536747,52.37749099731439],[-2.001945018768254,52.39278030395508],[-1.983054995536747,52.41777038574224],[-2.030555009841919,52.43693923950201],[-2.058332920074463,52.42248916625988],[-2.082776069641056,52.436100006103516],[-2.118889093399048,52.42221832275385],[-2.153856039047241,52.423000335693416],[-2.158890008926335,52.47748947143555],[-2.177500009536743,52.5011100769043],[-2.134443998336735,52.5152702331543],[-2.12611198425293,52.544441223144645],[-2.157500028610229,52.54639053344732],[-2.174444913864136,52.567501068115234],[-2.200557947158757,52.579441070556754],[-2.180556058883667,52.599998474121094],[-2.144166946411132,52.61278152465826],[-2.131109952926579,52.629440307617244],[-2.097500085830575,52.63415908813482],[-2.066389083862248,52.60805892944347],[-2.025834083557072,52.61610031127924],[-1.952499032020512,52.637500762939446],[-1.934445977210999,52.66527938842785],[-1.897222995758,52.649440765380966],[-1.896389007568303,52.617488861083984],[-1.875277042388859,52.58639144897461],[-1.855556011199895,52.57555007934576],[-1.815001010894719,52.590831756591854],[-1.777673006057739,52.575420379638786],[-1.753056049346867,52.54666137695318],[-1.733332037925663,52.5116691589356],[-1.741111040115356,52.49750137329101],[-1.682500958442688,52.43972015380871],[-1.661666989326477,52.42472076416015],[-1.619444012641793,52.444438934326115],[-1.455000042915287,52.43804931640619],[-1.438053965568486,52.429439544677734],[-1.431666016578617,52.383609771728516],[-1.46277904510498,52.36582946777343],[-1.510833978652954,52.36748886108404],[-1.536944031715336,52.35583114624029],[-1.562777996063176,52.37221908569335],[-1.682500958442688,52.34249877929682],[-1.714722990989628,52.35527038574213],[-1.751667976379281,52.34749984741222],[-1.79694497585291,52.35221862792963],[-1.82249903678894,52.3763885498048],[-1.844444990158081,52.383609771728516]]]},"properties":{"ID_0":242,"ISO":"GB-WM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":106,"NAME_2":"West Midlands","TYPE_2":"Metropolitan County","ENGTYPE_2":"Metropolitan County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.932498991489297,50.8398818969726],[-0.92333197593689,50.86526870727545],[-0.952500998973846,50.89194107055669],[-0.921666026115417,50.92055892944341],[-0.930832982063237,50.943889617920036],[-0.893055975437164,50.993610382080135],[-0.890833973884526,51.00999069213867],[-0.866110026836395,51.028049468994084],[-0.862500011920929,51.043609619140625],[-0.828611016273442,51.063610076904354],[-0.788056015968266,51.06055068969732],[-0.774721026420479,51.08110809326183],[-0.753660023212376,51.08871078491211],[-0.731109976768494,51.078048706054744],[-0.688054978847504,51.07083129882824],[-0.626668989658299,51.084438323974666],[-0.60166597366333,51.07611083984381],[-0.541387975215912,51.07915878295893],[-0.475555002689305,51.09527969360357],[-0.420556992292404,51.096939086914176],[-0.351666003465596,51.11500167846691],[-0.302500009536743,51.116661071777344],[-0.181944996118546,51.161380767822266],[-0.14138799905777,51.15222167968755],[-0.119167000055256,51.134441375732536],[-0.076110996305943,51.14139175415039],[-0.053334001451731,51.13528060913086],[0.021364999935145,51.135879516601676],[0.036667000502405,51.11138153076177],[0.01472099963587,51.0980491638183],[-0.021111000329142,51.090549468994254],[0.019168000668344,51.05054092407238],[-0.006665999535414,51.02249908447271],[-0.015832999721113,50.981941223144645],[-0.044167000800371,50.98083114624029],[-0.067501001060009,50.993328094482365],[-0.105555996298733,50.970279693603516],[-0.093888998031616,50.94944000244146],[-0.116944000124818,50.92694091796881],[-0.128588005900383,50.88260269165044],[-0.152777001261711,50.89139175415045],[-0.181667000055313,50.872501373291065],[-0.213330999016762,50.87498855590826],[-0.230278998613301,50.85694122314459],[-0.207498997449875,50.82641601562506],[-0.282501012086868,50.82624816894537],[-0.36472299695015,50.80902862548828],[-0.445279002189579,50.80180740356456],[-0.540278017520848,50.80180740356456],[-0.599165976047402,50.7904167175293],[-0.654721975326424,50.78541564941412],[-0.730278015136719,50.77069473266613],[-0.758055984973907,50.75291824340826],[-0.785834014415741,50.72208404541021],[-0.835277974605503,50.749305725097656],[-0.916944026947021,50.779861450195305],[-0.894721984863281,50.79180526733404],[-0.94472199678421,50.819583892822266],[-0.932498991489297,50.8398818969726]]]},"properties":{"ID_0":242,"ISO":"GB-WSX","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":107,"NAME_2":"West Sussex","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.816110968589726,53.51610946655279],[-1.870833039283696,53.532218933105526],[-1.897222995758,53.53305053710949],[-1.937777996063176,53.5680503845216],[-1.97694194316864,53.593891143798885],[-1.988055944442749,53.6147193908692],[-2.01694393157959,53.61861038208002],[-2.035001039505005,53.646938323974666],[-2.031388998031616,53.663330078124936],[-2.046390056610051,53.68416976928722],[-2.098612070083618,53.67193984985357],[-2.15134596824646,53.69654846191406],[-2.159722089767456,53.725559234619254],[-2.121388912200871,53.755268096923885],[-2.120558023452759,53.7913818359375],[-2.095555067062378,53.810550689697266],[-2.047224044799748,53.82444000244146],[-2.032510042190552,53.84766006469738],[-2.002779006957951,53.86999893188471],[-1.966109991073608,53.87638854980463],[-1.973610043525696,53.91722106933594],[-1.950834989547729,53.93193817138672],[-1.943611979484501,53.957771301269645],[-1.901944994926396,53.95499038696294],[-1.871762990951538,53.9404411315918],[-1.79778003692627,53.94305038452142],[-1.728610038757267,53.90277099609374],[-1.641389966011047,53.907218933105526],[-1.583333015441838,53.900829315185604],[-1.549167037010193,53.90861129760747],[-1.534446001052856,53.93526840209961],[-1.507187962532043,53.91077041625988],[-1.454722046852055,53.90610885620117],[-1.386667013168221,53.9394416809082],[-1.333611011505127,53.94499969482433],[-1.294167995452824,53.9255485534668],[-1.307777047157288,53.89471817016607],[-1.305557012557869,53.860828399658146],[-1.326110005378666,53.846378326416016],[-1.305276989936772,53.819721221923885],[-1.307500958442574,53.79027938842773],[-1.288612008094788,53.77027130126959],[-1.304167032241764,53.749721527099666],[-1.259443044662419,53.71776962280285],[-1.219980001449585,53.714698791503906],[-1.245278000831547,53.67193984985357],[-1.246947050094548,53.63555145263671],[-1.229943990707341,53.620719909668026],[-1.24333202838892,53.59693908691417],[-1.305276989936772,53.57611083984386],[-1.344444036483708,53.58082962036144],[-1.367776989936829,53.59888076782232],[-1.423889994621277,53.59498977661133],[-1.448055028915405,53.600830078125],[-1.485000014305115,53.59222030639654],[-1.535277962684631,53.593608856201286],[-1.560556054115239,53.60667037963873],[-1.584167957305851,53.59777069091797],[-1.615278005599975,53.56333160400402],[-1.674445986747685,53.54999923706055],[-1.714722990989628,53.55472183227539],[-1.771667957305851,53.53527069091802],[-1.80666601657856,53.531940460205135],[-1.816110968589726,53.51610946655279]]]},"properties":{"ID_0":242,"ISO":"GB-WY","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":108,"NAME_2":"West Yorkshire","TYPE_2":"Metropolitan County","ENGTYPE_2":"Metropolitan County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.211057007312775,51.522098541259766],[-0.178977996110916,51.52835083007818],[-0.145739004015809,51.52985763549816],[-0.121914997696877,51.509796142578125],[-0.102742999792099,51.51198959350586],[-0.0998620018363,51.507091522216854],[-0.103221997618618,51.502265930175895],[-0.121486999094429,51.476806640625],[-0.138977006077766,51.47813796997082],[-0.166424006223679,51.492107391357365],[-0.198547005653381,51.5209007263183],[-0.211057007312775,51.522098541259766]]]},"properties":{"ID_0":242,"ISO":"GB-WSM","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":109,"NAME_2":"Westminster","TYPE_2":"London Borough (city)","ENGTYPE_2":"London Borough (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.290097951889038,51.324958801269524],[-2.296669006347543,51.34027099609381],[-2.333611011505127,51.34693908691411],[-2.279999017715397,51.37250137329113],[-2.280632972717285,51.420318603515625],[-2.286946058273315,51.4813804626466],[-2.313333988189697,51.49388885498058],[-2.280555009841862,51.509990692138786],[-2.245275974273682,51.518608093261776],[-2.271603107452279,51.57722091674805],[-2.240000009536686,51.579158782959034],[-2.191667079925537,51.59833145141613],[-2.148890018463078,51.58943939208996],[-2.101109981536752,51.620281219482365],[-2.057219982147217,51.664161682128956],[-1.988055944442749,51.64582824707037],[-1.94861102104187,51.63999938964855],[-1.940000057220402,51.66305923461914],[-1.887222051620483,51.66249847412121],[-1.866387963294983,51.673328399658196],[-1.832777976989632,51.656658172607536],[-1.79583299159998,51.694438934326286],[-1.777338027954045,51.660419464111385],[-1.749668955802917,51.65884017944336],[-1.756611943244934,51.642284393310604],[-1.831205010414124,51.565959930419915],[-1.839010953903141,51.546875],[-1.834674000740051,51.50784683227545],[-1.810387969016972,51.480091094970646],[-1.760949015617371,51.46274185180663],[-1.697631955146789,51.46014022827154],[-1.600487947463989,51.490497589111385],[-1.580399990081673,51.50305557250982],[-1.550554990768433,51.46139144897455],[-1.528332948684692,51.4513893127442],[-1.521944999694767,51.4258308410645],[-1.56333398818964,51.4122200012207],[-1.533334016799813,51.37749099731445],[-1.498057007789498,51.366100311279354],[-1.486946940422058,51.332500457763665],[-1.52666699886322,51.32971954345703],[-1.519999027252197,51.30250167846691],[-1.539168000221252,51.275550842285156],[-1.538334012031441,51.24499893188482],[-1.579723000526428,51.257770538330135],[-1.628057003021183,51.234161376953125],[-1.696388006210327,51.23666000366222],[-1.685279011726379,51.20528030395508],[-1.65499901771534,51.17139053344732],[-1.647778034210148,51.14999008178711],[-1.65277898311615,51.12638854980469],[-1.621947050094548,51.108329772949276],[-1.631389021873474,51.08610916137701],[-1.620278000831604,51.0541610717774],[-1.621947050094548,51.03416061401367],[-1.59666895866394,51.01749038696295],[-1.621389985084534,50.99472045898449],[-1.599722981452885,50.9769401550293],[-1.610558032989502,50.95972061157238],[-1.65499901771534,50.950271606445426],[-1.698055982589722,50.97499847412115],[-1.740556955337468,50.97805023193365],[-1.810832023620548,50.99277114868163],[-1.837499976158085,51.00915908813471],[-1.92641901969904,50.999519348144645],[-1.950001001358032,50.98833084106457],[-1.970278024673462,50.99277114868163],[-1.996111989021301,50.97748947143566],[-2.033334970474186,50.97166061401373],[-2.058888912200928,50.95999908447276],[-2.099168062210083,50.955829620361385],[-2.123333930969238,50.98110961914068],[-2.144166946411132,50.98611068725585],[-2.194166898727303,51.04388046264643],[-2.238610029220581,51.07138824462902],[-2.321666002273502,51.08332824707031],[-2.347500085830688,51.09498977661127],[-2.348891019821167,51.1177711486817],[-2.266109943389892,51.20888900756836],[-2.252501010894775,51.24472045898443],[-2.236109972000065,51.26416015625006],[-2.242779016494751,51.28527069091796],[-2.271110057830811,51.295829772949276],[-2.26694393157959,51.316379547119254],[-2.290097951889038,51.324958801269524]]]},"properties":{"ID_0":242,"ISO":"GB-WIL","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":110,"NAME_2":"Wiltshire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-1.75777804851532,52.10583114624035],[-1.778331995010376,52.098880767822266],[-1.813889026641846,52.068889617919865],[-1.843055009841919,52.07305145263672],[-1.863332033157349,52.06277084350597],[-1.827777981758004,52.034439086914176],[-1.843611001968384,52.007770538330135],[-1.878888964652901,52.028049468994254],[-1.904167056083679,52.03139114379888],[-1.970834016799927,52.02611160278332],[-2.030833005905151,52],[-2.07166600227356,52.007770538330135],[-2.143285036086979,52.006328582763615],[-2.114902973174992,52.04222106933605],[-2.164720058441048,52.04055023193371],[-2.176332950592041,52.007350921630916],[-2.174724102020264,51.98778152465832],[-2.208055973052979,51.99082946777344],[-2.234168052673283,51.96416091918956],[-2.307776927947998,51.97360992431635],[-2.341665983200016,52.01499938964838],[-2.351562023162785,52.01398468017583],[-2.349762916564941,52.106773376464844],[-2.360050916671696,52.12220382690435],[-2.392200946807861,52.13120651245128],[-2.410203933715707,52.15692520141607],[-2.406347990035954,52.205791473388786],[-2.415348052978516,52.21993637084972],[-2.45778489112854,52.23022460937506],[-2.447496891021672,52.25851440429699],[-2.488646984100342,52.26494598388677],[-2.527225971221924,52.24308395385742],[-2.606956958770752,52.241798400878906],[-2.618530988693237,52.252086639404354],[-2.615957021713143,52.27780532836914],[-2.631388902664185,52.29195022583013],[-2.64086389541626,52.33226013183594],[-2.616389989852905,52.324169158935604],[-2.59777903556818,52.30527114868164],[-2.555556058883667,52.30860900878906],[-2.546945095062199,52.330280303955135],[-2.525279998779297,52.33972167968756],[-2.493057012557927,52.32666015624994],[-2.46777701377863,52.33721923828125],[-2.46972107887268,52.35721969604503],[-2.410279035568237,52.36333084106456],[-2.390558004379272,52.383609771728516],[-2.327501058578491,52.38972091674805],[-2.350486040115243,52.423778533935604],[-2.339446067810002,52.43444061279297],[-2.304723024368229,52.43082809448248],[-2.286118984222298,52.444629669189396],[-2.260555982589664,52.43638992309582],[-2.220556974410954,52.43555068969732],[-2.171113014221191,52.421661376953125],[-2.153856039047241,52.423000335693416],[-2.118889093399048,52.42221832275385],[-2.082776069641056,52.436100006103516],[-2.058332920074463,52.42248916625988],[-2.030555009841919,52.43693923950201],[-1.983054995536747,52.41777038574224],[-2.001945018768254,52.39278030395508],[-1.983054995536747,52.37749099731439],[-1.954723000526428,52.38694000244135],[-1.90055501461029,52.39278030395508],[-1.844444990158081,52.383609771728516],[-1.852777004241943,52.362499237060604],[-1.876945018768197,52.34471893310552],[-1.847499012947082,52.310001373291016],[-1.868057012557983,52.29888153076172],[-1.88277804851532,52.2741584777832],[-1.920001029968262,52.26610946655267],[-1.902778983116093,52.230548858642635],[-1.902222990989628,52.210548400878906],[-1.923056960105839,52.195270538330135],[-1.944447040557862,52.164718627929794],[-1.890872955322209,52.13365936279297],[-1.875262975692692,52.14947128295904],[-1.840831995010319,52.136108398437614],[-1.787222981452828,52.12944030761713],[-1.75777804851532,52.10583114624035]]]},"properties":{"ID_0":242,"ISO":"GB-WOR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":111,"NAME_2":"Worcestershire","TYPE_2":"Administrative County","ENGTYPE_2":"Administrative County","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-0.927909016609192,53.97192001342779],[-0.920831978321075,53.94388961791998],[-0.939999997615814,53.89194107055664],[-0.940470993518829,53.86803817749035],[-0.969289004802704,53.87131500244146],[-1.025182008743229,53.85734176635748],[-1.14116096496582,53.86013412475585],[-1.177492022514343,53.87690353393555],[-1.218013048171997,53.91463088989252],[-1.23478102684021,53.945373535156364],[-1.231986045837402,53.9691276550294],[-1.177492022514343,53.98030471801758],[-1.146749019622746,54.02781677246087],[-1.092252969741764,54.040390014648544],[-1.026579022407532,54.03899383544927],[-1.007017970085144,54.02781677246087],[-1.004220962524414,53.99008560180669],[-0.987452983856087,53.974716186523494],[-0.927909016609192,53.97192001342779]]]},"properties":{"ID_0":242,"ISO":"GB-YOR","NAME_0":"United Kingdom","ID_1":1,"NAME_1":"England","ID_2":112,"NAME_2":"York","TYPE_2":"Unitary Authority (city)","ENGTYPE_2":"Unitary Authority (city)","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.065834999084473,54.622768402099716],[-6.138055801391601,54.61861038208019],[-6.22972297668457,54.59165954589844],[-6.26403284072876,54.59251022338867],[-6.311635017394963,54.587226867675895],[-6.333023071289062,54.5984840393067],[-6.437018871307316,54.56887435913086],[-6.433769226074162,54.602985382080014],[-6.41801118850708,54.64013290405285],[-6.42082405090332,54.65476608276373],[-6.498589992523137,54.70628738403326],[-6.470020771026554,54.7678108215332],[-6.480641841888371,54.782779693603565],[-6.388610839843749,54.77666091918951],[-6.353055953979435,54.795829772949276],[-6.329721927642709,54.78860092163086],[-6.268055915832463,54.794441223144524],[-6.212778091430606,54.78194046020507],[-6.192500114440804,54.80221939086919],[-6.152501106262207,54.807220458984375],[-6.084166049957275,54.79193878173828],[-6.045557022094727,54.774440765380966],[-6.063610076904296,54.748050689697315],[-6.039721012115478,54.71416091918956],[-6.051390171051025,54.67110061645508],[-6.022499084472656,54.66249847412114],[-6.061666011810303,54.649440765380916],[-6.045557022094727,54.62971115112305],[-6.065834999084473,54.622768402099716]]]},"properties":{"ID_0":242,"ISO":"GB-ANT","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":113,"NAME_2":"Antrim","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.645833015441895,54.45875167846691],[-5.715835094451847,54.447219848632926],[-5.738056182861328,54.46054840087902],[-5.790832042694092,54.4661102294923],[-5.818612098693733,54.49166107177746],[-5.82333517074585,54.525829315185604],[-5.787777900695744,54.546939849853516],[-5.792778015136719,54.55916976928711],[-5.754724025726262,54.58332824707036],[-5.756946086883488,54.61582946777355],[-5.72888708114624,54.628879547119254],[-5.698892116546631,54.61861038208019],[-5.650002002716064,54.61888885498058],[-5.616114139556885,54.630268096923764],[-5.604722023010254,54.64582824707031],[-5.577221870422306,54.6536102294923],[-5.571944236755257,54.6687583923341],[-5.525279045104924,54.64041519165039],[-5.534722805023193,54.62402725219726],[-5.520277976989746,54.59597396850586],[-5.477500915527344,54.56430435180664],[-5.485834121704102,54.54902648925787],[-5.461390018463078,54.49597167968756],[-5.432499885559082,54.48736190795909],[-5.434721946716309,54.47041702270502],[-5.461390018463078,54.43930435180675],[-5.479721069335881,54.430694580078125],[-5.461944103240967,54.41236114501953],[-5.462500095367432,54.38236236572277],[-5.491387844085637,54.35514068603515],[-5.496387958526611,54.3323593139649],[-5.525832176208496,54.34180450439453],[-5.528055191040039,54.35930633544933],[-5.558610916137695,54.3848609924317],[-5.578609943389893,54.39152908325195],[-5.577499866485539,54.413471221923885],[-5.544166088104248,54.43486022949213],[-5.543612003326416,54.486526489257926],[-5.556944847106877,54.53152847290039],[-5.581944942474364,54.53152847290039],[-5.614167213439941,54.5584716796875],[-5.639722824096623,54.56097412109375],[-5.684721946716309,54.58235931396484],[-5.706943988800049,54.53736114501959],[-5.658055782318115,54.51486206054693],[-5.645833015441895,54.45875167846691]]]},"properties":{"ID_0":242,"ISO":"GB-ARD","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":114,"NAME_2":"Ards","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.360001087188607,54.27693939208984],[-6.400834083557129,54.27637863159185],[-6.445003032684326,54.268329620361385],[-6.485556125640869,54.253608703613395],[-6.511943817138672,54.225830078125],[-6.537777900695687,54.23471832275402],[-6.576944828033447,54.21694183349615],[-6.605278968810978,54.218330383300895],[-6.64686393737793,54.18768692016607],[-6.687240123748779,54.20381546020508],[-6.73123121261591,54.18588638305664],[-6.749739170074463,54.20280838012707],[-6.77783203125,54.20781326293945],[-6.810042858123779,54.225318908691456],[-6.827834129333439,54.26260757446294],[-6.858615875244141,54.27651214599621],[-6.850320816039925,54.2956047058106],[-6.863120555877629,54.32888412475597],[-6.829998970031738,54.3413810729981],[-6.832777976989689,54.358890533447266],[-6.805552959442139,54.38026809692383],[-6.810277938842773,54.40111160278325],[-6.795835018157901,54.41305923461914],[-6.717223167419434,54.40388107299805],[-6.695556163787785,54.43138885498058],[-6.698890209197941,54.444438934326286],[-6.658054828643798,54.46416091918945],[-6.613058090209961,54.44944000244146],[-6.554677963256779,54.4633903503418],[-6.510280132293701,54.41833114624035],[-6.484446048736572,54.416938781738274],[-6.48416805267334,54.39527130126959],[-6.462224006652775,54.37833023071289],[-6.434999942779484,54.37722015380871],[-6.405278205871525,54.393878936767635],[-6.374722003936768,54.34083175659185],[-6.377778053283691,54.29333114624029],[-6.360001087188607,54.27693939208984]]]},"properties":{"ID_0":242,"ISO":"GB-ARM","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":115,"NAME_2":"Armagh","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.006947040557804,54.798610687255916],[-6.084166049957275,54.79193878173828],[-6.152501106262207,54.807220458984375],[-6.192500114440804,54.80221939086919],[-6.212778091430606,54.78194046020507],[-6.268055915832463,54.794441223144524],[-6.329721927642709,54.78860092163086],[-6.353055953979435,54.795829772949276],[-6.388610839843749,54.77666091918951],[-6.480641841888371,54.782779693603565],[-6.471110820770264,54.827499389648494],[-6.491387844085693,54.89054870605469],[-6.506910800933781,54.9160614013673],[-6.460000038146973,54.9177703857423],[-6.433611869812012,54.91083145141596],[-6.451388835906982,54.960548400878906],[-6.370276927947884,54.96998977661133],[-6.325555801391602,55.00305175781244],[-6.287222862243652,55.00165939331054],[-6.24222183227539,55.0111083984375],[-6.192500114440804,55.02833175659173],[-6.168890953063964,55.02193832397466],[-6.140277862548828,54.98638153076177],[-6.101945877075138,54.98693847656256],[-6.035275936126652,54.94832992553716],[-6.023612022399902,54.93471908569336],[-6.038888931274414,54.89665985107422],[-6.028334140777531,54.85916137695318],[-5.998331069946289,54.850830078125114],[-5.965001106262093,54.85499954223633],[-5.944724082946721,54.83277130126953],[-5.959167003631591,54.820831298828175],[-6.019443035125732,54.81859970092779],[-6.006947040557804,54.798610687255916]]]},"properties":{"ID_0":242,"ISO":"GB-BLA","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":116,"NAME_2":"Ballymena","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.506910800933781,54.9160614013673],[-6.520390033721867,54.945171356201115],[-6.552501201629582,54.95943832397472],[-6.551391124725342,54.97639083862316],[-6.581943035125732,54.995281219482536],[-6.591946125030518,55.020271301269524],[-6.582499027252197,55.04055023193364],[-6.61384391784668,55.076698303222656],[-6.578608036041203,55.098049163818416],[-6.572781085968018,55.13109970092785],[-6.515277862548828,55.14915847778325],[-6.477777004241887,55.148609161377],[-6.425280094146615,55.126110076904354],[-6.395277023315429,55.13777160644531],[-6.363891124725342,55.12833023071288],[-6.346389770507812,55.10889053344732],[-6.324165821075439,55.10416030883795],[-6.228055000305176,55.12054824829107],[-6.235280036926269,55.08887863159185],[-6.22972297668457,55.06859970092773],[-6.192500114440804,55.02833175659173],[-6.24222183227539,55.0111083984375],[-6.287222862243652,55.00165939331054],[-6.325555801391602,55.00305175781244],[-6.370276927947884,54.96998977661133],[-6.451388835906982,54.960548400878906],[-6.433611869812012,54.91083145141596],[-6.460000038146973,54.9177703857423],[-6.506910800933781,54.9160614013673]]]},"properties":{"ID_0":242,"ISO":"GB-BLY","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":117,"NAME_2":"Ballymoney","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.950353145599364,54.379711151123104],[-5.939445018768311,54.36278152465826],[-5.970555782318115,54.341110229492244],[-5.96722412109375,54.32054901123058],[-5.947500228881836,54.29055023193365],[-5.965557098388672,54.28416061401373],[-5.988891124725285,54.24528121948248],[-6.037775993347168,54.26361083984375],[-6.045279026031493,54.24666976928722],[-6.073610782623291,54.25249099731451],[-6.115003108978215,54.24222183227545],[-6.192224025726318,54.24610900878912],[-6.28194522857666,54.265270233154354],[-6.343889236450138,54.265270233154354],[-6.360001087188607,54.27693939208984],[-6.377778053283691,54.29333114624029],[-6.374722003936768,54.34083175659185],[-6.405278205871525,54.393878936767635],[-6.391666889190674,54.40111160278325],[-6.329999923706055,54.39139175415045],[-6.237780094146672,54.397499084472656],[-6.214724063873291,54.41276931762707],[-6.210473060607852,54.43323898315423],[-6.166388034820557,54.444160461425895],[-6.136943817138671,54.43722152709972],[-6.059999942779483,54.40748977661127],[-6.064167022705078,54.388328552246094],[-6.00916910171503,54.37638854980474],[-5.950353145599364,54.379711151123104]]]},"properties":{"ID_0":242,"ISO":"GB-BNB","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":118,"NAME_2":"Banbridge","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.913610935211125,54.64651870727539],[-5.885832786560059,54.62553024291992],[-5.807776927947941,54.6144409179688],[-5.816112041473388,54.59304809570318],[-5.894721984863281,54.582218170166016],[-5.954721927642765,54.55443954467779],[-6.031668186187687,54.58082962036144],[-6.042778968811034,54.60832977294927],[-6.065834999084473,54.622768402099716],[-6.045557022094727,54.62971115112305],[-6.061666011810303,54.649440765380916],[-6.022499084472656,54.66249847412114],[-5.983891010284424,54.66305923461908],[-5.965001106262093,54.646938323974666],[-5.940557956695557,54.65972137451166],[-5.913610935211125,54.64651870727539]]]},"properties":{"ID_0":242,"ISO":"GB-BFS","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":119,"NAME_2":"Belfast","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.878611087799015,54.68295288085949],[-5.905835151672363,54.71221923828125],[-5.889164924621525,54.76943969726562],[-5.7911119461059,54.77666091918951],[-5.742219924926701,54.7638893127442],[-5.690833091735782,54.770694732666016],[-5.71194410324091,54.74514007568371],[-5.764165878295842,54.71958160400402],[-5.778055191040038,54.72319412231445],[-5.8313889503479,54.70819473266607],[-5.878611087799015,54.68295288085949]]]},"properties":{"ID_0":242,"ISO":"GB-CKF","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":120,"NAME_2":"Carrickfergus","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.818612098693733,54.49166107177746],[-5.868053913116455,54.479160308838004],[-5.897223949432316,54.5013885498048],[-5.92389011383051,54.5397186279298],[-5.954721927642765,54.55443954467779],[-5.894721984863281,54.582218170166016],[-5.816112041473388,54.59304809570318],[-5.807776927947941,54.6144409179688],[-5.756946086883488,54.61582946777355],[-5.754724025726262,54.58332824707036],[-5.792778015136719,54.55916976928711],[-5.787777900695744,54.546939849853516],[-5.82333517074585,54.525829315185604],[-5.818612098693733,54.49166107177746]]]},"properties":{"ID_0":242,"ISO":"GB-CSR","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":121,"NAME_2":"Castlereagh","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.520390033721867,54.945171356201115],[-6.541944026947021,54.92832946777343],[-6.58527994155878,54.921661376953125],[-6.640554904937743,54.93444061279296],[-6.655279159545842,54.92332839965826],[-6.694724082946777,54.9161109924317],[-6.736947059631348,54.928890228271534],[-6.781112194061222,54.91110992431635],[-6.795279026031437,54.956939697265625],[-6.808611869812012,54.968891143798885],[-6.780002117156982,54.99082946777355],[-6.809721946716309,55.008609771728565],[-6.806943893432616,55.07054901123058],[-6.821389198303166,55.10194015502923],[-6.862224102020264,55.12554931640625],[-6.839612960815373,55.1662483215332],[-6.730278015136662,55.17041778564459],[-6.709167003631591,55.19374847412121],[-6.605278968810978,55.20597076416027],[-6.541470050811711,55.22124862670904],[-6.524167060852051,55.18861007690429],[-6.515277862548828,55.14915847778325],[-6.572781085968018,55.13109970092785],[-6.578608036041203,55.098049163818416],[-6.61384391784668,55.076698303222656],[-6.582499027252197,55.04055023193364],[-6.591946125030518,55.020271301269524],[-6.581943035125732,54.995281219482536],[-6.551391124725342,54.97639083862316],[-6.552501201629582,54.95943832397472],[-6.520390033721867,54.945171356201115]]]},"properties":{"ID_0":242,"ISO":"GB-CLR","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":122,"NAME_2":"Coleraine","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.437018871307316,54.56887435913086],[-6.527803897857666,54.53982162475597],[-6.637776851654053,54.56583023071289],[-6.714723110198975,54.55138015747076],[-6.73861122131342,54.57221984863281],[-6.766666889190673,54.563888549804744],[-6.823891162872314,54.575828552246094],[-6.89611291885376,54.56444168090832],[-6.961391925811768,54.57666015625006],[-6.94999980926508,54.60610961914074],[-6.972221851348876,54.643051147460994],[-6.968890190124512,54.66305923461908],[-7.000277996063232,54.674720764160206],[-6.987779140472412,54.693599700927734],[-6.994999885559082,54.730831146240234],[-6.969724178314209,54.7416610717774],[-6.945278167724609,54.72943878173833],[-6.890833854675293,54.728328704833984],[-6.826388835906926,54.74082946777344],[-6.781112194061222,54.730831146240234],[-6.761109828948918,54.736110687255795],[-6.721389770507812,54.70610809326172],[-6.683610916137638,54.695831298828125],[-6.60027599334711,54.716110229492244],[-6.573609828948975,54.71194076538086],[-6.559445858001709,54.7272186279298],[-6.498589992523137,54.70628738403326],[-6.42082405090332,54.65476608276373],[-6.41801118850708,54.64013290405285],[-6.433769226074162,54.602985382080014],[-6.437018871307316,54.56887435913086]]]},"properties":{"ID_0":242,"ISO":"GB-CKT","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":123,"NAME_2":"Cookstown","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.26403284072876,54.59251022338867],[-6.284166812896729,54.564159393310604],[-6.273612022399902,54.522220611572315],[-6.239168167114258,54.50222015380859],[-6.252501010894775,54.485549926757926],[-6.241943836212158,54.46665954589855],[-6.212502002716064,54.44971084594732],[-6.210473060607852,54.43323898315423],[-6.214724063873291,54.41276931762707],[-6.237780094146672,54.397499084472656],[-6.329999923706055,54.39139175415045],[-6.391666889190674,54.40111160278325],[-6.405278205871525,54.393878936767635],[-6.434999942779484,54.37722015380871],[-6.462224006652775,54.37833023071289],[-6.48416805267334,54.39527130126959],[-6.484446048736572,54.416938781738274],[-6.510280132293701,54.41833114624035],[-6.554677963256779,54.4633903503418],[-6.565278053283691,54.493610382080135],[-6.583611011505069,54.50833129882812],[-6.527803897857666,54.53982162475597],[-6.437018871307316,54.56887435913086],[-6.333023071289062,54.5984840393067],[-6.311635017394963,54.587226867675895],[-6.26403284072876,54.59251022338867]]]},"properties":{"ID_0":242,"ISO":"GB-CGV","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":124,"NAME_2":"Craigavon","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.147499084472599,55.05067443847661],[-7.174167156219482,55.03165817260748],[-7.153056144714355,55.018051147460994],[-7.131112098693847,54.983329772949276],[-7.086945056915283,54.983600616455135],[-7.097776889800969,54.96472167968744],[-7.083332061767521,54.924438476562614],[-7.053055763244629,54.91138076782238],[-7.040555000305062,54.86861038208013],[-7.039444923400879,54.83887863159191],[-7.010279178619385,54.81555175781244],[-7.069445133209229,54.80582809448248],[-7.109447002410832,54.81388854980469],[-7.162221908569337,54.85110092163097],[-7.195557117462158,54.84498977661144],[-7.209445953369141,54.883609771728516],[-7.276389122009277,54.88721084594726],[-7.262221813201847,54.91389083862299],[-7.317502021789437,54.92248916625976],[-7.373888015746956,54.91804885864269],[-7.414719104766845,54.94377136230469],[-7.392883777618408,54.94592285156256],[-7.400813102722167,54.98300170898449],[-7.380218982696476,55.02537155151372],[-7.347958087921142,55.04896926879883],[-7.305460929870605,55.04806137084966],[-7.263638973236084,55.066703796386825],[-7.233612060546875,55.05541610717768],[-7.176945209503174,55.06069564819347],[-7.147499084472599,55.05067443847661]]]},"properties":{"ID_0":242,"ISO":"GB-DRY","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":125,"NAME_2":"Derry","TYPE_2":"District","ENGTYPE_2":"London Borough (city)","NL_NAME_2":null,"VARNAME_2":"Londonderry"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.874722957611084,54.184402465820426],[-5.925000190734863,54.17889022827154],[-5.966114044189396,54.19359970092779],[-6.00389003753662,54.18555068969732],[-6.032224178314152,54.171100616455135],[-6.055277824401855,54.20166015625005],[-6.062778949737548,54.23083114624035],[-6.045279026031493,54.24666976928722],[-6.037775993347168,54.26361083984375],[-5.988891124725285,54.24528121948248],[-5.965557098388672,54.28416061401373],[-5.947500228881836,54.29055023193365],[-5.96722412109375,54.32054901123058],[-5.970555782318115,54.341110229492244],[-5.939445018768311,54.36278152465826],[-5.950353145599364,54.379711151123104],[-5.932500839233342,54.3905487060548],[-5.942780017852783,54.40972137451172],[-5.910000801086426,54.43333053588873],[-5.915555953979492,54.44971084594732],[-5.868053913116455,54.479160308838004],[-5.818612098693733,54.49166107177746],[-5.790832042694092,54.4661102294923],[-5.738056182861328,54.46054840087902],[-5.715835094451847,54.447219848632926],[-5.645833015441895,54.45875167846691],[-5.626944065093936,54.43458175659179],[-5.645833015441895,54.41791534423828],[-5.640276908874512,54.40013885498041],[-5.664722919464111,54.365695953369254],[-5.589167118072452,54.38458251953131],[-5.556944847106877,54.37652587890625],[-5.538611888885498,54.337081909179744],[-5.539721012115479,54.31208419799815],[-5.558610916137695,54.28736114501964],[-5.598055839538517,54.260417938232365],[-5.63638877868641,54.25041580200201],[-5.650278091430607,54.2293052673341],[-5.674168109893799,54.234027862548885],[-5.691389083862248,54.25125122070318],[-5.747498989105225,54.252361297607536],[-5.830832958221436,54.24041748046881],[-5.891389846801701,54.20680618286144],[-5.874722957611084,54.184402465820426]]]},"properties":{"ID_0":242,"ISO":"GB-DOW","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":126,"NAME_2":"Down","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.863120555877629,54.32888412475597],[-6.869012832641488,54.34420394897461],[-6.900617122650146,54.35240173339855],[-6.90691423416132,54.375503540039176],[-7.003812789916991,54.419204711914006],[-7.041902065276986,54.415897369384766],[-7.102208137512206,54.371002197265625],[-7.100008964538517,54.35840606689453],[-7.148999214172362,54.33770751953131],[-7.173195838928166,54.336410522461044],[-7.183473110198975,54.31648254394537],[-7.190278053283634,54.33694076538086],[-7.231667041778564,54.32194137573247],[-7.253057003021239,54.32833099365239],[-7.277779102325439,54.36333084106451],[-7.316112041473332,54.36582946777344],[-7.33861398696888,54.38360977172863],[-7.329720020294189,54.4033317565918],[-7.364448070526065,54.4302711486817],[-7.310554981231689,54.43666076660162],[-7.264165878295898,54.44832992553711],[-7.23083305358881,54.44832992553711],[-7.216668128967228,54.459438323974666],[-7.170001029968204,54.470550537109375],[-7.125277042388801,54.468891143798764],[-7.090557098388672,54.493610382080135],[-7.037776947021484,54.50305175781256],[-7.026668071746769,54.51943969726568],[-7.001667976379395,54.52165985107421],[-6.972777843475284,54.5380592346192],[-6.975275993347053,54.55804824829107],[-6.961391925811768,54.57666015625006],[-6.89611291885376,54.56444168090832],[-6.823891162872314,54.575828552246094],[-6.766666889190673,54.563888549804744],[-6.73861122131342,54.57221984863281],[-6.714723110198975,54.55138015747076],[-6.637776851654053,54.56583023071289],[-6.527803897857666,54.53982162475597],[-6.583611011505069,54.50833129882812],[-6.565278053283691,54.493610382080135],[-6.554677963256779,54.4633903503418],[-6.613058090209961,54.44944000244146],[-6.658054828643798,54.46416091918945],[-6.698890209197941,54.444438934326286],[-6.695556163787785,54.43138885498058],[-6.717223167419434,54.40388107299805],[-6.795835018157901,54.41305923461914],[-6.810277938842773,54.40111160278325],[-6.805552959442139,54.38026809692383],[-6.832777976989689,54.358890533447266],[-6.829998970031738,54.3413810729981],[-6.863120555877629,54.32888412475597]]]},"properties":{"ID_0":242,"ISO":"GB-DGN","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":127,"NAME_2":"Dungannon","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.711314201354924,54.60568237304693],[-7.693334102630558,54.600830078125],[-7.670000076293888,54.578609466552734],[-7.638611793518066,54.57971954345709],[-7.597500801086312,54.56138992309581],[-7.548889160156249,54.56528091430664],[-7.578610897064153,54.505550384521484],[-7.559721946716309,54.45637893676757],[-7.559165954589843,54.429161071777344],[-7.508056163787842,54.40499877929693],[-7.420557975769043,54.43610000610345],[-7.364448070526065,54.4302711486817],[-7.329720020294189,54.4033317565918],[-7.33861398696888,54.38360977172863],[-7.316112041473332,54.36582946777344],[-7.277779102325439,54.36333084106451],[-7.253057003021239,54.32833099365239],[-7.231667041778564,54.32194137573247],[-7.190278053283634,54.33694076538086],[-7.183473110198975,54.31648254394537],[-7.20209789276123,54.29770660400385],[-7.149693965911865,54.27251052856445],[-7.142300128936654,54.227310180664176],[-7.204390048980713,54.21961212158209],[-7.240301132202148,54.205215454101506],[-7.242999076843263,54.170719146728565],[-7.274088859558105,54.124519348144474],[-7.303291797637939,54.16611862182623],[-7.325190067291259,54.14891815185558],[-7.306694984435978,54.133213043212834],[-7.333889961242618,54.11952590942383],[-7.372791767120304,54.13812255859374],[-7.41258001327509,54.13702011108393],[-7.428689956664982,54.154422760009766],[-7.463780879974308,54.14081954956066],[-7.473382949829102,54.125923156738274],[-7.523079872131292,54.13432312011719],[-7.554275035858153,54.12801742553722],[-7.581388950347844,54.14471817016601],[-7.617269992828312,54.150718688964844],[-7.624574184417667,54.172821044921875],[-7.665857791900635,54.18392562866222],[-7.690956115722656,54.20652389526372],[-7.76294994354248,54.20911788940423],[-7.82814598083496,54.20552444458007],[-7.847545146942138,54.218421936035156],[-7.854437828063907,54.25841522216791],[-7.877947807312012,54.29872131347656],[-7.90594482421875,54.295513153076115],[-7.942931175231933,54.30731582641613],[-7.970230102539062,54.340015411376946],[-8.003613471984863,54.36278152465826],[-8.042832374572697,54.36540985107433],[-8.092052459716683,54.408618927001896],[-8.147810935974064,54.437412261963004],[-8.137898445129395,54.47091293334966],[-8.11441612243641,54.469009399414055],[-8.067432403564396,54.48870849609374],[-8.03971958160389,54.49040222167969],[-8.018127441406191,54.52550506591797],[-7.996231079101562,54.543502807617244],[-7.927524089813175,54.5359001159668],[-7.829245090484563,54.54470062255871],[-7.819436073303223,54.56250381469738],[-7.739074230194034,54.60013580322271],[-7.711314201354924,54.60568237304693]]]},"properties":{"ID_0":242,"ISO":"GB-FER","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":128,"NAME_2":"Fermanagh","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.690833091735782,54.770694732666016],[-5.742219924926701,54.7638893127442],[-5.7911119461059,54.77666091918951],[-5.889164924621525,54.76943969726562],[-5.99027681350708,54.773048400878906],[-6.006947040557804,54.798610687255916],[-6.019443035125732,54.81859970092779],[-5.959167003631591,54.820831298828175],[-5.944724082946721,54.83277130126953],[-5.965001106262093,54.85499954223633],[-5.998331069946289,54.850830078125114],[-6.028334140777531,54.85916137695318],[-6.038888931274414,54.89665985107422],[-6.023612022399902,54.93471908569336],[-6.035275936126652,54.94832992553716],[-6.101945877075138,54.98693847656256],[-6.011666774749756,55.03443908691412],[-5.978576183319035,55.0573120117188],[-5.964167118072453,55.05125045776367],[-5.976387977600098,55.00680541992193],[-5.993054866790771,54.98930740356451],[-5.957500934600829,54.97041702270513],[-5.919166088104191,54.96263885498046],[-5.893611907958928,54.9359703063966],[-5.879723072051945,54.9095840454101],[-5.840278148651122,54.89736175537121],[-5.795279026031436,54.84875106811529],[-5.800833225250244,54.822639465332024],[-5.759722232818604,54.829029083251946],[-5.791388034820557,54.850418090820426],[-5.763055801391602,54.8595848083496],[-5.721944808959961,54.84624862670904],[-5.690833091735782,54.8095817565918],[-5.690833091735782,54.770694732666016]]]},"properties":{"ID_0":242,"ISO":"GB-LRN","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":129,"NAME_2":"Larne","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.781112194061222,54.91110992431635],[-6.768610954284611,54.90137863159185],[-6.776946067810059,54.86526870727539],[-6.811388015747013,54.84666061401373],[-6.889999866485596,54.851661682128906],[-6.888887882232666,54.830829620361385],[-6.917448043823185,54.81586074829101],[-6.942224025726261,54.82777023315435],[-6.991942882537784,54.825271606445426],[-7.010279178619385,54.81555175781244],[-7.039444923400879,54.83887863159191],[-7.040555000305062,54.86861038208013],[-7.053055763244629,54.91138076782238],[-7.083332061767521,54.924438476562614],[-7.097776889800969,54.96472167968744],[-7.086945056915283,54.983600616455135],[-7.131112098693847,54.983329772949276],[-7.153056144714355,55.018051147460994],[-7.174167156219482,55.03165817260748],[-7.147499084472599,55.05067443847661],[-7.133056163787842,55.04208374023443],[-7.053612232208251,55.048751831054744],[-7.023612022399846,55.06874847412114],[-7.011388778686466,55.106803894042905],[-6.98638916015625,55.11930465698236],[-6.952500820159912,55.192916870117244],[-6.890277862548828,55.169303894043026],[-6.839612960815373,55.1662483215332],[-6.862224102020264,55.12554931640625],[-6.821389198303166,55.10194015502923],[-6.806943893432616,55.07054901123058],[-6.809721946716309,55.008609771728565],[-6.780002117156982,54.99082946777355],[-6.808611869812012,54.968891143798885],[-6.795279026031437,54.956939697265625],[-6.781112194061222,54.91110992431635]]]},"properties":{"ID_0":242,"ISO":"GB-LMV","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":130,"NAME_2":"Limavady","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.26403284072876,54.59251022338867],[-6.22972297668457,54.59165954589844],[-6.138055801391601,54.61861038208019],[-6.065834999084473,54.622768402099716],[-6.042778968811034,54.60832977294927],[-6.031668186187687,54.58082962036144],[-5.954721927642765,54.55443954467779],[-5.92389011383051,54.5397186279298],[-5.897223949432316,54.5013885498048],[-5.868053913116455,54.479160308838004],[-5.915555953979492,54.44971084594732],[-5.910000801086426,54.43333053588873],[-5.942780017852783,54.40972137451172],[-5.932500839233342,54.3905487060548],[-5.950353145599364,54.379711151123104],[-6.00916910171503,54.37638854980474],[-6.064167022705078,54.388328552246094],[-6.059999942779483,54.40748977661127],[-6.136943817138671,54.43722152709972],[-6.166388034820557,54.444160461425895],[-6.210473060607852,54.43323898315423],[-6.212502002716064,54.44971084594732],[-6.241943836212158,54.46665954589855],[-6.252501010894775,54.485549926757926],[-6.239168167114258,54.50222015380859],[-6.273612022399902,54.522220611572315],[-6.284166812896729,54.564159393310604],[-6.26403284072876,54.59251022338867]]]},"properties":{"ID_0":242,"ISO":"GB-LSB","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":131,"NAME_2":"Lisburn","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.969724178314209,54.7416610717774],[-6.936667919158935,54.751941680908146],[-6.92972278594965,54.76778030395502],[-6.901113033294621,54.775550842285156],[-6.917448043823185,54.81586074829101],[-6.888887882232666,54.830829620361385],[-6.889999866485596,54.851661682128906],[-6.811388015747013,54.84666061401373],[-6.776946067810059,54.86526870727539],[-6.768610954284611,54.90137863159185],[-6.781112194061222,54.91110992431635],[-6.736947059631348,54.928890228271534],[-6.694724082946777,54.9161109924317],[-6.655279159545842,54.92332839965826],[-6.640554904937743,54.93444061279296],[-6.58527994155878,54.921661376953125],[-6.541944026947021,54.92832946777343],[-6.520390033721867,54.945171356201115],[-6.506910800933781,54.9160614013673],[-6.491387844085693,54.89054870605469],[-6.471110820770264,54.827499389648494],[-6.480641841888371,54.782779693603565],[-6.470020771026554,54.7678108215332],[-6.498589992523137,54.70628738403326],[-6.559445858001709,54.7272186279298],[-6.573609828948975,54.71194076538086],[-6.60027599334711,54.716110229492244],[-6.683610916137638,54.695831298828125],[-6.721389770507812,54.70610809326172],[-6.761109828948918,54.736110687255795],[-6.781112194061222,54.730831146240234],[-6.826388835906926,54.74082946777344],[-6.890833854675293,54.728328704833984],[-6.945278167724609,54.72943878173833],[-6.969724178314209,54.7416610717774]]]},"properties":{"ID_0":242,"ISO":"GB-MFT","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":132,"NAME_2":"Magherafelt","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.241390228271484,55.31263732910156],[-6.226388931274414,55.295696258545036],[-6.260832786560058,55.289585113525504],[-6.268611907958928,55.30708312988275],[-6.241390228271484,55.31263732910156]]],[[[-5.978576183319035,55.0573120117188],[-6.011666774749756,55.03443908691412],[-6.101945877075138,54.98693847656256],[-6.140277862548828,54.98638153076177],[-6.168890953063964,55.02193832397466],[-6.192500114440804,55.02833175659173],[-6.22972297668457,55.06859970092773],[-6.235280036926269,55.08887863159185],[-6.228055000305176,55.12054824829107],[-6.324165821075439,55.10416030883795],[-6.346389770507812,55.10889053344732],[-6.363891124725342,55.12833023071288],[-6.395277023315429,55.13777160644531],[-6.425280094146615,55.126110076904354],[-6.477777004241887,55.148609161377],[-6.515277862548828,55.14915847778325],[-6.524167060852051,55.18861007690429],[-6.541470050811711,55.22124862670904],[-6.504167079925537,55.24708175659191],[-6.470832824707031,55.25180435180669],[-6.453054904937744,55.24041748046881],[-6.333611011505126,55.23875045776367],[-6.289722919464111,55.230415344238224],[-6.236946105956974,55.204303741455135],[-6.179166793823242,55.213748931884766],[-6.156942844390869,55.227359771728565],[-6.065276145935002,55.19708251953125],[-6.030834197998047,55.16819381713867],[-6.024168014526367,55.139305114746094],[-6.040832996368408,55.131248474121094],[-6.034721851348877,55.1029167175293],[-6.054721832275391,55.08402633666986],[-6.05583381652832,55.05875015258795],[-6.040278911590519,55.05402755737316],[-5.978576183319035,55.0573120117188]]]]},"properties":{"ID_0":242,"ISO":"GB-MYL","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":133,"NAME_2":"Moyle","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.64686393737793,54.18768692016607],[-6.605278968810978,54.218330383300895],[-6.576944828033447,54.21694183349615],[-6.537777900695687,54.23471832275402],[-6.511943817138672,54.225830078125],[-6.485556125640869,54.253608703613395],[-6.445003032684326,54.268329620361385],[-6.400834083557129,54.27637863159185],[-6.360001087188607,54.27693939208984],[-6.343889236450138,54.265270233154354],[-6.28194522857666,54.265270233154354],[-6.192224025726318,54.24610900878912],[-6.115003108978215,54.24222183227545],[-6.073610782623291,54.25249099731451],[-6.045279026031493,54.24666976928722],[-6.062778949737548,54.23083114624035],[-6.055277824401855,54.20166015625005],[-6.032224178314152,54.171100616455135],[-6.00389003753662,54.18555068969732],[-5.966114044189396,54.19359970092779],[-5.925000190734863,54.17889022827154],[-5.874722957611084,54.184402465820426],[-5.874166011810302,54.1559715270996],[-5.885832786560059,54.12014007568354],[-5.90250110626215,54.099582672119254],[-6.000833988189697,54.05430603027355],[-6.012500762939452,54.04152679443371],[-6.060833930969181,54.02264022827148],[-6.064258098602295,54.04008865356456],[-6.120233058929443,54.10583877563482],[-6.289166927337533,54.11041641235357],[-6.317078113555851,54.09527587890631],[-6.331875801086369,54.113914489746094],[-6.358060836791991,54.10821533203131],[-6.350285053253174,54.082878112793026],[-6.389462947845402,54.065113067626896],[-6.427567005157471,54.061515808105526],[-6.472287178039551,54.06690979003917],[-6.50372314453125,54.0567016601563],[-6.553584098815918,54.054161071777344],[-6.592153072357178,54.044822692871094],[-6.627350807189941,54.048114776611435],[-6.661441802978458,54.071823120117244],[-6.643348217010497,54.101821899414006],[-6.645637989044189,54.1269149780274],[-6.626046180725098,54.14981842041021],[-6.64686393737793,54.18768692016607]]]},"properties":{"ID_0":242,"ISO":"GB-NYM","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":134,"NAME_2":"Newry and Mourne","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":"Mourne"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.084166049957275,54.79193878173828],[-6.006947040557804,54.798610687255916],[-5.99027681350708,54.773048400878906],[-5.889164924621525,54.76943969726562],[-5.905835151672363,54.71221923828125],[-5.878611087799015,54.68295288085949],[-5.913610935211125,54.64651870727539],[-5.940557956695557,54.65972137451166],[-5.965001106262093,54.646938323974666],[-5.983891010284424,54.66305923461908],[-6.022499084472656,54.66249847412114],[-6.051390171051025,54.67110061645508],[-6.039721012115478,54.71416091918956],[-6.063610076904296,54.748050689697315],[-6.045557022094727,54.774440765380966],[-6.084166049957275,54.79193878173828]]]},"properties":{"ID_0":242,"ISO":"GB-NTA","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":135,"NAME_2":"Newtownabbey","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.807776927947941,54.6144409179688],[-5.885832786560059,54.62553024291992],[-5.821387767791748,54.65236282348644],[-5.750277042388915,54.674026489257756],[-5.723610877990666,54.667640686035206],[-5.654166221618652,54.670970916748104],[-5.634723186492919,54.68125152587901],[-5.571944236755257,54.6687583923341],[-5.577221870422306,54.6536102294923],[-5.604722023010254,54.64582824707031],[-5.616114139556885,54.630268096923764],[-5.650002002716064,54.61888885498058],[-5.698892116546631,54.61861038208019],[-5.72888708114624,54.628879547119254],[-5.756946086883488,54.61582946777355],[-5.807776927947941,54.6144409179688]]]},"properties":{"ID_0":242,"ISO":"GB-NDN","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":136,"NAME_2":"North Down","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.364448070526065,54.4302711486817],[-7.420557975769043,54.43610000610345],[-7.508056163787842,54.40499877929693],[-7.559165954589843,54.429161071777344],[-7.559721946716309,54.45637893676757],[-7.578610897064153,54.505550384521484],[-7.548889160156249,54.56528091430664],[-7.597500801086312,54.56138992309581],[-7.638611793518066,54.57971954345709],[-7.670000076293888,54.578609466552734],[-7.693334102630558,54.600830078125],[-7.653057098388615,54.625549316406364],[-7.611946105956974,54.62416076660162],[-7.559721946716309,54.642219543457024],[-7.543334960937499,54.63721084594732],[-7.482500076293888,54.6511116027832],[-7.465279102325382,54.64165878295909],[-7.414444923400879,54.668331146240284],[-7.390276908874513,54.692501068115234],[-7.329720020294189,54.70915985107421],[-7.30805492401123,54.73167037963873],[-7.268332004547118,54.72888183593756],[-7.240834236145019,54.74443817138672],[-7.205554962158202,54.75278091430664],[-7.109724998474063,54.74888992309564],[-7.082777976989746,54.760829925537166],[-7.022222042083683,54.768329620361435],[-6.999999999999886,54.77722167968744],[-6.92972278594965,54.76778030395502],[-6.936667919158935,54.751941680908146],[-6.969724178314209,54.7416610717774],[-6.994999885559082,54.730831146240234],[-6.987779140472412,54.693599700927734],[-7.000277996063232,54.674720764160206],[-6.968890190124512,54.66305923461908],[-6.972221851348876,54.643051147460994],[-6.94999980926508,54.60610961914074],[-6.961391925811768,54.57666015625006],[-6.975275993347053,54.55804824829107],[-6.972777843475284,54.5380592346192],[-7.001667976379395,54.52165985107421],[-7.026668071746769,54.51943969726568],[-7.037776947021484,54.50305175781256],[-7.090557098388672,54.493610382080135],[-7.125277042388801,54.468891143798764],[-7.170001029968204,54.470550537109375],[-7.216668128967228,54.459438323974666],[-7.23083305358881,54.44832992553711],[-7.264165878295898,54.44832992553711],[-7.310554981231689,54.43666076660162],[-7.364448070526065,54.4302711486817]]]},"properties":{"ID_0":242,"ISO":"GB-OMH","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":137,"NAME_2":"Omagh","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.414719104766845,54.94377136230469],[-7.373888015746956,54.91804885864269],[-7.317502021789437,54.92248916625976],[-7.262221813201847,54.91389083862299],[-7.276389122009277,54.88721084594726],[-7.209445953369141,54.883609771728516],[-7.195557117462158,54.84498977661144],[-7.162221908569337,54.85110092163097],[-7.109447002410832,54.81388854980469],[-7.069445133209229,54.80582809448248],[-7.010279178619385,54.81555175781244],[-6.991942882537784,54.825271606445426],[-6.942224025726261,54.82777023315435],[-6.917448043823185,54.81586074829101],[-6.901113033294621,54.775550842285156],[-6.92972278594965,54.76778030395502],[-6.999999999999886,54.77722167968744],[-7.022222042083683,54.768329620361435],[-7.082777976989746,54.760829925537166],[-7.109724998474063,54.74888992309564],[-7.205554962158202,54.75278091430664],[-7.240834236145019,54.74443817138672],[-7.268332004547118,54.72888183593756],[-7.30805492401123,54.73167037963873],[-7.329720020294189,54.70915985107421],[-7.390276908874513,54.692501068115234],[-7.414444923400879,54.668331146240284],[-7.465279102325382,54.64165878295909],[-7.482500076293888,54.6511116027832],[-7.543334960937499,54.63721084594732],[-7.559721946716309,54.642219543457024],[-7.611946105956974,54.62416076660162],[-7.653057098388615,54.625549316406364],[-7.693334102630558,54.600830078125],[-7.711314201354924,54.60568237304693],[-7.693349838256779,54.61369705200195],[-7.704639911651611,54.63259124755871],[-7.756030082702579,54.61971664428722],[-7.80938720703125,54.63909912109386],[-7.842618942260629,54.635063171386776],[-7.856639862060546,54.65179824829113],[-7.899225234985351,54.667396545410156],[-7.893633842468204,54.690784454345696],[-7.834397792816105,54.738483428955135],[-7.750647068023682,54.70547103881836],[-7.639691829681396,54.74738693237305],[-7.572354793548583,54.750385284423935],[-7.544353961944522,54.756790161132926],[-7.530230045318603,54.80861663818365],[-7.482840061187744,54.829929351806754],[-7.445333957672119,54.87998199462902],[-7.442993164062501,54.93450927734381],[-7.414719104766845,54.94377136230469]]]},"properties":{"ID_0":242,"ISO":"GB-STB","NAME_0":"United Kingdom","ID_1":2,"NAME_1":"Northern Ireland","ID_2":138,"NAME_2":"Strabane","TYPE_2":"District","ENGTYPE_2":"District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.068054914474487,57.104927062988395],[-2.0913889408111,57.067916870117294],[-2.155833959579411,57.018749237060604],[-2.180834054946899,56.984306335449276],[-2.206943988799935,56.963195800781364],[-2.194166898727303,56.94235992431646],[-2.19749903678894,56.90680694580078],[-2.21305608749384,56.88347244262695],[-2.25694298744196,56.8451385498048],[-2.275276899337654,56.84097290039057],[-2.324166059493962,56.79430389404297],[-2.401387929916382,56.77347183227545],[-2.435278892517033,56.740135192871094],[-2.494445085525513,56.74415969848644],[-2.535278081893921,56.771659851074276],[-2.594722986221257,56.77611160278326],[-2.619723081588745,56.78499984741205],[-2.668889999389648,56.82555007934575],[-2.673053979873657,56.85721969604498],[-2.65416693687439,56.88916015625006],[-2.686110973358097,56.91693878173828],[-2.725831985473632,56.932781219482536],[-2.75888895988453,56.958889007568466],[-2.80722188949585,56.958889007568466],[-2.830832004547119,56.97360992431646],[-2.872498989105168,56.98471832275396],[-2.928055047988778,56.96998977661144],[-3.026388883590698,56.97166061401372],[-3.059444904327392,56.96416091918945],[-3.087779045104924,56.94554901123047],[-3.107779026031494,56.897499084472656],[-3.120831966400146,56.8905487060548],[-3.159723043441715,56.90665817260753],[-3.198055028915405,56.909160614013615],[-3.274723052978459,56.9302711486817],[-3.293334960937443,56.900550842285156],[-3.395034074783268,56.88157272338867],[-3.461389064788818,56.87554931640625],[-3.503056049346867,56.8905487060548],[-3.549443006515503,56.88582992553716],[-3.569722890853768,56.89387893676769],[-3.569444894790593,56.921390533447266],[-3.588057041168212,56.929988861083984],[-3.624722957611084,56.9233283996582],[-3.662221908569335,56.929988861083984],[-3.687777996063175,56.920269012451165],[-3.727777004241887,56.92277908325201],[-3.743612051010132,56.932781219482536],[-3.79639005661005,56.9302711486817],[-3.781388998031616,56.964439392089844],[-3.745831966400146,56.99166107177728],[-3.74888801574707,57.02777099609375],[-3.736943006515446,57.07722091674805],[-3.67945408821106,57.095508575439396],[-3.619829893112183,57.082057952880916],[-3.42759895324707,57.082057952880916],[-3.345422029495239,57.089397430419865],[-3.323411941528263,57.11287307739252],[-3.345422029495239,57.148094177246094],[-3.33221697807312,57.17597198486328],[-3.280855894088688,57.18917846679693],[-3.189877986907959,57.25667953491205],[-3.122376918792668,57.27722549438488],[-3.029930114746037,57.26695251464844],[-2.985907077789307,57.29776763916027],[-2.966830015182438,57.32711791992199],[-2.969765901565552,57.36380386352545],[-3.004982948303165,57.400485992431584],[-3.010852098464966,57.44891357421874],[-2.991775035858097,57.47679138183599],[-2.93601393699646,57.50467300415038],[-2.891993045806828,57.52081680297863],[-2.809818029403687,57.52081680297863],[-2.73204493522644,57.506141662597706],[-2.707098007202148,57.513477325439446],[-2.705631971359253,57.529621124267514],[-2.749654054641724,57.56924057006847],[-2.78046989440918,57.58538055419933],[-2.823024034500065,57.63380432128917],[-2.821804046630859,57.69486236572277],[-2.787498950958252,57.697917938232415],[-2.718055963516122,57.69235992431652],[-2.684166908264103,57.68430709838861],[-2.598054885864201,57.68291473388672],[-2.553056001663208,57.67069625854498],[-2.496388912200871,57.67347335815429],[-2.385277032852173,57.669582366943466],[-2.341389894485474,57.671527862548764],[-2.3002769947052,57.69597244262695],[-2.244723081588745,57.68264007568371],[-2.178611993789673,57.67402648925787],[-2.119720935821533,57.7009735107423],[-2.077500104904175,57.7009735107423],[-2.038054943084717,57.692916870117244],[-1.999722003936767,57.697917938232415],[-1.991389989852905,57.6801376342774],[-1.91527795791626,57.673194885253906],[-1.886944055557251,57.638473510742195],[-1.824167013168335,57.613471984863274],[-1.82805597782135,57.58763885498053],[-1.801944017410278,57.54347229003906],[-1.806388020515328,57.53013992309582],[-1.779165983200073,57.49375152587896],[-1.779165983200073,57.460693359375],[-1.859166026115417,57.388473510742244],[-1.904167056083679,57.3659706115722],[-1.951944947242737,57.33097076416009],[-1.971943974494934,57.32513809204112],[-2.013055086135864,57.28097152709961],[-2.048612117767334,57.23406600952154],[-2.115828037261963,57.23821258544927],[-2.14713191986084,57.22121810913086],[-2.174858093261662,57.22121810913086],[-2.207057952880859,57.240001678466854],[-2.267874002456551,57.240001678466854],[-2.300071001052856,57.219429016113274],[-2.298285007476807,57.19528198242193],[-2.267874002456551,57.163978576660206],[-2.290235042572021,57.136253356933594],[-2.344789981841984,57.135356903076286],[-2.352839946746826,57.09958267211914],[-2.334058046340942,57.082588195800895],[-2.10420298576355,57.11120986938476],[-2.068054914474487,57.104927062988395]]]},"properties":{"ID_0":242,"ISO":"GB-ABD","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":139,"NAME_2":"Aberdeenshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.048612117767334,57.23406600952154],[-2.075834035873413,57.180416107177734],[-2.071389913558903,57.144859313964844],[-2.046390056610051,57.14069366455084],[-2.068054914474487,57.104927062988395],[-2.10420298576355,57.11120986938476],[-2.334058046340942,57.082588195800895],[-2.352839946746826,57.09958267211914],[-2.344789981841984,57.135356903076286],[-2.290235042572021,57.136253356933594],[-2.267874002456551,57.163978576660206],[-2.298285007476807,57.19528198242193],[-2.300071001052856,57.219429016113274],[-2.267874002456551,57.240001678466854],[-2.207057952880859,57.240001678466854],[-2.174858093261662,57.22121810913086],[-2.14713191986084,57.22121810913086],[-2.115828037261963,57.23821258544927],[-2.048612117767334,57.23406600952154]]]},"properties":{"ID_0":242,"ISO":"GB-ABE","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":140,"NAME_2":"Aberdeen","TYPE_2":"Unitary District (city)","ENGTYPE_2":"Unitary District (city)","NL_NAME_2":null,"VARNAME_2":"Aberdeen City"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.079322099685669,56.47496032714838],[-3.146891117095947,56.49051284790039],[-3.170222997665405,56.51676177978515],[-3.168764114379883,56.53134536743164],[-3.142514944076538,56.56926345825189],[-3.084182977676392,56.607177734375],[-3.129390001296997,56.615928649902344],[-3.155641078948975,56.64801025390625],[-3.181890010833683,56.658218383789176],[-3.262094974517822,56.66988372802729],[-3.278135061264038,56.67717742919922],[-3.335011005401554,56.723842620849666],[-3.355427026748657,56.76029968261713],[-3.355427026748657,56.79675674438482],[-3.391881942748967,56.852169036865234],[-3.395034074783268,56.88157272338867],[-3.293334960937443,56.900550842285156],[-3.274723052978459,56.9302711486817],[-3.198055028915405,56.909160614013615],[-3.159723043441715,56.90665817260753],[-3.120831966400146,56.8905487060548],[-3.107779026031494,56.897499084472656],[-3.087779045104924,56.94554901123047],[-3.059444904327392,56.96416091918945],[-3.026388883590698,56.97166061401372],[-2.928055047988778,56.96998977661144],[-2.872498989105168,56.98471832275396],[-2.830832004547119,56.97360992431646],[-2.80722188949585,56.958889007568466],[-2.75888895988453,56.958889007568466],[-2.725831985473632,56.932781219482536],[-2.686110973358097,56.91693878173828],[-2.65416693687439,56.88916015625006],[-2.673053979873657,56.85721969604498],[-2.668889999389648,56.82555007934575],[-2.619723081588745,56.78499984741205],[-2.594722986221257,56.77611160278326],[-2.535278081893921,56.771659851074276],[-2.494445085525513,56.74415969848644],[-2.435278892517033,56.740135192871094],[-2.454721927642765,56.70347213745123],[-2.474721908569336,56.71986007690435],[-2.514723062515259,56.722915649414],[-2.515279054641723,56.698749542236435],[-2.481944084167367,56.704303741455014],[-2.434722900390625,56.702362060546875],[-2.450834035873413,56.67819595336914],[-2.480278015136719,56.67180633544922],[-2.508610010147038,56.649860382080135],[-2.505278110504094,56.63236236572265],[-2.480278015136719,56.62097167968756],[-2.549166917800903,56.5606956481933],[-2.606945991516113,56.549861907958984],[-2.634167909622192,56.526248931884815],[-2.707499027252197,56.49902725219738],[-2.730833053588754,56.46597290039074],[-2.786389112472534,56.478473663330014],[-2.822092056274357,56.47708511352544],[-2.845024108886662,56.51676177978515],[-2.928147077560368,56.51676177978515],[-2.968980073928776,56.509471893310604],[-3.063766956329346,56.50072097778325],[-3.079322099685669,56.47496032714838]]]},"properties":{"ID_0":242,"ISO":"GB-ANS","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":141,"NAME_2":"Angus","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Forfar"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.467501163482609,56.69152832031256],[-6.450832843780518,56.68624877929698],[-6.466945171356143,56.65291595458979],[-6.497500896453857,56.6223602294923],[-6.565278053283691,56.58680725097662],[-6.593056201934758,56.58569335937506],[-6.638054847717284,56.57236099243163],[-6.678055763244572,56.58124923706066],[-6.618611812591552,56.62014007568359],[-6.598611831664982,56.638748168945426],[-6.548057079315186,56.66041564941406],[-6.534167766571045,56.67541503906244],[-6.467501163482609,56.69152832031256]]],[[[-5.299166202545109,56.6400413513183],[-5.169188976287785,56.630920410156364],[-5.144714832305851,56.61651611328125],[-5.075194835662842,56.607299804687614],[-5.038574218749943,56.6234741210938],[-5.020019054412842,56.64093017578125],[-4.970823764800969,56.644287109375114],[-4.924377918243408,56.65948486328131],[-4.863892078399658,56.64672851562506],[-4.790771961212158,56.6539306640625],[-4.757224082946777,56.64332962036133],[-4.708611965179387,56.641510009765625],[-4.671945095062256,56.63972091674804],[-4.633612155914193,56.64971923828125],[-4.617524147033635,56.63150787353527],[-4.628056049346924,56.612220764160206],[-4.595580101013184,56.607482910156364],[-4.558332920074406,56.57027053833008],[-4.595276832580566,56.57444000244146],[-4.692779064178466,56.54804992675781],[-4.660831928253117,56.534439086914176],[-4.649171829223633,56.51922225952154],[-4.676392078399658,56.491699218750114],[-4.639380931854247,56.47185134887695],[-4.665526866912842,56.4603271484375],[-4.722229957580566,56.453918457031364],[-4.725832939147892,56.437484741210994],[-4.770556926727238,56.42694091796875],[-4.803298950195256,56.4083480834962],[-4.833006858825627,56.36291503906255],[-4.775816917419319,56.34307861328131],[-4.778891086578368,56.31832885742199],[-4.719178199768066,56.32830810546875],[-4.649203777313232,56.32083511352545],[-4.671691894531192,56.30029296875],[-4.657409191131592,56.28112792968761],[-4.685180187225342,56.24847412109381],[-4.68048095703125,56.19848632812506],[-4.611256122589111,56.08835983276372],[-4.598025798797607,56.07788085937499],[-4.597777843475228,55.960327148437614],[-4.591363906860352,55.94153594970703],[-4.6686110496521,55.957359313964844],[-4.703610897064209,55.99236297607433],[-4.786389827728271,56.016803741455135],[-4.836389064788818,56.07847213745128],[-4.841390132903996,56.05847167968755],[-4.808610916137695,56.01486206054699],[-4.767499923706055,55.987083435058594],[-4.836945056915282,55.982917785644524],[-4.869165897369327,56.01486206054699],[-4.868611812591553,56.037082672119254],[-4.906387805938664,56.05541610717784],[-4.894167900085335,55.998470306396484],[-4.908610820770264,55.95958328247076],[-4.9330539703368,55.94208145141613],[-4.949168205261174,55.8979148864746],[-4.970276832580566,55.88319396972662],[-4.979166030883789,55.860973358154354],[-5.045833110809326,55.87097167968756],[-5.074722766876164,55.898750305175724],[-5.105277061462346,55.899307250976506],[-5.18972110748291,55.945972442626946],[-5.208055019378605,55.9162483215332],[-5.239720821380558,55.902084350585994],[-5.200277805328312,55.83041763305664],[-5.317501068115178,55.85680389404297],[-5.326943874359131,55.884304046630966],[-5.352499961852971,55.89708328247082],[-5.349167823791504,55.92680740356451],[-5.330277919769287,55.95819473266601],[-5.346944808959904,55.966251373291065],[-5.341389179229736,55.99680709838873],[-5.314723014831486,56.01180648803711],[-5.290832996368351,56.04819488525396],[-5.265832901000977,56.07069396972661],[-5.217500209808293,56.09708404541026],[-5.203053951263428,56.128749847412166],[-5.152501106262206,56.13791656494135],[-5.100276947021428,56.15625],[-5.061388015747013,56.20763778686518],[-5.104721069335938,56.2020835876466],[-5.105833053588809,56.1856956481933],[-5.136943817138672,56.15902709960943],[-5.193612098693848,56.14930725097661],[-5.236945152282715,56.128471374511776],[-5.256388187408447,56.09708404541026],[-5.283057212829533,56.089027404785206],[-5.297500133514404,56.06486129760748],[-5.335278034210091,56.06680679321295],[-5.337501049041748,56.03097152709972],[-5.381944179534912,56.00374984741205],[-5.428054809570256,56.010971069335994],[-5.450276851654053,56.00597381591797],[-5.44416618347168,55.95958328247076],[-5.428054809570256,55.9473609924317],[-5.418610095977726,55.896251678466854],[-5.376389980316105,55.851806640625114],[-5.343610763549691,55.82986068725586],[-5.314167022705021,55.785415649414176],[-5.328055858612061,55.76291656494151],[-5.350833892822266,55.76514053344721],[-5.394166946411132,55.750137329101676],[-5.447501182556152,55.70986175537121],[-5.446389198303166,55.69180679321295],[-5.475832939147948,55.63486099243158],[-5.47527885437006,55.60458374023448],[-5.45861196517933,55.59041595458989],[-5.486944198608342,55.57847213745117],[-5.492499828338565,55.54597091674799],[-5.51361179351801,55.497081756591854],[-5.547500133514404,55.44319534301758],[-5.548610210418701,55.417915344238274],[-5.515277862548828,55.37097167968744],[-5.561944961547851,55.32291793823247],[-5.601943969726562,55.30708312988275],[-5.681387901306151,55.3084716796875],[-5.71805477142334,55.29319381713873],[-5.764165878295842,55.289859771728516],[-5.798055171966552,55.298194885253956],[-5.796945095062198,55.33569335937494],[-5.804722785949706,55.34791564941406],[-5.798055171966552,55.39180374145513],[-5.754721164703312,55.4209709167481],[-5.720832824706974,55.43013763427734],[-5.712500095367375,55.46569442749023],[-5.71416711807251,55.51013946533209],[-5.705277919769287,55.55208206176752],[-5.716945171356201,55.57764053344721],[-5.694167137145996,55.587360382080014],[-5.678612232208251,55.61736297607433],[-5.663610935211181,55.66652679443365],[-5.669167041778564,55.68402862548828],[-5.635832786560002,55.69763946533209],[-5.571387767791748,55.76652908325195],[-5.553610801696721,55.76736068725591],[-5.478055000305062,55.805694580078125],[-5.496387958526611,55.817081451416016],[-5.538611888885498,55.78597259521496],[-5.615276813506966,55.75986099243163],[-5.614167213439941,55.77763748168951],[-5.661388874053955,55.79680633544927],[-5.671946048736515,55.81513977050787],[-5.663610935211181,55.84736251831055],[-5.628610134124756,55.882083892822266],[-5.604166030883789,55.9156951904298],[-5.680277824401798,55.88597106933588],[-5.686388015747069,55.91680526733398],[-5.666388988494873,55.94847106933605],[-5.640832901000977,55.96458435058593],[-5.595833778381234,56.00986099243164],[-5.613611221313477,56.01430511474621],[-5.667499065399113,55.96430587768555],[-5.708055973052979,55.96569442749029],[-5.649722099304199,56.02902603149419],[-5.584167003631592,56.092361450195305],[-5.543056011199894,56.087360382080135],[-5.529167175292969,56.09708404541026],[-5.568612098693848,56.11430740356451],[-5.50416707992548,56.1845817565918],[-5.525279045104924,56.18791580200201],[-5.576943874359074,56.154582977295036],[-5.590277194976806,56.16847229003906],[-5.55805492401123,56.21180725097656],[-5.551943778991699,56.23819351196288],[-5.621943950653076,56.264583587646534],[-5.651388168334961,56.29319381713873],[-5.640832901000977,56.31180572509771],[-5.596943855285588,56.32374954223644],[-5.539721012115479,56.34986114501953],[-5.524166107177678,56.38624954223638],[-5.47527885437006,56.41736221313482],[-5.484168052673339,56.437362670898544],[-5.443610191345215,56.452915191650334],[-5.41416597366333,56.450416564941406],[-5.343054771423283,56.45819473266607],[-5.28583288192749,56.45069503784179],[-5.268054962158202,56.45791625976568],[-5.228610038757267,56.44513702392584],[-5.191390037536621,56.44819259643555],[-5.142499923706055,56.47874832153326],[-5.155832767486515,56.499862670898494],[-5.186388969421386,56.459304809570256],[-5.236945152282715,56.451248168945426],[-5.261388778686467,56.462360382080135],[-5.282501220703068,56.46041488647461],[-5.361944198608398,56.4701385498048],[-5.400277137756348,56.46652603149414],[-5.410277843475285,56.48986053466797],[-5.462500095367432,56.49347305297857],[-5.435833930969238,56.520973205566406],[-5.403055191040039,56.525970458984425],[-5.381388187408334,56.51013946533209],[-5.313611030578556,56.52902603149408],[-5.31138896942133,56.550140380859375],[-5.368054866790771,56.523750305175895],[-5.420277118682861,56.5487518310548],[-5.364167213439885,56.59680557250976],[-5.299166202545109,56.6400413513183]]],[[[-6.235277175903263,56.315971374511776],[-6.248610019683838,56.34319305419922],[-6.190278053283691,56.332637786865234],[-6.019721031188964,56.36486053466808],[-5.998611927032471,56.386528015136776],[-6.029722213745117,56.3929176330567],[-6.058611869812012,56.37513732910161],[-6.111390113830453,56.36513900756847],[-6.147500991821289,56.36597061157226],[-6.195278167724552,56.35791778564459],[-6.209721088409424,56.37236022949219],[-6.200279235839844,56.39125061035156],[-6.150277137756291,56.414585113525334],[-6.120832920074406,56.451248168945426],[-6.077498912811166,56.44791793823253],[-6.020833015441895,56.46708297729492],[-6.034165859222412,56.48791503906244],[-6.13361215591425,56.47402954101562],[-6.15861177444458,56.46347045898449],[-6.21305608749384,56.4701385498048],[-6.239721775054932,56.46541595458979],[-6.269165992736816,56.477638244628906],[-6.307500839233398,56.48041534423834],[-6.301387786865234,56.497081756591854],[-6.250277996063175,56.494583129882926],[-6.220277786254883,56.500415802001896],[-6.189166069030762,56.485694885253906],[-6.15138912200922,56.50125122070324],[-6.188055992126465,56.51013946533209],[-6.228055000305176,56.52902603149408],[-6.262498855590819,56.52264022827154],[-6.333054065704345,56.532638549804744],[-6.338055133819523,56.55347061157226],[-6.316389083862305,56.57902908325195],[-6.315277099609374,56.60235977172857],[-6.223055839538573,56.61097335815435],[-6.226944923400822,56.632083892822266],[-6.197501182556152,56.64291763305664],[-6.166388034820557,56.64180374145508],[-6.147500991821289,56.65319442749018],[-6.059165954589787,56.634582519531364],[-6.013610839843692,56.58930587768548],[-5.988055229187012,56.57875061035156],[-5.956944942474365,56.52319335937511],[-5.798055171966552,56.51569366455084],[-5.765277862548714,56.489028930664176],[-5.719167232513428,56.4859733581543],[-5.666944980621338,56.44958496093744],[-5.646389961242676,56.42458343505871],[-5.695277214050293,56.36986160278326],[-5.743610858917179,56.342082977295036],[-5.833055019378662,56.31041717529297],[-5.888611793517952,56.3223609924317],[-5.849166870117131,56.342361450195426],[-5.889167785644531,56.353195190429744],[-5.932500839233342,56.321250915527344],[-5.985833168029784,56.32263946533209],[-6.040832996368408,56.29319381713873],[-6.12694501876831,56.29652786254877],[-6.138055801391601,56.28569412231445],[-6.246943950653019,56.28819274902355],[-6.26416778564453,56.26374816894537],[-6.323612213134765,56.26930618286132],[-6.337501049041748,56.28152847290044],[-6.381944179534855,56.28597259521484],[-6.369166851043701,56.332637786865234],[-6.349721908569279,56.34708404541021],[-6.303609848022461,56.344860076904354],[-6.267499923705998,56.324306488037166],[-6.235277175903263,56.315971374511776]]],[[[-5.584722995758057,56.462917327880916],[-5.572500228881835,56.49486160278332],[-5.533054828643742,56.50736236572277],[-5.472500801086369,56.552917480468864],[-5.433055877685546,56.55125045776373],[-5.486390113830566,56.517917633056754],[-5.50416707992548,56.49930572509771],[-5.584722995758057,56.462917327880916]]],[[[-6.910276889801025,56.44041824340825],[-6.976387977600097,56.471248626708984],[-6.977500915527344,56.51652908325201],[-6.933610916137695,56.529582977295036],[-6.873054981231633,56.51821136474621],[-6.818611145019418,56.54319381713867],[-6.792500972747746,56.53458404541021],[-6.773055076599121,56.547084808349666],[-6.725833892822266,56.53958511352539],[-6.725277900695801,56.52736282348633],[-6.788609981536864,56.52736282348633],[-6.8125,56.51208496093756],[-6.823054790496769,56.49097061157232],[-6.878611087799071,56.488193511963004],[-6.896944046020451,56.470695495605526],[-6.889165878295898,56.44625091552739],[-6.910276889801025,56.44041824340825]]],[[[-5.556388854980411,56.409584045410156],[-5.51361179351801,56.41430664062494],[-5.525832176208496,56.391803741455135],[-5.552501201629525,56.371528625488395],[-5.589167118072452,56.379859924316456],[-5.556388854980411,56.409584045410156]]],[[[-6.386387825012206,56.351528167724666],[-6.384722232818546,56.33736038208008],[-6.418055057525635,56.30764007568371],[-6.43638801574707,56.332637786865234],[-6.386387825012206,56.351528167724666]]],[[[-5.656943798065186,56.21680450439458],[-5.665278911590576,56.233470916748104],[-5.649166107177734,56.26374816894537],[-5.61749887466425,56.24041748046875],[-5.634167194366455,56.20291519165038],[-5.656943798065186,56.21680450439458]]],[[[-5.68916702270502,56.200695037841854],[-5.674722194671631,56.19124984741211],[-5.695277214050293,56.16097259521496],[-5.747498989105225,56.16152954101574],[-5.729166030883732,56.18902587890636],[-5.68916702270502,56.200695037841854]]],[[[-5.800833225250244,56.0006942749024],[-5.850278854370059,55.94235992431646],[-5.851388931274413,55.92930603027344],[-5.900278091430663,55.881526947021484],[-5.935832977294922,55.867084503173885],[-5.963611125945987,55.79208374023449],[-6.064723014831543,55.805694580078125],[-6.079721927642822,55.81819534301758],[-6.096944808959961,55.87125015258789],[-6.093054771423339,55.891250610351676],[-6.042500972747803,55.940418243408146],[-5.998611927032471,55.952640533447266],[-5.977499961853027,55.94930648803716],[-5.9480562210083,55.96319580078136],[-6.001389980316161,55.98014068603526],[-6.001389980316161,55.989307403564446],[-5.9480562210083,56.03847122192383],[-5.863612174987793,56.07847213745128],[-5.821387767791748,56.089584350585994],[-5.79638910293579,56.113193511963004],[-5.748054981231689,56.128192901611385],[-5.720832824706974,56.148193359375114],[-5.691389083862248,56.13624954223644],[-5.687500953674316,56.11152648925787],[-5.730278015136605,56.07319259643555],[-5.779720783233643,56.01402664184582],[-5.800833225250244,56.0006942749024]]],[[[-6.189722061157226,56.1037483215332],[-6.176945209503174,56.1209716796875],[-6.138055801391601,56.116249084472656],[-6.166388034820557,56.07875061035167],[-6.195278167724552,56.06180572509777],[-6.183610916137695,56.04319381713878],[-6.204722881317139,56.02958297729498],[-6.265276908874512,56.0359725952149],[-6.248610019683838,56.06180572509777],[-6.245833873748779,56.08569335937499],[-6.213612079620248,56.10569381713873],[-6.189722061157226,56.1037483215332]]],[[[-6.226388931274414,56.028751373291016],[-6.238055229186955,56.00624847412115],[-6.268611907958928,56.02486038208019],[-6.226388931274414,56.028751373291016]]],[[[-6.486944198608342,55.670696258545036],[-6.525833129882699,55.69235992431635],[-6.493053913116454,55.714862823486385],[-6.503611087799072,55.72680664062506],[-6.455833911895695,55.77291488647472],[-6.488056182861271,55.79291534423828],[-6.45972204208374,55.813751220703175],[-6.45527791976923,55.85319519042969],[-6.392498970031681,55.858196258545036],[-6.370832920074463,55.87513732910156],[-6.337501049041748,55.867362976074276],[-6.320834159851017,55.85013961791998],[-6.295834064483642,55.87513732910156],[-6.269167900085392,55.882362365722656],[-6.198057174682616,55.92458343505864],[-6.161943912506047,55.934028625488224],[-6.120832920074406,55.93513870239257],[-6.131390094757023,55.8904151916505],[-6.101945877075138,55.84597396850597],[-6.104165077209473,55.814304351806754],[-6.08472204208374,55.78319549560547],[-6.046389102935791,55.76235961914057],[-6.049168109893742,55.73625183105469],[-6.030834197998047,55.72847366333019],[-6.040278911590519,55.70958328247082],[-6.019721031188964,55.68264007568354],[-6.090832233428955,55.6462516784669],[-6.144722938537598,55.625972747802784],[-6.191944122314396,55.632915496826286],[-6.214166164398193,55.62069320678722],[-6.238612174987793,55.59263992309576],[-6.26694393157959,55.57875061035156],[-6.336389064788818,55.58874893188476],[-6.328609943389836,55.6256942749024],[-6.297500133514347,55.650138854980526],[-6.260276794433594,55.6576385498048],[-6.28194522857666,55.69847106933588],[-6.304165840148926,55.713470458984425],[-6.338611125945988,55.71986007690435],[-6.332500934600772,55.74152755737305],[-6.261388778686523,55.76430511474609],[-6.259167194366397,55.78263854980468],[-6.345276832580566,55.784862518310604],[-6.383609771728459,55.7301406860351],[-6.414166927337589,55.705417633056754],[-6.486944198608342,55.670696258545036]]],[[[-5.767500877380371,55.668193817138786],[-5.775833129882755,55.67458343505871],[-5.730278015136605,55.70958328247082],[-5.728055953979492,55.66652679443365],[-5.767500877380371,55.668193817138786]]]]},"properties":{"ID_0":242,"ISO":"GB-AGB","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":142,"NAME_2":"Argyll and Bute","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Earra-Ghaidheal agus Bòd"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.750951051712036,56.07049179077142],[-3.80521297454834,56.10653686523443],[-3.846137046813965,56.10766983032237],[-3.861366033554077,56.129344940185604],[-3.839694023132211,56.15687561035156],[-3.824373006820679,56.1925888061524],[-3.758888959884587,56.21583175659174],[-3.72305703163147,56.18972015380865],[-3.66416597366333,56.187221527099545],[-3.655555009841862,56.196941375732536],[-3.61166596412653,56.19805145263672],[-3.561388015746957,56.186939239502],[-3.56249809265131,56.1772193908692],[-3.642776012420654,56.15526962280279],[-3.630553007125854,56.12825012207031],[-3.631387948989868,56.10638046264648],[-3.71555590629572,56.097499847412166],[-3.750951051712036,56.07049179077142]]]},"properties":{"ID_0":242,"ISO":"GB-CLK","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":143,"NAME_2":"Clackmannanshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.038609981536808,54.991947174072266],[-4.986947059631348,55.00777053833007],[-4.92444610595703,54.998050689697266],[-4.889166831970215,55.0147209167481],[-4.870555877685547,55.036659240722656],[-4.800557136535588,55.04417037963867],[-4.701388835906982,55.04193878173839],[-4.630556106567383,55.05389022827143],[-4.619720935821476,55.076938629150504],[-4.644722938537541,55.085830688476506],[-4.647500991821232,55.11972045898443],[-4.61111307144165,55.1402702331544],[-4.538609027862549,55.16138076782232],[-4.488890171051025,55.15166091918951],[-4.467479228973332,55.15789031982433],[-4.437222003936768,55.1755485534669],[-4.431330204009953,55.14205932617199],[-4.403335094451903,55.153049468994254],[-4.402223110198918,55.1733283996582],[-4.384724140167179,55.181938171386825],[-4.377223014831542,55.217498779296875],[-4.353332996368408,55.24139022827148],[-4.348888874053898,55.26277160644537],[-4.321667194366455,55.27527999877941],[-4.296945095062142,55.307781219482415],[-4.244166851043701,55.30443954467779],[-4.231389999389648,55.31666946411144],[-4.188612937927189,55.313888549804744],[-4.135279178619385,55.28416061401367],[-4.113334178924561,55.29999923706055],[-4.113612174987793,55.31666946411144],[-4.085555076599121,55.34722137451177],[-4.097777843475342,55.37137985229498],[-4.094168186187744,55.39611053466808],[-4.070556163787785,55.41498947143554],[-4.003057956695557,55.435001373291016],[-4.008614063262883,55.454158782959034],[-3.983174085617065,55.461067199707024],[-3.956665992736816,55.45444107055663],[-3.878612041473275,55.45499038696283],[-3.825834035873413,55.446388244628906],[-3.769443988799935,55.40916061401373],[-3.743056058883667,55.37110900878912],[-3.708333015441895,55.36278152465826],[-3.701389074325562,55.32083129882812],[-3.642222881317139,55.28971862792962],[-3.616667032241821,55.29277038574213],[-3.607223987579232,55.31888961791998],[-3.571944952011052,55.32971954345709],[-3.567501068115178,55.38388824462896],[-3.500277996063176,55.40972137451172],[-3.443609952926636,55.40444183349615],[-3.410557985305786,55.411941528320426],[-3.345000028610229,55.411941528320426],[-3.316390037536564,55.438331604003906],[-3.252499103546143,55.428890228271484],[-3.241389036178532,55.41888046264654],[-3.283056020736694,55.4013786315919],[-3.303333044052124,55.384990692138615],[-3.309443950653019,55.34915924072271],[-3.285000085830632,55.34111022949224],[-3.207499980926456,55.3722190856933],[-3.164166927337532,55.349720001220646],[-3.130279064178467,55.35667037963873],[-3.104444980621338,55.352218627929744],[-3.098331928253117,55.32971954345709],[-3.056945085525456,55.30722045898448],[-3.03444504737854,55.27304840087896],[-2.997498035430908,55.26832962036132],[-2.944998025894165,55.28805923461925],[-2.891110897064152,55.27804946899414],[-2.872498989105168,55.2619400024414],[-2.898056983947697,55.25305175781261],[-2.868889093399048,55.2369384765625],[-2.863888978958073,55.21860885620123],[-2.884166002273446,55.20193862915038],[-2.889445066452026,55.15526962280279],[-2.85944390296936,55.136379241943416],[-2.850555896758976,55.112220764160156],[-2.884166002273446,55.08137893676758],[-2.92833304405201,55.071388244628906],[-2.950556993484497,55.04055023193364],[-2.977777004241943,55.03998947143555],[-3.033334970474243,55.05250167846691],[-3.030833005905151,55.0166587829591],[-3.049704074859619,54.98513412475591],[-3.119721889495793,54.975971221923885],[-3.154721975326538,54.96430587768554],[-3.209722042083683,54.975971221923885],[-3.278054952621403,54.965694427490284],[-3.316943883895817,54.97680664062505],[-3.373054027557316,54.970138549804744],[-3.406388998031616,54.975971221923885],[-3.437499046325627,54.99236297607416],[-3.449722051620483,54.976249694824276],[-3.476943969726562,54.96736145019542],[-3.52805590629572,54.96736145019542],[-3.556387901306152,54.978473663330135],[-3.586388111114502,54.94152832031256],[-3.56250095367426,54.90430450439453],[-3.596389055252075,54.88291549682623],[-3.639166116714363,54.87847137451183],[-3.705832958221436,54.88319396972662],[-3.761945962905884,54.85625076293957],[-3.795834064483586,54.864307403564446],[-3.807501077651978,54.844306945800895],[-3.860279083251896,54.844581604003906],[-3.825834035873413,54.822639465332024],[-3.875277996063118,54.80180740356451],[-3.940279006957894,54.785415649414],[-3.964723110198975,54.770694732666016],[-4.045279026031437,54.76930618286127],[-4.065834045410043,54.78069305419921],[-4.049167156219482,54.82097244262707],[-4.071944236755371,54.829582214355526],[-4.089722156524657,54.81402587890619],[-4.089166164398193,54.77486038208007],[-4.159722805023193,54.77902603149408],[-4.220276832580566,54.8245849609375],[-4.230278015136719,54.85486221313482],[-4.255834102630558,54.83625030517584],[-4.306387901306096,54.84541702270502],[-4.358612060546761,54.86125183105474],[-4.382499217987004,54.8801383972168],[-4.419722080230713,54.884860992431754],[-4.420278072357178,54.85208511352533],[-4.410277843475285,54.82791519165039],[-4.352499008178711,54.81291580200201],[-4.340278148651066,54.79791641235345],[-4.358612060546761,54.78041839599621],[-4.355277061462401,54.75847244262695],[-4.365831851959229,54.7315292358399],[-4.350832939147892,54.70513916015625],[-4.364165782928467,54.69097137451183],[-4.407498836517334,54.677639007568416],[-4.444722175598087,54.69291687011713],[-4.481389045715331,54.69847106933594],[-4.521944046020508,54.71347045898449],[-4.546390056610107,54.73319625854498],[-4.568611145019531,54.73652648925787],[-4.58583307266224,54.76569366455083],[-4.680277824401855,54.80402755737298],[-4.714722156524545,54.82569503784185],[-4.763055801391602,54.82680511474604],[-4.788055896758976,54.83569335937506],[-4.80916690826416,54.86041641235357],[-4.850833892822266,54.86597061157238],[-4.872499942779484,54.85319519042969],[-4.938055038452148,54.83069610595703],[-4.960832118988037,54.80291748046886],[-4.948612213134709,54.79624938964855],[-4.91083288192749,54.72624969482433],[-4.906387805938664,54.70152664184576],[-4.865832805633488,54.68180465698242],[-4.881389141082707,54.670696258544865],[-4.876388072967529,54.63958358764659],[-4.921944141387882,54.6426391601563],[-4.964723110198974,54.668193817138786],[-4.973054885864258,54.69041824340825],[-4.948056221008301,54.70097351074219],[-4.993610858917235,54.734859466552784],[-5.001389980316104,54.77264022827154],[-5.043055057525635,54.793193817138665],[-5.138055801391602,54.850139617920036],[-5.145833969116211,54.87041854858398],[-5.185276985168343,54.9118041992188],[-5.187499046325626,54.97652816772466],[-5.170278072357177,55.00041580200201],[-5.10916805267334,55.01847076416027],[-5.074722766876164,54.995971679687614],[-5.064166069030762,54.92763900756836],[-5.032499790191594,54.90791702270519],[-4.99138879776001,54.917083740234375],[-4.997498989105168,54.93847274780285],[-5.038609981536808,54.991947174072266]]]},"properties":{"ID_0":242,"ISO":"GB-DGY","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":144,"NAME_2":"Dumfries and Galloway","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.822092056274357,56.47708511352544],[-2.868055105209351,56.46319580078124],[-2.934165954589787,56.46569442749018],[-2.988611936569213,56.45069503784179],[-3.056514024734497,56.455696105956974],[-3.079322099685669,56.47496032714838],[-3.063766956329346,56.50072097778325],[-2.968980073928776,56.509471893310604],[-2.928147077560368,56.51676177978515],[-2.845024108886662,56.51676177978515],[-2.822092056274357,56.47708511352544]]]},"properties":{"ID_0":242,"ISO":"GB-DND","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":145,"NAME_2":"Dundee","TYPE_2":"Unitary District (city)","ENGTYPE_2":"Unitary District (city)","NL_NAME_2":null,"VARNAME_2":"Dundee City"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.467479228973332,55.15789031982433],[-4.444540023803711,55.200832366943416],[-4.444540023803711,55.2819595336914],[-4.474586009979248,55.310504913330135],[-4.533174991607609,55.339046478271484],[-4.576743125915527,55.381111145019524],[-4.569231033325195,55.396137237548885],[-4.465571880340519,55.385620117187614],[-4.461063861846924,55.41115951538085],[-4.483600139617863,55.44571304321289],[-4.479092121124268,55.45772933959961],[-4.432519912719727,55.48327255249023],[-4.426511764526367,55.517822265625114],[-4.443036079406738,55.54486465454101],[-4.491108894348145,55.55688476562506],[-4.582045078277587,55.59136199951177],[-4.510039806365853,55.621482849121094],[-4.501026153564453,55.64552307128912],[-4.534078121185303,55.65603637695318],[-4.610695838928223,55.65753936767584],[-4.618207931518555,55.677070617675895],[-4.558114051818791,55.71463012695324],[-4.517907142639159,55.75934219360357],[-4.506277084350529,55.750869750976676],[-4.347330093383789,55.710868835449155],[-4.284173011779785,55.690868377685604],[-4.250916004180851,55.6859970092774],[-4.217688083648625,55.64101409912121],[-4.180130004882812,55.61697769165038],[-4.172617912292367,55.59894943237316],[-4.20717191696167,55.57190704345709],[-4.196653842926025,55.55237579345697],[-4.064451217651254,55.553878784179794],[-4.029899120330811,55.57190704345709],[-3.992338895797729,55.570404052734425],[-3.960791110992374,55.540359497070256],[-3.963794946670532,55.50730895996105],[-3.983174085617065,55.461067199707024],[-4.008614063262883,55.454158782959034],[-4.003057956695557,55.435001373291016],[-4.070556163787785,55.41498947143554],[-4.094168186187744,55.39611053466808],[-4.097777843475342,55.37137985229498],[-4.085555076599121,55.34722137451177],[-4.113612174987793,55.31666946411144],[-4.113334178924561,55.29999923706055],[-4.135279178619385,55.28416061401367],[-4.188612937927189,55.313888549804744],[-4.231389999389648,55.31666946411144],[-4.244166851043701,55.30443954467779],[-4.296945095062142,55.307781219482415],[-4.321667194366455,55.27527999877941],[-4.348888874053898,55.26277160644537],[-4.353332996368408,55.24139022827148],[-4.377223014831542,55.217498779296875],[-4.384724140167179,55.181938171386825],[-4.402223110198918,55.1733283996582],[-4.403335094451903,55.153049468994254],[-4.431330204009953,55.14205932617199],[-4.437222003936768,55.1755485534669],[-4.467479228973332,55.15789031982433]]]},"properties":{"ID_0":242,"ISO":"GB-EAY","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":146,"NAME_2":"East Ayrshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.125696182250977,56.005580902099666],[-4.120912075042725,55.96242523193371],[-4.098583221435547,55.956047058105526],[-4.047551155090332,55.957641601562614],[-4.044360160827637,55.92414855957031],[-4.069877147674561,55.90820312500006],[-4.149620056152344,55.909797668456974],[-4.161842823028508,55.89171981811529],[-4.213646888732853,55.88981628417969],[-4.269435882568303,55.91613006591797],[-4.294700145721322,55.89823532104503],[-4.35162878036499,55.90525436401373],[-4.359961032867431,55.91191864013672],[-4.364751815795842,55.97564697265625],[-4.301668167114258,55.957218170166016],[-4.2744460105896,55.95888900756847],[-4.267776966094971,55.98804855346691],[-4.287500858306827,56.0166587829591],[-4.198334217071533,56.01971817016613],[-4.158332824706974,56.02582931518566],[-4.125696182250977,56.005580902099666]]]},"properties":{"ID_0":242,"ISO":"GB-EDU","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":147,"NAME_2":"East Dunbartonshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.364721059799137,55.94638442993164],[-2.364850997924805,55.94625091552734],[-2.365672111511174,55.94541549682617],[-2.435832977294922,55.895271301269645],[-2.40055608749384,55.886379241943416],[-2.426388025283756,55.86388015747082],[-2.533056020736637,55.85638046264654],[-2.595000982284489,55.827770233154354],[-2.640278100967407,55.83361053466802],[-2.654444932937622,55.848331451416016],[-2.735832929611206,55.82804870605468],[-2.780556917190551,55.83832931518566],[-2.820858955383301,55.82167816162104],[-3.028450965881234,55.91139221191406],[-3.055566072463932,55.9273414611817],[-3.06107306480402,55.947639465332024],[-2.989722013473397,55.957916259765625],[-2.972501039504948,55.97013854980469],[-2.923054933547974,55.972915649414176],[-2.884721994400024,56.00041580200201],[-2.86083197593689,56.039585113525504],[-2.84361100196827,56.039585113525504],[-2.81583309173584,56.063751220703125],[-2.774166107177678,56.06735992431634],[-2.698610067367497,56.05819320678716],[-2.690834045410156,56.063751220703125],[-2.624166965484619,56.052360534668026],[-2.588609933853149,56.01597213745117],[-2.55472207069397,56.002639770507926],[-2.5313880443573,56.007915496826286],[-2.478611946105957,55.99763870239252],[-2.464167118072453,55.98764038085937],[-2.398612022399902,55.9698600769043],[-2.364167928695621,55.94694900512695],[-2.364578008651677,55.94652938842768],[-2.364721059799137,55.94638442993164]]]},"properties":{"ID_0":242,"ISO":"GB-ELN","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":148,"NAME_2":"East Lothian","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Haddington"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.240317821502629,55.79342651367198],[-4.251543045043888,55.74981689453125],[-4.225224971771126,55.7350807189942],[-4.225224971771126,55.690868377685604],[-4.250916004180851,55.6859970092774],[-4.284173011779785,55.690868377685604],[-4.347330093383789,55.710868835449155],[-4.506277084350529,55.750869750976676],[-4.517907142639159,55.75934219360357],[-4.516318798065129,55.76287841796881],[-4.488380908966008,55.77613067626953],[-4.441013813018742,55.786659240722656],[-4.356803894042969,55.81916046142589],[-4.347330093383789,55.794025421142635],[-4.292593955993539,55.795078277587834],[-4.25680494308466,55.80350112915039],[-4.240317821502629,55.79342651367198]]]},"properties":{"ID_0":242,"ISO":"GB-ERW","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":149,"NAME_2":"East Renfrewshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.395265102386475,55.81739425659174],[-3.393668889999389,55.89225387573247],[-3.43513298034668,55.903415679931584],[-3.449486970901489,55.91617584228521],[-3.449739933013916,55.99652862548834],[-3.388612031936532,55.990139007568416],[-3.3513889312743,56.001525878906364],[-3.321388959884643,55.984306335449276],[-3.265279054641667,55.9793052673341],[-3.16749906539917,55.98597335815441],[-3.11805605888361,55.957637786865234],[-3.078310012817383,55.94791793823242],[-3.087460041046086,55.89065933227539],[-3.189531087875366,55.88268280029308],[-3.360150098800602,55.81172943115246],[-3.395265102386475,55.81739425659174]]]},"properties":{"ID_0":242,"ISO":"GB-EDH","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":150,"NAME_2":"Edinburgh","TYPE_2":"Unitary District (city)","ENGTYPE_2":"Unitary District (city)","NL_NAME_2":null,"VARNAME_2":"Édimbourg|Edimburgo"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.443611145019474,58.12763977050792],[-6.377500057220458,58.09097290039068],[-6.35694408416748,58.03958511352545],[-6.36527681350708,58.01680374145508],[-6.385831832885742,58.00041580200195],[-6.434165954589787,58.01430511474614],[-6.472498893737679,58.00125122070312],[-6.453054904937744,57.98875045776367],[-6.448610782623234,57.965137481689446],[-6.471388816833496,57.93708419799805],[-6.497500896453857,57.939861297607536],[-6.535833835601807,57.917915344238274],[-6.578054904937687,57.91041564941401],[-6.652500152587891,57.917915344238274],[-6.709167003631591,57.96680450439459],[-6.704721927642822,57.992362976074276],[-6.724167823791504,58.012638092041065],[-6.75083398818964,58.005973815917905],[-6.720832824706974,57.959861755371094],[-6.673056125640868,57.922637939453075],[-6.668612003326416,57.87930679321288],[-6.792500972747746,57.892639160156364],[-6.734722137451172,57.827362060546925],[-6.78805685043335,57.809860229492294],[-6.848054885864258,57.802639007568416],[-6.871388912200928,57.7762489318847],[-6.939165115356444,57.75541687011719],[-6.964168071746826,57.72986221313488],[-7.054721832275334,57.777915954589844],[-7.086945056915283,57.807918548583984],[-7.116944789886418,57.814029693603516],[-7.133612155914306,57.83791732788086],[-7.100833892822266,57.839862823486385],[-7.074168205261173,57.82430648803705],[-7.046944141387939,57.82764053344732],[-6.982501029968205,57.863471984863395],[-6.92083215713501,57.874862670898494],[-6.960833072662297,57.88708496093756],[-6.924166202545166,57.909862518310604],[-6.853610992431527,57.89986038208008],[-6.848054885864258,57.913471221923885],[-6.943612098693848,57.9495849609375],[-6.985833168029785,57.95569610595703],[-7.016945838928223,57.9520835876466],[-7.080277919769287,57.96680450439459],[-7.08583211898798,58.01930618286133],[-7.050278186798096,58.020973205566456],[-7.057499885559025,58.06069564819335],[-7.098611831665039,58.068473815918026],[-7.114723205566349,58.11347198486333],[-7.131388187408447,58.138748168945305],[-7.090833187103271,58.16374969482421],[-7.102499961853026,58.18569564819347],[-7.066945075988713,58.194583892822266],[-7.050278186798096,58.23125076293951],[-6.999166011810246,58.23430633544921],[-6.975833892822265,58.21958160400401],[-6.908610820770207,58.20597076416022],[-6.944722175598145,58.19430541992187],[-6.878055095672607,58.179306030273544],[-6.835278034210148,58.203472137451286],[-6.756944179534798,58.19430541992187],[-6.764166831970214,58.22541809082037],[-6.790278911590575,58.236526489257926],[-6.828610897064209,58.28430557250988],[-6.796945095062255,58.30708312988286],[-6.754166126251221,58.306526184082145],[-6.724721908569222,58.328472137451165],[-6.653610229492131,58.35180664062499],[-6.62583398818964,58.34902954101568],[-6.579166889190674,58.365139007568416],[-6.550833225250244,58.36597061157237],[-6.523611068725586,58.39513778686535],[-6.45638990402216,58.42041778564465],[-6.399168014526367,58.44985961914062],[-6.354722023010254,58.46041488647455],[-6.332500934600772,58.47930526733398],[-6.300834178924504,58.48152923583984],[-6.271389961242619,58.49652862548839],[-6.260276794433594,58.51736068725591],[-6.22138786315918,58.50069427490246],[-6.214722156524601,58.484306335449325],[-6.181944847106934,58.469581604003956],[-6.190278053283691,58.4426383972169],[-6.168056011199951,58.42680740356457],[-6.205832958221379,58.38458251953119],[-6.210833072662354,58.36208343505853],[-6.191390037536621,58.349582672119084],[-6.207499027252196,58.32597351074224],[-6.231945037841796,58.31680679321288],[-6.245277881622314,58.29375076293945],[-6.283054828643799,58.28597259521478],[-6.279723167419433,58.26902770996093],[-6.321390151977481,58.26847076416015],[-6.31583309173584,58.24430465698237],[-6.343610763549748,58.23736190795904],[-6.291389942169189,58.20680618286138],[-6.236946105956974,58.223472595214844],[-6.201388835906982,58.24847030639659],[-6.136387825012207,58.261249542236435],[-6.166388034820557,58.209304809570256],[-6.206944942474308,58.188472747802734],[-6.255833148956242,58.17958450317388],[-6.28583288192749,58.20430374145508],[-6.307500839233398,58.20513916015625],[-6.338611125945988,58.18597412109381],[-6.388610839843749,58.199584960937436],[-6.366944789886475,58.15263748168951],[-6.370832920074463,58.13069534301758],[-6.443611145019474,58.12763977050792]]],[[[-6.887499809265137,58.27180480957037],[-6.854721069335881,58.26652908325202],[-6.820833206176701,58.23986053466797],[-6.786943912506103,58.2243041992188],[-6.803612232208252,58.20680618286138],[-6.867499828338565,58.20708465576171],[-6.875278949737549,58.23764038085943],[-6.89305591583252,58.25208282470703],[-6.887499809265137,58.27180480957037]]],[[[-7.131388187408447,58.038192749023544],[-7.109166145324706,58.03125],[-7.10138988494873,58.00402832031261],[-7.153612136840819,58.00791549682623],[-7.171389102935791,58.029582977294915],[-7.131388187408447,58.038192749023544]]],[[[-7.001388072967472,57.922084808349666],[-6.986945152282715,57.9026374816895],[-7.011944770812874,57.88013839721691],[-7.049722194671517,57.8848609924317],[-7.030831813812198,57.91875076293945],[-7.001388072967472,57.922084808349666]]],[[[-6.700833797454776,57.87291717529297],[-6.650278091430664,57.87069320678711],[-6.669722080230713,57.84930419921881],[-6.700833797454776,57.87291717529297]]],[[[-8.611390113830566,57.82819366455089],[-8.56361007690424,57.82069396972661],[-8.595278739929142,57.80458450317388],[-8.611390113830566,57.82819366455089]]],[[[-7.215278148651123,57.78541564941412],[-7.207499980926457,57.76541519165038],[-7.246387958526611,57.76013946533203],[-7.260276794433594,57.77986145019537],[-7.215278148651123,57.78541564941412]]],[[[-7.161943912506104,57.73902893066412],[-7.149167060851994,57.71875],[-7.198054790496769,57.70180511474609],[-7.218056201934814,57.711528778076286],[-7.198610782623234,57.73374938964856],[-7.161943912506104,57.73902893066412]]],[[[-7.387500762939453,57.63458251953136],[-7.37249994277954,57.65958404541026],[-7.349721908569336,57.66374969482433],[-7.290833950042725,57.65347290039073],[-7.198610782623234,57.6973609924317],[-7.161943912506104,57.68319320678711],[-7.163609981536865,57.654582977294915],[-7.138609886169376,57.648193359375],[-7.093610763549804,57.651527404785206],[-7.063055038452092,57.64014053344732],[-7.103055953979492,57.607639312744084],[-7.153056144714355,57.62708282470708],[-7.154722213745059,57.5890274047851],[-7.100277900695801,57.593750000000114],[-7.130834102630615,57.53791809082025],[-7.163055896758975,57.50847244262695],[-7.249722957611084,57.50680541992199],[-7.26527786254877,57.51208496093756],[-7.322500228881836,57.50902938842767],[-7.324165821075326,57.52736282348633],[-7.35416603088379,57.552639007568416],[-7.399166107177733,57.56541824340826],[-7.42139005661005,57.581249237060604],[-7.461388111114445,57.56402587890636],[-7.482500076293888,57.567081451416065],[-7.519722938537597,57.602638244628906],[-7.483612060546874,57.662918090820305],[-7.41972112655634,57.65347290039073],[-7.387500762939453,57.63458251953136]]],[[[-7.405831813812256,57.54763793945307],[-7.370833873748779,57.549304962158196],[-7.337499141693115,57.529582977295036],[-7.35583305358881,57.50680541992199],[-7.405831813812256,57.54763793945307]]],[[[-7.204166889190617,57.484306335449325],[-7.249166965484619,57.479026794433594],[-7.278611183166504,57.496528625488224],[-7.256389141082765,57.50652694702159],[-7.214722156524657,57.50152587890624],[-7.204166889190617,57.484306335449325]]],[[[-7.204723834991455,57.503192901611385],[-7.171389102935791,57.50291824340815],[-7.157499790191594,57.48319625854498],[-7.174167156219482,57.47013854980474],[-7.206389904022216,57.48875045776378],[-7.204723834991455,57.503192901611385]]],[[[-7.219165802001953,57.45819473266607],[-7.205276966094971,57.41485977172852],[-7.238056182861327,57.39513778686535],[-7.301389217376652,57.39736175537109],[-7.351387977600097,57.417915344238395],[-7.393610954284668,57.42597198486329],[-7.411944866180363,57.47069549560553],[-7.37972211837763,57.47486114501959],[-7.367498874664249,57.49152755737304],[-7.287498950958252,57.48541641235351],[-7.26694393157959,57.46597290039073],[-7.241387844085636,57.47624969482427],[-7.219165802001953,57.45819473266607]]],[[[-7.26694393157959,57.10291671752941],[-7.373055934906006,57.1031951904298],[-7.412500858306827,57.14847183227545],[-7.42472219467163,57.1926383972168],[-7.423056125640869,57.2165260314942],[-7.440833091735783,57.23875045776361],[-7.425278186798097,57.25402832031256],[-7.423056125640869,57.285972595214844],[-7.397500038146915,57.302082061767514],[-7.399722099304142,57.347637176513786],[-7.411388874053956,57.38791656494146],[-7.397500038146915,57.400138854980526],[-7.339167118072453,57.403194427490234],[-7.315834045410099,57.388473510742244],[-7.27416706085205,57.38180541992193],[-7.260276794433594,57.358470916748104],[-7.227499008178597,57.34791564941417],[-7.236388206481877,57.32485961914056],[-7.220279216766301,57.303749084472656],[-7.190834045410157,57.298194885253906],[-7.203610897064152,57.27958297729492],[-7.251945018768253,57.259582519531364],[-7.264721870422363,57.19486236572271],[-7.245277881622258,57.162082672119084],[-7.277501106262207,57.14263916015631],[-7.245831966400146,57.135971069335994],[-7.211390018463079,57.112915039062614],[-7.26694393157959,57.10291671752941]]],[[[-7.278055191040039,57.092082977294865],[-7.271944046020508,57.077640533447266],[-7.30805492401123,57.057361602783146],[-7.310832977294922,57.08541488647461],[-7.278055191040039,57.092082977294865]]],[[[-7.511794090270939,56.995693206787166],[-7.506944179534912,57.0051383972168],[-7.454165935516357,57.02597045898449],[-7.383611202239989,57.004859924316406],[-7.377500057220345,56.99041748046881],[-7.423056125640869,56.97180557250982],[-7.435832023620605,56.94763946533203],[-7.529168128967285,56.94652938842784],[-7.556389808654728,56.95069503784191],[-7.553610801696777,56.97152709960943],[-7.515278816223088,56.9793052673341],[-7.511794090270939,56.995693206787166]]],[[[-7.567500114440861,56.94985961914074],[-7.531943798065128,56.94652938842784],[-7.508612155914307,56.922084808349716],[-7.551389217376708,56.908473968505916],[-7.581945896148681,56.931526184082145],[-7.567500114440861,56.94985961914074]]],[[[-7.619165897369327,56.831806182861385],[-7.620833873748779,56.801807403564446],[-7.653611183166504,56.79513931274414],[-7.658610820770263,56.82347106933594],[-7.619165897369327,56.831806182861385]]]]},"properties":{"ID_0":242,"ISO":"GB-ELS","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":151,"NAME_2":"Eilean Siar","TYPE_2":"Island Area","ENGTYPE_2":"Island Area","NL_NAME_2":null,"VARNAME_2":"Western Isles"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.512501001358032,55.99986648559576],[-3.539443016052189,55.98666000366216],[-3.598611116409188,55.99110031127941],[-3.66722202301014,55.942211151123104],[-3.719166040420532,55.93193817138666],[-3.773890018463135,55.90250015258789],[-3.808888912200927,55.895271301269645],[-3.815001964568978,55.90639114379888],[-3.8938889503479,55.93333053588878],[-3.865000963211002,55.95610809326183],[-3.922498941421395,55.95750045776373],[-3.937222003936768,55.98443984985363],[-3.97472095489502,55.98527908325195],[-3.972779035568237,56.00638961792003],[-4.011261940002441,56.01226806640625],[-3.988538980484009,56.02302932739258],[-3.921557903289795,56.03738403320324],[-3.824273109435978,56.04376220703125],[-3.768455028533879,56.051734924316406],[-3.729166984558105,56.05069351196289],[-3.727500915527344,56.03291702270502],[-3.670833110809326,56.01625061035156],[-3.578612089157047,56.018749237060604],[-3.512501001358032,55.99986648559576]]]},"properties":{"ID_0":242,"ISO":"GB-FAL","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":152,"NAME_2":"Falkirk","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.630553007125854,56.12825012207031],[-3.584722042083683,56.13471984863281],[-3.550833940505981,56.152500152588],[-3.529165983200073,56.14165878295898],[-3.472500085830631,56.14387893676769],[-3.386945962905884,56.13721084594738],[-3.359998941421452,56.161941528320426],[-3.323889017105103,56.16749954223638],[-3.297498941421509,56.18526840209972],[-3.261111974716186,56.19638824462896],[-3.264168977737427,56.21915817260748],[-3.288887977600041,56.23305892944336],[-3.34833288192749,56.23666000366211],[-3.362777948379517,56.26472091674805],[-3.334443092346191,56.281940460205135],[-3.299722909927311,56.281658172607415],[-3.290555953979492,56.30305099487305],[-3.258610010147094,56.301670074462834],[-3.24194502830494,56.31361007690435],[-3.2623450756073,56.350971221923885],[-3.19416689872736,56.365417480468864],[-3.116942882537842,56.391803741455135],[-3.090833902359009,56.39513778686517],[-3.039167881011849,56.41624832153332],[-2.99194407463068,56.42013931274413],[-2.945832967758065,56.43652725219721],[-2.93638801574707,56.447082519531364],[-2.883611917495728,56.452915191650334],[-2.85805606842041,56.43986129760748],[-2.810832977294922,56.44541549682623],[-2.803056001663094,56.43513870239269],[-2.81250095367426,56.38874816894525],[-2.824722051620483,56.377361297607536],[-2.880278110504094,56.362361907958984],[-2.836389064788705,56.353195190429744],[-2.778055906295776,56.332916259765625],[-2.687499046325683,56.326805114746094],[-2.655833005905095,56.31763839721691],[-2.631388902664185,56.29597091674805],[-2.584166049957162,56.27819442749035],[-2.68861198425293,56.221527099609375],[-2.780277967453003,56.20013809204107],[-2.811944961547852,56.18541717529291],[-2.844722986221313,56.18291854858404],[-2.894166946411076,56.207084655761776],[-2.955276966094914,56.210140228271484],[-2.985277891159058,56.198749542236385],[-3.017499923705998,56.1743049621582],[-3.045278072357178,56.16764068603527],[-3.084167003631535,56.1390266418457],[-3.144721031188908,56.119304656982536],[-3.17361211776722,56.06208419799816],[-3.213610887527466,56.06402587890631],[-3.230834007263127,56.054584503173885],[-3.26583194732666,56.05930709838867],[-3.337500095367432,56.03930664062494],[-3.35583305358881,56.02597045898432],[-3.387499094009399,56.022640228271484],[-3.388612031936532,56.00736236572271],[-3.514723062515258,56.0404167175293],[-3.546389102935734,56.039859771728516],[-3.575834035873413,56.05847167968755],[-3.663611888885498,56.04680633544922],[-3.731349945068303,56.06379699707031],[-3.750951051712036,56.07049179077142],[-3.71555590629572,56.097499847412166],[-3.631387948989868,56.10638046264648],[-3.630553007125854,56.12825012207031]]]},"properties":{"ID_0":242,"ISO":"GB-FIF","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":153,"NAME_2":"Fife","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.356803894042969,55.81916046142589],[-4.355751991271916,55.86409378051769],[-4.35162878036499,55.90525436401373],[-4.294700145721322,55.89823532104503],[-4.269435882568303,55.91613006591797],[-4.213646888732853,55.88981628417969],[-4.161842823028508,55.89171981811529],[-4.119316101074162,55.868331909179744],[-4.079444885253849,55.868331909179744],[-4.069877147674561,55.85557174682617],[-4.084230899810791,55.82730102539068],[-4.176805019378662,55.830867767334034],[-4.196805000305176,55.82034301757807],[-4.189435958862305,55.795078277587834],[-4.20206880569458,55.784553527832024],[-4.240317821502629,55.79342651367198],[-4.25680494308466,55.80350112915039],[-4.292593955993539,55.795078277587834],[-4.347330093383789,55.794025421142635],[-4.356803894042969,55.81916046142589]]]},"properties":{"ID_0":242,"ISO":"GB-GLG","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":154,"NAME_2":"Glasgow","TYPE_2":"Unitary District (city)","ENGTYPE_2":"Unitary District (city)","NL_NAME_2":null,"VARNAME_2":"Glasgow City"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-3.761389017105045,57.63118362426763],[-3.728888988494759,57.58499908447277],[-3.708889961242618,57.577499389648494],[-3.71166801452631,57.532489776611264],[-3.687222003936711,57.52249908447265],[-3.679167032241821,57.493049621582145],[-3.684721946716194,57.44610977172851],[-3.719166040420532,57.42277908325206],[-3.701667070388794,57.40805053710937],[-3.6663880348205,57.430828094482365],[-3.610277891158943,57.43444061279302],[-3.578331947326603,57.448879241943416],[-3.498055934906006,57.457500457763786],[-3.438611030578556,57.42610931396496],[-3.397778034210148,57.421390533447315],[-3.384444952011051,57.381389617920036],[-3.418334007263126,57.35776901245111],[-3.44527792930603,57.3294410705567],[-3.47305607795704,57.31721115112305],[-3.482779026031437,57.29888153076183],[-3.44527792930603,57.28583145141613],[-3.454998016357365,57.23722076416021],[-3.420278072357178,57.223049163818416],[-3.427222967147827,57.202499389648494],[-3.452500104904174,57.17805099487315],[-3.474999904632568,57.17860031127935],[-3.530833959579411,57.163890838623104],[-3.556390047073364,57.145549774169915],[-3.614166021347045,57.117488861083984],[-3.641665935516357,57.11582946777338],[-3.67945408821106,57.095508575439396],[-3.736943006515446,57.07722091674805],[-3.74888801574707,57.02777099609375],[-3.745831966400146,56.99166107177728],[-3.781388998031616,56.964439392089844],[-3.79639005661005,56.9302711486817],[-3.816668033599796,56.93416976928711],[-3.878056049346867,56.924720764160156],[-3.940557003021127,56.947490692138615],[-3.960000038146859,56.929161071777344],[-3.976110935211182,56.89554977416998],[-4.033055782318058,56.90250015258789],[-4.099165916442814,56.89527130126959],[-4.16416692733759,56.90861129760742],[-4.202221870422306,56.89305114746087],[-4.201111793518066,56.86943817138672],[-4.253056049346924,56.85305023193359],[-4.303055763244629,56.84498977661138],[-4.332777976989746,56.824169158935604],[-4.366665840148926,56.826660156249936],[-4.393423080444336,56.812953948974666],[-4.436561107635498,56.7784423828125],[-4.47444391250599,56.78583145141607],[-4.514166831970215,56.803600311279354],[-4.551668167114201,56.76361083984381],[-4.578333854675293,56.75500106811535],[-4.573609828948975,56.727489471435604],[-4.597777843475228,56.70861053466791],[-4.586390972137451,56.69250106811523],[-4.64527702331543,56.6755485534668],[-4.702776908874512,56.67026901245123],[-4.708611965179387,56.641510009765625],[-4.757224082946777,56.64332962036133],[-4.790771961212158,56.6539306640625],[-4.863892078399658,56.64672851562506],[-4.924377918243408,56.65948486328131],[-4.970823764800969,56.644287109375114],[-5.020019054412842,56.64093017578125],[-5.038574218749943,56.6234741210938],[-5.075194835662842,56.607299804687614],[-5.144714832305851,56.61651611328125],[-5.169188976287785,56.630920410156364],[-5.299166202545109,56.6400413513183],[-5.320277214050293,56.64875030517578],[-5.27861213684082,56.670139312744254],[-5.24972200393671,56.669860839843864],[-5.185276985168343,56.699584960937614],[-5.247499942779541,56.705696105957145],[-5.165277957916203,56.78069305419916],[-5.101944923400879,56.82430648803711],[-5.173610210418701,56.852085113525504],[-5.264722824096623,56.85347366333002],[-5.255279064178467,56.84236145019531],[-5.17972278594965,56.846527099609375],[-5.122500896453857,56.825695037841854],[-5.218612194061222,56.76458358764642],[-5.253610134124756,56.737361907958984],[-5.249166011810246,56.71819305419921],[-5.302499771118107,56.71208190917968],[-5.352499961852971,56.68458175659185],[-5.355834007263127,56.67430496215826],[-5.406390190124512,56.64236068725586],[-5.434165954589844,56.64180374145508],[-5.470279216766301,56.614582061767635],[-5.493055820465031,56.60680389404297],[-5.55916690826416,56.54458236694341],[-5.613611221313477,56.51958465576166],[-5.678612232208251,56.500137329101506],[-5.695277214050293,56.51180648803722],[-5.752499103546086,56.517917633056754],[-5.771944999694824,56.53236007690435],[-5.865277767181396,56.544029235839844],[-5.928609848022461,56.56347274780279],[-5.960833072662297,56.58319473266596],[-5.979166030883789,56.61041641235363],[-6.001389980316161,56.61930465698242],[-6.007500171661319,56.64597320556646],[-5.914721012115479,56.66291809082037],[-5.838612079620304,56.66069412231445],[-5.76583194732666,56.6948623657226],[-5.721944808959961,56.6973609924317],[-5.71805477142334,56.70986175537115],[-5.770833015441781,56.708194732666016],[-5.839166164398193,56.67263793945318],[-5.926943778991699,56.67541503906244],[-5.936388969421387,56.687084197998104],[-5.980832099914437,56.673194885253906],[-6.030834197998047,56.67986297607422],[-6.050834178924561,56.69263839721691],[-6.117500782012939,56.69597244262695],[-6.141387939453068,56.68236160278332],[-6.186944007873535,56.687084197998104],[-6.228055000305176,56.71652603149408],[-6.18861198425293,56.75485992431646],[-6.12027883529663,56.76541519165039],[-6.064723014831543,56.760692596435604],[-5.998055934906006,56.77097320556634],[-5.959722995758057,56.78430557250982],[-5.905276775360107,56.7506942749024],[-5.888611793517952,56.76235961914074],[-5.88749885559082,56.785137176513786],[-5.836390018463135,56.7779159545899],[-5.794723033904972,56.79486083984375],[-5.866943836212101,56.810974121093864],[-5.860277175903263,56.82986068725586],[-5.78583383560175,56.837081909179744],[-5.756390094757023,56.857360839843864],[-5.786387920379639,56.866249084472706],[-5.746388912200928,56.884304046630916],[-5.799167156219482,56.89097213745122],[-5.872499942779484,56.8801383972169],[-5.921388149261475,56.88069534301769],[-5.924166202545166,56.89180374145502],[-5.880277156829834,56.89958190917969],[-5.88361120223999,56.922637939453125],[-5.854166984558105,56.940139770507926],[-5.843612194061279,56.99041748046881],[-5.830276966094971,57.0087509155274],[-5.806942939758244,57.01430511474621],[-5.727499008178711,57.01819610595703],[-5.708055973052979,56.9906959533692],[-5.670833110809269,56.97708511352539],[-5.624722003936768,56.974861145019474],[-5.53027677536005,56.99347305297846],[-5.53194522857666,57.00180435180675],[-5.61638879776001,56.98263931274414],[-5.656943798065186,56.992637634277344],[-5.679165840148869,57.0093040466308],[-5.689723014831428,57.039306640625114],[-5.754721164703312,57.03180694580084],[-5.786943912506104,57.047916412353565],[-5.798055171966552,57.065971374511776],[-5.758612155914306,57.09041595458996],[-5.731389999389648,57.09847259521478],[-5.723054885864201,57.11819458007818],[-5.679165840148869,57.119304656982536],[-5.64527702331543,57.12791824340832],[-5.592498779296875,57.119583129882926],[-5.534722805023193,57.08708190917969],[-5.51694393157959,57.100139617919915],[-5.552501201629525,57.11180496215826],[-5.560276985168457,57.13236236572277],[-5.610277175903319,57.145137786865234],[-5.660831928253116,57.142360687255916],[-5.68916702270502,57.15625],[-5.675278186798096,57.18513870239269],[-5.643054962158203,57.19708251953119],[-5.625277996063232,57.21569442749023],[-5.656387805938721,57.23430633544921],[-5.63638877868641,57.250694274902344],[-5.521944046020451,57.26902770996094],[-5.662500858306827,57.28097152709961],[-5.726943016052246,57.27930450439453],[-5.714723110198975,57.318473815918026],[-5.684165954589844,57.32847213745123],[-5.685834884643555,57.34180450439464],[-5.614167213439941,57.338748931884766],[-5.579165935516357,57.3543052673341],[-5.533610820770207,57.35319519042974],[-5.460834026336613,57.38930511474621],[-5.440278053283635,57.414306640625114],[-5.463056087493896,57.4190292358399],[-5.536388874053897,57.36847305297851],[-5.599165916442871,57.35514068603526],[-5.635832786560002,57.36652755737316],[-5.613611221313477,57.40124893188471],[-5.692501068115178,57.37625122070318],[-5.723610877990666,57.356803894043026],[-5.787499904632512,57.346527099609425],[-5.821387767791748,57.361804962158196],[-5.828054904937687,57.39152908325189],[-5.810277938842773,57.40180587768566],[-5.82583284378046,57.44124984741216],[-5.853610992431641,57.44208526611333],[-5.870833873748722,57.46930694580079],[-5.870833873748722,57.50152969360362],[-5.854166984558105,57.52680587768555],[-5.854166984558105,57.54902648925781],[-5.837500095367375,57.57930374145513],[-5.809721946716309,57.58541488647466],[-5.743054866790771,57.54430389404303],[-5.698054790496826,57.54847335815441],[-5.700276851654053,57.53291702270508],[-5.671946048736515,57.523471832275504],[-5.608055114746094,57.53569412231457],[-5.520833969116211,57.53013992309582],[-5.54027795791626,57.5531959533692],[-5.65749979019165,57.54791641235363],[-5.685277938842717,57.554306030273544],[-5.685834884643555,57.5770835876466],[-5.729722023010197,57.585971832275455],[-5.737500190734863,57.609027862548835],[-5.773055076599064,57.63236236572266],[-5.819722175598087,57.648193359375],[-5.786943912506104,57.684028625488224],[-5.79027795791626,57.6973609924317],[-5.760278224945067,57.70680618286127],[-5.71083402633667,57.707359313964844],[-5.69749879837036,57.73014068603526],[-5.761943817138672,57.731529235839844],[-5.809165000915527,57.746528625488395],[-5.801945209503174,57.795696258544865],[-5.813611984252929,57.81680679321294],[-5.808055877685547,57.862361907959034],[-5.779167175292912,57.85930633544916],[-5.690277099609374,57.869304656982536],[-5.683609962463379,57.8351402282716],[-5.66194486618042,57.82652664184576],[-5.665832996368408,57.79847335815436],[-5.624166011810246,57.76874923706065],[-5.585277080535832,57.8140258789063],[-5.58250093460083,57.837081909179744],[-5.639722824096623,57.86291503906262],[-5.636944770812987,57.91374969482428],[-5.597499847412053,57.923751831054794],[-5.551387786865234,57.90930557250983],[-5.55083179473877,57.88319396972656],[-5.537498950958251,57.8676376342774],[-5.453054904937744,57.85208511352545],[-5.454166889190617,57.869583129882926],[-5.424167156219482,57.9087486267091],[-5.35138988494873,57.88735961914063],[-5.325277805328312,57.86541748046869],[-5.261388778686467,57.85347366333019],[-5.246943950652962,57.86708450317382],[-5.314723014831486,57.88124847412104],[-5.340833187103157,57.90680694580072],[-5.395277023315372,57.913471221923885],[-5.406390190124512,57.92708206176769],[-5.357500076293888,57.93875122070319],[-5.330833911895752,57.91458511352539],[-5.289166927337646,57.91069412231456],[-5.240832805633487,57.91764068603526],[-5.149723052978516,57.874862670898494],[-5.126945018768254,57.8745841979981],[-5.08472204208374,57.827915191650504],[-5.065834045410099,57.82764053344732],[-5.099722862243651,57.869583129882926],[-5.133055210113525,57.87930679321288],[-5.152501106262206,57.8962516784668],[-5.214721202850341,57.9201393127442],[-5.191390037536621,57.95402908325196],[-5.241388797759895,57.96180725097662],[-5.248055934906006,57.97069549560541],[-5.314723014831486,57.98041534423822],[-5.309722900390625,57.98986053466802],[-5.3691668510437,58.03069305419928],[-5.424723148345947,58.038192749023544],[-5.424723148345947,58.05791854858409],[-5.45861196517933,58.068473815918026],[-5.436944007873478,58.10514068603527],[-5.400833129882812,58.097362518310604],[-5.364723205566349,58.07069396972656],[-5.325277805328312,58.069026947021435],[-5.287500858306884,58.07819366455084],[-5.279166221618539,58.10263824462901],[-5.285278797149601,58.12569427490239],[-5.310832023620605,58.15486145019537],[-5.313611030578556,58.171527862548885],[-5.361388206481934,58.20486068725585],[-5.362500190734863,58.21680450439454],[-5.405278205871525,58.23430633544921],[-5.395833015441838,58.2551383972169],[-5.343054771423283,58.251251220703246],[-5.305833816528263,58.228473663330014],[-5.238611221313363,58.2556953430177],[-5.154723167419434,58.25430679321295],[-5.134720802307071,58.27763748168957],[-5.138055801391602,58.31041717529297],[-5.169166088104248,58.32097244262689],[-5.187499046325626,58.352916717529354],[-5.155276775360051,58.379306793213004],[-5.151945114135742,58.405418395996094],[-5.112500190734806,58.39847183227539],[-5.116943836212158,58.43041610717784],[-5.082499980926457,58.45124816894536],[-5.053054809570255,58.45319366455084],[-5.126945018768254,58.48847198486333],[-5.114721775054875,58.522361755371094],[-5.093056201934814,58.538471221923835],[-5.051942825317326,58.540973663330135],[-5.011943817138615,58.593471527099666],[-5.005834102630615,58.62791824340821],[-4.946390151977481,58.61180496215831],[-4.868055820465087,58.60902786254882],[-4.823056221008244,58.596527099609375],[-4.795278072357178,58.57764053344732],[-4.738056182861271,58.579029083252074],[-4.702498912811279,58.555694580078125],[-4.655278205871582,58.5529174804688],[-4.650834083557072,58.53319549560546],[-4.711944103240967,58.49597167968744],[-4.70972204208374,58.46541595458995],[-4.675277233123722,58.484306335449325],[-4.64361095428461,58.52041625976562],[-4.595276832580566,58.53430557250982],[-4.599721908569278,58.5712509155274],[-4.543055057525634,58.582084655761776],[-4.4352769851684,58.55597305297846],[-4.409167766571045,58.52430725097662],[-4.447500228881836,58.50152587890625],[-4.474165916442814,58.444026947021484],[-4.42472314834589,58.48069381713867],[-4.418610095977783,58.495693206787045],[-4.355834007263184,58.53763961792003],[-4.30194616317749,58.54430389404297],[-4.215277194976807,58.53291702270508],[-4.214167118072453,58.551528930664055],[-4.166943073272705,58.5459709167481],[-4.149166107177678,58.566249847412216],[-4.082499027252197,58.5598602294923],[-4.049723148345947,58.572360992431584],[-4.044722080230599,58.58930587768566],[-4.014721870422306,58.594306945800845],[-4.005277156829776,58.56597137451167],[-3.953056097030526,58.5745849609375],[-3.920277118682805,58.5598602294923],[-3.891388893127441,58.56874847412114],[-3.859167098999024,58.564304351806754],[-3.774166107177678,58.57513809204107],[-3.649723052978459,58.62402725219737],[-3.640278100967407,58.615970611572315],[-3.535279035568237,58.622917175293026],[-3.546942949294987,58.60402679443365],[-3.514723062515258,58.5981941223145],[-3.485276937484741,58.61013793945318],[-3.428611040115299,58.60652923583991],[-3.363611936569214,58.595695495605575],[-3.345832109451237,58.61097335815435],[-3.414167881011963,58.639862060546875],[-3.406388998031616,58.66152954101556],[-3.377501010894718,58.672359466552734],[-3.343610048294067,58.6479148864746],[-3.295279026031494,58.64569473266607],[-3.269722938537541,58.654582977294865],[-3.200834035873356,58.65597152709961],[-3.162501096725407,58.63874816894536],[-3.103056907653751,58.646526336670036],[-3.024167060852051,58.64430618286133],[-3.035276889801025,58.61069488525396],[-3.066943883895874,58.56375122070312],[-3.121390104293766,58.53069305419916],[-3.133054971694946,58.510692596435604],[-3.126944065093994,58.48597335815424],[-3.106389045715332,58.47402954101574],[-3.050278902053833,58.47986221313471],[-3.051388978958016,58.446250915527344],[-3.098612070083561,58.396526336669915],[-3.106389045715332,58.37097167968756],[-3.142498970031681,58.355693817138615],[-3.219722986221313,58.305416107177784],[-3.272500991821232,58.29791641235351],[-3.386389970779419,58.26680374145502],[-3.469167947769165,58.20735931396495],[-3.506387948989811,58.1720848083496],[-3.673610925674381,58.10124969482427],[-3.743056058883667,58.06819534301763],[-3.784167051315307,58.06402587890625],[-3.832500934600831,58.03958511352545],[-3.84472107887268,58.00763702392584],[-3.890832901000977,57.98736190795909],[-3.934721946716309,57.982917785644524],[-3.983612060546818,57.9690284729005],[-4.007500171661377,57.93208312988286],[-3.991388082504272,57.90236282348633],[-4.013055801391602,57.89041519165044],[-4.018056869506836,57.86375045776378],[-4.089722156524657,57.863471984863395],[-4.108055114746037,57.85319519042963],[-4.174166202545166,57.860137939453125],[-4.202499866485539,57.87097167968749],[-4.271944999694824,57.869304656982536],[-4.300833225250244,57.8537483215332],[-4.19194507598877,57.86291503906262],[-4.140833854675236,57.828472137451286],[-4.098053932189884,57.83235931396496],[-4.045279026031437,57.81652832031261],[-3.965831995010319,57.84569549560552],[-3.919167041778451,57.83791732788086],[-3.890832901000977,57.82125091552739],[-3.860832929611149,57.82485961914068],[-3.829165935516357,57.84041595458979],[-3.813055038452092,57.860694885253906],[-3.779722929000797,57.849029541015625],[-3.850833892822265,57.78874969482421],[-3.918055057525578,57.75069427490241],[-3.915832996368295,57.743751525878906],[-3.976946115493718,57.692916870117244],[-4.036389827728215,57.699028015136776],[-4.010834217071533,57.73569488525402],[-4.073057174682617,57.73180389404302],[-4.106945037841797,57.71875],[-4.158054828643742,57.68847274780284],[-4.208611011505013,57.692081451416136],[-4.264722824096566,57.67819595336908],[-4.300833225250244,57.675415039062614],[-4.299167156219426,57.65874862670892],[-4.413611888885441,57.60652923583996],[-4.374722957611083,57.59763717651372],[-4.326388835906982,57.630695343017685],[-4.245832920074406,57.66680526733398],[-4.215277194976807,57.67402648925787],[-4.163054943084717,57.674861907959034],[-4.166389942169189,57.662918090820305],[-4.088612079620304,57.66430664062505],[-4.03472185134882,57.68430709838861],[-3.992501020431519,57.675971984863395],[-4.025833129882812,57.657917022705135],[-4.102500915527344,57.605415344238395],[-4.113612174987793,57.57764053344737],[-4.169722080230656,57.566249847412045],[-4.174166202545166,57.55236053466808],[-4.23416614532465,57.50069427490246],[-4.311944007873535,57.502082824707024],[-4.368609905242806,57.51208496093756],[-4.415833950042668,57.50236129760742],[-4.375833034515381,57.47986221313477],[-4.296389102935734,57.48180389404308],[-4.218610763549805,57.49680709838862],[-4.183610916137695,57.48458480834972],[-4.113612174987793,57.51597213745123],[-4.096387863159123,57.53958511352539],[-4.054166793823241,57.55208206176769],[-4.038609981536865,57.56735992431641],[-4.060277938842773,57.58958435058605],[-4.010834217071533,57.60069274902343],[-3.933056116104126,57.58569335937506],[-3.865277051925659,57.590972900390625],[-3.799165964126531,57.60930633544922],[-3.761389017105045,57.63118362426763]]],[[[-5.89194393157959,57.23986053466797],[-5.853610992431641,57.25513839721691],[-5.806388854980469,57.25847244262701],[-5.780276775360107,57.27041625976568],[-5.738056182861328,57.27486038208008],[-5.647500038146916,57.253749847412166],[-5.666388988494873,57.236251831054744],[-5.668611049651985,57.209304809570305],[-5.710278034210205,57.185974121093864],[-5.786943912506104,57.16736221313488],[-5.782499790191594,57.14402770996105],[-5.828054904937687,57.10736083984381],[-5.851388931274413,57.11097335815429],[-5.871943950653076,57.085140228271534],[-5.922500133514347,57.042640686035156],[-5.984723091125431,57.027915954589844],[-6.024168014526367,57.02430725097656],[-6.037500858306828,57.05236053466796],[-6.010279178619384,57.08847045898443],[-5.987501144409123,57.1048622131347],[-5.995276927947941,57.127082824706974],[-5.943056106567326,57.14680480957037],[-5.918056011199951,57.16513824462896],[-5.933610916137695,57.17514038085932],[-5.983057022094727,57.1668052673341],[-6.010832786560059,57.20541763305664],[-6.083055973052978,57.12625122070318],[-6.113609790802002,57.136528015136776],[-6.103611946105957,57.1668052673341],[-6.131943225860538,57.18402862548834],[-6.186944007873535,57.17291641235363],[-6.210277080535889,57.17708206176763],[-6.313055038452148,57.15958404541021],[-6.284166812896729,57.18958282470714],[-6.353055953979435,57.18708419799805],[-6.404166221618651,57.2315292358399],[-6.450276851654052,57.26152801513683],[-6.481389999389648,57.3120841979981],[-6.446389198303166,57.32097244262695],[-6.445833206176701,57.347362518310604],[-6.48194408416748,57.36652755737316],[-6.471388816833496,57.377082824707145],[-6.525833129882699,57.39819335937506],[-6.555276870727539,57.38486099243158],[-6.563611984252873,57.335971832275504],[-6.580832958221379,57.331806182861435],[-6.61972188949585,57.34819412231457],[-6.673612117767334,57.35652923583978],[-6.722498893737793,57.373748779296875],[-6.743054866790771,57.41569519042968],[-6.78805685043335,57.43125152587902],[-6.784721851348877,57.4548606872558],[-6.764166831970214,57.45930480957042],[-6.748054981231689,57.500137329101676],[-6.713611125946045,57.5134735107423],[-6.663610935211182,57.46125030517573],[-6.61138916015625,57.44625091552741],[-6.63861083984375,57.502639770507756],[-6.560833930969181,57.508193969726555],[-6.643055915832463,57.55236053466808],[-6.635276794433594,57.60791778564447],[-6.581388950347844,57.587917327880916],[-6.567500114440918,57.551528930664055],[-6.503055095672607,57.534027099609425],[-6.468057155609074,57.508193969726555],[-6.406943798065186,57.523471832275504],[-6.368054866790771,57.517082214355575],[-6.399168014526367,57.564304351806754],[-6.395277023315429,57.61291503906249],[-6.426942825317383,57.64069366455089],[-6.354166030883789,57.67124938964838],[-6.354722023010254,57.6970825195313],[-6.300278186798039,57.70791625976562],[-6.296944141387882,57.69319534301763],[-6.260276794433594,57.680973052978565],[-6.235833168029728,57.63902664184576],[-6.190834045410156,57.63319396972661],[-6.139165878295785,57.581806182861385],[-6.141387939453068,57.49430465698253],[-6.135278224945068,57.470973968505916],[-6.144722938537598,57.42902755737311],[-6.176945209503174,57.41208267211926],[-6.124166965484619,57.394584655761776],[-6.137499809265137,57.3662490844726],[-6.100832939147892,57.3259735107423],[-6.105278015136719,57.31486129760736],[-6.046945095062256,57.31013870239257],[-6.040832996368408,57.292083740234375],[-5.999166011810303,57.27291488647461],[-5.904167175292968,57.253471374511776],[-5.89194393157959,57.23986053466797]]],[[[-5.980832099914437,57.51430511474609],[-5.998611927032471,57.53125],[-5.980278015136719,57.546527862548885],[-5.989723205566406,57.57069396972668],[-5.957500934600829,57.581806182861385],[-5.958611011505127,57.55180740356445],[-5.980832099914437,57.51430511474609]]],[[[-5.983057022094727,57.48485946655273],[-6.002500057220459,57.45208358764654],[-6.025278091430607,57.44208145141596],[-6.017498970031738,57.38902664184582],[-5.993610858917236,57.355693817138665],[-6.02027702331543,57.332637786865234],[-6.068611145019474,57.3334732055664],[-6.081943988800048,57.35597229003906],[-6.075276851654053,57.37763977050786],[-6.085278034210205,57.42152786254883],[-6.05583381652832,57.461807250976506],[-6.011944770812988,57.464584350586],[-6.034721851348877,57.49097061157226],[-5.983057022094727,57.48485946655273]]],[[[-5.998611927032471,57.32541656494152],[-5.9480562210083,57.318473815918026],[-5.923612117767277,57.30680465698253],[-5.925278186798096,57.28208160400396],[-5.987499237060547,57.276805877685604],[-6.023612022399902,57.30430603027344],[-5.998611927032471,57.32541656494152]]],[[[-6.204166889190617,57.165973663330135],[-6.181944847106934,57.151248931884766],[-6.203610897064152,57.13513946533203],[-6.23305511474598,57.12930679321289],[-6.255833148956242,57.14986038208002],[-6.204166889190617,57.165973663330135]]],[[[-6.486944198608342,57.047916412353565],[-6.514721870422363,57.04513931274425],[-6.551389217376709,57.05652618408203],[-6.507499217987003,57.07180404663097],[-6.486944198608342,57.047916412353565]]],[[[-6.415278911590518,57.02847290039057],[-6.397499084472656,57.042640686035156],[-6.336389064788818,57.059860229492244],[-6.254167079925423,57.03319549560558],[-6.240277767181396,57.00763702392589],[-6.259723186492863,56.96097183227545],[-6.297500133514347,56.938751220703175],[-6.329721927642709,56.93513870239258],[-6.370276927947884,56.9526405334472],[-6.393610954284611,56.97430419921869],[-6.453054904937744,57.00208282470709],[-6.415278911590518,57.02847290039057]]],[[[-6.206944942474308,56.901527404785206],[-6.161389827728271,56.913192749023494],[-6.152499198913573,56.9415283203125],[-6.113609790802002,56.92902755737305],[-6.115831851959229,56.88680648803722],[-6.135278224945068,56.872638702392635],[-6.164721965789794,56.87180709838867],[-6.210277080535889,56.88847351074213],[-6.206944942474308,56.901527404785206]]],[[[-5.876389026641789,56.811248779296875],[-5.832499027252197,56.79763793945324],[-5.858055114746037,56.7859725952149],[-5.888054847717285,56.79430389404297],[-5.876389026641789,56.811248779296875]]]]},"properties":{"ID_0":242,"ISO":"GB-HLD","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":155,"NAME_2":"Highland","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.751653194427377,55.857284545898494],[-4.775751113891602,55.86981582641613],[-4.851539134979191,55.87086868286133],[-4.891388893127441,55.864933013916016],[-4.899722099304199,55.890972137451286],[-4.880832195281982,55.90402603149413],[-4.880832195281982,55.94152832031249],[-4.793610095977783,55.963748931884766],[-4.671389102935791,55.93319320678711],[-4.641944885253793,55.9317626953125],[-4.590487003326358,55.88139343261713],[-4.588380813598576,55.85086822509759],[-4.608382225036621,55.84244537353527],[-4.727327823638858,55.848762512206974],[-4.751653194427377,55.857284545898494]]]},"properties":{"ID_0":242,"ISO":"GB-IVC","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":156,"NAME_2":"Inverclyde","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.078310012817383,55.94791793823242],[-3.06107306480402,55.947639465332024],[-3.055566072463932,55.9273414611817],[-3.028450965881234,55.91139221191406],[-2.820858955383301,55.82167816162104],[-2.855556011199951,55.8133316040039],[-2.886111974716187,55.78805923461913],[-2.932499885559025,55.78610992431646],[-2.942779064178467,55.815280914306754],[-3.073611974716187,55.751388549804744],[-3.095556020736581,55.73611068725597],[-3.093333959579467,55.71860885620117],[-3.120831966400146,55.71194076538086],[-3.14499902725214,55.722221374511776],[-3.143332958221322,55.7388801574707],[-3.184165954589844,55.80167007446295],[-3.230000019073486,55.77637863159174],[-3.269721031188965,55.77389144897472],[-3.297498941421509,55.7938804626466],[-3.336946010589543,55.794170379638665],[-3.360150098800602,55.81172943115246],[-3.189531087875366,55.88268280029308],[-3.087460041046086,55.89065933227539],[-3.078310012817383,55.94791793823242]]]},"properties":{"ID_0":242,"ISO":"GB-MLN","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":157,"NAME_2":"Midlothian","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Edinburgh"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.761389017105045,57.63118362426763],[-3.707499027252083,57.64402770996093],[-3.703610897064209,57.657917022705135],[-3.621944904327392,57.664028167724666],[-3.550277948379517,57.661529541015625],[-3.499722003936711,57.675971984863395],[-3.483611106872559,57.70319366455084],[-3.346945047378483,57.72486114501953],[-3.280277967453003,57.71652603149425],[-3.17305588722229,57.68791580200206],[-3.044166088104248,57.665695190429794],[-3.017499923705998,57.66430664062505],[-2.92749905586237,57.690139770507805],[-2.922498941421509,57.697917938232415],[-2.849168062210083,57.70624923706049],[-2.821804046630859,57.69486236572277],[-2.823024034500065,57.63380432128917],[-2.78046989440918,57.58538055419933],[-2.749654054641724,57.56924057006847],[-2.705631971359253,57.529621124267514],[-2.707098007202148,57.513477325439446],[-2.73204493522644,57.506141662597706],[-2.809818029403687,57.52081680297863],[-2.891993045806828,57.52081680297863],[-2.93601393699646,57.50467300415038],[-2.991775035858097,57.47679138183599],[-3.010852098464966,57.44891357421874],[-3.004982948303165,57.400485992431584],[-2.969765901565552,57.36380386352545],[-2.966830015182438,57.32711791992199],[-2.985907077789307,57.29776763916027],[-3.029930114746037,57.26695251464844],[-3.122376918792668,57.27722549438488],[-3.189877986907959,57.25667953491205],[-3.280855894088688,57.18917846679693],[-3.33221697807312,57.17597198486328],[-3.345422029495239,57.148094177246094],[-3.323411941528263,57.11287307739252],[-3.345422029495239,57.089397430419865],[-3.42759895324707,57.082057952880916],[-3.619829893112183,57.082057952880916],[-3.67945408821106,57.095508575439396],[-3.641665935516357,57.11582946777338],[-3.614166021347045,57.117488861083984],[-3.556390047073364,57.145549774169915],[-3.530833959579411,57.163890838623104],[-3.474999904632568,57.17860031127935],[-3.452500104904174,57.17805099487315],[-3.427222967147827,57.202499389648494],[-3.420278072357178,57.223049163818416],[-3.454998016357365,57.23722076416021],[-3.44527792930603,57.28583145141613],[-3.482779026031437,57.29888153076183],[-3.47305607795704,57.31721115112305],[-3.44527792930603,57.3294410705567],[-3.418334007263126,57.35776901245111],[-3.384444952011051,57.381389617920036],[-3.397778034210148,57.421390533447315],[-3.438611030578556,57.42610931396496],[-3.498055934906006,57.457500457763786],[-3.578331947326603,57.448879241943416],[-3.610277891158943,57.43444061279302],[-3.6663880348205,57.430828094482365],[-3.701667070388794,57.40805053710937],[-3.719166040420532,57.42277908325206],[-3.684721946716194,57.44610977172851],[-3.679167032241821,57.493049621582145],[-3.687222003936711,57.52249908447265],[-3.71166801452631,57.532489776611264],[-3.708889961242618,57.577499389648494],[-3.728888988494759,57.58499908447277],[-3.761389017105045,57.63118362426763]]]},"properties":{"ID_0":242,"ISO":"GB-MRY","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":158,"NAME_2":"Moray","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Elgin"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.11527776718134,55.770973205566406],[-5.141387939453125,55.80875015258795],[-5.139721870422363,55.83569335937506],[-5.192500114440918,55.866527557373104],[-5.220277786254826,55.90375137329113],[-5.186388969421386,55.92625045776378],[-5.16083288192749,55.922359466552734],[-5.109722137451058,55.89152908325201],[-5.079723834991455,55.882362365722656],[-5.061388015747013,55.85985946655279],[-5.058055877685547,55.83874893188471],[-5.023055076599121,55.842918395996094],[-5.021389007568303,55.80902862548834],[-5.001389980316104,55.77291488647472],[-5.011943817138615,55.7456932067871],[-5.003612041473389,55.729583740234375],[-5.033055782318058,55.72208404541027],[-5.054168224334717,55.73319625854498],[-5.063055992126407,55.761806488037166],[-5.11527776718134,55.770973205566406]]],[[[-4.885276794433594,55.729862213134766],[-4.857501029968262,55.749862670898494],[-4.860833168029728,55.781528472900334],[-4.889722824096623,55.81874847412115],[-4.891388893127441,55.864933013916016],[-4.851539134979191,55.87086868286133],[-4.775751113891602,55.86981582641613],[-4.751653194427377,55.857284545898494],[-4.715750217437744,55.81192016601573],[-4.634696960449104,55.76665878295893],[-4.516318798065129,55.76287841796881],[-4.517907142639159,55.75934219360357],[-4.558114051818791,55.71463012695324],[-4.618207931518555,55.677070617675895],[-4.610695838928223,55.65753936767584],[-4.534078121185303,55.65603637695318],[-4.501026153564453,55.64552307128912],[-4.510039806365853,55.621482849121094],[-4.582045078277587,55.59136199951177],[-4.65749979019165,55.561981201171925],[-4.664165973663273,55.585693359375114],[-4.694723129272404,55.605972290039006],[-4.738056182861271,55.623195648193466],[-4.803054809570312,55.640140533447315],[-4.866390228271484,55.68597412109381],[-4.905831813812199,55.69930648803722],[-4.90472221374506,55.72208404541027],[-4.885276794433594,55.729862213134766]]],[[[-4.903056144714355,55.79319381713867],[-4.899166107177734,55.7537498474121],[-4.951389789581242,55.75041580200207],[-4.930833816528263,55.78430557250982],[-4.903056144714355,55.79319381713867]]],[[[-5.349167823791504,55.50485992431652],[-5.355278015136662,55.52569580078125],[-5.342501163482666,55.5451393127442],[-5.348054885864257,55.56930541992199],[-5.397500991821289,55.61402893066406],[-5.380834102630615,55.65708160400385],[-5.364167213439885,55.679584503173885],[-5.331387996673526,55.68791580200195],[-5.319167137145996,55.705417633056754],[-5.260276794433537,55.72152709960948],[-5.204166889190674,55.70430374145508],[-5.160276889801025,55.679027557373104],[-5.137499809265136,55.64263916015625],[-5.131945133209229,55.60069274902344],[-5.149723052978516,55.57819366455083],[-5.108055114746094,55.57236099243164],[-5.081943035125676,55.55236053466791],[-5.110278129577637,55.5426406860351],[-5.125277042388916,55.52486038208008],[-5.078610897064209,55.50930404663097],[-5.09250020980835,55.48430633544921],[-5.079166889190674,55.465415954589844],[-5.105277061462346,55.44041824340826],[-5.156945228576603,55.441806793213004],[-5.173610210418701,55.43430709838873],[-5.250277996063176,55.438751220703125],[-5.31583309173584,55.464862823486435],[-5.329165935516357,55.49041748046874],[-5.349167823791504,55.50485992431652]]]]},"properties":{"ID_0":242,"ISO":"GB-NAY","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":159,"NAME_2":"North Ayshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.161842823028508,55.89171981811529],[-4.149620056152344,55.909797668456974],[-4.069877147674561,55.90820312500006],[-4.044360160827637,55.92414855957031],[-4.047551155090332,55.957641601562614],[-4.098583221435547,55.956047058105526],[-4.120912075042725,55.96242523193371],[-4.125696182250977,56.005580902099666],[-4.081943035125732,56.02582931518566],[-4.017778873443604,56.02582931518566],[-4.011261940002441,56.01226806640625],[-3.972779035568237,56.00638961792003],[-3.97472095489502,55.98527908325195],[-3.937222003936768,55.98443984985363],[-3.922498941421395,55.95750045776373],[-3.865000963211002,55.95610809326183],[-3.8938889503479,55.93333053588878],[-3.815001964568978,55.90639114379888],[-3.808888912200927,55.895271301269645],[-3.793334007263127,55.871940612793026],[-3.728332996368352,55.883331298828125],[-3.710278034210148,55.87028121948242],[-3.744999885559082,55.85805892944336],[-3.71833395957941,55.8124885559082],[-3.733390092849675,55.7835693359375],[-3.781213045120182,55.7630729675293],[-3.881686925888005,55.73276901245117],[-3.897635936737061,55.73436355590825],[-3.982161998748722,55.77582931518555],[-4.065093040466309,55.812511444091854],[-4.084230899810791,55.82730102539068],[-4.069877147674561,55.85557174682617],[-4.079444885253849,55.868331909179744],[-4.119316101074162,55.868331909179744],[-4.161842823028508,55.89171981811529]]]},"properties":{"ID_0":242,"ISO":"GB-NLK","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":160,"NAME_2":"North Lanarkshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.379723072051945,59.392917633056584],[-2.408611059188842,59.37763977050787],[-2.409723043441772,59.354862213134815],[-2.450834035873413,59.35985946655284],[-2.434722900390625,59.38541793823254],[-2.379723072051945,59.392917633056584]]],[[[-2.98416805267334,59.32263946533203],[-2.900276899337768,59.30319595336919],[-2.881943941116333,59.28652954101574],[-2.875833988189697,59.25597381591803],[-2.920833110809269,59.27708435058594],[-2.995277881622314,59.26458358764648],[-3.020277976989689,59.285137176513615],[-3.021944046020508,59.30152893066411],[-3.055277109146118,59.316528320312436],[-2.98416805267334,59.32263946533203]]],[[[-2.514723062515259,59.255695343017635],[-2.533056020736637,59.23652648925786],[-2.613055944442749,59.23847198486339],[-2.687499046325683,59.203193664550895],[-2.695833921432495,59.22180557250987],[-2.569166898727417,59.277362823486335],[-2.531389951705819,59.266529083252],[-2.486388921737614,59.29041671752935],[-2.415277004241943,59.31180572509765],[-2.42416596412653,59.275417327880795],[-2.473612070083618,59.278194427490284],[-2.514723062515259,59.255695343017635]]],[[[-2.754723072051945,59.19235992431635],[-2.757500886917114,59.16374969482416],[-2.771944046020507,59.144306182861385],[-2.828056097030639,59.17347335815435],[-2.819720983505249,59.188194274902344],[-2.780277967453003,59.18986129760748],[-2.791944980621281,59.21347045898448],[-2.787498950958252,59.24069595336908],[-2.733055114746037,59.223751068115234],[-2.754723072051945,59.19235992431635]]],[[[-3.049721956253051,59.1298599243164],[-3.076944112777653,59.137359619140675],[-3.115277051925545,59.16180419921887],[-3.117499113082829,59.1754150390625],[-3.084722995758,59.197639465332145],[-3.048055887222233,59.19486236572265],[-3.039167881011849,59.179306030273494],[-2.953054904937744,59.17958450317388],[-2.976388931274357,59.159584045410156],[-2.963056087493896,59.135417938232365],[-3.00583291053772,59.126804351806754],[-3.049721956253051,59.1298599243164]]],[[[-2.930278062820435,59.17124938964844],[-2.908612012863045,59.164859771728516],[-2.916388034820557,59.13152694702154],[-2.936944007873535,59.13652801513671],[-2.930278062820435,59.17124938964844]]],[[[-2.549166917800903,59.100418090820256],[-2.540832996368408,59.082359313964844],[-2.579168081283569,59.07569503784191],[-2.633611917495614,59.107082366943416],[-2.645832061767578,59.07458496093756],[-2.68861198425293,59.08652877807623],[-2.651945114135685,59.11264038085937],[-2.621944904327336,59.12458419799805],[-2.665833950042725,59.14986038208019],[-2.594166994094792,59.14069366455078],[-2.608612060546818,59.126804351806754],[-2.565831899642944,59.12014007568364],[-2.549166917800903,59.100418090820256]]],[[[-3.089167118072509,58.99986267089855],[-3.055277109146118,58.99708175659192],[-3.036390066146851,59.01041793823247],[-2.948055028915348,58.99041748046875],[-2.931390047073307,59.015693664550895],[-2.906389951705933,59.00069427490234],[-2.918055057525635,58.98347091674804],[-2.909166097640991,58.9620819091798],[-2.810278892517033,58.98485946655279],[-2.805834054946843,58.947917938232365],[-2.7063889503479,58.9731941223145],[-2.710277080535889,58.9243049621582],[-2.779721975326538,58.91624832153331],[-2.831943988799992,58.87125015258783],[-2.845833063125554,58.88874816894531],[-2.883055925369263,58.899860382080014],[-2.906944036483708,58.871528625488224],[-2.875833988189697,58.84458160400396],[-2.889166116714421,58.82347106933587],[-2.929721117019596,58.791805267334034],[-2.936944007873535,58.76958465576178],[-2.908612012863045,58.7548599243164],[-2.923054933547974,58.73319625854492],[-2.947500944137573,58.732917785644524],[-2.986943960189819,58.74791717529308],[-2.983612060546875,58.78069305419933],[-3.022500038146916,58.80764007568354],[-3.008054971694946,58.8254165649414],[-2.962500095367432,58.836807250976676],[-2.963056087493896,58.84791564941406],[-2.9252769947052,58.87819290161138],[-2.933612108230591,58.9026374816895],[-2.973611116409302,58.939861297607536],[-3.008054971694946,58.94458389282232],[-3.085833072662354,58.92763900756841],[-3.113610982894897,58.930973052978516],[-3.134722948074341,58.91597366333014],[-3.190277099609375,58.91764068603527],[-3.222498893737793,58.92514038085932],[-3.236943960189819,58.941528320312436],[-3.239722967147827,58.985416412353565],[-3.298610925674438,58.94930648803711],[-3.32583308219904,58.95236206054698],[-3.362499952316284,58.98236083984369],[-3.368056058883667,58.99708175659192],[-3.349723100662175,59.06152725219732],[-3.348053932189941,59.09958267211914],[-3.310833930969125,59.1393051147462],[-3.240278959274292,59.152915954589844],[-3.191389083862305,59.14875030517584],[-3.090276956558228,59.118473052978516],[-3.049165964126587,59.111526489257805],[-3.050278902053833,59.09597396850587],[-3.000833034515381,59.06347274780285],[-3.061944961547738,59.02986145019531],[-3.098056077957096,59.015972137451286],[-3.089167118072509,58.99986267089855]]],[[[-2.801944017410221,59.08763885498041],[-2.799165964126473,59.07013702392578],[-2.835278987884521,59.02458190917974],[-2.899723052978516,59.03513717651367],[-2.935833930969181,59.030971527099666],[-2.903611898422241,59.07069396972656],[-2.855278015136719,59.05652618408214],[-2.837501049041748,59.079303741455185],[-2.801944017410221,59.08763885498041]]],[[[-3.239722967147827,58.784584045410156],[-3.210832118988037,58.80069351196289],[-3.137499094009343,58.80236053466797],[-3.140276908874512,58.783195495605575],[-3.241389036178532,58.77347183227539],[-3.291944026946965,58.7756958007813],[-3.370277881622314,58.83625030517572],[-3.388056039810124,58.87014007568364],[-3.433610916137695,58.87097167968744],[-3.423055887222233,58.903194427490284],[-3.396388053893986,58.924026489257805],[-3.331945896148568,58.93013763427734],[-3.317500114440918,58.90902709960943],[-3.285278081893864,58.905971527099545],[-3.213610887527466,58.878471374511726],[-3.199722051620427,58.855415344238345],[-3.20194411277771,58.80569458007824],[-3.245832920074463,58.80069351196289],[-3.239722967147827,58.784584045410156]]],[[[-3.069721937179565,58.8495826721192],[-3.102499961852914,58.83458328247082],[-3.077501058578434,58.814861297607415],[-3.138055086135807,58.81569290161144],[-3.148056030273438,58.82764053344726],[-3.1202778816222,58.84347152709961],[-3.069721937179565,58.8495826721192]]]]},"properties":{"ID_0":242,"ISO":"GB-ORK","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":161,"NAME_2":"Orkney Islands","TYPE_2":"Island Area","ENGTYPE_2":"Island Area","NL_NAME_2":null,"VARNAME_2":"Orcadas|Orcades|Orcadi|Orkneyöarna|Orknøyene"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.2623450756073,56.350971221923885],[-3.24194502830494,56.31361007690435],[-3.258610010147094,56.301670074462834],[-3.290555953979492,56.30305099487305],[-3.299722909927311,56.281658172607415],[-3.334443092346191,56.281940460205135],[-3.362777948379517,56.26472091674805],[-3.34833288192749,56.23666000366211],[-3.288887977600041,56.23305892944336],[-3.264168977737427,56.21915817260748],[-3.261111974716186,56.19638824462896],[-3.297498941421509,56.18526840209972],[-3.323889017105103,56.16749954223638],[-3.359998941421452,56.161941528320426],[-3.386945962905884,56.13721084594738],[-3.472500085830631,56.14387893676769],[-3.529165983200073,56.14165878295898],[-3.550833940505981,56.152500152588],[-3.584722042083683,56.13471984863281],[-3.630553007125854,56.12825012207031],[-3.642776012420654,56.15526962280279],[-3.56249809265131,56.1772193908692],[-3.561388015746957,56.186939239502],[-3.61166596412653,56.19805145263672],[-3.655555009841862,56.196941375732536],[-3.66416597366333,56.187221527099545],[-3.72305703163147,56.18972015380865],[-3.758888959884587,56.21583175659174],[-3.824373006820679,56.1925888061524],[-3.842777013778629,56.21833038330084],[-3.878056049346867,56.2138786315919],[-3.906666040420532,56.23389053344732],[-3.962500095367374,56.25083160400385],[-3.996388912200927,56.26916885375982],[-4.099165916442814,56.278610229492244],[-4.120277881622258,56.293880462646484],[-4.170556068420353,56.30028152465832],[-4.219446182250976,56.329158782958984],[-4.228888034820557,56.35583114624018],[-4.22415018081665,56.380058288574276],[-4.186388969421387,56.39139175415044],[-4.186944961547851,56.45721817016607],[-4.148056030273438,56.45277023315429],[-4.095277786254883,56.46833038330078],[-4.121665954589844,56.50222015380854],[-4.144721984863281,56.51221084594738],[-4.175594806671086,56.50953674316406],[-4.234340190887451,56.49155426025385],[-4.284689903259277,56.48136520385742],[-4.322779178619327,56.533329010009815],[-4.351666927337589,56.5408287048341],[-4.390555858612061,56.52611160278332],[-4.482501029968262,56.510829925537166],[-4.521111965179443,56.51443862915045],[-4.529723167419434,56.501110076904354],[-4.600277900695744,56.49248886108404],[-4.639380931854247,56.47185134887695],[-4.676392078399658,56.491699218750114],[-4.649171829223633,56.51922225952154],[-4.660831928253117,56.534439086914176],[-4.692779064178466,56.54804992675781],[-4.595276832580566,56.57444000244146],[-4.558332920074406,56.57027053833008],[-4.595580101013184,56.607482910156364],[-4.628056049346924,56.612220764160206],[-4.617524147033635,56.63150787353527],[-4.633612155914193,56.64971923828125],[-4.671945095062256,56.63972091674804],[-4.708611965179387,56.641510009765625],[-4.702776908874512,56.67026901245123],[-4.64527702331543,56.6755485534668],[-4.586390972137451,56.69250106811523],[-4.597777843475228,56.70861053466791],[-4.573609828948975,56.727489471435604],[-4.578333854675293,56.75500106811535],[-4.551668167114201,56.76361083984381],[-4.514166831970215,56.803600311279354],[-4.47444391250599,56.78583145141607],[-4.436561107635498,56.7784423828125],[-4.393423080444336,56.812953948974666],[-4.366665840148926,56.826660156249936],[-4.332777976989746,56.824169158935604],[-4.303055763244629,56.84498977661138],[-4.253056049346924,56.85305023193359],[-4.201111793518066,56.86943817138672],[-4.202221870422306,56.89305114746087],[-4.16416692733759,56.90861129760742],[-4.099165916442814,56.89527130126959],[-4.033055782318058,56.90250015258789],[-3.976110935211182,56.89554977416998],[-3.960000038146859,56.929161071777344],[-3.940557003021127,56.947490692138615],[-3.878056049346867,56.924720764160156],[-3.816668033599796,56.93416976928711],[-3.79639005661005,56.9302711486817],[-3.743612051010132,56.932781219482536],[-3.727777004241887,56.92277908325201],[-3.687777996063175,56.920269012451165],[-3.662221908569335,56.929988861083984],[-3.624722957611084,56.9233283996582],[-3.588057041168212,56.929988861083984],[-3.569444894790593,56.921390533447266],[-3.569722890853768,56.89387893676769],[-3.549443006515503,56.88582992553716],[-3.503056049346867,56.8905487060548],[-3.461389064788818,56.87554931640625],[-3.395034074783268,56.88157272338867],[-3.391881942748967,56.852169036865234],[-3.355427026748657,56.79675674438482],[-3.355427026748657,56.76029968261713],[-3.335011005401554,56.723842620849666],[-3.278135061264038,56.67717742919922],[-3.262094974517822,56.66988372802729],[-3.181890010833683,56.658218383789176],[-3.155641078948975,56.64801025390625],[-3.129390001296997,56.615928649902344],[-3.084182977676392,56.607177734375],[-3.142514944076538,56.56926345825189],[-3.168764114379883,56.53134536743164],[-3.170222997665405,56.51676177978515],[-3.146891117095947,56.49051284790039],[-3.079322099685669,56.47496032714838],[-3.056514024734497,56.455696105956974],[-3.080832958221379,56.45097351074218],[-3.131944894790649,56.42514038085948],[-3.175277948379517,56.39347076416027],[-3.2623450756073,56.350971221923885]]]},"properties":{"ID_0":242,"ISO":"GB-PKN","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":162,"NAME_2":"Perthshire and Kinross","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Perth and Kinross"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.356803894042969,55.81916046142589],[-4.441013813018742,55.786659240722656],[-4.488380908966008,55.77613067626953],[-4.516318798065129,55.76287841796881],[-4.634696960449104,55.76665878295893],[-4.715750217437744,55.81192016601573],[-4.751653194427377,55.857284545898494],[-4.727327823638858,55.848762512206974],[-4.608382225036621,55.84244537353527],[-4.588380813598576,55.85086822509759],[-4.590487003326358,55.88139343261713],[-4.641944885253793,55.9317626953125],[-4.580277919769173,55.92402648925787],[-4.517499923706055,55.92986297607422],[-4.489168167114258,55.9261093139649],[-4.355751991271916,55.86409378051769],[-4.356803894042969,55.81916046142589]]]},"properties":{"ID_0":242,"ISO":"GB-RFW","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":163,"NAME_2":"Renfrewshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.500277996063176,55.40972137451172],[-3.534723043441658,55.43804931640631],[-3.512223005294799,55.49222183227539],[-3.484998941421509,55.51499938964843],[-3.487222909927311,55.56026840209972],[-3.526946067810002,55.600269317627],[-3.478055953979492,55.61222076416027],[-3.468887090682983,55.625831604003906],[-3.479444026946964,55.648609161376946],[-3.394443988799992,55.707771301269645],[-3.435832977294808,55.71833038330078],[-3.4352769851684,55.734161376953125],[-3.45783805847168,55.76966094970703],[-3.434444904327393,55.79721832275402],[-3.395265102386475,55.81739425659174],[-3.360150098800602,55.81172943115246],[-3.336946010589543,55.794170379638665],[-3.297498941421509,55.7938804626466],[-3.269721031188965,55.77389144897472],[-3.230000019073486,55.77637863159174],[-3.184165954589844,55.80167007446295],[-3.143332958221322,55.7388801574707],[-3.14499902725214,55.722221374511776],[-3.120831966400146,55.71194076538086],[-3.093333959579467,55.71860885620117],[-3.095556020736581,55.73611068725597],[-3.073611974716187,55.751388549804744],[-2.942779064178467,55.815280914306754],[-2.932499885559025,55.78610992431646],[-2.886111974716187,55.78805923461913],[-2.855556011199951,55.8133316040039],[-2.820858955383301,55.82167816162104],[-2.780556917190551,55.83832931518566],[-2.735832929611206,55.82804870605468],[-2.654444932937622,55.848331451416016],[-2.640278100967407,55.83361053466802],[-2.595000982284489,55.827770233154354],[-2.533056020736637,55.85638046264654],[-2.426388025283756,55.86388015747082],[-2.40055608749384,55.886379241943416],[-2.435832977294922,55.895271301269645],[-2.365672111511174,55.94541549682617],[-2.323610067367554,55.932083129882926],[-2.25583291053772,55.92486190795904],[-2.203612089156991,55.92902755737304],[-2.174166917800903,55.917083740234375],[-2.135832071304321,55.91652679443359],[-2.133610010147038,55.89263916015619],[-2.072499990463257,55.86902618408203],[-2.066389083862248,55.842918395996094],[-2.030278921127262,55.80439758300781],[-2.080277919769287,55.79444122314453],[-2.088495016098022,55.7584495544433],[-2.172498941421452,55.719158172607365],[-2.238610029220581,55.65193939208979],[-2.330925941467228,55.64054870605469],[-2.325834989547673,55.62221908569347],[-2.278332948684635,55.589721679687614],[-2.257777929305973,55.54943847656256],[-2.216944932937565,55.50944137573248],[-2.213887929916268,55.490268707275504],[-2.182499885559082,55.458889007568416],[-2.216109991073552,55.4252815246582],[-2.273334980010986,55.419719696044865],[-2.29416799545288,55.4030494689942],[-2.330832958221436,55.39833068847662],[-2.349721908569279,55.3647193908692],[-2.38499903678894,55.344158172607536],[-2.402225017547551,55.361381530761776],[-2.427778005599919,55.366939544677734],[-2.463057041168213,55.36111068725597],[-2.522778987884521,55.3255500793457],[-2.55222392082203,55.31555175781256],[-2.569998979568425,55.29222106933594],[-2.628334999084473,55.26554870605469],[-2.618335008621216,55.244159698486385],[-2.626111030578613,55.22333145141607],[-2.659723997116032,55.21638107299799],[-2.685632944107056,55.19132995605469],[-2.699444055557194,55.1772193908692],[-2.771111965179443,55.14611053466791],[-2.819998979568481,55.13972091674799],[-2.850555896758976,55.112220764160156],[-2.85944390296936,55.136379241943416],[-2.889445066452026,55.15526962280279],[-2.884166002273446,55.20193862915038],[-2.863888978958073,55.21860885620123],[-2.868889093399048,55.2369384765625],[-2.898056983947697,55.25305175781261],[-2.872498989105168,55.2619400024414],[-2.891110897064152,55.27804946899414],[-2.944998025894165,55.28805923461925],[-2.997498035430908,55.26832962036132],[-3.03444504737854,55.27304840087896],[-3.056945085525456,55.30722045898448],[-3.098331928253117,55.32971954345709],[-3.104444980621338,55.352218627929744],[-3.130279064178467,55.35667037963873],[-3.164166927337532,55.349720001220646],[-3.207499980926456,55.3722190856933],[-3.285000085830632,55.34111022949224],[-3.309443950653019,55.34915924072271],[-3.303333044052124,55.384990692138615],[-3.283056020736694,55.4013786315919],[-3.241389036178532,55.41888046264654],[-3.252499103546143,55.428890228271484],[-3.316390037536564,55.438331604003906],[-3.345000028610229,55.411941528320426],[-3.410557985305786,55.411941528320426],[-3.443609952926636,55.40444183349615],[-3.500277996063176,55.40972137451172]]]},"properties":{"ID_0":242,"ISO":"GB-SCB","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":164,"NAME_2":"Scottish Borders","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"The Borders"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-0.846354186534825,60.67552185058593],[-0.954166710376683,60.67291641235363],[-1.033333420753479,60.597915649414055],[-0.997916698455754,60.58124923706054],[-1.037500023841744,60.489582061767685],[-1.147916674613953,60.48333358764642],[-1.172916650771981,60.500000000000114],[-1.189062595367432,60.53802108764654],[-1.192187547683716,60.581771850585994],[-1.202604174613896,60.6036491394044],[-1.189583420753422,60.63333511352545],[-1.140104174613953,60.65885162353521],[-1.128645896911564,60.72656250000006],[-1.075000047683716,60.73333358764654],[-1.012500047683716,60.7270851135255],[-0.974479198455754,60.7046852111817],[-0.960416674613953,60.72083282470709],[-0.966145873069763,60.74114608764655],[-0.946354210376683,60.75260162353515],[-0.940104186534825,60.777606964111435],[-0.951562523841801,60.79739379882807],[-0.912500023841858,60.81874847412103],[-0.893229186534881,60.843231201171875],[-0.783333361148777,60.83124923706049],[-0.779166698455754,60.78125],[-0.81406253576273,60.771354675293026],[-0.783854186534882,60.74218750000006],[-0.834895849227848,60.7286491394043],[-0.860937535762787,60.7046852111817],[-0.829687535762787,60.683856964111335],[-0.846354186534825,60.67552185058593]]],[[[-1.504166722297668,60.16249847412109],[-1.563020825386047,60.19427108764654],[-1.595833420753422,60.193748474121094],[-1.660416722297612,60.227085113525455],[-1.6953125,60.23802185058593],[-1.681770801544189,60.27864837646484],[-1.683333396911564,60.302082061767635],[-1.620833396911621,60.30833435058588],[-1.583333373069649,60.302082061767635],[-1.512500047683716,60.31874847412115],[-1.466145873069763,60.35260391235357],[-1.46875,60.37916564941406],[-1.408854246139526,60.399478912353516],[-1.45572924613947,60.415103912353516],[-1.454166650772095,60.44791793823242],[-1.511979222297668,60.46510696411138],[-1.541666746139413,60.48125076293939],[-1.61250007152546,60.47499847412121],[-1.635416746139526,60.48749923706065],[-1.566666722297612,60.51666641235363],[-1.561979174613839,60.545314788818466],[-1.527083396911621,60.55625152587901],[-1.493749976158142,60.54791641235357],[-1.433854222297668,60.57760620117199],[-1.425000071525517,60.62083435058594],[-1.381250023841858,60.60833358764649],[-1.34375,60.60833358764649],[-1.34375,60.625],[-1.300520896911564,60.6223983764649],[-1.313020825385991,60.54010391235357],[-1.339583396911621,60.53541564941411],[-1.324479222297668,60.499481201171875],[-1.262500047683659,60.47916793823243],[-1.229166746139526,60.49583435058588],[-1.172916650771981,60.45833206176769],[-1.170833349227905,60.42708206176752],[-1.127604246139526,60.41719055175787],[-1.070833325386047,60.44583511352539],[-1.048437476158028,60.435939788818416],[-1.125,60.39374923706054],[-1.078645825386047,60.38072586059564],[-1.075000047683716,60.35833358764654],[-1.118749976158142,60.34375],[-1.125,60.32500076293956],[-1.084895849227905,60.318225860595696],[-1.141666650772095,60.28333282470714],[-1.110416650772038,60.275001525878906],[-1.141145825385991,60.2578125],[-1.149999976158085,60.23958206176752],[-1.178645849227905,60.24010086059582],[-1.191145896911507,60.21718978881841],[-1.156770825386047,60.20260620117193],[-1.148437499999943,60.18385696411144],[-1.164062499999943,60.16510391235357],[-1.150520801544133,60.1317710876466],[-1.210416674613952,60.09999847412114],[-1.209895849227848,60.06510162353527],[-1.183333396911621,60.041667938232415],[-1.231250047683659,60.02916717529297],[-1.224479198455811,60.00885391235351],[-1.201388955116158,59.994304656982365],[-1.219084024429264,59.97455596923822],[-1.247416019439697,59.98294448852545],[-1.269165992736816,59.932361602783196],[-1.270277976989689,59.90819549560547],[-1.293056011199951,59.8687515258789],[-1.32027804851532,59.897914886474666],[-1.384711027145386,59.889282226562614],[-1.373612046241703,59.917083740234425],[-1.333055019378662,59.9667205810548],[-1.349722027778569,59.98014068603515],[-1.347916722297668,60.00416564941406],[-1.321354150772095,60.010940551757926],[-1.359895825386047,60.055728912353516],[-1.356250047683659,60.075000762939446],[-1.304166674613896,60.12291717529308],[-1.298437476158142,60.14739608764654],[-1.337499976158028,60.16041564941413],[-1.329166650772095,60.181251525878956],[-1.347916722297668,60.2000007629395],[-1.404166698455811,60.19583511352545],[-1.400520801544189,60.17968750000006],[-1.447916746139413,60.15625],[-1.504166722297668,60.16249847412109]]],[[[-0.866145849227905,60.63177108764648],[-0.829687535762787,60.62656021118175],[-0.816666722297668,60.60416793823248],[-0.773437499999943,60.61198043823247],[-0.769270837306919,60.594268798828125],[-0.804166674613896,60.5708351135255],[-0.830729186534825,60.581771850585994],[-0.887500047683716,60.56041717529302],[-0.911979198455811,60.57135391235357],[-0.951562523841801,60.62031555175787],[-0.941666722297668,60.63124847412104],[-0.893750011920815,60.62291717529296],[-0.866145849227905,60.63177108764648]]],[[[-0.912500023841858,60.37708282470709],[-0.987500011920815,60.327083587646605],[-1.047395825385991,60.33802413940429],[-1.060416698455811,60.37083435058599],[-0.983333349227905,60.36875152587903],[-0.968229174613953,60.38072586059564],[-0.912500023841858,60.37708282470709]]],[[[-1.726562499999886,60.34426879882812],[-1.668750047683716,60.341667175293075],[-1.65885424613947,60.323440551757805],[-1.697916746139526,60.314582824707145],[-1.724479198455811,60.323440551757805],[-1.726562499999886,60.34426879882812]]],[[[-1.07291674613947,60.17708206176758],[-1.043750047683659,60.152084350586044],[-1.006250023841858,60.15000152587902],[-1.018750071525574,60.13124847412115],[-1.050520896911621,60.14218521118164],[-1.070833325386047,60.10416793823236],[-1.12031257152546,60.117187500000114],[-1.113020896911564,60.14843750000005],[-1.149999976158085,60.17083358764654],[-1.134895920753479,60.182815551757926],[-1.07291674613947,60.17708206176758]]],[[[-2.072396039962711,60.15468978881847],[-2.046354293823185,60.149478912353565],[-2.052604198455754,60.11302185058587],[-2.114583253860416,60.133335113525334],[-2.1015625,60.151565551757756],[-2.072396039962711,60.15468978881847]]],[[[-1.631945013999939,59.554584503173885],[-1.611389994621277,59.532081604003906],[-1.652500987052917,59.53402709960938],[-1.631945013999939,59.554584503173885]]]]},"properties":{"ID_0":242,"ISO":"GB-ZET","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":165,"NAME_2":"Shetland Islands","TYPE_2":"Island Area","ENGTYPE_2":"Island Area","NL_NAME_2":null,"VARNAME_2":"Zetland"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.65749979019165,55.561981201171925],[-4.582045078277587,55.59136199951177],[-4.491108894348145,55.55688476562506],[-4.443036079406738,55.54486465454101],[-4.426511764526367,55.517822265625114],[-4.432519912719727,55.48327255249023],[-4.479092121124268,55.45772933959961],[-4.483600139617863,55.44571304321289],[-4.461063861846924,55.41115951538085],[-4.465571880340519,55.385620117187614],[-4.569231033325195,55.396137237548885],[-4.576743125915527,55.381111145019524],[-4.533174991607609,55.339046478271484],[-4.474586009979248,55.310504913330135],[-4.444540023803711,55.2819595336914],[-4.444540023803711,55.200832366943416],[-4.467479228973332,55.15789031982433],[-4.488890171051025,55.15166091918951],[-4.538609027862549,55.16138076782232],[-4.61111307144165,55.1402702331544],[-4.647500991821232,55.11972045898443],[-4.644722938537541,55.085830688476506],[-4.619720935821476,55.076938629150504],[-4.630556106567383,55.05389022827143],[-4.701388835906982,55.04193878173839],[-4.800557136535588,55.04417037963867],[-4.870555877685547,55.036659240722656],[-4.889166831970215,55.0147209167481],[-4.92444610595703,54.998050689697266],[-4.986947059631348,55.00777053833007],[-5.038609981536808,54.991947174072266],[-5.056389808654785,55.01263809204113],[-5.053610801696721,55.05014038085949],[-4.999166965484619,55.11208343505864],[-4.993610858917235,55.14374923706055],[-4.931943893432617,55.17347335815423],[-4.910278797149658,55.19958496093756],[-4.860833168029728,55.226806640625],[-4.860833168029728,55.25263977050787],[-4.839168071746826,55.27680587768565],[-4.837499141693114,55.31124877929699],[-4.84638786315918,55.32458496093761],[-4.775833129882756,55.35930633544933],[-4.771388053894043,55.400695800781364],[-4.746944904327336,55.421527862548885],[-4.713610172271672,55.43430709838873],[-4.656943798065186,55.43986129760747],[-4.641944885253793,55.471805572509766],[-4.619166851043701,55.491806030273494],[-4.623054981231633,55.508750915527344],[-4.658055782318115,55.54013824462902],[-4.65749979019165,55.561981201171925]]]},"properties":{"ID_0":242,"ISO":"GB-SAY","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":166,"NAME_2":"South Ayrshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.250916004180851,55.6859970092774],[-4.225224971771126,55.690868377685604],[-4.225224971771126,55.7350807189942],[-4.251543045043888,55.74981689453125],[-4.240317821502629,55.79342651367198],[-4.20206880569458,55.784553527832024],[-4.189435958862305,55.795078277587834],[-4.196805000305176,55.82034301757807],[-4.176805019378662,55.830867767334034],[-4.084230899810791,55.82730102539068],[-4.065093040466309,55.812511444091854],[-3.982161998748722,55.77582931518555],[-3.897635936737061,55.73436355590825],[-3.881686925888005,55.73276901245117],[-3.781213045120182,55.7630729675293],[-3.733390092849675,55.7835693359375],[-3.688055992126351,55.79526901245111],[-3.611109972000122,55.803890228271484],[-3.565001010894719,55.787769317627],[-3.522778034210205,55.7855491638183],[-3.45783805847168,55.76966094970703],[-3.4352769851684,55.734161376953125],[-3.435832977294808,55.71833038330078],[-3.394443988799992,55.707771301269645],[-3.479444026946964,55.648609161376946],[-3.468887090682983,55.625831604003906],[-3.478055953979492,55.61222076416027],[-3.526946067810002,55.600269317627],[-3.487222909927311,55.56026840209972],[-3.484998941421509,55.51499938964843],[-3.512223005294799,55.49222183227539],[-3.534723043441658,55.43804931640631],[-3.500277996063176,55.40972137451172],[-3.567501068115178,55.38388824462896],[-3.571944952011052,55.32971954345709],[-3.607223987579232,55.31888961791998],[-3.616667032241821,55.29277038574213],[-3.642222881317139,55.28971862792962],[-3.701389074325562,55.32083129882812],[-3.708333015441895,55.36278152465826],[-3.743056058883667,55.37110900878912],[-3.769443988799935,55.40916061401373],[-3.825834035873413,55.446388244628906],[-3.878612041473275,55.45499038696283],[-3.956665992736816,55.45444107055663],[-3.983174085617065,55.461067199707024],[-3.963794946670532,55.50730895996105],[-3.960791110992374,55.540359497070256],[-3.992338895797729,55.570404052734425],[-4.029899120330811,55.57190704345709],[-4.064451217651254,55.553878784179794],[-4.196653842926025,55.55237579345697],[-4.20717191696167,55.57190704345709],[-4.172617912292367,55.59894943237316],[-4.180130004882812,55.61697769165038],[-4.217688083648625,55.64101409912121],[-4.250916004180851,55.6859970092774]]]},"properties":{"ID_0":242,"ISO":"GB-SLK","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":167,"NAME_2":"South Lanarkshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.125696182250977,56.005580902099666],[-4.158332824706974,56.02582931518566],[-4.198334217071533,56.01971817016613],[-4.287500858306827,56.0166587829591],[-4.267776966094971,55.98804855346691],[-4.2744460105896,55.95888900756847],[-4.301668167114258,55.957218170166016],[-4.364751815795842,55.97564697265625],[-4.408608913421574,55.975830078125],[-4.431944847106934,55.99860000610346],[-4.458333015441895,56.003051757812614],[-4.470555782318115,56.0286102294923],[-4.429722785949706,56.041110992431754],[-4.446669101715031,56.0538902282716],[-4.500277996063176,56.062770843505916],[-4.521344184875488,56.072448730468864],[-4.598025798797607,56.07788085937499],[-4.611256122589111,56.08835983276372],[-4.68048095703125,56.19848632812506],[-4.685180187225342,56.24847412109381],[-4.657409191131592,56.28112792968761],[-4.671691894531192,56.30029296875],[-4.649203777313232,56.32083511352545],[-4.719178199768066,56.32830810546875],[-4.778891086578368,56.31832885742199],[-4.775816917419319,56.34307861328131],[-4.833006858825627,56.36291503906255],[-4.803298950195256,56.4083480834962],[-4.770556926727238,56.42694091796875],[-4.725832939147892,56.437484741210994],[-4.722229957580566,56.453918457031364],[-4.665526866912842,56.4603271484375],[-4.639380931854247,56.47185134887695],[-4.600277900695744,56.49248886108404],[-4.529723167419434,56.501110076904354],[-4.521111965179443,56.51443862915045],[-4.482501029968262,56.510829925537166],[-4.390555858612061,56.52611160278332],[-4.351666927337589,56.5408287048341],[-4.322779178619327,56.533329010009815],[-4.284689903259277,56.48136520385742],[-4.234340190887451,56.49155426025385],[-4.175594806671086,56.50953674316406],[-4.144721984863281,56.51221084594738],[-4.121665954589844,56.50222015380854],[-4.095277786254883,56.46833038330078],[-4.148056030273438,56.45277023315429],[-4.186944961547851,56.45721817016607],[-4.186388969421387,56.39139175415044],[-4.22415018081665,56.380058288574276],[-4.228888034820557,56.35583114624018],[-4.219446182250976,56.329158782958984],[-4.170556068420353,56.30028152465832],[-4.120277881622258,56.293880462646484],[-4.099165916442814,56.278610229492244],[-3.996388912200927,56.26916885375982],[-3.962500095367374,56.25083160400385],[-3.906666040420532,56.23389053344732],[-3.878056049346867,56.2138786315919],[-3.842777013778629,56.21833038330084],[-3.824373006820679,56.1925888061524],[-3.839694023132211,56.15687561035156],[-3.861366033554077,56.129344940185604],[-3.846137046813965,56.10766983032237],[-3.80521297454834,56.10653686523443],[-3.750951051712036,56.07049179077142],[-3.731349945068303,56.06379699707031],[-3.729166984558105,56.05069351196289],[-3.768455028533879,56.051734924316406],[-3.824273109435978,56.04376220703125],[-3.921557903289795,56.03738403320324],[-3.988538980484009,56.02302932739258],[-4.011261940002441,56.01226806640625],[-4.017778873443604,56.02582931518566],[-4.081943035125732,56.02582931518566],[-4.125696182250977,56.005580902099666]]]},"properties":{"ID_0":242,"ISO":"GB-STG","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":168,"NAME_2":"Stirling","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.35162878036499,55.90525436401373],[-4.355751991271916,55.86409378051769],[-4.489168167114258,55.9261093139649],[-4.517499923706055,55.92986297607422],[-4.591169834136906,55.940971374511776],[-4.591363906860352,55.94153594970703],[-4.597777843475228,55.960327148437614],[-4.598025798797607,56.07788085937499],[-4.521344184875488,56.072448730468864],[-4.500277996063176,56.062770843505916],[-4.446669101715031,56.0538902282716],[-4.429722785949706,56.041110992431754],[-4.470555782318115,56.0286102294923],[-4.458333015441895,56.003051757812614],[-4.431944847106934,55.99860000610346],[-4.408608913421574,55.975830078125],[-4.364751815795842,55.97564697265625],[-4.359961032867431,55.91191864013672],[-4.35162878036499,55.90525436401373]]]},"properties":{"ID_0":242,"ISO":"GB-WDU","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":169,"NAME_2":"West Dunbartonshire","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Dumbarton and Clydebank"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.808888912200927,55.895271301269645],[-3.773890018463135,55.90250015258789],[-3.719166040420532,55.93193817138666],[-3.66722202301014,55.942211151123104],[-3.598611116409188,55.99110031127941],[-3.539443016052189,55.98666000366216],[-3.512501001358032,55.99986648559576],[-3.449739933013916,55.99652862548834],[-3.449486970901489,55.91617584228521],[-3.43513298034668,55.903415679931584],[-3.393668889999389,55.89225387573247],[-3.395265102386475,55.81739425659174],[-3.434444904327393,55.79721832275402],[-3.45783805847168,55.76966094970703],[-3.522778034210205,55.7855491638183],[-3.565001010894719,55.787769317627],[-3.611109972000122,55.803890228271484],[-3.688055992126351,55.79526901245111],[-3.733390092849675,55.7835693359375],[-3.71833395957941,55.8124885559082],[-3.744999885559082,55.85805892944336],[-3.710278034210148,55.87028121948242],[-3.728332996368352,55.883331298828125],[-3.793334007263127,55.871940612793026],[-3.808888912200927,55.895271301269645]]]},"properties":{"ID_0":242,"ISO":"GB-WLN","NAME_0":"United Kingdom","ID_1":3,"NAME_1":"Scotland","ID_2":170,"NAME_2":"West Lothian","TYPE_2":"Unitary District","ENGTYPE_2":"Unitary District","NL_NAME_2":null,"VARNAME_2":"Linlithgow"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.229166030883789,53.18264007568371],[-4.303612232208251,53.14680480957042],[-4.356944084167424,53.13069534301769],[-4.405832767486572,53.14402770996094],[-4.416944026947021,53.161251068115234],[-4.443056106567269,53.15708160400402],[-4.46638822555542,53.181804656982536],[-4.507501125335637,53.186805725097706],[-4.501944065093994,53.21208190917969],[-4.554721832275391,53.249305725097656],[-4.557500839233398,53.263748168945256],[-4.583610057830811,53.28347396850597],[-4.556944847106876,53.29819488525396],[-4.581387996673527,53.33347320556646],[-4.558610916137638,53.36402893066417],[-4.575277805328369,53.404026031494084],[-4.506945133209172,53.40902709960949],[-4.485833168029728,53.4201393127442],[-4.454166889190617,53.4162483215332],[-4.428054809570312,53.42986297607433],[-4.368053913116398,53.424583435058594],[-4.283055782318115,53.41152954101574],[-4.269721031188965,53.395694732666016],[-4.279166221618652,53.37680435180664],[-4.264722824096566,53.36013793945318],[-4.24138879776001,53.35958480834955],[-4.20527791976923,53.29486083984375],[-4.143611907958984,53.304862976074276],[-4.119721889495793,53.319305419921875],[-4.045279026031437,53.304584503173885],[-4.070278167724553,53.29069519042969],[-4.087500095367432,53.26235961914074],[-4.210277080535832,53.20958328247076],[-4.229166030883789,53.18264007568371]]]},"properties":{"ID_0":242,"ISO":"GB-AGY","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":171,"NAME_2":"Anglesey","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.128468990325871,51.79459381103521],[-3.110353946685791,51.765609741210994],[-3.106729984283447,51.70401763916021],[-3.114710092544499,51.70082473754883],[-3.1701340675354,51.72575378417974],[-3.232223987579289,51.73833084106456],[-3.257499933242797,51.77027130126964],[-3.288985967636052,51.793331146240234],[-3.274167060852051,51.81472015380871],[-3.20666599273676,51.808609008789176],[-3.156816959381046,51.81079864501958],[-3.128468990325871,51.79459381103521]]]},"properties":{"ID_0":242,"ISO":"GB-BGW","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":172,"NAME_2":"Blaenau Gwent","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.475198030471745,51.510440826416016],[-3.523056030273438,51.49361038208019],[-3.517220973968392,51.45000076293945],[-3.525556087493896,51.43582916259771],[-3.578056097030583,51.41977310180675],[-3.597498893737793,51.440971374511776],[-3.660834074020386,51.47902679443371],[-3.718610048294067,51.477916717529354],[-3.745277881622257,51.50125122070318],[-3.7624990940094,51.534671783447266],[-3.691112041473332,51.52582931518565],[-3.640278100967407,51.54249954223633],[-3.651945114135742,51.56999969482433],[-3.682498931884765,51.58749008178711],[-3.667500019073486,51.604999542236435],[-3.653610944747868,51.63999938964855],[-3.588609933853092,51.63444137573242],[-3.549144983291626,51.641819000244254],[-3.490776062011718,51.61706161499023],[-3.4617919921875,51.58988952636719],[-3.475198030471745,51.510440826416016]]]},"properties":{"ID_0":242,"ISO":"GB-BGE","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":173,"NAME_2":"Bridgend","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.227468013763371,51.545169830322266],[-3.257086992263794,51.579021453857536],[-3.301707983016968,51.64862442016607],[-3.277014017105103,51.65872955322265],[-3.275203943252563,51.676841735839844],[-3.296942949295044,51.70944976806635],[-3.333810091018677,51.789947509765625],[-3.288985967636052,51.793331146240234],[-3.257499933242797,51.77027130126964],[-3.232223987579289,51.73833084106456],[-3.1701340675354,51.72575378417974],[-3.114710092544499,51.70082473754883],[-3.070498943328857,51.68046569824219],[-3.075934886932373,51.62974166870123],[-3.031853914260864,51.60578918457037],[-3.109121084213257,51.58730697631836],[-3.083611011505127,51.562770843505916],[-3.10233902931202,51.543170928955185],[-3.1563880443573,51.553050994873104],[-3.227468013763371,51.545169830322266]]]},"properties":{"ID_0":242,"ISO":"GB-CAY","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":174,"NAME_2":"Caerphilly","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.179722070693913,51.458801269531364],[-3.200683116912841,51.46776962280279],[-3.260731935501099,51.46937179565441],[-3.291353940963688,51.50046157836925],[-3.276110887527409,51.51639175415039],[-3.227468013763371,51.545169830322266],[-3.1563880443573,51.553050994873104],[-3.10233902931202,51.543170928955185],[-3.067500114440804,51.5261116027832],[-3.07563591003418,51.502361297607536],[-3.119721889495793,51.49041748046881],[-3.155833959579468,51.45124816894531],[-3.179722070693913,51.458801269531364]]]},"properties":{"ID_0":242,"ISO":"GB-CRF","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":175,"NAME_2":"Cardiff","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.933089971542301,51.762283325195256],[-3.978055000305175,51.76665878295904],[-4.023056983947754,51.744159698486385],[-4.041944026947021,51.702220916748104],[-4.070831775665283,51.673873901367244],[-4.083611011505127,51.66208267211914],[-4.140276908874455,51.656806945800724],[-4.161388874053898,51.66069412231457],[-4.179165840148926,51.67847061157226],[-4.216945171356144,51.68513870239258],[-4.311388015747069,51.67319488525402],[-4.344723224639893,51.692085266113224],[-4.376389026641846,51.72402954101568],[-4.370832920074463,51.769027709960994],[-4.40861177444458,51.756526947021484],[-4.452500820159912,51.73402786254888],[-4.559166908264103,51.74180603027349],[-4.578611850738525,51.733470916748104],[-4.638973236083928,51.73430633544922],[-4.640035152435303,51.80602264404296],[-4.663082122802678,51.8255233764649],[-4.724246978759652,51.820205688476676],[-4.766796112060547,51.82463836669933],[-4.758817195892333,51.83882141113281],[-4.724246978759652,51.84591293334955],[-4.740202903747559,51.86896133422863],[-4.732223987579346,51.88402938842785],[-4.693221092224064,51.908847808838004],[-4.631171226501465,51.91062164306652],[-4.597486019134521,51.91948699951172],[-4.517706871032714,51.94873809814459],[-4.494659900665283,51.96912765502924],[-4.523912906646672,51.99394607543945],[-4.541642189025765,52.02497100830078],[-4.558641910552922,52.03772354125982],[-4.496541023254395,52.03733825683594],[-4.409586906433049,52.02828216552739],[-4.235680103301944,52.03190231323242],[-4.203072071075383,52.04096221923828],[-4.161406993865967,52.0699462890625],[-4.119740009307861,52.089874267578175],[-4.059960842132568,52.10617828369135],[-4.036409854888859,52.09893035888666],[-3.989310026168823,52.09711837768549],[-3.934963941574096,52.12248229980474],[-3.866127014160099,52.12429046630853],[-3.76286888122553,52.10617828369135],[-3.741137027740421,52.12170028686535],[-3.706666946411133,52.11471939086914],[-3.71055603027338,52.086658477783196],[-3.667500019073486,52.075271606445256],[-3.643610954284611,52.03139114379888],[-3.673610925674381,52.01277160644531],[-3.695557117462158,51.98888015747076],[-3.686666011810245,51.94832992553722],[-3.709867000579834,51.9323616027832],[-3.716665983200073,51.90333175659174],[-3.711244106292724,51.88187026977544],[-3.72166895866394,51.86582946777355],[-3.752223014831486,51.84722137451172],[-3.76694393157959,51.817768096923885],[-3.800007104873658,51.78530883789074],[-3.819443941116276,51.79999923706054],[-3.867223024368229,51.80028152465832],[-3.878056049346867,51.775279998779354],[-3.896111011505127,51.76361083984369],[-3.933089971542301,51.762283325195256]]]},"properties":{"ID_0":242,"ISO":"GB-CMN","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":176,"NAME_2":"Carmarthenshire","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.927417993545532,52.553249359130916],[-3.867779016494694,52.556110382080135],[-3.839445114135685,52.54861068725586],[-3.829165935516357,52.532779693603516],[-3.833889007568303,52.50416946411133],[-3.813055038452092,52.48138046264654],[-3.766665935516358,52.48666000366211],[-3.745277881622257,52.5011100769043],[-3.724720001220703,52.49888992309576],[-3.736943006515446,52.46722030639654],[-3.757776975631657,52.45861053466808],[-3.760833024978637,52.43748855590826],[-3.720000028610229,52.42026901245117],[-3.694443941116276,52.38249969482433],[-3.670279026031438,52.36333084106456],[-3.662221908569335,52.33943939208978],[-3.703610897064209,52.33472061157238],[-3.731111049652043,52.318889617920036],[-3.701111078262329,52.27389144897472],[-3.734724044799805,52.25804901123047],[-3.743056058883667,52.20277023315441],[-3.752501010894719,52.17860031127929],[-3.741137027740421,52.12170028686535],[-3.76286888122553,52.10617828369135],[-3.866127014160099,52.12429046630853],[-3.934963941574096,52.12248229980474],[-3.989310026168823,52.09711837768549],[-4.036409854888859,52.09893035888666],[-4.059960842132568,52.10617828369135],[-4.119740009307861,52.089874267578175],[-4.161406993865967,52.0699462890625],[-4.203072071075383,52.04096221923828],[-4.235680103301944,52.03190231323242],[-4.409586906433049,52.02828216552739],[-4.496541023254395,52.03733825683594],[-4.558641910552922,52.03772354125982],[-4.622305870056151,52.050678253173885],[-4.641808032989502,52.0639762878418],[-4.69676685333252,52.06840515136713],[-4.69487810134882,52.10486221313482],[-4.6875,52.129859924316406],[-4.639166831970215,52.13874816894542],[-4.517499923706055,52.13597106933594],[-4.468612194061279,52.16624832153325],[-4.432498931884709,52.176528930664176],[-4.377499103546086,52.21569442749035],[-4.326942920684758,52.21291732788086],[-4.260279178619385,52.24791717529296],[-4.209722995758057,52.26374816894531],[-4.13861083984375,52.325695037841854],[-4.097499847412109,52.39319610595714],[-4.0813889503479,52.44513702392578],[-4.052498817443791,52.48069381713867],[-4.059720993041992,52.52680587768565],[-4.019166946411132,52.52597045898449],[-3.968611001968383,52.54513931274425],[-3.933056116104126,52.552474975586044],[-3.927417993545532,52.553249359130916]]]},"properties":{"ID_0":242,"ISO":"GB-CGN","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":177,"NAME_2":"Ceredigion","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":"Cardiganshire"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.51269507408142,53.316806793213004],[-3.518656969070435,53.24980926513683],[-3.477432012557927,53.21244430541998],[-3.474853992462045,53.16992950439453],[-3.49804401397705,53.1441650390625],[-3.585649967193603,53.087478637695426],[-3.517369031906128,53.079746246338004],[-3.477432012557927,53.05655670166027],[-3.468413114547729,53.03336715698248],[-3.461512088775578,52.97647094726574],[-3.493890047073307,52.9647216796875],[-3.518332958221436,52.969440460205135],[-3.567223072052002,52.96527099609375],[-3.593333005905151,52.98167037963873],[-3.601110935211182,53.00693893432617],[-3.669356107711792,52.98888015747076],[-3.719638109207153,52.96379470825207],[-3.767306089401245,52.949623107910156],[-3.787919044494572,52.93674087524414],[-3.821417093276978,52.944469451904354],[-3.860066890716439,52.96379470825207],[-3.89485311508173,53.00888824462902],[-3.945096969604492,52.996006011963004],[-3.979881048202515,52.996006011963004],[-3.968286991119385,53.03078842163086],[-3.976017951965218,53.06042098999029],[-4.006937026977482,53.08876419067382],[-4.004361152648926,53.11066818237315],[-3.950249910354614,53.15704727172851],[-3.927059888839722,53.20085144042969],[-4.000833034515381,53.249027252197266],[-3.937500953674316,53.2679176330567],[-3.881387948989811,53.289859771728565],[-3.838054895400887,53.296249389648494],[-3.850833892822265,53.32347106933593],[-3.779166936874333,53.328750610351676],[-3.739167928695622,53.304584503173885],[-3.705832958221436,53.293472290039176],[-3.609721899032535,53.29013824462896],[-3.51269507408142,53.316806793213004]]]},"properties":{"ID_0":242,"ISO":"GB-CWY","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":178,"NAME_2":"Conwy","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":"Aberconwy and Colwyn"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.122706890106144,53.0664329528808],[-3.132157087325936,53.05913162231457],[-3.141175031661987,52.99729156494135],[-3.094794988632202,52.96379470825207],[-3.200437068939209,52.938030242920036],[-3.311233043670654,52.93287658691406],[-3.373075008392334,52.88907241821289],[-3.390722036361581,52.86741638183594],[-3.43611097335804,52.85667037963867],[-3.469971895217895,52.86201095581055],[-3.468333959579467,52.893608093261776],[-3.452778100967407,52.9030494689942],[-3.476665973663216,52.93333053588867],[-3.434444904327393,52.95861053466797],[-3.426388025283813,52.97360992431652],[-3.461512088775578,52.97647094726574],[-3.468413114547729,53.03336715698248],[-3.477432012557927,53.05655670166027],[-3.517369031906128,53.079746246338004],[-3.585649967193603,53.087478637695426],[-3.49804401397705,53.1441650390625],[-3.474853992462045,53.16992950439453],[-3.477432012557927,53.21244430541998],[-3.518656969070435,53.24980926513683],[-3.51269507408142,53.316806793213004],[-3.405833005905151,53.34430694580084],[-3.361262083053532,53.35041809082037],[-3.375653028488159,53.33226013183593],[-3.382092952728271,53.297477722168075],[-3.340866088867188,53.272998809814396],[-3.347309112548771,53.24594116210943],[-3.340866088867188,53.21888732910167],[-3.29835104942316,53.17637252807623],[-3.251971006393376,53.151893615722706],[-3.191418886184692,53.14802932739269],[-3.145040035247803,53.08876419067382],[-3.122706890106144,53.0664329528808]]]},"properties":{"ID_0":242,"ISO":"GB-DEN","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":179,"NAME_2":"Denbighshire","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.956809043884277,53.14467239379883],[-2.991724967956543,53.1390113830567],[-3.10381293296814,53.08103561401373],[-3.122706890106144,53.0664329528808],[-3.145040035247803,53.08876419067382],[-3.191418886184692,53.14802932739269],[-3.251971006393376,53.151893615722706],[-3.29835104942316,53.17637252807623],[-3.340866088867188,53.21888732910167],[-3.347309112548771,53.24594116210943],[-3.340866088867188,53.272998809814396],[-3.382092952728271,53.297477722168075],[-3.375653028488159,53.33226013183593],[-3.361262083053532,53.35041809082037],[-3.313055992126408,53.35458374023437],[-3.303611040115356,53.3348617553712],[-3.200278043746891,53.293472290039176],[-3.120834112167358,53.2481956481933],[-3.092499971389771,53.25672149658203],[-3.037220954894906,53.25111007690429],[-3.001389026641846,53.23944091796881],[-2.955276966094914,53.215549468994254],[-2.912499904632568,53.18638992309582],[-2.909168004989624,53.171390533447266],[-2.956809043884277,53.14467239379883]]]},"properties":{"ID_0":242,"ISO":"GB-FLN","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":180,"NAME_2":"Flintshire","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-4.612501144409123,53.304862976074276],[-4.554165840148925,53.24791717529291],[-4.588611125945987,53.23902893066412],[-4.610832214355412,53.2437515258789],[-4.63861083984375,53.28374862670904],[-4.68083381652832,53.282081604003906],[-4.696945190429631,53.30569458007824],[-4.651946067810059,53.32319259643555],[-4.612501144409123,53.304862976074276]]],[[[-4.000833034515381,53.249027252197266],[-3.927059888839722,53.20085144042969],[-3.950249910354614,53.15704727172851],[-4.004361152648926,53.11066818237315],[-4.006937026977482,53.08876419067382],[-3.976017951965218,53.06042098999029],[-3.968286991119385,53.03078842163086],[-3.979881048202515,52.996006011963004],[-3.945096969604492,52.996006011963004],[-3.89485311508173,53.00888824462902],[-3.860066890716439,52.96379470825207],[-3.821417093276978,52.944469451904354],[-3.787919044494572,52.93674087524414],[-3.767306089401245,52.949623107910156],[-3.719638109207153,52.96379470825207],[-3.669356107711792,52.98888015747076],[-3.601110935211182,53.00693893432617],[-3.593333005905151,52.98167037963873],[-3.567223072052002,52.96527099609375],[-3.518332958221436,52.969440460205135],[-3.493890047073307,52.9647216796875],[-3.461512088775578,52.97647094726574],[-3.426388025283813,52.97360992431652],[-3.434444904327393,52.95861053466797],[-3.476665973663216,52.93333053588867],[-3.452778100967407,52.9030494689942],[-3.468333959579467,52.893608093261776],[-3.469971895217895,52.86201095581055],[-3.490833044052124,52.834720611572266],[-3.527224063873234,52.83332824707037],[-3.577500104904118,52.81916046142578],[-3.597223043441772,52.784439086914055],[-3.580277919769287,52.76361083984386],[-3.571666955947819,52.73054885864252],[-3.601387023925724,52.69554901123041],[-3.667778015136719,52.68888854980469],[-3.69861102104187,52.676109313964844],[-3.726666927337646,52.67776870727539],[-3.763055086135864,52.66944122314453],[-3.796946048736515,52.67472076416027],[-3.83361101150507,52.640830993652344],[-3.827778100967407,52.62665939331055],[-3.837779045104923,52.59915924072271],[-3.875555992126465,52.576110839843864],[-3.911945104598942,52.568050384521484],[-3.927417993545532,52.553249359130916],[-3.933056116104126,52.552474975586044],[-3.959722042083627,52.56041717529302],[-4.044722080230599,52.542640686035156],[-4.07305383682251,52.54513931274425],[-4.107499122619572,52.59208297729492],[-4.130277156829834,52.61125183105469],[-4.118609905242919,52.64014053344721],[-4.09694385528553,52.66902923583979],[-4.057498931884709,52.68763732910162],[-4.061389923095703,52.72208404541015],[-4.0813889503479,52.747360229492244],[-4.145277976989746,52.80152893066412],[-4.154167175292969,52.81569290161138],[-4.129723072051945,52.826805114746094],[-4.118611812591553,52.850139617919865],[-4.144165992736816,52.882362365722706],[-4.134167194366455,52.91319274902344],[-4.168612003326416,52.90652847290045],[-4.220833778381348,52.91902923583996],[-4.321389198303223,52.90680694580083],[-4.331943988800049,52.891803741455135],[-4.393610000610352,52.89458465576177],[-4.411389827728271,52.88124847412115],[-4.465278148651066,52.867637634277344],[-4.471943855285645,52.84541702270508],[-4.501388072967529,52.83180618286144],[-4.49083423614502,52.7906951904298],[-4.51472091674799,52.792640686035156],[-4.586945056915283,52.8220825195313],[-4.609722137451172,52.824028015136776],[-4.641388893127385,52.80014038085943],[-4.68638801574707,52.79569625854498],[-4.719723224639893,52.802917480468864],[-4.730833053588866,52.78152847290039],[-4.767499923706055,52.79375076293951],[-4.736944198608342,52.83097076416009],[-4.726388931274357,52.853195190429744],[-4.674167156219369,52.8756942749024],[-4.650277137756348,52.906250000000114],[-4.576387882232609,52.9393043518067],[-4.530279159545898,52.93736267089855],[-4.473609924316349,52.96625137329113],[-4.4375,52.99930572509771],[-4.407498836517334,52.99930572509771],[-4.356389999389648,53.031806945800724],[-4.340278148651066,53.05236053466808],[-4.336388111114445,53.08402633666992],[-4.348054885864201,53.114582061767635],[-4.311944007873535,53.10486221313482],[-4.310277938842717,53.12958145141601],[-4.272499084472656,53.14597320556646],[-4.25750017166132,53.16208267211919],[-4.212501049041748,53.18264007568371],[-4.209722995758057,53.20208358764648],[-4.121943950653076,53.23764038085937],[-4.083055019378662,53.22958374023449],[-4.033055782318058,53.237083435058594],[-4.000833034515381,53.249027252197266]]]]},"properties":{"ID_0":242,"ISO":"GB-GWN","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":181,"NAME_2":"Gwynedd","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":"Caernarfonshire and Merionethshire"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.301707983016968,51.64862442016607],[-3.378459930419922,51.70220565795904],[-3.438241958618107,51.754737854003956],[-3.412879943847656,51.765609741210994],[-3.43513798713684,51.816669464111385],[-3.404999017715454,51.82777023315441],[-3.385833024978638,51.811660766601676],[-3.35694503784174,51.80554962158214],[-3.333810091018677,51.789947509765625],[-3.296942949295044,51.70944976806635],[-3.275203943252563,51.676841735839844],[-3.277014017105103,51.65872955322265],[-3.301707983016968,51.64862442016607]]]},"properties":{"ID_0":242,"ISO":"GB-MTY","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":182,"NAME_2":"Merthyr Tydfil","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.66444802284235,51.613750457763786],[-2.713054895401001,51.58097076416021],[-2.744165897369328,51.57986068725586],[-2.797791004180908,51.563472747802734],[-2.853115081787053,51.584453582763665],[-2.847681999206429,51.5953254699707],[-2.798768997192382,51.62249755859375],[-2.800580978393555,51.64423370361328],[-2.835000991821289,51.6496696472168],[-2.896591901779118,51.62612152099609],[-2.961265087127629,51.62749099731457],[-2.976300001144352,51.66778564453131],[-2.976300001144352,51.70944976806635],[-2.990792989730835,51.7221298217774],[-3.021589040756226,51.727565765380916],[-3.048760890960637,51.78372192382818],[-3.081367969512825,51.79459381103521],[-3.128468990325871,51.79459381103521],[-3.156816959381046,51.81079864501958],[-3.088610887527409,51.829158782958984],[-3.064445972442627,51.867488861083984],[-3.035001993179264,51.88610839843749],[-3.063889980316162,51.93833160400384],[-3.051388978958016,51.98332977294933],[-2.994446992874088,51.943328857421875],[-2.988888025283757,51.92554855346685],[-2.943888902664185,51.90665817260747],[-2.895555019378662,51.92638015747082],[-2.866389036178532,51.92889022827143],[-2.820832967758179,51.90166091918945],[-2.778609991073608,51.8858299255371],[-2.737222909927368,51.83943939208989],[-2.697777986526489,51.83943939208989],[-2.682285070419198,51.82587814331066],[-2.647500991821289,51.82221984863281],[-2.676778078079167,51.78963088989269],[-2.68388891220087,51.76554870605469],[-2.667778015136719,51.74000167846691],[-2.685276985168457,51.7269401550293],[-2.676944971084537,51.68915939331055],[-2.659168004989567,51.673049926757805],[-2.675554037094059,51.637771606445305],[-2.66444802284235,51.613750457763786]]]},"properties":{"ID_0":242,"ISO":"GB-MON","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":183,"NAME_2":"Monmouthshire","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.889312982559205,51.61791610717779],[-3.82989597320551,51.68771362304687],[-3.933089971542301,51.762283325195256],[-3.896111011505127,51.76361083984369],[-3.878056049346867,51.775279998779354],[-3.867223024368229,51.80028152465832],[-3.819443941116276,51.79999923706054],[-3.800007104873658,51.78530883789074],[-3.763334035873413,51.757770538330185],[-3.733057022094726,51.76082992553722],[-3.648334980010986,51.77944183349604],[-3.59166693687439,51.76250076293951],[-3.583708047866821,51.7513313293457],[-3.571666955947819,51.73221969604503],[-3.569444894790593,51.67248916625987],[-3.549144983291626,51.641819000244254],[-3.588609933853092,51.63444137573242],[-3.653610944747868,51.63999938964855],[-3.667500019073486,51.604999542236435],[-3.682498931884765,51.58749008178711],[-3.651945114135742,51.56999969482433],[-3.640278100967407,51.54249954223633],[-3.691112041473332,51.52582931518565],[-3.7624990940094,51.534671783447266],[-3.805279016494751,51.58458328247082],[-3.839720964431706,51.60541534423834],[-3.844167947769108,51.619304656982536],[-3.889312982559205,51.61791610717779]]]},"properties":{"ID_0":242,"ISO":"GB-NTL","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":184,"NAME_2":"Neath Port Talbot","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":"Neath and Port Talbot"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.797791004180908,51.563472747802734],[-2.843055009841862,51.545696258544865],[-2.908056020736637,51.53263854980463],[-2.954720973968449,51.53513717651373],[-2.989722013473397,51.54430389404297],[-2.998610973358154,51.53319549560558],[-3.07563591003418,51.502361297607536],[-3.067500114440804,51.5261116027832],[-3.10233902931202,51.543170928955185],[-3.083611011505127,51.562770843505916],[-3.109121084213257,51.58730697631836],[-3.031853914260864,51.60578918457037],[-2.961265087127629,51.62749099731457],[-2.896591901779118,51.62612152099609],[-2.835000991821289,51.6496696472168],[-2.800580978393555,51.64423370361328],[-2.798768997192382,51.62249755859375],[-2.847681999206429,51.5953254699707],[-2.853115081787053,51.584453582763665],[-2.797791004180908,51.563472747802734]]]},"properties":{"ID_0":242,"ISO":"GB-NWP","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":185,"NAME_2":"Newport","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-4.69487810134882,52.10486221313482],[-4.69676685333252,52.06840515136713],[-4.641808032989502,52.0639762878418],[-4.622305870056151,52.050678253173885],[-4.558641910552922,52.03772354125982],[-4.541642189025765,52.02497100830078],[-4.523912906646672,51.99394607543945],[-4.494659900665283,51.96912765502924],[-4.517706871032714,51.94873809814459],[-4.597486019134521,51.91948699951172],[-4.631171226501465,51.91062164306652],[-4.693221092224064,51.908847808838004],[-4.732223987579346,51.88402938842785],[-4.740202903747559,51.86896133422863],[-4.724246978759652,51.84591293334955],[-4.758817195892333,51.83882141113281],[-4.766796112060547,51.82463836669933],[-4.724246978759652,51.820205688476676],[-4.663082122802678,51.8255233764649],[-4.640035152435303,51.80602264404296],[-4.638973236083928,51.73430633544922],[-4.693611145019474,51.716251373291016],[-4.683055877685547,51.69680404663085],[-4.715832233428898,51.65513992309582],[-4.760278224945068,51.65180587768555],[-4.788055896758976,51.63708496093756],[-4.847499847412109,51.645973205566406],[-4.898612022399902,51.62430572509771],[-4.930277824401799,51.59819412231445],[-4.990832805633545,51.610137939453125],[-5.01138782501215,51.60847091674805],[-5.057499885559081,51.619583129882926],[-5.050833225250187,51.64236068725597],[-5.065834045410099,51.66291809082031],[-5.099166870117188,51.6668052673341],[-5.124722957611027,51.68264007568365],[-5.111388206481877,51.692359924316456],[-5.078610897064209,51.689861297607536],[-5.029168128967285,51.69513702392572],[-4.97472095489502,51.68541717529291],[-4.960278987884521,51.69430541992193],[-5.033055782318058,51.71069335937506],[-5.086944103240967,51.706527709961044],[-5.095279216766301,51.7165260314942],[-5.157498836517334,51.71319580078131],[-5.15750122070301,51.68708419799805],[-5.188055038452092,51.689861297607536],[-5.187499046325626,51.70875167846691],[-5.228610038757267,51.72263717651373],[-5.160276889801025,51.77236175537121],[-5.119165897369385,51.768749237060604],[-5.103055000305119,51.783748626708984],[-5.104166984557992,51.812637329101506],[-5.126389026641789,51.85597229003906],[-5.218056201934758,51.87263870239258],[-5.266388893127441,51.871250152588],[-5.304721832275333,51.86375045776373],[-5.315277099609375,51.88124847412121],[-5.295833110809269,51.89402770996105],[-5.307499885559082,51.90791702270507],[-5.255279064178467,51.91680526733404],[-5.212499141693115,51.93264007568359],[-5.194166183471623,51.95041656494146],[-5.157498836517334,51.94847106933594],[-5.14416599273676,51.962638854980526],[-5.108055114746094,51.962360382080135],[-5.084166049957275,51.97041702270519],[-5.074166774749698,52.003749847412166],[-5.091944217681828,52.014862060546875],[-5.070833206176701,52.03041839599621],[-4.986944198608398,52.024028778076286],[-4.979722023010254,52.00152587890624],[-4.885832786560058,52.020973205566406],[-4.835277080535889,52.024307250976676],[-4.847499847412109,52.0404167175294],[-4.820278167724552,52.056251525878906],[-4.789721965789738,52.059307098388786],[-4.762499809265137,52.07791519165039],[-4.730277061462402,52.11819458007807],[-4.69487810134882,52.10486221313482]]]},"properties":{"ID_0":242,"ISO":"GB-PEM","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":186,"NAME_2":"Pembrokeshire","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.43513798713684,51.816669464111385],[-3.471112012863159,51.81637954711914],[-3.478610038757267,51.790279388427734],[-3.546946048736572,51.77360916137707],[-3.583708047866821,51.7513313293457],[-3.59166693687439,51.76250076293951],[-3.648334980010986,51.77944183349604],[-3.733057022094726,51.76082992553722],[-3.763334035873413,51.757770538330185],[-3.800007104873658,51.78530883789074],[-3.76694393157959,51.817768096923885],[-3.752223014831486,51.84722137451172],[-3.72166895866394,51.86582946777355],[-3.711244106292724,51.88187026977544],[-3.716665983200073,51.90333175659174],[-3.709867000579834,51.9323616027832],[-3.686666011810245,51.94832992553722],[-3.695557117462158,51.98888015747076],[-3.673610925674381,52.01277160644531],[-3.643610954284611,52.03139114379888],[-3.667500019073486,52.075271606445256],[-3.71055603027338,52.086658477783196],[-3.706666946411133,52.11471939086914],[-3.741137027740421,52.12170028686535],[-3.752501010894719,52.17860031127929],[-3.743056058883667,52.20277023315441],[-3.734724044799805,52.25804901123047],[-3.701111078262329,52.27389144897472],[-3.731111049652043,52.318889617920036],[-3.703610897064209,52.33472061157238],[-3.662221908569335,52.33943939208978],[-3.670279026031438,52.36333084106456],[-3.694443941116276,52.38249969482433],[-3.720000028610229,52.42026901245117],[-3.760833024978637,52.43748855590826],[-3.757776975631657,52.45861053466808],[-3.736943006515446,52.46722030639654],[-3.724720001220703,52.49888992309576],[-3.745277881622257,52.5011100769043],[-3.766665935516358,52.48666000366211],[-3.813055038452092,52.48138046264654],[-3.833889007568303,52.50416946411133],[-3.829165935516357,52.532779693603516],[-3.839445114135685,52.54861068725586],[-3.867779016494694,52.556110382080135],[-3.927417993545532,52.553249359130916],[-3.911945104598942,52.568050384521484],[-3.875555992126465,52.576110839843864],[-3.837779045104923,52.59915924072271],[-3.827778100967407,52.62665939331055],[-3.83361101150507,52.640830993652344],[-3.796946048736515,52.67472076416027],[-3.763055086135864,52.66944122314453],[-3.726666927337646,52.67776870727539],[-3.69861102104187,52.676109313964844],[-3.667778015136719,52.68888854980469],[-3.601387023925724,52.69554901123041],[-3.571666955947819,52.73054885864252],[-3.580277919769287,52.76361083984386],[-3.597223043441772,52.784439086914055],[-3.577500104904118,52.81916046142578],[-3.527224063873234,52.83332824707037],[-3.490833044052124,52.834720611572266],[-3.469971895217895,52.86201095581055],[-3.43611097335804,52.85667037963867],[-3.390722036361581,52.86741638183594],[-3.371943950653076,52.84999847412121],[-3.299722909927311,52.82693862915045],[-3.242223024368172,52.779159545898494],[-3.190834999084416,52.793331146240234],[-3.140832901000977,52.796390533447266],[-3.11388897895813,52.784439086914055],[-3.075521945953369,52.781478881835994],[-3.058888912200928,52.7658309936524],[-3.001111030578613,52.75777053833019],[-2.992222070693912,52.74528121948242],[-2.957221031188908,52.73276901245123],[-2.968888044357186,52.7161102294923],[-3.011111974716073,52.711658477783146],[-3.032778978347778,52.682220458984375],[-3.02916693687439,52.6533317565918],[-3.063889980316162,52.63832855224604],[-3.080554962158146,52.60110092163086],[-3.124166011810303,52.582218170166016],[-3.125,52.56610870361334],[-3.086389064788818,52.52888107299816],[-3.068056106567383,52.54610061645502],[-3.01083397865284,52.569721221923935],[-2.974445104598999,52.54193878173834],[-2.991389989852905,52.51916885375988],[-3.019721984863224,52.51361083984375],[-3.029444932937622,52.496940612793075],[-3.108613014221191,52.494438171386776],[-3.149446010589542,52.478328704834034],[-3.196110963821411,52.46722030639654],[-3.214167118072396,52.4511108398438],[-3.214167118072396,52.43138885498047],[-3.196110963821411,52.41027069091797],[-3.166388988494816,52.403610229492244],[-3.140279054641724,52.38388824462885],[-3.103888034820499,52.368610382080135],[-3.067778110504037,52.34498977661138],[-3.021944046020508,52.34027099609375],[-2.97555494308466,52.34637832641613],[-2.957314968109017,52.34125900268549],[-2.956943035125732,52.32471084594726],[-2.992222070693912,52.310268402099666],[-3.001111030578613,52.28722000122082],[-2.953888893127441,52.26137924194336],[-3.013056039810124,52.25555038452154],[-3.055001020431404,52.23110961914057],[-3.061666965484562,52.21500015258789],[-3.113610982894897,52.166110992431754],[-3.075556039810181,52.14804840087896],[-3.129722118377686,52.12694168090826],[-3.099999904632568,52.1124992370606],[-3.115890026092529,52.098251342773494],[-3.112498998641968,52.069438934326286],[-3.082221031188965,52.04666137695307],[-3.08666706085205,52.022220611572266],[-3.051388978958016,51.98332977294933],[-3.063889980316162,51.93833160400384],[-3.035001993179264,51.88610839843749],[-3.064445972442627,51.867488861083984],[-3.088610887527409,51.829158782958984],[-3.156816959381046,51.81079864501958],[-3.20666599273676,51.808609008789176],[-3.274167060852051,51.81472015380871],[-3.288985967636052,51.793331146240234],[-3.333810091018677,51.789947509765625],[-3.35694503784174,51.80554962158214],[-3.385833024978638,51.811660766601676],[-3.404999017715454,51.82777023315441],[-3.43513798713684,51.816669464111385]]]},"properties":{"ID_0":242,"ISO":"GB-POW","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":187,"NAME_2":"Powys","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.549144983291626,51.641819000244254],[-3.569444894790593,51.67248916625987],[-3.571666955947819,51.73221969604503],[-3.583708047866821,51.7513313293457],[-3.546946048736572,51.77360916137707],[-3.478610038757267,51.790279388427734],[-3.471112012863159,51.81637954711914],[-3.43513798713684,51.816669464111385],[-3.412879943847656,51.765609741210994],[-3.438241958618107,51.754737854003956],[-3.378459930419922,51.70220565795904],[-3.301707983016968,51.64862442016607],[-3.257086992263794,51.579021453857536],[-3.227468013763371,51.545169830322266],[-3.276110887527409,51.51639175415039],[-3.291353940963688,51.50046157836925],[-3.372221946716308,51.506938934326286],[-3.392221927642822,51.49610900878912],[-3.442500114440918,51.51583099365246],[-3.475198030471745,51.510440826416016],[-3.4617919921875,51.58988952636719],[-3.490776062011718,51.61706161499023],[-3.549144983291626,51.641819000244254]]]},"properties":{"ID_0":242,"ISO":"GB-RCT","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":188,"NAME_2":"Rhondda, Cynon, Taff","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.889312982559205,51.61791610717779],[-3.923054933547974,51.60902786254877],[-3.965831995010319,51.61180496215826],[-3.998054981231689,51.592361450195305],[-3.990278005599918,51.56319427490234],[-4.036943912506103,51.56791687011713],[-4.074166774749641,51.56180572509776],[-4.114721775054818,51.57125091552739],[-4.13972091674799,51.56930541992187],[-4.160276889800969,51.554862976074276],[-4.234723091125431,51.54097366333008],[-4.280834197998047,51.560695648193416],[-4.306387901306096,51.60902786254877],[-4.283055782318115,51.613471984863395],[-4.253056049346924,51.63152694702143],[-4.248611927032471,51.64402770996088],[-4.200833797454834,51.62625122070324],[-4.118611812591553,51.64402770996088],[-4.080276966094971,51.65902709960943],[-4.070831775665283,51.673873901367244],[-4.041944026947021,51.702220916748104],[-4.023056983947754,51.744159698486385],[-3.978055000305175,51.76665878295904],[-3.933089971542301,51.762283325195256],[-3.82989597320551,51.68771362304687],[-3.889312982559205,51.61791610717779]]]},"properties":{"ID_0":242,"ISO":"GB-SWA","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":189,"NAME_2":"Swansea","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.031853914260864,51.60578918457037],[-3.075934886932373,51.62974166870123],[-3.070498943328857,51.68046569824219],[-3.114710092544499,51.70082473754883],[-3.106729984283447,51.70401763916021],[-3.110353946685791,51.765609741210994],[-3.128468990325871,51.79459381103521],[-3.081367969512825,51.79459381103521],[-3.048760890960637,51.78372192382818],[-3.021589040756226,51.727565765380916],[-2.990792989730835,51.7221298217774],[-2.976300001144352,51.70944976806635],[-2.976300001144352,51.66778564453131],[-2.961265087127629,51.62749099731457],[-3.031853914260864,51.60578918457037]]]},"properties":{"ID_0":242,"ISO":"GB-TOF","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":190,"NAME_2":"Torfaen","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.179722070693913,51.458801269531364],[-3.164166927337532,51.440139770507805],[-3.169167041778508,51.405693054199276],[-3.189723014831543,51.399307250976506],[-3.22749996185297,51.402362823486385],[-3.290832042694035,51.38569259643555],[-3.310277938842717,51.39236068725585],[-3.340277910232487,51.38069534301769],[-3.40416693687439,51.38069534301769],[-3.520833015441781,51.399581909179744],[-3.560277938842773,51.40124893188482],[-3.578056097030583,51.41977310180675],[-3.525556087493896,51.43582916259771],[-3.517220973968392,51.45000076293945],[-3.523056030273438,51.49361038208019],[-3.475198030471745,51.510440826416016],[-3.442500114440918,51.51583099365246],[-3.392221927642822,51.49610900878912],[-3.372221946716308,51.506938934326286],[-3.291353940963688,51.50046157836925],[-3.260731935501099,51.46937179565441],[-3.200683116912841,51.46776962280279],[-3.179722070693913,51.458801269531364]]]},"properties":{"ID_0":242,"ISO":"GB-VGL","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":191,"NAME_2":"Vale of Glamorgan","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-3.140832901000977,52.796390533447266],[-3.190834999084416,52.793331146240234],[-3.242223024368172,52.779159545898494],[-3.299722909927311,52.82693862915045],[-3.371943950653076,52.84999847412121],[-3.390722036361581,52.86741638183594],[-3.373075008392334,52.88907241821289],[-3.311233043670654,52.93287658691406],[-3.200437068939209,52.938030242920036],[-3.094794988632202,52.96379470825207],[-3.141175031661987,52.99729156494135],[-3.132157087325936,53.05913162231457],[-3.122706890106144,53.0664329528808],[-3.10381293296814,53.08103561401373],[-2.991724967956543,53.1390113830567],[-2.956809043884277,53.14467239379883],[-2.93833398818964,53.124721527099666],[-2.895487070083504,53.100749969482536],[-2.864376068115177,53.05360031127941],[-2.860470056533813,53.021930694580185],[-2.827500104904174,53.00222015380871],[-2.812777042388916,52.984161376953125],[-2.7744460105896,52.9849891662597],[-2.727740049362126,52.96660995483404],[-2.716943979263249,52.946109771728516],[-2.71972203254694,52.91722106933593],[-2.75,52.91471862792969],[-2.783334970474129,52.898609161376946],[-2.853610038757324,52.939720153808594],[-2.879168033599854,52.9419403076173],[-2.92833304405201,52.93278121948242],[-2.962729930877686,52.95272827148443],[-2.993890047073364,52.95360946655279],[-3.089446067810059,52.913059234619254],[-3.096668004989624,52.89416885375988],[-3.131666898727417,52.883331298828175],[-3.11916804313654,52.85610961914074],[-3.155833959579468,52.82194137573242],[-3.140832901000977,52.796390533447266]]]},"properties":{"ID_0":242,"ISO":"GB-WRX","NAME_0":"United Kingdom","ID_1":4,"NAME_1":"Wales","ID_2":192,"NAME_2":"Wrexham","TYPE_2":"Unitary Authority (wales)","ENGTYPE_2":"Unitary Authority (wales","NL_NAME_2":null,"VARNAME_2":null}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/ukraine.geojson b/superset/assets/visualizations/countries/ukraine.geojson new file mode 100644 index 0000000000000..eb45ba9bd2475 --- /dev/null +++ b/superset/assets/visualizations/countries/ukraine.geojson @@ -0,0 +1,29 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.878444671631144,49.220344543457145],[32.77760314941412,49.14488220214844],[32.8314590454101,49.10888671875006],[32.912761688232706,49.09610748291021],[32.912380218506144,49.07252502441417],[32.857730865478686,49.04962158203136],[32.856285095215014,48.9553260803222],[32.70254135131859,48.933662414550895],[32.61239242553722,48.9406089782716],[32.54902267456083,48.91777420043945],[32.54049301147455,48.97084426879883],[32.46869277954124,49.02457809448242],[32.44146728515625,49.00720214843756],[32.36950302124029,49.06087112426758],[32.297206878662166,49.06743240356457],[32.26097488403326,49.044235229492244],[32.233745574951456,48.99743270874035],[32.161472320556925,48.95103454589838],[32.17946624755865,48.92736053466808],[32.134361267090014,48.88661193847656],[32.05330276489286,48.910804748535156],[32.026294708252124,48.89339065551758],[31.945241928100696,48.8940162658692],[31.836971282959038,48.93002319335949],[31.719800949096793,48.924861907958984],[31.665918350219837,48.90167999267578],[31.575876235962202,48.896324157714844],[31.5856876373291,48.81992340087896],[31.50523948669428,48.779277801513615],[31.353410720825252,48.72143173217785],[31.33510971069336,48.74501800537121],[31.26303863525402,48.7630386352539],[31.200349807739197,48.75750732421875],[31.120323181152628,48.72269439697277],[31.056867599487305,48.758193969726676],[30.949075698852596,48.76449584960932],[30.89578247070318,48.741222381591854],[30.832527160644812,48.75901794433594],[30.679840087890625,48.75938034057622],[30.626924514770565,48.7243003845216],[30.61063575744646,48.665721893310604],[30.548803329467997,48.63066101074219],[30.585378646850586,48.60717391967779],[30.586374282836854,48.572029113769645],[30.415475845336854,48.58392715454113],[30.38119888305681,48.53123855590826],[30.2653064727786,48.5134162902832],[30.239219665527514,48.489910125732536],[30.176088333129993,48.50710296630865],[30.123943328857422,48.465835571289055],[29.980772018432674,48.493942260742244],[30.041431427002237,48.53537750244151],[30.030441284179915,48.593757629394645],[29.97668457031278,48.60494613647455],[30.01093482971208,48.64036560058594],[29.964702606201225,48.68667984008795],[29.928934097290206,48.692123413085994],[29.874048233032283,48.73240280151367],[29.881019592285323,48.77931213378912],[29.78249740600603,48.80139160156255],[29.780744552612585,48.84235763549816],[29.7437953948974,48.876945495605526],[29.75087165832542,48.91808319091797],[29.669904708862532,48.94600677490239],[29.711572647094954,49.005397796630916],[29.664943695068644,49.05736923217767],[29.662855148315483,49.104282379150504],[29.747997283935547,49.18792724609369],[29.74568748474132,49.24075317382824],[29.774694442748963,49.1883277893067],[29.951723098754936,49.231681823730526],[29.97719192504894,49.267189025878956],[29.96625328063965,49.314067840576286],[29.992483139038367,49.33196258544922],[30.09181404113787,49.32699584960937],[30.111040115356563,49.29779052734369],[30.18191528320341,49.33356094360345],[30.20206642150896,49.280849456787166],[30.35655021667503,49.26395797729492],[30.480152130127237,49.35808944702154],[30.562925338745345,49.328693389892635],[30.63441658020031,49.36386108398443],[30.679853439331108,49.363796234130916],[30.72637367248529,49.32847976684575],[30.78943061828619,49.34597778320318],[30.862277984619137,49.33993530273449],[30.943578720092773,49.357337951660156],[30.95128059387224,49.41018295288097],[31.032878875732706,49.421680450439396],[31.03214454650896,49.4510612487793],[31.095333099365405,49.47434616088867],[31.13013076782232,49.544734954833984],[31.175483703613395,49.556312561035206],[31.156412124633846,49.59164810180664],[31.227516174316687,49.67952346801769],[31.23546600341803,49.73239517211914],[31.215892791748047,49.78538131713878],[31.223794937133903,49.83825683593756],[31.323888778686694,49.87896347045904],[31.397157669067663,49.89035797119152],[31.321590423584038,49.97891616821295],[31.43187713623064,49.990108489990234],[31.46909523010248,49.972270965576286],[31.451616287231502,49.92533874511718],[31.461730957031303,49.87826156616222],[31.499031066894702,49.84866333007812],[31.581546783447262,49.85995864868175],[31.646163940429744,49.84196853637701],[31.747289657592944,49.84141159057622],[31.838191986084098,49.940837860107536],[31.948686599731502,49.951961517333984],[31.929729461670203,50.01086044311518],[31.938373565674,50.075477600097656],[31.993612289428764,50.104553222656364],[32.02995300292997,50.19252777099604],[32.085624694824276,50.186321258545036],[32.14112854003912,50.2095108032226],[32.150524139404354,50.18593597412115],[32.224838256836165,50.13845062255865],[32.289691925049,50.12041473388683],[32.31750106811552,50.02616500854492],[32.36368560791021,50.03174972534185],[32.382087707519474,49.99045562744146],[32.455699920654354,49.93700027465831],[32.45539093017578,49.860507965088004],[32.40018463134793,49.855026245117244],[32.46431732177751,49.80158996582031],[32.592510223388956,49.747592926025504],[32.601116180420206,49.67685699462896],[32.68338394165056,49.65847015380854],[32.756095886230746,49.61067199707037],[32.746677398681584,49.587188720703125],[32.79195404052762,49.55139923095709],[32.79150772094721,49.51603698730469],[32.7085571289063,49.44614410400402],[32.725971221923885,49.375263214111385],[32.7893905639649,49.35102844238281],[32.779987335205135,49.3275527954101],[32.689041137695305,49.328506469726506],[32.61651611328142,49.35279846191412],[32.51657485961937,49.37142181396479],[32.4889564514163,49.32458114624035],[32.54317092895502,49.28285217285162],[32.68786239624029,49.222476959228565],[32.76961135864275,49.22747802734375],[32.79652404785185,49.20360183715826],[32.878444671631144,49.220344543457145]]]},"properties":{"ID_0":240,"ISO":"UA-71","NAME_0":"Ukraine","ID_1":1,"NAME_1":"Cherkasy","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Cherkas'ka Oblast'|Cherkasskaya Oblast'|Cherkassy"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.427616119384936,52.3442115783692],[33.38936233520513,52.260772705078175],[33.325595855713054,52.19298553466797],[33.32460021972662,52.14630889892584],[33.36208343505854,52.139640808105526],[33.45310211181658,52.07283401489269],[33.50841140747076,52.065841674804744],[33.50878143310564,52.025146484375],[33.44343185424799,52.01393890380865],[33.396900177001896,52.03231048583996],[33.341419219970874,51.999774932861385],[33.42752456665062,51.96378707885736],[33.394931793213175,51.916851043701286],[33.28780364990257,51.92345809936529],[33.16868209838873,51.865077972412166],[33.16719436645536,51.811744689941406],[33.117862701416186,51.77052688598644],[33.12702941894537,51.74084472656256],[33.18413925170921,51.68720245361334],[33.145328521728686,51.65199279785167],[33.221691131591854,51.56289672851568],[33.19276046752958,51.486362457275504],[33.154445648193644,51.480728149414176],[33.135166168213175,51.427761077880916],[33.14447784423845,51.36281204223633],[33.096660614013786,51.35724639892584],[33.08640670776384,51.2394256591798],[33.05735778808593,51.192504882812614],[32.990447998047095,51.16350173950195],[33.01863479614286,51.133872985839844],[32.98971176147478,51.09873580932623],[33.10277938842768,51.050884246826286],[33.111625671387,51.01550292968761],[33.08253479003906,50.97449111938476],[33.23291397094726,50.9382438659668],[33.241062164306584,50.87938308715826],[33.1935997009279,50.862026214599666],[33.20106506347684,50.76788330078131],[33.24740219116228,50.7382049560548],[33.171337127685604,50.69160079956055],[33.189365386963004,50.656192779541065],[33.13277435302763,50.6388931274414],[33.1216659545899,50.55068588256836],[33.092609405517635,50.497882843017635],[33.05452346801752,50.45690155029297],[32.95119476318388,50.41046142578131],[32.89464569091797,50.36371994018549],[32.80129241943387,50.34077453613281],[32.596519470215014,50.342041015625114],[32.53132629394537,50.33654403686529],[32.503543853759766,50.38376235961914],[32.410350799560604,50.39020156860363],[32.35441207885748,50.40818405151367],[32.28001022338867,50.332168579101555],[32.1776771545413,50.32690048217768],[32.112380981445426,50.35080718994152],[32.05611038208013,50.39818191528331],[32.0274353027346,50.46891403198248],[32.08327102661161,50.492122650146484],[32.082950592041186,50.52741241455089],[31.99873542785673,50.5278892517091],[31.960680007934567,50.575153350830135],[31.847497940063587,50.61694717407232],[31.8010196685791,50.59367370605469],[31.80188941955595,50.54661941528332],[31.708114624023494,50.55301284790045],[31.63425636291515,50.50636291503912],[31.540285110473633,50.52450561523443],[31.46640586853033,50.48960876464849],[31.38113212585449,50.53120803833008],[31.26901245117187,50.53180313110351],[31.210729598999134,50.59677124023443],[31.22624969482439,50.68486022949219],[31.139301300049112,50.74995040893549],[31.12895584106451,50.773506164550724],[31.05442619323736,50.76210403442394],[30.848503112793196,50.76278305053711],[30.74406814575218,50.79824447631836],[30.768627166748043,50.86872482299815],[30.682821273803878,50.90413665771496],[30.642480850219897,50.96296310424816],[30.640617370605526,50.99821472167968],[30.58318519592285,51.02769088745117],[30.50899505615257,51.02790451049805],[30.489318847656307,51.05150985717768],[30.513940811157227,51.11018753051763],[30.474897384643725,51.17552185058605],[30.519046783447553,51.198616027832145],[30.509107589721733,51.24024581909185],[30.535083770752237,51.269706726074276],[30.588104248046875,51.28022384643555],[30.60475730896007,51.32155990600597],[30.65711021423345,51.33758544921881],[30.623411178589148,51.406112670898494],[30.616550445556584,51.48315429687506],[30.572303771972717,51.50444030761719],[30.52880668640165,51.5713348388673],[30.565828323364258,51.60756301879882],[30.520992279052678,51.662387847900504],[30.56768798828125,51.67437362670904],[30.577983856201453,51.71097183227544],[30.6238651275637,51.72357177734374],[30.69740295410162,51.837852478027344],[30.71175956726086,51.88551712036138],[30.812522888183707,51.916053771972656],[30.805837631225756,51.95095062255859],[30.8620033264163,51.99011993408209],[30.940582275390625,51.99276351928722],[30.951120376586914,52.0784797668457],[31.05743026733404,52.078529357910156],[31.11174392700212,52.0948104858399],[31.23543739318842,52.04833602905273],[31.29511260986345,52.06956481933594],[31.30680847167974,52.09890747070324],[31.443658828735405,52.13754272460943],[31.48966789245611,52.11967849731445],[31.681915283203296,52.11468505859381],[31.80774879455589,52.09617233276367],[31.858610153198523,52.10762405395508],[31.94972991943376,52.08386611938482],[31.923452377319396,52.0361213684082],[32.0219268798831,52.04119873046875],[32.072063446045085,52.022766113281364],[32.21000289916992,52.05716323852545],[32.229854583740234,52.08079528808605],[32.29918289184599,52.091964721679744],[32.35117340087902,52.13898086547857],[32.32890319824236,52.2353515625],[32.39633178710943,52.252891540527344],[32.358680725097656,52.33577728271496],[32.53191375732427,52.33327102661133],[32.62036895751953,52.30223846435558],[32.706577301025675,52.253143310546925],[32.747074127197436,52.27048492431646],[32.87995529174833,52.27319335937506],[32.90880966186518,52.24350357055669],[32.977085113525334,52.26479721069336],[33.0746307373048,52.3225936889649],[33.17728424072283,52.33797073364269],[33.1853103637697,52.3680992126466],[33.242950439453175,52.368160247802734],[33.343891143799,52.33840560913085],[33.427616119384936,52.3442115783692]]]},"properties":{"ID_0":240,"ISO":"UA-74","NAME_0":"Ukraine","ID_1":2,"NAME_1":"Chernihiv","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Chernigov|Tschernigow"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[25.625947952270508,48.67673110961914],[25.70867919921875,48.6622695922851],[25.788305282592887,48.671047210693416],[25.857351303100696,48.62656402587902],[25.851633071899414,48.60287475585943],[25.91664123535162,48.58759307861334],[25.96638870239269,48.61873245239258],[26.149723052978626,48.59591674804687],[26.146175384521484,48.554622650146484],[26.176998138427848,48.526359558105526],[26.28397560119646,48.53598785400402],[26.296056747436637,48.51285552978521],[26.359701156616268,48.50917053222656],[26.437473297119197,48.53564071655279],[26.510892868041992,48.52648162841796],[26.555419921875053,48.46259307861328],[26.620014190673885,48.45283889770513],[26.651996612548828,48.48396301269531],[26.723920822143555,48.486755371093864],[26.71844482421875,48.52861022949219],[26.803565979003963,48.56860733032232],[26.90369033813488,48.545246124267514],[26.934822082519585,48.57596969604492],[27.005056381225586,48.573749542236385],[27.104028701782283,48.55498123168939],[27.15440750122093,48.586490631103516],[27.227418899536186,48.566162109375],[27.23247528076172,48.61349105834972],[27.27615737915067,48.62720870971691],[27.31411170959484,48.599334716796875],[27.374431610107536,48.63139343261719],[27.457410812378043,48.59319686889654],[27.47717666625982,48.55816650390624],[27.470438003540096,48.50998687744146],[27.533691406250053,48.464416503906364],[27.471635818481555,48.448894500732536],[27.46418952941906,48.4233665466308],[27.381259918213004,48.41062545776367],[27.32387924194347,48.44143295288097],[27.284778594970817,48.38408279418939],[27.229536056518498,48.37453079223644],[27.197153091430778,48.39616775512701],[27.15061378479015,48.38280487060558],[27.094108581543082,48.40908432006836],[27.0028915405274,48.365390777587834],[26.928272247314567,48.370529174804744],[26.88106918334961,48.425903320312614],[26.726482391357536,48.39499282836913],[26.828771591186637,48.34069061279291],[26.820150375366268,48.293167114257926],[26.772674560546932,48.277458190918026],[26.752584457397514,48.31863021850597],[26.690494537353516,48.3476676940918],[26.674463272094727,48.30824661254888],[26.61643028259283,48.24929428100586],[26.53169441223156,48.21019744873058],[26.47389411926281,48.220451354980526],[26.402503967285266,48.18900680541992],[26.336137771606502,48.184467315673885],[26.26848220825201,48.076736450195305],[26.213724136352653,48.05101013183594],[26.189668655395565,47.99571228027344],[26.102588653564567,47.97848510742182],[26.062509536743274,47.98831558227539],[25.953598022460934,47.97108840942394],[25.862892150878963,47.97044754028326],[25.776258468627987,47.93962478637707],[25.627159118652628,47.949031829833984],[25.593940734863338,47.93868637084972],[25.31250762939447,47.91458129882807],[25.23960876464855,47.895549774170036],[25.223596572876033,47.85888671874994],[25.117712020873967,47.76792907714844],[25.041725158691406,47.7256698608399],[24.93280029296875,47.727939605713004],[25.005004882812614,47.819515228271484],[25.00832939147955,47.84307098388672],[24.945228576660213,47.88597488403326],[24.90699958801281,47.937423706054794],[24.89846229553217,47.99044799804699],[24.93268775939947,48.057537078857365],[24.9890975952149,48.09610748291027],[24.983072280883842,48.13701248168951],[25.06084632873535,48.15297698974621],[25.134000778198466,48.26234817504894],[25.19427490234375,48.27704620361328],[25.338451385498104,48.38917541503906],[25.415601730346793,48.41016769409191],[25.521902084350586,48.414657592773544],[25.64058113098156,48.39582824707031],[25.594791412353572,48.464431762695426],[25.604721069336104,48.51758575439459],[25.57933044433605,48.62799453735363],[25.625947952270508,48.67673110961914]]]},"properties":{"ID_0":240,"ISO":"UA-77","NAME_0":"Ukraine","ID_1":3,"NAME_1":"Chernivtsi","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Chernivets'ka Oblast'|Chernovitskaya Oblast'|Chernovtsy|Czernowitz|Tschernowzy|Tchernovtsy"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.056884765625284,46.01227188110363],[34.07029724121111,46.04892349243164],[34.21107482910173,46.02893829345714],[34.32836151123064,46.0278892517091],[34.42665481567394,46.10229492187506],[34.519184112548764,46.05566024780279],[34.558979034423885,46.11584472656256],[34.618587493896655,46.08187484741222],[34.61413955688505,46.032535552978516],[34.5625801086428,46.04688262939464],[34.50018692016607,46.04038238525402],[34.46310424804693,46.02116394042963],[34.458526611328175,45.97988128662114],[34.52196502685564,45.93108367919933],[34.602302551269524,45.948871612548885],[34.66382980346685,46.01050567626953],[34.653778076172046,46.07901000976562],[34.69904327392584,46.09243774414074],[34.795230865478516,46.072448730468864],[34.839305877685604,46.05289459228521],[34.865970611572436,45.95791625976568],[34.91902923584013,45.85069274902344],[35.03402709960966,45.679862976074276],[35.105972290039006,45.59847259521496],[35.204860687255966,45.51347351074219],[35.2626380920413,45.44985961914074],[35.3768043518067,45.35347366333019],[35.45069503784208,45.309307098388665],[35.528472900390796,45.283473968505966],[35.59680557251005,45.31152725219721],[35.72013854980462,45.334304809570426],[35.75763702392601,45.36819458007818],[35.753749847412394,45.39736175537115],[35.84875106811552,45.439582824707145],[35.885971069335994,45.4059715270996],[35.94819259643572,45.37625122070324],[36.005416870117244,45.369583129882926],[36.070415496826286,45.40180587768555],[36.069862365722884,45.43763732910162],[36.143196105956974,45.46680450439459],[36.28374862670904,45.48152923583996],[36.342361450195476,45.47735977172857],[36.41847229003906,45.445137023925724],[36.49124908447294,45.45097351074224],[36.52875137329113,45.42680740356451],[36.59708404541044,45.43763732910162],[36.64652633666997,45.38180541992199],[36.60486221313471,45.34791564941406],[36.48513793945341,45.3609733581543],[36.47986221313482,45.30513763427729],[36.43708419799805,45.267360687255916],[36.40208435058593,45.213195800781364],[36.40625000000017,45.172637939453125],[36.44374847412137,45.08680725097656],[36.374862670898494,45.05902862548834],[36.26291656494169,45.0531959533692],[36.226528167724666,45.0279159545899],[36.02680587768555,45.049583435058594],[35.955696105956974,45.01291656494152],[35.90430450439476,45.01874923706049],[35.839027404785156,44.99874877929693],[35.809860229492244,45.04347229003906],[35.717918395996094,45.097084045410156],[35.612895965576335,45.12736129760748],[35.565803527832315,45.1304168701173],[35.475418090820426,45.11013793945318],[35.40541839599621,45.070137023925895],[35.38347244262701,45.04013824462896],[35.425140380859375,45.011806488037166],[35.364028930664176,44.99347305297857],[35.35013961791998,44.964305877685604],[35.27125167846674,44.96875],[35.237361907958984,44.91569519042969],[35.16680526733404,44.90097045898431],[35.12847137451183,44.82847213745123],[35.082637786865405,44.79208374023437],[35.029304504394474,44.8304176330567],[34.96347045898466,44.8404159545899],[34.88958358764643,44.81597137451172],[34.77291488647461,44.81847381591802],[34.48930740356451,44.72652816772472],[34.4162483215332,44.67319488525402],[34.35235977172857,44.586807250976676],[34.34763717651373,44.54819488525396],[34.276527404785156,44.53902816772472],[34.25097274780302,44.50624847412115],[34.164585113525504,44.492362976074325],[34.127082824707315,44.428470611572266],[33.94013977050787,44.39125061035162],[33.882915496826335,44.40402603149413],[33.80236053466797,44.39420700073248],[33.92674636840831,44.429439544677734],[33.86188507080084,44.52409744262701],[33.797657012939624,44.497566223144474],[33.713996887206974,44.51655578613287],[33.6789131164553,44.54543304443371],[33.66891479492193,44.58584976196289],[33.75345993041998,44.62055969238292],[33.77341842651384,44.67374801635742],[33.72583389282249,44.70423889160162],[33.61883163452171,44.70058822631847],[33.613399505615405,44.742172241210994],[33.67987442016607,44.758396148681584],[33.66495895385748,44.78236389160156],[33.59279251098649,44.80184173583984],[33.57392501831072,44.83791732788097],[33.60680389404291,44.86902618408209],[33.61264038085943,44.92152786254883],[33.60013961792014,45.01013946533203],[33.56902694702154,45.0745849609375],[33.51291656494169,45.1337509155274],[33.42375183105469,45.18930435180664],[33.38347244262701,45.19708251953131],[33.305973052978516,45.17458343505865],[33.25819396972656,45.148193359375],[33.22791671752947,45.17514038085943],[33.14847183227562,45.20375061035162],[33.015972137451456,45.308193206787166],[33.02013778686552,45.37125015258789],[32.97680664062494,45.3531951904298],[32.87041854858427,45.36680603027344],[32.75597381591814,45.36513900756836],[32.6543045043947,45.31569290161144],[32.4945831298831,45.345417022705135],[32.48041534423834,45.39041519165045],[32.4995841979981,45.422359466552734],[32.584861755371264,45.480693817138786],[32.78819274902361,45.562084197998104],[32.82430648803705,45.59013748168957],[32.95597076416044,45.662082672119254],[33.152915954589844,45.73208236694347],[33.16569519042968,45.779304504394474],[33.24124908447271,45.75097274780284],[33.31652832031267,45.7698593139649],[33.425693511962834,45.83402633666998],[33.49458312988287,45.85486221313482],[33.54735946655302,45.83763885498058],[33.56791687011736,45.86930465698242],[33.67652893066429,45.898193359375],[33.75263977050787,45.94819259643566],[33.63069534301786,45.95708465576171],[33.61486053466796,46.05374908447277],[33.64180374145502,46.08458328247064],[33.62374877929716,46.110332489013615],[33.629108428955135,46.162303924560604],[33.65636825561529,46.18651199340826],[33.74657440185575,46.14308166503906],[33.82028198242187,46.15596771240246],[33.883033752441406,46.13815307617193],[33.97277069091825,46.08840560913086],[33.990180969238224,46.05530166625982],[34.04221725463867,46.04610061645508],[34.056884765625284,46.01227188110363]]]},"properties":{"ID_0":240,"ISO":"UA-43","NAME_0":"Ukraine","ID_1":4,"NAME_1":"Crimea","TYPE_1":"Autonomous Republic","ENGTYPE_1":"Autonomous Republic","NL_NAME_1":null,"VARNAME_1":"Crimée|Criméia|Krim|Krymskaya Respublika|Respublika Krym"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.061527252197315,49.13572692871094],[35.211250305175895,49.13317489624029],[35.21788024902372,49.097221374511776],[35.45847702026373,48.997375488281364],[35.517875671386946,48.96045303344738],[35.59692001342779,48.95303344726568],[35.72139739990257,48.96263122558605],[35.824035644531534,48.91278076171881],[35.843410491943644,48.93629837036133],[36.0051002502442,48.96881484985362],[36.03888702392595,48.830627441406364],[36.13344573974621,48.798656463623104],[36.15796279907237,48.77420425415045],[36.152812957763786,48.708644866943416],[36.22837829589849,48.665119171142635],[36.279933929443416,48.65200042724609],[36.258083343506144,48.59881591796875],[36.377109527588004,48.55446243286133],[36.47330856323242,48.65375518798834],[36.608570098877,48.59138488769537],[36.69025802612333,48.619319915771484],[36.734184265136776,48.618278503418026],[36.81653594970703,48.55672073364258],[36.87693023681652,48.54325485229498],[36.81750869751005,48.47343826293951],[36.82889938354515,48.407772064208984],[36.8009643554688,48.39064788818371],[36.80137634277372,48.3015594482423],[36.854373931884936,48.306163787841854],[36.895843505859546,48.28134155273449],[36.922260284424,48.19165802001959],[36.85945129394531,48.17552185058594],[36.89282989501953,48.06800079345703],[36.854595184326165,48.03346252441406],[36.76876831054716,48.047397613525504],[36.65102386474614,48.091476440429744],[36.5886497497558,48.07495880126964],[36.59473419189459,47.95050811767578],[36.64339828491205,47.91405487060547],[36.55477905273449,47.89210891723638],[36.59258651733404,47.83230972290039],[36.46862411499052,47.79900360107416],[36.38397598266612,47.81795883178722],[36.33884048461914,47.79494476318371],[36.22735214233427,47.80252075195318],[36.212585449219034,47.83238601684576],[36.11634826660156,47.816192626953125],[36.123565673828296,47.90512847900396],[36.097682952880966,47.905597686767635],[36.05580902099637,48.03127288818371],[36.01204681396489,48.02617645263672],[35.98060226440447,48.06845855712902],[35.8390464782716,48.03544998168945],[35.833007812500284,48.07130813598633],[35.76346969604498,48.0726203918457],[35.73125457763672,48.108985900878906],[35.570007324219034,48.04639053344732],[35.38973617553728,48.08538818359381],[35.33873748779297,48.104198455810604],[35.2518424987793,48.10576248168957],[35.08544540405302,48.08496856689453],[35.031562805176065,48.05615234375],[34.9535446166995,48.05766296386719],[34.94633102416998,48.081676483154354],[34.886695861816406,48.10074234008795],[34.90876770019548,48.034664154052734],[34.87302780151384,48.01745986938488],[34.88604354858404,47.9455680847169],[34.82081604003917,47.869243621826286],[34.89468383789079,47.80208206176763],[34.868030548095646,47.79066085815441],[34.88206863403343,47.73662185668951],[34.94292068481451,47.741413116455135],[34.940010070801065,47.69367599487305],[34.89393615722656,47.64675903320324],[34.92557525634783,47.598335266113395],[34.91370010375982,47.544754028320256],[34.936695098876896,47.496479034423885],[34.87561035156267,47.48566055297863],[34.77214431762695,47.487686157226676],[34.66218185424833,47.52585983276372],[34.575962066650675,47.52772903442383],[34.47105407714861,47.50613403320318],[34.2965927124024,47.480316162109375],[34.147533416748104,47.448284149170036],[34.00723266601568,47.42241287231445],[33.973041534423885,47.43530654907238],[33.923320770263615,47.49026107788097],[33.808971405029354,47.469799041748104],[33.651100158691406,47.456707000732536],[33.64358901977545,47.4865379333496],[33.591125488281534,47.48810195922857],[33.58587265014677,47.57701492309575],[33.497764587402344,47.56774139404302],[33.48744201660173,47.52667999267578],[33.44251632690447,47.49848937988286],[33.372203826904524,47.494663238525504],[33.34464645385759,47.46007156372075],[33.29292297363287,47.48516082763677],[33.28516387939481,47.514865875244254],[33.223590850830135,47.51068878173834],[33.20701217651373,47.54058837890624],[33.093521118164176,47.56114959716791],[33.094047546387,47.578781127929744],[32.98924255371111,47.59886932373058],[32.990818023681584,47.65759277343756],[32.9742965698245,47.6990966796875],[33.0101013183596,47.72182846069347],[33.071712493896655,47.72045516967785],[33.08195495605469,47.773178100585994],[33.0652618408206,47.80885314941412],[33.094032287597706,47.89653396606457],[33.023490905762,47.90391159057622],[33.03403472900408,47.974338531494254],[33.06144332885742,48.00911331176758],[33.105724334716854,48.00820159912121],[33.1776504516601,48.04796600341797],[33.33866882324236,48.09763336181652],[33.330654144287394,48.1273307800294],[33.40197372436529,48.13759994506847],[33.51839065551752,48.17052459716808],[33.58163070678734,48.204650878906364],[33.56523132324236,48.24644470214855],[33.52970886230497,48.247200012207145],[33.52231216430687,48.294692993164176],[33.496185302734546,48.3129768371582],[33.51598358154325,48.37765884399414],[33.51154708862322,48.52567291259776],[33.61944198608427,48.54733276367193],[33.66504669189459,48.57609558105469],[33.70016479492193,48.557659149169915],[33.799739837646655,48.59728622436535],[33.76630783081083,48.663124084472706],[33.72260284423845,48.69355773925781],[33.6689071655274,48.69451904296874],[33.6252555847168,48.73083114624018],[33.64411926269537,48.76011657714838],[33.698677062988565,48.782875061035156],[33.823696136474666,48.76884078979492],[33.85862731933594,48.7445068359375],[33.91490173339844,48.814739227295036],[33.93502426147461,48.87374496459961],[33.99654006958036,48.84305572509777],[34.05889129638672,48.836090087890625],[34.15563583374018,48.798835754394474],[34.18061447143566,48.75681304931652],[34.25133132934599,48.74372100830078],[34.312240600586165,48.71294784545898],[34.367183685302905,48.74771499633795],[34.33381652832037,48.795871734619084],[34.37994766235345,48.83081054687506],[34.33734130859391,48.87314987182617],[34.38546752929693,48.94972229003906],[34.39632034301786,48.9911994934082],[34.4521026611331,49.03794097900396],[34.60361480712908,49.035617828369254],[34.62412261962919,49.08890914916992],[34.74958801269537,49.10486984252924],[34.78734207153332,49.14601516723644],[34.859672546386776,49.16875839233393],[35.009578704834155,49.154476165771484],[35.061527252197315,49.13572692871094]]]},"properties":{"ID_0":240,"ISO":"UA-12","NAME_0":"Ukraine","ID_1":5,"NAME_1":"Dnipropetrovs'k","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Dnipropetrovsk|Dniepropietrovsk|Dnjepropetrowsk"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.060066223144815,47.86254119873047],[38.9300384521486,47.868629455566406],[38.83940887451183,47.8542098999024],[38.76478576660185,47.68413162231445],[38.67514419555681,47.696815490722656],[38.66309738159197,47.663700103759766],[38.60552978515653,47.63789367675781],[38.457427978515625,47.63735198974615],[38.46673202514671,47.609565734863395],[38.37160873413114,47.611076354980575],[38.35765075683611,47.57899093627924],[38.310749053955355,47.56166839599621],[38.29051589965826,47.520183563232536],[38.31133651733427,47.45143508911133],[38.29831695556658,47.3759002685548],[38.25248718261747,47.36819458007812],[38.224414825439624,47.31311035156255],[38.325645446777344,47.30075454711914],[38.334228515625,47.25302886962896],[38.245891571045206,47.228363037109375],[38.234554290771484,47.11986160278332],[38.166526794433764,47.07069396972662],[38.06236267089838,47.11180496215826],[38.03236007690447,47.08986282348638],[37.96236038208025,47.093193054199276],[37.899860382080135,47.1109733581543],[37.79569625854498,47.08541488647461],[37.7023620605471,47.08013916015625],[37.630138397216854,47.09486007690441],[37.535694122314624,47.080696105956974],[37.47208404541033,47.025970458984375],[37.33791732788086,46.89125061035167],[37.29208374023443,46.9329185485841],[37.23458480834984,46.95124816894531],[37.16263961791992,46.91347122192394],[37.06030654907255,46.88291549682623],[37.029228210449276,46.921546936035206],[37.049308776855526,46.949844360351506],[37.138324737549105,46.979637145996094],[37.089683532714844,47.00658035278331],[37.117874145507976,47.0285530090332],[37.00292968750006,47.081405639648544],[36.998600006103516,47.122539520263786],[36.87554931640631,47.185024261474666],[36.96400833129894,47.20572662353521],[36.935443878174,47.265235900878956],[36.93151092529314,47.312278747558594],[37.04256057739286,47.297008514404354],[37.087551116943416,47.313091278076286],[37.145549774170206,47.36978912353527],[37.190067291259936,47.379772186279354],[37.25014495849615,47.453895568847706],[37.15412139892595,47.451946258545036],[37.079116821289176,47.483993530273494],[37.01507568359392,47.539009094238395],[36.94738769531249,47.55867767333979],[36.90171432495117,47.536411285400504],[36.82217788696289,47.609115600585994],[36.76232528686546,47.616436004638665],[36.73009872436546,47.640724182128906],[36.67174148559576,47.75399017333979],[36.67395782470731,47.7775497436524],[36.5866241455081,47.7674674987793],[36.617393493652514,47.82001876831066],[36.59258651733404,47.83230972290039],[36.55477905273449,47.89210891723638],[36.64339828491205,47.91405487060547],[36.59473419189459,47.95050811767578],[36.5886497497558,48.07495880126964],[36.65102386474614,48.091476440429744],[36.76876831054716,48.047397613525504],[36.854595184326165,48.03346252441406],[36.89282989501953,48.06800079345703],[36.85945129394531,48.17552185058594],[36.922260284424,48.19165802001959],[36.895843505859546,48.28134155273449],[36.854373931884936,48.306163787841854],[36.80137634277372,48.3015594482423],[36.8009643554688,48.39064788818371],[36.82889938354515,48.407772064208984],[36.81750869751005,48.47343826293951],[36.87693023681652,48.54325485229498],[36.81653594970703,48.55672073364258],[36.734184265136776,48.618278503418026],[36.73249053955084,48.69573593139643],[36.686691284179744,48.77430725097662],[36.919158935546875,48.79797363281256],[36.98823928833002,48.77807235717779],[37.01837539672846,48.812847137451115],[37.06273269653343,48.811431884765625],[37.08410644531267,48.846424102783146],[37.146247863769645,48.84431076049816],[37.19310760498069,48.866428375244254],[37.2336502075197,48.912490844726676],[37.30861282348638,48.94524383544927],[37.30356597900419,48.98109817504883],[37.378086090088004,49.007724761963004],[37.392269134521484,49.05461883544922],[37.51095581054682,49.073062896728516],[37.49713134765648,49.109333038330135],[37.580749511718864,49.13523864746105],[37.56006240844721,49.189674377441406],[37.51813888549822,49.2153205871582],[37.5757102966308,49.24839782714838],[37.65601730346697,49.244777679443416],[37.78796768188505,49.22086715698242],[37.86023330688505,49.22346496582031],[37.8734397888183,49.25863647460948],[37.939350128174055,49.207782745361385],[37.90751647949236,49.167545318603565],[37.959014892578296,49.14716339111328],[38.08274078369169,49.129154205322266],[38.05686569213873,49.064807891845646],[38.08676910400402,49.015609741210994],[38.00749206542968,48.95398712158209],[38.2125244140625,48.94366455078125],[38.20962905883812,48.84845352172857],[38.27786254882841,48.821109771728516],[38.245258331298885,48.77513885498058],[38.294868469238224,48.74279403686535],[38.28744125366234,48.68362808227545],[38.221626281738224,48.65724182128912],[38.291011810302734,48.49890518188471],[38.26962661743181,48.470245361328125],[38.31008911132841,48.43840408325207],[38.41442108154325,48.42103576660156],[38.41868591308611,48.38510894775402],[38.47641754150418,48.35227584838867],[38.411113739013786,48.326011657714844],[38.404293060302905,48.27282333374035],[38.54523086547868,48.27121734619152],[38.58978271484392,48.20933151245128],[38.58506011962896,48.1739120483399],[38.652290344238395,48.14653778076172],[38.79998397827177,48.120742797851676],[38.821304321289006,48.01867294311523],[39.039722442627,48.007263183593864],[39.0407142639163,47.9600181579591],[39.07302093505888,47.94686508178722],[39.060066223144815,47.86254119873047]]]},"properties":{"ID_0":240,"ISO":"UA-14","NAME_0":"Ukraine","ID_1":6,"NAME_1":"Donets'k","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Donetsk|Donetskaya Oblast'|Donezk|Stalino"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[24.709098815918026,49.49817657470709],[24.760036468505803,49.39469528198248],[24.806293487548885,49.385398864746094],[24.83896064758295,49.34584808349621],[24.80844116210937,49.30883026123058],[24.82333946228033,49.26836395263683],[24.883520126342773,49.224407196045036],[24.836347579956165,49.18070983886719],[24.898210525512752,49.12508773803705],[24.970905303955135,49.11706161499035],[24.9503498077392,49.07483291625982],[24.901666641235465,49.0428733825683],[25.032554626464844,49.00255966186529],[25.095523834228626,48.99979782104492],[25.114767074585018,48.93022918701183],[25.221349716186523,48.93531036376959],[25.245668411254883,48.83073806762707],[25.278366088867127,48.791141510009766],[25.338346481323356,48.870143890380916],[25.42675781249994,48.879901885986385],[25.44144821166998,48.83940505981445],[25.545413970947322,48.80265808105469],[25.633951187133956,48.7474822998048],[25.625947952270508,48.67673110961914],[25.57933044433605,48.62799453735363],[25.604721069336104,48.51758575439459],[25.594791412353572,48.464431762695426],[25.64058113098156,48.39582824707031],[25.521902084350586,48.414657592773544],[25.415601730346793,48.41016769409191],[25.338451385498104,48.38917541503906],[25.19427490234375,48.27704620361328],[25.134000778198466,48.26234817504894],[25.06084632873535,48.15297698974621],[24.983072280883842,48.13701248168951],[24.9890975952149,48.09610748291027],[24.93268775939947,48.057537078857365],[24.89846229553217,47.99044799804699],[24.90699958801281,47.937423706054794],[24.945228576660213,47.88597488403326],[25.00832939147955,47.84307098388672],[25.005004882812614,47.819515228271484],[24.93280029296875,47.727939605713004],[24.838142395019474,47.77977371215832],[24.829368591308537,47.82072830200201],[24.75459098815918,47.82999420166021],[24.67456436157238,47.863647460937614],[24.67540550231928,47.896633148193416],[24.569614410400444,47.9683570861817],[24.566320419311523,48.03275680541992],[24.614669799804688,48.05851364135742],[24.598463058471733,48.10418701171875],[24.52041053771984,48.151790618896484],[24.496540069580135,48.19105911254877],[24.532066345214844,48.24598693847661],[24.47595977783203,48.26573944091796],[24.478391647338867,48.306903839111385],[24.35287094116211,48.374736785888615],[24.311510086059627,48.41301345825207],[24.265602111816403,48.36862945556646],[24.183500289916932,48.38628005981451],[24.141117095947436,48.43024826049804],[24.140714645386023,48.54211425781249],[23.995227813720703,48.51361465454101],[23.950822830200252,48.46309661865246],[23.894794464111385,48.4823455810548],[23.899440765380803,48.559371948242244],[23.838539123535156,48.55464935302746],[23.77847099304205,48.597167968750114],[23.761886596679684,48.64310836791992],[23.68357086181669,48.636913299560604],[23.6097354888916,48.70784759521478],[23.544797897339095,48.7261962890625],[23.561981201171875,48.78090667724604],[23.545328140258846,48.82689666748047],[23.560642242431925,48.89317321777349],[23.54796409606928,48.91582107543957],[23.59451293945324,49.00811767578125],[23.674638748169002,49.061714172363274],[23.669857025146484,49.090900421142685],[23.744485855102653,49.126380920410156],[23.791460037231445,49.1123504638673],[23.908252716064453,49.10962677001959],[23.965644836425838,49.14355850219738],[24.023361206054688,49.11824035644537],[24.05429077148437,49.15007400512689],[24.127033233642575,49.1434211730957],[24.23346900939947,49.15073013305669],[24.283136367797965,49.177700042724716],[24.379739761352766,49.18979644775402],[24.43822479248047,49.217037200927734],[24.363836288452205,49.23608398437506],[24.33820152282715,49.2876930236817],[24.378133773803768,49.31974411010747],[24.40570640563959,49.374641418457145],[24.361522674560604,49.431102752685604],[24.4040851593017,49.44550323486334],[24.38649177551281,49.50359344482416],[24.438755035400447,49.512584686279354],[24.477760314941463,49.55028915405273],[24.52636528015142,49.52350616455084],[24.560869216918885,49.5313339233399],[24.628137588501257,49.499610900878906],[24.709098815918026,49.49817657470709]]]},"properties":{"ID_0":240,"ISO":"UA-26","NAME_0":"Ukraine","ID_1":7,"NAME_1":"Ivano-Frankivs'k","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Ivano-Frankovsk|Ivano-Frankovskaya Oblast'|Stanislav"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[38.034046173095646,49.922767639160206],[38.074523925781534,49.88388824462902],[38.01675796508795,49.84527587890631],[38.04908370971708,49.81339645385753],[38.02692031860357,49.77840042114257],[37.982707977295206,49.786449432373104],[37.96036529541033,49.75129318237305],[38.03017044067411,49.73011016845709],[38.03192901611334,49.66997528076171],[37.95479583740229,49.63158035278326],[37.927326202392635,49.55492019653326],[37.88087081909191,49.54495620727539],[37.85425186157232,49.47439575195324],[37.894882202148544,49.436759948730526],[37.90278625488281,49.35277557373047],[37.961978912353686,49.32014846801769],[37.95837020874023,49.290454864501896],[37.8734397888183,49.25863647460948],[37.86023330688505,49.22346496582031],[37.78796768188505,49.22086715698242],[37.65601730346697,49.244777679443416],[37.5757102966308,49.24839782714838],[37.51813888549822,49.2153205871582],[37.56006240844721,49.189674377441406],[37.580749511718864,49.13523864746105],[37.49713134765648,49.109333038330135],[37.51095581054682,49.073062896728516],[37.392269134521484,49.05461883544922],[37.378086090088004,49.007724761963004],[37.30356597900419,48.98109817504883],[37.30861282348638,48.94524383544927],[37.2336502075197,48.912490844726676],[37.19310760498069,48.866428375244254],[37.146247863769645,48.84431076049816],[37.08410644531267,48.846424102783146],[37.06273269653343,48.811431884765625],[37.01837539672846,48.812847137451115],[36.98823928833002,48.77807235717779],[36.919158935546875,48.79797363281256],[36.686691284179744,48.77430725097662],[36.73249053955084,48.69573593139643],[36.734184265136776,48.618278503418026],[36.69025802612333,48.619319915771484],[36.608570098877,48.59138488769537],[36.47330856323242,48.65375518798834],[36.377109527588004,48.55446243286133],[36.258083343506144,48.59881591796875],[36.279933929443416,48.65200042724609],[36.22837829589849,48.665119171142635],[36.152812957763786,48.708644866943416],[36.15796279907237,48.77420425415045],[36.13344573974621,48.798656463623104],[36.03888702392595,48.830627441406364],[36.0051002502442,48.96881484985362],[35.843410491943644,48.93629837036133],[35.824035644531534,48.91278076171881],[35.72139739990257,48.96263122558605],[35.59692001342779,48.95303344726568],[35.517875671386946,48.96045303344738],[35.45847702026373,48.997375488281364],[35.21788024902372,49.097221374511776],[35.211250305175895,49.13317489624029],[35.061527252197315,49.13572692871094],[35.01331710815458,49.22005844116222],[35.02555084228515,49.27954101562499],[35.062992095947436,49.314769744873104],[35.114315032959155,49.28411102294922],[35.23751831054693,49.276084899902344],[35.32842254638672,49.316390991210994],[35.347961425781534,49.34595489501959],[35.412582397460994,49.38674545288097],[35.39746475219755,49.42884826660156],[35.345718383789176,49.45359039306651],[35.36602783203131,49.495121002197266],[35.507095336914006,49.47494125366211],[35.509410858154354,49.510810852050895],[35.43861007690435,49.517910003662166],[35.431957244873274,49.553909301757926],[35.512111663818644,49.55266189575207],[35.48064041137724,49.61899185180669],[35.430088043213175,49.66763687133795],[35.28816223144548,49.68166732788086],[35.29092407226568,49.729469299316406],[35.24636077880854,49.730091094970646],[35.22494888305663,49.82604980468756],[35.17304611206072,49.85661697387695],[35.092845916748104,49.857646942138786],[34.99600219726568,49.88268661499018],[34.90898132324235,49.93136978149414],[34.893161773681925,49.97327041625988],[34.93167495727545,50.026550292968864],[34.98709106445341,50.06180191040039],[34.9620361328125,50.09781646728521],[34.96434402465832,50.145481109619254],[35.01067733764677,50.18085098266601],[35.09195709228521,50.19805908203119],[35.18393325805681,50.24514007568371],[35.263664245605746,50.22068405151367],[35.32135772705095,50.29210662841797],[35.422080993652344,50.3213729858399],[35.50201416015631,50.29674911499035],[35.539249420166186,50.32036590576172],[35.62119293212908,50.33718109130865],[35.658256530761946,50.360183715820256],[35.73010635376005,50.35943603515625],[35.809940338134766,50.40177917480469],[35.833274841308764,50.450107574463004],[35.936752319335994,50.44561004638683],[35.97690582275408,50.46102523803711],[36.0739059448245,50.46371078491211],[36.15499877929699,50.44929885864269],[36.18258285522455,50.41435623168951],[36.28067398071289,50.359390258789176],[36.26884460449247,50.342308044433594],[36.31538772583008,50.29401397705078],[36.384288787842024,50.29599761962896],[36.42852783203119,50.32491683959966],[36.49313354492216,50.32691955566411],[36.558074951172046,50.28678894042969],[36.59706115722679,50.23817443847656],[36.660217285156534,50.22873687744151],[36.711212158203296,50.276859283447315],[36.87816619873052,50.33929443359381],[36.925628662109546,50.34740829467779],[37.05329132080101,50.334320068359425],[37.1670379638673,50.349414825439396],[37.29360961914068,50.38535308837902],[37.33602523803716,50.42089080810547],[37.40948104858404,50.410987854003906],[37.49312973022478,50.42899322509776],[37.48173522949247,50.353893280029354],[37.57415008544922,50.305255889892635],[37.646842956543026,50.30525207519525],[37.62530136108393,50.22102355957036],[37.65234375,50.176918029785156],[37.7604217529298,50.09633636474615],[37.93384170532232,50.04768371582036],[37.947795867920206,50.01959991455078],[38.04784774780279,49.95610427856457],[38.034046173095646,49.922767639160206]]]},"properties":{"ID_0":240,"ISO":"UA-63","NAME_0":"Ukraine","ID_1":8,"NAME_1":"Kharkiv","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Charkow|Jarkov|Karkov|Khar'kov"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[32.54875183105497,46.069305419921925],[32.7248611450197,46.037361145019645],[32.79735946655302,46.03236007690429],[32.86875152587896,46.05958175659191],[32.88791656494135,46.04236221313482],[33.03541564941406,46.02597045898437],[33.01708221435564,46.00680541992199],[32.91652679443354,46.011806488037166],[32.72069549560547,46.037082672119084],[32.54875183105497,46.069305419921925]]],[[[34.50018692016607,46.04038238525402],[34.5625801086428,46.04688262939464],[34.61413955688505,46.032535552978516],[34.618587493896655,46.08187484741222],[34.558979034423885,46.11584472656256],[34.519184112548764,46.05566024780279],[34.42665481567394,46.10229492187506],[34.32836151123064,46.0278892517091],[34.21107482910173,46.02893829345714],[34.07029724121111,46.04892349243164],[34.056884765625284,46.01227188110363],[34.04221725463867,46.04610061645508],[33.990180969238224,46.05530166625982],[33.97277069091825,46.08840560913086],[33.883033752441406,46.13815307617193],[33.82028198242187,46.15596771240246],[33.74657440185575,46.14308166503906],[33.65636825561529,46.18651199340826],[33.629108428955135,46.162303924560604],[33.62374877929716,46.110332489013615],[33.58819580078131,46.15930557250988],[33.53958511352556,46.11930465698242],[33.52180480957037,46.082084655761776],[33.4212493896486,46.03041839599615],[33.30791854858404,46.12069320678711],[33.22791671752947,46.15402603149414],[33.18458175659208,46.15597152709961],[33.13486099243181,46.12458419799816],[33.030693054199446,46.15597152709961],[33.01402664184576,46.10985946655279],[32.934307098388956,46.105693817138786],[32.76597213745134,46.121807098388665],[32.67402648925804,46.099304199218864],[32.62208175659208,46.102359771728516],[32.53958511352556,46.06569290161127],[32.23180389404314,46.13013839721691],[32.236251831054744,46.184307098388786],[32.18708419799822,46.17930603027344],[32.119026184082315,46.206527709961044],[32.08514022827154,46.242637634277344],[31.990417480468807,46.25569534301757],[31.94069480896013,46.29152679443365],[31.875694274902283,46.268196105957024],[31.78986167907715,46.27375030517578],[31.766250610351733,46.3079185485841],[31.83791732788092,46.33486175537121],[31.923194885254077,46.335971832275334],[32.00652694702154,46.35902786254894],[32.05930709838884,46.39791488647472],[32.02402877807634,46.44625091552746],[31.95125007629406,46.439304351806754],[31.813472747802734,46.477638244628906],[31.747360229492358,46.48819351196289],[31.699583053588977,46.467918395996094],[31.63263893127447,46.49069595336914],[31.5493049621582,46.53874969482427],[31.665138244629073,46.53680419921881],[31.755138397216854,46.546806335449325],[31.872360229492415,46.51374816894537],[31.898195266723917,46.51847076416015],[32.00958251953119,46.48819351196289],[32.11986160278326,46.49874877929698],[32.197360992431584,46.48014068603521],[32.312362670898494,46.46513748168945],[32.28736114501953,46.52763748168957],[32.29013824462901,46.57736206054687],[32.241527557373274,46.59097290039068],[32.14014053344721,46.5576400756837],[32.09652709960965,46.615139007568416],[32.051528930664176,46.61486053466808],[32.001716613769815,46.64069366455078],[32.10111236572294,46.67074966430664],[32.11126327514671,46.71717834472656],[32.179878234863565,46.744907379150334],[32.231960296630916,46.784709930420036],[32.2920875549317,46.806915283203175],[32.359390258789006,46.78218078613292],[32.39472198486345,46.822467803955135],[32.48016357421892,46.82644653320307],[32.547878265381144,46.807212829589844],[32.557731628418246,46.842105865478565],[32.70328140258795,46.83230972290039],[32.728023529052905,46.808174133300774],[32.840015411376946,46.81069564819347],[32.96179580688505,46.83047866821295],[32.94680023193387,46.877853393554744],[32.9748916625976,46.9239501953125],[32.96855163574247,46.976955413818416],[33.04574584960943,46.957035064697266],[33.090923309326456,46.996772766113224],[32.988555908203175,47.040946960449276],[32.929172515869425,47.07789611816406],[32.930038452148715,47.101356506347656],[32.98389816284208,47.14680099487305],[33.07177352905279,47.167766571044865],[33.125556945800895,47.207347869873104],[33.17827606201172,47.21755218505865],[33.10255813598661,47.29625320434575],[33.13809204101568,47.31288909912115],[33.14108657836942,47.40108108520508],[33.12623977661127,47.48385620117199],[33.093521118164176,47.56114959716791],[33.20701217651373,47.54058837890624],[33.223590850830135,47.51068878173834],[33.28516387939481,47.514865875244254],[33.29292297363287,47.48516082763677],[33.34464645385759,47.46007156372075],[33.372203826904524,47.494663238525504],[33.44251632690447,47.49848937988286],[33.48744201660173,47.52667999267578],[33.497764587402344,47.56774139404302],[33.58587265014677,47.57701492309575],[33.591125488281534,47.48810195922857],[33.64358901977545,47.4865379333496],[33.651100158691406,47.456707000732536],[33.808971405029354,47.469799041748104],[33.923320770263615,47.49026107788097],[33.973041534423885,47.43530654907238],[34.00723266601568,47.42241287231445],[34.147533416748104,47.448284149170036],[34.24863433837908,47.39193725585948],[34.27037429809593,47.31370162963867],[34.30923080444336,47.23489761352533],[34.48339080810575,47.266426086425895],[34.53163528442383,47.205314636230526],[34.48827362060552,47.200347900390625],[34.516986846923885,47.09759902954101],[34.55767822265625,47.05455780029291],[34.57160186767578,46.99406051635742],[34.603427886963175,46.9451255798341],[34.68723678588884,46.901050567627],[34.75605010986334,46.89963531494152],[34.77814483642595,46.82668685913097],[34.82113265991228,46.825878143310604],[34.835613250732365,46.771148681640625],[34.78377914428711,46.766021728515625],[34.780609130859546,46.69931793212896],[34.67634963989252,46.67699050903332],[34.657527923583984,46.64079284667974],[34.699459075927905,46.61551284790045],[34.776737213134766,46.61413192749029],[34.78242492675787,46.54677963256836],[34.74663162231451,46.51049423217768],[34.78826522827177,46.47913742065435],[34.8745307922365,46.4966278076173],[34.92296981811517,46.42885589599615],[34.974544525146534,46.44103240966796],[35.07524871826183,46.41081619262701],[35.09714508056668,46.32690811157232],[35.088748931884936,46.28757095336914],[35.009029388427905,46.25541687011719],[34.895416259765796,46.238471984863274],[34.847915649414006,46.21430587768555],[34.80930709838884,46.157638549804744],[34.82902908325201,46.1234703063966],[34.839305877685604,46.05289459228521],[34.795230865478516,46.072448730468864],[34.69904327392584,46.09243774414074],[34.653778076172046,46.07901000976562],[34.66382980346685,46.01050567626953],[34.602302551269524,45.948871612548885],[34.52196502685564,45.93108367919933],[34.458526611328175,45.97988128662114],[34.46310424804693,46.02116394042963],[34.50018692016607,46.04038238525402]]]]},"properties":{"ID_0":240,"ISO":"UA-65","NAME_0":"Ukraine","ID_1":9,"NAME_1":"Kherson","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Cherson|Khersons'ka Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.197437286376893,50.566642761230526],[27.209735870361385,50.53729248046881],[27.307903289794922,50.49361801147461],[27.251758575439567,50.39575195312505],[27.32988929748541,50.36318588256835],[27.332168579101673,50.33941268920904],[27.40911865234375,50.31872558593756],[27.413034439086967,50.27713775634771],[27.48057174682623,50.2560768127442],[27.511301040649528,50.22753906250006],[27.592605590820312,50.26069259643566],[27.596895217895565,50.2131919860841],[27.686681747436637,50.151344299316406],[27.62352180480957,50.12491989135736],[27.627212524414176,50.083377838134766],[27.684650421142805,50.06787872314459],[27.615432739257756,50.00547790527343],[27.549833297729492,50.00871276855469],[27.572650909423828,49.962028503418026],[27.538688659668022,49.92490005493164],[27.550081253051758,49.90156555175787],[27.61606788635271,49.89240646362299],[27.652658462524528,49.79278182983404],[27.728277206421012,49.7780494689942],[27.824869155883903,49.734382629394474],[27.81855583190918,49.6984481811524],[27.763044357299805,49.69620895385742],[27.775758743286133,49.65510559082031],[27.82344436645525,49.63919067382824],[27.772428512573242,49.58364105224615],[27.79575920104986,49.525157928466854],[27.75162887573248,49.499610900878906],[27.79331779479992,49.441886901855526],[27.870355606079098,49.28459548950195],[27.869831085205078,49.171787261963004],[27.803962707519588,49.19297027587896],[27.752773284912166,49.143489837646534],[27.697929382324272,49.14130783081055],[27.659463882446346,49.16348266601574],[27.60460662841797,49.161251068115284],[27.571474075317383,49.11840057373052],[27.50658416748047,49.1275749206543],[27.493801116943473,49.06187820434576],[27.43003845214838,49.05922317504894],[27.39012145996122,48.99244689941406],[27.41987037658697,48.96410751342768],[27.38658905029297,48.92724609375],[27.419164657592773,48.863578796386776],[27.405448913574386,48.80985641479492],[27.417779922485405,48.76902008056652],[27.406255722045955,48.685844421386776],[27.374431610107536,48.63139343261719],[27.31411170959484,48.599334716796875],[27.27615737915067,48.62720870971691],[27.23247528076172,48.61349105834972],[27.227418899536186,48.566162109375],[27.15440750122093,48.586490631103516],[27.104028701782283,48.55498123168939],[27.005056381225586,48.573749542236385],[26.934822082519585,48.57596969604492],[26.90369033813488,48.545246124267514],[26.803565979003963,48.56860733032232],[26.71844482421875,48.52861022949219],[26.723920822143555,48.486755371093864],[26.651996612548828,48.48396301269531],[26.620014190673885,48.45283889770513],[26.555419921875053,48.46259307861328],[26.510892868041992,48.52648162841796],[26.437473297119197,48.53564071655279],[26.373043060302848,48.54512405395508],[26.33403587341303,48.56734848022472],[26.327968597412166,48.61445999145519],[26.238733291626087,48.676059722900504],[26.24568557739275,48.76509094238281],[26.217515945434627,48.84682846069336],[26.198017120361328,48.85786819458002],[26.19213294982916,48.98199844360363],[26.207441329956055,49.00634384155279],[26.180238723754883,49.08222961425792],[26.206895828247184,49.16637039184576],[26.19026374816906,49.23088073730468],[26.240779876708984,49.2686538696289],[26.217823028564396,49.30918502807617],[26.21343040466337,49.427661895752],[26.19892501831066,49.4745140075683],[26.140752792358455,49.50164031982433],[26.14718818664562,49.52567291259777],[26.20782089233404,49.558029174804744],[26.193998336792106,49.5989990234375],[26.254074096679744,49.637287139892635],[26.248132705688477,49.690509796142635],[26.20883750915533,49.71254730224614],[26.241540908813533,49.749660491943416],[26.16606903076172,49.847393035888615],[26.191640853881893,49.86637878417963],[26.14958763122553,49.91208648681646],[26.142301559448356,49.97721862792969],[26.204744338989315,49.997882843017514],[26.193593978882117,50.09860610961914],[26.248901367187557,50.10109710693365],[26.22198295593267,50.177337646484375],[26.285934448242244,50.18618011474621],[26.380435943603572,50.255985260009766],[26.49134826660162,50.26093673706055],[26.628789901733622,50.368461608886776],[26.647951126098633,50.36335754394536],[26.76735496521007,50.47015762329101],[26.78223991394054,50.50664520263683],[26.89081192016624,50.54134368896495],[26.9950790405274,50.528030395507756],[27.0200214385988,50.558994293213004],[27.12903785705572,50.59359359741211],[27.141363143921012,50.56425094604497],[27.197437286376893,50.566642761230526]]]},"properties":{"ID_0":240,"ISO":"UA-68","NAME_0":"Ukraine","ID_1":10,"NAME_1":"Khmel'nyts'kyy","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Khmelnitsky|Khmelnytskyi|Chmelnizkij|Hmelnicki|Kamenets-Podol'skaya Oblast'|Khmel'nyts'ka Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.46630477905273,50.587009429931754],[30.505210876465128,50.54578399658203],[30.561292648315373,50.53395462036138],[30.66333198547369,50.53384017944347],[30.708208084106726,50.569053649902344],[30.801263809204155,50.56889343261719],[30.803293228149414,50.521846771240234],[30.748510360717997,50.49843597412121],[30.760301589965934,50.439609527588004],[30.807470321655558,50.42187118530284],[30.808670043945597,50.39245986938488],[30.69955825805681,50.33974838256836],[30.65276336669922,50.351581573486385],[30.617002487182784,50.322223663330135],[30.675188064575252,50.25745391845709],[30.63043022155767,50.222229003906364],[30.55509757995628,50.257595062255916],[30.54306983947748,50.322292327880966],[30.51536941528326,50.322307586670036],[30.343509674072322,50.4577255249024],[30.28989982604997,50.42828369140619],[30.243902206420838,50.434139251708984],[30.27663230896019,50.51664733886719],[30.33826065063488,50.569595336914176],[30.392265319824446,50.59302902221679],[30.46630477905273,50.587009429931754]]]},"properties":{"ID_0":240,"ISO":"UA-30","NAME_0":"Ukraine","ID_1":11,"NAME_1":"Kiev City","TYPE_1":"Independent City","ENGTYPE_1":"Independent City","NL_NAME_1":null,"VARNAME_1":"Kyiv"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.535083770752237,51.269706726074276],[30.509107589721733,51.24024581909185],[30.519046783447553,51.198616027832145],[30.474897384643725,51.17552185058605],[30.513940811157227,51.11018753051763],[30.489318847656307,51.05150985717768],[30.50899505615257,51.02790451049805],[30.58318519592285,51.02769088745117],[30.640617370605526,50.99821472167968],[30.642480850219897,50.96296310424816],[30.682821273803878,50.90413665771496],[30.768627166748043,50.86872482299815],[30.74406814575218,50.79824447631836],[30.848503112793196,50.76278305053711],[31.05442619323736,50.76210403442394],[31.12895584106451,50.773506164550724],[31.139301300049112,50.74995040893549],[31.22624969482439,50.68486022949219],[31.210729598999134,50.59677124023443],[31.26901245117187,50.53180313110351],[31.38113212585449,50.53120803833008],[31.46640586853033,50.48960876464849],[31.540285110473633,50.52450561523443],[31.63425636291515,50.50636291503912],[31.708114624023494,50.55301284790045],[31.80188941955595,50.54661941528332],[31.8010196685791,50.59367370605469],[31.847497940063587,50.61694717407232],[31.960680007934567,50.575153350830135],[31.99873542785673,50.5278892517091],[32.082950592041186,50.52741241455089],[32.08327102661161,50.492122650146484],[32.0274353027346,50.46891403198248],[32.05611038208013,50.39818191528331],[32.112380981445426,50.35080718994152],[32.1776771545413,50.32690048217768],[32.159324645996264,50.2799644470216],[32.12226104736356,50.262542724609375],[32.14112854003912,50.2095108032226],[32.085624694824276,50.186321258545036],[32.02995300292997,50.19252777099604],[31.993612289428764,50.104553222656364],[31.938373565674,50.075477600097656],[31.929729461670203,50.01086044311518],[31.948686599731502,49.951961517333984],[31.838191986084098,49.940837860107536],[31.747289657592944,49.84141159057622],[31.646163940429744,49.84196853637701],[31.581546783447262,49.85995864868175],[31.499031066894702,49.84866333007812],[31.461730957031303,49.87826156616222],[31.451616287231502,49.92533874511718],[31.46909523010248,49.972270965576286],[31.43187713623064,49.990108489990234],[31.321590423584038,49.97891616821295],[31.397157669067663,49.89035797119152],[31.323888778686694,49.87896347045904],[31.223794937133903,49.83825683593756],[31.215892791748047,49.78538131713878],[31.23546600341803,49.73239517211914],[31.227516174316687,49.67952346801769],[31.156412124633846,49.59164810180664],[31.175483703613395,49.556312561035206],[31.13013076782232,49.544734954833984],[31.095333099365405,49.47434616088867],[31.03214454650896,49.4510612487793],[31.032878875732706,49.421680450439396],[30.95128059387224,49.41018295288097],[30.943578720092773,49.357337951660156],[30.862277984619137,49.33993530273449],[30.78943061828619,49.34597778320318],[30.72637367248529,49.32847976684575],[30.679853439331108,49.363796234130916],[30.63441658020031,49.36386108398443],[30.562925338745345,49.328693389892635],[30.480152130127237,49.35808944702154],[30.35655021667503,49.26395797729492],[30.20206642150896,49.280849456787166],[30.18191528320341,49.33356094360345],[30.111040115356563,49.29779052734369],[30.09181404113787,49.32699584960937],[29.992483139038367,49.33196258544922],[29.96625328063965,49.314067840576286],[29.97719192504894,49.267189025878956],[29.951723098754936,49.231681823730526],[29.774694442748963,49.1883277893067],[29.74568748474132,49.24075317382824],[29.656057357788026,49.25684356689453],[29.617633819580362,49.32075500488287],[29.554855346679854,49.3312606811524],[29.516794204711914,49.38338851928711],[29.611511230468917,49.45588302612304],[29.575347900390852,49.46693801879883],[29.562364578247067,49.554946899414055],[29.51523590087896,49.6069717407226],[29.55854415893549,49.637287139892635],[29.512737274170203,49.65991973876959],[29.51918220520048,49.71306228637706],[29.47439384460472,49.712135314941406],[29.47995758056646,49.782966613769645],[29.531251907348803,49.83704757690441],[29.558980941772404,49.81990051269531],[29.637956619262923,49.856719970703175],[29.697420120239258,49.928451538085994],[29.74953269958513,49.96464920043956],[29.702947616577433,50.005165100097706],[29.717708587646538,50.07614898681651],[29.68048286438011,50.10505294799816],[29.67643737792991,50.19349670410156],[29.71052360534691,50.235336303710994],[29.690628051757756,50.27636718750006],[29.715202331543253,50.32987976074219],[29.669845581054627,50.335128784179744],[29.65885925292974,50.376335144043026],[29.61278915405279,50.39337158203119],[29.592920303344783,50.42855453491222],[29.51876831054699,50.45695495605469],[29.52475166320818,50.516265869140625],[29.487649917602766,50.527503967285156],[29.519617080688644,50.61101150512701],[29.497741699219034,50.67592620849615],[29.596563339233565,50.70709991455089],[29.6030731201173,50.75470352172863],[29.50939941406278,50.79495239257818],[29.531723022461218,50.88459396362315],[29.47286033630377,50.94931030273449],[29.489414215088114,50.979434967041016],[29.485841751098803,51.03921890258795],[29.520395278930835,51.075645446777344],[29.415054321289233,51.1463508605957],[29.311130523681925,51.192958831787166],[29.289331436157507,51.24718856811535],[29.304931640625284,51.29027938842785],[29.35999679565424,51.2912635803222],[29.402633666992354,51.34106445312505],[29.400138854980412,51.37801742553722],[29.36211013793962,51.396415710449325],[29.41283226013212,51.4303436279298],[29.508380889892525,51.41236114501958],[29.52274513244652,51.49296951293951],[29.59288597106962,51.47500991821295],[29.72085762023943,51.52903747558593],[29.74454116821306,51.47873687744146],[29.78527450561552,51.44429016113292],[29.8860454559329,51.454864501953125],[29.93506431579618,51.48984909057617],[29.993101119995288,51.48344039916997],[30.019281387329382,51.517246246338004],[30.088544845581115,51.507198333740234],[30.201828002929854,51.50650024414057],[30.250274658203296,51.493740081787166],[30.348478317260742,51.432334899902344],[30.36124229431169,51.378646850585994],[30.328775405883846,51.3696060180664],[30.419364929199272,51.31264495849615],[30.464635848999023,51.31882476806635],[30.535083770752237,51.269706726074276]],[[30.46630477905273,50.587009429931754],[30.392265319824446,50.59302902221679],[30.33826065063488,50.569595336914176],[30.27663230896019,50.51664733886719],[30.243902206420838,50.434139251708984],[30.28989982604997,50.42828369140619],[30.343509674072322,50.4577255249024],[30.51536941528326,50.322307586670036],[30.54306983947748,50.322292327880966],[30.55509757995628,50.257595062255916],[30.63043022155767,50.222229003906364],[30.675188064575252,50.25745391845709],[30.617002487182784,50.322223663330135],[30.65276336669922,50.351581573486385],[30.69955825805681,50.33974838256836],[30.808670043945597,50.39245986938488],[30.807470321655558,50.42187118530284],[30.760301589965934,50.439609527588004],[30.748510360717997,50.49843597412121],[30.803293228149414,50.521846771240234],[30.801263809204155,50.56889343261719],[30.708208084106726,50.569053649902344],[30.66333198547369,50.53384017944347],[30.561292648315373,50.53395462036138],[30.505210876465128,50.54578399658203],[30.46630477905273,50.587009429931754]]]},"properties":{"ID_0":240,"ISO":"UA-32","NAME_0":"Ukraine","ID_1":12,"NAME_1":"Kiev","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Kiev Oblast|Kiew|Kijew|Kiiv|Kijev|Kiyev|Kyiv|Kyjiv|Kyyiv|Kyyivs'ka Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.93502426147461,48.87374496459961],[33.91490173339844,48.814739227295036],[33.85862731933594,48.7445068359375],[33.823696136474666,48.76884078979492],[33.698677062988565,48.782875061035156],[33.64411926269537,48.76011657714838],[33.6252555847168,48.73083114624018],[33.6689071655274,48.69451904296874],[33.72260284423845,48.69355773925781],[33.76630783081083,48.663124084472706],[33.799739837646655,48.59728622436535],[33.70016479492193,48.557659149169915],[33.66504669189459,48.57609558105469],[33.61944198608427,48.54733276367193],[33.51154708862322,48.52567291259776],[33.51598358154325,48.37765884399414],[33.496185302734546,48.3129768371582],[33.52231216430687,48.294692993164176],[33.52970886230497,48.247200012207145],[33.56523132324236,48.24644470214855],[33.58163070678734,48.204650878906364],[33.51839065551752,48.17052459716808],[33.40197372436529,48.13759994506847],[33.330654144287394,48.1273307800294],[33.33866882324236,48.09763336181652],[33.1776504516601,48.04796600341797],[33.105724334716854,48.00820159912121],[33.06144332885742,48.00911331176758],[33.03403472900408,47.974338531494254],[33.017295837402344,48.015892028808594],[32.91946411132818,48.00016021728521],[32.86548614501959,47.9600181579591],[32.82147598266618,47.97259902954107],[32.72403717041044,47.96845245361334],[32.67008209228527,47.91651916503906],[32.70438766479492,47.85721969604503],[32.659458160400675,47.811054229736435],[32.58858108520525,47.788791656494084],[32.53583145141624,47.79550552368164],[32.43878173828142,47.77939224243175],[32.35968780517601,47.78635406494152],[32.31599426269537,47.81622314453125],[32.236782073974666,47.811344146728516],[32.21879577636747,47.75298309326183],[32.12222290039085,47.74818801879883],[32.10481262207031,47.783508300781364],[32.04340362548828,47.807537078857415],[31.964370727539176,47.802371978759766],[31.946825027466105,47.78493881225597],[31.850334167480636,47.77977371215832],[31.858884811401538,47.85591125488287],[31.885162353515682,47.89675903320318],[31.858610153198523,47.94971466064453],[31.761621475220014,47.956211090088004],[31.752449035644815,48.02077865600586],[31.805408477783143,48.02630996704101],[31.78749656677274,48.07921218872076],[31.725593566894702,48.079597473144524],[31.654518127441467,48.121086120605526],[31.610525131225526,48.092018127441406],[31.566295623779354,48.092277526855526],[31.486330032348686,48.122074127197266],[31.353786468506026,48.10523223876959],[31.33580017089849,48.12292861938488],[31.265230178833175,48.10572052001953],[31.25534248352051,48.164440155029354],[31.201910018921183,48.17646789550775],[31.165626525879077,48.21773147583019],[31.041090011596907,48.22427368164068],[31.015317916870174,48.18334197998046],[30.9358501434329,48.16029739379894],[30.83799743652349,48.160823822021534],[30.73023605346674,48.196586608886776],[30.686395645141655,48.167495727539006],[30.62423324584961,48.156097412109375],[30.552299499511776,48.17403793334972],[30.400552749634073,48.168647766113224],[30.37346267700201,48.18036270141613],[30.320903778076282,48.145236968994254],[30.063100814819503,48.15607070922857],[29.95393753051752,48.25450134277344],[29.911380767822546,48.21339797973633],[29.866865158081225,48.23045730590826],[29.787736892700476,48.235431671142635],[29.79258728027366,48.34023666381836],[29.8081188201906,48.392887115478516],[29.893878936767745,48.45222091674805],[29.981405258178995,48.47642135620117],[29.980772018432674,48.493942260742244],[30.123943328857422,48.465835571289055],[30.176088333129993,48.50710296630865],[30.239219665527514,48.489910125732536],[30.2653064727786,48.5134162902832],[30.38119888305681,48.53123855590826],[30.415475845336854,48.58392715454113],[30.586374282836854,48.572029113769645],[30.585378646850586,48.60717391967779],[30.548803329467997,48.63066101074219],[30.61063575744646,48.665721893310604],[30.626924514770565,48.7243003845216],[30.679840087890625,48.75938034057622],[30.832527160644812,48.75901794433594],[30.89578247070318,48.741222381591854],[30.949075698852596,48.76449584960932],[31.056867599487305,48.758193969726676],[31.120323181152628,48.72269439697277],[31.200349807739197,48.75750732421875],[31.26303863525402,48.7630386352539],[31.33510971069336,48.74501800537121],[31.353410720825252,48.72143173217785],[31.50523948669428,48.779277801513615],[31.5856876373291,48.81992340087896],[31.575876235962202,48.896324157714844],[31.665918350219837,48.90167999267578],[31.719800949096793,48.924861907958984],[31.836971282959038,48.93002319335949],[31.945241928100696,48.8940162658692],[32.026294708252124,48.89339065551758],[32.05330276489286,48.910804748535156],[32.134361267090014,48.88661193847656],[32.17946624755865,48.92736053466808],[32.161472320556925,48.95103454589838],[32.233745574951456,48.99743270874035],[32.26097488403326,49.044235229492244],[32.297206878662166,49.06743240356457],[32.36950302124029,49.06087112426758],[32.44146728515625,49.00720214843756],[32.46869277954124,49.02457809448242],[32.54049301147455,48.97084426879883],[32.54902267456083,48.91777420043945],[32.61239242553722,48.9406089782716],[32.70254135131859,48.933662414550895],[32.856285095215014,48.9553260803222],[32.857730865478686,49.04962158203136],[32.912380218506144,49.07252502441417],[32.912761688232706,49.09610748291021],[32.8314590454101,49.10888671875006],[32.77760314941412,49.14488220214844],[32.878444671631144,49.220344543457145],[32.93270111084013,49.20791625976574],[33.014457702636776,49.212833404541016],[33.01392745971697,49.18333816528325],[33.16741943359381,49.151870727539176],[33.19382476806668,49.11608505249035],[33.20170974731451,49.062816619873104],[33.264854431152514,49.05602645874035],[33.248260498047046,49.12125396728521],[33.284877777099894,49.13848114013683],[33.33802795410185,49.090454101562614],[33.310188293457145,49.061294555664055],[33.36336898803727,49.01913452148431],[33.33554840087919,48.98998641967784],[33.352108001709155,48.930614471435604],[33.43258285522478,48.90570449829112],[33.469425201416016,48.934700012207024],[33.50446319580084,48.898628234863274],[33.56764221191435,48.90352630615246],[33.639240264892805,48.8905143737793],[33.694900512695426,48.94292068481457],[33.765853881836044,48.912120819091854],[33.828723907470646,48.91108322143549],[33.93502426147461,48.87374496459961]]]},"properties":{"ID_0":240,"ISO":"UA-35","NAME_0":"Ukraine","ID_1":13,"NAME_1":"Kirovohrad","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Kirovograd|Kirovogradskaya Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[25.11369132995617,50.30974960327148],[25.209199905395508,50.284793853759766],[25.169778823852596,50.22917175292969],[25.20239830017084,50.18912124633795],[25.201953887939567,50.11767578125006],[25.335626602172795,50.005302429199276],[25.403366088867415,49.97883605957037],[25.385288238525387,49.90074157714844],[25.344669342041012,49.85723876953125],[25.266178131103572,49.82376861572271],[25.20234107971191,49.820629119873104],[25.163627624511776,49.83650207519537],[25.064998626709098,49.81959915161133],[25.072673797607422,49.7606658935548],[25.051620483398434,49.71212768554687],[24.994888305664176,49.72693252563482],[24.937538146972656,49.61127090454096],[24.865409851074332,49.60735321044916],[24.761655807495117,49.57202911376964],[24.707088470459208,49.574897766113395],[24.709098815918026,49.49817657470709],[24.628137588501257,49.499610900878906],[24.560869216918885,49.5313339233399],[24.52636528015142,49.52350616455084],[24.477760314941463,49.55028915405273],[24.438755035400447,49.512584686279354],[24.38649177551281,49.50359344482416],[24.4040851593017,49.44550323486334],[24.361522674560604,49.431102752685604],[24.40570640563959,49.374641418457145],[24.378133773803768,49.31974411010747],[24.33820152282715,49.2876930236817],[24.363836288452205,49.23608398437506],[24.43822479248047,49.217037200927734],[24.379739761352766,49.18979644775402],[24.283136367797965,49.177700042724716],[24.23346900939947,49.15073013305669],[24.127033233642575,49.1434211730957],[24.05429077148437,49.15007400512689],[24.023361206054688,49.11824035644537],[23.965644836425838,49.14355850219738],[23.908252716064453,49.10962677001959],[23.791460037231445,49.1123504638673],[23.744485855102653,49.126380920410156],[23.669857025146484,49.090900421142685],[23.674638748169002,49.061714172363274],[23.59451293945324,49.00811767578125],[23.54796409606928,48.91582107543957],[23.560642242431925,48.89317321777349],[23.545328140258846,48.82689666748047],[23.561981201171875,48.78090667724604],[23.544797897339095,48.7261962890625],[23.475126266479492,48.72040939331055],[23.375286102295036,48.73595428466797],[23.3615398406983,48.764484405517635],[23.291826248169002,48.7588996887207],[23.184305191040153,48.76828384399414],[23.179233551025334,48.79752731323248],[23.12454223632824,48.858543395996094],[22.978166580200195,48.842002868652344],[22.96252822875988,48.88234710693371],[22.898220062256144,48.91359710693371],[22.884773254394812,48.94828033447271],[22.920421600341797,48.98009490966797],[22.897964477539176,49.01430511474621],[22.855985641479435,49.11095046997082],[22.7972030639649,49.157711029052734],[22.755945205688416,49.1543083190918],[22.747234344482422,49.24031448364258],[22.80492019653326,49.28842163085949],[22.807594299316577,49.33349227905279],[22.722591400146595,49.40798568725585],[22.697177886962947,49.44475936889642],[22.70001792907715,49.49433135986334],[22.667398452758903,49.526767730712834],[22.67659378051769,49.56715011596691],[22.763273239135856,49.63257598876953],[22.79437255859386,49.690410614013786],[22.894729614257926,49.74633789062506],[22.910812377929684,49.78199386596679],[23.01267433166498,49.855819702148494],[23.137826919555664,49.96044158935547],[23.220201492309737,50.043682098388665],[23.2777996063233,50.06897354125987],[23.293975830078125,50.10005569458013],[23.410123825073242,50.15952301025402],[23.52131462097168,50.241603851318466],[23.601013183593864,50.27500915527349],[23.60977554321289,50.297271728515625],[23.697729110717773,50.343864440918026],[23.71502113342285,50.383872985839844],[23.809520721435604,50.421123504638615],[23.942411422729435,50.41172790527343],[24.04377365112333,50.444004058838004],[24.06803131103538,50.479183197021534],[24.102453231811523,50.62680435180664],[24.08992958068859,50.64473724365246],[24.14743804931669,50.66119003295904],[24.22467994689947,50.624698638916016],[24.236902236938533,50.60185241699212],[24.31204223632841,50.589714050293026],[24.336330413818416,50.615451812744254],[24.420810699462947,50.603572845459034],[24.40557861328125,50.57855606079107],[24.455068588256946,50.55205154418951],[24.508424758911303,50.567584991455185],[24.552591323852596,50.510623931884766],[24.589962005615234,50.50701522827148],[24.589906692504883,50.43532562255871],[24.715709686279354,50.389255523681754],[24.71109008789074,50.35319900512707],[24.785863876342773,50.34562683105474],[24.829456329345817,50.366001129150334],[24.931875228881893,50.359756469726676],[24.955739974975696,50.39089202880854],[25.04793357849121,50.318256378173885],[25.11369132995617,50.30974960327148]]]},"properties":{"ID_0":240,"ISO":"UA-46","NAME_0":"Ukraine","ID_1":14,"NAME_1":"L'viv","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Lemberg|Llvov|L'vov|Lwow|L'vivs'ka Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.060066223144815,47.86254119873047],[39.07302093505888,47.94686508178722],[39.0407142639163,47.9600181579591],[39.039722442627,48.007263183593864],[38.821304321289006,48.01867294311523],[38.79998397827177,48.120742797851676],[38.652290344238395,48.14653778076172],[38.58506011962896,48.1739120483399],[38.58978271484392,48.20933151245128],[38.54523086547868,48.27121734619152],[38.404293060302905,48.27282333374035],[38.411113739013786,48.326011657714844],[38.47641754150418,48.35227584838867],[38.41868591308611,48.38510894775402],[38.41442108154325,48.42103576660156],[38.31008911132841,48.43840408325207],[38.26962661743181,48.470245361328125],[38.291011810302734,48.49890518188471],[38.221626281738224,48.65724182128912],[38.28744125366234,48.68362808227545],[38.294868469238224,48.74279403686535],[38.245258331298885,48.77513885498058],[38.27786254882841,48.821109771728516],[38.20962905883812,48.84845352172857],[38.2125244140625,48.94366455078125],[38.00749206542968,48.95398712158209],[38.08676910400402,49.015609741210994],[38.05686569213873,49.064807891845646],[38.08274078369169,49.129154205322266],[37.959014892578296,49.14716339111328],[37.90751647949236,49.167545318603565],[37.939350128174055,49.207782745361385],[37.8734397888183,49.25863647460948],[37.95837020874023,49.290454864501896],[37.961978912353686,49.32014846801769],[37.90278625488281,49.35277557373047],[37.894882202148544,49.436759948730526],[37.85425186157232,49.47439575195324],[37.88087081909191,49.54495620727539],[37.927326202392635,49.55492019653326],[37.95479583740229,49.63158035278326],[38.03192901611334,49.66997528076171],[38.03017044067411,49.73011016845709],[37.96036529541033,49.75129318237305],[37.982707977295206,49.786449432373104],[38.02692031860357,49.77840042114257],[38.04908370971708,49.81339645385753],[38.01675796508795,49.84527587890631],[38.074523925781534,49.88388824462902],[38.034046173095646,49.922767639160206],[38.08345794677757,49.951847076416065],[38.18107986450207,49.959136962890625],[38.19978713989252,50.0759391784668],[38.243923187255916,50.06501007080084],[38.33926010131852,50.08589935302746],[38.37343597412121,50.004013061523494],[38.424236297607706,49.9867324829101],[38.477542877197436,49.99921417236334],[38.5039901733399,49.96771621704113],[38.611801147460994,49.97761154174816],[38.69832229614286,49.955017089843864],[38.74046707153349,49.91405487060541],[38.84964752197271,49.87072753906261],[38.921077728271534,49.868854522705135],[38.93712234497099,49.81128311157232],[39.074851989746094,49.82051849365239],[39.171989440918026,49.879978179931754],[39.22240447998058,49.84978485107416],[39.26540374755865,49.76936340332037],[39.37724304199247,49.73956680297857],[39.452754974365405,49.7654762268067],[39.603275299072266,49.74347686767583],[39.59728622436535,49.707756042480526],[39.65687942504883,49.626773834228516],[39.719581604004134,49.616535186767635],[39.794551849365405,49.56964111328125],[39.91308593750017,49.56077194213867],[39.956905364990234,49.598426818847656],[40.06097412109381,49.608020782470646],[40.162017822265796,49.596160888671875],[40.20854568481451,49.56168746948242],[40.217403411865405,49.50698471069335],[40.1632843017581,49.45814895629883],[40.16217041015619,49.39949417114269],[40.2003250122072,49.27058029174816],[40.07600784301786,49.188034057617244],[40.03341674804681,49.18098831176758],[39.961120605468864,49.120456695556754],[39.93523406982439,49.06344223022472],[39.81470870971708,49.070476531982536],[39.74531555175786,49.04483795166027],[39.669868469238395,49.0479850769044],[39.70275497436552,49.00642395019537],[39.7483825683596,48.99270248413097],[39.829807281494084,48.888568878173764],[39.907817840576115,48.91241455078131],[39.99873352050798,48.87696075439459],[40.030433654785156,48.90999221801758],[40.078880310058594,48.91299819946289],[40.075561523437614,48.85575103759771],[39.99103927612304,48.80121231079096],[39.79698562622082,48.850021362304744],[39.780723571777514,48.79289627075201],[39.74145126342802,48.778667449951286],[39.708370208740234,48.65987777709955],[39.65682220459007,48.61847305297863],[39.68866729736334,48.59093093872076],[39.78369903564481,48.59314727783209],[39.85005187988287,48.57080078125006],[39.86975479125982,48.51975250244152],[39.851890563964844,48.47211074829107],[39.940765380859546,48.386775970458984],[39.93801498413086,48.36014938354498],[39.850292205810604,48.32209396362298],[39.916160583496264,48.30021286010742],[39.986366271972656,48.315490722656364],[40.014892578125284,48.266578674316456],[39.996429443359546,48.22307205200207],[39.94241714477545,48.217144012451286],[39.903888702392635,48.130447387695426],[39.81848526000982,48.00790023803722],[39.84791946411144,47.99254608154308],[39.81603622436552,47.945613861083984],[39.81665039062506,47.883056640625114],[39.72630310058622,47.829658508300895],[39.630027770996264,47.84035110473632],[39.52960205078148,47.8291511535645],[39.45601272583025,47.86181640625],[39.406459808349666,47.845550537109375],[39.379436492920206,47.87584686279308],[39.3161048889163,47.86280059814459],[39.225936889648494,47.86604690551752],[39.126213073730526,47.83968353271484],[39.060066223144815,47.86254119873047]]]},"properties":{"ID_0":240,"ISO":"UA-09","NAME_0":"Ukraine","ID_1":15,"NAME_1":"Luhans'k","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Luhansk|Lugansk|Luhans'ka Oblast'|Voroshilovgrad"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.03403472900408,47.974338531494254],[33.023490905762,47.90391159057622],[33.094032287597706,47.89653396606457],[33.0652618408206,47.80885314941412],[33.08195495605469,47.773178100585994],[33.071712493896655,47.72045516967785],[33.0101013183596,47.72182846069347],[32.9742965698245,47.6990966796875],[32.990818023681584,47.65759277343756],[32.98924255371111,47.59886932373058],[33.094047546387,47.578781127929744],[33.093521118164176,47.56114959716791],[33.12623977661127,47.48385620117199],[33.14108657836942,47.40108108520508],[33.13809204101568,47.31288909912115],[33.10255813598661,47.29625320434575],[33.17827606201172,47.21755218505865],[33.125556945800895,47.207347869873104],[33.07177352905279,47.167766571044865],[32.98389816284208,47.14680099487305],[32.930038452148715,47.101356506347656],[32.929172515869425,47.07789611816406],[32.988555908203175,47.040946960449276],[33.090923309326456,46.996772766113224],[33.04574584960943,46.957035064697266],[32.96855163574247,46.976955413818416],[32.9748916625976,46.9239501953125],[32.94680023193387,46.877853393554744],[32.96179580688505,46.83047866821295],[32.840015411376946,46.81069564819347],[32.728023529052905,46.808174133300774],[32.70328140258795,46.83230972290039],[32.557731628418246,46.842105865478565],[32.547878265381144,46.807212829589844],[32.48016357421892,46.82644653320307],[32.39472198486345,46.822467803955135],[32.359390258789006,46.78218078613292],[32.2920875549317,46.806915283203175],[32.231960296630916,46.784709930420036],[32.179878234863565,46.744907379150334],[32.11126327514671,46.71717834472656],[32.10111236572294,46.67074966430664],[32.001716613769815,46.64069366455078],[31.969305038452315,46.68069458007824],[31.97680473327642,46.7098617553712],[31.93902778625517,46.75069427490246],[31.96847152709972,46.86875152587902],[31.912639617920092,46.840694427490234],[31.872917175293022,46.76625061035162],[31.918193817138672,46.72541809082031],[31.88930511474615,46.63874816894542],[31.797916412353796,46.61041641235363],[31.654306411743335,46.64847183227545],[31.604860305786413,46.64541625976574],[31.5493049621582,46.59986114501953],[31.480972290039286,46.626525878906364],[31.373472213745284,46.623748779296875],[31.35236167907721,46.60124969482422],[31.20569229126005,46.6220817565918],[31.213542938232532,46.70423889160156],[31.198089599609432,46.826519012451286],[31.15362548828125,46.843765258789176],[31.055046081543026,46.919231414794865],[31.04524040222168,46.96606445312494],[31.142465591430888,46.977218627929744],[31.283805847168253,46.981346130371094],[31.2737522125247,47.02218246459972],[31.325895309448523,47.021915435791016],[31.32366752624529,47.08617401123058],[31.28632164001465,47.16816711425787],[31.156024932861385,47.15130996704113],[31.161434173584272,47.26234436035162],[31.021297454833928,47.239940643310604],[30.99355125427246,47.28685379028326],[30.92257499694841,47.28165817260742],[30.86811256408708,47.32876586914068],[30.91202163696306,47.35179519653332],[30.875602722168026,47.387138366699276],[30.89270401001005,47.41619873046869],[30.856397628784347,47.4457244873048],[30.8629741668704,47.53923797607422],[30.809028625488338,47.56304550170904],[30.744457244873274,47.651321411132926],[30.7098331451416,47.6105728149414],[30.638561248779354,47.61092376708996],[30.64654731750494,47.64605712890625],[30.451236724853516,47.62865829467779],[30.38844871521024,47.6521377563476],[30.35859870910673,47.75794982910167],[30.419618606567667,47.79910659790039],[30.382974624633842,47.83436203002941],[30.303152084350643,47.8284797668457],[30.290695190429858,47.94600296020508],[30.245470046997355,47.975330352783146],[30.235462188720643,48.016353607177734],[30.27764129638678,48.09835815429693],[30.33092117309576,48.10429763793945],[30.320903778076282,48.145236968994254],[30.37346267700201,48.18036270141613],[30.400552749634073,48.168647766113224],[30.552299499511776,48.17403793334972],[30.62423324584961,48.156097412109375],[30.686395645141655,48.167495727539006],[30.73023605346674,48.196586608886776],[30.83799743652349,48.160823822021534],[30.9358501434329,48.16029739379894],[31.015317916870174,48.18334197998046],[31.041090011596907,48.22427368164068],[31.165626525879077,48.21773147583019],[31.201910018921183,48.17646789550775],[31.25534248352051,48.164440155029354],[31.265230178833175,48.10572052001953],[31.33580017089849,48.12292861938488],[31.353786468506026,48.10523223876959],[31.486330032348686,48.122074127197266],[31.566295623779354,48.092277526855526],[31.610525131225526,48.092018127441406],[31.654518127441467,48.121086120605526],[31.725593566894702,48.079597473144524],[31.78749656677274,48.07921218872076],[31.805408477783143,48.02630996704101],[31.752449035644815,48.02077865600586],[31.761621475220014,47.956211090088004],[31.858610153198523,47.94971466064453],[31.885162353515682,47.89675903320318],[31.858884811401538,47.85591125488287],[31.850334167480636,47.77977371215832],[31.946825027466105,47.78493881225597],[31.964370727539176,47.802371978759766],[32.04340362548828,47.807537078857415],[32.10481262207031,47.783508300781364],[32.12222290039085,47.74818801879883],[32.21879577636747,47.75298309326183],[32.236782073974666,47.811344146728516],[32.31599426269537,47.81622314453125],[32.35968780517601,47.78635406494152],[32.43878173828142,47.77939224243175],[32.53583145141624,47.79550552368164],[32.58858108520525,47.788791656494084],[32.659458160400675,47.811054229736435],[32.70438766479492,47.85721969604503],[32.67008209228527,47.91651916503906],[32.72403717041044,47.96845245361334],[32.82147598266618,47.97259902954107],[32.86548614501959,47.9600181579591],[32.91946411132818,48.00016021728521],[33.017295837402344,48.015892028808594],[33.03403472900408,47.974338531494254]]]},"properties":{"ID_0":240,"ISO":"UA-48","NAME_0":"Ukraine","ID_1":16,"NAME_1":"Mykolayiv","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Mykolaiv|Nikolajew|Nikolayev"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.320903778076282,48.145236968994254],[30.33092117309576,48.10429763793945],[30.27764129638678,48.09835815429693],[30.235462188720643,48.016353607177734],[30.245470046997355,47.975330352783146],[30.290695190429858,47.94600296020508],[30.303152084350643,47.8284797668457],[30.382974624633842,47.83436203002941],[30.419618606567667,47.79910659790039],[30.35859870910673,47.75794982910167],[30.38844871521024,47.6521377563476],[30.451236724853516,47.62865829467779],[30.64654731750494,47.64605712890625],[30.638561248779354,47.61092376708996],[30.7098331451416,47.6105728149414],[30.744457244873274,47.651321411132926],[30.809028625488338,47.56304550170904],[30.8629741668704,47.53923797607422],[30.856397628784347,47.4457244873048],[30.89270401001005,47.41619873046869],[30.875602722168026,47.387138366699276],[30.91202163696306,47.35179519653332],[30.86811256408708,47.32876586914068],[30.92257499694841,47.28165817260742],[30.99355125427246,47.28685379028326],[31.021297454833928,47.239940643310604],[31.161434173584272,47.26234436035162],[31.156024932861385,47.15130996704113],[31.28632164001465,47.16816711425787],[31.32366752624529,47.08617401123058],[31.325895309448523,47.021915435791016],[31.2737522125247,47.02218246459972],[31.283805847168253,46.981346130371094],[31.142465591430888,46.977218627929744],[31.04524040222168,46.96606445312494],[31.055046081543026,46.919231414794865],[31.15362548828125,46.843765258789176],[31.198089599609432,46.826519012451286],[31.213542938232532,46.70423889160156],[31.20569229126005,46.6220817565918],[31.177917480468807,46.62791824340826],[31.028472900390792,46.60124969482422],[30.81986045837408,46.54930496215826],[30.780416488647745,46.55597305297857],[30.729305267334155,46.51097106933588],[30.77208328247076,46.44958496093749],[30.75236129760736,46.374584197998104],[30.679582595825476,46.32319259643549],[30.562915802002237,46.16291809082031],[30.513195037841967,46.12513732910156],[30.478195190429858,46.078193664550724],[30.356250762939453,45.987083435058594],[30.258472442627006,45.89347076416021],[30.141805648803995,45.82152938842785],[30.070138931274467,45.80097198486334],[30.003194808959904,45.849582672119254],[29.957916259765625,45.771526336670036],[29.907361984253154,45.75041580200189],[29.825138092041303,45.74847412109375],[29.788473129272628,45.730140686035156],[29.811805725097656,45.695137023925895],[29.882360458374077,45.67208480834961],[29.778472900390852,45.61958312988287],[29.694305419921875,45.56735992431652],[29.622360229492358,45.50236129760748],[29.665695190429688,45.47624969482422],[29.75541687011724,45.444583892822315],[29.76541709899902,45.32374954223633],[29.728195190429805,45.216526031494254],[29.672250747680717,45.22082138061529],[29.679269790649585,45.26947402954107],[29.652616500854606,45.3399887084962],[29.591152191162223,45.39025115966797],[29.431493759155334,45.44289398193359],[29.300466537475643,45.430423736572266],[29.25185012817377,45.43532562255865],[29.152366638183707,45.38882827758789],[29.045434951782397,45.36098480224621],[28.98411560058605,45.332027435302784],[28.926939010620117,45.282791137695426],[28.818828582763782,45.33630371093756],[28.79495048522949,45.29343414306646],[28.758417129516598,45.2895851135255],[28.782171249389645,45.237697601318466],[28.72042083740234,45.224594116211044],[28.634342193603572,45.24475860595709],[28.56250762939476,45.249835968017635],[28.351459503174055,45.32015228271496],[28.286964416504016,45.400089263916016],[28.288265228271655,45.43339920043957],[28.21631431579595,45.46890258789068],[28.26890945434576,45.53105545043957],[28.31025123596197,45.545608520507926],[28.40615463256836,45.51965713500976],[28.435531616210994,45.48762130737305],[28.516286849975586,45.505466461181754],[28.501026153564506,45.56753158569335],[28.547777175903434,45.583602905273544],[28.527603149414286,45.66470718383795],[28.496015548705998,45.67531585693371],[28.547887802123967,45.73716354370123],[28.60032272338867,45.73582077026373],[28.60572624206543,45.76879119873058],[28.71773147583036,45.79195785522472],[28.71186256408691,45.81926727294927],[28.790445327758786,45.846446990966854],[28.765075683593807,45.9222679138183],[28.79420471191406,45.97723388671886],[28.95420837402338,46.00539016723644],[28.988256454467884,46.02360916137695],[28.998229980468864,46.06908798217785],[28.957822799682614,46.10808181762695],[29.05764389038097,46.20111465454096],[28.948177337646595,46.277931213378906],[28.988731384277287,46.326114654541016],[28.934158325195423,46.46059036254888],[29.089458465576225,46.527896881103516],[29.15064239501964,46.52552413940441],[29.24220657348638,46.56333160400396],[29.234199523925724,46.42647552490228],[29.323440551758093,46.418483734130916],[29.31447792053228,46.471439361572266],[29.350307464599776,46.506347656250114],[29.40129852294939,46.4609489440918],[29.45276069641119,46.49721527099621],[29.50892257690458,46.464881896972706],[29.49858474731451,46.443611145019645],[29.560533523559624,46.408679962158196],[29.593429565429744,46.36433792114269],[29.680429458618164,46.36354064941406],[29.672697067260916,46.43879318237304],[29.73698043823248,46.434261322021484],[29.754188537597823,46.475189208984425],[29.829061508178654,46.38208389282237],[29.8855438232423,46.36441802978521],[29.94687271118175,46.40275192260742],[30.01037216186552,46.382404327392635],[30.074571609497355,46.40327453613287],[29.994220733642745,46.504665374755916],[29.946170806884766,46.501327514648494],[29.893777847290323,46.54370880126958],[29.953508377075135,46.563060760498104],[29.967193603515568,46.59309387207037],[29.9478378295899,46.65216064453125],[29.97286224365263,46.69187164306646],[29.979202270507923,46.763614654541016],[29.9401340484622,46.805942535400334],[29.971731185913033,46.82878875732422],[29.882858276367468,46.84547805786133],[29.873472213745398,46.88401031494152],[29.796070098876953,46.862777709960994],[29.74938583374046,46.86875915527355],[29.73460960388212,46.919685363769645],[29.653032302856506,46.92592620849615],[29.605106353759936,46.969490051269474],[29.619859695434855,47.1026611328125],[29.55227661132818,47.08037185668956],[29.51500129699718,47.13092422485363],[29.591196060180717,47.1418685913087],[29.56067657470709,47.24401473999035],[29.604446411132983,47.26347732543957],[29.589864730835075,47.366046905517635],[29.50361251831049,47.36467361450201],[29.49114227294939,47.31571960449219],[29.443269729614542,47.300262451171875],[29.392921447754073,47.319168090820305],[29.407575607299975,47.372066497802734],[29.339334487915153,47.383651733398494],[29.327384948730696,47.43841552734381],[29.251863479614254,47.42620468139642],[29.208099365234542,47.43986892700201],[29.194982528686577,47.48171234130865],[29.133705139160156,47.54899978637706],[29.201154708862248,47.57151794433593],[29.241861343383903,47.6399307250976],[29.222158432007003,47.72404861450201],[29.267744064331225,47.75804519653332],[29.24012756347673,47.79783630371105],[29.209272384643782,47.887516021728565],[29.188543319702262,47.99400711059582],[29.10967636108404,47.98391723632818],[29.076671600341854,47.9421157836914],[29.029029846191403,47.94888687133789],[28.989036560058654,47.97902297973633],[28.943750381469837,47.956123352050895],[28.855596542358395,48.03298568725586],[28.8568058013916,48.081050872802734],[28.956403732299915,48.09860992431652],[28.968315124511662,48.16617202758795],[29.04884529113781,48.14642715454096],[29.088787078857422,48.20978927612305],[29.169298171997127,48.165500640869084],[29.283134460449446,48.11899948120117],[29.396863937378097,48.12084960937506],[29.42242050170898,48.144077301025504],[29.501939773559627,48.12794494628911],[29.580926895141832,48.12885665893566],[29.606456756591967,48.152221679687614],[29.685415267944446,48.1530876159669],[29.68355178833013,48.205204010009766],[29.787736892700476,48.235431671142635],[29.866865158081225,48.23045730590826],[29.911380767822546,48.21339797973633],[29.95393753051752,48.25450134277344],[30.063100814819503,48.15607070922857],[30.320903778076282,48.145236968994254]]]},"properties":{"ID_0":240,"ISO":"UA-51","NAME_0":"Ukraine","ID_1":17,"NAME_1":"Odessa","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Odesa|Odes'ka Oblast'|Odesskaya Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.96434402465832,50.145481109619254],[34.9620361328125,50.09781646728521],[34.98709106445341,50.06180191040039],[34.93167495727545,50.026550292968864],[34.893161773681925,49.97327041625988],[34.90898132324235,49.93136978149414],[34.99600219726568,49.88268661499018],[35.092845916748104,49.857646942138786],[35.17304611206072,49.85661697387695],[35.22494888305663,49.82604980468756],[35.24636077880854,49.730091094970646],[35.29092407226568,49.729469299316406],[35.28816223144548,49.68166732788086],[35.430088043213175,49.66763687133795],[35.48064041137724,49.61899185180669],[35.512111663818644,49.55266189575207],[35.431957244873274,49.553909301757926],[35.43861007690435,49.517910003662166],[35.509410858154354,49.510810852050895],[35.507095336914006,49.47494125366211],[35.36602783203131,49.495121002197266],[35.345718383789176,49.45359039306651],[35.39746475219755,49.42884826660156],[35.412582397460994,49.38674545288097],[35.347961425781534,49.34595489501959],[35.32842254638672,49.316390991210994],[35.23751831054693,49.276084899902344],[35.114315032959155,49.28411102294922],[35.062992095947436,49.314769744873104],[35.02555084228515,49.27954101562499],[35.01331710815458,49.22005844116222],[35.061527252197315,49.13572692871094],[35.009578704834155,49.154476165771484],[34.859672546386776,49.16875839233393],[34.78734207153332,49.14601516723644],[34.74958801269537,49.10486984252924],[34.62412261962919,49.08890914916992],[34.60361480712908,49.035617828369254],[34.4521026611331,49.03794097900396],[34.39632034301786,48.9911994934082],[34.38546752929693,48.94972229003906],[34.33734130859391,48.87314987182617],[34.37994766235345,48.83081054687506],[34.33381652832037,48.795871734619084],[34.367183685302905,48.74771499633795],[34.312240600586165,48.71294784545898],[34.25133132934599,48.74372100830078],[34.18061447143566,48.75681304931652],[34.15563583374018,48.798835754394474],[34.05889129638672,48.836090087890625],[33.99654006958036,48.84305572509777],[33.93502426147461,48.87374496459961],[33.828723907470646,48.91108322143549],[33.765853881836044,48.912120819091854],[33.694900512695426,48.94292068481457],[33.639240264892805,48.8905143737793],[33.56764221191435,48.90352630615246],[33.50446319580084,48.898628234863274],[33.469425201416016,48.934700012207024],[33.43258285522478,48.90570449829112],[33.352108001709155,48.930614471435604],[33.33554840087919,48.98998641967784],[33.36336898803727,49.01913452148431],[33.310188293457145,49.061294555664055],[33.33802795410185,49.090454101562614],[33.284877777099894,49.13848114013683],[33.248260498047046,49.12125396728521],[33.264854431152514,49.05602645874035],[33.20170974731451,49.062816619873104],[33.19382476806668,49.11608505249035],[33.16741943359381,49.151870727539176],[33.01392745971697,49.18333816528325],[33.014457702636776,49.212833404541016],[32.93270111084013,49.20791625976574],[32.878444671631144,49.220344543457145],[32.79652404785185,49.20360183715826],[32.76961135864275,49.22747802734375],[32.68786239624029,49.222476959228565],[32.54317092895502,49.28285217285162],[32.4889564514163,49.32458114624035],[32.51657485961937,49.37142181396479],[32.61651611328142,49.35279846191412],[32.689041137695305,49.328506469726506],[32.779987335205135,49.3275527954101],[32.7893905639649,49.35102844238281],[32.725971221923885,49.375263214111385],[32.7085571289063,49.44614410400402],[32.79150772094721,49.51603698730469],[32.79195404052762,49.55139923095709],[32.746677398681584,49.587188720703125],[32.756095886230746,49.61067199707037],[32.68338394165056,49.65847015380854],[32.601116180420206,49.67685699462896],[32.592510223388956,49.747592926025504],[32.46431732177751,49.80158996582031],[32.40018463134793,49.855026245117244],[32.45539093017578,49.860507965088004],[32.455699920654354,49.93700027465831],[32.382087707519474,49.99045562744146],[32.36368560791021,50.03174972534185],[32.31750106811552,50.02616500854492],[32.289691925049,50.12041473388683],[32.224838256836165,50.13845062255865],[32.150524139404354,50.18593597412115],[32.14112854003912,50.2095108032226],[32.12226104736356,50.262542724609375],[32.159324645996264,50.2799644470216],[32.1776771545413,50.32690048217768],[32.28001022338867,50.332168579101555],[32.35441207885748,50.40818405151367],[32.410350799560604,50.39020156860363],[32.503543853759766,50.38376235961914],[32.53132629394537,50.33654403686529],[32.596519470215014,50.342041015625114],[32.80129241943387,50.34077453613281],[32.89464569091797,50.36371994018549],[32.95119476318388,50.41046142578131],[33.05452346801752,50.45690155029297],[33.092609405517635,50.497882843017635],[33.17640304565424,50.48555374145519],[33.26973342895508,50.484916687011825],[33.28016662597662,50.531978607177734],[33.410072326660384,50.501632690429744],[33.465023040771655,50.46586608886719],[33.558101654052905,50.465202331543026],[33.59567260742193,50.47673797607422],[33.724868774414006,50.44628906250006],[33.8269691467288,50.445545196533146],[33.88370132446289,50.47468948364269],[33.87551498413086,50.50429534912115],[33.95926284790045,50.509632110595646],[33.99730300903349,50.53302383422857],[34.06946563720731,50.48522949218755],[34.162166595459155,50.49052810668957],[34.24656677246111,50.519596099853516],[34.282344818115234,50.49567794799816],[34.29748916626005,50.424446105957145],[34.42288589477556,50.358287811279354],[34.43894577026367,50.310646057128906],[34.49204254150408,50.274562835693416],[34.5376052856447,50.274196624755916],[34.54442596435575,50.226539611816406],[34.598667144775675,50.22011947631835],[34.596954345703125,50.18442535400396],[34.54132080078147,50.16112136840832],[34.602340698242244,50.10700225830084],[34.72861480712913,50.099887847900504],[34.73939514160173,50.135520935058594],[34.8392372131347,50.15251159667969],[34.96434402465832,50.145481109619254]]]},"properties":{"ID_0":240,"ISO":"UA-53","NAME_0":"Ukraine","ID_1":18,"NAME_1":"Poltava","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.67983627319336,51.524150848388615],[27.575523376464957,51.487445831298885],[27.611959457397404,51.417705535888786],[27.531883239746204,51.43684768676757],[27.488357543945426,51.392562866210994],[27.52998161315918,51.36487197875987],[27.48651504516607,51.32685089111328],[27.439956665039006,51.31879425048839],[27.468233108520447,51.23620986938482],[27.40552139282238,51.2036705017091],[27.364269256591854,51.14806365966808],[27.368713378906307,51.10631561279308],[27.327318191528317,51.050670623779354],[27.280321121215934,51.048690795898544],[27.20893287658697,51.00971221923834],[27.255706787109318,50.92190933227545],[27.2424259185791,50.86748504638683],[27.2608699798584,50.77853012084972],[27.285009384155387,50.72571945190441],[27.214817047119137,50.67494201660156],[27.22430801391613,50.579727172851506],[27.197437286376893,50.566642761230526],[27.141363143921012,50.56425094604497],[27.12903785705572,50.59359359741211],[27.0200214385988,50.558994293213004],[26.9950790405274,50.528030395507756],[26.89081192016624,50.54134368896495],[26.78223991394054,50.50664520263683],[26.76735496521007,50.47015762329101],[26.647951126098633,50.36335754394536],[26.628789901733622,50.368461608886776],[26.49134826660162,50.26093673706055],[26.380435943603572,50.255985260009766],[26.285934448242244,50.18618011474621],[26.22198295593267,50.177337646484375],[26.17321968078636,50.198966979980575],[26.15081787109375,50.233707427978565],[26.05449676513672,50.26507568359375],[26.021553039550835,50.227802276611385],[25.94369506835937,50.259990692138665],[25.89957618713407,50.24008560180675],[25.841131210327262,50.18376541137701],[25.674671173095703,50.182022094726676],[25.64063644409191,50.156608581543026],[25.583364486694336,50.17180252075206],[25.479404449462947,50.11331176757818],[25.403919219970817,50.05020904541027],[25.34045219421398,50.04120635986333],[25.335626602172795,50.005302429199276],[25.201953887939567,50.11767578125006],[25.20239830017084,50.18912124633795],[25.169778823852596,50.22917175292969],[25.209199905395508,50.284793853759766],[25.11369132995617,50.30974960327148],[25.16521835327148,50.34221267700195],[25.151695251464957,50.37732315063476],[25.206180572509936,50.38605880737304],[25.151548385620345,50.454944610595696],[25.154310226440543,50.5088768005371],[25.112436294555774,50.548583984375114],[25.185476303100586,50.558303833007926],[25.27132225036621,50.5386848449707],[25.324571609497013,50.55925369262695],[25.307615280151424,50.62423706054693],[25.374370574951286,50.60954284667969],[25.379426956176815,50.645698547363395],[25.422172546386662,50.6776962280274],[25.478347778320366,50.67439270019531],[25.61234664916998,50.72260284423828],[25.704931259155558,50.72687149047846],[25.729511260986442,50.674125671386825],[25.83336830139166,50.66092300415039],[25.876348495483455,50.6927947998048],[25.88356208801281,50.79485321044933],[25.916013717651595,50.838218688964844],[26.029384613037053,50.82533645629882],[25.99624633789074,50.87173843383794],[25.985681533813477,50.967109680175724],[26.06868362426775,50.97677612304699],[26.111915588378906,51.00865173339855],[26.107997894287106,51.04444122314459],[26.04759216308588,51.08377075195318],[25.963220596313704,51.08607864379882],[25.940015792846676,51.127090454101676],[26.033067703247127,51.13115692138671],[26.073776245117188,51.18698501586914],[26.01205062866211,51.23839187622082],[25.964141845703182,51.24832916259771],[25.930929183960014,51.29498672485357],[25.849679946899414,51.35159683227538],[25.855703353881836,51.381958007812436],[25.73224830627447,51.39453506469732],[25.672777175903377,51.42195510864258],[25.64515495300293,51.498935699463004],[25.576850891113395,51.51985931396478],[25.61464500427246,51.5997428894043],[25.5534343719483,51.63893508911144],[25.635120391845817,51.666748046875],[25.71754646301269,51.77671813964855],[25.656850814819393,51.8145866394044],[25.662410736083924,51.85477447509777],[25.733308792114197,51.908203125],[25.646942138671932,51.916259765625],[25.626155853271598,51.937751770019474],[25.80682945251476,51.93313980102539],[25.853982925415096,51.95707702636719],[25.961559295654354,51.92792510986334],[26.047897338867244,51.942348480224666],[26.116323471069393,51.92839813232433],[26.193557739257812,51.88095474243175],[26.3666286468507,51.87659454345703],[26.50222015380865,51.80929565429693],[26.57860565185541,51.82920455932623],[26.77853393554687,51.82604598999035],[26.826513290405217,51.771430969238224],[26.867322921752873,51.78101348876953],[26.98523139953619,51.76398086547857],[26.998472213745174,51.78162002563488],[27.193468093872127,51.78728485107422],[27.19928741455078,51.683742523193466],[27.262527465820426,51.65533828735362],[27.230190277099894,51.60236358642584],[27.349048614502063,51.62408447265631],[27.45764923095714,51.620014190673885],[27.55190467834478,51.642536163330185],[27.603197097778377,51.62089920043945],[27.71983909606939,51.6192131042481],[27.71465682983427,51.57267379760748],[27.668016433715877,51.55345535278326],[27.67983627319336,51.524150848388615]]]},"properties":{"ID_0":240,"ISO":"UA-56","NAME_0":"Ukraine","ID_1":19,"NAME_1":"Rivne","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Rovno|Rivnens'ka Oblast'|Rovenskaya Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.57392501831072,44.83791732788097],[33.59279251098649,44.80184173583984],[33.66495895385748,44.78236389160156],[33.67987442016607,44.758396148681584],[33.613399505615405,44.742172241210994],[33.61883163452171,44.70058822631847],[33.72583389282249,44.70423889160162],[33.77341842651384,44.67374801635742],[33.75345993041998,44.62055969238292],[33.66891479492193,44.58584976196289],[33.6789131164553,44.54543304443371],[33.713996887206974,44.51655578613287],[33.797657012939624,44.497566223144474],[33.86188507080084,44.52409744262701],[33.92674636840831,44.429439544677734],[33.80236053466797,44.39420700073248],[33.798751831054744,44.39425277709972],[33.792907714844034,44.39152908325201],[33.72763824462913,44.39152908325201],[33.70430374145536,44.42152786254894],[33.6468048095706,44.42874908447265],[33.637084960937784,44.47041702270507],[33.595695495605746,44.49347305297845],[33.495971679687614,44.50263977050787],[33.40152740478543,44.55930709838867],[33.45652770996111,44.610137939453125],[33.53013992309593,44.61486053466808],[33.5476379394534,44.72874832153325],[33.53458404541021,44.791805267333984],[33.57392501831072,44.83791732788097]]]},"properties":{"ID_0":240,"ISO":"UA-40","NAME_0":"Ukraine","ID_1":20,"NAME_1":"Sevastopol'","TYPE_1":"Autonomous Republic","ENGTYPE_1":"Autonomous Republic","NL_NAME_1":null,"VARNAME_1":"Sebastopol"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.658256530761946,50.360183715820256],[35.62119293212908,50.33718109130865],[35.539249420166186,50.32036590576172],[35.50201416015631,50.29674911499035],[35.422080993652344,50.3213729858399],[35.32135772705095,50.29210662841797],[35.263664245605746,50.22068405151367],[35.18393325805681,50.24514007568371],[35.09195709228521,50.19805908203119],[35.01067733764677,50.18085098266601],[34.96434402465832,50.145481109619254],[34.8392372131347,50.15251159667969],[34.73939514160173,50.135520935058594],[34.72861480712913,50.099887847900504],[34.602340698242244,50.10700225830084],[34.54132080078147,50.16112136840832],[34.596954345703125,50.18442535400396],[34.598667144775675,50.22011947631835],[34.54442596435575,50.226539611816406],[34.5376052856447,50.274196624755916],[34.49204254150408,50.274562835693416],[34.43894577026367,50.310646057128906],[34.42288589477556,50.358287811279354],[34.29748916626005,50.424446105957145],[34.282344818115234,50.49567794799816],[34.24656677246111,50.519596099853516],[34.162166595459155,50.49052810668957],[34.06946563720731,50.48522949218755],[33.99730300903349,50.53302383422857],[33.95926284790045,50.509632110595646],[33.87551498413086,50.50429534912115],[33.88370132446289,50.47468948364269],[33.8269691467288,50.445545196533146],[33.724868774414006,50.44628906250006],[33.59567260742193,50.47673797607422],[33.558101654052905,50.465202331543026],[33.465023040771655,50.46586608886719],[33.410072326660384,50.501632690429744],[33.28016662597662,50.531978607177734],[33.26973342895508,50.484916687011825],[33.17640304565424,50.48555374145519],[33.092609405517635,50.497882843017635],[33.1216659545899,50.55068588256836],[33.13277435302763,50.6388931274414],[33.189365386963004,50.656192779541065],[33.171337127685604,50.69160079956055],[33.24740219116228,50.7382049560548],[33.20106506347684,50.76788330078131],[33.1935997009279,50.862026214599666],[33.241062164306584,50.87938308715826],[33.23291397094726,50.9382438659668],[33.08253479003906,50.97449111938476],[33.111625671387,51.01550292968761],[33.10277938842768,51.050884246826286],[32.98971176147478,51.09873580932623],[33.01863479614286,51.133872985839844],[32.990447998047095,51.16350173950195],[33.05735778808593,51.192504882812614],[33.08640670776384,51.2394256591798],[33.096660614013786,51.35724639892584],[33.14447784423845,51.36281204223633],[33.135166168213175,51.427761077880916],[33.154445648193644,51.480728149414176],[33.19276046752958,51.486362457275504],[33.221691131591854,51.56289672851568],[33.145328521728686,51.65199279785167],[33.18413925170921,51.68720245361334],[33.12702941894537,51.74084472656256],[33.117862701416186,51.77052688598644],[33.16719436645536,51.811744689941406],[33.16868209838873,51.865077972412166],[33.28780364990257,51.92345809936529],[33.394931793213175,51.916851043701286],[33.42752456665062,51.96378707885736],[33.341419219970874,51.999774932861385],[33.396900177001896,52.03231048583996],[33.44343185424799,52.01393890380865],[33.50878143310564,52.025146484375],[33.50841140747076,52.065841674804744],[33.45310211181658,52.07283401489269],[33.36208343505854,52.139640808105526],[33.32460021972662,52.14630889892584],[33.325595855713054,52.19298553466797],[33.38936233520513,52.260772705078175],[33.427616119384936,52.3442115783692],[33.530292510986385,52.34958267211919],[33.57121276855474,52.31460189819336],[33.6639938354495,52.32571411132807],[33.72587966918974,52.354530334472656],[33.832492828369425,52.349731445312614],[33.84355545043974,52.303688049316456],[33.92303466796869,52.30184936523449],[33.93422317504899,52.25913619995122],[33.99047851562522,52.23024368286127],[34.01820373535167,52.194107055664006],[34.114337921142635,52.13401031494152],[34.069179534912394,52.068988800048885],[34.09249496459972,52.015304565429744],[34.15698242187523,51.956703186035156],[34.1988258361817,51.946758270263786],[34.22565460205101,51.90607070922857],[34.265476226806925,51.908481597900334],[34.417987823486385,51.821269989013786],[34.39533996582048,51.782817840576165],[34.43217468261719,51.73873519897461],[34.40315628051786,51.720806121826165],[34.30647277832031,51.71761322021496],[34.2607727050784,51.6977157592774],[34.126987457275675,51.68684005737299],[34.09138488769537,51.663307189941406],[34.25180435180681,51.588607788085994],[34.269245147705135,51.55197143554693],[34.31819534301758,51.52880859375011],[34.30360794067411,51.491226196289176],[34.2613639831543,51.4633445739746],[34.22528076171881,51.399845123291016],[34.342140197753906,51.357769012451286],[34.270694732666186,51.259902954101555],[34.36447906494146,51.233085632324276],[34.4146347045899,51.26752090454107],[34.5171089172365,51.24675369262701],[34.6556549072265,51.248001098632926],[34.687877655029354,51.18821716308594],[34.81972122192411,51.176284790039176],[34.832130432128906,51.19934082031256],[34.97594833374052,51.236854553222656],[35.123470306396655,51.220962524414176],[35.129135131835994,51.15097808837885],[35.1955184936524,51.05895996093756],[35.281696319580355,51.067031860351676],[35.31283950805681,51.08671951293951],[35.4235687255861,51.05403518676758],[35.42578506469743,51.03333663940441],[35.35508728027361,50.9937629699707],[35.34387207031249,50.94857025146496],[35.40547561645536,50.93305587768549],[35.39562988281256,50.885238647461044],[35.426940917969034,50.86204528808593],[35.42802429199224,50.81504440307617],[35.49131774902344,50.77139663696295],[35.47220230102562,50.7377281188966],[35.50151443481445,50.688339233398494],[35.41648864746088,50.64061355590831],[35.41308593750017,50.58973693847661],[35.44765472412115,50.569770812988395],[35.4618949890139,50.52671813964844],[35.52958297729498,50.47529602050787],[35.582424163818416,50.466644287109375],[35.58817672729498,50.40303039550787],[35.658256530761946,50.360183715820256]]]},"properties":{"ID_0":240,"ISO":"UA-59","NAME_0":"Ukraine","ID_1":21,"NAME_1":"Sumy","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":null}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.22198295593267,50.177337646484375],[26.248901367187557,50.10109710693365],[26.193593978882117,50.09860610961914],[26.204744338989315,49.997882843017514],[26.142301559448356,49.97721862792969],[26.14958763122553,49.91208648681646],[26.191640853881893,49.86637878417963],[26.16606903076172,49.847393035888615],[26.241540908813533,49.749660491943416],[26.20883750915533,49.71254730224614],[26.248132705688477,49.690509796142635],[26.254074096679744,49.637287139892635],[26.193998336792106,49.5989990234375],[26.20782089233404,49.558029174804744],[26.14718818664562,49.52567291259777],[26.140752792358455,49.50164031982433],[26.19892501831066,49.4745140075683],[26.21343040466337,49.427661895752],[26.217823028564396,49.30918502807617],[26.240779876708984,49.2686538696289],[26.19026374816906,49.23088073730468],[26.206895828247184,49.16637039184576],[26.180238723754883,49.08222961425792],[26.207441329956055,49.00634384155279],[26.19213294982916,48.98199844360363],[26.198017120361328,48.85786819458002],[26.217515945434627,48.84682846069336],[26.24568557739275,48.76509094238281],[26.238733291626087,48.676059722900504],[26.327968597412166,48.61445999145519],[26.33403587341303,48.56734848022472],[26.373043060302848,48.54512405395508],[26.437473297119197,48.53564071655279],[26.359701156616268,48.50917053222656],[26.296056747436637,48.51285552978521],[26.28397560119646,48.53598785400402],[26.176998138427848,48.526359558105526],[26.146175384521484,48.554622650146484],[26.149723052978626,48.59591674804687],[25.96638870239269,48.61873245239258],[25.91664123535162,48.58759307861334],[25.851633071899414,48.60287475585943],[25.857351303100696,48.62656402587902],[25.788305282592887,48.671047210693416],[25.70867919921875,48.6622695922851],[25.625947952270508,48.67673110961914],[25.633951187133956,48.7474822998048],[25.545413970947322,48.80265808105469],[25.44144821166998,48.83940505981445],[25.42675781249994,48.879901885986385],[25.338346481323356,48.870143890380916],[25.278366088867127,48.791141510009766],[25.245668411254883,48.83073806762707],[25.221349716186523,48.93531036376959],[25.114767074585018,48.93022918701183],[25.095523834228626,48.99979782104492],[25.032554626464844,49.00255966186529],[24.901666641235465,49.0428733825683],[24.9503498077392,49.07483291625982],[24.970905303955135,49.11706161499035],[24.898210525512752,49.12508773803705],[24.836347579956165,49.18070983886719],[24.883520126342773,49.224407196045036],[24.82333946228033,49.26836395263683],[24.80844116210937,49.30883026123058],[24.83896064758295,49.34584808349621],[24.806293487548885,49.385398864746094],[24.760036468505803,49.39469528198248],[24.709098815918026,49.49817657470709],[24.707088470459208,49.574897766113395],[24.761655807495117,49.57202911376964],[24.865409851074332,49.60735321044916],[24.937538146972656,49.61127090454096],[24.994888305664176,49.72693252563482],[25.051620483398434,49.71212768554687],[25.072673797607422,49.7606658935548],[25.064998626709098,49.81959915161133],[25.163627624511776,49.83650207519537],[25.20234107971191,49.820629119873104],[25.266178131103572,49.82376861572271],[25.344669342041012,49.85723876953125],[25.385288238525387,49.90074157714844],[25.403366088867415,49.97883605957037],[25.335626602172795,50.005302429199276],[25.34045219421398,50.04120635986333],[25.403919219970817,50.05020904541027],[25.479404449462947,50.11331176757818],[25.583364486694336,50.17180252075206],[25.64063644409191,50.156608581543026],[25.674671173095703,50.182022094726676],[25.841131210327262,50.18376541137701],[25.89957618713407,50.24008560180675],[25.94369506835937,50.259990692138665],[26.021553039550835,50.227802276611385],[26.05449676513672,50.26507568359375],[26.15081787109375,50.233707427978565],[26.17321968078636,50.198966979980575],[26.22198295593267,50.177337646484375]]]},"properties":{"ID_0":240,"ISO":"UA-61","NAME_0":"Ukraine","ID_1":22,"NAME_1":"Ternopil'","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Ternopol|Ternopol'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.897964477539176,49.01430511474621],[22.920421600341797,48.98009490966797],[22.884773254394812,48.94828033447271],[22.898220062256144,48.91359710693371],[22.96252822875988,48.88234710693371],[22.978166580200195,48.842002868652344],[23.12454223632824,48.858543395996094],[23.179233551025334,48.79752731323248],[23.184305191040153,48.76828384399414],[23.291826248169002,48.7588996887207],[23.3615398406983,48.764484405517635],[23.375286102295036,48.73595428466797],[23.475126266479492,48.72040939331055],[23.544797897339095,48.7261962890625],[23.6097354888916,48.70784759521478],[23.68357086181669,48.636913299560604],[23.761886596679684,48.64310836791992],[23.77847099304205,48.597167968750114],[23.838539123535156,48.55464935302746],[23.899440765380803,48.559371948242244],[23.894794464111385,48.4823455810548],[23.950822830200252,48.46309661865246],[23.995227813720703,48.51361465454101],[24.140714645386023,48.54211425781249],[24.141117095947436,48.43024826049804],[24.183500289916932,48.38628005981451],[24.265602111816403,48.36862945556646],[24.311510086059627,48.41301345825207],[24.35287094116211,48.374736785888615],[24.478391647338867,48.306903839111385],[24.47595977783203,48.26573944091796],[24.532066345214844,48.24598693847661],[24.496540069580135,48.19105911254877],[24.52041053771984,48.151790618896484],[24.598463058471733,48.10418701171875],[24.614669799804688,48.05851364135742],[24.566320419311523,48.03275680541992],[24.569614410400444,47.9683570861817],[24.503639221191406,47.952541351318416],[24.437505722046012,47.970767974853516],[24.383222579956055,47.92684555053722],[24.326524734497294,47.9261589050293],[24.2298965454101,47.89674377441412],[24.198307037353626,47.91632843017578],[24.114313125610465,47.91506958007818],[24.10022735595703,47.93677902221691],[24.010686874389588,47.967521667480526],[23.85262489318859,47.93717575073253],[23.817398071289062,47.982860565185604],[23.773448944091854,47.99521255493164],[23.664424896240348,47.98487854003911],[23.611959457397518,48.0083274841308],[23.527334213256946,48.00505828857422],[23.502691268920955,47.96896743774419],[23.340095520019645,48.018493652343864],[23.285804748535156,48.05069732666021],[23.270385742187553,48.087245941162216],[23.131910324096737,48.095947265625114],[23.11085319519043,48.03857803344732],[23.076185226440483,48.00891113281256],[23.015066146850756,47.99093246459972],[22.928621292114258,48.01944732666027],[22.94611358642578,47.969501495361385],[22.91534996032715,47.959701538085994],[22.84605216979992,47.98844909667969],[22.880443572998104,48.04105758666998],[22.825958251953125,48.11979293823248],[22.744882583618107,48.12332153320318],[22.67818832397461,48.09463882446295],[22.598482131958065,48.113285064697266],[22.592327117920036,48.15922927856445],[22.522434234619197,48.23725509643555],[22.44282722473167,48.253345489502],[22.37318992614757,48.238853454589844],[22.340681076049805,48.2997398376466],[22.219820022583008,48.427272796630916],[22.14834213256836,48.42738723754883],[22.173116683960075,48.566753387451286],[22.192974090576172,48.603633880615234],[22.23959541320812,48.62076568603521],[22.30209350585949,48.68261718750011],[22.354055404663143,48.69762802124035],[22.36919975280773,48.73836517333979],[22.346237182617188,48.77564239501959],[22.376668930053654,48.7932243347168],[22.38475990295421,48.8739128112793],[22.41339111328125,48.88808441162121],[22.422897338867188,48.93650054931652],[22.477964401245117,48.99813079833995],[22.54215812683111,49.00459671020508],[22.56094169616699,49.086154937744254],[22.60218048095703,49.09510421752941],[22.674457550048885,49.043586730957024],[22.797672271728572,49.04933929443365],[22.897964477539176,49.01430511474621]]]},"properties":{"ID_0":240,"ISO":"UA-21","NAME_0":"Ukraine","ID_1":23,"NAME_1":"Transcarpathia","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Transcarpathian|Zakarpattia|Ruthenia|Zakarpats'ka Oblast'|Zakarpatskaya Oblast'"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.512737274170203,49.65991973876959],[29.55854415893549,49.637287139892635],[29.51523590087896,49.6069717407226],[29.562364578247067,49.554946899414055],[29.575347900390852,49.46693801879883],[29.611511230468917,49.45588302612304],[29.516794204711914,49.38338851928711],[29.554855346679854,49.3312606811524],[29.617633819580362,49.32075500488287],[29.656057357788026,49.25684356689453],[29.74568748474132,49.24075317382824],[29.747997283935547,49.18792724609369],[29.662855148315483,49.104282379150504],[29.664943695068644,49.05736923217767],[29.711572647094954,49.005397796630916],[29.669904708862532,48.94600677490239],[29.75087165832542,48.91808319091797],[29.7437953948974,48.876945495605526],[29.780744552612585,48.84235763549816],[29.78249740600603,48.80139160156255],[29.881019592285323,48.77931213378912],[29.874048233032283,48.73240280151367],[29.928934097290206,48.692123413085994],[29.964702606201225,48.68667984008795],[30.01093482971208,48.64036560058594],[29.97668457031278,48.60494613647455],[30.030441284179915,48.593757629394645],[30.041431427002237,48.53537750244151],[29.980772018432674,48.493942260742244],[29.981405258178995,48.47642135620117],[29.893878936767745,48.45222091674805],[29.8081188201906,48.392887115478516],[29.79258728027366,48.34023666381836],[29.787736892700476,48.235431671142635],[29.68355178833013,48.205204010009766],[29.685415267944446,48.1530876159669],[29.606456756591967,48.152221679687614],[29.580926895141832,48.12885665893566],[29.501939773559627,48.12794494628911],[29.42242050170898,48.144077301025504],[29.396863937378097,48.12084960937506],[29.283134460449446,48.11899948120117],[29.169298171997127,48.165500640869084],[29.088787078857422,48.20978927612305],[29.04884529113781,48.14642715454096],[28.968315124511662,48.16617202758795],[28.956403732299915,48.09860992431652],[28.8568058013916,48.081050872802734],[28.854471206665153,48.12166976928711],[28.76025390625,48.13813781738281],[28.65558815002441,48.14526367187506],[28.577175140380973,48.172153472900504],[28.533090591430778,48.127086639404354],[28.44949340820324,48.0884399414063],[28.426366806030384,48.175773620605526],[28.381179809570593,48.175567626953125],[28.35423088073736,48.1369285583496],[28.31100845336914,48.15652084350597],[28.357660293579098,48.1850929260255],[28.37173271179205,48.22487640380871],[28.346273422241325,48.249347686767635],[28.21792984008789,48.20868682861339],[28.1886043548584,48.2554435729981],[28.107629776000977,48.234107971191406],[28.08337783813488,48.25343704223633],[28.096492767334038,48.30175018310558],[28.050012588500977,48.32706069946289],[27.926914215087947,48.32863616943371],[27.8614120483399,48.36767196655268],[27.88723182678234,48.39054870605474],[27.763639450073242,48.45856475830072],[27.68260383605968,48.44354248046875],[27.56609344482422,48.473842620849666],[27.533691406250053,48.464416503906364],[27.470438003540096,48.50998687744146],[27.47717666625982,48.55816650390624],[27.457410812378043,48.59319686889654],[27.374431610107536,48.63139343261719],[27.406255722045955,48.685844421386776],[27.417779922485405,48.76902008056652],[27.405448913574386,48.80985641479492],[27.419164657592773,48.863578796386776],[27.38658905029297,48.92724609375],[27.41987037658697,48.96410751342768],[27.39012145996122,48.99244689941406],[27.43003845214838,49.05922317504894],[27.493801116943473,49.06187820434576],[27.50658416748047,49.1275749206543],[27.571474075317383,49.11840057373052],[27.60460662841797,49.161251068115284],[27.659463882446346,49.16348266601574],[27.697929382324272,49.14130783081055],[27.752773284912166,49.143489837646534],[27.803962707519588,49.19297027587896],[27.869831085205078,49.171787261963004],[27.870355606079098,49.28459548950195],[27.79331779479992,49.441886901855526],[27.75162887573248,49.499610900878906],[27.79575920104986,49.525157928466854],[27.772428512573242,49.58364105224615],[27.82344436645525,49.63919067382824],[27.775758743286133,49.65510559082031],[27.763044357299805,49.69620895385742],[27.81855583190918,49.6984481811524],[27.824869155883903,49.734382629394474],[27.89654731750494,49.76699829101557],[28.00684356689453,49.78335571289074],[28.063823699951172,49.76784133911144],[28.164226531982532,49.78973007202154],[28.34876060485834,49.79682922363286],[28.38724517822271,49.774471282959034],[28.439125061035213,49.823890686035156],[28.5046443939209,49.80838012695324],[28.559289932250973,49.81620407104497],[28.579946517944506,49.78127670288086],[28.62570571899414,49.78281784057623],[28.641719818115234,49.818962097168026],[28.761970520019528,49.79907989501953],[28.777307510375973,49.84700012207037],[28.87652587890636,49.86775588989269],[28.892988204956055,49.897865295410156],[28.978845596313587,49.83523559570323],[29.00153350830078,49.75902175903326],[29.02985572814964,49.74214553833008],[28.98677635192865,49.69944763183605],[28.988834381103683,49.66405105590832],[29.02722930908214,49.629817962646484],[29.029256820678828,49.59444808959972],[29.174047470092884,49.598743438720696],[29.300746917724666,49.59029769897461],[29.29833030700689,49.6373863220216],[29.370807647705362,49.62734603881836],[29.458740234375167,49.66467285156256],[29.512737274170203,49.65991973876959]]]},"properties":{"ID_0":240,"ISO":"UA-05","NAME_0":"Ukraine","ID_1":24,"NAME_1":"Vinnytsya","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Vinnytsia|Vinnitskaya Oblast'|Vinnyts'ka Oblast|Winniza"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[25.626155853271598,51.937751770019474],[25.646942138671932,51.916259765625],[25.733308792114197,51.908203125],[25.662410736083924,51.85477447509777],[25.656850814819393,51.8145866394044],[25.71754646301269,51.77671813964855],[25.635120391845817,51.666748046875],[25.5534343719483,51.63893508911144],[25.61464500427246,51.5997428894043],[25.576850891113395,51.51985931396478],[25.64515495300293,51.498935699463004],[25.672777175903377,51.42195510864258],[25.73224830627447,51.39453506469732],[25.855703353881836,51.381958007812436],[25.849679946899414,51.35159683227538],[25.930929183960014,51.29498672485357],[25.964141845703182,51.24832916259771],[26.01205062866211,51.23839187622082],[26.073776245117188,51.18698501586914],[26.033067703247127,51.13115692138671],[25.940015792846676,51.127090454101676],[25.963220596313704,51.08607864379882],[26.04759216308588,51.08377075195318],[26.107997894287106,51.04444122314459],[26.111915588378906,51.00865173339855],[26.06868362426775,50.97677612304699],[25.985681533813477,50.967109680175724],[25.99624633789074,50.87173843383794],[26.029384613037053,50.82533645629882],[25.916013717651595,50.838218688964844],[25.88356208801281,50.79485321044933],[25.876348495483455,50.6927947998048],[25.83336830139166,50.66092300415039],[25.729511260986442,50.674125671386825],[25.704931259155558,50.72687149047846],[25.61234664916998,50.72260284423828],[25.478347778320366,50.67439270019531],[25.422172546386662,50.6776962280274],[25.379426956176815,50.645698547363395],[25.374370574951286,50.60954284667969],[25.307615280151424,50.62423706054693],[25.324571609497013,50.55925369262695],[25.27132225036621,50.5386848449707],[25.185476303100586,50.558303833007926],[25.112436294555774,50.548583984375114],[25.154310226440543,50.5088768005371],[25.151548385620345,50.454944610595696],[25.206180572509936,50.38605880737304],[25.151695251464957,50.37732315063476],[25.16521835327148,50.34221267700195],[25.11369132995617,50.30974960327148],[25.04793357849121,50.318256378173885],[24.955739974975696,50.39089202880854],[24.931875228881893,50.359756469726676],[24.829456329345817,50.366001129150334],[24.785863876342773,50.34562683105474],[24.71109008789074,50.35319900512707],[24.715709686279354,50.389255523681754],[24.589906692504883,50.43532562255871],[24.589962005615234,50.50701522827148],[24.552591323852596,50.510623931884766],[24.508424758911303,50.567584991455185],[24.455068588256946,50.55205154418951],[24.40557861328125,50.57855606079107],[24.420810699462947,50.603572845459034],[24.336330413818416,50.615451812744254],[24.31204223632841,50.589714050293026],[24.236902236938533,50.60185241699212],[24.22467994689947,50.624698638916016],[24.14743804931669,50.66119003295904],[24.08992958068859,50.64473724365246],[24.01921653747587,50.724765777588],[24.023214340210018,50.76974105834972],[23.974130630493278,50.77610015869146],[23.994230270386026,50.84303283691412],[24.107496261596737,50.83872222900402],[24.152034759521484,50.85956192016607],[24.028974533081165,50.91392135620122],[23.93164443969738,51.02132797241222],[23.912080764770565,51.079864501953125],[23.87178039550787,51.08248138427746],[23.85278701782249,51.126583099365284],[23.871471405029297,51.150310516357365],[23.74800109863287,51.21286773681646],[23.72394943237316,51.26782989501959],[23.65740394592285,51.283340454101506],[23.64147567749029,51.31124496459972],[23.682092666626257,51.3684921264649],[23.700920104980526,51.42196273803711],[23.666967391967887,51.507549285888615],[23.69010925292963,51.58990859985363],[23.655481338500977,51.615890502929744],[23.677938461303768,51.646072387695426],[23.83855438232422,51.65864944458008],[23.844459533691406,51.63866806030279],[23.945117950439506,51.63890838623047],[23.95311355590843,51.591583251953125],[24.027051925659293,51.58411026000982],[24.11996459960943,51.62105178833008],[24.15943908691412,51.67024612426752],[24.280649185180778,51.721012115478516],[24.354328155517692,51.787231445312614],[24.335853576660213,51.83478164672857],[24.386892318725813,51.910644531250114],[24.49044990539562,51.91294860839855],[24.603916168212947,51.930667877197266],[24.812778472900447,51.90372467041021],[24.945985794067383,51.92684936523448],[24.99504280090332,51.912250518798935],[25.086872100830135,51.962257385253956],[25.284065246582145,51.98341369628912],[25.3703289031983,51.948165893554744],[25.494070053100586,51.93225479125982],[25.56822204589872,51.952301025390625],[25.626155853271598,51.937751770019474]]]},"properties":{"ID_0":240,"ISO":"UA-07","NAME_0":"Ukraine","ID_1":25,"NAME_1":"Volyn","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Volhynia|Volyns'ka Oblast'|Volynskaya Oblast'|Wolynien"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[36.59258651733404,47.83230972290039],[36.617393493652514,47.82001876831066],[36.5866241455081,47.7674674987793],[36.67395782470731,47.7775497436524],[36.67174148559576,47.75399017333979],[36.73009872436546,47.640724182128906],[36.76232528686546,47.616436004638665],[36.82217788696289,47.609115600585994],[36.90171432495117,47.536411285400504],[36.94738769531249,47.55867767333979],[37.01507568359392,47.539009094238395],[37.079116821289176,47.483993530273494],[37.15412139892595,47.451946258545036],[37.25014495849615,47.453895568847706],[37.190067291259936,47.379772186279354],[37.145549774170206,47.36978912353527],[37.087551116943416,47.313091278076286],[37.04256057739286,47.297008514404354],[36.93151092529314,47.312278747558594],[36.935443878174,47.265235900878956],[36.96400833129894,47.20572662353521],[36.87554931640631,47.185024261474666],[36.998600006103516,47.122539520263786],[37.00292968750006,47.081405639648544],[37.117874145507976,47.0285530090332],[37.089683532714844,47.00658035278331],[37.138324737549105,46.979637145996094],[37.049308776855526,46.949844360351506],[37.029228210449276,46.921546936035206],[37.06030654907255,46.88291549682623],[36.976249694824276,46.858196258544865],[36.89764022827142,46.8095817565918],[36.82986068725591,46.70402908325207],[36.78652954101574,46.75041580200207],[36.720973968506144,46.779304504394645],[36.612361907958984,46.77819442749029],[36.415973663330135,46.72680664062505],[36.35541534423834,46.69597244262701],[36.27125167846691,46.60625076293945],[36.23458480834966,46.65069580078131],[36.187915802001896,46.67152786254883],[36.109027862548885,46.65847396850597],[36.047359466552905,46.66902923583996],[35.92152786254883,46.65986251831055],[35.718750000000284,46.58430480957037],[35.64902877807623,46.52236175537121],[35.578472137451456,46.47986221313482],[35.46569442749029,46.447360992431584],[35.35069274902338,46.347637176513665],[35.23652648925787,46.218471527099545],[35.198471069336044,46.16541671752941],[35.15430450439459,46.12958145141613],[34.99236297607422,46.07875061035167],[34.992084503173885,46.10597229003912],[35.06347274780279,46.15097045898443],[35.140693664550724,46.16291809082031],[35.2134704589846,46.187637329101676],[35.22263717651384,46.22124862670904],[35.26235961914074,46.24958419799804],[35.358196258545206,46.360416412353516],[35.26569366455084,46.354862213134766],[35.199859619140796,46.380973815918026],[35.13152694702154,46.34652709960948],[35.088748931884936,46.28757095336914],[35.09714508056668,46.32690811157232],[35.07524871826183,46.41081619262701],[34.974544525146534,46.44103240966796],[34.92296981811517,46.42885589599615],[34.8745307922365,46.4966278076173],[34.78826522827177,46.47913742065435],[34.74663162231451,46.51049423217768],[34.78242492675787,46.54677963256836],[34.776737213134766,46.61413192749029],[34.699459075927905,46.61551284790045],[34.657527923583984,46.64079284667974],[34.67634963989252,46.67699050903332],[34.780609130859546,46.69931793212896],[34.78377914428711,46.766021728515625],[34.835613250732365,46.771148681640625],[34.82113265991228,46.825878143310604],[34.77814483642595,46.82668685913097],[34.75605010986334,46.89963531494152],[34.68723678588884,46.901050567627],[34.603427886963175,46.9451255798341],[34.57160186767578,46.99406051635742],[34.55767822265625,47.05455780029291],[34.516986846923885,47.09759902954101],[34.48827362060552,47.200347900390625],[34.53163528442383,47.205314636230526],[34.48339080810575,47.266426086425895],[34.30923080444336,47.23489761352533],[34.27037429809593,47.31370162963867],[34.24863433837908,47.39193725585948],[34.147533416748104,47.448284149170036],[34.2965927124024,47.480316162109375],[34.47105407714861,47.50613403320318],[34.575962066650675,47.52772903442383],[34.66218185424833,47.52585983276372],[34.77214431762695,47.487686157226676],[34.87561035156267,47.48566055297863],[34.936695098876896,47.496479034423885],[34.91370010375982,47.544754028320256],[34.92557525634783,47.598335266113395],[34.89393615722656,47.64675903320324],[34.940010070801065,47.69367599487305],[34.94292068481451,47.741413116455135],[34.88206863403343,47.73662185668951],[34.868030548095646,47.79066085815441],[34.89468383789079,47.80208206176763],[34.82081604003917,47.869243621826286],[34.88604354858404,47.9455680847169],[34.87302780151384,48.01745986938488],[34.90876770019548,48.034664154052734],[34.886695861816406,48.10074234008795],[34.94633102416998,48.081676483154354],[34.9535446166995,48.05766296386719],[35.031562805176065,48.05615234375],[35.08544540405302,48.08496856689453],[35.2518424987793,48.10576248168957],[35.33873748779297,48.104198455810604],[35.38973617553728,48.08538818359381],[35.570007324219034,48.04639053344732],[35.73125457763672,48.108985900878906],[35.76346969604498,48.0726203918457],[35.833007812500284,48.07130813598633],[35.8390464782716,48.03544998168945],[35.98060226440447,48.06845855712902],[36.01204681396489,48.02617645263672],[36.05580902099637,48.03127288818371],[36.097682952880966,47.905597686767635],[36.123565673828296,47.90512847900396],[36.11634826660156,47.816192626953125],[36.212585449219034,47.83238601684576],[36.22735214233427,47.80252075195318],[36.33884048461914,47.79494476318371],[36.38397598266612,47.81795883178722],[36.46862411499052,47.79900360107416],[36.59258651733404,47.83230972290039]]]},"properties":{"ID_0":240,"ISO":"UA-23","NAME_0":"Ukraine","ID_1":26,"NAME_1":"Zaporizhzhya","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Saporoshje|Zaporizhia|Zaporiz'ka Oblast'|Zaporojie|Zaporozhskaya Oblast'|Zaporozh'ye|Zaporožje"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.36211013793962,51.396415710449325],[29.400138854980412,51.37801742553722],[29.402633666992354,51.34106445312505],[29.35999679565424,51.2912635803222],[29.304931640625284,51.29027938842785],[29.289331436157507,51.24718856811535],[29.311130523681925,51.192958831787166],[29.415054321289233,51.1463508605957],[29.520395278930835,51.075645446777344],[29.485841751098803,51.03921890258795],[29.489414215088114,50.979434967041016],[29.47286033630377,50.94931030273449],[29.531723022461218,50.88459396362315],[29.50939941406278,50.79495239257818],[29.6030731201173,50.75470352172863],[29.596563339233565,50.70709991455089],[29.497741699219034,50.67592620849615],[29.519617080688644,50.61101150512701],[29.487649917602766,50.527503967285156],[29.52475166320818,50.516265869140625],[29.51876831054699,50.45695495605469],[29.592920303344783,50.42855453491222],[29.61278915405279,50.39337158203119],[29.65885925292974,50.376335144043026],[29.669845581054627,50.335128784179744],[29.715202331543253,50.32987976074219],[29.690628051757756,50.27636718750006],[29.71052360534691,50.235336303710994],[29.67643737792991,50.19349670410156],[29.68048286438011,50.10505294799816],[29.717708587646538,50.07614898681651],[29.702947616577433,50.005165100097706],[29.74953269958513,49.96464920043956],[29.697420120239258,49.928451538085994],[29.637956619262923,49.856719970703175],[29.558980941772404,49.81990051269531],[29.531251907348803,49.83704757690441],[29.47995758056646,49.782966613769645],[29.47439384460472,49.712135314941406],[29.51918220520048,49.71306228637706],[29.512737274170203,49.65991973876959],[29.458740234375167,49.66467285156256],[29.370807647705362,49.62734603881836],[29.29833030700689,49.6373863220216],[29.300746917724666,49.59029769897461],[29.174047470092884,49.598743438720696],[29.029256820678828,49.59444808959972],[29.02722930908214,49.629817962646484],[28.988834381103683,49.66405105590832],[28.98677635192865,49.69944763183605],[29.02985572814964,49.74214553833008],[29.00153350830078,49.75902175903326],[28.978845596313587,49.83523559570323],[28.892988204956055,49.897865295410156],[28.87652587890636,49.86775588989269],[28.777307510375973,49.84700012207037],[28.761970520019528,49.79907989501953],[28.641719818115234,49.818962097168026],[28.62570571899414,49.78281784057623],[28.579946517944506,49.78127670288086],[28.559289932250973,49.81620407104497],[28.5046443939209,49.80838012695324],[28.439125061035213,49.823890686035156],[28.38724517822271,49.774471282959034],[28.34876060485834,49.79682922363286],[28.164226531982532,49.78973007202154],[28.063823699951172,49.76784133911144],[28.00684356689453,49.78335571289074],[27.89654731750494,49.76699829101557],[27.824869155883903,49.734382629394474],[27.728277206421012,49.7780494689942],[27.652658462524528,49.79278182983404],[27.61606788635271,49.89240646362299],[27.550081253051758,49.90156555175787],[27.538688659668022,49.92490005493164],[27.572650909423828,49.962028503418026],[27.549833297729492,50.00871276855469],[27.615432739257756,50.00547790527343],[27.684650421142805,50.06787872314459],[27.627212524414176,50.083377838134766],[27.62352180480957,50.12491989135736],[27.686681747436637,50.151344299316406],[27.596895217895565,50.2131919860841],[27.592605590820312,50.26069259643566],[27.511301040649528,50.22753906250006],[27.48057174682623,50.2560768127442],[27.413034439086967,50.27713775634771],[27.40911865234375,50.31872558593756],[27.332168579101673,50.33941268920904],[27.32988929748541,50.36318588256835],[27.251758575439567,50.39575195312505],[27.307903289794922,50.49361801147461],[27.209735870361385,50.53729248046881],[27.197437286376893,50.566642761230526],[27.22430801391613,50.579727172851506],[27.214817047119137,50.67494201660156],[27.285009384155387,50.72571945190441],[27.2608699798584,50.77853012084972],[27.2424259185791,50.86748504638683],[27.255706787109318,50.92190933227545],[27.20893287658697,51.00971221923834],[27.280321121215934,51.048690795898544],[27.327318191528317,51.050670623779354],[27.368713378906307,51.10631561279308],[27.364269256591854,51.14806365966808],[27.40552139282238,51.2036705017091],[27.468233108520447,51.23620986938482],[27.439956665039006,51.31879425048839],[27.48651504516607,51.32685089111328],[27.52998161315918,51.36487197875987],[27.488357543945426,51.392562866210994],[27.531883239746204,51.43684768676757],[27.611959457397404,51.417705535888786],[27.575523376464957,51.487445831298885],[27.67983627319336,51.524150848388615],[27.76055908203136,51.4927978515625],[27.785261154174858,51.540019989013665],[27.832773208618164,51.54577255249029],[27.819622039794865,51.58757400512701],[27.83385658264171,51.640563964843864],[27.902008056640682,51.63638305664073],[27.925128936767578,51.5865097045899],[27.965787887573242,51.56907272338873],[28.082235336303768,51.5701560974121],[28.17152023315424,51.650554656982536],[28.274139404296932,51.6977653503418],[28.259414672851562,51.63032913208019],[28.29727554321289,51.632961273193416],[28.369188308715877,51.56703948974615],[28.4195613861084,51.565265655517635],[28.489187240600582,51.59806823730469],[28.601055145263615,51.56431961059576],[28.680454254150387,51.56209182739269],[28.67092514038086,51.516845703125],[28.7140598297122,51.44618988037121],[28.806072235107536,51.46107864379883],[28.784332275390852,51.484920501708984],[28.825105667114368,51.54280471801769],[28.904903411865178,51.57487869262689],[29.039348602295036,51.580543518066406],[29.10403823852556,51.63100051879883],[29.160102844238338,51.65066528320324],[29.216932296753214,51.57704544067383],[29.26475334167486,51.55051040649413],[29.2416667938233,51.49702453613281],[29.316879272460998,51.449134826660156],[29.3245468139649,51.40196228027355],[29.36211013793962,51.396415710449325]]]},"properties":{"ID_0":240,"ISO":"UA-18","NAME_0":"Ukraine","ID_1":27,"NAME_1":"Zhytomyr","TYPE_1":"Oblast'","ENGTYPE_1":"Region","NL_NAME_1":null,"VARNAME_1":"Zhitomir|Jitomir|Shitomir|Zhitomirskaya Oblast'"}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/countries/usa.geojson b/superset/assets/visualizations/countries/usa.geojson new file mode 100644 index 0000000000000..9a463bf7eb01d --- /dev/null +++ b/superset/assets/visualizations/countries/usa.geojson @@ -0,0 +1,54 @@ +{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-85.6055068969726,34.98553085327142],[-85.57299804687493,34.80289077758795],[-85.44935607910156,34.21974945068365],[-85.3737564086914,33.83765029907238],[-85.26397705078125,33.26203155517584],[-85.22454071044916,33.06932067871111],[-85.1902770996093,32.88056182861334],[-85.16927337646484,32.81174087524414],[-85.12526702880854,32.77886962890625],[-85.11252593994139,32.68983078002941],[-85.09144592285156,32.65816879272472],[-85.07843780517572,32.59378051757824],[-85.00055694580078,32.50735092163086],[-84.98240661621088,32.40573883056635],[-84.99973297119135,32.322341918945426],[-84.94641876220703,32.30226135253912],[-84.89586639404297,32.26670074462885],[-84.92946624755854,32.22145843505871],[-84.98010253906244,32.21337890625006],[-85.064453125,32.13151931762707],[-85.05970764160156,32.01898956298828],[-85.08621978759766,31.94074058532715],[-85.11747741699219,31.91240119934082],[-85.14354705810541,31.838380813598633],[-85.12269592285145,31.734119415283203],[-85.12568664550781,31.694789886474776],[-85.06743621826172,31.626979827880913],[-85.04544067382807,31.54432106018072],[-85.07000732421874,31.48705101013189],[-85.07035827636719,31.436840057373104],[-85.09623718261717,31.366870880127063],[-85.08750915527332,31.322122573852592],[-85.11733245849604,31.274070739746204],[-85.10074615478509,31.23040008544933],[-85.10994720458984,31.1935310363769],[-85.04036712646477,31.109710693359542],[-85.0035171508789,31.002109527587947],[-85.37808227539057,31.000280380249084],[-85.49175262451166,30.996650695800785],[-85.80584716796875,30.99451065063482],[-86.43486022949207,30.99431037902843],[-86.70160675048828,30.99559020996105],[-86.77204895019524,31.00000953674322],[-87.21276855468737,31.000719070434798],[-87.60121154785155,31.00036048889166],[-87.59046936035156,30.965362548828125],[-87.63722991943354,30.867040634155213],[-87.54714965820312,30.779718399048136],[-87.53276062011719,30.744739532470877],[-87.46852874755852,30.701368331909233],[-87.40706634521483,30.67308998107916],[-87.39742279052734,30.61063957214367],[-87.44822692871088,30.518020629882923],[-87.43598175048828,30.483200073242188],[-87.39971923828125,30.423610687255916],[-87.44972229003899,30.398332595825195],[-87.46499633789057,30.35972213745123],[-87.53407287597656,30.321081161499077],[-87.57073974609375,30.271423339843693],[-87.65666961669916,30.250000000000288],[-87.83305358886719,30.227222442627067],[-87.95471954345697,30.23055648803711],[-87.93514251708979,30.260488510131946],[-87.86040496826166,30.240602493286133],[-87.76721954345697,30.26333236694336],[-87.77108764648436,30.309955596923885],[-87.83777618408197,30.367500305175895],[-87.90911102294915,30.41420555114757],[-87.93591308593744,30.484655380249023],[-87.90176391601557,30.550811767578235],[-87.9149322509765,30.58551979064947],[-87.91416931152338,30.65083312988281],[-88.00863647460936,30.738256454467887],[-88.01166534423817,30.687221527099666],[-88.08721923828125,30.566944122314567],[-88.10382080078125,30.50060844421398],[-88.10619354248045,30.38460731506348],[-88.1147689819336,30.358823776245174],[-88.1884994506836,30.318782806396595],[-88.20956420898438,30.360746383667045],[-88.25881195068358,30.38181877136248],[-88.35921478271484,30.404615402221737],[-88.39940643310541,30.3950023651123],[-88.4101333618164,30.70327949523937],[-88.43276977539057,31.149320602416932],[-88.45070648193354,31.444009780883846],[-88.47203063964844,31.899951934814734],[-88.42616271972656,32.26203155517584],[-88.3909072875976,32.556411743164176],[-88.3370895385742,33.000080108642635],[-88.30110931396484,33.299499511718864],[-88.24739837646477,33.74988937377941],[-88.20667266845697,34.0458221435548],[-88.15349578857422,34.48810958862305],[-88.11116790771484,34.7831916809082],[-88.0979614257812,34.89635848999029],[-88.15249633789057,34.926921844482536],[-88.19957733154295,34.997821807861385],[-88.20189666748041,35.00888061523449],[-87.61036682128906,35.00487136840826],[-87.22883605957031,35.00032043457031],[-86.88439178466791,34.99240875244146],[-86.4191665649414,34.990901947021484],[-86.31871795654295,34.99213027954107],[-85.6055068969726,34.98553085327142]]]},"properties":{"ID_0":244,"ISO":"US-AL","NAME_0":"United States","ID_1":1,"NAME_1":"Alabama","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"AL|Ala."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-179.10066223144534,51.301120758056754],[-179.0704345703125,51.256408691406364],[-179.0944366455078,51.22708511352545],[-179.14277648925778,51.22888946533209],[-179.14222717285156,51.28333282470714],[-179.10066223144534,51.301120758056754]]],[[[-178.96945190429682,51.4022216796875],[-178.92832946777344,51.3841667175293],[-178.90834045410153,51.338611602783196],[-178.9888916015625,51.3230552673341],[-178.96945190429682,51.4022216796875]]],[[[178.6650848388672,51.66043472290045],[178.68666076660153,51.64472198486333],[178.80392456054685,51.63498687744146],[178.9683380126953,51.5885581970216],[179.0213623046875,51.53345489501953],[179.10945129394543,51.4827766418457],[179.21470642089855,51.44129943847656],[179.227783203125,51.41333389282221],[179.33555603027344,51.40750122070324],[179.4700012207031,51.37305450439453],[179.4009246826172,51.36051177978521],[179.36184692382812,51.371936798095646],[179.2607879638672,51.35708618164068],[179.22500610351574,51.385833740234375],[179.06166076660156,51.45360946655273],[178.9477844238281,51.54194259643555],[178.78555297851574,51.56972122192394],[178.6309814453125,51.6239128112793],[178.6650848388672,51.66043472290045]]],[[[178.2213592529298,51.83611297607422],[178.304443359375,51.82333374023437],[178.3594512939454,51.786666870117294],[178.3353729248049,51.76927185058599],[178.23046875000023,51.81610107421875],[178.2213592529298,51.83611297607422]]],[[[-178.8138885498047,51.837501525878956],[-178.74838256835932,51.809780120849666],[-178.73318481445312,51.78066635131847],[-178.77055358886716,51.746944427490234],[-178.81393432617185,51.74600982666027],[-178.87333679199213,51.781665802001946],[-178.86000061035153,51.819721221923885],[-178.8138885498047,51.837501525878956]]],[[[-176.30389404296875,51.87250137329107],[-176.28054809570312,51.85916519165045],[-176.2672271728515,51.776111602783146],[-176.3505554199219,51.72638702392589],[-176.39666748046872,51.73361206054699],[-176.42666625976557,51.85333251953131],[-176.39944458007812,51.86833190917963],[-176.30389404296875,51.87250137329107]]],[[[-176.18508911132815,51.88279724121105],[-176.1316680908203,51.85055541992199],[-176.07167053222656,51.85444259643566],[-176.1596221923828,51.76978302001953],[-176.23500061035153,51.821945190429794],[-176.18508911132815,51.88279724121105]]],[[[-175.99610900878903,51.91361236572271],[-175.96556091308588,51.84583282470703],[-176.060562133789,51.86333465576183],[-176.06832885742188,51.90416717529308],[-175.99610900878903,51.91361236572271]]],[[[-178.09172058105466,51.91822433471679],[-177.99110412597653,51.91177749633789],[-177.9027709960937,51.87666702270508],[-177.92555236816398,51.8577766418457],[-177.84609985351562,51.82472229003912],[-177.76889038085935,51.83972167968744],[-177.76222229003903,51.80749893188482],[-177.84111022949216,51.732223510742244],[-177.8188934326172,51.71055603027355],[-177.92778015136716,51.64555740356451],[-178.01832580566406,51.6488876342774],[-178.11778259277344,51.67527770996105],[-178.0805511474609,51.702499389648494],[-177.96110534667966,51.720275878906364],[-177.96110534667966,51.77416610717784],[-178.05555725097648,51.78277587890631],[-178.09500122070312,51.81583404541026],[-178.22444152832026,51.8616676330567],[-178.190200805664,51.910007476806584],[-178.09172058105466,51.91822433471679]]],[[[-177.1583404541015,51.94444274902343],[-177.05206298828122,51.907852172851555],[-177.06500244140622,51.861110687255916],[-177.13221740722653,51.831111907959034],[-177.11500549316406,51.78472137451177],[-177.1327819824218,51.717224121093864],[-177.28999328613278,51.68111038208019],[-177.34555053710932,51.720275878906364],[-177.39999389648432,51.73277664184582],[-177.48388671875,51.69916534423828],[-177.61666870117182,51.70416641235363],[-177.64389038085935,51.68444442749029],[-177.6999969482422,51.71277618408209],[-177.63722229003906,51.7408332824707],[-177.56111145019528,51.720832824707145],[-177.46221923828122,51.7513885498048],[-177.29167175292963,51.781944274902344],[-177.2217864990234,51.80667877197276],[-177.19778442382812,51.90277862548834],[-177.1583404541015,51.94444274902343]]],[[[178.49499511718773,51.99388885498047],[178.57556152343759,51.96389007568354],[178.57611083984386,51.930831909179794],[178.51499938964844,51.89805603027355],[178.4525604248048,51.939254760742294],[178.49499511718773,51.99388885498047]]],[[[-176.57974243164057,52.0020484924317],[-176.55722045898432,51.963054656982415],[-176.62055969238276,51.90083312988287],[-176.62722778320307,51.854999542236385],[-176.5270538330078,51.83384704589844],[-176.46812438964844,51.853282928466854],[-176.42721557617188,51.83666610717779],[-176.4250030517578,51.74055480957031],[-176.52333068847656,51.75194549560558],[-176.54722595214838,51.7094459533692],[-176.67500305175776,51.676109313964844],[-176.7149963378906,51.68055725097661],[-176.72332763671872,51.6247215270996],[-176.81388854980466,51.647220611572266],[-176.8672180175781,51.682777404785156],[-176.93444824218744,51.591388702392635],[-176.98388671875003,51.602500915527344],[-176.98722839355472,51.65722274780284],[-176.89500427246097,51.70083236694336],[-176.86555480957026,51.747222900390625],[-176.92222595214838,51.78749847412109],[-176.87554931640628,51.81000137329113],[-176.80778503417966,51.779167175293026],[-176.77389526367182,51.808334350585994],[-176.78833007812497,51.84305572509771],[-176.77166748046875,51.88666534423828],[-176.81111145019526,51.92638778686534],[-176.78889465332028,51.958332061767635],[-176.72291564941403,51.968101501464844],[-176.66278076171872,51.951667785644645],[-176.61721801757807,51.99444580078125],[-176.57974243164057,52.0020484924317]]],[[[179.62429809570312,52.025363922119254],[179.76110839843773,51.97492980957042],[179.73881530761741,51.91116333007818],[179.61163330078136,51.870891571045036],[179.48301696777366,51.91949844360363],[179.4796905517578,51.98307037353521],[179.52459716796898,51.98248672485346],[179.62429809570312,52.025363922119254]]],[[[178.14764404296875,52.05070877075207],[178.1732177734375,51.99121475219738],[178.10888671874997,51.99694442749035],[178.08911132812523,52.03526687622082],[178.14764404296875,52.05070877075207]]],[[[-176.1485748291015,52.116310119628906],[-176.07943725585932,52.10333251953124],[-176.00399780273432,52.06903839111328],[-175.9822235107422,52.02888870239258],[-176.050064086914,52.01929092407221],[-176.02111816406247,51.98305511474615],[-176.08666992187503,51.97111129760747],[-176.18763732910156,52.000881195068416],[-176.20858764648435,52.07543182373058],[-176.1485748291015,52.116310119628906]]],[[[177.5965270996095,52.133625030517635],[177.67343139648438,52.090263366699276],[177.63221740722665,52.04051971435558],[177.5336914062502,51.97095489501953],[177.60166931152352,51.94749832153326],[177.5549011230471,51.91329956054699],[177.5044403076172,51.934722900390625],[177.43167114257835,51.9375],[177.34779357910168,51.90449142456055],[177.3255615234375,51.82749938964855],[177.19888305664062,51.89500045776367],[177.30722045898438,51.931667327880916],[177.37533569335938,51.97649383544922],[177.4772186279297,51.98277664184576],[177.50718688964864,52.05012512207031],[177.5965270996095,52.133625030517635]]],[[[-173.5233306884765,52.153888702392635],[-173.538330078125,52.127498626708984],[-173.49470520019523,52.10294723510748],[-173.27278137207023,52.10969161987316],[-173.2227783203125,52.095275878906364],[-173.03530883789057,52.10163879394531],[-173.15277099609372,52.0591659545899],[-173.33332824707023,52.054443359375114],[-173.37889099121094,52.03805541992199],[-173.45056152343747,52.04694366455084],[-173.5127716064453,52.03027725219732],[-173.7133331298828,52.05666732788097],[-173.84056091308594,52.04083251953131],[-173.9422149658203,52.069168090820256],[-174.02073669433588,52.12904357910167],[-173.90222167968747,52.113056182861385],[-173.59889221191406,52.15444564819341],[-173.5233306884765,52.153888702392635]]],[[[-172.40167236328128,52.389167785644645],[-172.3738861083984,52.3663902282716],[-172.3055572509765,52.35472106933594],[-172.3211059570312,52.314723968505966],[-172.43943786621097,52.283332824707145],[-172.53833007812497,52.24583435058594],[-172.60774230957028,52.252479553222656],[-172.63000488281244,52.288055419921925],[-172.56222534179685,52.35444259643555],[-172.4377746582031,52.39277648925787],[-172.40167236328128,52.389167785644645]]],[[[-174.14999389648435,52.420276641845696],[-174.0677795410156,52.39027786254877],[-173.98832702636713,52.318054199218864],[-174.06584167480463,52.22333908081066],[-174.19999694824216,52.22083282470703],[-174.1972198486328,52.19583511352545],[-174.08999633789057,52.139720916748104],[-174.1322174072265,52.11888885498052],[-174.2166595458984,52.11777877807617],[-174.23110961914065,52.09194564819347],[-174.33055114746094,52.12027740478526],[-174.41278076171878,52.04861068725597],[-174.5211181640625,52.06472396850586],[-174.64778137207026,52.02305603027344],[-174.68722534179685,52.03978729248058],[-174.7394409179687,52.00694274902355],[-174.78875732421872,52.03103637695312],[-174.87181091308588,52.04229354858404],[-174.96722412109375,52.03749847412121],[-175.0153656005859,52.00872421264654],[-175.153335571289,52.01194381713873],[-175.14218139648432,52.05962753295904],[-175.08531188964847,52.03961563110357],[-175.02221679687497,52.07500076293945],[-174.9166717529297,52.08361053466808],[-174.8988952636718,52.10499954223633],[-174.76666259765622,52.086666107177734],[-174.64778137207026,52.104442596435604],[-174.56111145019528,52.13472366333008],[-174.5594482421875,52.18138885498047],[-174.5052337646484,52.173114776611385],[-174.45056152343744,52.21972274780285],[-174.33166503906247,52.2113876342774],[-174.22999572753903,52.25111007690435],[-174.24055480957026,52.27555465698247],[-174.35444641113276,52.27888870239252],[-174.45111083984375,52.303333282470696],[-174.42832946777347,52.32638931274413],[-174.35888671875,52.313331604003906],[-174.3202209472656,52.34195327758795],[-174.3333282470703,52.37277603149414],[-174.14999389648435,52.420276641845696]]],[[[173.77308654785156,52.50911331176758],[173.70889282226582,52.47777938842784],[173.69000244140645,52.44250106811535],[173.71714782714855,52.39928817749023],[173.6944274902346,52.365001678466854],[173.64035034179688,52.35674285888683],[173.5850067138673,52.40027618408214],[173.47055053710946,52.38111114501959],[173.3582763671875,52.405776977539176],[173.38232421875,52.431064605713004],[173.53042602539074,52.44762802124035],[173.59500122070312,52.47472381591797],[173.602783203125,52.50138854980469],[173.77308654785156,52.50911331176758]]],[[[-171.2511444091797,52.5303955078125],[-171.1959686279296,52.494960784912216],[-171.23263549804688,52.451702117919915],[-171.30470275878903,52.44940185546881],[-171.31452941894526,52.49404144287115],[-171.2511444091797,52.5303955078125]]],[[[-170.66499328613278,52.70166778564453],[-170.56225585937491,52.674110412597706],[-170.56393432617188,52.64185714721674],[-170.6074066162109,52.60158538818365],[-170.68310546874997,52.602237701416016],[-170.73641967773435,52.58390426635742],[-170.79504394531244,52.54250717163086],[-170.8433380126953,52.56055450439453],[-170.82722473144528,52.62666702270513],[-170.7535705566406,52.6533317565918],[-170.72969055175784,52.68110275268565],[-170.66499328613278,52.70166778564453]]],[[[-170.12530517578122,52.792095184326286],[-170.05253601074216,52.77259445190435],[-170.08500671386722,52.7180557250976],[-170.18777465820307,52.721942901611435],[-170.16970825195307,52.78618240356456],[-170.12530517578122,52.792095184326286]]],[[[-169.77592468261722,52.8936157226563],[-169.67666625976557,52.87138748168951],[-169.6772155761719,52.82444381713867],[-169.73500061035156,52.77361297607422],[-169.7761993408203,52.81015777587902],[-169.87792968749997,52.81529998779308],[-169.92500305175776,52.78833389282221],[-170.00080871582026,52.80866241455078],[-170.00610351562497,52.84694290161133],[-169.95056152343744,52.86222076416027],[-169.88389587402338,52.84972381591797],[-169.85888671875,52.883056640625],[-169.77592468261722,52.8936157226563]]],[[[-170.05734252929688,52.9249725341798],[-169.99555969238284,52.90416717529308],[-170.0448455810547,52.86059951782238],[-170.125,52.89972305297846],[-170.05734252929688,52.9249725341798]]],[[[172.78111267089844,53.0099983215332],[172.88829040527344,52.99635314941406],[172.9529571533203,52.97171401977545],[173.00444030761753,52.992778778076286],[173.1244659423828,52.990329742431584],[173.17333984375023,52.957500457763786],[173.30389404296875,52.92416763305664],[173.2873687744143,52.85907363891613],[173.22999572753918,52.85749816894531],[173.11610412597676,52.784442901611385],[173.0555572509769,52.83227157592773],[172.99555969238304,52.80666732788085],[172.93666076660202,52.75361251831066],[172.89222717285168,52.78888702392584],[172.75184631347668,52.80765151977539],[172.76870727539062,52.868019104003906],[172.63006591796875,52.88063049316411],[172.6354217529297,52.925048828125],[172.5194396972656,52.907222747802734],[172.45443725585946,52.921409606933594],[172.55055236816426,52.97083282470703],[172.65333557128906,53.003612518310604],[172.72799682617233,52.99763107299805],[172.78111267089844,53.0099983215332]]],[[[-169.68222045898435,53.035831451416065],[-169.66888427734372,53.00609970092785],[-169.69932556152344,52.955879211425895],[-169.76362609863284,52.982513427734425],[-169.7480316162109,53.0208091735841],[-169.68222045898435,53.035831451416065]]],[[[-168.00531005859375,53.56599044799805],[-167.93702697753903,53.52629852294927],[-167.7912292480469,53.52108383178722],[-167.784194946289,53.49969100952154],[-167.8531799316406,53.448654174804744],[-167.841323852539,53.38613891601574],[-167.8741912841797,53.36713027954107],[-168.08888244628898,53.29611206054699],[-168.1211090087891,53.276111602783196],[-168.27221679687494,53.241111755371094],[-168.36555480957026,53.16999816894537],[-168.37167358398435,53.144721984863224],[-168.44383239746097,53.08420181274413],[-168.46000671386716,53.05472183227545],[-168.52444458007807,53.027500152588004],[-168.5888824462891,53.027221679687614],[-168.64944458007815,52.97360992431652],[-168.7281799316406,52.94363403320324],[-168.81666564941403,52.92444610595703],[-168.9564208984375,52.86644744873041],[-168.97277832031247,52.9183349609375],[-168.86444091796872,52.94388961791997],[-168.86054992675778,53.01139068603527],[-168.7994384765625,53.02999877929693],[-168.7616729736328,53.08111190795893],[-168.8055572509766,53.1058349609375],[-168.7701263427734,53.17716598510747],[-168.5872192382812,53.2716674804688],[-168.50944519042972,53.25138854980468],[-168.34445190429688,53.26139068603521],[-168.3738861083984,53.300556182861385],[-168.42944335937494,53.32361221313482],[-168.38444519042963,53.3805541992188],[-168.40777587890622,53.42194366455084],[-168.3453826904297,53.47025299072277],[-168.23609924316406,53.52833938598644],[-168.0861053466797,53.55972290039074],[-168.00531005859375,53.56599044799805]]],[[[-166.12167358398435,53.854721069335994],[-166.13221740722656,53.76750183105469],[-166.17721557617188,53.73389053344732],[-166.25111389160156,53.71583175659191],[-166.2911071777344,53.73777770996093],[-166.30610656738276,53.78972244262695],[-166.21499633789062,53.81416702270508],[-166.2038879394531,53.834720611572266],[-166.12167358398435,53.854721069335994]]],[[[-166.65777587890625,54.01139068603527],[-166.60278320312494,53.98472213745123],[-166.60333251953125,53.954444885253906],[-166.6477813720703,53.92583465576172],[-166.63706970214844,53.875976562500114],[-166.59555053710935,53.848331451416065],[-166.50442504882812,53.91167449951166],[-166.4488830566406,53.90250015258794],[-166.41999816894526,53.94472122192394],[-166.3427734375,53.94555664062505],[-166.27499389648432,53.98308181762706],[-166.21444702148432,53.90916824340826],[-166.2394409179687,53.880554199218864],[-166.38693237304688,53.84449005126964],[-166.41278076171875,53.80805587768555],[-166.47778320312497,53.7877769470216],[-166.46000671386713,53.74916839599604],[-166.33837890625,53.7859840393067],[-166.26930236816403,53.69794845581049],[-166.31222534179685,53.678890228271484],[-166.41413879394523,53.67065429687506],[-166.44941711425784,53.63434219360357],[-166.50721740722648,53.643333435058594],[-166.5533294677734,53.61527633666998],[-166.57553100585935,53.5559463500976],[-166.62554931640625,53.55583190917974],[-166.65777587890625,53.48638916015625],[-166.73791503906244,53.506439208984425],[-166.74110412597653,53.467777252197266],[-166.8405609130859,53.44722366333013],[-166.88610839843744,53.46638870239269],[-166.99945068359372,53.43000030517583],[-167.1276397705078,53.42706680297863],[-167.17053222656247,53.39754867553705],[-167.27438354492185,53.37524032592773],[-167.30751037597656,53.33442687988287],[-167.45552062988278,53.321109771728516],[-167.50373840332028,53.25849914550786],[-167.53805541992182,53.27863311767578],[-167.6091003417968,53.28460693359381],[-167.62240600585935,53.253005981445426],[-167.83045959472653,53.29566955566411],[-167.85450744628903,53.309505462646534],[-167.75451660156253,53.34933853149414],[-167.69624328613284,53.38687133789068],[-167.59526062011713,53.38101196289074],[-167.5333251953125,53.39428710937506],[-167.4642639160156,53.44709396362315],[-167.41766357421875,53.432865142822266],[-167.34423828124997,53.450363159179744],[-167.30229187011713,53.43980026245122],[-167.26928710937503,53.47750091552746],[-167.20005798339838,53.46179580688488],[-167.15731811523438,53.48029708862316],[-167.17543029785156,53.52698516845703],[-167.14160156249994,53.56043243408209],[-167.16499328613278,53.60138702392578],[-167.0675811767578,53.66388320922857],[-167.0543365478515,53.700603485107536],[-167,53.71749877929681],[-166.90388488769528,53.71777725219737],[-166.8561096191406,53.673610687255916],[-166.76110839843747,53.734165191650504],[-166.8600006103515,53.73722076416021],[-166.96444702148435,53.7772216796875],[-167.01029968261713,53.754508972167905],[-167.0926971435546,53.79009628295898],[-167.0951995849609,53.81935882568354],[-167.1534729003906,53.828693389892635],[-167.07556152343747,53.924999237060604],[-167.02278137207026,53.953887939453125],[-166.87840270996088,53.98870468139654],[-166.8387603759765,53.97845077514654],[-166.7458190917969,54.014492034912166],[-166.65777587890625,54.01139068603527]]],[[[-165.35388183593747,54.09305572509759],[-165.26440429687491,54.091674804687614],[-165.3143157958984,54.04611587524419],[-165.35388183593747,54.09305572509759]]],[[[-165.00277709960938,54.13722229003912],[-164.9310913085937,54.135833740234375],[-164.92054748535156,54.1099205017091],[-164.95573425292966,54.07272338867193],[-165.08221435546875,54.069091796875],[-165.13267517089847,54.08633422851574],[-165.14398193359372,54.13110351562506],[-165.0322265625,54.11450195312506],[-165.00277709960938,54.13722229003912]]],[[[-165.92999267578122,54.21972274780279],[-165.88000488281241,54.18249893188482],[-165.7483367919922,54.16110992431652],[-165.73828124999994,54.112487792968864],[-165.6743774414062,54.09448242187506],[-165.77333068847653,54.06444549560541],[-165.85133361816406,54.055744171142685],[-165.93559265136713,54.065620422363274],[-166.04499816894526,54.04416656494146],[-166.05172729492188,54.0750350952149],[-166.11093139648435,54.12012100219732],[-166.08612060546872,54.173889160156364],[-165.97668457031244,54.22088623046874],[-165.92999267578122,54.21972274780279]]],[[[-165.6300659179687,54.29932403564459],[-165.57312011718747,54.25109863281256],[-165.4940948486328,54.20811462402344],[-165.49310302734372,54.16821289062494],[-165.55000305175784,54.111946105956974],[-165.61926269531241,54.123867034912045],[-165.59825134277344,54.164470672607536],[-165.63713073730466,54.19501495361334],[-165.67779541015628,54.26251220703131],[-165.6300659179687,54.29932403564459]]],[[[-162.80000305175776,54.491943359375],[-162.6989135742187,54.466674804687614],[-162.59552001953128,54.4522705078125],[-162.5391235351562,54.38629150390631],[-162.6522064208984,54.38003158569336],[-162.77552795410153,54.41089630126959],[-162.8377838134765,54.444168090820426],[-162.80000305175776,54.491943359375]]],[[[-159.58586120605466,54.83075714111334],[-159.51167297363278,54.78948974609375],[-159.58280944824216,54.773559570312614],[-159.58586120605466,54.83075714111334]]],[[[-159.7279052734375,54.84130859374994],[-159.77612304687497,54.79229736328119],[-159.82220458984375,54.81652832031249],[-159.7279052734375,54.84130859374994]]],[[[-130.52333068847656,54.862678527831974],[-130.505615234375,54.83420181274414],[-130.56500244140625,54.79999923706066],[-130.61054992675776,54.8136100769043],[-130.52333068847656,54.862678527831974]]],[[[-132.72900390625,54.94030761718744],[-132.65322875976557,54.874263763427734],[-132.6667022705078,54.83112716674804],[-132.6105499267578,54.7750015258789],[-132.67832946777332,54.766944885253906],[-132.70520019531241,54.815124511718864],[-132.78710937499994,54.856678009033196],[-132.8172149658203,54.924167633056754],[-132.72900390625,54.94030761718744]]],[[[-159.27888488769528,54.94972229003912],[-159.26277160644528,54.924167633056754],[-159.20001220703122,54.909729003906364],[-159.23277282714847,54.878334045410156],[-159.30944824218753,54.86611175537104],[-159.32556152343753,54.89305496215832],[-159.27888488769528,54.94972229003912]]],[[[-162.2960815429687,54.981079101562614],[-162.24609375000003,54.97055435180664],[-162.23280334472653,54.885044097900504],[-162.27333068847653,54.84333419799805],[-162.31944274902338,54.827777862548885],[-162.40222167968744,54.87890625],[-162.4251098632812,54.921665191650504],[-162.32388305664062,54.983612060546875],[-162.2960815429687,54.981079101562614]]],[[[-131.2432861328125,55.00250244140625],[-131.25555419921875,54.96916580200207],[-131.1900634765625,54.91614151000988],[-131.2321777343749,54.89227294921875],[-131.3483276367187,54.85610961914068],[-131.39271545410156,54.89253616333007],[-131.46667480468744,54.91333007812506],[-131.4921875,54.9467163085938],[-131.37110900878898,54.9752769470216],[-131.31439208984375,54.96588134765625],[-131.2432861328125,55.00250244140625]]],[[[-163.77154541015622,55.05148315429699],[-163.66555786132807,55.04027938842779],[-163.56156921386716,55.045875549316456],[-163.53277587890622,55.01531982421875],[-163.4421997070312,54.97167968750006],[-163.39501953124994,54.894470214843864],[-163.41499328613278,54.85889053344732],[-163.3732757568359,54.821949005126896],[-163.37606811523435,54.79192733764654],[-163.33000183105466,54.75305557250988],[-163.14833068847653,54.76444625854497],[-163.09997558593747,54.72949218750011],[-163.08880615234372,54.66131591796874],[-163.1950073242187,54.69891357421881],[-163.28500366210938,54.695835113525504],[-163.3305511474609,54.731388092041016],[-163.39387512207028,54.74331283569347],[-163.42558288574216,54.719997406005916],[-163.42080688476562,54.655727386474666],[-163.50439453124994,54.65032958984386],[-163.58679199218744,54.610473632812614],[-163.66938781738276,54.6261100769043],[-163.82388305664057,54.63194274902344],[-164,54.63027954101568],[-164.09277343749997,54.62055587768555],[-164.23779296874994,54.58532714843761],[-164.32110595703116,54.54499816894537],[-164.3543090820312,54.46368026733404],[-164.4488830566406,54.42139053344737],[-164.65499877929682,54.3886108398438],[-164.75332641601557,54.39416503906256],[-164.84777832031247,54.41999816894531],[-164.91387939453125,54.482299804687614],[-164.94778442382807,54.575553894043026],[-164.9288940429687,54.59967041015624],[-164.85171508789062,54.62911987304693],[-164.76547241210932,54.639480590820426],[-164.6978149414062,54.671691894531364],[-164.5583343505859,54.8486099243164],[-164.5543823242187,54.88779449462902],[-164.43333435058594,54.93277740478521],[-164.30944824218747,54.89694595336914],[-164.17944335937494,54.939445495605526],[-164.12939453125,54.9697265625],[-164.05718994140622,54.9622802734375],[-163.94111633300778,55.00722122192382],[-163.8961181640625,55.03638839721679],[-163.77154541015622,55.05148315429699]]],[[[-161.81832885742185,55.18083190917968],[-161.72721862792963,55.13944625854498],[-161.64160156249997,55.12750244140631],[-161.63444519042966,55.10472106933588],[-161.7100067138672,55.07944488525396],[-161.7327728271484,55.053333282470696],[-161.800552368164,55.08222198486328],[-161.81944274902338,55.11138916015619],[-161.9038848876953,55.14277648925787],[-161.81832885742185,55.18083190917968]]],[[[-132.8393096923827,55.2015495300293],[-132.74389648437497,55.13854980468755],[-132.71055603027338,55.0972900390625],[-132.68565368652338,55.02854156494146],[-132.7483367919922,54.98950576782232],[-132.8021850585937,55.02307128906244],[-132.893798828125,55.03729248046881],[-132.82501220703125,55.07470703125006],[-132.88391113281244,55.108886718750114],[-132.89730834960938,55.15472412109375],[-132.8393096923827,55.2015495300293]]],[[[-161.34934997558594,55.22190093994146],[-161.33833312988278,55.159168243408146],[-161.41448974609378,55.18083190917968],[-161.42727661132807,55.21670913696294],[-161.34934997558594,55.22190093994146]]],[[[-159.5216674804687,55.24361038208019],[-159.4958953857421,55.13758087158203],[-159.53277587890625,55.08416748046874],[-159.51019287109378,55.04132080078131],[-159.6484069824218,55.0533905029298],[-159.59552001953125,55.11590576171881],[-159.5216674804687,55.24361038208019]]],[[[-161.53997802734375,55.26007080078131],[-161.58001708984375,55.21228027343744],[-161.62724304199216,55.1950035095216],[-161.69781494140622,55.20947265625],[-161.66055297851557,55.24583435058605],[-161.53997802734375,55.26007080078131]]],[[[-133.11788940429688,55.25336074829113],[-133.0950164794922,55.20694351196295],[-133.00946044921872,55.12305450439453],[-133.03001403808588,55.03858947753906],[-132.95466613769523,55.01605606079107],[-132.95829772949213,54.97529220581048],[-132.9146575927734,54.92107772827159],[-132.7720947265625,54.834335327148494],[-132.7288818359375,54.78499984741211],[-132.6722259521483,54.669445037841854],[-132.84381103515625,54.68652343750005],[-132.90382385253906,54.77475357055669],[-132.97694396972656,54.80500030517584],[-133.0911102294922,54.91999816894537],[-133.16131591796875,54.94647216796875],[-133.1477813720703,54.99694442749029],[-133.1961212158203,55.03138732910162],[-133.23945617675776,55.08666610717785],[-133.21034240722653,55.13405990600586],[-133.23046874999994,55.17662048339838],[-133.2216796875,55.24139022827148],[-133.11788940429688,55.25336074829113]]],[[[-131.5631103515625,55.284473419189396],[-131.46627807617182,55.22483444213867],[-131.39584350585938,55.2086296081543],[-131.35147094726557,55.12331008911127],[-131.37571716308594,55.0909042358399],[-131.35626220703125,55.04029464721691],[-131.38650512695312,55.01252746582037],[-131.49230957031244,55.01208496093749],[-131.53179931640616,55.03729248046881],[-131.59777832031244,54.99888992309576],[-131.64898681640622,55.03472900390625],[-131.59109497070312,55.0873260498048],[-131.5955200195312,55.124877929687614],[-131.53135681152344,55.14006805419921],[-131.60504150390616,55.21422576904296],[-131.5631103515625,55.284473419189396]]],[[[-159.87408447265622,55.28808593750006],[-159.85250854492185,55.23112106323242],[-159.89416503906244,55.2170295715332],[-159.86166381835935,55.17499923706049],[-159.81111145019528,55.17277908325195],[-159.82888793945312,55.127223968505916],[-159.94549560546872,55.10472106933588],[-159.9386138916015,55.064922332763786],[-160.10998535156241,54.98632812499999],[-160.11999511718744,54.94891357421875],[-160.17999267578122,54.9375],[-160.20666503906253,54.874168395996094],[-160.2533111572265,54.893825531005966],[-160.25666809082028,54.930557250976676],[-160.18968200683594,54.96489334106451],[-160.13661193847653,55.011142730713004],[-160.13922119140625,55.07507324218756],[-160.1927795410156,55.10277938842773],[-160.12445068359375,55.13333511352545],[-159.99789428710935,55.13281631469738],[-160.0521850585937,55.18548583984381],[-159.96612548828125,55.207275390625114],[-159.87408447265622,55.28808593750006]]],[[[-133.34777832031244,55.3438873291015],[-133.22998046875,55.26867675781256],[-133.25224304199213,55.22312545776367],[-133.31390380859375,55.21179580688488],[-133.39060974121088,55.22861480712896],[-133.45999145507812,55.22364425659174],[-133.4635009765625,55.32011413574219],[-133.34777832031244,55.3438873291015]]],[[[-160.36500549316403,55.36277770996087],[-160.33020019531247,55.35772705078131],[-160.30790710449213,55.30301284790039],[-160.34442138671872,55.25531005859381],[-160.3894500732422,55.28610992431635],[-160.4833374023437,55.291389465332145],[-160.51419067382812,55.321777343749936],[-160.49444580078122,55.35388946533209],[-160.42189025878906,55.338138580322266],[-160.36500549316403,55.36277770996087]]],[[[-160.7033233642578,55.399452209472656],[-160.6476898193359,55.38637542724621],[-160.66523742675778,55.301513671875114],[-160.59777832031241,55.33752441406256],[-160.57278442382807,55.389167785644524],[-160.52490234375003,55.381103515625],[-160.52806091308585,55.34296417236328],[-160.5786437988281,55.31374359130871],[-160.57017517089844,55.27597808837901],[-160.49569702148438,55.223270416259766],[-160.4967498779297,55.15796661376953],[-160.62756347656247,55.15743637084972],[-160.68359375000003,55.19290924072271],[-160.75738525390625,55.19409179687506],[-160.78926086425784,55.153873443603516],[-160.85552978515625,55.20672607421886],[-160.83538818359375,55.241836547851676],[-160.8611145019531,55.27388763427729],[-160.8416595458984,55.340557098388615],[-160.80218505859372,55.38092041015625],[-160.7033233642578,55.399452209472656]]],[[[-131.8388214111328,55.42302322387695],[-131.70442199707026,55.355159759521534],[-131.6169281005859,55.29354095458979],[-131.68777465820312,55.28111267089855],[-131.69110107421875,55.223876953125114],[-131.76666259765625,55.131717681884766],[-131.82720947265625,55.18768310546869],[-131.86938476562494,55.31970214843749],[-131.87666320800776,55.381668090820256],[-131.8388214111328,55.42302322387695]]],[[[-133.57574462890625,55.432853698730526],[-133.4983367919922,55.41916656494146],[-133.459228515625,55.37890625000006],[-133.56915283203114,55.3338890075683],[-133.6105499267578,55.253055572509766],[-133.6688842773437,55.276943206787166],[-133.69042968749994,55.31816101074219],[-133.63162231445298,55.361137390136776],[-133.67118835449213,55.37660980224615],[-133.57574462890625,55.432853698730526]]],[[[-133.2503051757812,55.449707031250114],[-133.25390625,55.4061279296875],[-133.32716369628906,55.41245269775396],[-133.2977752685547,55.44555664062494],[-133.2503051757812,55.449707031250114]]],[[[-160.26223754882812,55.463352203369254],[-160.20381164550776,55.43893051147472],[-160.14221191406244,55.45031738281244],[-160.16555786132812,55.39472198486334],[-160.24002075195312,55.41333389282232],[-160.3261108398437,55.39532470703131],[-160.32432556152344,55.44515228271496],[-160.26223754882812,55.463352203369254]]],[[[-133.49063110351557,55.515777587890625],[-133.43328857421875,55.48608398437506],[-133.4282836914062,55.45031738281244],[-133.52960205078125,55.42871093750006],[-133.60086059570312,55.46937179565429],[-133.49063110351557,55.515777587890625]]],[[[-133.7244415283203,55.5587158203125],[-133.6205596923827,55.55194473266601],[-133.58653259277344,55.505180358886776],[-133.6316680908203,55.49083328247082],[-133.67056274414062,55.43805694580084],[-133.78443908691406,55.484722137451286],[-133.7133178710937,55.524475097656364],[-133.7244415283203,55.5587158203125]]],[[[-133.410903930664,55.56947326660162],[-133.28839111328114,55.53851318359375],[-133.28552246093744,55.50531005859375],[-133.361083984375,55.45330810546881],[-133.45555114746088,55.533611297607415],[-133.410903930664,55.56947326660162]]],[[[-133.56776428222656,55.8353385925293],[-133.51440429687494,55.82110595703119],[-133.49166870117188,55.79000091552746],[-133.40327453613276,55.79630279541027],[-133.36666870117182,55.758911132812614],[-133.41610717773438,55.74000167846679],[-133.51533508300776,55.76200866699219],[-133.49229431152344,55.70712280273437],[-133.531982421875,55.69268798828131],[-133.64500427246094,55.72916793823247],[-133.6852264404297,55.77380371093744],[-133.663330078125,55.818611145019645],[-133.56776428222656,55.8353385925293]]],[[[-158.82278442382815,55.893890380859425],[-158.74951171875,55.87644577026373],[-158.74745178222648,55.8522109985351],[-158.86444091796875,55.841667175293075],[-158.82278442382815,55.893890380859425]]],[[[-131.63092041015625,55.90509033203124],[-131.58618164062486,55.86658096313488],[-131.66180419921864,55.8602905273438],[-131.63092041015625,55.90509033203124]]],[[[-155.56222534179682,55.90527725219738],[-155.58500671386707,55.85444259643555],[-155.56388854980472,55.78972244262707],[-155.6127777099609,55.75666809082031],[-155.72944641113284,55.78027725219732],[-155.75500488281253,55.8227767944337],[-155.66667175292966,55.85416793823253],[-155.63945007324213,55.89666748046875],[-155.56222534179682,55.90527725219738]]],[[[-133.29750061035156,55.90712738037104],[-133.223876953125,55.86309814453125],[-133.2161407470703,55.82427215576177],[-133.25999450683594,55.772094726562436],[-133.3240966796875,55.8145141601563],[-133.35278320312497,55.87555694580083],[-133.29750061035156,55.90712738037104]]],[[[-134.2705535888671,55.93188858032226],[-134.25640869140622,55.88970947265631],[-134.1788787841797,55.91844558715832],[-134.1337432861328,55.89657592773443],[-134.22828674316406,55.864028930664006],[-134.2705535888671,55.828056335449276],[-134.339111328125,55.83972167968755],[-134.32034301757804,55.90673065185558],[-134.2705535888671,55.93188858032226]]],[[[-133.87832641601557,55.938610076904354],[-133.83946228027344,55.88723373413086],[-133.87159729003903,55.844753265380916],[-133.91888427734375,55.856666564941456],[-133.94424438476562,55.917079925537166],[-133.87832641601557,55.938610076904354]]],[[[-131.261474609375,55.97192382812506],[-131.16979980468744,55.91027832031256],[-131.07110595703125,55.827777862548885],[-131.0418853759765,55.766838073730526],[-130.9755859375,55.70727539062499],[-130.93966674804682,55.61978149414068],[-130.9832458496093,55.561985015869254],[-130.992919921875,55.47729873657238],[-130.97059631347656,55.39227294921881],[-131.00389099121094,55.38888931274419],[-131.05107116699207,55.318920135498104],[-131.06431579589838,55.26016235351557],[-131.15100097656244,55.227722167968864],[-131.18499755859372,55.19083404541021],[-131.26470947265625,55.2091064453125],[-131.32594299316406,55.2465209960938],[-131.23983764648438,55.28762817382807],[-131.20111083984375,55.39242553710943],[-131.29283142089832,55.37918472290044],[-131.261962890625,55.343036651611264],[-131.2998046875,55.27630615234381],[-131.35372924804688,55.25917434692382],[-131.46276855468744,55.27874755859381],[-131.45367431640625,55.31988525390624],[-131.38960266113276,55.33972549438482],[-131.3922576904297,55.377723693847656],[-131.46499633789062,55.407775878906364],[-131.49278259277338,55.478054046630966],[-131.53112792968744,55.45727539062506],[-131.47055053710938,55.39001846313476],[-131.47576904296875,55.359676361083984],[-131.5504150390624,55.293884277343864],[-131.63720703125,55.33779907226557],[-131.69804382324207,55.35441207885748],[-131.74481201171875,55.40490722656261],[-131.83111572265625,55.44861221313482],[-131.71823120117182,55.51675415039062],[-131.69720458984375,55.55548095703125],[-131.6294403076171,55.60111236572271],[-131.72381591796875,55.634521484375114],[-131.6990966796874,55.6964721679688],[-131.7244262695312,55.74328613281244],[-131.63078308105463,55.783699035644645],[-131.68728637695312,55.79787063598638],[-131.7120513916015,55.83361053466802],[-131.53948974609375,55.83428955078124],[-131.5994415283203,55.900276184081974],[-131.41351318359375,55.93292236328124],[-131.261474609375,55.97192382812506]]],[[[-131.42860412597648,55.996253967285156],[-131.40834045410156,55.95888900756847],[-131.50444030761713,55.921112060546875],[-131.59666442871088,55.933055877685604],[-131.42860412597648,55.996253967285156]]],[[[-133.46047973632812,55.99816513061535],[-133.375,55.99250030517584],[-133.43499755859375,55.955078125],[-133.46047973632812,55.99816513061535]]],[[[-132.20111083984364,56.04000091552739],[-132.15621948242188,56.00869750976568],[-132.13700866699213,55.938957214355575],[-132.1848754882812,55.93072509765631],[-132.20111083984364,56.04000091552739]]],[[[-132.0327758789062,56.09555435180664],[-131.98278808593744,56.02587890625006],[-132.0114288330078,55.98274230957037],[-132.07000732421875,56.02916717529308],[-132.0327758789062,56.09555435180664]]],[[[-133.04528808593744,56.121276855468864],[-132.9755859374999,56.075317382812614],[-133.07830810546875,56.07250976562494],[-133.04528808593744,56.121276855468864]]],[[[-132.43389892578114,56.35229492187511],[-132.378189086914,56.307853698730575],[-132.40597534179688,56.23050689697271],[-132.31314086914057,56.18979644775385],[-132.27392578124997,56.194519042968864],[-132.18768310546875,56.16827392578124],[-132.11650085449213,56.1200790405274],[-132.1509552001953,56.072551727295036],[-132.21221923828125,56.03722381591791],[-132.20001220703125,55.98870849609381],[-132.2157592773437,55.935901641845696],[-132.35368347167963,55.912666320800724],[-132.4365997314453,55.95582962036144],[-132.43869018554688,55.99675369262695],[-132.49114990234375,56.06235885620117],[-132.54556274414057,56.05277633666992],[-132.59259033203114,56.07891845703131],[-132.6575927734375,56.04968261718749],[-132.72225952148432,56.142971038818295],[-132.69641113281244,56.17669677734375],[-132.71649169921875,56.2161369323731],[-132.6859130859375,56.23880386352545],[-132.59649658203116,56.24487304687511],[-132.53475952148438,56.336212158203175],[-132.43389892578114,56.35229492187511]]],[[[-133.61120605468744,56.35650634765619],[-133.43222045898438,56.32694625854498],[-133.34558105468744,56.33807373046874],[-133.1989135742187,56.3363037109375],[-133.15304565429682,56.31143569946288],[-133.1044464111328,56.24638748168945],[-133.03927612304682,56.18435287475597],[-133.07659912109375,56.111083984375],[-133.1199951171875,56.08111572265625],[-133.06588745117182,56.04057693481445],[-132.9320526123047,56.059890747070426],[-132.92718505859375,56.023071289062614],[-132.81056213378906,56.015834808349666],[-132.7338256835937,55.983760833740234],[-132.7149658203125,55.95840454101574],[-132.61639404296875,55.9083251953125],[-132.48327636718741,55.790283203125],[-132.4794921875,55.74127197265631],[-132.44439697265625,55.7200927734375],[-132.47930908203125,55.66722106933593],[-132.41574096679688,55.647895812988395],[-132.3737182617187,55.66088867187494],[-132.32762145996094,55.575012207031364],[-132.276138305664,55.5415382385255],[-132.1815185546875,55.5054931640625],[-132.1461181640625,55.45639038085949],[-132.4642944335937,55.55628967285161],[-132.5,55.60009765624999],[-132.54556274414057,55.6038818359375],[-132.531265258789,55.50994873046881],[-132.49298095703125,55.499511718750114],[-132.41217041015625,55.51552200317383],[-132.39721679687497,55.47416687011713],[-132.31443786621094,55.46777725219721],[-132.35118103027338,55.41376113891612],[-132.25823974609375,55.416473388671925],[-132.20669555664062,55.36445999145508],[-132.14709472656241,55.33990478515624],[-132.09939575195312,55.26501083374035],[-132.13948059082026,55.23981857299815],[-132.23008728027338,55.24885177612305],[-132.2552032470703,55.22960662841808],[-132.09222412109375,55.20861053466808],[-132.06324768066406,55.26142501831055],[-131.99810791015625,55.26708984375],[-131.97552490234375,55.18361282348633],[-132.02551269531244,55.13694381713873],[-131.99610900878906,55.10777664184576],[-132.0874481201172,55.07871246337896],[-132.0927734374999,55.04055404663086],[-132.21466064453125,55.00337600708008],[-132.14332580566406,54.97750091552729],[-132.03054809570312,55.033237457275504],[-131.99108886718744,55.00833511352539],[-131.96612548828114,54.960327148437436],[-131.97497558593744,54.89947509765619],[-132.0410766601562,54.87530517578125],[-131.96116638183582,54.83475494384771],[-131.96278381347645,54.783332824706974],[-132.01333618164062,54.76833343505865],[-131.9982299804687,54.729690551757926],[-132.0288848876953,54.69694519042969],[-132.16278076171875,54.690555572509766],[-132.3244018554687,54.74530029296881],[-132.30450439453125,54.78192138671881],[-132.3655548095703,54.818611145019474],[-132.30718994140622,54.840572357177784],[-132.3594512939453,54.86611175537104],[-132.4111175537109,54.96777725219732],[-132.4482879638671,54.91856002807622],[-132.57888793945312,54.9423484802246],[-132.6165161132812,54.9813232421875],[-132.54733276367188,55.02123641967785],[-132.55752563476562,55.07648468017572],[-132.52499389648438,55.11611175537121],[-132.62896728515625,55.111400604248104],[-132.88055419921875,55.23110961914068],[-133.0192718505859,55.20428848266607],[-133.05776977539057,55.27249908447271],[-133.2372283935547,55.28499984741222],[-133.27778625488276,55.350166320800895],[-133.22554016113276,55.3827857971192],[-133.1475982666015,55.381500244140625],[-132.9896850585937,55.355895996093864],[-133.14607238769526,55.47364044189453],[-133.11051940917963,55.55487823486328],[-133.06188964843744,55.621578216552734],[-133.13777160644526,55.61303329467779],[-133.17218017578125,55.590270996093864],[-133.27359008789054,55.57558059692382],[-133.37907409667963,55.61908721923839],[-133.4077758789062,55.647705078125114],[-133.3900146484375,55.72972106933605],[-133.32937622070307,55.71002960205084],[-133.256591796875,55.74749755859369],[-133.22428894042963,55.78745269775396],[-133.167236328125,55.809722900390625],[-133.16445922851562,55.851112365722656],[-133.2505645751953,55.88999938964844],[-133.26693725585926,56.00157928466797],[-133.3472290039062,55.980529785156364],[-133.38778686523438,55.950279235839844],[-133.372802734375,55.91027832031256],[-133.4360961914062,55.91229248046869],[-133.4304809570312,55.956130981445426],[-133.36500549316403,55.988609313964844],[-133.37609863281241,56.0283203125],[-133.5384979248047,55.98103332519536],[-133.62722778320307,55.96777725219732],[-133.6961212158203,55.912776947021484],[-133.814453125,55.94138717651367],[-133.80915832519526,55.966823577880916],[-133.71051025390625,56.03854751586919],[-133.7021331787109,56.06594467163086],[-133.63278198242188,56.10805511474615],[-133.624526977539,56.14237976074219],[-133.52462768554688,56.11820602416992],[-133.4621124267578,56.14008712768566],[-133.47821044921875,56.17950439453119],[-133.5662078857422,56.18704986572271],[-133.6394500732422,56.21500015258795],[-133.6270141601562,56.240722656249936],[-133.66387939453125,56.31951904296875],[-133.61120605468744,56.35650634765619]]],[[[-157.8367309570312,56.36920166015631],[-157.79483032226557,56.324928283691456],[-157.852783203125,56.31750488281255],[-157.88880920410153,56.348365783691406],[-157.8367309570312,56.36920166015631]]],[[[-132.48973083496094,56.439823150634766],[-132.40347290039057,56.406173706054744],[-132.40553283691406,56.3821907043457],[-132.55833435058588,56.35555648803716],[-132.5621490478515,56.39265823364252],[-132.48973083496094,56.439823150634766]]],[[[-132.91571044921875,56.45630264282238],[-132.81277465820307,56.440555572509766],[-132.74609374999997,56.45770263671881],[-132.66162109374994,56.438476562500114],[-132.6221923828125,56.39111328125005],[-132.68333435058594,56.34555435180664],[-132.65666198730463,56.27805709838867],[-132.7169952392578,56.25790405273431],[-132.8722229003906,56.232498168945426],[-132.98777770996088,56.304721832275334],[-133.0662841796874,56.33087158203131],[-133.06939697265616,56.356079101562614],[-133.01202392578125,56.42452621459961],[-132.91571044921875,56.45630264282238]]],[[[-132.38604736328125,56.48913192749034],[-132.25485229492188,56.45038986206066],[-132.23605346679688,56.39616775512701],[-132.17393493652344,56.35094451904308],[-132.1171874999999,56.353168487548764],[-132.09054565429682,56.3714370727539],[-132.03033447265625,56.352664947509766],[-131.92225646972645,56.20309448242193],[-132.01611328125,56.19499969482422],[-132.02548217773438,56.13423538208007],[-132.10122680664057,56.14735031127941],[-132.2611083984375,56.203308105468864],[-132.33071899414062,56.239753723144645],[-132.3651885986328,56.28377914428711],[-132.33999633789062,56.34196090698242],[-132.3422241210937,56.40250015258795],[-132.37995910644528,56.444484710693466],[-132.38604736328125,56.48913192749034]]],[[[-153.87423706054688,56.563594818115234],[-153.88432312011716,56.532527923583984],[-153.9496459960936,56.50537872314458],[-154.06111145019523,56.5],[-154.0883331298828,56.53555679321288],[-153.95126342773435,56.561016082763786],[-153.87423706054688,56.563594818115234]]],[[[-157.24389648437494,56.58612060546886],[-157.07659912109375,56.58111572265631],[-157.19610595703128,56.525554656982536],[-157.32945251464838,56.536117553710994],[-157.24389648437494,56.58612060546886]]],[[[-132.98779296874986,56.59527587890636],[-132.96351623535156,56.556427001953125],[-132.98324584960938,56.51212692260748],[-133.04544067382812,56.52134704589844],[-133.07440185546875,56.57952880859375],[-132.98779296874986,56.59527587890636]]],[[[-154.49682617187503,56.60268020629883],[-154.53520202636707,56.56569671630871],[-154.50389099121088,56.52055740356451],[-154.663330078125,56.45333480834961],[-154.71110534667966,56.41361236572271],[-154.7694396972656,56.404724121093864],[-154.79277038574213,56.43861007690424],[-154.6822204589844,56.52944564819335],[-154.5533294677734,56.587223052978516],[-154.49682617187503,56.60268020629883]]],[[[-169.75221252441403,56.6162223815918],[-169.64074707031247,56.60439300537115],[-169.50201416015625,56.608921051025504],[-169.48388671875,56.57666778564453],[-169.57000732421875,56.53210449218756],[-169.64054870605466,56.536388397216854],[-169.68222045898435,56.57888793945324],[-169.74777221679688,56.586666107177734],[-169.75221252441403,56.6162223815918]]],[[[-154.09832763671872,56.61944580078131],[-154.07722473144526,56.589721679687614],[-154.10000610351557,56.53749847412121],[-154.22944641113278,56.492500305175724],[-154.34777832031244,56.51055526733398],[-154.36444091796875,56.542778015136776],[-154.31056213378906,56.586666107177734],[-154.22500610351562,56.61472320556652],[-154.09832763671872,56.61944580078131]]],[[[-132.93943786621088,56.82361221313482],[-132.8270874023437,56.794677734375],[-132.76594543457026,56.756046295166016],[-132.73681640625,56.71252441406256],[-132.6182861328125,56.66387939453131],[-132.59539794921875,56.6110191345216],[-132.54302978515625,56.58331298828124],[-132.64666748046864,56.552223205566406],[-132.72430419921875,56.51110839843756],[-132.81494140625,56.49379348754882],[-132.95213317871094,56.50967407226557],[-132.9583129882812,56.5636100769043],[-132.9752197265625,56.601837158203125],[-132.94094848632807,56.633338928222706],[-132.90051269531244,56.63391113281256],[-132.93444824218744,56.67250061035167],[-132.9327850341797,56.724723815918026],[-132.97782897949216,56.782878875732536],[-132.9816131591797,56.80336380004883],[-132.93943786621088,56.82361221313482]]],[[[-134.25830078124997,56.9381103515625],[-134.01831054687494,56.8775024414063],[-133.99945068359364,56.82361221313482],[-133.8641815185547,56.75181198120111],[-133.88204956054682,56.810615539550895],[-133.72695922851557,56.77125167846674],[-133.77055358886713,56.67950820922846],[-133.7202758789062,56.6562957763673],[-133.69042968749994,56.60257339477545],[-133.74456787109375,56.55648803710943],[-133.84576416015625,56.57440567016613],[-133.9008026123047,56.49047851562505],[-133.8688964843749,56.45222091674804],[-133.8751831054687,56.39641189575207],[-133.9076690673828,56.368827819824276],[-133.8311157226562,56.32361221313471],[-133.87680053710932,56.27836608886718],[-133.95223999023432,56.345382690429744],[-133.99221801757812,56.310832977294865],[-133.91944885253906,56.278076171875114],[-133.88169860839844,56.2204704284668],[-133.95611572265622,56.20507812499999],[-133.9338989257812,56.168701171875],[-133.95770263671875,56.09472656250006],[-134.01454162597656,56.08633804321283],[-134.04449462890625,56.11871337890625],[-134.03018188476562,56.18946456909191],[-134.07557678222653,56.23824691772466],[-134.1165771484375,56.16448974609375],[-134.1121826171875,56.052490234375],[-134.23666381835938,56.076389312744254],[-134.21221923828114,56.10388183593756],[-134.25999450683582,56.13360977172862],[-134.2055053710937,56.15307617187506],[-134.278091430664,56.264171600341854],[-134.23101806640622,56.275833129882756],[-134.29444885253903,56.35333251953125],[-134.23356628417963,56.36099243164068],[-134.22833251953114,56.42027664184582],[-134.050552368164,56.39722061157221],[-134.094482421875,56.484165191650504],[-134.15307617187494,56.500305175781364],[-134.1915283203125,56.5360717773438],[-134.27040100097656,56.56007385253906],[-134.29277038574213,56.64749908447271],[-134.36054992675778,56.67444610595714],[-134.40106201171875,56.726135253906364],[-134.39111328124994,56.756389617919865],[-134.4205322265625,56.8250617980957],[-134.40332031249994,56.85968017578125],[-134.31961059570312,56.90797424316406],[-134.1444091796874,56.84387207031249],[-134.1572265625,56.886901855468864],[-134.22052001953125,56.903320312500114],[-134.25830078124997,56.9381103515625]]],[[[-133.87570190429688,57.09860992431651],[-133.60234069824207,57.05988693237305],[-133.5691986083984,57.04392623901372],[-133.32427978515625,56.990478515625114],[-133.20648193359375,57.012222290039176],[-133.07553100585926,56.990848541259766],[-132.97727966308588,56.91999435424816],[-132.93722534179682,56.83472061157238],[-132.95777893066406,56.82027816772455],[-133.0013427734375,56.808010101318416],[-132.9868621826172,56.797157287597656],[-132.95820617675776,56.73937225341797],[-132.9566650390625,56.68999862670893],[-132.93162536621082,56.663375854492294],[-132.95507812499994,56.62872314453125],[-133.0272216796875,56.60472106933594],[-133.11279296874994,56.67047119140625],[-133.1871948242187,56.70788574218749],[-133.247314453125,56.795982360839844],[-133.2949981689453,56.829444885253956],[-133.35601806640625,56.820129394531364],[-133.34274291992182,56.76469802856451],[-133.29556274414062,56.73110961914057],[-133.2345275878906,56.73003387451172],[-133.22006225585938,56.65413665771489],[-133.1461181640625,56.63671875],[-133.08515930175776,56.531635284423885],[-133.11276245117188,56.490539550781364],[-133.191665649414,56.4466667175293],[-133.26663208007807,56.4758415222168],[-133.32470703124994,56.46630859375006],[-133.38830566406244,56.49645233154308],[-133.42283630371088,56.459754943847656],[-133.50891113281247,56.436279296875],[-133.60296630859375,56.435070037841854],[-133.67138671874986,56.46141815185541],[-133.67437744140625,56.519973754882756],[-133.6533203125,56.591674804687436],[-133.7216796875,56.67968750000005],[-133.68405151367182,56.7696533203125],[-133.743896484375,56.81400299072271],[-133.82167053222648,56.835277557373104],[-133.81008911132812,56.875499725341854],[-133.84111022949213,56.91361236572277],[-134.04089355468747,57.02191162109381],[-134.00830078124994,57.0728378295899],[-133.87570190429688,57.09860992431651]]],[[[-153.21113586425778,57.208408355713004],[-153.1627960205078,57.17733764648443],[-153.06732177734372,57.189697265625],[-152.94783020019528,57.18804550170898],[-152.86862182617182,57.15075302124029],[-152.91279602050776,57.12620544433599],[-153.00447082519528,57.12116241455072],[-153.12265014648438,57.09113311767583],[-153.21519470214835,57.07872772216802],[-153.19575500488276,57.04040908813476],[-153.24133300781244,57.00309371948248],[-153.30532836914057,56.99109268188482],[-153.3483276367187,57.0091667175293],[-153.30410766601557,57.040111541748104],[-153.39753723144526,57.06365585327143],[-153.38368225097653,57.11581420898431],[-153.28097534179688,57.18667984008783],[-153.21113586425778,57.208408355713004]]],[[[-135.5281524658203,57.225830078125114],[-135.45175170898438,57.177455902099666],[-135.554214477539,57.16058349609381],[-135.5281524658203,57.225830078125114]]],[[[-170.0971984863281,57.24940872192394],[-170.17311096191403,57.15512084960932],[-170.2993469238281,57.13655471801758],[-170.41795349121088,57.15960311889643],[-170.41662597656241,57.192363739013786],[-170.30319213867188,57.22048568725586],[-170.2258911132812,57.21186065673834],[-170.0971984863281,57.24940872192394]]],[[[-135.47052001953122,57.25311279296886],[-135.39160156249994,57.24530029296886],[-135.4499969482422,57.183612823486435],[-135.51550292968744,57.22912597656244],[-135.47052001953122,57.25311279296886]]],[[[-135.7638092041015,57.351039886474716],[-135.64231872558588,57.303382873535156],[-135.57733154296872,57.257518768310604],[-135.62762451171866,57.23299026489269],[-135.6173858642578,57.17679595947271],[-135.56579589843747,57.15112304687499],[-135.598876953125,57.046875],[-135.6660766601562,57.01593017578125],[-135.8190155029297,56.98914337158214],[-135.85791015624997,56.99580764770508],[-135.84298706054682,57.09066009521484],[-135.7587890624999,57.117309570312614],[-135.73707580566406,57.15406036376958],[-135.83596801757812,57.17490768432617],[-135.80259704589844,57.23627471923833],[-135.843505859375,57.2623291015625],[-135.82501220703125,57.30500793457042],[-135.83999633789062,57.340557098388786],[-135.7638092041015,57.351039886474716]]],[[[-135.42041015624994,57.55939865112305],[-135.32269287109375,57.53714752197259],[-135.26206970214844,57.47207641601574],[-135.2249755859375,57.48889160156244],[-135.16668701171875,57.44531250000005],[-135.0665893554687,57.422302246093864],[-134.8988037109375,57.42610549926758],[-134.8301544189453,57.4005584716798],[-134.8036346435547,57.34088897705072],[-134.84347534179685,57.30905151367187],[-134.9053955078125,57.341621398925895],[-134.9506225585937,57.32727050781255],[-134.92892456054688,57.25978469848632],[-134.86277770996088,57.27166748046875],[-134.8494262695312,57.20831298828136],[-134.81439208984375,57.18472290039062],[-134.74101257324213,56.98199462890625],[-134.69505310058588,56.895050048828175],[-134.69940185546875,56.846923828125],[-134.62939453125,56.72499847412104],[-134.61779785156244,56.66607666015619],[-134.62832641601562,56.551109313964844],[-134.66513061523438,56.50039291381847],[-134.63888549804682,56.47694396972661],[-134.65444946289062,56.43027877807617],[-134.63389587402338,56.401390075683594],[-134.64611816406244,56.346389770507756],[-134.64111328125,56.26751708984381],[-134.68728637695312,56.20083236694336],[-134.80657958984375,56.23468017578125],[-134.83840942382812,56.2989501953125],[-134.89666748046864,56.31583404541027],[-134.89778137207026,56.34613037109381],[-134.95333862304685,56.387222290039006],[-135.0647888183593,56.540699005126946],[-135.05718994140625,56.60949707031256],[-135.12055969238273,56.59638977050787],[-135.13609313964844,56.63895797729492],[-135.2301025390625,56.6868896484375],[-135.21112060546875,56.7252807617188],[-135.35221862792963,56.81416702270502],[-135.39222717285156,56.885555267333984],[-135.34445190429688,56.90722274780285],[-135.38888549804685,56.94250106811535],[-135.3726806640625,56.98828125],[-135.2866668701172,56.99277877807622],[-135.22822570800776,57.033927917480526],[-135.338882446289,57.047222137451286],[-135.4037628173828,57.101879119873104],[-135.3721923828125,57.149719238281364],[-135.4242095947265,57.16868209838873],[-135.3787231445312,57.20007324218761],[-135.36154174804688,57.2516250610351],[-135.47399902343744,57.257324218750114],[-135.55393981933582,57.235515594482365],[-135.60430908203125,57.2877197265625],[-135.69247436523432,57.35348892211919],[-135.53289794921875,57.45111083984386],[-135.551528930664,57.50833511352545],[-135.42041015624994,57.55939865112305]]],[[[-135.71833801269526,57.708889007568466],[-135.58947753906244,57.6600952148438],[-135.64666748046875,57.64861297607421],[-135.71833801269526,57.708889007568466]]],[[[-136.19944763183588,57.71694564819336],[-136.13333129882812,57.69083404541027],[-136.1811065673828,57.63999938964844],[-136.26049804687494,57.67950439453125],[-136.19944763183588,57.71694564819336]]],[[[-134.27444458007812,57.95722198486328],[-134.19111633300773,57.929443359375114],[-134.24790954589844,57.90958023071288],[-134.27444458007812,57.95722198486328]]],[[[-153.47653198242185,57.96932220458995],[-153.35406494140616,57.932487487793026],[-153.25666809082034,57.8844451904298],[-153.20103454589844,57.812732696533196],[-153.32307434082028,57.82341003417981],[-153.53411865234366,57.927108764648494],[-153.47653198242185,57.96932220458995]]],[[[-152.4192962646484,57.97061157226568],[-152.42536926269526,57.93372726440436],[-152.32940673828125,57.914875030517685],[-152.36248779296875,57.884258270263665],[-152.4867401123047,57.91197967529296],[-152.46943664550776,57.95771789550775],[-152.4192962646484,57.97061157226568]]],[[[-152.7217864990234,57.98682403564458],[-152.75880432128903,57.92574691772472],[-152.85261535644526,57.94216156005865],[-152.8484649658203,57.970832824707145],[-152.7217864990234,57.98682403564458]]],[[[-153.26376342773426,57.99613952636724],[-153.19886779785156,57.96815872192383],[-153.05987548828122,57.937999725341804],[-152.93371582031244,57.94742202758795],[-152.84968566894528,57.9290657043457],[-152.79541015624994,57.90142440795898],[-152.90765380859372,57.82035064697277],[-152.8483276367187,57.82472229003912],[-152.7870025634765,57.8584098815919],[-152.62139892578125,57.87905120849614],[-152.51657104492185,57.909355163574276],[-152.40138244628906,57.84868240356456],[-152.36630249023438,57.801807403564396],[-152.44659423828125,57.77875900268554],[-152.5108032226562,57.72418594360352],[-152.4666290283203,57.70210266113292],[-152.49783325195307,57.64699935913091],[-152.42480468749994,57.6422843933106],[-152.46943664550776,57.59900665283203],[-152.3268890380859,57.62647628784192],[-152.1648712158203,57.61174011230464],[-152.1562194824219,57.589454650878906],[-152.31849670410153,57.48678588867198],[-152.33828735351557,57.42236328124999],[-152.4631805419922,57.43956756591797],[-152.48789978027344,57.468784332275334],[-152.58166503906244,57.44722366333002],[-152.62445068359375,57.47638702392584],[-152.68705749511713,57.46631240844726],[-152.74055480957026,57.50691223144536],[-152.80113220214838,57.494316101074276],[-152.9170989990234,57.513290405273544],[-152.9418029785155,57.49755859375006],[-152.74401855468747,57.448482513427784],[-152.72331237792966,57.419868469238274],[-152.62599182128906,57.405799865722656],[-152.60784912109375,57.36563491821288],[-152.62705993652338,57.32768630981445],[-152.71066284179688,57.3021469116212],[-152.74320983886722,57.312946319580014],[-152.816680908203,57.265773773193416],[-152.87936401367188,57.28943252563487],[-152.910415649414,57.322502136230526],[-152.99740600585932,57.34460830688471],[-153.10221862792966,57.31750106811534],[-153.09745788574216,57.28694915771484],[-153.0138854980468,57.3011093139649],[-152.94015502929682,57.25986862182628],[-153.07972717285156,57.21225738525396],[-153.2165985107422,57.2173423767091],[-153.34188842773435,57.189838409423885],[-153.46441650390614,57.11484146118164],[-153.49749755859366,57.065071105957145],[-153.56871032714847,57.0922470092774],[-153.58175659179688,57.05070114135742],[-153.55332946777344,56.96972274780279],[-153.60023498535153,56.933044433593864],[-153.6698150634765,56.930885314941456],[-153.72833251953125,56.88944625854498],[-153.7056579589844,56.85189437866222],[-153.83436584472653,56.836647033691406],[-153.90777587890622,56.765834808349666],[-153.9778289794922,56.7432746887207],[-154.034439086914,56.763332366943416],[-154.15055847167963,56.7466659545899],[-154.08055114746088,56.84055709838867],[-154.00666809082028,56.86111068725586],[-153.97993469238284,56.89769744873052],[-153.88182067871088,56.9254035949707],[-153.8272247314453,56.96277618408209],[-153.97451782226557,56.957302093505916],[-153.96769714355466,56.99448013305663],[-153.92041015625,57.06331253051757],[-153.80278015136707,57.11305618286127],[-153.88180541992182,57.11710739135742],[-153.9685516357422,57.0661506652832],[-154.03199768066406,57.00596237182623],[-154.09445190429688,56.96611022949218],[-154.14166259765625,56.99861145019536],[-154.10095214843753,57.03248977661138],[-154.11222839355463,57.05083465576172],[-154.08666992187494,57.07083511352545],[-154.0549926757812,57.09083175659185],[-153.98606872558588,57.10824203491222],[-154.01304626464835,57.128902435302734],[-154.07672119140625,57.121967315673935],[-154.13055419921872,57.14555740356451],[-154.2288818359374,57.161388397216854],[-154.2724151611328,57.14321136474615],[-154.3382873535156,57.150314331054794],[-154.38999938964844,57.12416839599621],[-154.47444152832026,57.12416839599621],[-154.48333740234372,57.093612670898494],[-154.43611145019528,57.05500030517578],[-154.3783264160156,57.049999237060604],[-154.29388427734378,57.1136093139649],[-154.11054992675778,57.12722396850586],[-154.0916595458984,57.10388946533209],[-154.11277770996097,57.072776794433594],[-154.11500549316403,57.05138778686529],[-154.11054992675778,57.04472351074219],[-154.15055847167963,57.00305557250976],[-154.15333557128898,56.94889068603527],[-154.19444274902338,56.929164886474716],[-154.22666931152338,56.874721527099666],[-154.3016662597656,56.853332519531364],[-154.31333923339847,56.91833496093756],[-154.39666748046875,56.96333312988286],[-154.52833557128895,56.99222183227545],[-154.5149993896484,57.0330543518067],[-154.52555847167963,57.166389465332024],[-154.6019439697265,57.263088226318416],[-154.6822052001953,57.26627349853527],[-154.74888610839838,57.29333496093756],[-154.69389343261707,57.413055419921875],[-154.63000488281247,57.507778167724666],[-154.5244445800781,57.54222106933599],[-154.34165954589847,57.63277816772472],[-154.26222229003906,57.64194488525396],[-154.23277282714835,57.6633338928222],[-154.02000427246088,57.648178100585945],[-153.98347473144526,57.62618255615246],[-153.97552490234375,57.55168914794922],[-153.92668151855463,57.533351898193416],[-153.90788269042966,57.4445419311524],[-153.7694396972656,57.31444549560547],[-153.77333068847653,57.374443054199325],[-153.81222534179685,57.413612365722656],[-153.82366943359372,57.50771713256836],[-153.81634521484372,57.56252670288091],[-153.87976074218747,57.6325187683106],[-153.8681640625,57.65015792846675],[-153.66145324707028,57.64019775390624],[-153.67666625976562,57.66888809204102],[-153.86369323730463,57.7055320739746],[-153.93556213378906,57.72972106933599],[-153.93064880371088,57.80907440185552],[-153.75251770019528,57.88855743408203],[-153.6190795898437,57.88035583496094],[-153.6277923583984,57.84385681152338],[-153.57254028320307,57.832790374755916],[-153.547378540039,57.784725189209034],[-153.4201202392578,57.766891479492244],[-153.352783203125,57.70274353027344],[-153.33044433593744,57.74626541137706],[-153.45457458496088,57.789291381836044],[-153.4767608642578,57.84169769287114],[-153.33807373046872,57.803665161132805],[-153.20414733886713,57.784553527832024],[-153.17964172363278,57.79687881469726],[-153.233901977539,57.894893646240234],[-153.166275024414,57.915267944335994],[-153.27348327636716,57.957981109619254],[-153.26376342773426,57.99613952636724]]],[[[-136.49243164062491,58.099269866943416],[-136.3560028076172,58.0262947082519],[-136.3877716064453,57.967498779296875],[-136.3769836425781,57.93027114868169],[-136.45111083984375,57.847778320312564],[-136.53144836425776,57.913562774658146],[-136.56666564941406,57.96444320678723],[-136.53111267089844,58],[-136.56777954101557,58.04305648803722],[-136.55389404296872,58.08611297607421],[-136.49243164062491,58.099269866943416]]],[[[-153.26997375488278,58.14712524414056],[-153.19483947753906,58.09983062744134],[-153.11424255371088,58.09476089477534],[-153.02560424804682,58.03269195556635],[-152.9369659423828,58.00785064697277],[-152.94377136230463,57.97658920288092],[-153.05888366699213,57.98833465576177],[-153.12722778320312,58.01666641235357],[-153.2949523925781,58.050247192382805],[-153.3646545410156,58.03797531127929],[-153.41777038574213,58.05777740478521],[-153.34135437011722,58.11707305908209],[-153.26997375488278,58.14712524414056]]],[[[-151.83135986328122,58.264678955078125],[-151.78918457031247,58.250770568847706],[-151.80372619628906,58.192512512206974],[-151.89288330078125,58.187564849853565],[-151.87753295898438,58.24397659301757],[-151.83135986328122,58.264678955078125]]],[[[-135.79107666015622,58.28670120239258],[-135.73301696777335,58.23914337158209],[-135.52774047851562,58.18759155273437],[-135.5184173583984,58.126831054687564],[-135.62602233886713,58.048992156982365],[-135.55862426757812,58.044960021972656],[-135.47666931152338,58.08583450317383],[-135.4672241210937,58.131111145019474],[-135.4036254882812,58.144054412841854],[-135.27499389648426,58.09749984741211],[-135.1161041259765,58.09138870239258],[-135.0770263671875,58.059284210205014],[-134.9519805908202,58.03947067260742],[-134.9142150878905,57.97631835937506],[-134.92259216308588,57.92322158813482],[-134.9994506835937,57.88888931274419],[-135.14096069335938,57.92401123046874],[-135.1178131103515,57.88315582275384],[-135.0740966796875,57.878349304199325],[-134.9572296142577,57.81638717651373],[-135.0211639404297,57.77946090698254],[-135.2025146484374,57.77651977539056],[-135.31579589843744,57.80697250366211],[-135.41459655761713,57.859340667724666],[-135.57633972167963,57.883300781250114],[-135.51777648925776,57.84305572509776],[-135.44288635253906,57.82917022705072],[-135.30108642578116,57.74072265625001],[-135.2083282470702,57.72777938842784],[-134.97607421874994,57.76312255859386],[-134.9176177978515,57.74045181274414],[-134.92291259765622,57.67852783203125],[-134.85000610351554,57.57888793945324],[-134.85777282714844,57.53083038330089],[-134.91171264648432,57.49550628662114],[-134.89698791503906,57.45963287353521],[-135.02159118652338,57.45635223388672],[-135.08862304687494,57.4655151367188],[-135.12860107421864,57.49707031250011],[-135.248550415039,57.548408508300724],[-135.47961425781244,57.63222503662114],[-135.62518310546864,57.70111083984381],[-135.7288818359375,57.72027587890625],[-135.73992919921875,57.676696777343814],[-135.65936279296875,57.62862014770503],[-135.57299804687494,57.59692382812501],[-135.57412719726557,57.52273178100597],[-135.54730224609375,57.479309082031364],[-135.6639404296875,57.380825042724716],[-135.71365356445307,57.366561889648494],[-135.845001220703,57.39166641235362],[-135.8554992675781,57.41779327392578],[-135.96832275390625,57.463317871093864],[-136.0195922851562,57.503723144531364],[-136.0244750976562,57.55688476562506],[-136.08999633789057,57.60027694702154],[-136.0661163330078,57.62722396850597],[-136.158462524414,57.64694595336913],[-136.1168212890625,57.69555664062506],[-136.25328063964844,57.77097702026372],[-136.36166381835935,57.806667327880916],[-136.43222045898438,57.84305572509776],[-136.3583374023437,57.932220458984375],[-136.37666320800776,57.96611022949213],[-136.3538818359374,58.00277709960937],[-136.35276794433594,58.04941177368164],[-136.42330932617173,58.0786514282226],[-136.44750976562494,58.120376586914176],[-136.32806396484375,58.16094970703131],[-136.32258605957026,58.21006774902337],[-136.24603271484372,58.186580657958984],[-136.14039611816406,58.225593566894595],[-136.02055358886713,58.189998626708984],[-135.8282928466796,58.28105163574219],[-135.79107666015622,58.28670120239258]]],[[[-152.89111328125,58.343334197998054],[-152.8466644287109,58.33777618408209],[-152.78555297851565,58.29194259643566],[-152.92166137695304,58.3136100769043],[-152.89111328125,58.343334197998054]]],[[[-134.5272216796875,58.345275878906364],[-134.30906677246094,58.23376846313488],[-134.3377838134765,58.19722366333008],[-134.48388671874994,58.22944259643555],[-134.50721740722656,58.21666717529302],[-134.62666320800776,58.248054504394524],[-134.68278503417966,58.29639053344726],[-134.58889770507807,58.34012985229498],[-134.5272216796875,58.345275878906364]]],[[[-135.6305236816405,58.38262557983399],[-135.53562927246082,58.34273147583002],[-135.5764923095703,58.32540893554699],[-135.68113708496088,58.331207275390625],[-135.73303222656244,58.36849975585943],[-135.6305236816405,58.38262557983399]]],[[[-134.93434143066392,58.39812088012701],[-134.90679931640625,58.36044692993175],[-134.8363037109374,58.341445922851676],[-134.80316162109375,58.2976913452149],[-134.75401306152344,58.27260208129883],[-134.692642211914,58.15959548950207],[-134.53703308105463,58.181987762451165],[-134.44737243652338,58.17381668090825],[-134.33363342285156,58.1422233581544],[-134.17698669433594,58.158123016357415],[-134.1892547607422,58.08063888549815],[-134.088882446289,58],[-134.09805297851557,57.981967926025455],[-133.9949951171875,57.914165496826165],[-134.00639343261713,57.89328384399419],[-133.90110778808585,57.8069458007813],[-133.89309692382807,57.68354415893549],[-133.96110534667963,57.68527603149414],[-134.0205535888672,57.76388931274413],[-134.0427703857422,57.81944274902339],[-134.1038818359374,57.85166549682622],[-134.13873291015625,57.904846191406364],[-134.163330078125,57.99277877807617],[-134.26110839843744,58.06916809082031],[-134.3324737548827,58.00072097778331],[-134.2788848876953,57.89916610717779],[-134.2434692382812,57.87357330322276],[-134.11721801757807,57.72972106933599],[-134.0449981689453,57.67583465576171],[-133.9351501464843,57.61087799072272],[-133.94644165039062,57.56729125976556],[-133.88711547851562,57.50656509399413],[-133.92721557617188,57.47138977050781],[-133.86244201660156,57.367729187011825],[-133.9793548583984,57.30418395996099],[-134.1111602783203,57.33919906616216],[-134.16055297851562,57.333332061767685],[-134.0933380126953,57.28027725219737],[-134.14860534667957,57.26363372802729],[-134.1534881591797,57.21107101440441],[-134.1922149658203,57.184165954589844],[-134.28778076171872,57.18666839599614],[-134.27737426757812,57.14277648925781],[-134.40414428710935,57.07572174072277],[-134.48037719726557,57.04966354370123],[-134.48388671874994,57.02833175659191],[-134.60125732421875,57.03215408325206],[-134.63710021972656,57.10696411132818],[-134.65359497070312,57.2309455871582],[-134.570556640625,57.30451965332031],[-134.5808105468749,57.40097045898432],[-134.528335571289,57.40638732910161],[-134.5797271728515,57.47649383544916],[-134.61180114746088,57.56237411499035],[-134.6620330810546,57.6023406982423],[-134.73454284667957,57.74150085449218],[-134.70555114746082,57.83111190795904],[-134.80332946777344,58.028331756591854],[-134.80201721191406,58.10557937622076],[-134.82167053222656,58.143611907958984],[-134.9181060791015,58.223861694335945],[-134.8831329345703,58.24209594726574],[-134.9441680908203,58.27332305908208],[-134.969985961914,58.37078857421881],[-134.93434143066392,58.39812088012701]]],[[[-152.6501922607422,58.48088455200195],[-152.49166870117176,58.45222091674805],[-152.5350646972656,58.411098480224666],[-152.4472045898437,58.35242843627941],[-152.383331298828,58.34999847412115],[-152.3655548095703,58.3838882446289],[-152.3133544921875,58.40120315551764],[-152.24610900878903,58.34999847412115],[-152.20166015624997,58.34500122070318],[-152.15277099609375,58.380832672119254],[-152.09388732910153,58.371944427490234],[-152.11444091796875,58.32389068603527],[-152.02487182617188,58.300727844238274],[-151.96823120117188,58.326267242431754],[-151.96459960937497,58.25939941406255],[-152.00111389160153,58.20586776733404],[-152.09399414062497,58.14990997314459],[-152.1826019287109,58.170513153076165],[-152.22444152832028,58.1966667175293],[-152.2359771728515,58.24215316772472],[-152.31990051269526,58.24777984619152],[-152.32055664062494,58.17416763305664],[-152.27491760253903,58.12435531616211],[-152.42666625976562,58.12666702270507],[-152.56874084472653,58.11576080322271],[-152.6542816162109,58.062957763671996],[-152.7603912353515,58.0565986633302],[-152.7588958740234,58.01305389404297],[-152.82989501953128,57.991191864013615],[-152.9138946533203,58.008335113525504],[-153.02000427246082,58.04527664184575],[-153.0822296142578,58.110000610351555],[-153.14938354492182,58.10559082031249],[-153.2225646972655,58.163143157959034],[-153.17634582519528,58.21549224853521],[-153.063003540039,58.193153381347656],[-152.96722412109378,58.1963882446289],[-153.1044464111328,58.26027679443359],[-153.04205322265622,58.304794311523494],[-152.89443969726562,58.27194595336925],[-152.85961914062497,58.288200378418026],[-152.78404235839835,58.27841186523437],[-152.77804565429682,58.367080688476555],[-152.8090209960937,58.403617858886825],[-152.745132446289,58.44116210937506],[-152.66964721679688,58.43261337280273],[-152.6501922607422,58.48088455200195]]],[[[-152.32736206054685,58.630077362060604],[-152.3376922607422,58.59040069580072],[-152.4088897705077,58.494998931884766],[-152.4802703857422,58.4686737060548],[-152.56277465820312,58.47666549682617],[-152.65666198730466,58.51472091674815],[-152.61636352539062,58.600925445556754],[-152.5618286132812,58.62059402465832],[-152.52189636230466,58.59017944335949],[-152.32736206054685,58.630077362060604]]],[[[-160.68849182128903,58.81931686401378],[-160.88221740722656,58.58139038085948],[-160.96298217773435,58.55108261108404],[-161.04119873046875,58.55796432495123],[-161.0862274169922,58.586471557617244],[-161.05294799804688,58.70265960693365],[-160.91795349121088,58.745353698730526],[-160.86572265625,58.74561691284179],[-160.768325805664,58.77361297607427],[-160.68849182128903,58.81931686401378]]],[[[-153.42704772949216,59.411865234375114],[-153.34657287597656,59.37683486938487],[-153.36241149902344,59.33793640136719],[-153.511474609375,59.31974411010747],[-153.53479003906247,59.36930084228527],[-153.42704772949216,59.411865234375114]]],[[[-150.70158386230472,59.41740036010748],[-150.6117553710937,59.39350128173834],[-150.61694335937497,59.35334014892572],[-150.70500183105466,59.294948577880916],[-150.76971435546864,59.30610275268566],[-150.7029571533202,59.37145233154291],[-150.70158386230472,59.41740036010748]]],[[[-146.30503845214844,59.4703407287597],[-146.2886810302734,59.44887542724621],[-146.3361053466797,59.40333175659186],[-146.37969970703125,59.41131591796869],[-146.30503845214844,59.4703407287597]]],[[[-144.21823120117182,60.00468444824212],[-144.4332122802734,59.89812088012707],[-144.52975463867188,59.84345245361333],[-144.5696105957031,59.85182189941411],[-144.37072753906244,59.96270751953136],[-144.26965332031247,60.00005722045898],[-144.21823120117182,60.00468444824212]]],[[[-147.8432312011719,60.06510162353527],[-147.81927490234375,60.046356201171925],[-147.91790771484378,59.970619201660156],[-148.05531311035156,59.95312118530274],[-147.86874389648435,60.07083511352539],[-147.8432312011719,60.06510162353527]]],[[[-147.96406555175784,60.133853912353565],[-147.8895874023437,60.11041641235362],[-148.00209045410153,60.07083511352539],[-148.0942687988281,60.0026016235351],[-148.13906860351557,60.014064788818416],[-148.09323120117182,60.06614303588872],[-147.96406555175784,60.133853912353565]]],[[[-148.03958129882812,60.1875],[-148.1015625,60.11510467529308],[-148.08384704589847,60.10469055175781],[-148.19792175292963,60.01666641235351],[-148.23124694824216,60.041667938232415],[-148.19531249999997,60.077606201171875],[-148.24166870117188,60.10625076293939],[-148.11457824707026,60.15000152587902],[-148.03958129882812,60.1875]]],[[[-145.17135620117185,60.354690551757756],[-145.17135620117185,60.32760620117181],[-145.23698425292966,60.304687500000114],[-145.27708435058597,60.335414886474666],[-145.17135620117185,60.354690551757756]]],[[[-148.0078125,60.37760162353515],[-147.98802185058588,60.36302185058599],[-148.02134704589844,60.285934448242244],[-148.10833740234375,60.27916717529291],[-148.15156555175776,60.3192710876466],[-148.08958435058588,60.35625076293952],[-148.0078125,60.37760162353515]]],[[[-147.10156250000003,60.37760162353515],[-147.125,60.333332061767635],[-147.00260925292966,60.339065551757805],[-147.08906555175784,60.289062500000114],[-146.91458129882807,60.302082061767635],[-146.9499969482422,60.26041793823242],[-147.03176879882807,60.21718978881841],[-147.17031860351565,60.16406250000006],[-147.3604125976562,60.041667938232415],[-147.39367675781244,59.99627685546886],[-147.5142211914062,59.937320709228516],[-147.45631408691406,59.90441894531251],[-147.46591186523435,59.86672210693365],[-147.52500915527335,59.8411216735841],[-147.6391143798828,59.84912109374999],[-147.6668701171875,59.81768798828131],[-147.7689208984375,59.80422210693354],[-147.845718383789,59.770721435546875],[-147.9178771972656,59.833465576171875],[-147.70678710937491,59.9923095703125],[-147.61666870117185,60.01041793823247],[-147.5557250976562,60.049480438232415],[-147.44583129882815,60.085414886474716],[-147.3729095458984,60.13750076293956],[-147.31614685058588,60.19947814941406],[-147.18592834472656,60.25051879882823],[-147.21197509765625,60.2911491394043],[-147.1651000976562,60.306774139404304],[-147.21197509765625,60.34531021118165],[-147.10156250000003,60.37760162353515]]],[[[-166.1223907470703,60.373439788818466],[-166.06927490234372,60.33802413940429],[-165.96875,60.312500000000114],[-165.88542175292963,60.33958435058605],[-165.68801879882807,60.29010391235362],[-165.72865295410148,60.2421875],[-165.68385314941403,60.20051956176758],[-165.7276000976562,60.1619758605957],[-165.66926574707028,60.122398376464844],[-165.71093749999997,60.063018798828246],[-165.65361022949216,59.996120452880916],[-165.5596618652343,59.93115997314458],[-165.57991027832028,59.912719726562614],[-165.71652221679682,59.8943214416505],[-165.83288574218744,59.8948974609375],[-165.86941528320304,59.87781906127929],[-166.0296478271484,59.867042541503906],[-166.12811279296875,59.82052230834972],[-166.080825805664,59.77568817138671],[-166.10861206054685,59.753120422363224],[-166.2004089355469,59.77582168579107],[-166.30731201171875,59.82622146606456],[-166.41621398925778,59.85671997070312],[-166.6129760742187,59.85272216796875],[-166.67501831054685,59.88442230224614],[-166.75189208984375,59.89288330078137],[-166.89541625976562,59.959121704101555],[-167.03761291503906,59.994819641113274],[-167.13490295410156,60],[-167.26666259765622,60.06041717529296],[-167.32916259765625,60.06458282470697],[-167.3380126953125,60.125518798828175],[-167.4067687988281,60.182815551757926],[-167.31459045410156,60.231250762939446],[-167.11093139648435,60.22969055175787],[-166.94010925292963,60.20051956176758],[-166.84426879882807,60.204685211181584],[-166.79635620117188,60.2390594482423],[-166.82864379882807,60.26927185058594],[-166.75990295410156,60.3036460876466],[-166.63749694824213,60.32500076293956],[-166.48176574707026,60.373439788818466],[-166.3520812988281,60.35625076293952],[-166.27291870117182,60.38333511352545],[-166.1223907470703,60.373439788818466]]],[[[-146.53698730468753,60.4817695617677],[-146.46875,60.45416641235346],[-146.41198730468744,60.47656249999994],[-146.35417175292963,60.46041488647472],[-146.33332824707028,60.40625],[-146.12342834472653,60.4265594482423],[-146.09217834472656,60.381771087646534],[-146.19323730468747,60.36614608764654],[-146.2453155517578,60.339065551757805],[-146.3083343505859,60.34583282470708],[-146.43489074707028,60.31406021118169],[-146.5776062011719,60.25051879882823],[-146.64791870117182,60.235416412353516],[-146.6974029541015,60.27864837646484],[-146.56301879882815,60.323440551757805],[-146.6000061035156,60.36875152587903],[-146.72239685058588,60.34323120117199],[-146.7250061035156,60.38541793823248],[-146.6192626953125,60.475521087646435],[-146.53698730468753,60.4817695617677]]],[[[-147.69323730468744,60.502601623535206],[-147.60885620117185,60.42552185058593],[-147.68698120117185,60.405731201171925],[-147.61926269531247,60.36614608764654],[-147.7171783447265,60.26510620117188],[-147.70260620117185,60.227603912353516],[-147.7770843505859,60.15625],[-147.89166259765625,60.222915649414055],[-147.90989685058597,60.2578125],[-147.82344055175778,60.29531478881836],[-147.87083435058588,60.32083511352534],[-147.83489990234375,60.4140625],[-147.7369842529297,60.42760467529296],[-147.6942749023437,60.45885086059575],[-147.69323730468744,60.502601623535206]]],[[[-151.92655944824216,60.513019561767635],[-151.83593749999997,60.48281478881836],[-151.95468139648438,60.44844055175788],[-151.92655944824216,60.513019561767635]]],[[[-144.90782165527347,60.54010391235357],[-144.91458129882812,60.45416641235346],[-144.96665954589847,60.420833587646484],[-145.0536499023437,60.44322586059575],[-145.00625610351557,60.46666717529297],[-145.01249694824216,60.510417938232365],[-144.90782165527347,60.54010391235357]]],[[[-145.80364990234372,60.583850860595646],[-145.8025970458984,60.56198120117198],[-145.9624938964844,60.5187492370606],[-146.0895843505859,60.47499847412121],[-146.1854095458984,60.45624923706048],[-146.3208312988281,60.45416641235346],[-146.28906249999997,60.51406478881836],[-146.1223907470703,60.52864837646479],[-145.89999389648438,60.58750152587896],[-145.80364990234372,60.583850860595646]]],[[[-172.94114685058594,60.602603912353516],[-172.93281555175776,60.55989837646496],[-172.87657165527344,60.49843978881836],[-172.7682342529297,60.44635391235352],[-172.66250610351565,60.41666793823248],[-172.61405944824222,60.378643035888665],[-172.4187469482422,60.389583587646534],[-172.2958374023437,60.333332061767635],[-172.47656249999994,60.339065551757805],[-172.56875610351565,60.31874847412115],[-172.7369842529297,60.3651008605957],[-172.78385925292966,60.399478912353516],[-172.89739990234378,60.44844055175788],[-172.94375610351557,60.48125076293939],[-173.0661468505859,60.49843978881836],[-173.035415649414,60.5625],[-172.94114685058594,60.602603912353516]]],[[[-147.94583129882812,60.729167938232536],[-147.8984375,60.73072814941411],[-147.8505249023437,60.679687500000114],[-147.99948120117185,60.68801879882818],[-147.94583129882812,60.729167938232536]]],[[[-148.1708374023437,60.75208282470709],[-148.11666870117182,60.74583435058605],[-148.09217834472653,60.66197586059576],[-148.16406249999991,60.6296844482423],[-148.2369842529297,60.69635391235363],[-148.23905944824216,60.7244758605957],[-148.1708374023437,60.75208282470709]]],[[[-164.99948120117185,60.87343978881836],[-164.89010620117185,60.838024139404354],[-164.9583282470703,60.82083511352545],[-165.0203094482422,60.834896087646484],[-164.99948120117185,60.87343978881836]]],[[[-146.75781249999997,60.877601623535206],[-146.70677185058588,60.851562499999936],[-146.7250061035156,60.81041717529296],[-146.80155944824213,60.808856964111385],[-146.8140716552734,60.843231201171875],[-146.75781249999997,60.877601623535206]]],[[[-163.79531860351562,60.890106201171875],[-163.77082824707034,60.849998474121215],[-163.83332824707028,60.84375],[-163.875,60.87083435058593],[-163.79531860351562,60.890106201171875]]],[[[-148.03282165527344,60.92343521118163],[-147.92968749999997,60.87343978881836],[-147.95364379882812,60.84635162353527],[-147.91510009765622,60.81301879882807],[-148.0291595458984,60.78125],[-148.12290954589844,60.78749847412109],[-148.14739990234372,60.82344055175786],[-148.12239074707026,60.86614608764642],[-148.03282165527344,60.92343521118163]]],[[[-164.91615295410153,62.669269561767635],[-164.85469055175776,62.659893035888736],[-164.8109283447265,62.60260391235345],[-164.87916564941406,62.59791564941401],[-164.93281555175776,62.63801956176769],[-164.91615295410153,62.669269561767635]]],[[[-164.82864379882815,62.79426956176769],[-164.72708129882815,62.78958511352539],[-164.67916870117185,62.75624847412109],[-164.51458740234375,62.77083206176752],[-164.5713500976562,62.698440551757756],[-164.68489074707028,62.65781021118169],[-164.72343444824216,62.62760162353521],[-164.82031249999997,62.63801956176769],[-164.8526000976562,62.75051879882806],[-164.82864379882815,62.79426956176769]]],[[[-162.3994750976562,63.62760162353521],[-162.3484344482421,63.588024139404354],[-162.38125610351557,63.53958511352545],[-162.47708129882807,63.54791641235351],[-162.60000610351565,63.53958511352545],[-162.69323730468747,63.57656478881841],[-162.63073730468741,63.614059448242244],[-162.55416870117185,63.633335113525334],[-162.49948120117188,63.61822891235362],[-162.3994750976562,63.62760162353521]]],[[[-171.66615295410153,63.78176879882823],[-171.63490295410156,63.68801879882812],[-171.5187530517578,63.65833282470708],[-171.51666259765628,63.61458206176769],[-171.45625305175778,63.59999847412121],[-171.2270812988281,63.61249923706066],[-170.98541259765622,63.56458282470703],[-170.88594055175778,63.575519561767685],[-170.6578216552734,63.661975860595696],[-170.56875610351557,63.66041564941412],[-170.49583435058594,63.693748474121094],[-170.28958129882807,63.6875],[-170.1458282470703,63.61458206176769],[-170.1062469482422,63.61458206176769],[-170.03802490234372,63.52135086059582],[-170.0640716552734,63.48905944824219],[-169.9375,63.46875],[-169.80259704589844,63.42760086059575],[-169.6520843505859,63.429164886474666],[-169.5692749023437,63.39947891235345],[-169.55624389648435,63.36041641235351],[-169.47500610351562,63.34375],[-169.3937530517578,63.35625076293945],[-169.25209045410148,63.34166717529297],[-169.00260925292963,63.3411483764649],[-168.88125610351562,63.32916641235352],[-168.80624389648432,63.299999237060604],[-168.69218444824213,63.29531478881847],[-168.73698425292966,63.26301956176763],[-168.72135925292963,63.23176956176764],[-168.86093139648435,63.16302108764648],[-168.95208740234372,63.16041564941406],[-169.06666564941403,63.197917938232415],[-169.28125,63.189582824706974],[-169.37290954589838,63.15625],[-169.42291259765622,63.11249923706054],[-169.48905944824222,63.097393035888665],[-169.57656860351557,63.05364608764659],[-169.55572509765628,62.9921875],[-169.63749694824216,62.9375],[-169.75573730468747,62.95885467529296],[-169.7026062011718,63.03176879882818],[-169.816665649414,63.11249923706054],[-169.89582824707023,63.141666412353516],[-170.004165649414,63.14374923706055],[-170.10208129882815,63.189582824706974],[-170.2166595458984,63.18333435058594],[-170.23593139648432,63.27864837646478],[-170.316665649414,63.287498474121094],[-170.35260009765622,63.31406021118164],[-170.47291564941403,63.36041641235351],[-170.53958129882807,63.3687515258789],[-170.6317749023437,63.418228149414176],[-170.78334045410153,63.408332824707145],[-170.87290954589844,63.45000076293957],[-170.93540954589838,63.43541717529308],[-171.06040954589844,63.43333435058587],[-171.2880249023437,63.37760162353527],[-171.3312530517578,63.33333206176758],[-171.43333435058588,63.308334350585994],[-171.56459045410153,63.33958435058599],[-171.73281860351557,63.3671875],[-171.81666564941406,63.43125152587884],[-171.84114074707028,63.503646850586],[-171.8286437988281,63.58073043823242],[-171.7932281494141,63.62864303588873],[-171.74635314941403,63.64218521118169],[-171.75364685058594,63.683856964111435],[-171.71249389648435,63.775001525878906],[-171.66615295410153,63.78176879882823]]],[[[-169.06198120117188,65.81510162353516],[-168.99635314941403,65.80364990234375],[-169.0525970458984,65.74843597412121],[-169.11822509765622,65.75885009765648],[-169.06198120117188,65.81510162353516]]],[[[-150.55572509765622,70.49635314941412],[-150.48385620117188,70.47135162353521],[-150.6328125,70.43593597412121],[-150.77239990234372,70.47760009765625],[-150.7145843505859,70.49583435058604],[-150.55572509765622,70.49635314941412]]]]},"properties":{"ID_0":244,"ISO":"US-AK","NAME_0":"United States","ID_1":2,"NAME_1":"Alaska","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"AK|Alaska"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-141.3145904541015,60.054164886474716],[-141.4270782470703,60.125000000000114],[-141.45208740234372,60.11041641235362],[-141.44792175292963,60.08124923706066],[-141.37135314941395,60.032810211181754],[-141.40415954589832,60.006248474121094],[-141.53082275390625,59.98968505859375],[-141.60461425781244,59.963619232177734],[-141.75021362304682,59.951519012451286],[-141.8854217529297,60.00208282470703],[-142.02499389648432,60.02500152587896],[-142.4208374023437,60.06458282470697],[-142.6062469482421,60.09375000000011],[-142.72708129882807,60.09375000000011],[-142.75833129882812,60.11041641235362],[-142.9895782470703,60.08333206176769],[-143.04010009765625,60.09635162353521],[-143.10833740234375,60.066665649414176],[-143.37916564941406,60.05208206176752],[-143.46458435058594,60.06041717529296],[-143.64791870117188,60.03749847412103],[-143.88989257812494,59.9893188476563],[-144.0291595458984,60.02083206176758],[-144.21875,60.02083206176758],[-144.2124938964844,60.041667938232415],[-144.0625,60.03749847412103],[-144.06875610351562,60.07083511352539],[-144.1458282470703,60.1083335876466],[-144.2562561035156,60.12708282470709],[-144.31666564941398,60.1749992370606],[-144.46875,60.166667938232536],[-144.51510620117182,60.185939788818466],[-144.58958435058597,60.1791648864746],[-144.73593139648435,60.26614379882823],[-144.78541564941403,60.28333282470714],[-144.9536437988281,60.28802108764643],[-144.918228149414,60.35156250000006],[-144.78802490234372,60.47343826293945],[-144.8307342529297,60.52030944824219],[-144.8333282470703,60.56458282470709],[-144.70989990234375,60.64635467529297],[-144.63958740234372,60.65208435058594],[-144.59165954589844,60.73333358764654],[-144.60208129882807,60.716667175293075],[-144.65415954589838,60.666667938232415],[-144.70416259765622,60.67499923706065],[-144.6999969482422,60.69583511352539],[-144.82499694824216,60.64166641235351],[-144.7791595458984,60.629165649414],[-144.8640594482421,60.60989379882807],[-144.88594055175778,60.54846191406261],[-144.99790954589844,60.529167175293075],[-145.08384704589844,60.44427108764648],[-145.20884704589838,60.36718750000006],[-145.3333282470703,60.341667175293075],[-145.36874389648432,60.35625076293952],[-145.50209045410153,60.41666793823248],[-145.66615295410156,60.46197891235346],[-145.879165649414,60.44583511352539],[-145.91250610351562,60.489582061767685],[-145.8020782470703,60.5187492370606],[-145.7088470458984,60.57968521118164],[-145.66510009765622,60.65468978881836],[-145.84375,60.610416412353516],[-145.8994750976562,60.674480438232415],[-145.94010925292966,60.623439788818416],[-145.99948120117188,60.64114379882824],[-145.94999694824222,60.697917938232365],[-146.1499938964843,60.63124847412104],[-146.24790954589844,60.625],[-146.26197814941403,60.65156555175786],[-146.14166259765625,60.7062492370606],[-146.2348937988281,60.7203102111817],[-146.38697814941398,60.71614837646484],[-146.41874694824213,60.687500000000114],[-146.49426269531253,60.68072891235363],[-146.60156249999994,60.69322586059576],[-146.69531249999994,60.73176956176763],[-146.54739379882807,60.76718521118164],[-146.45051574707028,60.76823043823248],[-146.3312530517578,60.78541564941406],[-146.24166870117185,60.8125],[-146.2901000976562,60.838024139404354],[-146.3562469482422,60.81666564941406],[-146.3916625976562,60.84166717529297],[-146.45625305175778,60.8125],[-146.53958129882807,60.81041717529296],[-146.5708312988281,60.85625076293946],[-146.64114379882807,60.8848991394043],[-146.68907165527344,60.867187499999936],[-146.73593139648432,60.93698120117199],[-146.62916564941403,60.92291641235357],[-146.62083435058588,60.952083587646534],[-146.7062530517578,60.962501525878956],[-146.65364074707026,61.05052185058593],[-146.61041259765628,61.08124923706066],[-146.45832824707023,61.07708358764659],[-146.3729095458984,61.08750152587884],[-146.2666625976562,61.08333206176763],[-146.2375030517578,61.1083335876466],[-146.32968139648432,61.13281250000005],[-146.57447814941398,61.123439788818295],[-146.59791564941406,61.1437492370606],[-146.7020874023437,61.054164886474716],[-146.76666259765622,61.043750762939446],[-146.84739685058594,60.99948120117193],[-146.8791656494141,60.96041488647462],[-146.96249389648438,60.93125152587901],[-147.0187530517578,60.956249237060604],[-147.03541564941403,60.9916648864746],[-147.10572814941406,61.0078125],[-147.21041870117185,60.943748474121094],[-147.36666870117188,60.88333511352539],[-147.44583129882815,60.89374923706066],[-147.4708404541015,60.956249237060604],[-147.53906249999997,60.98906326293952],[-147.5104217529296,61.08124923706066],[-147.6020812988281,61.027084350585945],[-147.62135314941403,60.965106964111435],[-147.59843444824213,60.944271087646534],[-147.60624694824222,60.84791564941417],[-147.6666717529297,60.86249923706066],[-147.7244873046875,60.91719055175781],[-147.7973937988281,60.869274139404354],[-147.76510620117185,60.81301879882807],[-147.85833740234372,60.82083511352545],[-147.90573120117185,60.84635162353527],[-147.92291259765622,60.88958358764659],[-148.05155944824216,60.943225860595696],[-147.99374389648432,60.962501525878956],[-147.94427490234372,61.013019561767514],[-147.89947509765625,61.09323120117187],[-147.75625610351565,61.18541717529302],[-147.75416564941398,61.20833206176752],[-147.6666717529297,61.27708435058587],[-147.71458435058597,61.291667938232365],[-147.82135009765622,61.20260620117193],[-147.9953155517578,61.0953102111817],[-148.00468444824222,61.05260086059576],[-148.08384704589847,61.00989913940435],[-148.14791870117188,61.09791564941412],[-148.29791259765625,61.085414886474666],[-148.2599029541015,61.051563262939446],[-148.17031860351562,61.0390625],[-148.1859283447265,60.990104675293026],[-148.2828216552734,60.89530944824224],[-148.30572509765622,60.84114837646489],[-148.40625,60.845832824706974],[-148.45260620117188,60.80364608764648],[-148.60208129882807,60.76041793823248],[-148.68072509765625,60.70573043823237],[-148.59426879882804,60.69427108764659],[-148.56875610351562,60.737499237060604],[-148.51042175292972,60.766666412353565],[-148.3833312988281,60.75416564941412],[-148.38542175292963,60.679164886474666],[-148.2473907470703,60.74739837646496],[-148.2541656494141,60.70416641235363],[-148.1880187988281,60.60989379882807],[-148.26823425292966,60.584896087646534],[-148.3249969482422,60.529167175293075],[-148.4770812988281,60.57291793823248],[-148.59739685058597,60.53281021118163],[-148.71458435058594,60.45624923706048],[-148.63177490234372,60.45885086059575],[-148.56666564941406,60.502082824707145],[-148.4541625976562,60.541667938232536],[-148.40364074707028,60.49427413940429],[-148.33125305175776,60.47291564941418],[-148.26666259765628,60.48125076293939],[-148.2244873046875,60.526565551757805],[-148.11198425292963,60.593231201171925],[-148.07864379882807,60.545314788818466],[-148.00260925292963,60.53489303588867],[-147.94531249999997,60.43906021118175],[-147.96249389648432,60.41666793823248],[-148.06040954589838,60.39166641235351],[-148.20884704589844,60.30052185058588],[-148.32240295410153,60.25989913940436],[-148.32916259765622,60.21250152587896],[-148.26458740234366,60.24791717529296],[-148.15051269531244,60.204685211181584],[-148.12135314941403,60.17343521118163],[-148.222915649414,60.12083435058606],[-148.2895812988281,60.11041641235362],[-148.3062438964844,60.16041564941413],[-148.39323425292963,60.10469055175781],[-148.36718749999994,60.08697891235362],[-148.41250610351557,60.02916717529297],[-148.41030883789057,59.981021881103565],[-148.4559936523437,59.94128417968756],[-148.53593444824216,60.03073120117193],[-148.55331420898435,59.96971893310552],[-148.60810852050778,59.928520202636776],[-148.68328857421875,59.92187500000011],[-148.74771118164057,59.9585189819337],[-148.88351440429682,59.92522048950206],[-148.9628143310547,59.97212219238281],[-149.00901794433588,59.94622039794927],[-149.13121032714838,59.96432113647472],[-149.06092834472653,60.010940551757926],[-149.06040954589847,60.056251525878906],[-149.16822814941403,60.02864837646489],[-149.22111511230463,59.99932098388683],[-149.23690795898438,59.94021987915045],[-149.26971435546875,59.907421112060604],[-149.37921142578125,59.90312194824224],[-149.33331298828125,59.970420837402344],[-149.3395843505859,60.07708358764643],[-149.35885620117182,60.11406326293957],[-149.44323730468744,60.1161460876466],[-149.4474029541016,60.03489303588878],[-149.3963470458984,60.00156021118163],[-149.44181823730466,59.97792053222662],[-149.47021484374994,59.918220520019595],[-149.52421569824216,59.92802047729498],[-149.56901550292963,59.9026222229004],[-149.58311462402344,59.84872055053723],[-149.67240905761716,59.81192016601562],[-149.6622161865234,59.911621093749936],[-149.68942260742188,59.94692230224609],[-149.75032043457026,59.94112014770507],[-149.72502136230472,59.88022232055675],[-149.75531005859372,59.839820861816456],[-149.82241821289057,59.83472061157226],[-149.76361083984375,59.753318786621094],[-149.78701782226557,59.70521926879888],[-149.88812255859366,59.73691940307623],[-149.92001342773438,59.76951980590826],[-150.05981445312497,59.775321960449276],[-149.92552185058582,59.71292114257812],[-149.941421508789,59.66312026977545],[-150.0213165283203,59.62572097778326],[-150.08511352539062,59.662319183349666],[-150.12661743164054,59.58961868286132],[-150.1796112060547,59.53812026977539],[-150.26841735839844,59.522819519043026],[-150.3243103027344,59.47132110595708],[-150.37431335449216,59.51832199096685],[-150.30320739746094,59.58002090454096],[-150.3277130126953,59.62532043457025],[-150.43830871582028,59.51462173461914],[-150.4866180419922,59.49531936645519],[-150.57681274414062,59.5294189453125],[-150.51791381835932,59.57392120361334],[-150.56571960449216,59.584819793701165],[-150.62960815429682,59.541419982910156],[-150.58451843261716,59.49522018432623],[-150.605712890625,59.42932128906255],[-150.74711608886716,59.42432022094732],[-150.77511596679682,59.37472152709966],[-150.85441589355466,59.352821350097656],[-150.8886108398437,59.31922149658203],[-150.8949127197265,59.27172088623046],[-150.9621124267578,59.23461914062506],[-151.017822265625,59.235321044921875],[-151.05351257324213,59.294818878173935],[-151.18501281738276,59.277420043945256],[-151.10771179199216,59.246822357177734],[-151.1631164550781,59.204719543457145],[-151.2631225585937,59.224922180175895],[-151.31231689453128,59.211719512939396],[-151.3959197998047,59.25141906738286],[-151.44541931152344,59.25672149658209],[-151.57791137695315,59.20772171020508],[-151.62991333007807,59.16582107543951],[-151.74021911621094,59.15732192993175],[-151.7579193115234,59.21762084960943],[-151.88401794433594,59.21392059326171],[-151.98181152343744,59.25791931152355],[-151.99411010742182,59.31472015380864],[-151.92221069335932,59.36381912231451],[-151.89251708984375,59.428821563720696],[-151.63610839843744,59.486122131347656],[-151.53231811523438,59.45732116699218],[-151.49011230468747,59.48171997070312],[-151.4418182373047,59.54822158813476],[-151.3176116943359,59.554420471191406],[-151.28161621093744,59.59912109375006],[-151.11972045898435,59.675121307373104],[-151.12451171875,59.69572067260748],[-150.9883117675781,59.764518737793075],[-150.99121093750003,59.79711914062511],[-151.05880737304688,59.796920776367244],[-151.34152221679682,59.68622207641613],[-151.4369201660156,59.67012023925793],[-151.48352050781244,59.63862228393555],[-151.64511108398435,59.647319793701286],[-151.79351806640625,59.70042037963867],[-151.85861206054685,59.73912048339849],[-151.87391662597656,59.776020050048885],[-151.81481933593744,59.870521545410206],[-151.75930786132807,59.918521881103636],[-151.69531250000003,60.03489303588878],[-151.60365295410156,60.09947586059575],[-151.52551269531247,60.13594055175782],[-151.41302490234378,60.21510696411138],[-151.3791656494141,60.29375076293939],[-151.37657165527344,60.3651008605957],[-151.3020782470703,60.38333511352545],[-151.27967834472653,60.435939788818416],[-151.27030944824216,60.54843521118163],[-151.3265686035156,60.57760620117199],[-151.35052490234375,60.64323043823242],[-151.40573120117185,60.7203102111817],[-151.3020782470703,60.73958206176763],[-151.25781249999994,60.77031326293951],[-151.05259704589844,60.78802108764654],[-150.70989990234366,60.93489837646478],[-150.3958282470703,61.035415649414006],[-150.32968139648435,61.014064788818416],[-150.26197814941395,60.944271087646534],[-150.1869812011719,60.92239379882819],[-150.0687561035156,60.91249847412114],[-149.91667175292966,60.9375],[-149.84375,60.966667175293026],[-149.76249694824222,60.962501525878956],[-149.5749969482422,60.93333435058606],[-149.37709045410156,60.89374923706066],[-149.19583129882815,60.891666412353636],[-149.11457824707034,60.90208435058605],[-149.02499389648438,60.849998474121215],[-149.08125305175778,60.90625000000011],[-149.19166564941403,60.943748474121094],[-149.36041259765622,60.92916488647466],[-149.49009704589844,60.982814788818416],[-149.5916595458984,60.98125076293951],[-149.73124694824213,61.014583587646484],[-149.83593749999994,61.0723991394043],[-150.039581298828,61.141666412353565],[-150.02343749999994,61.1901016235351],[-149.9088592529297,61.21510696411138],[-149.82031249999994,61.305728912353565],[-149.7380218505859,61.32447814941412],[-149.69999694824216,61.381248474121094],[-149.6374969482421,61.38541793823248],[-149.3812561035156,61.466667175292905],[-149.25416564941406,61.479167938232365],[-149.18907165527338,61.4755210876466],[-149.15625,61.497917175293075],[-149.08958435058597,61.487499237060604],[-148.97917175292963,61.508335113525504],[-148.8661499023437,61.469268798828175],[-148.81875610351557,61.48541641235363],[-148.9354095458984,61.5187492370606],[-149.0333404541015,61.50416564941412],[-149.16041564941406,61.50208282470708],[-149.21458435058594,61.479167938232365],[-149.2687530517578,61.49375152587885],[-149.46875,61.466667175292905],[-149.57760620117182,61.484893798828175],[-149.76249694824222,61.44374847412121],[-149.82499694824213,61.39374923706054],[-149.87864685058594,61.386978149414055],[-149.91874694824216,61.31666564941412],[-149.91874694824216,61.26666641235362],[-149.980728149414,61.24114608764648],[-150.07708740234375,61.254165649414176],[-150.30624389648432,61.25833511352539],[-150.48750305175776,61.252082824707145],[-150.55207824707028,61.2958335876466],[-150.56198120117182,61.339065551757756],[-150.45468139648432,61.409893035888786],[-150.48385620117188,61.46823120117187],[-150.57031249999997,61.50781250000006],[-150.54374694824222,61.52708435058605],[-150.36509704589844,61.59426879882807],[-150.37448120117182,61.6171875],[-150.31459045410148,61.66249847412115],[-150.26875305175778,61.716667175293026],[-150.25,61.76250076293951],[-150.1775970458984,61.780731201171925],[-150.18489074707026,61.829685211181754],[-150.0963592529297,61.910934448242195],[-150.0916595458984,61.97083282470703],[-150.1161499023437,62.02135467529297],[-150.06927490234375,62.1036491394043],[-150.10885620117185,62.143230438232486],[-150.1744842529297,62.167190551757926],[-150.1067657470703,62.19844055175787],[-150.13697814941406,62.23698043823242],[-150.10469055175776,62.305728912353565],[-150.1687469482422,62.35416793823247],[-150.15625,62.3354148864746],[-150.12968444824213,62.2755241394043],[-150.16822814941403,62.24843978881835],[-150.12916564941403,62.216667175292976],[-150.1890716552734,62.167190551757926],[-150.08958435058594,62.09583282470709],[-150.125,62.060417175293075],[-150.1515655517578,61.9609375],[-150.1333312988281,61.939582824707095],[-150.11509704589838,61.92031478881847],[-150.20780944824207,61.84531021118169],[-150.23072814941403,61.7890625],[-150.28489685058594,61.74948120117199],[-150.31459045410148,61.668750762939396],[-150.38333129882812,61.64791488647472],[-150.3942718505859,61.60572814941401],[-150.472915649414,61.57291793823248],[-150.4963531494141,61.6015625],[-150.54374694824222,61.627082824706974],[-150.5807342529297,61.63594055175786],[-150.6296844482421,61.69114685058605],[-150.63801574707028,61.72969055175775],[-150.7020874023437,61.7729148864746],[-150.6901092529297,61.78697586059582],[-150.78176879882812,61.86614608764659],[-150.83958435058588,61.89583206176763],[-151.0020904541015,61.92291641235357],[-151.10885620117185,61.98072814941406],[-151.16874694824216,61.989582061767514],[-151.12290954589844,61.97499847412109],[-151.02082824707028,61.9187507629395],[-150.82760620117185,61.88697814941411],[-150.82656860351557,61.865104675293075],[-150.72291564941406,61.79791641235352],[-150.6744842529297,61.70468521118163],[-150.5911407470703,61.63385391235346],[-150.48593139648438,61.5859375],[-150.49009704589832,61.55677413940441],[-150.57240295410153,61.53073120117198],[-150.57240295410153,61.483856201171875],[-150.49009704589832,61.45573043823242],[-150.5979156494141,61.36041641235357],[-150.66458129882815,61.32500076293956],[-150.67135620117182,61.27135086059575],[-150.85417175292972,61.20833206176752],[-150.93540954589844,61.20000076293945],[-151.05570983886713,61.15573501586914],[-151.16302490234372,61.046356201171875],[-151.29948425292966,61.032810211181754],[-151.3562469482422,61.00833511352545],[-151.43281555175778,61.00572586059582],[-151.61198425292963,60.94947814941412],[-151.71458435058588,60.89583206176763],[-151.77239990234372,60.86614608764642],[-151.79531860351562,60.82864379882824],[-151.7400970458984,60.77656555175792],[-151.70260620117182,60.71510696411132],[-151.8265686035156,60.72343444824219],[-151.99739074707026,60.672393798828175],[-152.0625,60.62708282470703],[-152.09217834472653,60.57968521118164],[-152.18959045410156,60.56458282470709],[-152.25,60.53541564941411],[-152.33489990234372,60.46926879882824],[-152.3161468505859,60.421356201171925],[-152.23593139648435,60.39323043823248],[-152.3703155517578,60.35156250000006],[-152.4187469482422,60.285415649414176],[-152.5182342529297,60.25989913940436],[-152.5625,60.21666717529297],[-152.6307373046875,60.21926879882806],[-152.73541259765616,60.189582824707024],[-152.5708312988281,60.075000762939446],[-152.61041259765622,60.006248474121094],[-152.66851806640625,59.98302078247082],[-152.70690917968747,59.92012023925786],[-152.8699188232422,59.8752212524414],[-153.00682067871088,59.88682174682622],[-153.20690917968744,59.85932159423839],[-153.28311157226557,59.830520629882926],[-153.1476135253906,59.80912017822271],[-153.09431457519528,59.83351898193365],[-153.02941894531241,59.83491897583013],[-152.9938201904297,59.808319091796925],[-153.05921936035153,59.69042205810547],[-153.25381469726557,59.63282012939453],[-153.3453216552734,59.62171936035156],[-153.393814086914,59.66511917114257],[-153.36061096191406,59.73691940307623],[-153.4652099609375,59.761020660400334],[-153.44621276855466,59.698219299316406],[-153.4798126220703,59.644721984863395],[-153.56581115722653,59.62491989135747],[-153.5542144775391,59.597221374511776],[-153.5925140380859,59.5537223815918],[-153.76361083984375,59.545619964599666],[-153.70721435546872,59.467720031738395],[-153.8102111816406,59.422821044921875],[-153.91021728515628,59.42061996459961],[-153.97241210937494,59.356819152832024],[-154.11311340332028,59.305221557617294],[-154.14251708984375,59.26871871948253],[-154.1292114257812,59.199321746826115],[-154.18531799316403,59.192420959472656],[-154.26892089843741,59.13452148437512],[-154.17941284179688,59.12192153930664],[-154.2005157470703,59.073520660400455],[-154.18061828613278,59.02291870117193],[-154.14012145996094,59.02172088623052],[-154.0682220458984,59.074119567871094],[-153.96852111816403,59.071620941162166],[-153.86441040039062,59.05532073974615],[-153.80711364746094,59.074020385742244],[-153.69961547851562,59.07551956176752],[-153.62861633300776,59.0106201171875],[-153.54631042480463,58.98292160034185],[-153.48442077636713,58.99872207641601],[-153.33612060546866,58.90011978149414],[-153.31251525878903,58.854221343994254],[-153.3559112548828,58.83951950073248],[-153.3945159912109,58.747322082519645],[-153.45510864257812,58.70552062988287],[-153.56442260742182,58.68212127685558],[-153.59431457519528,58.63182067871094],[-153.76141357421875,58.604419708251896],[-153.8881225585937,58.60671997070318],[-153.8956146240234,58.568820953369205],[-153.9629211425781,58.48622131347667],[-154.07942199707026,58.478919982910206],[-154.06710815429682,58.42712020874029],[-154.00740051269534,58.3752098083496],[-154.07331848144526,58.35472106933599],[-154.1803131103515,58.35942077636713],[-154.21641540527344,58.33692169189453],[-154.35781860351548,58.284721374511776],[-154.33541870117185,58.25942230224621],[-154.2610168457031,58.27362060546875],[-154.2602081298828,58.29692077636718],[-154.15531921386713,58.31671905517578],[-154.15171813964838,58.23392105102545],[-154.17800903320312,58.19171905517589],[-154.33741760253903,58.159919738769524],[-154.37011718749997,58.104621887207024],[-154.44491577148438,58.15682220458995],[-154.454116821289,58.09132003784191],[-154.53080749511716,58.104820251464844],[-154.5702209472656,58.0257186889649],[-154.64710998535156,58.03292083740235],[-154.71841430664057,58.058120727539055],[-154.73991394042972,58.014419555664055],[-154.93000793457023,58.03272247314453],[-154.99191284179685,58.0136222839356],[-155.03451538085932,57.97381973266613],[-155.11161804199213,57.94422149658203],[-155.06881713867188,57.90422058105474],[-155.09101867675778,57.872718811035156],[-155.1558074951172,57.855121612548885],[-155.2103118896484,57.86822128295898],[-155.2360076904297,57.82601928710943],[-155.33122253417963,57.82632064819341],[-155.30480957031247,57.72332000732416],[-155.39041137695312,57.71252059936535],[-155.59011840820312,57.7880210876466],[-155.63951110839844,57.70402145385742],[-155.59622192382815,57.65842056274414],[-155.7145080566406,57.633220672607415],[-155.7450103759765,57.59532165527339],[-155.7316131591797,57.54341888427745],[-155.86341857910156,57.55232238769537],[-155.9342193603515,57.52972030639654],[-156.0298156738281,57.56542205810547],[-156.05601501464838,57.51712036132807],[-156.02551269531247,57.433521270751946],[-156.11161804199216,57.43651962280285],[-156.18351745605463,57.477119445800774],[-156.22471618652338,57.4439201354981],[-156.33421325683582,57.4189224243164],[-156.4523162841797,57.34542083740246],[-156.531021118164,57.326820373535156],[-156.55770874023438,57.288021087646484],[-156.3743133544922,57.316921234130966],[-156.3224182128906,57.28982162475597],[-156.38291931152338,57.25222015380859],[-156.39001464843747,57.20201873779308],[-156.3389129638672,57.1761207580567],[-156.37249755859375,57.14349365234375],[-156.48101806640625,57.10913085937511],[-156.49841308593744,57.06132125854503],[-156.58871459960932,57.036521911621094],[-156.55200195312494,56.98431396484381],[-156.67541503906241,56.99382019042969],[-156.71981811523438,57.03702163696289],[-156.78662109374994,56.97088623046874],[-156.8045654296874,56.91065597534191],[-156.85168457031247,56.923706054687614],[-156.9028167724609,56.96541976928705],[-156.93601989746094,56.915618896484375],[-157.0358276367187,56.888916015625],[-157.08061218261722,56.82392120361334],[-157.21417236328122,56.76708984375005],[-157.3928833007812,56.863525390625],[-157.47547912597653,56.83405685424805],[-157.4210815429687,56.79962158203125],[-157.433120727539,56.76871871948248],[-157.5236206054687,56.75831985473633],[-157.56738281249994,56.705505371093864],[-157.55500793457028,56.678218841552734],[-157.47781372070312,56.66461944580084],[-157.46241760253903,56.62351989746105],[-157.58460998535156,56.62112045288097],[-157.68237304687497,56.607299804687614],[-157.73870849609372,56.673889160156186],[-157.94381713867185,56.63471984863287],[-158.1303558349609,56.55080795288086],[-158.12811279296875,56.5269165039063],[-157.90901184082028,56.57102203369146],[-157.81951904296878,56.55612182617193],[-157.86660766601562,56.47111892700201],[-158.0864105224609,56.507221221923885],[-158.13279724121094,56.46062850952154],[-158.1839141845703,56.454620361328175],[-158.33111572265622,56.48212051391601],[-158.40568542480466,56.451229095458984],[-158.51171874999994,56.37072753906256],[-158.51341247558597,56.34931945800781],[-158.602310180664,56.31312179565424],[-158.6382141113281,56.25962066650385],[-158.55859375,56.26391601562505],[-158.54351806640625,56.30767822265619],[-158.43572998046872,56.340087890625114],[-158.4108276367187,56.29791259765636],[-158.34712219238276,56.32131958007818],[-158.21171569824216,56.27148818969737],[-158.30551147460938,56.23451995849615],[-158.34808349609372,56.12231445312499],[-158.43572998046872,56.13629150390631],[-158.48501586914057,56.109519958496094],[-158.46801757812503,56.02392196655285],[-158.5988159179687,56.04608154296881],[-158.59158325195312,56.10945510864258],[-158.634536743164,56.11127090454113],[-158.66632080078122,56.05192184448247],[-158.6296234130859,56.000019073486385],[-158.67701721191403,55.949821472168075],[-158.72930908203125,56.00891113281256],[-158.8341674804687,56.01586914062499],[-158.90701293945307,55.9267196655274],[-158.98841857910156,55.92631912231445],[-159.26019287109372,55.89093017578119],[-159.39408874511716,55.85485076904308],[-159.40399169921872,55.78729248046881],[-159.4541015625,55.80950927734375],[-159.45292663574216,55.88828659057623],[-159.52378845214838,55.88402557373058],[-159.4893188476562,55.762695312500114],[-159.54591369628903,55.70552062988275],[-159.53222656250003,55.64648437500006],[-159.61248779296872,55.590270996093864],[-159.70851135253903,55.56742095947277],[-159.69972229003903,55.60972213745117],[-159.6286926269531,55.61803054809582],[-159.6373138427734,55.65151977539074],[-159.69750976562491,55.65692138671875],[-159.65512084960938,55.71482086181652],[-159.6602172851562,55.75427246093756],[-159.62251281738278,55.81991958618164],[-159.70581054687494,55.84492111206055],[-159.83261108398438,55.848220825195305],[-159.8408355712891,55.80028533935558],[-159.89431762695312,55.78392028808588],[-159.94860839843741,55.815818786621094],[-160.04830932617185,55.76301956176769],[-160.02632141113284,55.71482086181652],[-160.135009765625,55.70611572265625],[-160.16839599609372,55.66363906860363],[-160.3551635742187,55.614871978759766],[-160.42169189453122,55.573120117187614],[-160.45463562011713,55.50988006591797],[-160.53063964843744,55.47567749023449],[-160.58036804199216,55.56192398071295],[-160.66271972656244,55.54362106323248],[-160.72390747070312,55.55612182617193],[-160.7457885742187,55.524291992187614],[-160.65000915527344,55.51292037963873],[-160.66300964355463,55.461818695068466],[-160.79000854492188,55.454921722412166],[-160.83291625976562,55.47082138061518],[-160.84281921386716,55.52252197265631],[-160.94451904296878,55.508483886718864],[-160.98780822753906,55.44472122192383],[-161.1733093261719,55.38362121582031],[-161.23907470703122,55.3546752929688],[-161.3180084228515,55.359119415283196],[-161.3549194335937,55.38352203369152],[-161.47631835937494,55.3572998046875],[-161.50811767578125,55.37908935546881],[-161.47669982910148,55.42309951782237],[-161.4703979492187,55.479675292968864],[-161.35517883300776,55.58708190917962],[-161.39208984374994,55.626892089843864],[-161.4965209960937,55.629421234130916],[-161.5955200195312,55.609119415283146],[-161.70330810546872,55.5098876953125],[-161.68377685546875,55.48431396484375],[-161.68151855468753,55.40761947631841],[-161.77532958984375,55.33709716796874],[-161.88711547851562,55.237419128418075],[-162.03012084960935,55.23332214355468],[-162.0065155029297,55.17811965942382],[-161.96142578125003,55.15822601318364],[-161.95617675781253,55.104125976562614],[-162.0496978759765,55.069675445556754],[-162.12271118164057,55.10401916503906],[-162.1006164550781,55.155220031738395],[-162.17471313476557,55.15071868896484],[-162.22897338867185,55.10367584228521],[-162.1885223388671,55.06032180786144],[-162.2503051757812,55.01788330078136],[-162.33387756347653,55.0392799377442],[-162.413818359375,55.032470703125],[-162.5017395019531,55.073265075683594],[-162.52061462402338,55.11431884765625],[-162.46900939941403,55.12232208251953],[-162.50640869140622,55.23971939086914],[-162.66552734374994,55.2908935546875],[-162.71731567382807,55.23791885375988],[-162.69171142578122,55.191284179687614],[-162.62081909179682,55.17522048950195],[-162.6226196289062,55.09141921997082],[-162.59510803222656,55.06122207641607],[-162.6781005859375,55.03262329101556],[-162.67091369628903,54.99972152709955],[-162.7529907226562,54.9334716796875],[-162.8320159912109,54.9204216003418],[-162.91510009765628,54.947509765625114],[-162.95864868164062,54.98948287963867],[-162.9463195800781,55.022819519043026],[-162.99691772460935,55.074520111083984],[-163.1032104492187,55.119220733642635],[-163.19381713867185,55.126121520996094],[-163.2174224853515,55.07646942138683],[-163.20780944824213,55.022819519043026],[-163.14471435546875,55.00988769531261],[-163.04779052734372,54.9697265625],[-163.03051757812491,54.94361877441412],[-163.126220703125,54.90368652343744],[-163.2396240234375,54.82769775390631],[-163.3451080322266,54.8001213073731],[-163.38790893554688,54.84891891479498],[-163.3162841796875,54.87689208984381],[-163.30722045898438,54.91284561157232],[-163.24681091308588,54.93222045898443],[-163.29191589355463,54.96641921997076],[-163.27899169921875,55.036220550537166],[-163.3056182861328,55.1090202331543],[-163.16522216796875,55.17121887207037],[-163.04391479492185,55.168220520019474],[-162.86508178710935,55.181072235107536],[-162.84242248535156,55.222721099853516],[-162.8491516113281,55.274055480957145],[-162.77111816406244,55.313819885253906],[-162.7282104492187,55.30908203125005],[-162.64321899414057,55.36872100830078],[-162.58032226562497,55.34732055664057],[-162.50581359863276,55.3773193359375],[-162.50070190429688,55.44400024414074],[-162.55171203613278,55.46862030029308],[-162.4334106445312,55.55562210083013],[-162.3724975585937,55.58911132812506],[-162.255615234375,55.68912124633795],[-162.12200927734375,55.73968505859375],[-162.0388793945312,55.788330078125],[-161.96652221679685,55.79991912841808],[-161.8046112060547,55.887920379638786],[-161.545913696289,55.93891906738287],[-161.35070800781244,55.96774291992199],[-161.2271118164062,55.95362091064464],[-161.09771728515622,55.95922088623047],[-161.06591796875,55.94081878662114],[-160.87341308593744,56.000019073486385],[-160.859375,55.95843124389654],[-160.96313476562491,55.94165420532232],[-161.01841735839844,55.90462112426758],[-160.94625854492182,55.85001754760736],[-160.9439239501953,55.8145103454591],[-160.89270019531247,55.804504394531364],[-160.82012939453125,55.73907470703136],[-160.7469177246094,55.77582168579096],[-160.76751708984375,55.859519958496094],[-160.63182067871088,55.85502243041992],[-160.4905090332031,55.86032104492193],[-160.37271118164054,55.7784194946289],[-160.26712036132812,55.7871208190918],[-160.31890869140628,55.86032104492193],[-160.42330932617188,55.910621643066406],[-160.53271484375,55.95129394531256],[-160.57888793945307,55.99426651000976],[-160.52227783203122,56.03912353515619],[-160.4528198242187,56.120910644531364],[-160.4559173583984,56.140419006347656],[-160.38452148437503,56.254821777343864],[-160.2550048828125,56.32373046875],[-160.1540222167969,56.3964195251466],[-160.0418853759765,56.42446517944347],[-159.88061523437491,56.510498046875],[-159.83381652832028,56.54452133178711],[-159.54760742187494,56.62282180786144],[-159.3997192382812,56.68712234497082],[-159.28854370117188,56.71247482299816],[-159.17730712890622,56.75927734375005],[-158.947509765625,56.83982086181635],[-158.93127441406247,56.818115234375],[-158.79547119140622,56.780090332031364],[-158.6522827148437,56.81530761718755],[-158.6996154785156,56.90002059936523],[-158.67987060546872,56.93408203124999],[-158.69848632812494,56.97052001953124],[-158.6788635253906,57.00527572631847],[-158.5435485839844,57.12946701049798],[-158.33116149902344,57.280643463134815],[-158.2571105957031,57.31262207031261],[-158.11791992187497,57.35369873046874],[-158.00170898437497,57.408020019531186],[-157.92761230468747,57.47402191162104],[-157.87551879882807,57.489620208740234],[-157.78710937499991,57.54262161254883],[-157.68620300292963,57.53046417236339],[-157.61831665039057,57.492519378662166],[-157.5773162841796,57.51472091674815],[-157.60490417480466,57.60642623901373],[-157.69651794433588,57.612419128418026],[-157.71311950683588,57.63632202148448],[-157.70117187500003,57.730098724365234],[-157.66510009765625,57.79351806640625],[-157.61181640624994,58.04327392578131],[-157.58737182617188,58.12747573852545],[-157.52902221679688,58.16542053222668],[-157.43701171874994,58.16622161865234],[-157.44792175292963,58.20922088623052],[-157.5444183349609,58.2781219482423],[-157.54241943359372,58.382518768310604],[-157.4899749755859,58.46648406982422],[-157.41615295410153,58.52105712890631],[-157.31988525390625,58.559326171875],[-157.23451232910156,58.632221221923935],[-157.09352111816403,58.70402145385742],[-157.06831359863284,58.76902008056646],[-157.00440979003906,58.82242202758783],[-157.01940917968744,58.8719215393067],[-156.95771789550778,58.9637222290039],[-157.0165405273437,58.96765518188482],[-157.03752136230463,58.91612243652355],[-157.09521484374994,58.8756217956544],[-157.2109985351562,58.8421020507813],[-157.3156127929687,58.83512115478515],[-157.42271423339838,58.79402160644537],[-157.54431152343741,58.75922012329107],[-157.7142181396484,58.72652053833008],[-157.8141174316406,58.68881988525385],[-158.08721923828128,58.62022018432628],[-158.22122192382807,58.61462020874029],[-158.31411743164057,58.64612197875982],[-158.3695220947265,58.745422363281364],[-158.44131469726565,58.775020599365284],[-158.54841613769534,58.7923202514649],[-158.57331848144526,58.814418792724545],[-158.53131103515625,58.84522247314447],[-158.4888153076171,58.917621612548835],[-158.4928131103516,58.95201873779291],[-158.443618774414,58.97032165527355],[-158.4599151611328,59.037921905517685],[-158.5182189941406,59.03522109985358],[-158.62541198730463,58.91172027587896],[-158.72171020507807,58.87342071533214],[-158.7822113037109,58.8824195861817],[-158.79771423339835,58.81512069702159],[-158.7746124267578,58.775119781494084],[-158.86421203613278,58.69322204589844],[-158.80981445312503,58.5824203491211],[-158.73631286621088,58.491519927978516],[-158.75280761718744,58.44301986694347],[-158.8118133544922,58.40472030639642],[-158.90132141113278,58.39081954956055],[-159.05891418457034,58.421218872070256],[-159.2084197998047,58.57312011718755],[-159.31761169433588,58.696121215820305],[-159.38751220703122,58.757820129394645],[-159.489517211914,58.82332229614269],[-159.64730834960938,58.84141921997075],[-159.59062194824216,58.90412139892589],[-159.62042236328125,58.93952178955084],[-159.7428131103515,58.92462158203125],[-159.7504119873047,58.8583221435548],[-159.81701660156244,58.841522216796925],[-159.8020172119141,58.80271911621094],[-159.91011047363278,58.77722167968756],[-159.97271728515622,58.8189201354981],[-160.02432250976562,58.8852195739746],[-160.16021728515628,58.863021850585945],[-160.1564178466796,58.906120300292976],[-160.24871826171878,58.89062118530279],[-160.2560119628906,58.98682022094737],[-160.28561401367188,59.02561950683605],[-160.3439178466796,59.0538215637207],[-160.47601318359372,59.03022003173823],[-160.63652038574216,58.963020324707095],[-160.7780151367187,58.89221954345709],[-160.82521057128906,58.844718933105526],[-160.86511230468747,58.8799209594726],[-160.96321105957034,58.8768196105957],[-161.001708984375,58.848621368408196],[-161.17921447753903,58.78442001342785],[-161.29028320312494,58.7719116210938],[-161.36590576171872,58.71911621093762],[-161.37661743164062,58.66701889038085],[-161.51892089843753,58.63153076171881],[-161.54791259765628,58.60642242431636],[-161.63189697265625,58.59851074218755],[-161.73950195312503,58.55688476562499],[-161.82231140136713,58.62911987304682],[-162.08410644531247,58.62567138671869],[-162.11621093749994,58.670288085937614],[-161.9950103759765,58.68222045898443],[-161.94812011718747,58.65052032470704],[-161.8353118896484,58.67852020263666],[-161.86711120605463,58.71451950073242],[-161.80270385742188,58.74016571044921],[-161.75834655761716,58.79663848876953],[-161.78910827636713,58.89172363281262],[-161.78854370117182,58.96821594238293],[-161.8869171142578,59.07192230224614],[-161.9960174560547,59.1632194519044],[-162.03671264648435,59.22912216186523],[-161.96041870117185,59.24332046508801],[-161.9587554931641,59.372211456298885],[-161.84031677246088,59.41582107543945],[-161.80010986328122,59.47150039672845],[-161.73651123046872,59.46982192993164],[-161.70806884765622,59.50004196166998],[-161.86811828613278,59.63502120971679],[-161.87841796874997,59.69482040405285],[-161.9277191162109,59.73802185058605],[-161.9654846191406,59.79983139038091],[-162.08801269531247,59.88682174682622],[-162.10302734375,59.95240020751965],[-162.18891906738278,59.99896240234369],[-162.2161407470703,60.03697586059581],[-162.36614990234375,60.158851623535156],[-162.3312530517578,60.21875],[-162.45780944824222,60.29531478881836],[-162.32447814941406,60.36405944824219],[-162.30155944824216,60.44739913940435],[-162.21717834472656,60.50885391235363],[-162.2223968505859,60.56198120117198],[-162.08125305175778,60.64166641235351],[-162.2223968505859,60.6328125],[-162.26197814941403,60.61198043823247],[-162.34375,60.48333358764642],[-162.41719055175776,60.39531326293951],[-162.4854125976562,60.36666488647461],[-162.5838470458984,60.241146087646484],[-162.55989074707028,60.21926879882806],[-162.45051574707026,60.182815551757926],[-162.5036468505859,60.11302185058587],[-162.47969055175776,60.032810211181754],[-162.515380859375,59.9893188476563],[-162.64102172851554,59.974021911621094],[-162.73731994628906,60.00001907348628],[-162.73593139648432,60.04219055175787],[-162.8286437988281,60.048435211181754],[-162.7333221435547,59.971920013427784],[-162.7842102050781,59.94282150268554],[-162.91300964355463,59.92322158813476],[-162.99841308593747,59.88692092895502],[-163.147216796875,59.847820281982365],[-163.43081665039062,59.812019348144645],[-163.68101501464838,59.7976188659669],[-163.89012145996094,59.80212020874029],[-164.09281921386713,59.83072662353526],[-164.14080810546872,59.849819183349666],[-164.19830322265622,59.91510009765625],[-164.20051574707028,59.958820343017514],[-164.12651062011713,59.99382019042963],[-164.19218444824213,60.02656555175786],[-164.34323120117182,60.056774139404354],[-164.45780944824216,60.1317710876466],[-164.5249938964844,60.19791793823248],[-164.61041259765625,60.227085113525455],[-164.66822814941406,60.29010391235362],[-164.8645782470703,60.30625152587885],[-164.96406555175784,60.34010696411127],[-165.1166687011718,60.420833587646484],[-165.13906860351565,60.44322586059575],[-164.9984283447265,60.47760391235363],[-164.95260620117188,60.51510620117181],[-164.9770812988281,60.541667938232536],[-165.0479125976562,60.54583358764654],[-165.18592834472653,60.49843978881836],[-165.26042175292966,60.49166488647466],[-165.36874389648435,60.50624847412115],[-165.418228149414,60.549480438232536],[-165.36874389648435,60.577083587646534],[-165.29167175292963,60.57291793823248],[-165.10833740234375,60.6500015258789],[-165.05624389648435,60.687500000000114],[-164.99009704589844,60.698440551757805],[-164.96510314941406,60.7286491394043],[-165.02864074707026,60.76510620117199],[-164.8598937988281,60.82760620117193],[-164.87135314941406,60.853649139404354],[-164.95989990234366,60.89427185058589],[-164.9291687011718,60.9208335876466],[-164.8395843505859,60.849998474121215],[-164.71458435058597,60.90000152587884],[-164.68489074707028,60.82344055175786],[-164.535415649414,60.81666564941406],[-164.46875,60.82500076293945],[-164.40415954589844,60.79583358764648],[-164.27499389648435,60.78958511352544],[-164.26458740234372,60.729167938232536],[-164.22135925292963,60.69322586059576],[-164.24583435058594,60.65208435058594],[-164.10260009765625,60.65989303588873],[-164.09323120117185,60.708854675293075],[-164.01458740234375,60.764583587646534],[-163.91510009765625,60.78385162353509],[-163.7817687988281,60.74948120117199],[-163.81614685058585,60.692188262939396],[-163.78593444824216,60.66510391235346],[-163.8203125,60.623439788818416],[-163.79322814941406,60.57968521118164],[-163.70416259765625,60.57291793823248],[-163.6171875,60.594268798828125],[-163.52291870117182,60.63333511352545],[-163.42343139648432,60.690101623535206],[-163.4296875,60.76301956176757],[-163.277603149414,60.79635620117193],[-163.44792175292963,60.891666412353636],[-163.50833129882807,60.875000000000114],[-163.57708740234372,60.88124847412115],[-163.5604095458984,60.93125152587901],[-163.660415649414,60.92291641235357],[-163.69375610351562,61.002082824707024],[-163.78125,61.052082061767685],[-163.73750305175778,61.125],[-163.6729125976562,61.18333435058599],[-163.53958129882807,61.19791793823248],[-163.55259704589844,61.23905944824224],[-163.6958312988281,61.19791793823248],[-163.79374694824213,61.22708511352539],[-163.9265594482422,61.17864608764654],[-163.92083740234375,61.11666488647466],[-163.84426879882807,61.09114837646484],[-163.95364379882812,60.982814788818416],[-163.86718749999994,60.94218444824218],[-163.9171905517578,60.88177108764659],[-163.9729156494141,60.88541793823237],[-163.92343139648432,60.95051956176757],[-164.0333404541015,61.00624847412103],[-164.1432342529297,60.961978912353565],[-164.14999389648438,60.88333511352539],[-164.24790954589838,60.86041641235345],[-164.42707824707026,60.87083435058593],[-164.53958129882812,60.84791564941417],[-164.58697509765622,60.86510467529291],[-164.56510925292963,60.90989303588868],[-164.60624694824222,60.93541717529302],[-164.7520904541015,60.92291641235357],[-164.92500305175776,60.95000076293951],[-165.04219055175776,60.90989303588868],[-165.1432342529297,60.92552185058605],[-165.1890716552734,60.96823120117199],[-165.1270904541015,61.01250076293945],[-165.0625,61.00416564941406],[-164.9354095458984,61.020832061767514],[-165.09948730468753,61.071353912353636],[-165.04843139648435,61.115100860595696],[-165.18072509765625,61.110935211181705],[-165.34843444824216,61.19635391235351],[-165.29739379882807,61.24739837646484],[-165.21926879882815,61.244274139404354],[-165.2046813964844,61.3338508605957],[-165.15625,61.35833358764654],[-165.19947814941403,61.385940551757926],[-165.29115295410156,61.315101623535156],[-165.21301269531247,61.30677413940429],[-165.2369842529297,61.27447891235362],[-165.32031249999994,61.2515602111817],[-165.3953094482422,61.20051956176758],[-165.32499694824216,61.154167175293026],[-165.39582824707028,61.07708358764659],[-165.5687561035156,61.09583282470714],[-165.64323425292963,61.14010620117199],[-165.65885925292963,61.27447891235362],[-165.75781250000003,61.31718444824219],[-165.8333282470703,61.308334350586044],[-165.89323425292972,61.34426879882812],[-165.92655944824216,61.400524139404354],[-165.9270782470703,61.4458351135254],[-165.79115295410153,61.43593978881835],[-165.70625305175778,61.38750076293951],[-165.69635009765622,61.43698120117188],[-165.83541870117188,61.52708435058605],[-165.98333740234372,61.54583358764654],[-166.14323425292966,61.50677108764659],[-166.18489074707026,61.597393035888786],[-166.04791259765625,61.64791488647472],[-165.7687530517578,61.679164886474666],[-165.6229095458984,61.627082824706974],[-165.6140594482422,61.664062500000114],[-165.5567626953125,61.690101623535206],[-165.59010314941403,61.72031021118163],[-165.66615295410156,61.677600860595696],[-165.92083740234372,61.697917938232536],[-166.00833129882812,61.72083282470709],[-166.09948730468747,61.8098983764649],[-165.96249389648432,61.83124923706065],[-165.87083435058585,61.82083511352538],[-165.6369781494141,61.85052108764642],[-165.73905944824216,61.919269561767635],[-165.7703094482421,62.00260162353526],[-165.7411499023437,62.11405944824218],[-165.61041259765622,62.18333435058594],[-165.3348999023437,62.36198043823248],[-165.2661437988281,62.4390602111817],[-165.09739685058588,62.52030944824219],[-165.02291870117182,62.53958511352545],[-164.840103149414,62.52239608764654],[-164.85572814941406,62.46718978881836],[-164.7479095458984,62.46458435058606],[-164.77760314941406,62.53385162353515],[-164.8458404541015,62.5437507629395],[-164.83332824707026,62.577083587646484],[-164.73750305175776,62.59583282470697],[-164.6401062011719,62.63385391235362],[-164.49842834472653,62.72447586059564],[-164.50209045410156,62.77291488647455],[-164.68072509765625,62.76301956176757],[-164.6921844482421,62.78697586059575],[-164.7666625976562,62.79999923706048],[-164.81666564941403,62.79583358764648],[-164.8604125976562,62.82083511352538],[-164.7828216552734,62.9473991394044],[-164.71197509765622,63.00572586059576],[-164.6583404541015,63.02708435058588],[-164.4583282470703,63.02916717529291],[-164.35000610351557,63.01874923706065],[-164.37290954589838,63.06458282470709],[-164.48385620117185,63.08489608764655],[-164.53489685058594,63.07344055175781],[-164.58280944824213,63.12031555175792],[-164.40782165527338,63.214065551757805],[-164.32292175292963,63.23958206176763],[-164.12083435058588,63.260417938232536],[-164.03750610351557,63.258335113525334],[-163.86874389648435,63.218750000000114],[-163.73750305175778,63.212501525878906],[-163.67448425292966,63.15676879882807],[-163.62968444824222,63.142185211181584],[-163.60885620117182,63.07551956176763],[-163.50416564941406,63.110416412353565],[-163.29739379882812,63.02447891235363],[-163.0375061035156,63.060417175293075],[-162.97656249999994,63.105728149414055],[-162.8380126953125,63.15885162353526],[-162.83697509765625,63.195312499999936],[-162.64427185058588,63.229690551757805],[-162.53750610351562,63.289585113525504],[-162.4250030517578,63.379165649414006],[-162.3854217529297,63.42499923706066],[-162.26510620117185,63.49218750000006],[-162.30207824707034,63.537498474121094],[-162.18333435058594,63.52916717529302],[-162.04167175292966,63.485416412353565],[-162.0104217529297,63.445835113525334],[-161.80468749999997,63.43801879882818],[-161.71458435058594,63.46041488647466],[-161.55468749999994,63.44635391235362],[-161.5,63.46875],[-161.42916870117188,63.45416641235357],[-161.13749694824216,63.5],[-161.10833740234372,63.55208206176752],[-161.05259704589835,63.56510162353527],[-161.011978149414,63.62031555175781],[-160.96301269531247,63.61718750000011],[-160.78593444824213,63.744274139404354],[-160.7640686035156,63.77030944824224],[-160.76510620117188,63.84323120117181],[-160.840103149414,63.947399139404354],[-160.90156555175778,64.00260162353521],[-160.9474029541015,64.07968902587902],[-160.96093749999991,64.24948120117199],[-161.0812530517578,64.28958129882812],[-161.25781249999994,64.3838500976563],[-161.39323425292963,64.42448425292974],[-161.47084045410156,64.41874694824219],[-161.46458435058588,64.5062484741211],[-161.3458404541015,64.5166702270509],[-161.18959045410156,64.49375152587896],[-161.03334045410153,64.495834350586],[-160.89739990234375,64.58073425292974],[-160.78385925292963,64.62551879882817],[-160.77760314941406,64.71823120117193],[-160.89634704589844,64.82031250000011],[-160.95208740234372,64.82499694824219],[-161.11198425292972,64.88385009765636],[-161.1494750976562,64.91301727294933],[-161.30364990234375,64.84739685058605],[-161.41302490234372,64.76301574707031],[-161.5401000976562,64.75364685058594],[-161.69792175292972,64.7750015258789],[-161.87709045410156,64.74791717529295],[-161.94999694824213,64.6979141235351],[-162.05000305175778,64.6979141235351],[-162.18489074707026,64.6765670776367],[-162.23593139648435,64.61927032470709],[-162.3348999023437,64.59739685058587],[-162.54531860351557,64.53073120117193],[-162.59217834472656,64.4838485717774],[-162.6317749023437,64.3838500976563],[-162.8036499023437,64.3359375],[-162.8005218505859,64.40781402587885],[-162.85208129882807,64.44374847412115],[-162.84217834472653,64.49531555175793],[-162.9453125,64.54426574707037],[-162.9979095458984,64.54582977294928],[-163.03958129882807,64.58541870117188],[-163.14323425292963,64.61510467529308],[-163.1895904541015,64.64583587646479],[-163.33801269531247,64.59010314941418],[-163.2624969482422,64.54166412353527],[-163.17707824707026,64.535415649414],[-163.14947509765622,64.50676727294933],[-163.0437469482422,64.5062484741211],[-163.10572814941406,64.44947814941412],[-163.1067657470703,64.40885162353521],[-163.17291259765622,64.39791870117188],[-163.2604217529297,64.47499847412108],[-163.5124969482421,64.55000305175787],[-163.64375305175778,64.56874847412121],[-163.8833312988281,64.57291412353521],[-163.99374389648435,64.5520858764649],[-164.10260009765625,64.56822967529295],[-164.3249969482422,64.56666564941418],[-164.48802185058588,64.54114532470703],[-164.60624694824222,64.50833129882807],[-164.72708129882815,64.5166702270509],[-164.84323120117188,64.4911499023437],[-164.91926574707026,64.44218444824217],[-165.0104217529296,64.43333435058605],[-165.2166595458984,64.47291564941406],[-165.74374389648435,64.53749847412104],[-165.85208129882807,64.53958129882824],[-166.1270904541015,64.57917022705082],[-166.2375030517578,64.58541870117188],[-166.39114379882815,64.64009857177746],[-166.4671783447265,64.72135162353527],[-166.4744873046875,64.79114532470714],[-166.37760925292963,64.81301879882818],[-166.42448425292966,64.89323425292963],[-166.51875305175773,64.94583129882824],[-166.55989074707028,64.9463500976563],[-166.69427490234372,64.99323272705077],[-166.70051574707034,65.05364990234375],[-166.8208312988281,65.07707977294933],[-166.83593750000003,65.11406707763683],[-166.67707824707026,65.1062469482423],[-166.53385925292966,65.11927032470703],[-166.45051574707028,65.18801879882818],[-166.47239685058597,65.22031402587902],[-166.3770904541015,65.25416564941406],[-166.1895904541015,65.25208282470709],[-166.12916564941406,65.22916412353514],[-166.0437469482421,65.23124694824219],[-166.0192718505859,65.2151031494141],[-166.0333404541015,65.18541717529308],[-165.99374389648438,65.17916870117188],[-165.95156860351562,65.14531707763678],[-165.81875610351557,65.07707977294933],[-165.71249389648438,65.05000305175776],[-165.60260009765622,65.07135009765636],[-165.56823730468744,65.097396850586],[-165.45260620117188,65.121353149414],[-165.38542175292963,65.16874694824224],[-165.58697509765625,65.18073272705078],[-165.6150970458984,65.16093444824224],[-165.7520904541016,65.18958282470714],[-165.8703155517578,65.18073272705078],[-165.87916564941403,65.14791870117188],[-166.01875305175776,65.18958282470714],[-166.01301574707034,65.21093750000011],[-166.03593444824216,65.24739837646496],[-166.14791870117185,65.2874984741211],[-166.30624389648438,65.3125],[-166.3963470458984,65.30885314941406],[-166.61041259765616,65.35208129882824],[-166.82499694824213,65.37500000000011],[-166.95416259765625,65.37083435058588],[-167.03541564941406,65.38749694824223],[-167.4083404541015,65.40208435058605],[-167.5265655517578,65.43177032470709],[-167.62760925292963,65.47447967529303],[-167.8421783447265,65.53906250000017],[-168.04583740234375,65.56874847412138],[-168.12239074707028,65.64009857177746],[-168.0807342529297,65.69322967529297],[-168.02864074707026,65.68906402587896],[-168.06614685058594,65.6338500976562],[-167.99531555175784,65.62864685058604],[-167.83177185058588,65.6692657470706],[-167.78958129882812,65.70625305175787],[-167.58332824707034,65.70833587646489],[-167.49374389648435,65.73124694824224],[-167.5437469482422,65.76875305175781],[-167.4895782470703,65.83125305175776],[-167.2807312011719,65.8911514282226],[-167.1833343505859,65.839584350586],[-167.03385925292966,65.86927032470702],[-166.9973907470703,65.89531707763683],[-166.86250305175778,65.92500305175787],[-166.9437561035156,65.95833587646484],[-166.79583740234372,65.97291564941435],[-166.785415649414,66.02083587646494],[-166.62448120117188,66.08281707763683],[-166.23541259765628,66.1708297729492],[-166.1286468505859,66.15260314941418],[-166.14323425292966,66.12968444824224],[-166.05833435058585,66.1062469482423],[-165.89791870117182,66.11250305175787],[-165.68801879882807,66.09635162353527],[-165.52499389648438,66.14583587646484],[-165.6687469482421,66.19791412353516],[-165.82499694824216,66.20833587646479],[-165.87657165527338,66.23490142822266],[-165.75573730468744,66.3140640258789],[-165.69792175292972,66.33750152587889],[-165.47708129882807,66.38541412353538],[-165.4395904541015,66.40208435058605],[-165.24790954589838,66.41458129882812],[-165.1458282470703,66.433334350586],[-164.93801879882812,66.42760467529303],[-164.92864990234372,66.44947814941406],[-164.72760009765622,66.51093292236334],[-164.6541595458984,66.54792022705101],[-164.43959045410153,66.57707977294922],[-164.10624694824213,66.59166717529308],[-163.90415954589838,66.57707977294922],[-163.73176574707028,66.52031707763676],[-163.7713470458984,66.4484329223634],[-163.8473968505859,66.41822814941412],[-163.8650970458984,66.33385467529314],[-163.82551574707028,66.27135467529318],[-163.93333435058597,66.21458435058605],[-164.05207824707026,66.21041870117199],[-164.09165954589838,66.18333435058605],[-163.92500305175778,66.17916870117205],[-163.7786407470703,66.081771850586],[-163.629165649414,66.05416870117216],[-163.48333740234372,66.0833358764649],[-163.34375,66.0812530517581],[-163.13749694824222,66.05208587646496],[-162.92291259765625,66.08958435058616],[-162.86874389648438,66.0791702270509],[-162.75364685058588,66.0911483764649],[-162.6286468505859,66.03489685058598],[-162.5395812988281,66.03333282470709],[-162.45208740234378,66.05625152587896],[-162.38801574707026,66.02552032470709],[-162.25468444824213,66.04010009765636],[-162.1395874023437,66.0729141235351],[-162.0395812988281,66.0687484741211],[-161.8244781494141,66.00364685058605],[-161.722915649414,66.058334350586],[-161.5567626953125,66.2276000976562],[-161.49948120117182,66.25781250000023],[-161.3583374023437,66.2562484741211],[-161.30207824707026,66.21666717529303],[-161.18124389648432,66.20833587646479],[-161.09375,66.22916412353516],[-160.98593139648432,66.22551727294939],[-161.1416625976562,66.33958435058594],[-161.22708129882812,66.34791564941418],[-161.5354156494141,66.40208435058605],[-161.69166564941403,66.39791870117197],[-161.9161529541015,66.34739685058611],[-161.86509704589844,66.4734344482423],[-161.8963470458984,66.52864837646484],[-161.97708129882807,66.57083129882818],[-162.07864379882807,66.60051727294922],[-162.1213531494141,66.65364837646513],[-162.2333374023437,66.71041870117188],[-162.47291564941403,66.72916412353521],[-162.5088500976562,66.77656555175781],[-162.62031555175784,66.85990142822283],[-162.49218749999997,66.91926574707031],[-162.39999389648438,66.91666412353521],[-162.30207824707034,66.93750000000011],[-162.23905944824213,66.87343597412104],[-162.0994873046875,66.78801727294922],[-162.01094055175776,66.77239990234374],[-162.0828094482422,66.69114685058594],[-162.07240295410156,66.64843750000021],[-161.9390716552734,66.56301879882818],[-161.79583740234375,66.5020828247072],[-161.58332824707028,66.43958282470726],[-161.50625610351557,66.44166564941406],[-161.3229217529297,66.47708129882807],[-161.2395782470703,66.52083587646507],[-161.13333129882812,66.48542022705107],[-161.06666564941406,66.48542022705107],[-160.95625305175784,66.41874694824219],[-160.90625,66.41458129882812],[-160.78541564941403,66.3625030517578],[-160.53334045410153,66.35832977294945],[-160.4833374023437,66.37500000000011],[-160.22760009765622,66.38593292236328],[-160.19010925292966,66.43385314941405],[-160.03385925292972,66.41926574707043],[-160.01718139648432,66.44947814941406],[-160.19999694824213,66.47916412353527],[-160.1755218505859,66.51509857177734],[-160.20677185058585,66.56301879882818],[-160.31666564941403,66.59583282470709],[-160.25,66.61666870117199],[-160.02864074707026,66.61406707763672],[-159.91406249999997,66.57551574707048],[-159.8723907470703,66.63697814941406],[-159.77708435058588,66.61458587646496],[-159.69635009765628,66.6494827270509],[-159.76249694824213,66.68125152587896],[-159.84426879882812,66.66406249999999],[-159.9067687988281,66.67864990234385],[-160.04531860351557,66.6609344482423],[-160.09791564941406,66.67500305175786],[-160.18385314941406,66.63176727294916],[-160.27499389648435,66.652084350586],[-160.36874389648435,66.61250305175776],[-160.50209045410156,66.61250305175776],[-160.52499389648438,66.57917022705078],[-160.68959045410156,66.59791564941412],[-160.80833435058597,66.65625],[-160.97291564941406,66.6416702270509],[-161.11874389648438,66.63957977294933],[-161.18489074707026,66.61406707763672],[-161.21406555175776,66.55573272705078],[-161.29167175292963,66.52291870117188],[-161.45416259765625,66.52291870117188],[-161.63125610351562,66.61042022705095],[-161.87864685058594,66.71302032470697],[-161.79583740234375,66.82083129882812],[-161.78282165527338,66.89115142822276],[-161.64375305175784,66.95207977294922],[-161.4796905517578,66.93177032470714],[-161.5046844482422,66.98072814941412],[-161.62083435058594,67.01041412353516],[-161.83541870117188,67.05000305175793],[-162.1625061035156,67.01875305175793],[-162.23750305175778,66.99375152587902],[-162.55416870117185,66.9833297729492],[-162.63125610351562,67.00208282470709],[-162.69427490234372,67.04948425292962],[-162.9578094482422,67.0244827270509],[-163.1125030517578,67.03958129882812],[-163.26875305175778,67.0833358764649],[-163.3083343505859,67.0625],[-163.53958129882807,67.08958435058594],[-163.52499389648432,67.11666870117188],[-163.64166259765622,67.18541717529325],[-163.73333740234375,67.18333435058605],[-163.76249694824216,67.26457977294933],[-163.8203125,67.35364532470732],[-163.77082824707034,67.38749694824219],[-163.8650970458984,67.41510009765636],[-163.9666595458984,67.50624847412121],[-164.14375305175778,67.63957977294933],[-164.35208129882812,67.70625305175803],[-164.441665649414,67.69791412353521],[-164.6078186035156,67.767189025879],[-164.72500610351557,67.83541870117193],[-164.87864685058585,67.8588485717774],[-165.05000305175776,67.91874694824224],[-165.11457824707026,67.95417022705078],[-165.36666870117185,68.03958129882807],[-165.63125610351565,68.08333587646506],[-165.88125610351557,68.11042022705101],[-165.98072814941403,68.14635467529308],[-166.01301574707034,68.19947814941406],[-166.1703186035156,68.27135467529295],[-166.2145843505859,68.30416870117188],[-166.32083129882812,68.33125305175781],[-166.54948425292963,68.32968902587885],[-166.52499389648435,68.36250305175776],[-166.37083435058597,68.402084350586],[-166.30052185058594,68.46302032470697],[-166.2994842529297,68.51301574707031],[-166.22448730468747,68.57031250000006],[-166.2286529541015,68.64948272705084],[-166.1921844482422,68.69426727294928],[-166.18592834472648,68.77760314941405],[-166.22448730468747,68.87135314941418],[-165.75416564941406,68.85832977294928],[-165.64999389648432,68.84375],[-165.18124389648432,68.86458587646507],[-164.5604095458984,68.91458129882818],[-164.2833404541015,68.92500305175781],[-164.13958740234375,68.94166564941412],[-164.10572814941403,68.95989990234375],[-163.89843749999994,69.0026016235351],[-163.72291564941403,69.06041717529297],[-163.4880218505859,69.14843750000006],[-163.48333740234372,69.17708587646496],[-163.3036499023437,69.27031707763678],[-163.2161407470703,69.28697967529308],[-163.10156249999994,69.39531707763683],[-163.01510620117188,69.53593444824219],[-163.11198425292966,69.59010314941405],[-163.08332824707034,69.6500015258789],[-162.9171905517578,69.69531250000011],[-163.02864074707028,69.72864532470709],[-162.94323730468744,69.79322814941406],[-162.8380126953125,69.81301879882824],[-162.6104125976562,69.91666412353514],[-162.57344055175778,69.91926574707043],[-162.45677185058588,70.00051879882824],[-162.46197509765625,70.03906249999994],[-162.39530944824216,70.09218597412115],[-162.21249389648438,70.15000152587896],[-162.19375610351557,70.1729202270509],[-162.01249694824216,70.23332977294928],[-161.87916564941403,70.32707977294939],[-161.75416564941406,70.30833435058605],[-161.78282165527338,70.28176879882818],[-161.68333435058597,70.26249694824224],[-161.76042175292963,70.23542022705084],[-161.86666870117185,70.24791717529291],[-161.86614990234378,70.2057342529298],[-161.79322814941403,70.1807327270509],[-161.62448120117188,70.23698425292997],[-161.30624389648438,70.24791717529291],[-161.0401000976562,70.31301879882812],[-160.91458129882807,70.32707977294939],[-160.70677185058597,70.38176727294933],[-160.66874694824213,70.40625],[-160.48593139648435,70.4546890258789],[-160.27343749999994,70.5296859741211],[-160.17031860351562,70.5786514282226],[-159.91093444824213,70.57656097412126],[-159.9005126953125,70.52343750000006],[-160.02915954589844,70.50208282470709],[-159.9713592529297,70.46926879882818],[-159.97969055175784,70.41718292236334],[-159.89999389648435,70.32707977294939],[-159.82135009765625,70.33593750000006],[-159.87709045410148,70.38541412353527],[-159.8484344482422,70.4234390258789],[-159.71458435058588,70.48750305175781],[-159.82240295410153,70.54322814941406],[-159.89010620117188,70.6119842529298],[-159.99166870117185,70.63333129882841],[-159.94740295410153,70.67864990234375],[-159.68540954589838,70.77708435058616],[-159.54583740234375,70.81666564941418],[-159.33749389648432,70.84375000000011],[-159.1916656494141,70.84583282470714],[-159.13542175292963,70.81874847412121],[-159.34532165527335,70.80573272705082],[-159.4140625,70.7650985717774],[-159.1083374023437,70.7583312988283],[-158.98124694824216,70.76457977294932],[-158.95416259765622,70.78958129882824],[-158.63958740234378,70.78541564941423],[-158.35417175292963,70.81250000000017],[-158.02499389648435,70.82917022705084],[-157.86041259765625,70.85416412353521],[-157.4900970458984,70.9484329223634],[-157.23593139648435,71.05052185058588],[-156.96823120117185,71.20781707763676],[-156.7520904541015,71.30625152587902],[-156.59948730468753,71.33489990234386],[-156.5338592529297,71.29426574707043],[-156.4354095458984,71.28749847412115],[-156.35000610351565,71.25833129882818],[-156.254165649414,71.26249694824219],[-156.08958435058588,71.23958587646484],[-156.04843139648438,71.183853149414],[-155.7770843505859,71.191665649414],[-155.63749694824216,71.1770858764649],[-155.6557312011719,71.1234359741211],[-155.53176879882807,71.11198425292969],[-155.53802490234375,71.06301879882818],[-155.70156860351562,71.01823425292997],[-155.72552490234375,70.98384857177739],[-156,70.964584350586],[-155.9776000976562,70.92343902587919],[-156.13333129882815,70.92708587646496],[-156.1625061035156,70.97291564941406],[-156.29322814941406,70.93698120117215],[-156.17291259765616,70.89375305175798],[-156.12290954589844,70.91041564941412],[-156.00209045410156,70.86458587646484],[-156.05000305175776,70.82083129882824],[-155.97291564941406,70.74791717529301],[-155.88749694824213,70.7562484741211],[-155.91822814941403,70.8036499023438],[-155.875,70.82707977294928],[-155.6895904541015,70.83125305175804],[-155.62290954589844,70.80416870117209],[-155.45416259765614,70.84583282470714],[-155.51197814941406,70.93801879882812],[-155.44740295410153,70.9484329223634],[-155.30624389648435,71.00624847412121],[-155.15676879882812,71.01823425292997],[-155.2437438964844,71.06041717529307],[-155.16615295410145,71.10156250000006],[-154.9515686035156,71.01406097412121],[-154.93907165527338,70.94218444824213],[-154.81198120117188,70.96510314941406],[-154.7296905517578,70.95468902587896],[-154.74374389648432,71.0416641235352],[-154.96458435058594,71.03333282470714],[-154.8125,71.08541870117197],[-154.75260925292963,71.06614685058605],[-154.70625305175784,71.00208282470697],[-154.57344055175778,70.99531555175787],[-154.61822509765628,70.92968750000006],[-154.74374389648432,70.8583297729492],[-154.57083129882815,70.81666564941418],[-154.37290954589844,70.82707977294928],[-154.23385620117182,70.8036499023438],[-154.15625,70.7687530517581],[-153.99842834472656,70.81718444824224],[-153.90208435058594,70.88124847412115],[-153.71041870117188,70.88957977294922],[-153.49374389648438,70.88124847412115],[-153.3104095458984,70.89583587646479],[-153.20208740234375,70.92082977294916],[-153.10989379882815,70.89218902587902],[-152.91458129882815,70.88957977294922],[-152.89166259765625,70.8583297729492],[-152.6671905517578,70.80052185058594],[-152.58332824707028,70.88124847412115],[-152.41458129882807,70.8583297729492],[-152.20677185058588,70.81614685058594],[-152.28334045410156,70.78958129882824],[-152.43333435058594,70.69374847412115],[-152.4661407470703,70.64427185058611],[-152.3354187011719,70.5749969482423],[-152.51666259765622,70.58125305175787],[-152.6140594482422,70.5453109741211],[-152.36250305175784,70.5374984741211],[-152.18124389648435,70.55000305175793],[-152.04374694824216,70.54582977294933],[-151.9812469482421,70.5625],[-151.82708740234375,70.54582977294933],[-151.80624389648432,70.48750305175781],[-151.9187469482422,70.47499847412115],[-151.88749694824213,70.4312515258789],[-151.5625,70.4375],[-151.31040954589844,70.40625],[-151.0703124999999,70.43489837646483],[-150.83541870117185,70.45417022705101],[-150.86457824707026,70.4083328247072],[-150.7484283447265,70.39531707763683],[-150.7375030517578,70.45417022705101],[-150.625518798828,70.41718292236334],[-150.65782165527338,70.34531402587895],[-150.4791717529297,70.39167022705107],[-150.24790954589844,70.42708587646506],[-150.08958435058594,70.43333435058594],[-149.86457824707028,70.50416564941412],[-149.7640686035156,70.48802185058605],[-149.6666717529296,70.50624847412115],[-149.42916870117188,70.48750305175781],[-149.16093444824213,70.48490142822271],[-149.03958129882812,70.45833587646484],[-148.95416259765628,70.40625],[-148.7104187011718,70.4083328247072],[-148.58280944824222,70.3932342529298],[-148.46093749999994,70.331771850586],[-148.34532165527344,70.30156707763672],[-148.2479095458984,70.33750152587919],[-148.12709045410153,70.32707977294939],[-148.02134704589844,70.27864837646484],[-147.88542175292963,70.27291870117188],[-147.8125,70.23958587646484],[-147.6682281494141,70.20156097412102],[-147.47500610351562,70.19791412353527],[-147.24166870117182,70.1770858764649],[-147.18281555175784,70.15468597412108],[-146.94583129882807,70.15000152587896],[-146.89999389648432,70.1687469482423],[-146.54115295410156,70.1848983764649],[-146.16719055175778,70.16406250000021],[-145.89166259765622,70.118751525879],[-145.79374694824216,70.13749694824219],[-145.4333343505859,70.03125000000016],[-145.26249694824222,69.9895858764649],[-145.03750610351562,69.9812469482423],[-144.9640655517578,69.95885467529303],[-144.8291625976562,69.98332977294933],[-144.6150970458984,69.96718597412108],[-144.4875030517578,70.01667022705084],[-144.41250610351554,70.02708435058594],[-144.1645812988281,70.03333282470697],[-143.977081298828,70.04792022705084],[-143.875,70.07707977294922],[-143.7291717529297,70.08958435058605],[-143.6583404541015,70.07291412353521],[-143.18959045410156,70.10416412353514],[-143.09791564941403,70.07707977294922],[-143.00416564941406,70.07707977294922],[-142.72708129882807,70.03749847412121],[-142.5817718505859,69.9973983764649],[-142.516143798828,69.95573425292969],[-142.35208129882807,69.91041564941412],[-142.2395782470702,69.84583282470714],[-142.125,69.8375015258789],[-142.0104217529297,69.79582977294933],[-141.89843749999994,69.80364990234386],[-141.785415649414,69.79166412353527],[-141.75,69.76249694824213],[-141.53385925292957,69.72864532470709],[-141.3854217529297,69.63749694824224],[-141.24790954589844,69.629165649414],[-141.20625305175776,69.67916870117188],[-141.00303649902338,69.64615631103533],[-141.0031585693359,69.09813690185558],[-141.0032501220703,68.79815673828125],[-141.00308227539062,68.4142074584961],[-141.00686645507812,67.99990081787121],[-141.00277709960938,67.1564407348634],[-141.0031585693359,66.48735809326183],[-141.00291442871088,65.9934921264649],[-141.0023956298828,65.54578399658203],[-141.00321960449213,65.00012969970709],[-141.00180053710932,64.53592681884777],[-141.0017547607422,64.13253021240246],[-141.00375366210938,63.715637207031186],[-141.00184631347656,63.35729217529297],[-141.0026092529297,63.03237915039073],[-141.00259399414062,62.61460113525396],[-141.00234985351557,62.07176971435552],[-141.00236511230463,61.74465179443365],[-141.0023956298828,61.18838882446295],[-141.00201416015625,60.60324478149419],[-141.00157165527344,60.30506896972667],[-140.7682647705078,60.25830078125005],[-140.5203399658203,60.21905899047858],[-140.44796752929688,60.30796432495123],[-139.9740753173828,60.184513092041016],[-139.68006896972656,60.3357200622558],[-139.05207824707026,60.353725433349666],[-139.04852294921872,60.32589340209966],[-139.177017211914,60.08286285400401],[-139.04212951660156,59.99156951904296],[-138.7908172607422,59.92299270629883],[-138.70578002929688,59.906238555908196],[-138.6562957763672,59.79922485351573],[-138.60920715332026,59.76000213623046],[-137.9871826171875,59.440593719482365],[-137.60743713378906,59.243480682373104],[-137.541778564453,59.10626983642584],[-137.50003051757812,58.98493576049799],[-137.5260009765625,58.90661621093761],[-137.45150756835938,58.90853500366216],[-137.28269958496094,59.00009918212884],[-136.9996337890625,59.09136581420892],[-136.82467651367182,59.15980148315441],[-136.58198547363273,59.16554260253911],[-136.457763671875,59.281421661377],[-136.46405029296875,59.46300125122075],[-136.39628601074213,59.4473876953125],[-136.3014373779297,59.46583938598633],[-136.23628234863276,59.52671051025385],[-136.24140930175776,59.55910110473633],[-136.35354614257812,59.599884033203175],[-136.1952514648437,59.63881301879883],[-135.94760131835932,59.66343307495117],[-135.47958374023438,59.79809951782226],[-135.36441040039057,59.73962402343749],[-135.23365783691406,59.69609069824213],[-135.21983337402338,59.66294860839844],[-135.1174774169922,59.62310028076172],[-135.0288848876953,59.56364059448242],[-135.0279083251953,59.474590301513665],[-135.10063171386713,59.42776107788097],[-134.99241638183582,59.38776779174799],[-135.03353881835938,59.35022735595715],[-134.9597778320312,59.28104019165045],[-134.70069885253906,59.24889755249018],[-134.67889404296875,59.192050933838],[-134.5655059814453,59.130840301513615],[-134.48272705078125,59.13097000122076],[-134.38197326660145,59.03876113891602],[-134.4074096679687,58.97901153564458],[-134.3133697509765,58.96205902099614],[-134.33627319335932,58.92356109619152],[-134.25799560546864,58.86087036132813],[-133.9391174316406,58.75683593750006],[-133.84104919433582,58.729854583740284],[-133.69947814941406,58.60911560058594],[-133.50418090820307,58.49637603759765],[-133.37997436523438,58.43181228637696],[-133.45986938476562,58.38847732543956],[-133.3487091064453,58.27952957153325],[-133.1719512939452,58.15383148193359],[-133.06954956054688,58.00005340576183],[-132.8690185546875,57.83972167968751],[-132.751220703125,57.69610595703125],[-132.66082763671875,57.6168823242187],[-132.55389404296875,57.49670410156261],[-132.3692474365234,57.34989166259765],[-132.24780273437494,57.21112060546881],[-132.36871337890625,57.09167480468756],[-132.0447998046874,57.04510498046875],[-132.12310791015625,56.87390136718756],[-131.8731079101562,56.8062744140625],[-131.90087890624994,56.75347900390624],[-131.86041259765622,56.70288085937494],[-131.83538818359375,56.59912109374994],[-131.58129882812494,56.6123046875],[-131.4716186523437,56.5526733398438],[-131.17327880859375,56.44952392578131],[-131.08697509765625,56.4061279296875],[-130.78179931640625,56.36712646484381],[-130.62298583984375,56.26690673828124],[-130.46820068359375,56.24328613281256],[-130.42547607421875,56.141723632812614],[-130.24591064453125,56.096313476562614],[-130.10540771484364,56.12268066406249],[-130.00302124023438,56.00790023803722],[-130.0159912109375,55.923522949218864],[-130.0916748046874,55.82769775390631],[-130.13781738281244,55.819072723388786],[-130.17250061035153,55.77816390991211],[-130.12518310546875,55.643493652343864],[-130.14973449707026,55.59846496582037],[-130.1069335937499,55.49569320678711],[-130.0538940429687,55.44250488281244],[-130.03527832031244,55.331481933593864],[-129.99418640136713,55.290195465087834],[-130.15611267089838,55.16527938842768],[-130.23022460937494,55.03603363037121],[-130.29559326171875,54.9656982421875],[-130.3699951171875,54.90722274780273],[-130.49714660644526,54.8334617614746],[-130.52444458007807,54.86800765991216],[-130.63220214843744,54.81723403930664],[-130.6573028564452,54.773941040039176],[-130.71859741210932,54.76430130004894],[-130.74166870117182,54.80083465576183],[-130.85995483398426,54.76807403564447],[-130.94798278808582,54.827877044677734],[-130.9520263671875,54.96307373046881],[-131.00277709960938,54.998611450195426],[-130.9949951171874,55.0853271484375],[-131.07208251953125,55.123542785644645],[-131.09397888183588,55.19140243530268],[-130.9880981445312,55.248901367187436],[-130.87826538085926,55.33163452148449],[-130.87611389160156,55.381942749023494],[-130.9000854492187,55.466674804687614],[-130.8733367919922,55.501945495605526],[-130.8721923828125,55.55688476562506],[-130.90408325195307,55.71165466308594],[-130.96717834472656,55.784847259521484],[-131.01727294921875,55.81912231445318],[-131.0927734375,55.89475631713873],[-131.18055725097648,55.94805526733393],[-131.22900390624994,56.00549316406256],[-131.3747253417968,55.96852874755871],[-131.43968200683588,56.002639770507926],[-131.5993041992187,55.94152832031249],[-131.67666625976557,55.91944503784174],[-131.7594451904296,55.877777099609375],[-131.9061584472656,55.86918640136713],[-131.8905487060547,55.84353637695318],[-131.79968261718741,55.83587646484381],[-131.76364135742182,55.813938140869254],[-131.82461547851562,55.71919631958008],[-131.85833740234366,55.63194274902343],[-131.92779541015625,55.61169433593744],[-131.969482421875,55.50083160400402],[-132.04566955566406,55.53450012207031],[-132.12081909179688,55.549968719482536],[-132.18511962890625,55.587944030761776],[-132.22570800781244,55.70367431640625],[-132.19091796875,55.73907470703136],[-132.17950439453125,55.796421051025334],[-132.12850952148432,55.81128311157221],[-132.0388946533203,55.88750076293951],[-132.07119750976557,55.9249382019044],[-132.04185485839844,55.959983825683594],[-131.97448730468741,55.96490478515636],[-131.95611572265625,56.00030517578131],[-131.98222351074213,56.06166839599609],[-131.97277832031244,56.1738891601563],[-131.89555358886705,56.181667327880966],[-131.8733367919922,56.20333480834966],[-131.93167114257807,56.23638916015625],[-131.97999572753906,56.3011093139649],[-131.99050903320307,56.34255218505871],[-132.04830932617182,56.37092590332037],[-132.09547424316406,56.37588119506836],[-132.1099243164062,56.36608886718749],[-132.19767761230457,56.415653228759815],[-132.21127319335938,56.46074295043939],[-132.34574890136713,56.518203735351676],[-132.36431884765625,56.59514617919922],[-132.4229125976562,56.60944366455078],[-132.49819946289062,56.60348129272461],[-132.57032775878906,56.63418197631836],[-132.5305786132812,56.67687988281255],[-132.5449829101562,56.71032714843744],[-132.4916687011718,56.74555587768555],[-132.64385986328125,56.781711578369254],[-132.79107666015625,56.84448242187506],[-132.81004333496094,56.88479614257823],[-132.88610839843744,56.92222213745123],[-132.92529296874994,56.972717285156364],[-132.8721466064453,57.00138854980462],[-132.81051635742185,56.969760894775504],[-132.78289794921875,57.00207519531255],[-132.84997558593744,57.07910156250006],[-132.8736877441406,57.030025482177784],[-133.056396484375,57.06750488281256],[-133.07888793945312,57.08251953125006],[-133.18170166015625,57.089111328124936],[-133.1388702392578,57.16133499145508],[-133.1972198486327,57.172779083251946],[-133.29864501953122,57.10659408569335],[-133.4591064453125,57.14849853515624],[-133.52645874023438,57.19579315185546],[-133.49945068359375,57.22722244262701],[-133.51123046874994,57.26481628417969],[-133.47438049316406,57.29777145385748],[-133.3661346435547,57.28532028198242],[-133.26943969726562,57.2908325195313],[-133.15711975097656,57.311733245849666],[-133.3563232421875,57.33293914794921],[-133.45307922363276,57.355064392089844],[-133.46833801269526,57.42277908325206],[-133.5270233154297,57.48832321166998],[-133.51554870605463,57.54555511474603],[-133.61833190917963,57.57860946655284],[-133.6744384765624,57.63185119628912],[-133.65528869628906,57.70913314819336],[-133.56832885742188,57.7192268371582],[-133.52995300292963,57.68903350830078],[-133.38632202148432,57.657958984375],[-133.17562866210938,57.58179473876947],[-133.15168762207028,57.588897705078125],[-133.28334045410145,57.66194534301769],[-133.33053588867182,57.66389465332038],[-133.41555786132812,57.71638870239258],[-133.54499816894526,57.76861190795892],[-133.57971191406244,57.83359909057628],[-133.63221740722656,57.791389465332145],[-133.71205139160156,57.79578781127935],[-133.78227233886713,57.87861251831065],[-133.8486328125,57.93291091918952],[-133.8322296142578,57.96916580200202],[-133.92720031738278,57.984916687011776],[-134.03555297851562,58.06166839599604],[-134.07891845703125,58.129325866699276],[-134.08485412597656,58.21204376220703],[-134.05406188964838,58.231384277343864],[-134.08076477050776,58.27799987792968],[-134.00442504882812,58.294998168945305],[-133.97947692871094,58.31972122192388],[-134.01611328124994,58.400554656982415],[-134.05444335937494,58.37083435058605],[-134.05778503417963,58.332500457763736],[-134.15061950683594,58.28214645385748],[-134.10304260253906,58.24853897094726],[-134.14944458007807,58.20360946655279],[-134.2196807861328,58.2051277160645],[-134.4596405029297,58.32324600219738],[-134.5272216796875,58.34694290161133],[-134.63665771484375,58.34092330932623],[-134.64944458007807,58.38472366333008],[-134.75900268554688,58.38423538208013],[-134.7579956054687,58.42184066772472],[-134.81689453125,58.5065536499024],[-134.9672241210937,58.64638900756836],[-134.936279296875,58.681575775146534],[-134.93499755859366,58.78166580200195],[-135.08222961425776,58.791389465332145],[-135.13833618164062,58.83055496215825],[-135.1403198242187,58.87372970581049],[-135.17555236816406,58.93666839599614],[-135.1778106689452,59.00063323974621],[-135.2035675048828,59.07036972045893],[-135.28485107421875,59.197448730468864],[-135.37341308593736,59.26982879638671],[-135.35871887207026,59.371780395507926],[-135.32861328125,59.44423675537115],[-135.3617553710937,59.449417114257926],[-135.39840698242188,59.33709335327149],[-135.4412994384765,59.29442214965825],[-135.42628479003906,59.244499206543026],[-135.35974121093741,59.200412750244254],[-135.3881072998047,59.17440795898449],[-135.47666931152338,59.22666549682622],[-135.51722717285145,59.20888900756836],[-135.47030639648426,59.175098419189396],[-135.43984985351557,59.11267471313487],[-135.38223266601562,59.10167694091802],[-135.40167236328125,58.973609924316406],[-135.23886108398438,58.765258789062614],[-135.22558593749994,58.71723937988275],[-135.1405487060547,58.61777877807617],[-135.21388244628906,58.62722396850591],[-135.21842956542963,58.59317398071288],[-135.16510009765616,58.56341171264643],[-135.13729858398438,58.4862174987793],[-135.09945678710938,58.44486999511713],[-135.04866027832026,58.3033180236817],[-135.10060119628903,58.29496002197265],[-135.0967407226562,58.24481201171875],[-135.14889526367182,58.20972061157232],[-135.313995361328,58.24590301513683],[-135.40821838378895,58.342689514160156],[-135.43307495117182,58.4085044860841],[-135.50111389160156,58.37694549560558],[-135.62277221679682,58.426944732666065],[-135.67889404296875,58.401111602783196],[-135.75944519042963,58.400554656982415],[-135.9082489013672,58.379035949707145],[-135.897720336914,58.44878005981439],[-135.84490966796864,58.54193496704107],[-135.90777587890625,58.57583236694335],[-135.8966522216797,58.60642242431636],[-135.99945068359375,58.740493774414006],[-136.088638305664,58.818325042724666],[-136.04943847656244,58.840831756591854],[-135.89106750488267,58.877372741699276],[-135.9199981689453,58.90499877929693],[-135.98889160156244,58.860832214355575],[-136.0672149658203,58.876388549804744],[-136.05963134765625,58.92801284790045],[-136.15206909179682,58.94427490234374],[-136.10597229003906,58.86391448974604],[-136.17738342285156,58.75450515747081],[-136.24964904785145,58.75211334228527],[-136.39700317382812,58.81735229492199],[-136.45889282226562,58.82472229003912],[-136.50999450683588,58.86138916015636],[-136.5327758789062,58.92139053344737],[-136.7093505859375,58.91768264770513],[-136.8779754638672,58.96437835693371],[-137.03109741210935,59.06180191040033],[-137.0411224365234,59.018833160400504],[-136.92056274414062,58.953056335449276],[-136.91944885253906,58.93166732788097],[-137.02291870117188,58.92354965209961],[-136.804443359375,58.87111282348633],[-136.743896484375,58.87666702270513],[-136.6459197998047,58.840656280517635],[-136.5617218017578,58.832374572753956],[-136.49243164062491,58.79180145263666],[-136.58966064453125,58.77780151367193],[-136.39198303222656,58.71799850463872],[-136.20448303222656,58.61332702636719],[-136.21478271484375,58.59119796752941],[-136.17333984374991,58.526683807373104],[-136.0952606201172,58.507102966308594],[-136.1019287109375,58.47744369506836],[-136.03999328613276,58.38499832153326],[-136.0972290039062,58.34749984741206],[-136.15609741210938,58.34551620483404],[-136.2838897705078,58.315277099609425],[-136.2753448486328,58.36558532714844],[-136.3269500732422,58.38346862792969],[-136.3622283935547,58.34833145141607],[-136.36930847167963,58.30234146118164],[-136.5911102294922,58.333332061767685],[-136.60667419433588,58.30027770996088],[-136.56706237792966,58.24614715576172],[-136.6361083984375,58.210277557373104],[-136.68611145019526,58.21166610717785],[-136.76055908203125,58.286388397216854],[-136.85667419433594,58.31666564941417],[-136.91758728027338,58.39931869506847],[-137.01277160644526,58.41055679321295],[-137.09307861328114,58.381103515625114],[-137.16000366210932,58.42388916015619],[-137.3977813720703,58.50638961791993],[-137.4600067138672,58.5430564880371],[-137.6077728271483,58.599998474121094],[-137.51222229003906,58.64277648925787],[-137.60556030273432,58.64805603027344],[-137.67999267578125,58.62333297729492],[-137.69000244140625,58.66694259643566],[-137.7816619873047,58.718055725097656],[-137.93110656738278,58.78416824340825],[-137.93763732910148,58.8766822814942],[-138.07777404785156,58.96222305297845],[-138.18371582031247,59.01556777954107],[-138.37777709960938,59.09194564819336],[-138.5132293701172,59.10449600219737],[-138.6703643798828,59.14447784423822],[-138.80723571777344,59.206142425537216],[-138.9568634033203,59.25723266601563],[-139.1322174072265,59.30110931396484],[-139.24722290039057,59.343055725097656],[-139.29499816894526,59.3883323669433],[-139.37167358398432,59.383609771728516],[-139.51611328125,59.433055877685604],[-139.63000488281244,59.456943511963],[-139.8544464111328,59.53416824340826],[-139.74110412597656,59.544723510742244],[-139.70222473144526,59.58166503906251],[-139.6522216796875,59.57305526733404],[-139.58265686035153,59.60735321044933],[-139.5877838134765,59.645832061767514],[-139.48388671875,59.70805740356445],[-139.54222106933594,59.73666763305663],[-139.59889221191406,59.80055618286133],[-139.63192749023432,59.898277282714844],[-139.5511016845703,59.9280014038087],[-139.50990295410156,59.98546218872076],[-139.47216796875,59.99728775024419],[-139.30001831054688,59.852420806884766],[-139.3345184326172,59.82162094116217],[-139.3497161865234,59.74612045288097],[-139.28778076171875,59.61388778686529],[-139.35667419433594,59.5897216796875],[-139.30389404296875,59.56527709960937],[-139.2283325195312,59.60610961914062],[-139.27000427246088,59.653057098388786],[-139.2711181640625,59.69250106811535],[-139.3222198486328,59.73305511474621],[-139.28889465332026,59.77639007568353],[-139.30055236816406,59.81944274902355],[-139.25289916992188,59.860218048095646],[-139.3355560302734,59.91749954223633],[-139.42927551269523,60.002071380615355],[-139.49583435058588,60.00208282470703],[-139.54551696777338,60.03232192993164],[-139.6004180908203,59.98762130737299],[-139.60311889648432,59.952121734619254],[-139.7121124267578,59.918819427490234],[-139.77362060546875,59.86841964721674],[-139.7804107666015,59.828720092773494],[-139.91252136230457,59.79492187499999],[-140.04380798339838,59.83872222900402],[-140.16711425781244,59.80372238159191],[-140.17341613769523,59.76842117309581],[-140.05041503906244,59.793521881103516],[-139.98242187499986,59.78062057495128],[-140.1488189697265,59.740020751953125],[-140.23161315917963,59.70402145385743],[-140.34411621093744,59.69392013549805],[-140.66812133789062,59.71052169799804],[-140.90641784667963,59.74242019653325],[-140.97731018066406,59.76842117309581],[-141.31352233886716,59.847019195556754],[-141.433120727539,59.86751937866211],[-141.46311950683594,59.885318756103565],[-141.3677520751953,59.93068695068353],[-141.29541015624994,59.936279296875],[-141.26927185058594,60.0078125],[-141.3145904541015,60.054164886474716]]]},"properties":{"ID_0":244,"ISO":"US-AK","NAME_0":"United States","ID_1":2,"NAME_1":"Alaska","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"AK|Alaska"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-109.04487609863281,36.9986305236817],[-109.04498291015625,36.68064880371105],[-109.04515838623047,36.01681137084972],[-109.04572296142578,35.6636695861817],[-109.04576110839844,35.16600036621105],[-109.04574584960938,34.81711959838867],[-109.04640197753906,34.390869140625114],[-109.04667663574217,33.8202018737793],[-109.04670715332031,33.47565078735363],[-109.04698181152342,32.977729797363395],[-109.04759216308587,32.5987091064456],[-109.04814910888672,32.25138092041044],[-109.04878997802734,31.91115188598638],[-109.04997253417963,31.33189964294434],[-109.40209197998041,31.331979751586914],[-110.14565277099604,31.332050323486328],[-110.46113586425776,31.332838058471676],[-111.07280731201165,31.329170227050838],[-111.53482055664062,31.47812271118164],[-111.95210266113276,31.61047935485851],[-112.53932189941405,31.794998168945426],[-112.9423828125,31.91855049133306],[-113.42045593261719,32.06674957275419],[-113.9592895507812,32.23431396484374],[-114.31127166748047,32.34245300292969],[-114.81201171874999,32.4943237304688],[-114.80050659179688,32.59209060668951],[-114.74848175048822,32.66215896606457],[-114.71920013427727,32.718040466308594],[-114.70239257812496,32.7433319091798],[-114.6139068603515,32.729110717773665],[-114.5264892578125,32.75796890258789],[-114.52892303466791,32.79333114624029],[-114.46600341796868,32.84617996215826],[-114.46031951904297,32.901100158691406],[-114.51423645019526,33.02904129028343],[-114.5721664428711,33.03773117065441],[-114.6606674194336,33.03330993652344],[-114.69973754882805,33.11968994140625],[-114.67574310302736,33.16337203979498],[-114.67646026611322,33.273658752441634],[-114.72881317138666,33.302280426025504],[-114.6975631713866,33.34461975097662],[-114.72229003906249,33.40951919555664],[-114.63423919677724,33.423461914062614],[-114.59166717529295,33.50041961669922],[-114.5249404907226,33.561000823974666],[-114.52953338623047,33.674240112304744],[-114.49397277832031,33.700382232666016],[-114.50093078613281,33.75577926635748],[-114.52828216552729,33.85622024536133],[-114.50019836425781,33.87958908081066],[-114.53289794921875,33.93159866333013],[-114.43416595458983,34.03329849243169],[-114.41877746582026,34.10631179809576],[-114.32263946533197,34.141521453857365],[-114.28856658935547,34.17266082763683],[-114.25208282470697,34.17837142944336],[-114.15557861328118,34.2638397216798],[-114.13778686523438,34.308101654052734],[-114.18448638916003,34.35848999023432],[-114.22252655029291,34.36848068237316],[-114.26085662841791,34.40365219116211],[-114.34599304199219,34.455589294433594],[-114.3848876953125,34.463932037353516],[-114.37651824951172,34.51451873779297],[-114.40545654296864,34.57538223266607],[-114.43097686767572,34.59251022338873],[-114.4707794189452,34.71519851684582],[-114.5584869384765,34.779640197753906],[-114.580337524414,34.83074188232416],[-114.63497924804682,34.886699676513786],[-114.63286590576172,35.00207901000988],[-114.63520812988281,35.035320281982415],[-114.60668182373036,35.07686996459972],[-114.62948608398438,35.12147903442394],[-114.5839767456054,35.1271705627442],[-114.5707168579101,35.18000030517578],[-114.58245086669915,35.211620330810604],[-114.59561920166004,35.32456970214844],[-114.62188720703126,35.390602111816406],[-114.67028808593737,35.469749450683594],[-114.67825317382812,35.51501083374018],[-114.65940856933587,35.53543853759771],[-114.67594909667967,35.582672119140625],[-114.65865325927722,35.61623001098644],[-114.68483734130858,35.64273071289062],[-114.68296051025385,35.685562133789176],[-114.71275329589844,35.80863189697277],[-114.70729064941393,35.848899841308594],[-114.67109680175781,35.875728607177734],[-114.73191833496094,35.94451904296881],[-114.74530029296875,35.984611511230526],[-114.72442626953121,36.0326499938966],[-114.753921508789,36.08106994628906],[-114.73661041259766,36.10419082641596],[-114.67988586425777,36.11285018920904],[-114.62979125976562,36.142059326171875],[-114.51081848144526,36.15275192260748],[-114.4400177001953,36.12734985351574],[-114.3738021850586,36.143798828125],[-114.23375701904291,36.01391220092785],[-114.15087127685547,36.02880096435547],[-114.06939697265625,36.18202972412114],[-114.04865264892572,36.195098876953125],[-114.04796600341797,36.48881149291998],[-114.05095672607416,36.99998855590826],[-113.41142272949213,37.00162887573242],[-112.90373229980467,37.00268936157238],[-112.5424194335937,37.00315093994146],[-112.03301239013672,37.002441406250114],[-111.66131591796868,37.00286865234374],[-111.23603820800781,37.00365066528332],[-110.47875976562494,37.00392913818371],[-110.4719467163086,36.999580383300895],[-110.00110626220703,36.999221801757805],[-109.47431182861328,36.9987411499024],[-109.04487609863281,36.9986305236817]]]},"properties":{"ID_0":244,"ISO":"US-AZ","NAME_0":"United States","ID_1":3,"NAME_1":"Arizona","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"AZ|Ariz."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.7169418334961,36.0015220642091],[-89.71617126464844,35.96250152587896],[-89.6587142944336,35.92705154418945],[-89.66558074951172,35.88338088989258],[-89.71317291259759,35.90610885620122],[-89.76773071289057,35.88957977294922],[-89.76239776611322,35.856891632080135],[-89.7074203491211,35.838581085205135],[-89.70654296875,35.81716156005865],[-89.79366302490229,35.794780731201286],[-89.8186264038086,35.75682067871094],[-89.87516021728516,35.74160003662115],[-89.9059829711914,35.75981903076166],[-89.95271301269531,35.737960815429744],[-89.9564590454101,35.69501113891613],[-89.91184997558588,35.6542587280274],[-89.86263275146479,35.63191223144537],[-89.94140624999994,35.602321624755966],[-89.95485687255854,35.52400970458996],[-89.98796081542957,35.55937957763672],[-90.03614807128906,35.551521301269645],[-90.04913330078125,35.511329650878906],[-90.01908874511717,35.46895980834966],[-90.03086090087885,35.427928924560604],[-90.0990600585937,35.480419158935604],[-90.1708984375,35.41873931884776],[-90.17984771728516,35.38616943359369],[-90.1382827758789,35.379459381103516],[-90.12612152099604,35.41577911376953],[-90.0751113891601,35.384670257568416],[-90.10791778564447,35.34275054931646],[-90.10833740234375,35.30902099609381],[-90.15638732910155,35.30115127563488],[-90.15181732177734,35.255771636963004],[-90.10386657714842,35.25535964965832],[-90.07412719726561,35.21887969970714],[-90.11460876464832,35.180030822753906],[-90.06684112548828,35.15052032470708],[-90.09780883789055,35.119621276855526],[-90.1426391601562,35.1371421813966],[-90.17922973632812,35.1167602539063],[-90.2007217407226,35.03031921386719],[-90.275650024414,35.03966903686535],[-90.30976867675781,34.99660873413086],[-90.24855041503906,34.9493789672851],[-90.24449920654286,34.90898132324219],[-90.32254791259766,34.846328735351676],[-90.34803009033203,34.859870910644645],[-90.42064666748036,34.833099365234375],[-90.44159698486322,34.88703155517578],[-90.48574829101557,34.86536026000971],[-90.45980072021484,34.824321746826286],[-90.47255706787108,34.79524993896496],[-90.4465103149414,34.754928588867244],[-90.48787689208973,34.727760314941406],[-90.51396179199219,34.80002975463873],[-90.5688018798828,34.72166061401373],[-90.54035949707031,34.70389938354498],[-90.4769515991211,34.699810028076115],[-90.4717407226562,34.67076873779297],[-90.51595306396484,34.635009765625114],[-90.55819702148438,34.646888732910156],[-90.57801055908202,34.602619171142635],[-90.54213714599604,34.53960037231445],[-90.5881729125976,34.50506210327143],[-90.57575988769531,34.41558074951172],[-90.67916870117182,34.36820220947277],[-90.74828338623047,34.37266921997082],[-90.76956176757807,34.35536193847662],[-90.7460327148437,34.31315994262707],[-90.76856994628906,34.27719116210949],[-90.83098602294916,34.2725715637207],[-90.83593749999994,34.19076156616211],[-90.81282806396484,34.15819931030279],[-90.84227752685547,34.140018463134766],[-90.91028594970703,34.16529846191406],[-90.95450592041009,34.13861083984375],[-90.94072723388672,34.10102081298828],[-90.87010192871088,34.09104156494152],[-90.88780975341797,34.0267791748048],[-90.98674011230463,34.01914978027355],[-90.96324157714844,33.96887969970703],[-90.9959869384765,33.96387100219732],[-91.01798248291016,34.001789093017635],[-91.08571624755854,33.97850036621105],[-91.08651733398438,33.95845031738287],[-91.00734710693348,33.92829132080084],[-91.07050323486328,33.86698913574219],[-91.04622650146479,33.814350128173885],[-91.0040664672851,33.80142974853521],[-91.024169921875,33.76340103149419],[-91.05506896972656,33.777740478515625],[-91.1430358886718,33.77301025390631],[-91.14575958251953,33.730079650878906],[-91.10269165039055,33.70724868774414],[-91.04870605468743,33.70973968505871],[-91.03778076171875,33.671562194824276],[-91.09281158447266,33.65715026855463],[-91.16152954101557,33.704860687255916],[-91.20845794677729,33.70071029663097],[-91.2188262939453,33.6605110168457],[-91.18389892578125,33.6549911499024],[-91.13629913330078,33.622840881347656],[-91.13588714599604,33.59233093261719],[-91.22438812255854,33.56781005859381],[-91.23066711425776,33.548419952392635],[-91.1765670776367,33.49641036987316],[-91.12610626220703,33.47439956665039],[-91.13165283203125,33.42916870117216],[-91.19449615478516,33.4179496765139],[-91.16921997070312,33.380290985107536],[-91.11171722412108,33.393680572509766],[-91.09596252441406,33.44879913330084],[-91.05716705322266,33.4273185729981],[-91.14437103271477,33.33504104614286],[-91.11247253417969,33.24589157104492],[-91.08489227294922,33.276882171630966],[-91.05364990234375,33.247180938720874],[-91.09247589111322,33.21709060668945],[-91.08685302734368,33.1520309448245],[-91.10302734375,33.130241394043026],[-91.17611694335932,33.143138885498104],[-91.1991119384765,33.10557937622076],[-91.13343811035156,33.06985092163086],[-91.1232070922851,33.04489898681635],[-91.1631469726562,33.00453186035179],[-91.46073150634766,33.00588989257818],[-92.14565277099598,33.00933074951177],[-92.62548065185547,33.013629913330135],[-93.09660339355469,33.01737213134794],[-93.57451629638666,33.01968002319336],[-94.04561614990234,33.02059936523443],[-94.04447937011713,33.550460815429744],[-94.09290313720703,33.57558059692394],[-94.11730194091797,33.56679916381847],[-94.18660736083973,33.589248657226506],[-94.23461151123047,33.55192947387707],[-94.31211853027342,33.5519905090332],[-94.33524322509766,33.563579559326286],[-94.38497161865223,33.544189453125114],[-94.45440673828125,33.62025070190423],[-94.48629760742186,33.64110946655279],[-94.47178649902344,34.189720153808594],[-94.45709991455077,34.709930419921925],[-94.44738006591797,34.933658599853516],[-94.43070220947266,35.400039672851676],[-94.49468231201172,35.7593612670899],[-94.53376770019531,36.00931167602545],[-94.61815643310547,36.49837112426763],[-93.90712738037108,36.4982795715332],[-93.2854614257812,36.4967994689942],[-92.52845001220697,36.496490478515625],[-92.03105926513672,36.4969100952149],[-91.49015808105463,36.49763870239269],[-90.95155334472645,36.496860504150504],[-90.57686614990234,36.49647140502941],[-90.15357208251953,36.496299743652344],[-90.13665008544922,36.422080993652344],[-90.06600952148438,36.383781433105526],[-90.08075714111315,36.32051086425787],[-90.0680160522461,36.297771453857536],[-90.11355590820307,36.26523971557623],[-90.12837982177734,36.23046875000006],[-90.22168731689447,36.181148529052784],[-90.2384033203125,36.13822937011713],[-90.29045867919916,36.11500930786144],[-90.37732696533197,35.995090484619084],[-89.7169418334961,36.0015220642091]]]},"properties":{"ID_0":244,"ISO":"US-AR","NAME_0":"United States","ID_1":4,"NAME_1":"Arkansas","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"AR|Ark."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-118.59094238281239,33.03206634521496],[-118.56333160400392,33.023334503173885],[-118.48500061035155,32.923332214355526],[-118.37059783935545,32.84001922607433],[-118.42352294921875,32.80407714843756],[-118.4902572631836,32.84483337402344],[-118.57671356201165,32.97409439086914],[-118.59094238281239,33.03206634521496]]],[[[-119.5257797241211,33.28405761718761],[-119.461456298828,33.25718307495123],[-119.47036743164062,33.21442031860351],[-119.54638671874999,33.23194503784179],[-119.56966400146479,33.256668090820305],[-119.5257797241211,33.28405761718761]]],[[[-118.60555267333983,33.47972106933605],[-118.53916931152342,33.477500915527344],[-118.36638641357422,33.40583419799816],[-118.31361389160143,33.34027862548834],[-118.32611083984374,33.298610687256144],[-118.37805175781243,33.320556640625],[-118.441665649414,33.31833267211914],[-118.48916625976555,33.357223510742244],[-118.48970031738281,33.42002868652355],[-118.57444763183594,33.44055557250988],[-118.60555267333983,33.47972106933605]]],[[[-120.05333709716795,34.03805541992181],[-120.0465774536133,34],[-119.9802780151367,33.978610992431754],[-119.97025299072266,33.94139862060547],[-120.01409912109371,33.937500000000114],[-120.12027740478516,33.89416503906256],[-120.16928100585938,33.91699600219738],[-120.22200775146472,33.9878044128418],[-120.13581085205078,34.026424407959034],[-120.08916473388659,34.02055740356457],[-120.05333709716795,34.03805541992181]]],[[[-119.9169464111328,34.07833480834972],[-119.71142578124999,34.04309082031256],[-119.68472290039062,34.02000045776378],[-119.63194274902338,34.01305389404308],[-119.60583496093746,34.04194259643566],[-119.56272125244135,34.05639266967779],[-119.5288467407226,34.04103851318365],[-119.55527496337885,33.99722290039074],[-119.65417480468743,33.98754119873047],[-119.72138977050774,33.958889007568416],[-119.8186950683593,33.959465026855405],[-119.8740844726562,33.979972839355526],[-119.87609863281243,34.03088378906256],[-119.9169464111328,34.07833480834972]]],[[[-120.00031280517578,41.995319366455135],[-119.99841308593749,41.69052124023432],[-119.99858093261717,41.36825180053722],[-119.99990844726564,40.933101654052784],[-119.99555206298827,40.4350814819337],[-119.99684906005848,40.05765151977545],[-120.00219726562499,39.7387199401856],[-120.0053482055664,39.28754043579113],[-120.00094604492176,39.000530242919915],[-119.70334625244139,38.795349121093864],[-119.33056640624999,38.53644943237305],[-118.85913848876953,38.20465087890619],[-118.3943710327148,37.87263870239269],[-117.8338623046875,37.465518951416016],[-117.5108032226562,37.22805023193371],[-117.16394805908199,36.9698219299317],[-116.59462738037108,36.5400009155274],[-116.23110961914061,36.262580871582145],[-115.89499664306629,36.00152969360363],[-115.59126281738281,35.766059875488395],[-115.22070312500001,35.47436904907238],[-114.93524932861327,35.24694061279297],[-114.63286590576172,35.00207901000988],[-114.63497924804682,34.886699676513786],[-114.580337524414,34.83074188232416],[-114.5584869384765,34.779640197753906],[-114.4707794189452,34.71519851684582],[-114.43097686767572,34.59251022338873],[-114.40545654296864,34.57538223266607],[-114.37651824951172,34.51451873779297],[-114.3848876953125,34.463932037353516],[-114.34599304199219,34.455589294433594],[-114.26085662841791,34.40365219116211],[-114.22252655029291,34.36848068237316],[-114.18448638916003,34.35848999023432],[-114.13778686523438,34.308101654052734],[-114.15557861328118,34.2638397216798],[-114.25208282470697,34.17837142944336],[-114.28856658935547,34.17266082763683],[-114.32263946533197,34.141521453857365],[-114.41877746582026,34.10631179809576],[-114.43416595458983,34.03329849243169],[-114.53289794921875,33.93159866333013],[-114.50019836425781,33.87958908081066],[-114.52828216552729,33.85622024536133],[-114.50093078613281,33.75577926635748],[-114.49397277832031,33.700382232666016],[-114.52953338623047,33.674240112304744],[-114.5249404907226,33.561000823974666],[-114.59166717529295,33.50041961669922],[-114.63423919677724,33.423461914062614],[-114.72229003906249,33.40951919555664],[-114.6975631713866,33.34461975097662],[-114.72881317138666,33.302280426025504],[-114.67646026611322,33.273658752441634],[-114.67574310302736,33.16337203979498],[-114.69973754882805,33.11968994140625],[-114.6606674194336,33.03330993652344],[-114.5721664428711,33.03773117065441],[-114.51423645019526,33.02904129028343],[-114.46031951904297,32.901100158691406],[-114.46600341796868,32.84617996215826],[-114.52892303466791,32.79333114624029],[-114.5264892578125,32.75796890258789],[-114.6139068603515,32.729110717773665],[-114.70239257812496,32.7433319091798],[-114.71920013427727,32.718040466308594],[-115.27404785156244,32.67940139770508],[-115.65876770019526,32.65114212036133],[-116.27767181396477,32.60248184204096],[-116.67362213134766,32.56974029541026],[-117.12390136718737,32.5308837890625],[-117.13078308105469,32.60861968994146],[-117.11944580078124,32.671390533447266],[-117.18892669677729,32.72393035888672],[-117.25579833984362,32.69970703125],[-117.25277709960938,32.76916503906273],[-117.28250122070301,32.8397216796875],[-117.25777435302727,32.856388092041016],[-117.25442504882808,32.90306472778332],[-117.27850341796874,33.00030517578124],[-117.32865142822259,33.12226104736334],[-117.38024902343737,33.190006256103516],[-117.49776458740234,33.32558441162115],[-117.58944702148438,33.382221221924],[-117.63293457031249,33.43096160888672],[-117.72583007812493,33.4822235107423],[-117.78666687011719,33.54277801513671],[-117.88194274902338,33.601112365722656],[-117.93000030517578,33.60749816894537],[-118.00555419921868,33.65750122070324],[-118.09471893310541,33.73694610595703],[-118.18106079101562,33.764904022216854],[-118.23555755615233,33.7547225952149],[-118.29666900634766,33.70861053466808],[-118.38349914550776,33.74190139770519],[-118.42857360839842,33.77420425415039],[-118.3938903808593,33.80501174926769],[-118.39080810546875,33.834716796875114],[-118.4349975585937,33.93055725097662],[-118.48226165771483,33.99614715576172],[-118.54199218749994,34.03869628906256],[-118.67138671875,34.03869628906256],[-118.78500366210932,34.02138900756836],[-118.9375,34.04305648803722],[-119.06055450439452,34.084999084472656],[-119.09610748291016,34.105278015136776],[-119.14389038085936,34.10833358764643],[-119.21305847167969,34.14555740356445],[-119.25389099121094,34.206943511962834],[-119.27805328369135,34.26777648925787],[-119.38972473144524,34.31777954101568],[-119.45833587646484,34.37333297729492],[-119.5097198486328,34.38527679443365],[-119.55721282958983,34.412517547607536],[-119.61722564697266,34.42083358764654],[-119.6827774047851,34.415000915527344],[-119.72805786132812,34.39555740356457],[-119.78166961669916,34.41555404663097],[-119.88002014160145,34.409461975097656],[-119.92805480957026,34.43527603149414],[-120.00650787353516,34.4601783752442],[-120.09533691406244,34.46092605590825],[-120.13597869873041,34.473079681396484],[-120.2925033569336,34.470832824706974],[-120.34222412109375,34.456943511963004],[-120.47166442871088,34.447776794433594],[-120.51305389404293,34.524166107177734],[-120.58194732666016,34.556884765625],[-120.62388610839831,34.5533332824707],[-120.64638519287102,34.57888793945318],[-120.60166931152332,34.69333267211914],[-120.63694763183588,34.758335113525504],[-120.61192321777344,34.8611183166505],[-120.6671752929687,34.91888427734375],[-120.64083099365227,34.99694442749035],[-120.62876892089842,35.073402404785156],[-120.6387557983398,35.133441925048885],[-120.698745727539,35.17046356201172],[-120.76702117919916,35.16140747070318],[-120.85694122314446,35.207778930664176],[-120.89512634277344,35.24390411376953],[-120.89804840087884,35.2717018127442],[-120.83805847167963,35.34055709838873],[-120.88716888427729,35.434028625488395],[-121.00629425048822,35.46200561523443],[-121.1023941040039,35.54940032958995],[-121.1635208129883,35.63232421875006],[-121.28508758544922,35.66916656494152],[-121.31277465820312,35.71027755737316],[-121.33316802978514,35.7820663452149],[-121.41139221191406,35.85250091552746],[-121.46221923828125,35.88499832153332],[-121.5027770996093,36],[-121.57514190673821,36.02514266967779],[-121.63305664062494,36.11888885498052],[-121.71621704101555,36.19362258911144],[-121.83472442626952,36.247776031494254],[-121.84889221191406,36.27416610717773],[-121.90166473388672,36.30666732788091],[-121.89277648925781,36.341110229492244],[-121.91444396972655,36.425277709961044],[-121.94727325439447,36.49034118652344],[-121.93083190917969,36.556110382080135],[-121.97721862792962,36.5797233581543],[-121.93861389160152,36.640277862548885],[-121.88855743408202,36.60172653198248],[-121.84361267089838,36.62694549560547],[-121.81643676757807,36.67513275146495],[-121.78805541992186,36.805000305175895],[-121.86650848388668,36.93688201904297],[-121.94029998779297,36.977497100830135],[-121.97587585449213,36.95307922363281],[-122.00888824462885,36.96361160278332],[-122.0701446533203,36.94808578491216],[-122.15277862548828,36.97527694702143],[-122.22305297851562,37.024166107177734],[-122.2844467163086,37.10194396972662],[-122.36055755615233,37.14972305297857],[-122.40583038330077,37.197776794433594],[-122.41972351074213,37.241390228271484],[-122.40088653564452,37.358634948730526],[-122.44444274902337,37.4386100769043],[-122.46527862548828,37.49805450439459],[-122.5180587768554,37.52194595336914],[-122.51412200927734,37.59740066528331],[-122.49361419677733,37.62749862670904],[-122.51277923583984,37.77639007568364],[-122.46416473388665,37.80527877807623],[-122.41083526611328,37.81166839599615],[-122.3852767944336,37.78916549682617],[-122.36528015136713,37.71527862548828],[-122.39319610595703,37.70737838745117],[-122.3607711791992,37.59292602539074],[-122.26222229003906,37.57444381713873],[-122.20117187500001,37.53960037231457],[-122.21195220947267,37.49473571777338],[-122.15416717529295,37.482498168945426],[-122.06369018554686,37.44520187377941],[-122.05805206298828,37.49638748168945],[-122.11083221435541,37.505001068115234],[-122.1477813720703,37.59416580200207],[-122.15694427490234,37.655555725097656],[-122.191650390625,37.694042205810604],[-122.25135803222655,37.7238883972169],[-122.2463912963867,37.75166702270513],[-122.33249664306639,37.78250122070324],[-122.29944610595702,37.827499389648494],[-122.32444763183588,37.90694427490234],[-122.3877792358398,37.90777587890631],[-122.41083526611328,37.93194580078125],[-122.36805725097649,38.00888824462896],[-122.30000305175781,38.01027679443371],[-122.2438888549804,38.05833435058605],[-122.19110870361328,38.0533332824707],[-122.14749908447264,38.02166748046881],[-122.0266647338867,38.05861282348644],[-121.8277969360351,38.02959060668951],[-121.84557342529295,38.07368087768566],[-121.90209197998041,38.04946899414068],[-121.9122314453125,38.083515167236385],[-121.97333526611317,38.07361221313482],[-122.01110839843749,38.14083480834972],[-122.04638671874989,38.13694381713873],[-122.13194274902342,38.04249954223633],[-122.18944549560548,38.069999694824155],[-122.27416992187499,38.06611251831055],[-122.3305587768554,38.118610382080135],[-122.39583587646486,38.14333343505865],[-122.44416809082031,38.1163902282716],[-122.49250030517572,38.11166763305658],[-122.48416900634766,38.07194519042969],[-122.49749755859375,38.018611907958984],[-122.46555328369139,38.00444412231457],[-122.49388885498047,37.96972274780285],[-122.50194549560543,37.928054809570426],[-122.43777465820301,37.88277816772472],[-122.4808349609375,37.86138916015625],[-122.48110961914061,37.825553894043026],[-122.53451538085936,37.8228874206544],[-122.66805267333979,37.917499542236264],[-122.69917297363276,37.897434234619254],[-122.78226470947266,37.94729232788086],[-122.79161834716798,37.96944427490246],[-122.86833190917962,38.02166748046881],[-122.94055175781239,38.03722381591797],[-122.99069213867182,37.994075775146534],[-123.0141372680664,37.99327087402355],[-122.94889068603516,38.15416717529297],[-122.9875030517578,38.23790359497082],[-122.9969482421875,38.28916549682623],[-123.04916381835932,38.332778930664176],[-123.13138580322264,38.452777862548885],[-123.33333587646479,38.56444549560547],[-123.46111297607422,38.716388702392635],[-123.51305389404297,38.7400016784668],[-123.53333282470697,38.76889038085937],[-123.64778137207026,38.84555435180669],[-123.71250152587889,38.91583251953131],[-123.73000335693347,38.954166412353516],[-123.69000244140625,39.03499984741222],[-123.72055816650385,39.13472366333019],[-123.77041625976557,39.193881988525504],[-123.77861022949214,39.24111175537103],[-123.82705688476557,39.34871673583984],[-123.81972503662104,39.43610763549816],[-123.76583099365229,39.55277633666998],[-123.78805541992182,39.59749984741205],[-123.79464721679682,39.69013977050781],[-123.83239746093744,39.724067687988274],[-123.85280609130854,39.833057403564396],[-123.8991012573242,39.85533905029297],[-123.93043518066399,39.90942764282232],[-124.04544067382811,40.019393920898494],[-124.1104507446289,40.10428237915033],[-124.18729400634764,40.13031005859369],[-124.216079711914,40.16189956665039],[-124.29067230224608,40.2037925720216],[-124.3637237548828,40.26184844970709],[-124.3487243652343,40.31851577758788],[-124.366470336914,40.379135131835994],[-124.40927886962885,40.44323730468755],[-124.36662292480469,40.540954589843864],[-124.29968261718749,40.66678619384771],[-124.26483917236327,40.69712448120117],[-124.21221923828125,40.70583343505865],[-124.22250366210938,40.739444732666016],[-124.17527770996092,40.80472183227538],[-124.12361145019531,40.80638885498052],[-124.08583068847656,40.850555419921875],[-124.149169921875,40.865554809570426],[-124.1128463745117,41.028057098388665],[-124.16000366210932,41.06888961791992],[-124.16333007812496,41.13944625854492],[-124.14083099365229,41.14638900756841],[-124.10778045654295,41.223331451416016],[-124.07166290283202,41.37305450439459],[-124.0633316040039,41.4363899230957],[-124.09999847412104,41.6025009155274],[-124.13388824462889,41.655834197998104],[-124.1433334350586,41.709167480468864],[-124.25638580322266,41.78111267089855],[-124.22389221191399,41.83166503906244],[-124.20722198486317,41.89416503906255],[-124.21170806884766,41.99971771240234],[-124.1179733276367,41.99718856811523],[-123.6563262939453,41.9958610534668],[-123.62500762939453,41.999809265136776],[-123.33613586425768,41.99869918823242],[-123.13788604736328,42.00839996337896],[-123.05084991455078,42.00276184082025],[-122.59681701660149,42.005821228027344],[-122.35028076171875,42.00983047485357],[-121.8769912719726,42.00307083129883],[-121.47303009033197,41.99806976318364],[-121.10743713378905,41.99753189086914],[-121.00151824951166,41.993339538574276],[-120.43006134033202,41.99444961547863],[-120.00031280517578,41.995319366455135]]]]},"properties":{"ID_0":244,"ISO":"US-CA","NAME_0":"United States","ID_1":5,"NAME_1":"California","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"CA|Calif."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-104.05284118652332,41.001701354980526],[-103.57476043701166,41.00302886962896],[-102.98530578613281,41.00292205810541],[-102.62048339843749,41.00313949584966],[-102.05042266845703,41.00186920166021],[-102.04926300048821,40.34949874877935],[-102.04854583740234,40.00391006469738],[-102.0475463867187,39.56885910034191],[-102.04609680175776,39.045631408691406],[-102.04537963867186,38.61375045776367],[-102.04429626464838,38.26269912719738],[-102.04324340820307,37.73841094970709],[-102.04252624511719,37.388240814208984],[-102.04226684570312,36.992229461670036],[-102.4775161743164,36.996250152587834],[-102.70156860351557,36.99578094482416],[-103.00086975097656,36.99898910522461],[-104.00679016113281,36.996631622314396],[-104.33133697509764,36.99296951293956],[-105.03260040283203,36.9933700561524],[-105.06598663330077,36.99544906616222],[-105.71881866455067,36.9969215393067],[-106.20223999023438,36.99480056762701],[-106.87174224853516,36.99227905273443],[-106.87873840332026,36.999038696289055],[-107.19048309326172,36.99908065795909],[-107.9649810791015,36.99711990356451],[-108.53621673583984,36.99837875366211],[-109.04487609863281,36.9986305236817],[-109.04440307617188,37.507350921630916],[-109.04305267333984,37.880020141601506],[-109.04094696044922,38.16028976440441],[-109.06067657470696,38.27684020996099],[-109.0595703125,38.67274093627935],[-109.05381774902332,39.00075149536133],[-109.0526123046875,39.59577178955084],[-109.05178070068354,39.96863937377941],[-109.05010986328125,40.57934188842784],[-109.0490112304687,41.00003051757824],[-108.37809753417969,40.99971008300781],[-107.9153976440429,41.002948760986385],[-107.45752716064447,41.00265884399414],[-107.00211334228516,41.00442123413085],[-106.32630157470697,41.002529144287166],[-106.02378845214838,40.997650146484375],[-105.88063049316399,40.99972152709972],[-105.28948974609375,40.999198913574276],[-104.8300323486328,40.9995689392091],[-104.63365936279297,41.00561141967779],[-104.56794738769531,41.002849578857415],[-104.05284118652332,41.001701354980526]]]},"properties":{"ID_0":244,"ISO":"US-CO","NAME_0":"United States","ID_1":6,"NAME_1":"Colorado","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"CO|Colo."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.7979431152343,42.00889205932623],[-71.78823852539051,41.63874053955084],[-71.79769897460938,41.41868209838867],[-71.84056854248041,41.40938949584966],[-71.83920288085938,41.359920501708984],[-71.83617401123041,41.35243988037115],[-71.83319854736328,41.34768676757818],[-71.8316650390625,41.3444709777832],[-71.86170196533203,41.32353973388683],[-71.87981414794922,41.33827209472656],[-71.95036315917957,41.33799362182617],[-72.0361099243164,41.31805419921875],[-72.07527923583979,41.32110977172863],[-72.13305664062494,41.30027770996088],[-72.19694519042963,41.3202781677246],[-72.26166534423828,41.28305435180663],[-72.33110809326172,41.28055572509771],[-72.34805297851561,41.310276031494254],[-72.3997192382812,41.27861022949224],[-72.45333099365223,41.27888870239258],[-72.54472351074219,41.24833297729492],[-72.57805633544916,41.2713890075683],[-72.7494430541991,41.25860977172846],[-72.8311080932617,41.259998321533196],[-72.89360809326166,41.241943359375],[-72.90742492675781,41.2909927368164],[-73.00360870361327,41.2216682434082],[-73.0475616455077,41.21209716796881],[-73.13774108886719,41.14840316772461],[-73.17361450195307,41.16860961914068],[-73.26261901855457,41.11788558959961],[-73.37785339355467,41.1092987060548],[-73.39275360107422,41.083106994628956],[-73.51768493652344,41.03078842163091],[-73.60032653808594,41.018592834472656],[-73.66063690185547,40.98889541625987],[-73.65699005126952,41.01190185546875],[-73.72972106933588,41.10092163085949],[-73.48383331298821,41.21356201171875],[-73.55226898193358,41.29328155517578],[-73.53325653076166,41.497680664062614],[-73.49005889892572,42.049701690673885],[-73.36583709716797,42.04973220825206],[-73.05438232421875,42.040538787841854],[-72.81553649902332,42.03765106201183],[-72.81815338134764,41.99790954589849],[-72.76860046386713,42.004291534423885],[-72.75743103027338,42.036151885986385],[-72.5732192993164,42.03012847900396],[-72.52633666992188,42.03504943847656],[-72.00298309326166,42.029071807861385],[-71.79910278320305,42.02379989624035],[-71.7979431152343,42.00889205932623]]]},"properties":{"ID_0":244,"ISO":"US-CT","NAME_0":"United States","ID_1":7,"NAME_1":"Connecticut","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"CT|Conn."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.46719360351557,39.372249603271484],[-75.49881744384764,39.3413352966308],[-75.43805694580078,39.3125],[-75.40805816650389,39.264167785644645],[-75.39535522460938,39.19581604003911],[-75.41222381591797,39.14777755737305],[-75.39083099365229,39.05222320556651],[-75.34315490722656,39.02184677124035],[-75.31194305419916,38.96888732910167],[-75.30611419677729,38.91583251953131],[-75.18360900878906,38.80222320556635],[-75.08361053466797,38.775276184082145],[-75.07527923583984,38.68611145019531],[-75.13471984863281,38.67833328247082],[-75.13444519042969,38.59333419799805],[-75.07944488525385,38.58194351196295],[-75.05023193359374,38.44939422607422],[-75.06990814208979,38.45175933837896],[-75.12847900390614,38.447093963623104],[-75.69416809082026,38.45927047729498],[-75.70194244384766,38.559722900390675],[-75.70196533203125,38.56138992309581],[-75.72236633300781,38.82954025268566],[-75.76194763183592,39.33164978027355],[-75.7880630493164,39.65008926391613],[-75.78752136230469,39.72307968139654],[-75.7475967407226,39.76533126831066],[-75.67752075195312,39.81558990478527],[-75.59546661376947,39.838150024414055],[-75.53071594238274,39.840129852294915],[-75.41435241699219,39.803329467773494],[-75.46174621582031,39.76274871826183],[-75.51194763183588,39.673038482666016],[-75.56025695800781,39.62549972534191],[-75.51053619384766,39.57286071777344],[-75.53217315673828,39.49834060668945],[-75.56221771240234,39.470611572265625],[-75.46719360351557,39.372249603271484]]]},"properties":{"ID_0":244,"ISO":"US-DE","NAME_0":"United States","ID_1":8,"NAME_1":"Delaware","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"DE|Del."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-77.01642608642577,38.80926132202154],[-77.03182983398436,38.8532829284668],[-77.066650390625,38.89587020874029],[-77.12050628662104,38.93373107910162],[-77.04148864746094,38.99505996704107],[-76.90969848632812,38.89252853393566],[-77.01642608642577,38.80926132202154]]]},"properties":{"ID_0":244,"ISO":"US-DC","NAME_0":"United States","ID_1":9,"NAME_1":"District of Columbia","TYPE_1":"Federal District","ENGTYPE_1":"Federal District","NL_NAME_1":null,"VARNAME_1":"DC|D.C."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-81.79652404785156,24.594863891601616],[-81.73347473144531,24.557699203491325],[-81.81237792968744,24.545715332031364],[-81.79652404785156,24.594863891601616]]],[[[-81.66236114501947,24.616710662841854],[-81.6495971679687,24.581300735473633],[-81.68486022949213,24.558750152587947],[-81.708511352539,24.577917098999137],[-81.66236114501947,24.616710662841854]]],[[[-81.56181335449219,24.69428062438959],[-81.51569366455072,24.65930557250988],[-81.51013946533203,24.625671386718693],[-81.58041381835938,24.60374832153326],[-81.58349609374994,24.649290084838867],[-81.56181335449219,24.69428062438959]]],[[[-80.91513824462889,24.779029846191406],[-81.02486419677734,24.71680641174322],[-81.02791595458984,24.73263931274414],[-80.91513824462889,24.779029846191406]]],[[[-81.00846862792969,25.27392578125011],[-80.9834747314453,25.228471755981445],[-81.04680633544922,25.239027023315373],[-81.00846862792969,25.27392578125011]]],[[[-80.64962768554688,24.91407966613781],[-80.60041809082031,24.964582443237305],[-80.55652618408203,24.97430610656744],[-80.54374694824219,25.00930595397955],[-80.51264190673827,25.017915725708008],[-80.48180389404291,25.08763885498047],[-80.4470825195312,25.0906982421875],[-80.35009765624994,25.210691452026424],[-80.34960937499999,25.1693115234375],[-80.3993072509765,25.10652732849121],[-80.42263793945311,25.10652732849121],[-80.49346923828114,25.039028167724723],[-80.56597137451172,24.95569229125988],[-80.64962768554688,24.91407966613781]]],[[[-82.19791412353516,26.55291938781738],[-82.17402648925776,26.493749618530497],[-82.10402679443354,26.466249465942667],[-82.05403137207026,26.46680641174322],[-82.02541351318354,26.44458389282238],[-82.07152557373047,26.42152976989757],[-82.12819671630858,26.437362670898494],[-82.1856918334961,26.487083435058594],[-82.19791412353516,26.55291938781738]]],[[[-82.1634750366211,26.7070827484132],[-82.12430572509766,26.699026107788143],[-82.06513977050781,26.61208343505865],[-82.08013916015625,26.546249389648665],[-82.05764007568358,26.493473052978512],[-82.09541320800776,26.492361068725586],[-82.114028930664,26.530416488647514],[-82.13819122314453,26.632915496826172],[-82.18180847167969,26.68124961853033],[-82.1634750366211,26.7070827484132]]],[[[-85.1213912963867,29.688413619995174],[-85.07499694824213,29.673332214355465],[-85.09750366210932,29.632221221923825],[-85.13492584228516,29.631093978881836],[-85.18111419677734,29.662576675415092],[-85.1213912963867,29.688413619995174]]],[[[-81.501480102539,30.728580474853516],[-81.47046661376952,30.69538116455089],[-81.4274978637694,30.701389312744254],[-81.4445495605468,30.576942443847766],[-81.43598937988281,30.52454376220703],[-81.41197967529297,30.485509872436804],[-81.39167022705077,30.396667480468807],[-81.3949966430664,30.33027839660644],[-81.30137634277344,29.941383361816463],[-81.26527404785145,29.85972023010254],[-81.2572250366211,29.785833358764872],[-81.2191696166992,29.683889389038196],[-81.161392211914,29.54916572570818],[-81.04761505126947,29.309028625488278],[-81.03427124023432,29.24116706848145],[-80.99470520019526,29.161449432373217],[-80.9672241210937,29.129999160766662],[-80.91803741455072,29.01882553100586],[-80.81666564941395,28.832777023315483],[-80.758056640625,28.74611091613781],[-80.68499755859375,28.670278549194393],[-80.64888763427729,28.6749992370606],[-80.72972106933594,28.778888702392578],[-80.84638977050776,28.955278396606673],[-80.8727798461914,28.95861053466797],[-80.91536712646479,29.02646255493164],[-80.8919448852539,29.031944274902397],[-80.70249938964838,28.746387481689567],[-80.57555389404291,28.586389541625973],[-80.55611419677729,28.516111373901595],[-80.52500152587885,28.458055496215877],[-80.59083557128893,28.407777786254996],[-80.60722351074213,28.330276489257926],[-80.6058349609375,28.273054122924975],[-80.58999633789061,28.178054809570426],[-80.5513916015625,28.05611038208019],[-80.48020935058582,27.913108825683647],[-80.49746704101557,27.916633605957028],[-80.522720336914,27.991699218750284],[-80.56444549560547,28.05694389343256],[-80.61194610595703,28.16722488403326],[-80.6177749633789,28.24194526672369],[-80.60861206054688,28.280277252197266],[-80.64221954345697,28.322500228881836],[-80.6140365600586,28.346422195434567],[-80.5849990844726,28.515832901001033],[-80.63500213623047,28.502222061157397],[-80.66000366210938,28.432777404785156],[-80.66055297851551,28.35805511474615],[-80.70305633544915,28.340000152587887],[-80.71833038330072,28.38472175598139],[-80.72110748291004,28.471944808960075],[-80.7330551147461,28.489999771118104],[-80.71749877929688,28.575277328491268],[-80.78416442871092,28.621389389038086],[-80.78138732910155,28.691944122314506],[-80.73611450195312,28.700834274292102],[-80.77361297607422,28.75250053405773],[-80.84333038330078,28.754444122314453],[-80.79777526855463,28.558887481689567],[-80.7611083984375,28.466667175293082],[-80.74888610839844,28.408889770507756],[-80.68944549560536,28.280555725097656],[-80.6078033447265,28.08975219726574],[-80.46137237548828,27.80594253540039],[-80.37728118896479,27.658491134643498],[-80.37468719482422,27.621936798095756],[-80.3216323852539,27.443466186523665],[-80.22585296630852,27.247100830078235],[-80.19909667968749,27.17007255554199],[-80.1574935913086,27.162940979003963],[-80.12007904052729,27.08039665222168],[-80.1066665649414,27.02360916137701],[-80.07152557373041,26.94374847412115],[-80.03097534179688,26.796251296997184],[-80.04875183105463,26.781805038452205],[-80.05014038085938,26.71013832092308],[-80.03652954101557,26.59124946594255],[-80.06097412109364,26.437915802002067],[-80.08036041259766,26.257072448730465],[-80.10791778564453,26.092638015747184],[-80.12152862548822,25.89958381652843],[-80.12180328369135,25.807638168334957],[-80.1843032836914,25.810417175293026],[-80.1890258789062,25.755971908569336],[-80.2487487792968,25.712917327880973],[-80.27764129638666,25.632690429687614],[-80.30819702148438,25.608194351196232],[-80.30263519287098,25.568750381469727],[-80.3312530517578,25.52902793884283],[-80.34041595458984,25.47041893005371],[-80.32986450195312,25.399860382080135],[-80.3106918334961,25.371278762817496],[-80.34236145019531,25.33263969421398],[-80.37208557128906,25.32236099243164],[-80.3953857421875,25.27630615234375],[-80.42547607421874,25.26068115234375],[-80.45257568359375,25.207275390625],[-80.580078125,25.211257934570312],[-80.65208435058594,25.191528320312614],[-80.70513916015625,25.146249771118164],[-80.74291992187494,25.164304733276364],[-80.86901855468744,25.175903320312614],[-80.91958618164062,25.14180564880371],[-81.00096893310545,25.124305725097656],[-81.08875274658192,25.11652755737299],[-81.11319732666016,25.16319465637218],[-81.17180633544916,25.22347450256342],[-81.14570617675781,25.32681083679199],[-81.08875274658192,25.310972213745117],[-81.06041717529291,25.24708366394043],[-81.03402709960938,25.229860305786186],[-80.96375274658203,25.20486068725586],[-80.92652893066395,25.21180534362793],[-80.9343032836914,25.262363433837947],[-80.9856948852539,25.345417022705075],[-81.0370864868164,25.322917938232422],[-81.05097198486322,25.3440284729005],[-81.10069274902344,25.346805572509762],[-81.15013885498041,25.38819694519043],[-81.164794921875,25.4779052734375],[-81.20986175537104,25.50625038146978],[-81.20347595214832,25.53458595275879],[-81.23402404785156,25.57236289978033],[-81.25347137451172,25.64152526855463],[-81.28619384765625,25.664916992187557],[-81.27458190917969,25.6965274810791],[-81.34652709960926,25.72208595275879],[-81.33486175537104,25.78763961791998],[-81.34680175781244,25.821250915527344],[-81.4168090820312,25.864074707031364],[-81.45791625976551,25.866804122925032],[-81.50960540771473,25.850976943969837],[-81.53152465820307,25.894304275512866],[-81.5820846557616,25.882638931274524],[-81.61181640624994,25.915710449218807],[-81.7131958007812,25.970970153808594],[-81.74458312988274,26.035972595215014],[-81.7754135131836,26.039583206176868],[-81.80124664306639,26.089862823486328],[-81.81877899169916,26.228193283081055],[-81.83652496337879,26.30680465698248],[-81.86680603027344,26.375694274902344],[-81.83958435058594,26.37958335876476],[-81.85402679443358,26.44375038146984],[-81.93569183349604,26.455972671508903],[-82.0115280151366,26.483472824096733],[-82.06402587890625,26.567083358764762],[-82.04680633544916,26.609029769897575],[-82.08125305175781,26.665416717529354],[-82.08374786376953,26.709028244018725],[-82.06124877929688,26.767915725708004],[-82.05625152587879,26.86791610717773],[-82.09708404541016,26.915138244628963],[-82.09986114501953,26.953472137451286],[-82.15374755859375,26.92430686950695],[-82.1826400756836,26.925416946411303],[-82.15680694580078,26.85652732849144],[-82.14847564697254,26.788473129272518],[-82.21485900878906,26.798194885253906],[-82.301528930664,26.841527938842887],[-82.31819152832026,26.892639160156307],[-82.37930297851562,26.97819519042963],[-82.39569091796875,26.98263740539568],[-82.44444274902344,27.05750083923357],[-82.50833129882812,27.237222671508903],[-82.5411148071289,27.27000045776373],[-82.54207611083984,27.331666946411076],[-82.57386016845703,27.405267715454215],[-82.62944793701172,27.431667327880803],[-82.68833160400385,27.490833282470703],[-82.66422271728504,27.52277755737333],[-82.60301971435547,27.52532386779785],[-82.60333251953124,27.58416748046892],[-82.51805877685545,27.696113586425724],[-82.47312927246094,27.71929359436035],[-82.47250366210932,27.749443054199276],[-82.39583587646479,27.814720153808707],[-82.40252685546868,27.88205718994152],[-82.4622192382812,27.909721374511832],[-82.48735809326172,27.862689971923942],[-82.48110961914057,27.820833206176815],[-82.53666687011719,27.834445953369254],[-82.53333282470703,27.93861389160179],[-82.5538864135742,27.96666526794462],[-82.59333038330072,27.978610992431697],[-82.66546630859375,28.028528213501033],[-82.71056365966791,27.928812026977653],[-82.65499877929688,27.91083335876459],[-82.60820007324219,27.873386383056754],[-82.58721923828125,27.818889617919922],[-82.62194824218744,27.788610458374023],[-82.62472534179682,27.729999542236328],[-82.65207672119135,27.699239730835018],[-82.69091033935541,27.710550308227596],[-82.75138854980457,27.771390914917106],[-82.76860809326172,27.80166625976585],[-82.832534790039,27.83543205261236],[-82.8489761352539,27.875537872314453],[-82.81416320800781,27.935556411743164],[-82.7958297729491,27.98916625976568],[-82.77861022949219,28.120832443237248],[-82.79885864257807,28.184537887573185],[-82.76455688476561,28.214445114135856],[-82.73147583007812,28.324895858764762],[-82.70222473144531,28.375555038452205],[-82.707778930664,28.402778625488395],[-82.66663360595702,28.45120239257824],[-82.66783142089838,28.52828407287626],[-82.64644622802729,28.562887191772514],[-82.66592407226557,28.66609764099132],[-82.63589477539051,28.697044372558704],[-82.69361114501953,28.721666336059624],[-82.6563262939453,28.74718666076683],[-82.68564605712884,28.79355239868164],[-82.73091125488281,28.836986541748164],[-82.70985412597656,28.873872756958068],[-82.67861175537104,28.87222480773937],[-82.64861297607422,28.913333892822262],[-82.70926666259766,28.935716629028434],[-82.76361083984374,29.003334045410213],[-82.7441635131836,29.025554656982475],[-82.77694702148426,29.073610305786246],[-82.80833435058594,29.077777862549055],[-82.80313110351562,29.143190383911186],[-82.85361480712885,29.164442062377987],[-83.02361297607422,29.17000007629395],[-83.07111358642578,29.191667556762805],[-83.07135009765625,29.248714447021538],[-83.16822052001947,29.30635261535639],[-83.21826934814447,29.419702529907227],[-83.26869201660156,29.43045234680181],[-83.35555267333984,29.499721527099663],[-83.39756774902338,29.51854705810558],[-83.4084396362304,29.59233093261724],[-83.40567016601557,29.653249740600582],[-83.43329620361328,29.677825927734485],[-83.48227691650385,29.69112014770525],[-83.53385925292963,29.721445083618164],[-83.5782852172851,29.767953872680664],[-83.586669921875,29.819999694824215],[-83.63706207275379,29.884033203124943],[-83.68118286132807,29.922294616699276],[-83.79114532470697,29.980447769165036],[-83.82527923583984,29.9852752685548],[-83.9327774047851,30.04027557373047],[-84.00277709960932,30.100276947021484],[-84.13166809082031,30.092500686645792],[-84.27500152587889,30.09333419799816],[-84.28607177734375,30.058645248413367],[-84.33944702148425,30.07416725158697],[-84.37750244140625,30.00916671752935],[-84.33918762207031,29.94748115539573],[-84.34222412109375,29.901111602783143],[-84.44548797607416,29.929700851440487],[-84.4911117553711,29.910278320312557],[-84.5352783203125,29.909166336059627],[-84.73418426513672,29.805259704589787],[-84.75696563720692,29.788038253784293],[-84.86557769775385,29.744047164916992],[-84.90431213378906,29.786315917968803],[-84.93638610839842,29.75027847290039],[-84.99055480957031,29.715000152587887],[-85.10250091552734,29.71861076354992],[-85.24081420898438,29.689567565918026],[-85.31315612792969,29.687715530395565],[-85.30278015136719,29.8083324432373],[-85.366943359375,29.9022216796875],[-85.42805480957026,29.950317382812553],[-85.47499847412108,29.95630645751965],[-85.49283599853514,29.984508514404293],[-85.57749938964838,30.0508327484132],[-85.67055511474602,30.10472488403326],[-85.67111206054688,30.14138793945312],[-85.6033325195312,30.091388702392635],[-85.53805541992188,30.080278396606502],[-85.5394439697265,30.127220153808533],[-85.60388946533197,30.114166259765685],[-85.70083618164062,30.165277481079098],[-85.71639251708984,30.19416618347168],[-85.68000030517571,30.248888015747127],[-85.76305389404291,30.30194473266607],[-85.84583282470696,30.275554656982425],[-85.84944152832031,30.232778549194393],[-85.79972076416016,30.253057479858338],[-85.741943359375,30.214721679687614],[-85.7533340454101,30.177221298218],[-85.70999908447266,30.146387100219723],[-85.7341690063476,30.12222290039074],[-85.77555847167962,30.156665802002063],[-85.9263916015625,30.240276336669922],[-86.08499908447266,30.302795410156303],[-86.24944305419916,30.351408004760795],[-86.33305358886719,30.370277404785156],[-86.24805450439453,30.428611755371094],[-86.15831756591797,30.380256652832085],[-86.11886596679688,30.379148483276538],[-86.12387084960938,30.416925430297912],[-86.20500183105463,30.476406097412106],[-86.25499725341786,30.486686706543026],[-86.42222595214844,30.45224189758312],[-86.4438858032226,30.483907699584964],[-86.58444213867188,30.434165954589847],[-86.60472106933592,30.40111160278326],[-86.7202758789062,30.41083335876465],[-86.82055664062499,30.407499313354773],[-86.949722290039,30.395277023315487],[-87.10597991943358,30.370470046997237],[-87.0848159790039,30.3994197845459],[-87.01474761962889,30.40338516235374],[-86.93638610839838,30.45444679260254],[-87.01808929443354,30.505195617675835],[-87.0677261352539,30.447778701782457],[-87.10246276855469,30.44535064697277],[-87.09802246093744,30.515792846679684],[-87.15878295898432,30.580459594726566],[-87.18436431884764,30.5265674591065],[-87.15249633789051,30.489721298217887],[-87.17863464355469,30.423088073730465],[-87.2450027465819,30.398611068725586],[-87.32033538818354,30.332887649536076],[-87.38698577880854,30.323280334472766],[-87.42916870117188,30.389997482299915],[-87.34833526611328,30.42194366455078],[-87.35861206054688,30.454168319702376],[-87.40110778808588,30.454168319702376],[-87.43598175048828,30.483200073242188],[-87.44822692871088,30.518020629882923],[-87.39742279052734,30.61063957214367],[-87.40706634521483,30.67308998107916],[-87.46852874755852,30.701368331909233],[-87.53276062011719,30.744739532470877],[-87.54714965820312,30.779718399048136],[-87.63722991943354,30.867040634155213],[-87.59046936035156,30.965362548828125],[-87.60121154785155,31.00036048889166],[-87.21276855468737,31.000719070434798],[-86.77204895019524,31.00000953674322],[-86.70160675048828,30.99559020996105],[-86.43486022949207,30.99431037902843],[-85.80584716796875,30.99451065063482],[-85.49175262451166,30.996650695800785],[-85.37808227539057,31.000280380249084],[-85.0035171508789,31.002109527587947],[-85.0034561157226,30.977890014648548],[-84.9376602172851,30.888378143310543],[-84.93704223632812,30.832830429077205],[-84.91644287109374,30.754199981689506],[-84.86650848388666,30.71162986755371],[-84.28105163574213,30.686340332031477],[-83.95214843749994,30.670869827270447],[-83.3015518188476,30.63228034973173],[-82.69378662109364,30.597801208496094],[-82.22128295898438,30.568700790405387],[-82.24001312255854,30.53873062133783],[-82.20160675048828,30.47500038146973],[-82.20789337158202,30.416320800781534],[-82.16179656982416,30.359058380126896],[-82.10443115234375,30.366781234741207],[-82.06710815429682,30.35713005065924],[-82.02073669433594,30.4724502563476],[-82.01039123535155,30.583021163940543],[-82.05146026611322,30.657659530639645],[-82.04178619384766,30.750761032104716],[-81.9760971069336,30.778360366821346],[-81.94033813476562,30.828460693359432],[-81.88157653808594,30.802589416504016],[-81.79400634765625,30.784500122070256],[-81.72054290771479,30.746891021728516],[-81.65260314941406,30.744270324707028],[-81.56159210205077,30.716159820556637],[-81.501480102539,30.728580474853516]]]]},"properties":{"ID_0":244,"ISO":"US-FL","NAME_0":"United States","ID_1":10,"NAME_1":"Florida","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"FL|Fla."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-81.34130859375,31.29382705688488],[-81.3365859985351,31.24535942077642],[-81.31055450439447,31.215000152587947],[-81.38811492919922,31.134208679199272],[-81.41416931152344,31.139722824096733],[-81.41805267333972,31.189443588256836],[-81.37351989746082,31.299337387085014],[-81.34130859375,31.29382705688488]]],[[[-81.37881469726562,31.313558578491378],[-81.31694793701166,31.30777740478521],[-81.27058410644526,31.25894165039068],[-81.29541015624989,31.21582984924316],[-81.32569122314453,31.244155883789176],[-81.31703948974602,31.286031723022575],[-81.37881469726562,31.313558578491378]]],[[[-81.19666290283202,31.536945343017635],[-81.17778015136719,31.514722824096793],[-81.2794418334961,31.378334045410213],[-81.3077774047851,31.4233341217041],[-81.29444122314447,31.487777709960934],[-81.25971984863274,31.497777938842887],[-81.2372207641601,31.529443740844783],[-81.19666290283202,31.536945343017635]]],[[[-81.1280517578125,31.850555419921875],[-81.03388977050776,31.813888549804627],[-81.07027435302733,31.76833343505859],[-81.1386108398437,31.719999313354435],[-81.17424774169922,31.81726264953619],[-81.1280517578125,31.850555419921875]]],[[[-80.85972595214844,31.9983310699464],[-80.86416625976562,31.970277786254936],[-80.9259414672851,31.941579818725867],[-80.92694091796875,31.9927787780764],[-80.87722015380854,31.99111175537109],[-80.85972595214844,31.9983310699464]]],[[[-81.01222229003905,32.073333740234375],[-80.92451477050776,32.00910186767584],[-80.93250274658197,31.99111175537109],[-80.93000030517578,31.971666336059684],[-81.0008316040039,31.9555549621582],[-80.99695587158203,31.99205207824718],[-81.02333068847645,32.02388763427729],[-81.04694366455072,32.026390075683594],[-81.0455551147461,32.03610992431658],[-81.0391159057617,32.045043945312614],[-81.02833557128906,32.04972076416021],[-81.02833557128906,32.06277847290061],[-81.01222229003905,32.073333740234375]]],[[[-80.97160339355463,32.07407760620122],[-80.99583435058588,32.064445495605526],[-81.01136779785156,32.07463073730463],[-81.02123260498036,32.07039642333996],[-81.02899169921875,32.063816070556754],[-81.03200531005848,32.05845260620145],[-81.03128051757812,32.05092239379883],[-81.04222106933594,32.04583358764654],[-81.04966735839844,32.0291633605957],[-81.04631805419922,32.02412033081083],[-81.03277587890625,32.01889038085949],[-81.02416992187494,32.01944351196289],[-81.00472259521477,31.99861145019537],[-81.01416778564446,31.965555191040153],[-80.973892211914,31.912778854370398],[-81.05722045898438,31.87805557250988],[-81.1734848022461,31.84024620056158],[-81.20265197753906,31.787746429443416],[-81.17597961425776,31.773580551147575],[-81.17166900634766,31.727222442626953],[-81.14521026611317,31.698974609375053],[-81.12977600097656,31.63079261779796],[-81.16592407226562,31.563375473022575],[-81.19055175781249,31.573335647583065],[-81.23139190673822,31.549722671508903],[-81.29194641113276,31.495277404785213],[-81.328887939453,31.479444503784293],[-81.32605743408203,31.456237792968864],[-81.37066650390625,31.42959976196317],[-81.33499908447266,31.390832901001257],[-81.33222198486315,31.332223892211967],[-81.37166595458984,31.338054656982536],[-81.40169525146484,31.303581237793022],[-81.38866424560541,31.28318214416504],[-81.42276000976562,31.246707916259883],[-81.46305847167963,31.177221298217773],[-81.43527984619135,31.13388824462902],[-81.46694183349604,31.092222213745178],[-81.43277740478516,31.080556869506893],[-81.425552368164,31.048612594604432],[-81.48374176025385,31.037820816040153],[-81.46060180664062,30.998916625976562],[-81.50853729248041,30.977500915527454],[-81.46903228759766,30.922718048095707],[-81.43250274658203,30.93611145019543],[-81.40416717529297,30.91583251953131],[-81.42601776123047,30.84491539001459],[-81.45361328124994,30.794721603393665],[-81.46055603027338,30.752500534057674],[-81.501480102539,30.728580474853516],[-81.56159210205077,30.716159820556637],[-81.65260314941406,30.744270324707028],[-81.72054290771479,30.746891021728516],[-81.79400634765625,30.784500122070256],[-81.88157653808594,30.802589416504016],[-81.94033813476562,30.828460693359432],[-81.9760971069336,30.778360366821346],[-82.04178619384766,30.750761032104716],[-82.05146026611322,30.657659530639645],[-82.01039123535155,30.583021163940543],[-82.02073669433594,30.4724502563476],[-82.06710815429682,30.35713005065924],[-82.10443115234375,30.366781234741207],[-82.16179656982416,30.359058380126896],[-82.20789337158202,30.416320800781534],[-82.20160675048828,30.47500038146973],[-82.24001312255854,30.53873062133783],[-82.22128295898438,30.568700790405387],[-82.69378662109364,30.597801208496094],[-83.3015518188476,30.63228034973173],[-83.95214843749994,30.670869827270447],[-84.28105163574213,30.686340332031477],[-84.86650848388666,30.71162986755371],[-84.91644287109374,30.754199981689506],[-84.93704223632812,30.832830429077205],[-84.9376602172851,30.888378143310543],[-85.0034561157226,30.977890014648548],[-85.0035171508789,31.002109527587947],[-85.04036712646477,31.109710693359542],[-85.10994720458984,31.1935310363769],[-85.10074615478509,31.23040008544933],[-85.11733245849604,31.274070739746204],[-85.08750915527332,31.322122573852592],[-85.09623718261717,31.366870880127063],[-85.07035827636719,31.436840057373104],[-85.07000732421874,31.48705101013189],[-85.04544067382807,31.54432106018072],[-85.06743621826172,31.626979827880913],[-85.12568664550781,31.694789886474776],[-85.12269592285145,31.734119415283203],[-85.14354705810541,31.838380813598633],[-85.11747741699219,31.91240119934082],[-85.08621978759766,31.94074058532715],[-85.05970764160156,32.01898956298828],[-85.064453125,32.13151931762707],[-84.98010253906244,32.21337890625006],[-84.92946624755854,32.22145843505871],[-84.89586639404297,32.26670074462885],[-84.94641876220703,32.30226135253912],[-84.99973297119135,32.322341918945426],[-84.98240661621088,32.40573883056635],[-85.00055694580078,32.50735092163086],[-85.07843780517572,32.59378051757824],[-85.09144592285156,32.65816879272472],[-85.11252593994139,32.68983078002941],[-85.12526702880854,32.77886962890625],[-85.16927337646484,32.81174087524414],[-85.1902770996093,32.88056182861334],[-85.22454071044916,33.06932067871111],[-85.26397705078125,33.26203155517584],[-85.3737564086914,33.83765029907238],[-85.44935607910156,34.21974945068365],[-85.57299804687493,34.80289077758795],[-85.6055068969726,34.98553085327142],[-85.341796875,34.983901977539006],[-85.15265655517578,34.987590789795036],[-84.63743591308588,34.99055099487305],[-84.32096862792969,34.989040374755916],[-83.92658233642572,34.98746109008789],[-83.62158966064447,34.98707962036132],[-83.62129974365229,34.991630554199276],[-83.10518646240229,35.002040863037166],[-83.12098693847656,34.935989379882926],[-83.1571273803711,34.93120193481445],[-83.24946594238276,34.868099212646484],[-83.32113647460936,34.791290283203125],[-83.31874084472656,34.759410858154354],[-83.3543472290039,34.72204971313482],[-83.3403091430664,34.68120956420904],[-83.30577087402342,34.67078018188488],[-83.23204803466797,34.61494064331055],[-83.1658935546875,34.606731414794865],[-83.08190917968744,34.51549148559576],[-83.00496673583972,34.47412109375],[-82.90898895263672,34.48638916015631],[-82.86119842529297,34.453800201416016],[-82.83175659179682,34.36454010009776],[-82.8000869750976,34.34313964843756],[-82.75189971923828,34.27260971069336],[-82.74201965332024,34.213420867920036],[-82.7173233032226,34.152111053466854],[-82.67639923095697,34.128421783447266],[-82.64351654052729,34.07118988037121],[-82.59947967529295,34.033641815185604],[-82.56704711914062,33.96025085449219],[-82.51386260986327,33.93914031982427],[-82.42810821533203,33.86927032470703],[-82.39405059814453,33.86035919189459],[-82.30520629882812,33.80398941040039],[-82.25073242187499,33.75241088867193],[-82.23490142822266,33.703048706054744],[-82.20197296142567,33.67016983032238],[-82.19534301757812,33.63183975219738],[-82.1444473266601,33.59555053710932],[-82.10707855224602,33.598049163818416],[-82.01187133789057,33.531261444091854],[-81.98615264892571,33.487548828125114],[-81.93141937255848,33.46707916259771],[-81.9140167236328,33.44359970092785],[-81.94261169433592,33.40880966186529],[-81.91983795166016,33.33572006225586],[-81.83669281005854,33.27439880371094],[-81.85147094726557,33.24932098388683],[-81.80722045898432,33.2150611877442],[-81.76786041259754,33.21591186523443],[-81.75895690917963,33.155719757080135],[-81.7210693359375,33.125728607177734],[-81.6466064453125,33.09365844726568],[-81.61418151855469,33.095310211181754],[-81.56463623046864,33.04906845092796],[-81.51138305664055,33.026649475097656],[-81.49122619628906,32.99359130859369],[-81.50157928466791,32.936889648437614],[-81.45783233642578,32.85100173950207],[-81.42125701904295,32.83441925048834],[-81.42806243896479,32.78649139404296],[-81.40851593017567,32.756649017333984],[-81.41419982910155,32.71479034423828],[-81.39422607421875,32.65258026123047],[-81.41751861572266,32.631721496582145],[-81.38025665283196,32.59091186523449],[-81.32314300537104,32.563720703125],[-81.27886962890625,32.55788040161133],[-81.27002716064446,32.53335952758795],[-81.19062805175781,32.45779037475609],[-81.20572662353516,32.43519210815441],[-81.17884063720697,32.38148880004883],[-81.12291717529297,32.30223083496094],[-81.15537261962889,32.240268707275504],[-81.11042785644531,32.173408508300895],[-81.11342620849602,32.114349365234375],[-81.05835723876953,32.08771896362305],[-81.00077819824219,32.098079681396534],[-80.97160339355463,32.07407760620122]]]]},"properties":{"ID_0":244,"ISO":"US-GA","NAME_0":"United States","ID_1":11,"NAME_1":"Georgia","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"GA|Ga."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-155.8499755859375,20.26799964904779],[-155.74346923828128,20.22883033752447],[-155.73027038574213,20.202236175537053],[-155.65138244628895,20.164722442626953],[-155.58685302734375,20.11893081665039],[-155.55610656738278,20.128889083862305],[-155.40408325195307,20.076633453369197],[-155.27925109863278,20.018821716308707],[-155.1566619873047,19.931943893432674],[-155.0894470214843,19.86249923706066],[-155.08999633789062,19.734165191650504],[-155.00389099121097,19.73722267150879],[-154.97778320312494,19.684722900390625],[-154.9800109863281,19.637643814086914],[-154.90306091308594,19.56888961791998],[-154.81111145019526,19.526111602783203],[-154.82139587402338,19.475555419921932],[-154.97250366210938,19.34888839721674],[-155.07095336914057,19.311277389526424],[-155.13053894042972,19.272815704345703],[-155.20666503906244,19.25620460510254],[-155.26307678222656,19.270912170410213],[-155.29359436035156,19.263383865356555],[-155.3580322265624,19.20538330078125],[-155.42353820800776,19.17698478698736],[-155.45018005371094,19.148740768432674],[-155.50466918945315,19.134767532348686],[-155.54348754882807,19.085136413574276],[-155.55157470703125,19.052028656005916],[-155.6380615234375,18.934722900390625],[-155.6863861083984,18.937221527099666],[-155.79527282714838,19.00416755676281],[-155.88194274902347,19.036388397216854],[-155.91888427734372,19.114999771118107],[-155.90167236328125,19.24805641174322],[-155.88471984863276,19.332223892212028],[-155.92611694335932,19.460832595825195],[-155.96000671386716,19.513610839843746],[-155.9752960205078,19.604625701904407],[-156.02806091308585,19.670833587646595],[-156.06195068359372,19.727777481079215],[-156.05027770996088,19.774446487426815],[-155.95832824707034,19.85305404663086],[-155.935562133789,19.850000381469783],[-155.8899993896484,19.92916679382324],[-155.83305358886716,19.977779388427734],[-155.8240051269531,20.02692031860363],[-155.8800048828125,20.102777481079215],[-155.89604187011716,20.142921447753963],[-155.90333557128903,20.21249961853033],[-155.88806152343744,20.251667022705078],[-155.8499755859375,20.26799964904779]]],[[[-156.57305908203125,20.604444503784237],[-156.5391082763672,20.576652526855522],[-156.5845336914062,20.50846481323248],[-156.6204223632812,20.515682220458984],[-156.67250061035153,20.500833511352653],[-156.69860839843747,20.533611297607422],[-156.67443847656247,20.556943893432674],[-156.57305908203125,20.604444503784237]]],[[[-156.98101806640625,20.927368164062496],[-156.89349365234375,20.911701202392635],[-156.8377380371093,20.86478805541998],[-156.8059692382812,20.82155227661127],[-156.83531188964844,20.76053810119629],[-156.88945007324216,20.734443664550895],[-156.9638824462891,20.730831146240234],[-156.98818969726562,20.779018402099553],[-156.9969482421875,20.839723587036186],[-157.052505493164,20.872777938842773],[-157.0579223632812,20.909042358398438],[-156.98101806640625,20.927368164062496]]],[[[-156.6020050048827,21.031440734863395],[-156.55735778808588,21.011579513549748],[-156.473892211914,20.890832901001033],[-156.38360595703122,20.91610908508295],[-156.32943725585935,20.94555473327648],[-156.2386169433594,20.934999465942326],[-156.16638183593747,20.8624992370606],[-156.13027954101562,20.857778549194393],[-156.11041259765625,20.825876235962028],[-156.00027465820312,20.792222976684627],[-155.9824981689452,20.722778320312557],[-156.0449981689453,20.653055191040153],[-156.11077880859372,20.639612197875977],[-156.14027404785156,20.617776870727653],[-156.1900482177734,20.628345489501896],[-156.29804992675776,20.582220077514762],[-156.3767395019531,20.57512855529785],[-156.44139099121088,20.604999542236385],[-156.4478149414062,20.721292495727596],[-156.46310424804688,20.781156539917106],[-156.50122070312494,20.796543121338004],[-156.53831481933588,20.774984359741264],[-156.62028503417963,20.806943893432617],[-156.68705749511713,20.88204574584961],[-156.69250488281244,20.947223663330192],[-156.66333007812494,21.004444122314567],[-156.6020050048827,21.031440734863395]]],[[[-157.25416564941406,21.224485397338867],[-157.18745422363276,21.20293807983404],[-157.0652313232422,21.19520950317377],[-156.99795532226554,21.179031372070426],[-156.97055053710935,21.21583557128912],[-156.9432678222656,21.172735214233512],[-156.86604309082026,21.161346435546818],[-156.8011169433593,21.17515373229986],[-156.74513244628898,21.17407035827648],[-156.71092224121088,21.147928237915096],[-156.7483367919922,21.10305595397955],[-156.80206298828116,21.066833496093807],[-156.87399291992176,21.046594619750977],[-156.97819519042963,21.070430755615348],[-157.03546142578122,21.094898223876953],[-157.0946044921875,21.102476119995174],[-157.14884948730466,21.09117507934576],[-157.24867248535148,21.086830139160153],[-157.29830932617188,21.09283638000494],[-157.29194641113284,21.1427783966065],[-157.25079345703122,21.177490234375053],[-157.25416564941406,21.224485397338867]]],[[[-157.98333740234375,21.711111068725643],[-157.94444274902344,21.686986923217773],[-157.92066955566403,21.62626838684082],[-157.83380126953125,21.526454925537223],[-157.8499450683594,21.509996414184624],[-157.840087890625,21.460025787353572],[-157.7867889404297,21.41409873962408],[-157.74266052246088,21.41182899475092],[-157.7055969238281,21.377317428588924],[-157.70391845703125,21.347293853759822],[-157.6510772705078,21.298845291137752],[-157.7074432373047,21.2589569091798],[-157.7427825927734,21.279720306396484],[-157.79611206054685,21.256776809692383],[-157.8622283935547,21.290832519531364],[-157.89945983886713,21.326887130737305],[-157.94848632812491,21.303470611572322],[-157.97055053710938,21.322500228881836],[-158.0314788818359,21.303848266601562],[-158.10313415527344,21.294956207275334],[-158.1423187255859,21.377204895019645],[-158.18013000488276,21.405370712280327],[-158.19111633300776,21.44666671752935],[-158.23167419433594,21.482500076294002],[-158.24075317382812,21.581401824951286],[-158.12982177734375,21.582038879394588],[-158.07666015624994,21.62555503845209],[-158.06111145019526,21.655555725097656],[-157.98333740234375,21.711111068725643]]],[[[-160.08860778808588,22.006111145019474],[-160.06860351562497,21.967775344848746],[-160.06719970703122,21.893495559692383],[-160.16111755371088,21.86138916015625],[-160.2024993896484,21.78805541992199],[-160.24694824218747,21.814510345459098],[-160.2294464111328,21.88555335998541],[-160.162612915039,21.940231323242244],[-160.1298828125,21.950317382812557],[-160.08860778808588,22.006111145019474]]],[[[-159.40388488769526,22.235828399658317],[-159.3498382568359,22.214864730835075],[-159.31227111816403,22.182897567749023],[-159.29449462890616,22.14598274230957],[-159.29678344726557,22.104290008544922],[-159.33476257324216,22.049182891845703],[-159.33193969726562,21.95750045776373],[-159.418472290039,21.88267517089855],[-159.45126342773432,21.87254333496105],[-159.55200195312497,21.887086868286246],[-159.63389587402338,21.91250038146984],[-159.6738891601562,21.955871582031307],[-159.75639343261716,21.97861099243164],[-159.78558349609375,22.014711380004996],[-159.78578186035153,22.061866760253906],[-159.74598693847653,22.09675216674816],[-159.72303771972653,22.152673721313477],[-159.64411926269526,22.180755615234432],[-159.58129882812497,22.223344802856502],[-159.53967285156244,22.21302604675293],[-159.47772216796872,22.230653762817326],[-159.40388488769526,22.235828399658317]]]]},"properties":{"ID_0":244,"ISO":"US-HI","NAME_0":"United States","ID_1":12,"NAME_1":"Hawaii","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"HI|Hawaii"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-111.0487289428711,44.4772300720216],[-111.04792022705072,44.13510894775396],[-111.04548645019531,43.72747039794927],[-111.04361724853514,43.313579559326115],[-111.04464721679688,42.78892135620117],[-111.04721069335936,42.425991058349666],[-111.04627990722656,42.00048065185546],[-111.44790649414057,42.00119018554698],[-111.5833129882812,42.00419998168945],[-111.94718170166016,41.999179840088004],[-112.16398620605469,42.00170898437506],[-112.65870666503895,41.99991989135748],[-113.151611328125,41.99660873413086],[-113.8321914672851,41.99040985107422],[-114.04038238525385,41.99338150024414],[-114.59839630126953,41.99534988403326],[-114.85457611083984,42.000251770019645],[-115.22638702392578,41.99446105957037],[-115.99278259277342,41.99637985229492],[-116.43517303466797,41.99805068969738],[-117.02926635742182,42.00030899047857],[-117.02803802490229,42.62831878662121],[-117.02799224853516,43.031379699707145],[-117.027587890625,43.56449890136713],[-117.02704620361328,43.80686950683605],[-117.0323028564453,43.829761505126946],[-116.98259735107422,43.8668785095216],[-116.9619903564453,43.91259002685541],[-116.97589111328114,43.9658203125],[-116.9359970092773,43.99164199829096],[-116.93847656249993,44.03417968750006],[-116.96887207031249,44.087291717529354],[-116.91957092285156,44.107582092285156],[-116.8932418823242,44.15930175781256],[-116.9663619995117,44.19636917114258],[-116.97283172607416,44.239170074463004],[-117.09243011474597,44.271839141845646],[-117.18097686767578,44.26435089111328],[-117.21711730957031,44.30352020263677],[-117.19207000732416,44.3441619873048],[-117.23731231689453,44.3966522216798],[-117.21296691894526,44.42815017700201],[-117.2239990234375,44.47993087768549],[-117.14733886718744,44.53520202636719],[-117.14137268066406,44.56996917724615],[-117.06185150146483,44.70809173583995],[-117.02852630615227,44.75107955932623],[-116.93521118164064,44.78303146362305],[-116.92706298828112,44.80733871459966],[-116.85518646240234,44.88161087036127],[-116.83304595947266,44.93862152099615],[-116.85294342041011,44.97930145263677],[-116.84127044677734,45.028678894043026],[-116.79583740234364,45.060630798339844],[-116.78071594238281,45.09701156616211],[-116.72841644287098,45.1450309753418],[-116.66703796386717,45.327098846435604],[-116.58493804931642,45.44142913818365],[-116.55047607421875,45.469669342041016],[-116.55211639404295,45.505729675293026],[-116.52025604248047,45.55532073974615],[-116.46163940429682,45.609310150146484],[-116.53412628173822,45.692520141601506],[-116.53446960449219,45.73492050170909],[-116.59236145019533,45.779312133789],[-116.66234588623047,45.781181335449325],[-116.69354248046874,45.81795120239258],[-116.78734588623041,45.832050323486264],[-116.78896331787102,45.85863876342779],[-116.865966796875,45.91519927978521],[-116.91250610351561,45.99723052978521],[-116.94528198242176,46.06666946411132],[-116.97305297851561,46.07818984985357],[-116.92176818847656,46.17113876342785],[-116.96367645263665,46.206371307373104],[-116.96131896972656,46.24880218505865],[-116.98697662353514,46.2957115173341],[-117.06054687499994,46.36286926269537],[-117.0379867553711,46.42877960205078],[-117.04013061523436,46.859722137451115],[-117.04223632812493,47.36647033691406],[-117.04263305664057,48.04587936401378],[-117.03907012939453,48.59041976928722],[-117.02943420410156,48.99961471557617],[-116.0507202148437,49.00037384033209],[-116.04956054687494,48.61183166503912],[-116.04709625244134,47.97301101684582],[-116.02147674560547,47.96451187133789],[-115.90030670166009,47.84254074096691],[-115.84829711914062,47.81541061401373],[-115.83143615722658,47.7523193359375],[-115.72399902343744,47.696281433105526],[-115.7278594970703,47.64252853393555],[-115.68984222412104,47.592601776123104],[-115.75248718261713,47.55353164672857],[-115.70553588867186,47.53404998779308],[-115.68971252441406,47.48748016357433],[-115.7047271728515,47.45449066162121],[-115.75197601318361,47.436679840088004],[-115.60431671142565,47.37866210937499],[-115.55426788330078,47.34683990478521],[-115.50293731689446,47.28733062744146],[-115.40880584716791,47.265338897705135],[-115.32601165771479,47.260028839111435],[-115.2931060791015,47.22064208984386],[-115.29631042480469,47.18864059448248],[-115.18415832519531,47.1279792785645],[-115.10897827148425,47.053329467773494],[-115.08354949951172,47.04393005371094],[-115.04988098144531,46.970748901367244],[-115.0145416259765,46.97518920898449],[-114.92325592041016,46.91519927978515],[-114.9432373046875,46.85945129394531],[-114.88899993896484,46.80926895141607],[-114.76790618896484,46.760261535644474],[-114.78440856933588,46.709308624267635],[-114.75325012207026,46.69955062866211],[-114.6940689086914,46.73913955688488],[-114.62938690185547,46.713420867920036],[-114.64138031005854,46.66588973999035],[-114.59097290039062,46.63652038574219],[-114.5419464111328,46.65205001831055],[-114.46794128417969,46.63304901123046],[-114.43216705322264,46.66014099121094],[-114.33091735839844,46.65861129760748],[-114.3250732421875,46.611099243164006],[-114.34458160400384,46.51733016967785],[-114.40328979492186,46.498908996582145],[-114.38157653808588,46.460391998291016],[-114.3924713134765,46.411220550537166],[-114.41900634765625,46.392768859863274],[-114.41536712646479,46.338520050048885],[-114.45215606689447,46.239139556884766],[-114.4468765258789,46.17393112182622],[-114.50419616699219,46.16942977905285],[-114.52436065673822,46.14707946777344],[-114.4602661132812,46.094451904296875],[-114.49426269531249,46.05138015747081],[-114.48750305175781,46.00328063964843],[-114.4269561767578,45.98537063598644],[-114.43171691894531,45.93975067138672],[-114.38598632812494,45.88628005981445],[-114.51315307617186,45.84299087524419],[-114.56553649902344,45.77730941772455],[-114.50074005126952,45.71800994873052],[-114.50997161865229,45.65647888183588],[-114.56237030029297,45.638771057128906],[-114.53904724121088,45.61233901977539],[-114.55738830566406,45.5707893371582],[-114.46774291992188,45.564689636230575],[-114.42681121826166,45.513469696045036],[-114.3684463500976,45.4918098449707],[-114.34059906005852,45.45949172973644],[-114.27153778076166,45.48403930664074],[-114.22936248779297,45.547359466552784],[-114.2017593383789,45.535438537597706],[-114.14068603515618,45.5566520690918],[-114.08351135253906,45.59706115722662],[-114.06456756591797,45.62884140014654],[-114.01467132568358,45.658760070800724],[-113.98562622070307,45.704719543457145],[-113.8983764648437,45.64971923828131],[-113.90670776367188,45.624568939208984],[-113.81862640380854,45.61006927490245],[-113.79740142822266,45.583091735839844],[-113.8338623046875,45.51961898803705],[-113.77310180664061,45.52172088623052],[-113.75855255126947,45.48418045043945],[-113.78024291992188,45.45209121704112],[-113.7335968017578,45.3900718688966],[-113.73848724365234,45.33082962036133],[-113.68772125244129,45.28544998168945],[-113.6874160766601,45.25794219970709],[-113.59056854248047,45.18058013916026],[-113.55175018310547,45.112850189208984],[-113.48876190185541,45.06468200683593],[-113.45484161376953,45.05990219116222],[-113.43859863281244,45.00783920288097],[-113.4488906860351,44.9556007385255],[-113.49172210693354,44.925960540771534],[-113.45603942871087,44.869979858398494],[-113.38710784912104,44.8386802673341],[-113.3285675048827,44.78882217407232],[-113.24751281738281,44.822879791259766],[-113.13465118408197,44.7754020690918],[-113.05252075195311,44.62907028198253],[-113.08577728271484,44.60416030883789],[-113.00942993164057,44.527019500732536],[-113.02422332763666,44.49374008178716],[-112.97856140136712,44.43222045898443],[-112.904556274414,44.39897155761719],[-112.85076141357416,44.358100891113395],[-112.81443023681634,44.39477920532232],[-112.83776092529295,44.42301940917969],[-112.78270721435547,44.48299026489258],[-112.71492767333984,44.505580902099666],[-112.66506958007807,44.48810195922862],[-112.54226684570312,44.48559951782238],[-112.50125122070301,44.464931488037166],[-112.4668884277343,44.478900909423885],[-112.3834228515625,44.449279785156364],[-112.35578155517572,44.53300094604492],[-112.2862319946289,44.569118499755916],[-112.22392272949207,44.544868469238224],[-112.11444091796864,44.52539062500011],[-112.03589630126953,44.544330596923885],[-111.97585296630854,44.53910064697277],[-111.94825744628906,44.55696105957037],[-111.86934661865223,44.56618881225585],[-111.84430694580077,44.52912139892584],[-111.76660156249994,44.528011322021484],[-111.70124816894531,44.5586509704591],[-111.61666107177734,44.549110412597656],[-111.50757598876953,44.562278747558594],[-111.52117156982422,44.61470031738281],[-111.47173309326165,44.66799926757818],[-111.4876480102539,44.703090667724545],[-111.3927612304687,44.750968933105526],[-111.33693695068358,44.731929779052734],[-111.25489044189447,44.65090179443371],[-111.22852325439453,44.580318450927734],[-111.1820602416992,44.5683708190919],[-111.13313293457031,44.53385925292968],[-111.11194610595703,44.490871429443416],[-111.0487289428711,44.4772300720216]]]},"properties":{"ID_0":244,"ISO":"US-ID","NAME_0":"United States","ID_1":13,"NAME_1":"Idaho","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"ID|Idaho"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-87.01808166503905,42.49470138549815],[-87.06904602050774,42.33909988403332],[-87.20712280273432,41.76071166992182],[-87.52404785156239,41.760330200195256],[-87.52703857421875,41.40859985351574],[-87.52645874023438,40.839031219482415],[-87.52536773681635,40.55047988891607],[-87.53270721435541,40.13093185424816],[-87.53233337402338,39.882061004638786],[-87.53044891357422,39.351600646972656],[-87.57672119140625,39.342601776123104],[-87.60780334472656,39.31155014038097],[-87.6032028198241,39.263801574706974],[-87.57639312744134,39.24391937255871],[-87.58949279785156,39.19784927368175],[-87.65379333496094,39.142559051513786],[-87.61947631835932,39.09043884277343],[-87.57070159912108,39.056171417236435],[-87.57653045654297,39.004501342773494],[-87.5130386352539,38.95421981811529],[-87.55047607421874,38.85950851440441],[-87.50128173828125,38.79159164428722],[-87.49707794189453,38.743129730224666],[-87.53692626953114,38.6829719543457],[-87.58724212646479,38.67108917236334],[-87.6193618774414,38.641170501708984],[-87.63979339599604,38.57936859130864],[-87.6691207885742,38.54399871826172],[-87.6475219726562,38.51745986938482],[-87.70867919921864,38.48107147216797],[-87.73805236816395,38.47935867309582],[-87.74624633789057,38.40816879272466],[-87.82787322998041,38.337520599365234],[-87.83355712890625,38.29339981079113],[-87.87655639648438,38.309780120849666],[-87.92427825927727,38.30047988891613],[-87.98320770263666,38.21788024902344],[-87.96599578857422,38.18716049194347],[-87.9149932861328,38.16028976440441],[-87.9655685424804,38.10161209106445],[-87.9696273803711,38.066188812255916],[-88.034439086914,38.03411102294933],[-88.00997924804688,37.97835159301752],[-88.03122711181639,37.96012878417963],[-88.01988983154295,37.89234161376959],[-88.0897369384765,37.89950942993169],[-88.06246185302727,37.85980224609369],[-88.02509307861322,37.8417320251466],[-88.0269927978515,37.79903030395519],[-88.0531158447265,37.744499206543026],[-88.118179321289,37.710460662841854],[-88.15672302246094,37.64839172363287],[-88.13345336914061,37.58359909057623],[-88.07356262207031,37.531661987304744],[-88.08501434326172,37.47761917114269],[-88.25930786132807,37.45746994018555],[-88.3714370727539,37.40737915039057],[-88.41169738769526,37.42591857910156],[-88.47416687011713,37.387088775634766],[-88.51333618164061,37.278999328613395],[-88.45018768310547,37.20624923706049],[-88.4276504516601,37.132869720458984],[-88.46586608886713,37.07706069946295],[-88.5160675048828,37.062679290771484],[-88.5527725219726,37.07126998901367],[-88.61308288574219,37.11203002929693],[-88.7339477539062,37.14297103881836],[-88.79541778564453,37.18193054199213],[-88.91517639160145,37.22357940673828],[-89.00711059570301,37.2231788635255],[-89.07966613769526,37.171749114990234],[-89.11241912841797,37.12289047241222],[-89.16459655761719,37.07664871215825],[-89.17986297607422,37.02735137939459],[-89.1338882446289,36.983871459960994],[-89.17191314697266,36.971309661865234],[-89.25036621093743,37.06333923339844],[-89.25860595703125,37.01903915405279],[-89.29093933105469,36.98950958251953],[-89.38477325439453,37.04539871215826],[-89.37856292724598,37.0941619873048],[-89.42121124267578,37.131698608398494],[-89.45791625976562,37.186901092529354],[-89.46540069580078,37.252639770507926],[-89.51802062988281,37.276660919189446],[-89.50981140136719,37.31307983398443],[-89.4426193237304,37.34225082397455],[-89.4242095947265,37.39405059814453],[-89.44420623779297,37.444339752197266],[-89.49256134033203,37.493350982666016],[-89.52201080322266,37.55828857421875],[-89.47628784179682,37.59352874755871],[-89.5158615112304,37.63887023925787],[-89.51522064208979,37.68917083740239],[-89.58212280273436,37.710449218750114],[-89.67066192626947,37.757499694824276],[-89.66256713867176,37.78924179077154],[-89.73972320556629,37.84666061401373],[-89.7960586547851,37.85887908935547],[-89.84182739257807,37.904430389404354],[-89.88656616210932,37.87683105468749],[-89.94937133789062,37.88224029541021],[-89.98267364501953,37.96065902709961],[-90.05265808105469,38.007930755615234],[-90.10891723632812,38.03078079223644],[-90.12670135498041,38.060611724853516],[-90.23059844970702,38.10490036010748],[-90.27091217041009,38.15587997436535],[-90.34976196289057,38.21408081054693],[-90.37303161621087,38.278018951416016],[-90.37238311767572,38.32244873046881],[-90.343505859375,38.387161254882926],[-90.29840850830078,38.42538070678722],[-90.25949096679688,38.53298187255865],[-90.1922607421875,38.602478027343864],[-90.1789474487304,38.63215255737316],[-90.21204376220696,38.72344207763683],[-90.115966796875,38.81048965454113],[-90.11405944824219,38.85079956054693],[-90.25535583496087,38.92240905761719],[-90.32347869873047,38.93149948120117],[-90.38276672363276,38.95951080322271],[-90.46972656249994,38.961410522460994],[-90.50617980957024,38.905330657958984],[-90.57279205322266,38.86922073364269],[-90.62252044677727,38.88901901245123],[-90.661148071289,38.928131103515625],[-90.67455291748047,38.98577880859375],[-90.7124633789062,39.05490875244152],[-90.6824722290039,39.10945892333996],[-90.70310974121088,39.13827133178711],[-90.72669982910156,39.24869155883789],[-90.79711914062494,39.31177902221674],[-90.85743713378906,39.352481842041065],[-90.99164581298828,39.42308044433594],[-91.060302734375,39.471580505371094],[-91.09442138671875,39.532348632812614],[-91.16358947753906,39.55728912353526],[-91.18009185791016,39.599239349365234],[-91.24236297607422,39.63103103637707],[-91.27519226074219,39.666461944580135],[-91.36624145507811,39.72851943969738],[-91.36862182617188,39.80150985717779],[-91.43390655517572,39.844730377197266],[-91.44725036621088,39.874309539794915],[-91.41963195800781,39.91773223876959],[-91.49294281005852,40.030868530273494],[-91.51146697998047,40.12919998168951],[-91.50485992431635,40.237548828125],[-91.46582031249999,40.333351135253956],[-91.42041015625,40.37800979614257],[-91.36544799804676,40.39931869506847],[-91.37947845458984,40.44623947143566],[-91.36387634277344,40.49229049682617],[-91.40566253662104,40.56695938110362],[-91.3446426391601,40.608551025390625],[-91.25908660888666,40.635761260986385],[-91.18562316894531,40.63795852661127],[-91.113037109375,40.688339233398494],[-91.11419677734375,40.72602081298828],[-91.08967590332031,40.780441284179744],[-91.08941650390625,40.823539733886776],[-91.00430297851561,40.9048805236817],[-90.96453857421875,40.925048828125114],[-90.94586181640625,41.02133941650396],[-90.94737243652342,41.09474945068365],[-90.98867797851562,41.15380859375],[-91.05140686035143,41.168399810791016],[-91.08631134033192,41.20064163208008],[-91.11315155029297,41.25294876098633],[-91.07681274414062,41.30667114257818],[-91.06735229492188,41.36381149291998],[-91.04223632812494,41.41904067993163],[-90.98979187011712,41.43165969848632],[-90.92634582519526,41.42404174804698],[-90.85604095458984,41.45257949829096],[-90.75379943847656,41.4495201110841],[-90.66133117675776,41.459819793701286],[-90.58867645263666,41.5144500732423],[-90.55264282226561,41.52542877197271],[-90.48381805419922,41.51805114746105],[-90.41146087646477,41.567989349365234],[-90.3418731689452,41.599899291992294],[-90.34435272216786,41.65023040771496],[-90.2946472167968,41.759529113769645],[-90.19040679931635,41.80459976196295],[-90.15442657470703,41.90740966796874],[-90.16602325439453,41.95957183837896],[-90.13931274414051,42.00830078125],[-90.16442108154297,42.050861358642685],[-90.16382598876953,42.11853027343744],[-90.20809173583983,42.152820587158196],[-90.36412811279297,42.20911026000982],[-90.41047668457031,42.24876022338867],[-90.42652130126946,42.333000183105526],[-90.47241973876946,42.37961196899414],[-90.54296874999994,42.41207122802729],[-90.56185913085932,42.4356803894043],[-90.65328979492188,42.479991912841854],[-90.64151000976557,42.509281158447266],[-90.42444610595697,42.50790023803722],[-90.07176208496088,42.50947952270508],[-89.68112945556635,42.50743103027355],[-89.40184783935547,42.50297927856445],[-88.7718505859375,42.495719909668026],[-88.62876892089838,42.498481750488224],[-87.7980117797851,42.49602127075201],[-87.01808166503905,42.49470138549815]]]},"properties":{"ID_0":244,"ISO":"US-IL","NAME_0":"United States","ID_1":14,"NAME_1":"Illinois","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"IL|Ill."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-84.80667114257812,41.69580078125005],[-84.80580139160155,41.34212112426769],[-84.80226135253895,40.72814178466797],[-84.80792999267578,40.174140930175895],[-84.81310272216791,40.0059814453125],[-84.8165817260742,39.41342163085943],[-84.8190689086914,39.1068687438966],[-84.88841247558594,39.06504058837902],[-84.88802337646484,39.045970916748104],[-84.83740997314452,38.98868179321289],[-84.83467102050776,38.96073913574219],[-84.8738021850586,38.91004943847656],[-84.78766632080072,38.88230133056652],[-84.83004760742188,38.82835006713873],[-84.815200805664,38.78688049316412],[-84.89634704589844,38.79148864746105],[-84.99233245849597,38.77769851684582],[-85.16105651855469,38.69050979614269],[-85.2139892578125,38.69549942016613],[-85.25045776367182,38.73223876953125],[-85.29878234863281,38.74050903320318],[-85.41678619384759,38.73566055297857],[-85.45359039306635,38.684719085693416],[-85.43695068359375,38.656349182128906],[-85.4346084594726,38.59698104858404],[-85.41485595703125,38.55385208129883],[-85.50527191162108,38.464260101318416],[-85.59807586669916,38.44422149658197],[-85.61926269531244,38.42248916625982],[-85.65363311767577,38.32518005371105],[-85.69132995605467,38.290729522705185],[-85.74128723144531,38.26926040649414],[-85.78289031982416,38.288669586181584],[-85.82167053222656,38.28028106689459],[-85.8519668579101,38.22027969360357],[-85.9044418334961,38.16757965087896],[-85.90284729003906,38.09259033203131],[-85.9398193359375,38.00893020629883],[-86.01445770263666,37.99584197998047],[-86.04644012451172,37.95861053466791],[-86.09281158447266,38.00772094726568],[-86.16821289062489,38.00930023193371],[-86.26026153564453,38.05138015747082],[-86.28119659423822,38.098400115966854],[-86.28047943115234,38.14963912963867],[-86.34969329833973,38.19512939453125],[-86.3693618774414,38.12889862060558],[-86.45258331298822,38.04941940307623],[-86.5218505859375,38.02891159057617],[-86.52458953857416,37.97404098510748],[-86.50756072998047,37.942211151123104],[-86.5284805297851,37.91780090332031],[-86.58161926269526,37.92097091674805],[-86.60459899902338,37.86014175415039],[-86.66726684570301,37.855522155761776],[-86.66726684570301,37.91337966918951],[-86.73114776611322,37.89273071289068],[-86.75772094726562,37.91519927978521],[-86.79631042480469,37.987361907958984],[-86.85994720458984,37.9848518371582],[-86.91255950927734,37.940879821777344],[-86.98600769042969,37.92897033691412],[-87.04065704345703,37.899761199951115],[-87.07095336914057,37.80141067504883],[-87.1335830688476,37.78796005249035],[-87.16732025146484,37.83866882324219],[-87.24144744873041,37.85746002197277],[-87.28840637207031,37.888889312744084],[-87.394287109375,37.939170837402344],[-87.44595336914062,37.94163894653325],[-87.51220703124994,37.90697097778332],[-87.55391693115234,37.92797851562506],[-87.58065795898438,37.96607971191406],[-87.62790679931629,37.923542022705135],[-87.59343719482422,37.890171051025504],[-87.6045303344726,37.84053039550792],[-87.6783676147461,37.833808898925895],[-87.6678695678711,37.89337158203119],[-87.75447082519531,37.89315032958995],[-87.8323974609375,37.87932205200207],[-87.88243865966784,37.92610168457037],[-87.93641662597645,37.89200973510742],[-87.90857696533203,37.80895996093756],[-87.96392822265625,37.77513885498047],[-88.0269927978515,37.79903030395519],[-88.02509307861322,37.8417320251466],[-88.06246185302727,37.85980224609369],[-88.0897369384765,37.89950942993169],[-88.01988983154295,37.89234161376959],[-88.03122711181639,37.96012878417963],[-88.00997924804688,37.97835159301752],[-88.034439086914,38.03411102294933],[-87.9696273803711,38.066188812255916],[-87.9655685424804,38.10161209106445],[-87.9149932861328,38.16028976440441],[-87.96599578857422,38.18716049194347],[-87.98320770263666,38.21788024902344],[-87.92427825927727,38.30047988891613],[-87.87655639648438,38.309780120849666],[-87.83355712890625,38.29339981079113],[-87.82787322998041,38.337520599365234],[-87.74624633789057,38.40816879272466],[-87.73805236816395,38.47935867309582],[-87.70867919921864,38.48107147216797],[-87.6475219726562,38.51745986938482],[-87.6691207885742,38.54399871826172],[-87.63979339599604,38.57936859130864],[-87.6193618774414,38.641170501708984],[-87.58724212646479,38.67108917236334],[-87.53692626953114,38.6829719543457],[-87.49707794189453,38.743129730224666],[-87.50128173828125,38.79159164428722],[-87.55047607421874,38.85950851440441],[-87.5130386352539,38.95421981811529],[-87.57653045654297,39.004501342773494],[-87.57070159912108,39.056171417236435],[-87.61947631835932,39.09043884277343],[-87.65379333496094,39.142559051513786],[-87.58949279785156,39.19784927368175],[-87.57639312744134,39.24391937255871],[-87.6032028198241,39.263801574706974],[-87.60780334472656,39.31155014038097],[-87.57672119140625,39.342601776123104],[-87.53044891357422,39.351600646972656],[-87.53233337402338,39.882061004638786],[-87.53270721435541,40.13093185424816],[-87.52536773681635,40.55047988891607],[-87.52645874023438,40.839031219482415],[-87.52703857421875,41.40859985351574],[-87.52404785156239,41.760330200195256],[-87.20712280273432,41.76071166992182],[-86.45262908935547,41.75992965698248],[-85.93197631835932,41.762321472168026],[-85.5762939453125,41.76026153564459],[-84.80755615234375,41.760501861572315],[-84.80667114257812,41.69580078125005]]]},"properties":{"ID_0":244,"ISO":"US-IN","NAME_0":"United States","ID_1":15,"NAME_1":"Indiana","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"IN|Ind."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-91.21996307373047,43.50228881835949],[-91.2319564819336,43.45838928222667],[-91.1990127563476,43.401470184326286],[-91.2034683227539,43.352722167968864],[-91.10038757324212,43.311779022216854],[-91.06314086914062,43.251098632812614],[-91.12007904052734,43.20286941528326],[-91.17752838134766,43.133880615234375],[-91.17562866210938,43.041500091552784],[-91.14640045166014,42.96091079711908],[-91.14438629150379,42.91040039062506],[-91.09990692138672,42.875019073486385],[-91.05169677734375,42.73966217041021],[-90.95420837402338,42.68717193603515],[-90.73005676269531,42.6448593139649],[-90.7059707641601,42.63558197021496],[-90.64151000976557,42.509281158447266],[-90.65328979492188,42.479991912841854],[-90.56185913085932,42.4356803894043],[-90.54296874999994,42.41207122802729],[-90.47241973876946,42.37961196899414],[-90.42652130126946,42.333000183105526],[-90.41047668457031,42.24876022338867],[-90.36412811279297,42.20911026000982],[-90.20809173583983,42.152820587158196],[-90.16382598876953,42.11853027343744],[-90.16442108154297,42.050861358642685],[-90.13931274414051,42.00830078125],[-90.16602325439453,41.95957183837896],[-90.15442657470703,41.90740966796874],[-90.19040679931635,41.80459976196295],[-90.2946472167968,41.759529113769645],[-90.34435272216786,41.65023040771496],[-90.3418731689452,41.599899291992294],[-90.41146087646477,41.567989349365234],[-90.48381805419922,41.51805114746105],[-90.55264282226561,41.52542877197271],[-90.58867645263666,41.5144500732423],[-90.66133117675776,41.459819793701286],[-90.75379943847656,41.4495201110841],[-90.85604095458984,41.45257949829096],[-90.92634582519526,41.42404174804698],[-90.98979187011712,41.43165969848632],[-91.04223632812494,41.41904067993163],[-91.06735229492188,41.36381149291998],[-91.07681274414062,41.30667114257818],[-91.11315155029297,41.25294876098633],[-91.08631134033192,41.20064163208008],[-91.05140686035143,41.168399810791016],[-90.98867797851562,41.15380859375],[-90.94737243652342,41.09474945068365],[-90.94586181640625,41.02133941650396],[-90.96453857421875,40.925048828125114],[-91.00430297851561,40.9048805236817],[-91.08941650390625,40.823539733886776],[-91.08967590332031,40.780441284179744],[-91.11419677734375,40.72602081298828],[-91.113037109375,40.688339233398494],[-91.18562316894531,40.63795852661127],[-91.25908660888666,40.635761260986385],[-91.3446426391601,40.608551025390625],[-91.40566253662104,40.56695938110362],[-91.36387634277344,40.49229049682617],[-91.37947845458984,40.44623947143566],[-91.36544799804676,40.39931869506847],[-91.42041015625,40.37800979614257],[-91.48558044433588,40.38566207885742],[-91.5239028930664,40.41233062744146],[-91.52803802490227,40.459110260009766],[-91.56607055664057,40.46202087402344],[-91.62037658691405,40.516380310058594],[-91.61891937255854,40.53722000122082],[-91.67800903320312,40.55303955078124],[-91.72843933105469,40.614028930664055],[-92.06111907958977,40.603260040283196],[-92.6037368774414,40.5919189453125],[-93.28959655761719,40.580390930175895],[-93.68660736083984,40.57825088500971],[-94.22850799560547,40.5706405639649],[-94.49624633789057,40.57028198242199],[-94.76725006103516,40.57258987426758],[-95.20273590087884,40.57901000976568],[-95.7650680541992,40.5855598449707],[-95.75086212158203,40.60903930664074],[-95.79515075683588,40.66239166259771],[-95.84239959716795,40.67708969116211],[-95.88831329345697,40.73598098754894],[-95.83296203613281,40.784938812255916],[-95.84304046630854,40.86970901489258],[-95.8106079101562,40.90024948120117],[-95.83789062499994,40.939029693603565],[-95.82760620117188,40.97346115112299],[-95.86933135986321,41.00865936279296],[-95.86030578613268,41.08689880371094],[-95.879669189453,41.14587020874035],[-95.85936737060547,41.18632888793945],[-95.92780303955072,41.197158813476555],[-95.90933990478514,41.23062896728527],[-95.93472290039062,41.326850891113274],[-95.95326995849604,41.3501091003419],[-95.92415618896484,41.46094894409191],[-96.0171127319336,41.48749160766596],[-96.04012298583984,41.51821136474614],[-96.09552001953125,41.54486846923828],[-96.07404327392578,41.57339096069341],[-96.11525726318358,41.60998153686523],[-96.09368896484375,41.640201568603565],[-96.11728668212885,41.695449829101676],[-96.06791687011713,41.785739898681754],[-96.10942840576172,41.82608032226574],[-96.1598129272461,41.90803146362315],[-96.13353729248036,41.96995925903325],[-96.17478942871094,41.97829055786133],[-96.23829650878906,42.04108047485357],[-96.269790649414,42.04290008544927],[-96.2686080932617,42.11492919921874],[-96.34030151367186,42.15946197509771],[-96.35761260986321,42.21535873413085],[-96.32240295410156,42.23239135742199],[-96.37149047851562,42.314220428466854],[-96.41858673095692,42.35197067260748],[-96.4148712158202,42.40877151489258],[-96.3833618164062,42.438270568847656],[-96.38627624511719,42.478660583496094],[-96.44995117187494,42.48947906494152],[-96.49259185791004,42.521499633789176],[-96.47921752929682,42.55704879760748],[-96.53913116455067,42.65932846069347],[-96.62800598144526,42.70771026611322],[-96.63260650634766,42.76808929443365],[-96.58963012695312,42.7986793518067],[-96.55314636230463,42.84725952148443],[-96.53716278076172,42.91868209838872],[-96.49848175048822,42.95956039428722],[-96.49234008789061,43.00564956665045],[-96.5166778564453,43.04603958129883],[-96.46169281005848,43.06549072265636],[-96.43779754638672,43.11725997924815],[-96.46408843994139,43.15085983276378],[-96.46853637695307,43.21004867553711],[-96.55847167968744,43.22566223144537],[-96.51992797851557,43.39160919189459],[-96.59649658203125,43.44218063354492],[-96.59738159179682,43.502071380615234],[-96.45408630371094,43.50263214111334],[-96.0841217041015,43.50265884399414],[-95.28247833251942,43.50363922119151],[-94.5,43.50336837768549],[-93.9691162109375,43.50442886352545],[-93.28439331054688,43.50317001342768],[-92.55296325683581,43.50273895263672],[-92.08278656005852,43.50210189819341],[-91.21996307373047,43.50228881835949]]]},"properties":{"ID_0":244,"ISO":"US-IA","NAME_0":"United States","ID_1":16,"NAME_1":"Iowa","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"IA|Iowa"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-95.30799865722649,39.99988937377941],[-95.20622253417969,39.9114608764649],[-95.15110778808592,39.907840728759766],[-95.13162994384766,39.87726974487316],[-95.04828643798828,39.864570617675895],[-95.01846313476557,39.89868164062506],[-94.93644714355463,39.89501953125005],[-94.94117736816406,39.86022186279308],[-94.89263916015625,39.83568954467785],[-94.86963653564453,39.73841094970703],[-94.89314270019531,39.7257194519043],[-94.95189666748041,39.747261047363395],[-94.96967315673817,39.69498062133789],[-95.03668975830071,39.657138824463],[-95.05754852294922,39.58356857299799],[-95.10365295410149,39.581199645996094],[-95.10457611083984,39.53586959838878],[-95.05657958984375,39.50371170043945],[-95.0346069335937,39.461738586425895],[-94.99127960205077,39.447910308838004],[-94.93068695068358,39.38491058349621],[-94.88765716552723,39.290729522705135],[-94.82805633544922,39.24858093261719],[-94.83648681640624,39.22029876708996],[-94.78721618652338,39.207500457763665],[-94.74864196777344,39.17232131958019],[-94.68992614746087,39.181869506835994],[-94.63912200927727,39.15444946289068],[-94.6082916259765,39.12036895751947],[-94.60816192626953,38.846279144287166],[-94.61344909667963,38.38924026489258],[-94.61480712890614,38.036460876464844],[-94.61727905273432,37.38238143920904],[-94.61897277832026,36.99996185302745],[-95.07227325439447,36.99872207641613],[-95.4002685546875,37.00053024291998],[-96.00036621093744,37.00017929077154],[-96.7531509399414,36.99977874755854],[-97.14676666259766,36.999389648437614],[-97.74241638183594,37.000320434570426],[-98.11641693115233,37.00025939941412],[-98.54572296142572,37.0002212524414],[-99.00054168701166,37.00075912475591],[-99.53988647460936,36.999752044677734],[-100.1078872680664,36.99834060668957],[-100.63371276855463,36.99864959716797],[-100.94407653808594,36.99882888793951],[-101.54396057128906,36.99515151977539],[-102.04226684570312,36.992229461670036],[-102.04252624511719,37.388240814208984],[-102.04324340820307,37.73841094970709],[-102.04429626464838,38.26269912719738],[-102.04537963867186,38.61375045776367],[-102.04609680175776,39.045631408691406],[-102.0475463867187,39.56885910034191],[-102.04854583740234,40.00391006469738],[-101.29899597167963,40.004219055175895],[-100.68540191650385,40.003250122070426],[-100.19460296630858,40.00276184082031],[-99.62758636474604,40.00281143188471],[-98.99961853027342,40.00214004516607],[-98.27548980712889,40.00379180908209],[-97.99389648437499,40.002861022949325],[-97.37114715576172,40.00352859497081],[-96.80671691894526,40.0021705627442],[-96.01006317138672,40.00130081176758],[-95.30799865722649,39.99988937377941]]]},"properties":{"ID_0":244,"ISO":"US-KS","NAME_0":"United States","ID_1":17,"NAME_1":"Kansas","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"KS|Kans."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-89.48729705810545,36.499889373779354],[-89.541748046875,36.500339508056584],[-89.57295227050781,36.546211242675724],[-89.56279754638666,36.571800231933594],[-89.49890136718744,36.57802963256836],[-89.47117614746094,36.53084182739269],[-89.48729705810545,36.499889373779354]]],[[[-82.59278869628893,38.4185905456543],[-82.59430694580071,38.34606933593756],[-82.57562255859364,38.330150604248104],[-82.57801055908192,38.25075912475586],[-82.60652923583984,38.177558898925895],[-82.63696289062499,38.14073944091808],[-82.54952239990234,38.07176208496094],[-82.47206115722656,37.9561500549317],[-82.4874496459961,37.918178558349666],[-82.42005157470697,37.885318756103516],[-82.41783142089844,37.84812927246105],[-82.3739166259765,37.803440093994084],[-82.3111801147461,37.76184082031256],[-82.31784057617182,37.734519958496094],[-82.29006195068354,37.67084884643565],[-82.17114257812494,37.631118774414006],[-82.13520812988276,37.596481323242244],[-82.12930297851551,37.552509307861385],[-82.06272125244135,37.53915023803711],[-81.96734619140618,37.53715896606457],[-82.35228729248047,37.268020629882805],[-82.43357849121094,37.24853897094738],[-82.55504608154295,37.2032585144043],[-82.63313293457018,37.15705871582037],[-82.72056579589837,37.12054061889654],[-82.7197875976562,37.048400878906364],[-82.7817611694336,37.009899139404354],[-82.82340240478516,37.00629043579107],[-82.86530303955078,36.97864151000982],[-82.86979675292963,36.900459289550774],[-82.9615020751953,36.86095046997076],[-83.06758880615229,36.85406875610357],[-83.13307189941406,36.78454208374018],[-83.14129638671874,36.74214172363281],[-83.19584655761719,36.7393417358399],[-83.33541107177727,36.704109191894645],[-83.42209625244135,36.670001983642635],[-83.4993896484375,36.670989990234375],[-83.64803314208973,36.62292098999029],[-83.67481994628899,36.60120010375987],[-83.69021606445311,36.583831787109375],[-84.0300674438476,36.59305953979492],[-84.5069961547851,36.59875869750971],[-84.83001708984364,36.60713958740239],[-84.97767639160156,36.61809158325195],[-85.26261901855469,36.62825012207031],[-85.50741577148438,36.61513137817394],[-85.8526306152343,36.62451171875006],[-86.20700073242182,36.64120101928716],[-86.34010314941406,36.64995956420904],[-86.50946807861327,36.65394973754882],[-86.56365966796875,36.63505935668945],[-86.59133148193354,36.65443038940441],[-87.06050872802734,36.64443206787121],[-87.43670654296875,36.64168930053711],[-87.85340118408203,36.635250091552734],[-87.8504562377929,36.665149688720696],[-88.0707321166992,36.679248809814396],[-88.0326309204101,36.536708831787166],[-88.05705261230463,36.49671936035162],[-88.51719665527338,36.502750396728565],[-88.95474243164057,36.5037193298341],[-89.29921722412098,36.507820129394645],[-89.41960144042969,36.498039245605526],[-89.3776626586914,36.61787033081055],[-89.31931304931635,36.62232971191406],[-89.27493286132812,36.57167053222662],[-89.22885894775389,36.56766891479486],[-89.19824981689453,36.63304901123047],[-89.1660385131836,36.663551330566406],[-89.20163726806635,36.72507095336914],[-89.16118621826166,36.79119873046881],[-89.17848205566395,36.838760375976676],[-89.13111877441406,36.85879898071289],[-89.10166931152344,36.94449996948248],[-89.1338882446289,36.983871459960994],[-89.17986297607422,37.02735137939459],[-89.16459655761719,37.07664871215825],[-89.11241912841797,37.12289047241222],[-89.07966613769526,37.171749114990234],[-89.00711059570301,37.2231788635255],[-88.91517639160145,37.22357940673828],[-88.79541778564453,37.18193054199213],[-88.7339477539062,37.14297103881836],[-88.61308288574219,37.11203002929693],[-88.5527725219726,37.07126998901367],[-88.5160675048828,37.062679290771484],[-88.46586608886713,37.07706069946295],[-88.4276504516601,37.132869720458984],[-88.45018768310547,37.20624923706049],[-88.51333618164061,37.278999328613395],[-88.47416687011713,37.387088775634766],[-88.41169738769526,37.42591857910156],[-88.3714370727539,37.40737915039057],[-88.25930786132807,37.45746994018555],[-88.08501434326172,37.47761917114269],[-88.07356262207031,37.531661987304744],[-88.13345336914061,37.58359909057623],[-88.15672302246094,37.64839172363287],[-88.118179321289,37.710460662841854],[-88.0531158447265,37.744499206543026],[-88.0269927978515,37.79903030395519],[-87.96392822265625,37.77513885498047],[-87.90857696533203,37.80895996093756],[-87.93641662597645,37.89200973510742],[-87.88243865966784,37.92610168457037],[-87.8323974609375,37.87932205200207],[-87.75447082519531,37.89315032958995],[-87.6678695678711,37.89337158203119],[-87.6783676147461,37.833808898925895],[-87.6045303344726,37.84053039550792],[-87.59343719482422,37.890171051025504],[-87.62790679931629,37.923542022705135],[-87.58065795898438,37.96607971191406],[-87.55391693115234,37.92797851562506],[-87.51220703124994,37.90697097778332],[-87.44595336914062,37.94163894653325],[-87.394287109375,37.939170837402344],[-87.28840637207031,37.888889312744084],[-87.24144744873041,37.85746002197277],[-87.16732025146484,37.83866882324219],[-87.1335830688476,37.78796005249035],[-87.07095336914057,37.80141067504883],[-87.04065704345703,37.899761199951115],[-86.98600769042969,37.92897033691412],[-86.91255950927734,37.940879821777344],[-86.85994720458984,37.9848518371582],[-86.79631042480469,37.987361907958984],[-86.75772094726562,37.91519927978521],[-86.73114776611322,37.89273071289068],[-86.66726684570301,37.91337966918951],[-86.66726684570301,37.855522155761776],[-86.60459899902338,37.86014175415039],[-86.58161926269526,37.92097091674805],[-86.5284805297851,37.91780090332031],[-86.50756072998047,37.942211151123104],[-86.52458953857416,37.97404098510748],[-86.5218505859375,38.02891159057617],[-86.45258331298822,38.04941940307623],[-86.3693618774414,38.12889862060558],[-86.34969329833973,38.19512939453125],[-86.28047943115234,38.14963912963867],[-86.28119659423822,38.098400115966854],[-86.26026153564453,38.05138015747082],[-86.16821289062489,38.00930023193371],[-86.09281158447266,38.00772094726568],[-86.04644012451172,37.95861053466791],[-86.01445770263666,37.99584197998047],[-85.9398193359375,38.00893020629883],[-85.90284729003906,38.09259033203131],[-85.9044418334961,38.16757965087896],[-85.8519668579101,38.22027969360357],[-85.82167053222656,38.28028106689459],[-85.78289031982416,38.288669586181584],[-85.74128723144531,38.26926040649414],[-85.69132995605467,38.290729522705185],[-85.65363311767577,38.32518005371105],[-85.61926269531244,38.42248916625982],[-85.59807586669916,38.44422149658197],[-85.50527191162108,38.464260101318416],[-85.41485595703125,38.55385208129883],[-85.4346084594726,38.59698104858404],[-85.43695068359375,38.656349182128906],[-85.45359039306635,38.684719085693416],[-85.41678619384759,38.73566055297857],[-85.29878234863281,38.74050903320318],[-85.25045776367182,38.73223876953125],[-85.2139892578125,38.69549942016613],[-85.16105651855469,38.69050979614269],[-84.99233245849597,38.77769851684582],[-84.89634704589844,38.79148864746105],[-84.815200805664,38.78688049316412],[-84.83004760742188,38.82835006713873],[-84.78766632080072,38.88230133056652],[-84.8738021850586,38.91004943847656],[-84.83467102050776,38.96073913574219],[-84.83740997314452,38.98868179321289],[-84.88802337646484,39.045970916748104],[-84.88841247558594,39.06504058837902],[-84.8190689086914,39.1068687438966],[-84.75962829589838,39.14139938354503],[-84.7239761352539,39.13906097412104],[-84.68788909912104,39.102970123291016],[-84.62368774414062,39.07355117797846],[-84.54485321044916,39.0982398986817],[-84.51854705810536,39.09128952026361],[-84.46269226074217,39.12162017822271],[-84.40764617919922,39.04595184326183],[-84.31936645507812,39.02233123779291],[-84.29104614257812,38.95777893066412],[-84.23829650878906,38.8946990966798],[-84.23393249511713,38.839359283447266],[-84.20465087890625,38.80271148681646],[-84.07747650146483,38.772838592529354],[-83.95970916748047,38.78726196289068],[-83.86857604980469,38.761100769043026],[-83.84115600585936,38.72201156616222],[-83.79458618164057,38.70267868041998],[-83.7546615600586,38.64937973022461],[-83.65733337402344,38.62631988525402],[-83.62777709960932,38.676189422607536],[-83.53927612304682,38.701110839843864],[-83.46048736572266,38.67127990722662],[-83.37007141113281,38.65880966186529],[-83.2869567871093,38.59984207153325],[-83.24680328369135,38.627769470214844],[-83.15379333496094,38.62018966674805],[-83.11161041259766,38.670162200927734],[-83.05769348144524,38.69253921508795],[-83.013671875,38.72962951660162],[-82.97695159912108,38.724922180175895],[-82.8934478759765,38.75444030761724],[-82.86940002441406,38.7294807434082],[-82.87844848632812,38.69113922119146],[-82.85537719726562,38.61193084716797],[-82.82303619384766,38.574310302734375],[-82.72425842285156,38.55809020996088],[-82.65207672119135,38.491180419921875],[-82.60455322265625,38.460201263427734],[-82.59278869628893,38.4185905456543]]]]},"properties":{"ID_0":244,"ISO":"US-KY","NAME_0":"United States","ID_1":18,"NAME_1":"Kentucky","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Commonwealth of Kentucky|KY"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-91.23841094970697,29.3583812713623],[-91.1986083984375,29.30583381652832],[-91.20777893066399,29.278055191040096],[-91.13583374023438,29.249446868896538],[-91.1361083984375,29.21722030639654],[-91.20861053466797,29.224445343017575],[-91.27722167968744,29.24861145019537],[-91.33611297607422,29.301666259765906],[-91.2966690063476,29.3088893890382],[-91.26944732666016,29.35722160339355],[-91.23841094970697,29.3583812713623]]],[[[-89.70388793945311,29.385278701782337],[-89.7111129760741,29.345832824707028],[-89.66416931152338,29.35250282287592],[-89.6594467163086,29.32194519042963],[-89.68360137939453,29.29383277893089],[-89.80361175537104,29.316389083862305],[-89.72333526611328,29.3352775573731],[-89.7330551147461,29.369445800781417],[-89.70388793945311,29.385278701782337]]],[[[-89.70500183105463,29.447223663330078],[-89.68305206298822,29.39277839660644],[-89.72916412353516,29.391109466552734],[-89.74028015136713,29.414443969726506],[-89.70500183105463,29.447223663330078]]],[[[-91.9022216796875,29.635835647583065],[-91.86611175537102,29.63027763366711],[-91.7125015258789,29.555553436279297],[-91.76468658447266,29.52347183227539],[-91.77194213867186,29.48861122131353],[-91.84743499755848,29.480182647705075],[-91.87860870361322,29.50361061096191],[-92.02629089355469,29.567411422729492],[-92.00513458251953,29.603296279907337],[-91.9400024414062,29.609167098999023],[-91.9022216796875,29.635835647583065]]],[[[-89.37805175781244,29.913692474365178],[-89.34999847412108,29.887500762939506],[-89.35861206054682,29.84694480896007],[-89.41249847412104,29.839721679687553],[-89.41166687011717,29.884445190429684],[-89.37805175781244,29.913692474365178]]],[[[-89.52471923828125,30.184724807739258],[-89.586669921875,30.150554656982532],[-89.62222290039057,30.156665802002063],[-89.71971893310547,30.06777763366705],[-89.73292541503899,30.0221843719483],[-89.77083587646484,30.047500610351502],[-89.8155517578125,30.045833587646598],[-89.86000061035156,30.001388549804684],[-89.84027862548828,29.946388244629016],[-89.79360961914062,29.93222236633324],[-89.74666595458979,29.945833206176875],[-89.74583435058594,29.909721374511776],[-89.7044448852539,29.873888015747127],[-89.65805816650385,29.861389160156246],[-89.60944366455072,29.871110916137635],[-89.56999969482422,29.962499618530327],[-89.58055877685547,29.990833282470756],[-89.44499969482416,30.06111145019554],[-89.43111419677723,30.02916717529308],[-89.46971893310541,29.991111755371318],[-89.4463882446289,29.95388793945312],[-89.43083190917969,29.844444274902397],[-89.46527862548828,29.809442520141655],[-89.47150421142577,29.72594451904297],[-89.52333068847645,29.749998092651428],[-89.64944458007812,29.7549991607666],[-89.64944458007812,29.713054656982592],[-89.67610931396472,29.66527748107921],[-89.65027618408203,29.645555496215874],[-89.7300033569336,29.602500915527457],[-89.66999816894526,29.51055526733421],[-89.62361145019531,29.4775009155274],[-89.59356689453125,29.48198318481451],[-89.55944824218744,29.450555801391772],[-89.57389068603516,29.401945114136026],[-89.51194763183587,29.382778167724663],[-89.46888732910156,29.401388168335075],[-89.34752655029297,29.33094024658203],[-89.33721923828124,29.354444503784233],[-89.27071380615234,29.34728622436546],[-89.32444763183594,29.26777839660656],[-89.28666687011719,29.24138832092291],[-89.24416351318354,29.268333435058707],[-89.24555206298828,29.30083465576172],[-89.20694732666016,29.329999923706108],[-89.13777923583983,29.2830562591555],[-89.13333129882812,29.223333358764645],[-89.09333038330078,29.187778472900394],[-89.11276245117182,29.081975936889645],[-89.17222595214842,29.036111831665036],[-89.20249938964838,29.031112670898438],[-89.22332763671874,29.07639694213867],[-89.25111389160156,29.097778320312614],[-89.29528045654291,29.093610763549805],[-89.30333709716797,29.119443893432674],[-89.27111053466797,29.167224884033203],[-89.30022430419922,29.219640731811634],[-89.35555267333979,29.224721908569393],[-89.41500091552733,29.21166610717773],[-89.45305633544922,29.18944358825689],[-89.48332977294922,29.223333358764645],[-89.47250366210926,29.261388778686637],[-89.49472045898426,29.32194519042963],[-89.63277435302733,29.396110534668082],[-89.69388580322266,29.466110229492298],[-89.7694473266601,29.408611297607536],[-89.81583404541016,29.40055465698248],[-89.83963012695307,29.439168930053825],[-89.81444549560547,29.45861053466803],[-89.92111206054676,29.492221832275387],[-89.93055725097656,29.461944580078068],[-89.98666381835936,29.463056564331055],[-90.01305389404297,29.495277404785266],[-90.04166412353516,29.493055343628154],[-90.13805389404291,29.54916572570818],[-90.16390228271479,29.57861137390148],[-90.21138763427729,29.561111450195426],[-90.23000335693348,29.50666618347179],[-90.15110778808587,29.473613739013956],[-90.12055206298828,29.44611358642572],[-90.07055664062499,29.447778701782283],[-90.07111358642572,29.398611068725586],[-90.05055236816406,29.349166870117298],[-90.1033325195312,29.342777252197376],[-90.15055847167963,29.35416412353527],[-90.10784912109375,29.266902923584098],[-90.08388519287104,29.167224884033203],[-90.22166442871094,29.085830688476562],[-90.25111389160156,29.16638946533209],[-90.30403900146484,29.26724243164062],[-90.37757873535156,29.29144668579107],[-90.42555236816406,29.32777786254883],[-90.46682739257812,29.300811767578125],[-90.52249908447253,29.30277824401867],[-90.54360961914062,29.331666946411243],[-90.61027526855469,29.312778472900447],[-90.63176727294916,29.250522613525558],[-90.67833709716797,29.242221832275447],[-90.71833038330078,29.181945800781193],[-90.72888946533202,29.14333343505865],[-90.8469467163086,29.15777778625505],[-90.86944580078114,29.128335952759073],[-90.9169464111328,29.14749717712408],[-90.96089935302723,29.188224792480582],[-90.9816589355468,29.173847198486495],[-91.02964782714838,29.20944595336942],[-91.05722045898426,29.185832977295032],[-91.0956802368164,29.192047119140568],[-91.12909698486322,29.219457626342884],[-91.12055206298828,29.31555557250971],[-91.153335571289,29.356388092041012],[-91.21975708007812,29.39788627624517],[-91.21944427490223,29.43555641174322],[-91.25775909423822,29.44477653503418],[-91.26527404785156,29.478057861328182],[-91.33851623535156,29.490318298339954],[-91.35666656494135,29.515834808349776],[-91.39659881591791,29.513004302978516],[-91.43189239501947,29.54159736633323],[-91.52507019042963,29.55231666564947],[-91.55224609374994,29.633541107177734],[-91.64360809326166,29.63277816772461],[-91.62222290039062,29.67222023010254],[-91.61993408203125,29.735988616943356],[-91.66999816894531,29.746389389038143],[-91.71416473388672,29.737600326538143],[-91.77164459228516,29.746364593506147],[-91.86083221435547,29.71055603027349],[-91.87999725341797,29.75611114501953],[-91.82550048828114,29.823900222778374],[-91.87947845458973,29.834369659423828],[-92.03749847412104,29.78111076354986],[-92.11000061035156,29.742500305175895],[-92.14221954345692,29.7852783203125],[-92.2147216796875,29.748889923095817],[-92.13655090332031,29.667222976684513],[-92.10726928710938,29.612724304199276],[-92.14697265624993,29.58519172668468],[-92.25083160400384,29.541112899780277],[-92.31583404541016,29.531944274902283],[-92.46194458007811,29.560832977294865],[-92.62444305419922,29.585277557373047],[-92.73611450195311,29.618055343628043],[-92.96611022949219,29.715000152587887],[-93.06182098388666,29.743513107299858],[-93.20891571044922,29.775215148925838],[-93.27598571777344,29.776338577270504],[-93.34166717529297,29.761388778686523],[-93.4991989135741,29.76852035522472],[-93.7047195434569,29.742650985717717],[-93.81328582763672,29.70910263061523],[-93.84029388427729,29.691368103027457],[-93.92626190185547,29.816520690917912],[-93.83450317382807,29.888000488281364],[-93.79010772705078,29.987340927124134],[-93.72178649902332,30.05425071716314],[-93.73262023925781,30.08361053466797],[-93.7018203735351,30.133670806884766],[-93.72041320800781,30.2090301513673],[-93.70516967773432,30.241809844970703],[-93.7096176147461,30.289310455322266],[-93.74279022216797,30.302831649780384],[-93.76402282714838,30.34357833862316],[-93.75734710693354,30.389930725097653],[-93.70482635498045,30.44635009765625],[-93.70569610595703,30.511669158935547],[-93.73517608642578,30.53626060485851],[-93.72535705566406,30.57720947265625],[-93.67991638183588,30.597721099853516],[-93.68441772460938,30.63473129272461],[-93.63086700439447,30.679679870605526],[-93.58183288574219,30.803251266479545],[-93.53349304199219,30.95523071289063],[-93.5712814331054,30.97071075439453],[-93.56153106689453,31.00732994079595],[-93.51055908203125,31.02806091308588],[-93.56416320800781,31.094360351562553],[-93.53978729248047,31.119659423828125],[-93.55741882324219,31.18597984313965],[-93.6011734008789,31.17836189270031],[-93.6246566772461,31.271310806274585],[-93.68952178955072,31.306579589843754],[-93.6650085449218,31.365739822387695],[-93.69464874267577,31.44045066833496],[-93.7503814697265,31.470579147338864],[-93.72380065917969,31.49423980712891],[-93.81791687011707,31.557151794433707],[-93.83809661865234,31.604658126831055],[-93.81836700439447,31.6220703125],[-93.82691192626952,31.664220809936577],[-93.79618835449217,31.70000076293968],[-93.83695220947266,31.750259399414286],[-93.8408432006836,31.800220489502063],[-93.87135314941406,31.82071113586431],[-93.88522338867182,31.870599746704272],[-93.9704132080077,31.92288017272955],[-94.02334594726562,31.991212844848686],[-94.0419082641601,31.993850708007873],[-94.044692993164,32.4949493408206],[-94.04561614990234,33.02059936523443],[-93.57451629638666,33.01968002319336],[-93.09660339355469,33.01737213134794],[-92.62548065185547,33.013629913330135],[-92.14565277099598,33.00933074951177],[-91.46073150634766,33.00588989257818],[-91.1631469726562,33.00453186035179],[-91.1990127563476,32.96760177612305],[-91.21263885498041,32.93025970458979],[-91.1906127929687,32.90491104125982],[-91.13445281982416,32.9132194519043],[-91.13909912109375,32.970539093017635],[-91.09162902832026,32.977828979492415],[-91.06398773193354,32.90523910522461],[-91.10279083251947,32.86019897460943],[-91.14549255371094,32.842658996582315],[-91.15973663330072,32.81143188476557],[-91.15496063232416,32.74589920043956],[-91.0598373413086,32.72816085815441],[-91.06224822998041,32.70399856567383],[-91.15268707275378,32.64321899414079],[-91.133316040039,32.59352111816412],[-91.05551147460938,32.60750961303711],[-91.07485198974604,32.562709808349666],[-91.05835723876947,32.535049438476676],[-90.99562072753906,32.5096321105957],[-91.0196533203125,32.48484039306669],[-91.0785522460937,32.540328979492244],[-91.109130859375,32.53239059448248],[-91.11141967773438,32.478961944580305],[-91.0751342773437,32.44832992553722],[-91.03369903564453,32.436408996582145],[-91.00181579589832,32.44990921020525],[-90.96627807617188,32.42612075805664],[-91.00843811035156,32.37026977539056],[-90.99288940429688,32.35398101806646],[-90.9229125976562,32.34025192260742],[-90.90244293212879,32.32146072387701],[-90.94716644287098,32.284770965576165],[-90.9818496704101,32.28676223754911],[-90.98233032226557,32.21247100830106],[-91.04847717285155,32.23896026611334],[-91.16754150390618,32.19176101684576],[-91.16353607177729,32.13658905029308],[-91.05304718017578,32.123680114746094],[-91.0384216308593,32.17293930053722],[-91.00213623046875,32.16170883178728],[-91.04310607910145,32.096961975097656],[-91.10659790039057,32.0538902282716],[-91.0817260742187,32.01298904418945],[-91.0965728759765,31.991870880127014],[-91.16403198242176,31.981170654296815],[-91.18698883056635,31.954750061035213],[-91.1819458007812,31.920780181884876],[-91.27147674560541,31.85782051086443],[-91.33928680419916,31.84148025512695],[-91.37246704101562,31.765850067138725],[-91.28681945800781,31.77028274536144],[-91.2730484008789,31.743721008300778],[-91.37357330322266,31.747142791748104],[-91.39840698242186,31.706651687622124],[-91.39872741699213,31.63227081298839],[-91.43882751464844,31.61306953430187],[-91.5033493041991,31.644569396972653],[-91.51302337646484,31.60532951354992],[-91.48607635498041,31.585969924926875],[-91.42109680175781,31.59708976745611],[-91.44451904296874,31.546350479126147],[-91.51300811767577,31.5314102172851],[-91.50863647460938,31.441440582275504],[-91.47331237792957,31.386270523071403],[-91.51673889160156,31.37121009826672],[-91.55670928955077,31.429830551147518],[-91.57195281982422,31.379409790039233],[-91.51383972167957,31.318109512329155],[-91.53385925292963,31.272172927856502],[-91.6462631225586,31.266120910644528],[-91.64942169189447,31.242370605468807],[-91.59648895263666,31.189550399780387],[-91.62561798095703,31.121990203857536],[-91.56204223632812,31.05613136291515],[-91.57750701904297,31.032371520996147],[-91.63971710205072,30.999811172485405],[-91.0607681274414,30.999540328979776],[-90.56694793701172,31.00000953674322],[-90.19821929931635,31.00192070007324],[-89.75891876220703,31.002069473266655],[-89.72808074951166,30.969570159912227],[-89.75385284423828,30.94602012634277],[-89.78943634033203,30.851070404052788],[-89.7869415283203,30.817661285400614],[-89.83033752441406,30.782430648803768],[-89.82776641845703,30.734891891479496],[-89.84224700927734,30.6695499420166],[-89.80213165283203,30.55976104736339],[-89.77195739746082,30.518880844116268],[-89.689712524414,30.459020614624137],[-89.68418884277337,30.40998077392584],[-89.63477325439453,30.34647750854486],[-89.63101196289062,30.25790977478033],[-89.61322021484375,30.219869613647404],[-89.57482910156237,30.183120727539233],[-89.52471923828125,30.184724807739258]]]]},"properties":{"ID_0":244,"ISO":"US-LA","NAME_0":"United States","ID_1":19,"NAME_1":"Louisiana","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"LA"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-69.75055694580078,43.87416839599615],[-69.70736694335938,43.828006744384766],[-69.74749755859375,43.75972366333007],[-69.7813873291015,43.80444335937494],[-69.75055694580078,43.87416839599615]]],[[[-68.6266632080078,44.09027862548834],[-68.61138916015625,44.025554656982536],[-68.66110992431635,44.0172233581543],[-68.6266632080078,44.09027862548834]]],[[[-68.88166809082031,44.12472152709972],[-68.78111267089831,44.06305694580089],[-68.81444549560547,44.03277587890625],[-68.87416839599604,44.05361175537114],[-68.90944671630854,44.112499237060604],[-68.88166809082031,44.12472152709972]]],[[[-68.41916656494135,44.189167022705135],[-68.38577270507812,44.155349731445426],[-68.43166351318354,44.13000106811529],[-68.45916748046875,44.15499877929698],[-68.41916656494135,44.189167022705135]]],[[[-68.67166900634766,44.279998779296875],[-68.60361480712885,44.229999542236385],[-68.65888977050781,44.21111297607422],[-68.67583465576172,44.14916610717785],[-68.72138977050774,44.17111206054693],[-68.7111129760741,44.22638702392578],[-68.67166900634766,44.279998779296875]]],[[[-68.50416564941395,44.38388824462885],[-68.48777770996094,44.33166503906249],[-68.53305816650379,44.33055496215831],[-68.50416564941395,44.38388824462885]]],[[[-68.31916809082031,44.444999694824276],[-68.25055694580071,44.41472244262695],[-68.18777465820312,44.37305450439453],[-68.17416381835932,44.344444274902344],[-68.20805358886719,44.29694366455078],[-68.29444122314447,44.28666687011719],[-68.29158782958973,44.24644851684582],[-68.33972167968744,44.222221374511776],[-68.39631652832031,44.259983062744254],[-68.43166351318354,44.309722900390625],[-68.36972045898438,44.41999816894531],[-68.31916809082031,44.444999694824276]]],[[[-70.81687927246094,43.2120094299317],[-70.81997680664062,43.235870361328125],[-70.90750885009759,43.29243850708008],[-70.9148178100586,43.32049942016601],[-70.9743728637694,43.35213851928711],[-70.98787689208979,43.387279510498104],[-70.96219635009766,43.466480255127],[-70.9557113647461,43.55598068237316],[-70.97431182861328,43.572429656982415],[-71.00267028808588,44.110271453857536],[-71.0079269409179,44.245109558105526],[-71.02584075927729,44.5243492126466],[-71.03096771240234,44.65752029418945],[-71.08179473876953,45.30643463134777],[-70.95658874511719,45.34260940551769],[-70.92344665527332,45.318126678466854],[-70.89290618896479,45.24391937255854],[-70.84520721435541,45.26630401611333],[-70.80664825439452,45.32114028930669],[-70.82332611083984,45.40296936035167],[-70.79800415039057,45.428020477295036],[-70.75057220458984,45.425411224365234],[-70.71401214599604,45.39252090454107],[-70.65457153320307,45.377269744873104],[-70.62600708007812,45.403209686279354],[-70.65232849121092,45.44401931762701],[-70.71579742431635,45.48757171630865],[-70.7183990478515,45.51268005371094],[-70.64588165283203,45.604110717773494],[-70.55680847167969,45.665069580078125],[-70.46431732177729,45.70895004272466],[-70.39073181152344,45.731819152831974],[-70.41616058349604,45.795646667480526],[-70.34551239013666,45.850761413574276],[-70.26628875732422,45.88494110107433],[-70.25937652587884,45.95276260375988],[-70.31443023681629,45.96649169921881],[-70.31423950195301,46.02080154418951],[-70.28689575195312,46.09711074829113],[-70.24198150634766,46.150180816650504],[-70.292007446289,46.19094085693359],[-70.19534301757812,46.34339904785162],[-70.12684631347656,46.37109375000006],[-70.09528350830078,46.40811538696289],[-70.05715942382812,46.41468048095703],[-69.99708557128906,46.695831298828125],[-69.81244659423828,46.87874984741222],[-69.39196014404297,47.298362731933594],[-69.22181701660156,47.4576416015625],[-69.1785812377929,47.45686340332031],[-69.04431915283197,47.40275192260736],[-69.05471038818352,47.31463241577143],[-69.04049682617182,47.243904113769645],[-68.94210052490233,47.205745697021484],[-68.89749145507812,47.176639556884815],[-68.81584930419922,47.21191406249994],[-68.6893463134765,47.24277114868164],[-68.6124267578125,47.24597167968756],[-68.58042144775385,47.286880493164006],[-68.4752197265625,47.2969703674317],[-68.37779235839838,47.28829956054693],[-68.38133239746082,47.33795166015636],[-68.32906341552729,47.3598251342774],[-68.24383544921875,47.35255432128906],[-68.154296875,47.322502136230575],[-68.15181732177734,47.30778121948242],[-67.95795440673828,47.20030593872076],[-67.88933563232422,47.110572814941456],[-67.78359985351562,47.06317138671874],[-67.78392791748041,46.60226440429693],[-67.78098297119135,45.94573974609381],[-67.75350189208979,45.917171478271484],[-67.80268859863281,45.87368011474621],[-67.76174926757812,45.825729370117244],[-67.80201721191406,45.801391601562614],[-67.78246307373047,45.730873107910156],[-67.78874969482422,45.68232727050787],[-67.71001434326166,45.679435729980526],[-67.67357635498041,45.6277694702149],[-67.57849121093744,45.60028076171881],[-67.4565658569336,45.60535049438482],[-67.42267608642572,45.55192184448242],[-67.44830322265625,45.511108398437614],[-67.4876098632812,45.48968505859381],[-67.47399902343744,45.42370605468756],[-67.4215087890625,45.37628173828119],[-67.4776000976562,45.28729248046881],[-67.46630859375,45.24768066406261],[-67.41821289062489,45.189514160156364],[-67.35400390624994,45.1373291015625],[-67.30218505859375,45.145080566406364],[-67.28820800781244,45.1884765625],[-67.2427749633789,45.1691665649414],[-67.1632690429687,45.1583251953125],[-67.11473846435541,45.097518920898494],[-67.10861206054688,45.0591659545899],[-67.05413818359375,44.98749542236334],[-67.03887939453125,44.946716308593864],[-67.12167358398438,44.90969467163085],[-67.17138671874994,44.90888977050787],[-67.15023040771473,44.86348342895519],[-67.10250091552734,44.89389038085948],[-67.05450439453125,44.85949707031256],[-66.98858642578114,44.836303710937614],[-66.97903442382807,44.80555343627929],[-67.07348632812499,44.740905761718864],[-67.20657348632807,44.63934326171875],[-67.2669677734375,44.66588592529302],[-67.31061553955072,44.66108703613281],[-67.3094482421875,44.708889007568416],[-67.3869018554687,44.69053649902355],[-67.36194610595692,44.634166717529354],[-67.39643096923828,44.60139465332031],[-67.45900726318354,44.59593963623058],[-67.506622314453,44.63658142089855],[-67.554443359375,44.59888839721691],[-67.5648803710937,44.53253936767578],[-67.73468017578125,44.51531982421875],[-67.75988769531243,44.54949951171875],[-67.84897613525385,44.563297271728516],[-67.85070800781239,44.48828125],[-67.89385986328124,44.413108825683594],[-67.9808349609375,44.438610076904354],[-68.02804565429688,44.368618011474666],[-68.07722473144531,44.35472106933593],[-68.1050033569336,44.385555267333984],[-68.11444091796875,44.4808349609375],[-68.215835571289,44.5183334350587],[-68.2300033569336,44.46305465698248],[-68.29472351074213,44.47194290161133],[-68.3469467163086,44.45444488525402],[-68.4175033569336,44.39694595336925],[-68.43805694580071,44.48277664184581],[-68.4786148071289,44.42305374145519],[-68.56777954101562,44.386112213134766],[-68.54499816894531,44.35555648803722],[-68.56361389160156,44.30805587768566],[-68.53500366210938,44.29027938842785],[-68.52301788330072,44.23643112182622],[-68.63944244384764,44.289443969726676],[-68.68888854980457,44.29639053344738],[-68.75944519042963,44.33166503906249],[-68.7933349609375,44.30805587768566],[-68.8261108398437,44.33444595336914],[-68.82083129882811,44.38277816772466],[-68.778335571289,44.49222183227545],[-68.79888916015625,44.50138854980463],[-68.9338912963866,44.43638992309582],[-68.99388885498047,44.42139053344726],[-68.94889068603516,44.35777664184576],[-68.95388793945307,44.32389068603521],[-69.06055450439453,44.206943511963004],[-69.08081817626947,44.157241821289176],[-69.05712127685547,44.09525299072277],[-69.07296752929688,44.04657363891596],[-69.13204193115227,44.00464630126959],[-69.1905517578125,43.98249816894536],[-69.21083831787098,43.936965942382926],[-69.2726974487304,43.935874938964844],[-69.38996124267578,44.01059341430664],[-69.44132995605463,43.96589279174799],[-69.45931243896484,43.90298461914068],[-69.50255584716791,43.838333129882926],[-69.524169921875,43.87694549560547],[-69.61788940429688,43.84666824340832],[-69.6631622314452,43.8513412475587],[-69.65373229980469,43.93420791625988],[-69.70083618164051,43.9422225952149],[-69.76750183105469,43.8930549621582],[-69.83027648925781,43.984443664550895],[-69.88361358642578,43.95444488525396],[-69.80944824218744,43.92777633666992],[-69.81777954101562,43.880764007568416],[-69.79087829589842,43.790378570556754],[-69.79611206054688,43.734443664550724],[-69.83055877685547,43.723056793213004],[-69.87600708007807,43.791103363037166],[-69.85194396972656,43.83361053466808],[-69.8983306884765,43.871944427490284],[-69.95923614501953,43.85548400878911],[-70.01880645751952,43.859943389892635],[-70.05249786376953,43.83055496215826],[-70.11972045898436,43.80666732788086],[-70.20055389404291,43.73666763305664],[-70.25138854980457,43.67805480957037],[-70.20758819580072,43.62204742431651],[-70.19779968261719,43.567687988281364],[-70.27278137207031,43.5625],[-70.35194396972656,43.5363883972168],[-70.3855590820312,43.495277404785156],[-70.36750030517578,43.4366683959962],[-70.39231872558588,43.399234771728516],[-70.46544647216797,43.34030151367193],[-70.52194213867182,43.34333419799799],[-70.56117248535156,43.313766479492244],[-70.59416961669922,43.24583435058594],[-70.57527923583984,43.22111129760742],[-70.6185455322265,43.16439437866222],[-70.62313079833972,43.133895874023494],[-70.66518402099602,43.08361053466808],[-70.68666839599608,43.06472396850586],[-70.69668579101562,43.082252502441456],[-70.73222351074213,43.074443817138665],[-70.75666809082031,43.08527755737298],[-70.76583099365234,43.094722747802784],[-70.81984710693352,43.125907897949276],[-70.83222198486328,43.14444351196289],[-70.81687927246094,43.2120094299317]]]]},"properties":{"ID_0":244,"ISO":"US-ME","NAME_0":"United States","ID_1":20,"NAME_1":"Maine","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"ME|Maine"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-75.70194244384766,38.559722900390675],[-75.69416809082026,38.45927047729498],[-75.12847900390614,38.447093963623104],[-75.0999984741211,38.40916824340831],[-75.12722015380854,38.361389160156364],[-75.0954360961914,38.32993698120117],[-75.163330078125,38.23749923706066],[-75.21944427490229,38.24638748168945],[-75.28610992431635,38.14916610717779],[-75.29805755615234,38.099998474121094],[-75.33305358886719,38.10138702392584],[-75.37750244140625,38.0175018310548],[-75.62372589111328,37.99547958374035],[-75.64583587646479,37.97084045410156],[-75.6580581665039,37.95861053466791],[-75.73805236816399,37.983333587646484],[-75.7780532836914,37.97360992431646],[-75.8647232055664,37.913333892822266],[-75.89138793945307,37.956665039062614],[-75.8370132446289,38.0323944091798],[-75.83860778808594,38.12461853027349],[-75.88606262207026,38.14941024780285],[-75.95916748046875,38.138889312744254],[-75.9414291381836,38.187705993652344],[-75.88826751708979,38.20403289794933],[-75.91877746582026,38.26448440551758],[-75.8852767944336,38.32500076293951],[-75.8544464111328,38.3533325195313],[-75.8622207641601,38.37972259521495],[-75.83333587646479,38.38611221313488],[-75.84916687011712,38.40388870239258],[-75.84361267089838,38.42194366455078],[-75.82805633544922,38.42222213745117],[-75.81583404541016,38.43638992309576],[-75.83139038085938,38.45583343505871],[-75.82250213623047,38.48055648803705],[-75.76194763183592,38.5055541992188],[-75.7444458007812,38.536945343017635],[-75.72472381591797,38.53972244262695],[-75.70194244384766,38.559722900390675]]],[[[-76.3022232055664,39.03333282470709],[-76.27194213867188,38.94250106811535],[-76.36666870117188,38.908889770507805],[-76.35527801513666,38.956111907958984],[-76.3022232055664,39.03333282470709]]],[[[-75.78752136230469,39.72307968139654],[-75.7880630493164,39.65008926391613],[-75.76194763183592,39.33164978027355],[-75.72236633300781,38.82954025268566],[-75.70196533203125,38.56138992309581],[-75.72583007812493,38.54083251953131],[-75.74250030517578,38.53916549682617],[-75.75666809082031,38.52972412109375],[-75.758056640625,38.51305389404308],[-75.8180541992187,38.48833465576172],[-75.83694458007805,38.45583343505871],[-75.82305908203125,38.432498931884766],[-75.84666442871088,38.423053741455135],[-75.85722351074217,38.38861083984381],[-75.87083435058594,38.3774986267091],[-75.86638641357422,38.3572235107423],[-75.89954376220703,38.34940338134777],[-75.94046020507812,38.3056259155274],[-75.95694732666016,38.2477760314942],[-76.00116729736322,38.298336029052784],[-75.96403503417969,38.323966979980526],[-75.97337341308594,38.36553573608393],[-76.05027770996088,38.30916595458996],[-76.02722167968739,38.28166580200195],[-76.0422897338866,38.237255096435604],[-76.1555557250976,38.323890686035156],[-76.18364715576172,38.36009216308605],[-76.28166961669922,38.41305541992193],[-76.33194732666016,38.47416687011713],[-76.25305175781239,38.51805496215826],[-76.27655029296875,38.54508590698242],[-76.27533721923822,38.60415649414068],[-76.25410461425781,38.62261581420909],[-76.16388702392578,38.596389770507926],[-76.09027862548828,38.591945648193295],[-76.15528106689447,38.6580543518067],[-76.238052368164,38.71083450317383],[-76.34278106689447,38.748332977295036],[-76.29805755615229,38.828334808349666],[-76.25055694580072,38.82527923583996],[-76.19999694824213,38.80222320556635],[-76.19805908203125,38.845001220703125],[-76.16055297851562,38.87972259521484],[-76.16278076171875,38.90694427490229],[-76.2327880859375,38.95555114746105],[-76.1624984741211,39.006389617920036],[-76.17791748046875,39.03157424926769],[-76.14429473876953,39.08795166015619],[-76.15156555175774,39.107452392578125],[-76.23110961914057,39.082221984863224],[-76.24555206298828,39.1344451904298],[-76.27819061279297,39.14831161499018],[-76.18650817871094,39.318637847900334],[-76.11089324951172,39.37215805053716],[-76.05687713623041,39.371345520019645],[-76.03500366210938,39.402221679687614],[-75.98278045654286,39.435001373291016],[-75.96932983398432,39.47567367553711],[-75.99527740478516,39.48944473266607],[-75.97003936767578,39.55751800537121],[-76.0838851928711,39.54666519165045],[-76.11307525634766,39.50154495239269],[-76.1024169921875,39.43478012084972],[-76.15866088867188,39.406009674072266],[-76.20084381103516,39.364681243896534],[-76.28916931152338,39.31666564941406],[-76.33662414550781,39.34568786621094],[-76.42121887207031,39.23179244995122],[-76.4215087890625,39.21019744873058],[-76.49629211425781,39.20192337036133],[-76.49675750732422,39.22663116455078],[-76.55860900878895,39.23277664184582],[-76.51860809326172,39.170833587646484],[-76.48027801513665,39.16666793823242],[-76.43055725097656,39.13111114501953],[-76.45833587646484,39.0602760314942],[-76.39444732666009,39.011665344238274],[-76.47138977050781,38.9827766418457],[-76.45055389404291,38.941112518310604],[-76.51499938964838,38.91083145141613],[-76.49111175537108,38.88472366333002],[-76.53778076171874,38.86138916015625],[-76.49083709716797,38.836666107177734],[-76.55694580078125,38.74333190917969],[-76.52583312988281,38.724445343017685],[-76.5263900756836,38.65083312988281],[-76.51139068603509,38.61500167846691],[-76.51638793945312,38.53055572509771],[-76.49277496337885,38.48305511474615],[-76.41527557373047,38.413887023925724],[-76.38610839843749,38.36305618286127],[-76.42138671875,38.31916809082037],[-76.46222686767578,38.32443237304682],[-76.48555755615223,38.3774986267091],[-76.52333068847656,38.41243362426769],[-76.61916351318354,38.417778015136776],[-76.5019454956054,38.35916519165045],[-76.46185302734375,38.295959472656364],[-76.40040588378906,38.30976104736328],[-76.37333679199219,38.29861068725586],[-76.39916992187499,38.25694274902344],[-76.3822250366211,38.21333312988286],[-76.3199996948241,38.13833236694347],[-76.3294448852539,38.071109771728516],[-76.42282104492188,38.111785888671875],[-76.43738555908197,38.13445663452154],[-76.53956604003905,38.152370452880916],[-76.55000305175776,38.182777404785156],[-76.59127807617188,38.214904785156364],[-76.73055267333979,38.25055694580083],[-76.75138854980469,38.2224998474121],[-76.80528259277344,38.25229263305664],[-76.92631530761713,38.29413223266607],[-76.9300460815429,38.32266616821289],[-76.98324584960932,38.36376571655285],[-77.00218200683592,38.422988891601676],[-77.04181671142572,38.44482803344738],[-77.09145355224608,38.40755844116211],[-77.18805694580078,38.365051269531364],[-77.24953460693354,38.38232040405268],[-77.27360534667969,38.48167800903332],[-77.2350234985351,38.55345916748058],[-77.1844482421875,38.55861282348633],[-77.14907836914062,38.605339050293075],[-77.1042861938476,38.63354492187506],[-77.10093688964838,38.68544769287121],[-77.03681945800781,38.7094078063966],[-77.01642608642577,38.80926132202154],[-76.90969848632812,38.89252853393566],[-77.04148864746094,38.99505996704107],[-77.12050628662104,38.93373107910162],[-77.15483093261713,38.967350006103516],[-77.22567749023432,38.9761199951173],[-77.24825286865234,39.02806091308587],[-77.32726287841791,39.061119079589844],[-77.45316314697266,39.07286071777355],[-77.517578125,39.12377166748058],[-77.51510620117188,39.17042922973644],[-77.47358703613281,39.19351959228521],[-77.45635223388672,39.2284202575683],[-77.53774261474604,39.26604080200195],[-77.5698623657226,39.308151245117244],[-77.6350326538086,39.308689117431754],[-77.71972656249999,39.325309753418026],[-77.75768280029295,39.34051895141613],[-77.73954772949219,39.404010772705135],[-77.79225921630854,39.43307113647472],[-77.80246734619135,39.490268707275504],[-77.8391723632812,39.49766921997076],[-77.88199615478509,39.56248092651373],[-77.84004974365229,39.56811904907221],[-77.83941650390625,39.60691070556652],[-77.88593292236317,39.60029983520519],[-78.00673675537104,39.60235214233404],[-78.10209655761713,39.68072891235357],[-78.17941284179686,39.69755172729498],[-78.27274322509754,39.61857986450201],[-78.35508728027344,39.64162063598633],[-78.4062728881836,39.578701019287166],[-78.43984985351562,39.59024047851568],[-78.46636962890625,39.52022171020519],[-78.55940246582026,39.52043151855474],[-78.68025970458984,39.544219970703125],[-78.75669097900389,39.58245849609381],[-78.77593994140625,39.62488174438482],[-78.935791015625,39.484249114990234],[-78.96449279785156,39.4396705627442],[-79.0390396118164,39.477890014648494],[-79.09153747558588,39.473018646240284],[-79.16044616699219,39.391288757324276],[-79.37535858154291,39.272708892822266],[-79.42308807373047,39.22732925415038],[-79.48715209960926,39.20666885375988],[-79.47741699218744,39.72161102294922],[-79.04081726074213,39.72254943847656],[-78.48763275146484,39.72269058227544],[-77.93804931640625,39.7240104675293],[-77.39267730712885,39.719951629638615],[-76.99621582031244,39.719692230224666],[-76.41134643554682,39.72097015380871],[-75.78752136230469,39.72307968139654]]]]},"properties":{"ID_0":244,"ISO":"US-MD","NAME_0":"United States","ID_1":21,"NAME_1":"Maryland","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MD"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-70.04833221435541,41.39027786254883],[-70.02555847167957,41.37416839599615],[-69.9631118774414,41.28267288208008],[-69.971923828125,41.246852874755916],[-70.10166931152344,41.240554809570426],[-70.20083618164057,41.26861190795904],[-70.19388580322254,41.29666519165045],[-70.09249877929682,41.290554046630916],[-70.01999664306635,41.304443359375114],[-69.99845886230463,41.331787109375],[-70.04833221435541,41.39027786254883]]],[[[-70.59868621826166,41.48159027099615],[-70.54798126220692,41.40831375122082],[-70.44936370849604,41.3832740783692],[-70.4516296386718,41.3480339050294],[-70.61107635498047,41.3495445251466],[-70.73436737060547,41.33716201782238],[-70.77853393554688,41.30188369750988],[-70.83602905273438,41.344661712646484],[-70.77047729492175,41.35188293457037],[-70.70103454589838,41.42938613891607],[-70.65740966796875,41.46105194091808],[-70.59868621826166,41.48159027099615]]],[[[-70.19694519042967,42.08222198486334],[-70.12333679199219,42.06888961791992],[-70.03305816650385,42.01527786254883],[-69.97499847412104,41.92972183227544],[-69.9447250366211,41.83611297607421],[-69.9288864135742,41.7547225952149],[-69.98916625976562,41.736110687255916],[-69.94539642333984,41.70355606079113],[-69.9647216796875,41.65305709838867],[-70.00833129882812,41.67305374145519],[-70.13857269287098,41.65039062500006],[-70.19207763671875,41.648601531982536],[-70.24796295166016,41.627380371093864],[-70.34916687011719,41.635555267333984],[-70.40027618408203,41.6069450378418],[-70.43222045898438,41.6205558776856],[-70.45861053466791,41.574722290039176],[-70.4942550659179,41.55151748657238],[-70.63349914550776,41.53858947753912],[-70.64949798583984,41.646064758300895],[-70.616943359375,41.65722274780285],[-70.61833190917963,41.74000167846691],[-70.55000305175781,41.77527618408203],[-70.5063858032226,41.77138900756841],[-70.41388702392572,41.744445800781364],[-70.30955505371088,41.72587966918957],[-70.27748870849604,41.71031951904308],[-70.18833160400385,41.752777099609425],[-70.03778076171875,41.782222747802734],[-70.0011138916015,41.81611251831065],[-70.024169921875,41.93000030517584],[-70.07250213623047,41.90999984741211],[-70.07888793945312,41.99277877807617],[-70.1039199829101,42.040367126464844],[-70.15833282470703,42.06194305419922],[-70.21111297607415,42.03333282470703],[-70.24277496337885,42.06916809082031],[-70.19694519042967,42.08222198486334]]],[[[-70.81531524658203,42.86279678344732],[-70.79499816894531,42.75194549560558],[-70.77083587646479,42.70388793945323],[-70.71701049804688,42.6623306274414],[-70.64665222167963,42.689346313476676],[-70.59392547607416,42.63478088378912],[-70.67581939697266,42.60776901245123],[-70.6843032836914,42.587860107421925],[-70.88222503662102,42.53277587890636],[-70.84222412109375,42.51938629150396],[-70.89472198486322,42.459999084472656],[-70.94444274902344,42.457221984863395],[-70.98972320556629,42.413333892822266],[-70.97138977050776,42.37666702270519],[-71.03277587890625,42.328334808349666],[-71.01139068603516,42.27694320678705],[-70.95333099365234,42.25500106811518],[-70.88543701171875,42.24585342407221],[-70.83944702148438,42.27000045776372],[-70.76527404785156,42.244998931884815],[-70.71639251708979,42.20182418823242],[-70.711669921875,42.16777801513672],[-70.63861083984375,42.08889007568365],[-70.66699218749993,42.012271881103565],[-70.7111129760742,42.004722595214844],[-70.64625549316406,41.950099945068416],[-70.58281707763672,41.95095062255865],[-70.55509185791014,41.93032455444347],[-70.52583312988276,41.85944366455084],[-70.54222106933594,41.83111190795904],[-70.51583099365229,41.773612976074276],[-70.53888702392572,41.776943206787166],[-70.55860900878906,41.77416610717767],[-70.62388610839838,41.74916839599615],[-70.65555572509753,41.71277618408209],[-70.72201538085932,41.73584747314459],[-70.75179290771484,41.705154418945426],[-70.75762939453125,41.65502166748058],[-70.83616638183588,41.624530792236385],[-70.90385437011719,41.63202667236328],[-70.93083190917969,41.60889053344732],[-70.98809051513666,41.50828170776361],[-71.05859375,41.511260986328125],[-71.12061309814453,41.4955787658692],[-71.13324737548822,41.6594810485841],[-71.19892120361327,41.67826080322277],[-71.2276687622069,41.7150993347168],[-71.26138305664062,41.75149154663086],[-71.32591247558594,41.77928161621094],[-71.34367370605469,41.824249267578125],[-71.33856964111322,41.89826202392578],[-71.38236236572266,41.8914909362793],[-71.3796768188476,42.019100189208984],[-71.7979431152343,42.00889205932623],[-71.79910278320305,42.02379989624035],[-72.00298309326166,42.029071807861385],[-72.52633666992188,42.03504943847656],[-72.5732192993164,42.03012847900396],[-72.75743103027338,42.036151885986385],[-72.76860046386713,42.004291534423885],[-72.81815338134764,41.99790954589849],[-72.81553649902332,42.03765106201183],[-73.05438232421875,42.040538787841854],[-73.36583709716797,42.04973220825206],[-73.49005889892572,42.049701690673885],[-73.50840759277344,42.08575057983404],[-73.39566040039062,42.39731979370117],[-73.26745605468744,42.745159149170036],[-72.45662689208983,42.72761154174815],[-71.62925720214832,42.704231262207145],[-71.29679870605463,42.697780609130916],[-71.25987243652338,42.734920501708984],[-71.18434906005854,42.73754882812506],[-71.1891021728515,42.790748596191406],[-71.13334655761707,42.8215217590332],[-71.06595611572266,42.80630874633795],[-71.0318832397461,42.85802078247076],[-70.9166030883789,42.88666152954113],[-70.84805297851562,42.86087036132807],[-70.81531524658203,42.86279678344732]]]]},"properties":{"ID_0":244,"ISO":"US-MA","NAME_0":"United States","ID_1":22,"NAME_1":"Massachusetts","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Commonwealth of Massachusetts|MA|Mass."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-82.99703979492182,42.33023071289074],[-83.06623077392578,42.32081985473633],[-83.1464385986328,42.24065017700207],[-83.18913269042969,42.09902954101574],[-83.18865966796875,42.030860900878906],[-83.2425231933593,41.97632980346691],[-83.29273223876952,41.945331573486385],[-83.33065795898438,41.898559570312614],[-83.38072204589844,41.86888885498047],[-83.44158172607422,41.80265045166027],[-83.43036651611321,41.76332092285161],[-83.48401641845703,41.732791900634766],[-83.99973297119135,41.71569061279308],[-84.67555999755858,41.70069885253906],[-84.80667114257812,41.69580078125005],[-84.80755615234375,41.760501861572315],[-85.5762939453125,41.76026153564459],[-85.93197631835932,41.762321472168026],[-86.45262908935547,41.75992965698248],[-87.20712280273432,41.76071166992182],[-87.06904602050774,42.33909988403332],[-87.01808166503905,42.49470138549815],[-87.067398071289,42.81948089599604],[-87.12329101562493,43.19713211059575],[-87.1437759399414,43.305309295654354],[-87.15516662597645,43.443580627441406],[-87.14817810058588,43.57104873657238],[-87.12481689453118,43.71047210693359],[-87.08138275146484,43.88690185546875],[-87.03440093994135,44.04607009887695],[-86.96586608886707,44.255950927734375],[-86.86270904541014,44.533458709716854],[-86.79164123535156,44.69007873535156],[-86.72654724121094,44.8134002685548],[-86.64382934570312,44.933990478515625],[-86.5084991455078,45.066459655761776],[-86.42835998535149,45.1271705627442],[-86.24957275390625,45.23382186889654],[-86.76052856445307,45.44398117065435],[-87.09626007080078,45.441989898681584],[-87.17965698242182,45.34244155883789],[-87.30750274658203,45.24304962158209],[-87.40345764160156,45.20452880859381],[-87.43727111816406,45.07780075073248],[-87.66039276123041,45.107769012451286],[-87.67529296874994,45.13346099853527],[-87.74075317382812,45.175521850585994],[-87.71179199218744,45.26469039916997],[-87.6513595581054,45.342460632324276],[-87.7033462524414,45.3865699768067],[-87.76006317138665,45.34931945800787],[-87.85740661621094,45.34968948364258],[-87.88687133789061,45.36513137817377],[-87.85341644287104,45.4072608947755],[-87.85975646972656,45.43976974487305],[-87.78568267822266,45.496139526367244],[-87.82350158691395,45.56800079345703],[-87.78272247314453,45.60948944091802],[-87.82975006103516,45.65299224853527],[-87.78424072265625,45.67525100708019],[-87.87747192382807,45.75363922119146],[-87.95907592773438,45.758750915527344],[-87.99714660644526,45.79669189453125],[-88.06414794921874,45.780929565429744],[-88.1359024047851,45.816390991210994],[-88.07279968261717,45.872138977050895],[-88.0979995727539,45.916751861572266],[-88.19853973388672,45.953891754150504],[-88.32615661621088,45.959190368652344],[-88.3820495605468,45.99100112915045],[-88.41734313964838,45.97953033447277],[-88.52305603027344,46.0201301574707],[-88.60163879394531,46.01890182495122],[-88.6148681640625,45.99243927001959],[-88.74083709716791,46.02799224853526],[-88.85073852539062,46.04090881347662],[-89.08544158935547,46.13653182983404],[-89.26661682128906,46.17369079589855],[-89.92904663085938,46.300048828125],[-90.11775207519526,46.33657073974615],[-90.12104034423828,46.35794067382824],[-90.21678924560547,46.50550079345703],[-90.30802154541016,46.518741607666016],[-90.32829284667963,46.5547714233399],[-90.39273834228516,46.53889083862316],[-90.41870880126947,46.56695938110351],[-89.95797729492188,47.29117965698242],[-89.48774719238276,48.010860443115234],[-89.3390502929687,47.96989822387701],[-88.68901062011719,48.24150848388666],[-88.37091064453114,48.30424880981451],[-87.86489105224598,48.11369705200201],[-87.40586090087885,47.93407058715826],[-86.9500503540039,47.75260162353527],[-86.54266357421875,47.58848571777343],[-86.04337310791004,47.385589599609425],[-85.58722686767572,47.19679641723633],[-85.08937072753906,46.98918151855469],[-84.84339904785156,46.887283325195256],[-84.7637710571289,46.634880065918026],[-84.55606842041016,46.45965194702154],[-84.4763793945312,46.453151702880916],[-84.445571899414,46.48810577392578],[-84.37106323242188,46.50828170776372],[-84.30146789550776,46.4944419860841],[-84.25045013427729,46.502681732177734],[-84.22229766845696,46.53430938720709],[-84.12928771972655,46.53134918212902],[-84.109878540039,46.50212860107427],[-84.14324188232415,46.417133331298885],[-84.10652923583979,46.3214721679688],[-84.11344909667969,46.273307800292905],[-84.07260894775379,46.18754959106456],[-84.00502014160156,46.1505966186524],[-84.00047302246088,46.11433029174798],[-83.95479583740229,46.056240081787166],[-83.90355682373047,46.05847930908209],[-83.8258285522461,46.11650466918951],[-83.75665283203114,46.101470947265625],[-83.65439605712885,46.1194419860841],[-83.57113647460932,46.10256958007823],[-83.43562316894526,45.996528625488395],[-83.59211730957026,45.81868362426769],[-82.8934707641601,45.50675964355469],[-82.52536773681629,45.34091949462896],[-82.44964599609364,45.02643966674805],[-82.41751861572266,44.90666961669933],[-82.31079864501953,44.42530059814453],[-82.20767211914057,43.95124435424805],[-82.12290191650385,43.58837127685547],[-82.33206176757812,43.17657089233404],[-82.42434692382807,42.99829101562506],[-82.41134643554688,42.970714569091854],[-82.45320892333983,42.925727844238224],[-82.47816467285156,42.80305099487304],[-82.4669418334961,42.773891448974666],[-82.48304748535156,42.70889282226562],[-82.52133941650385,42.610420227050895],[-82.60019683837885,42.549579620361385],[-82.667739868164,42.533592224121094],[-82.82801818847656,42.373489379882926],[-82.86609649658197,42.36488723754883],[-82.86828613281244,42.327590942382805],[-82.93584442138672,42.344570159912166],[-82.99703979492182,42.33023071289074]]]},"properties":{"ID_0":244,"ISO":"US-MI","NAME_0":"United States","ID_1":23,"NAME_1":"Michigan","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MI|Mich."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.48774719238276,48.010860443115234],[-89.95797729492188,47.29117965698242],[-90.66310119628906,47.30253219604498],[-91.16647338867188,47.07197952270519],[-91.47432708740229,46.933589935302734],[-92.02097320556635,46.705890655517635],[-92.08677673339838,46.74848937988281],[-92.14028167724604,46.73797988891613],[-92.20291137695312,46.70471954345714],[-92.17941284179676,46.68450164794933],[-92.21241760253906,46.65069198608398],[-92.28830718994135,46.66788864135742],[-92.28991699218744,46.07062149047863],[-92.33354949951172,46.056579589843864],[-92.34934234619135,46.01506042480463],[-92.42616271972655,46.01951980590832],[-92.47383117675781,45.97315979003906],[-92.53526306152344,45.97851943969738],[-92.54872131347656,45.95252990722656],[-92.63555908203125,45.93120193481457],[-92.72895050048827,45.87358856201171],[-92.76248931884754,45.83015060424805],[-92.784912109375,45.761981964111385],[-92.86492919921875,45.717460632324325],[-92.8853912353515,45.63793182373058],[-92.88076782226562,45.57435989379877],[-92.81909942626947,45.5603408813476],[-92.77217864990229,45.56787109375006],[-92.72820281982422,45.544311523437614],[-92.72400665283203,45.513210296630916],[-92.64618682861328,45.44691848754894],[-92.64541625976562,45.40578079223633],[-92.69808959960932,45.36170959472662],[-92.70358276367188,45.326229095458984],[-92.75834655761719,45.290390014648494],[-92.74672698974604,45.107582092285156],[-92.80014038085932,45.072299957275504],[-92.76832580566405,45.03247070312505],[-92.75467681884766,44.95714950561518],[-92.76438140869135,44.8381805419923],[-92.80222320556635,44.74462890624999],[-92.73252105712885,44.715030670166065],[-92.5683364868164,44.60174942016613],[-92.5416259765625,44.56864166259771],[-92.36638641357422,44.55821990966791],[-92.31600952148438,44.54072952270519],[-92.28473663330078,44.48208999633788],[-92.211669921875,44.43642044067394],[-92.05819702148426,44.40224075317394],[-91.95923614501953,44.36016845703131],[-91.91506958007812,44.31468200683594],[-91.88848114013672,44.224102020263786],[-91.8118896484375,44.16049194335949],[-91.72551727294922,44.13095092773449],[-91.70950317382807,44.10575103759777],[-91.57084655761713,44.027778625488395],[-91.51145172119135,44.02219009399414],[-91.43450927734375,43.99748992919922],[-91.36734008789057,43.9392204284668],[-91.27906799316406,43.840740203857536],[-91.24598693847656,43.77518081665039],[-91.26664733886707,43.71619033813488],[-91.26715087890625,43.62329864501953],[-91.23175811767577,43.58444976806646],[-91.24170684814453,43.54475021362298],[-91.21996307373047,43.50228881835949],[-92.08278656005852,43.50210189819341],[-92.55296325683581,43.50273895263672],[-93.28439331054688,43.50317001342768],[-93.9691162109375,43.50442886352545],[-94.5,43.50336837768549],[-95.28247833251942,43.50363922119151],[-96.0841217041015,43.50265884399414],[-96.45408630371094,43.50263214111334],[-96.45316314697266,43.85147857666021],[-96.45375061035149,44.198329925537166],[-96.45337677001947,44.544448852539176],[-96.45320892333973,44.978752136230575],[-96.4519271850586,45.302162170410206],[-96.50586700439453,45.369800567627],[-96.60874938964831,45.40938949584961],[-96.67417144775379,45.4115104675293],[-96.73165893554682,45.45928955078125],[-96.77336883544922,45.528610229492244],[-96.85455322265625,45.6074600219726],[-96.83033752441406,45.656688690185604],[-96.73145294189447,45.71072006225597],[-96.66736602783197,45.7350311279298],[-96.57878875732416,45.8318214416505],[-96.56125640869129,45.935581207275504],[-96.57715606689447,46.03075027465832],[-96.55515289306629,46.073089599609375],[-96.59771728515625,46.22259902954107],[-96.60398101806629,46.33179092407226],[-96.70368194580078,46.4188804626466],[-96.73628997802734,46.47864151000971],[-96.75917053222655,46.59801864624035],[-96.80259704589838,46.65642166137695],[-96.78176879882812,46.763061523437614],[-96.80082702636717,46.81550216674805],[-96.77536010742176,46.89971923828125],[-96.79831695556635,46.963729858398544],[-96.8345260620117,47.012840270996094],[-96.81748962402338,47.1101913452149],[-96.84092712402344,47.23004913330078],[-96.84517669677733,47.31657028198242],[-96.8341293334961,47.334701538086044],[-96.85188293457031,47.47874069213873],[-96.87166595458979,47.52569961547857],[-96.85124969482416,47.588119506835994],[-96.93121337890625,47.73451995849621],[-96.9358673095703,47.767002105713004],[-96.9754867553711,47.80340194702154],[-97.02021026611328,47.92015075683594],[-97.05416107177734,47.945430755615234],[-97.0748901367187,48.050350189208984],[-97.12265014648432,48.105571746826286],[-97.1476058959961,48.18201065063482],[-97.11515045166003,48.295780181884766],[-97.16057586669922,48.39348220825195],[-97.1229019165039,48.43828201293945],[-97.15696716308594,48.479492187500114],[-97.14785003662104,48.61254119873047],[-97.09348297119135,48.6839714050293],[-97.18553924560547,48.81288909912121],[-97.1786499023437,48.871818542480526],[-97.21280670166004,48.906089782714844],[-97.23898315429688,48.96694183349615],[-97.22947692871087,49.00002288818371],[-96.78406524658202,49.00003814697277],[-96.17877197265625,49.000072479248104],[-95.75,49.000000000000114],[-95.1513900756836,48.99995040893566],[-95.14965057373047,49.38329696655285],[-95.0538101196289,49.35296630859375],[-94.95607757568358,49.36944961547851],[-94.85285186767578,49.323375701904354],[-94.8254165649414,49.294742584228565],[-94.7718658447265,49.12236022949218],[-94.74797058105469,49.09748458862305],[-94.67808532714844,48.87779617309576],[-94.68231964111322,48.808830261230526],[-94.62059020996088,48.73738861083995],[-94.53514099121088,48.70233535766607],[-94.45195007324219,48.69279098510748],[-94.41650390624994,48.71025466918945],[-94.25695037841795,48.70345306396496],[-94.22329711914057,48.66024398803722],[-94.16982269287098,48.649860382080135],[-94.08052062988281,48.65375900268566],[-93.85050964355463,48.631637573242244],[-93.8169708251953,48.61455535888683],[-93.80554962158203,48.54293060302734],[-93.75177001953125,48.51976013183605],[-93.61286926269526,48.52466583251959],[-93.46788024902344,48.546634674072266],[-93.46360015869135,48.591957092285206],[-93.34674072265624,48.626598358154354],[-93.25643920898438,48.642494201660156],[-93.17977142333983,48.62282943725597],[-93.09317016601562,48.627220153808594],[-92.9472427368164,48.621395111083984],[-92.7268295288086,48.53911209106457],[-92.63541412353514,48.54261016845709],[-92.6314697265625,48.49869537353521],[-92.69600677490229,48.49237060546875],[-92.65268707275385,48.44081878662104],[-92.5068359375,48.450401306152344],[-92.4664840698242,48.434989929199276],[-92.47480773925781,48.37329101562511],[-92.40264129638666,48.291835784912166],[-92.36433410644531,48.233757019043026],[-92.26934814453124,48.25109481811535],[-92.30151367187499,48.3120002746582],[-92.26251220703125,48.35475921630871],[-92.2092056274414,48.34635543823242],[-92.14511108398438,48.36547851562494],[-92.05484008789057,48.35908889770502],[-91.99980926513666,48.32101440429699],[-91.98326110839844,48.260986328125],[-91.89157104492182,48.2327613830567],[-91.86229705810541,48.211212158203125],[-91.72283172607422,48.20127487182622],[-91.6961898803711,48.183803558349545],[-91.6910629272461,48.12732315063488],[-91.62953186035156,48.119125366210994],[-91.53746032714837,48.08300399780279],[-91.47730255126947,48.0800895690918],[-91.39911651611317,48.057098388671875],[-91.37143707275384,48.070446014404354],[-91.2653121948241,48.07798004150396],[-91.13675689697254,48.15468978881836],[-91.02908325195305,48.19108963012695],[-90.97420501708984,48.22059249877941],[-90.88575744628906,48.246135711670036],[-90.83993530273436,48.24586868286138],[-90.81394958496094,48.19068145751959],[-90.74224090576172,48.113662719726676],[-90.63751220703114,48.10586929321294],[-90.58590698242182,48.12222671508789],[-90.52440643310536,48.10276412963867],[-90.43859100341797,48.107788085937614],[-90.34657287597656,48.098293304443416],[-90.13582611083984,48.1126823425293],[-90.03350830078125,48.09634780883794],[-89.97427368164062,48.04409027099604],[-89.86762237548828,47.9980087280274],[-89.76985931396472,48.02291107177746],[-89.48774719238276,48.010860443115234]]]},"properties":{"ID_0":244,"ISO":"US-MN","NAME_0":"United States","ID_1":24,"NAME_1":"Minnesota","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MN|Minn."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-88.19957733154295,34.997821807861385],[-88.15249633789057,34.926921844482536],[-88.0979614257812,34.89635848999029],[-88.11116790771484,34.7831916809082],[-88.15349578857422,34.48810958862305],[-88.20667266845697,34.0458221435548],[-88.24739837646477,33.74988937377941],[-88.30110931396484,33.299499511718864],[-88.3370895385742,33.000080108642635],[-88.3909072875976,32.556411743164176],[-88.42616271972656,32.26203155517584],[-88.47203063964844,31.899951934814734],[-88.45070648193354,31.444009780883846],[-88.43276977539057,31.149320602416932],[-88.4101333618164,30.70327949523937],[-88.39940643310541,30.3950023651123],[-88.39915466308594,30.38804435730009],[-88.39838409423828,30.387275695800838],[-88.39692687988276,30.35546684265148],[-88.3931274414062,30.350992202758903],[-88.40916442871094,30.369443893432617],[-88.48100280761719,30.318437576293945],[-88.5647201538086,30.34388923645048],[-88.56610870361322,30.395832061767692],[-88.60832977294922,30.41083335876465],[-88.6131820678711,30.372909545898434],[-88.7106246948242,30.342327117919922],[-88.73815155029291,30.34462928771978],[-88.81111145019526,30.38500022888195],[-88.90583038330067,30.394443511962947],[-89.00444793701172,30.387500762939453],[-89.08333587646484,30.36861038208025],[-89.24475860595697,30.313867568969727],[-89.29194641113276,30.30388832092279],[-89.27999877929688,30.36055755615234],[-89.35333251953124,30.369722366333008],[-89.33916473388665,30.296112060546932],[-89.41972351074219,30.254167556762695],[-89.44889068603514,30.201944351196346],[-89.52471923828125,30.184724807739258],[-89.57482910156237,30.183120727539233],[-89.61322021484375,30.219869613647404],[-89.63101196289062,30.25790977478033],[-89.63477325439453,30.34647750854486],[-89.68418884277337,30.40998077392584],[-89.689712524414,30.459020614624137],[-89.77195739746082,30.518880844116268],[-89.80213165283203,30.55976104736339],[-89.84224700927734,30.6695499420166],[-89.82776641845703,30.734891891479496],[-89.83033752441406,30.782430648803768],[-89.7869415283203,30.817661285400614],[-89.78943634033203,30.851070404052788],[-89.75385284423828,30.94602012634277],[-89.72808074951166,30.969570159912227],[-89.75891876220703,31.002069473266655],[-90.19821929931635,31.00192070007324],[-90.56694793701172,31.00000953674322],[-91.0607681274414,30.999540328979776],[-91.63971710205072,30.999811172485405],[-91.57750701904297,31.032371520996147],[-91.56204223632812,31.05613136291515],[-91.62561798095703,31.121990203857536],[-91.59648895263666,31.189550399780387],[-91.64942169189447,31.242370605468807],[-91.6462631225586,31.266120910644528],[-91.53385925292963,31.272172927856502],[-91.51383972167957,31.318109512329155],[-91.57195281982422,31.379409790039233],[-91.55670928955077,31.429830551147518],[-91.51673889160156,31.37121009826672],[-91.47331237792957,31.386270523071403],[-91.50863647460938,31.441440582275504],[-91.51300811767577,31.5314102172851],[-91.44451904296874,31.546350479126147],[-91.42109680175781,31.59708976745611],[-91.48607635498041,31.585969924926875],[-91.51302337646484,31.60532951354992],[-91.5033493041991,31.644569396972653],[-91.43882751464844,31.61306953430187],[-91.39872741699213,31.63227081298839],[-91.39840698242186,31.706651687622124],[-91.37357330322266,31.747142791748104],[-91.2730484008789,31.743721008300778],[-91.28681945800781,31.77028274536144],[-91.37246704101562,31.765850067138725],[-91.33928680419916,31.84148025512695],[-91.27147674560541,31.85782051086443],[-91.1819458007812,31.920780181884876],[-91.18698883056635,31.954750061035213],[-91.16403198242176,31.981170654296815],[-91.0965728759765,31.991870880127014],[-91.0817260742187,32.01298904418945],[-91.10659790039057,32.0538902282716],[-91.04310607910145,32.096961975097656],[-91.00213623046875,32.16170883178728],[-91.0384216308593,32.17293930053722],[-91.05304718017578,32.123680114746094],[-91.16353607177729,32.13658905029308],[-91.16754150390618,32.19176101684576],[-91.04847717285155,32.23896026611334],[-90.98233032226557,32.21247100830106],[-90.9818496704101,32.28676223754911],[-90.94716644287098,32.284770965576165],[-90.90244293212879,32.32146072387701],[-90.9229125976562,32.34025192260742],[-90.99288940429688,32.35398101806646],[-91.00843811035156,32.37026977539056],[-90.96627807617188,32.42612075805664],[-91.00181579589832,32.44990921020525],[-91.03369903564453,32.436408996582145],[-91.0751342773437,32.44832992553722],[-91.11141967773438,32.478961944580305],[-91.109130859375,32.53239059448248],[-91.0785522460937,32.540328979492244],[-91.0196533203125,32.48484039306669],[-90.99562072753906,32.5096321105957],[-91.05835723876947,32.535049438476676],[-91.07485198974604,32.562709808349666],[-91.05551147460938,32.60750961303711],[-91.133316040039,32.59352111816412],[-91.15268707275378,32.64321899414079],[-91.06224822998041,32.70399856567383],[-91.0598373413086,32.72816085815441],[-91.15496063232416,32.74589920043956],[-91.15973663330072,32.81143188476557],[-91.14549255371094,32.842658996582315],[-91.10279083251947,32.86019897460943],[-91.06398773193354,32.90523910522461],[-91.09162902832026,32.977828979492415],[-91.13909912109375,32.970539093017635],[-91.13445281982416,32.9132194519043],[-91.1906127929687,32.90491104125982],[-91.21263885498041,32.93025970458979],[-91.1990127563476,32.96760177612305],[-91.1631469726562,33.00453186035179],[-91.1232070922851,33.04489898681635],[-91.13343811035156,33.06985092163086],[-91.1991119384765,33.10557937622076],[-91.17611694335932,33.143138885498104],[-91.10302734375,33.130241394043026],[-91.08685302734368,33.1520309448245],[-91.09247589111322,33.21709060668945],[-91.05364990234375,33.247180938720874],[-91.08489227294922,33.276882171630966],[-91.11247253417969,33.24589157104492],[-91.14437103271477,33.33504104614286],[-91.05716705322266,33.4273185729981],[-91.09596252441406,33.44879913330084],[-91.11171722412108,33.393680572509766],[-91.16921997070312,33.380290985107536],[-91.19449615478516,33.4179496765139],[-91.13165283203125,33.42916870117216],[-91.12610626220703,33.47439956665039],[-91.1765670776367,33.49641036987316],[-91.23066711425776,33.548419952392635],[-91.22438812255854,33.56781005859381],[-91.13588714599604,33.59233093261719],[-91.13629913330078,33.622840881347656],[-91.18389892578125,33.6549911499024],[-91.2188262939453,33.6605110168457],[-91.20845794677729,33.70071029663097],[-91.16152954101557,33.704860687255916],[-91.09281158447266,33.65715026855463],[-91.03778076171875,33.671562194824276],[-91.04870605468743,33.70973968505871],[-91.10269165039055,33.70724868774414],[-91.14575958251953,33.730079650878906],[-91.1430358886718,33.77301025390631],[-91.05506896972656,33.777740478515625],[-91.024169921875,33.76340103149419],[-91.0040664672851,33.80142974853521],[-91.04622650146479,33.814350128173885],[-91.07050323486328,33.86698913574219],[-91.00734710693348,33.92829132080084],[-91.08651733398438,33.95845031738287],[-91.08571624755854,33.97850036621105],[-91.01798248291016,34.001789093017635],[-90.9959869384765,33.96387100219732],[-90.96324157714844,33.96887969970703],[-90.98674011230463,34.01914978027355],[-90.88780975341797,34.0267791748048],[-90.87010192871088,34.09104156494152],[-90.94072723388672,34.10102081298828],[-90.95450592041009,34.13861083984375],[-90.91028594970703,34.16529846191406],[-90.84227752685547,34.140018463134766],[-90.81282806396484,34.15819931030279],[-90.83593749999994,34.19076156616211],[-90.83098602294916,34.2725715637207],[-90.76856994628906,34.27719116210949],[-90.7460327148437,34.31315994262707],[-90.76956176757807,34.35536193847662],[-90.74828338623047,34.37266921997082],[-90.67916870117182,34.36820220947277],[-90.57575988769531,34.41558074951172],[-90.5881729125976,34.50506210327143],[-90.54213714599604,34.53960037231445],[-90.57801055908202,34.602619171142635],[-90.55819702148438,34.646888732910156],[-90.51595306396484,34.635009765625114],[-90.4717407226562,34.67076873779297],[-90.4769515991211,34.699810028076115],[-90.54035949707031,34.70389938354498],[-90.5688018798828,34.72166061401373],[-90.51396179199219,34.80002975463873],[-90.48787689208973,34.727760314941406],[-90.4465103149414,34.754928588867244],[-90.47255706787108,34.79524993896496],[-90.45980072021484,34.824321746826286],[-90.48574829101557,34.86536026000971],[-90.44159698486322,34.88703155517578],[-90.42064666748036,34.833099365234375],[-90.34803009033203,34.859870910644645],[-90.32254791259766,34.846328735351676],[-90.24449920654286,34.90898132324219],[-90.24855041503906,34.9493789672851],[-90.30976867675781,34.99660873413086],[-89.88611602783203,34.996200561523494],[-89.30813598632812,34.99573135375982],[-88.92314147949219,34.99608993530279],[-88.19957733154295,34.997821807861385]]]},"properties":{"ID_0":244,"ISO":"US-MS","NAME_0":"United States","ID_1":25,"NAME_1":"Mississippi","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MS|Miss."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-91.42041015625,40.37800979614257],[-91.46582031249999,40.333351135253956],[-91.50485992431635,40.237548828125],[-91.51146697998047,40.12919998168951],[-91.49294281005852,40.030868530273494],[-91.41963195800781,39.91773223876959],[-91.44725036621088,39.874309539794915],[-91.43390655517572,39.844730377197266],[-91.36862182617188,39.80150985717779],[-91.36624145507811,39.72851943969738],[-91.27519226074219,39.666461944580135],[-91.24236297607422,39.63103103637707],[-91.18009185791016,39.599239349365234],[-91.16358947753906,39.55728912353526],[-91.09442138671875,39.532348632812614],[-91.060302734375,39.471580505371094],[-90.99164581298828,39.42308044433594],[-90.85743713378906,39.352481842041065],[-90.79711914062494,39.31177902221674],[-90.72669982910156,39.24869155883789],[-90.70310974121088,39.13827133178711],[-90.6824722290039,39.10945892333996],[-90.7124633789062,39.05490875244152],[-90.67455291748047,38.98577880859375],[-90.661148071289,38.928131103515625],[-90.62252044677727,38.88901901245123],[-90.57279205322266,38.86922073364269],[-90.50617980957024,38.905330657958984],[-90.46972656249994,38.961410522460994],[-90.38276672363276,38.95951080322271],[-90.32347869873047,38.93149948120117],[-90.25535583496087,38.92240905761719],[-90.11405944824219,38.85079956054693],[-90.115966796875,38.81048965454113],[-90.21204376220696,38.72344207763683],[-90.1789474487304,38.63215255737316],[-90.1922607421875,38.602478027343864],[-90.25949096679688,38.53298187255865],[-90.29840850830078,38.42538070678722],[-90.343505859375,38.387161254882926],[-90.37238311767572,38.32244873046881],[-90.37303161621087,38.278018951416016],[-90.34976196289057,38.21408081054693],[-90.27091217041009,38.15587997436535],[-90.23059844970702,38.10490036010748],[-90.12670135498041,38.060611724853516],[-90.10891723632812,38.03078079223644],[-90.05265808105469,38.007930755615234],[-89.98267364501953,37.96065902709961],[-89.94937133789062,37.88224029541021],[-89.88656616210932,37.87683105468749],[-89.84182739257807,37.904430389404354],[-89.7960586547851,37.85887908935547],[-89.73972320556629,37.84666061401373],[-89.66256713867176,37.78924179077154],[-89.67066192626947,37.757499694824276],[-89.58212280273436,37.710449218750114],[-89.51522064208979,37.68917083740239],[-89.5158615112304,37.63887023925787],[-89.47628784179682,37.59352874755871],[-89.52201080322266,37.55828857421875],[-89.49256134033203,37.493350982666016],[-89.44420623779297,37.444339752197266],[-89.4242095947265,37.39405059814453],[-89.4426193237304,37.34225082397455],[-89.50981140136719,37.31307983398443],[-89.51802062988281,37.276660919189446],[-89.46540069580078,37.252639770507926],[-89.45791625976562,37.186901092529354],[-89.42121124267578,37.131698608398494],[-89.37856292724598,37.0941619873048],[-89.38477325439453,37.04539871215826],[-89.29093933105469,36.98950958251953],[-89.25860595703125,37.01903915405279],[-89.25036621093743,37.06333923339844],[-89.17191314697266,36.971309661865234],[-89.1338882446289,36.983871459960994],[-89.10166931152344,36.94449996948248],[-89.13111877441406,36.85879898071289],[-89.17848205566395,36.838760375976676],[-89.16118621826166,36.79119873046881],[-89.20163726806635,36.72507095336914],[-89.1660385131836,36.663551330566406],[-89.19824981689453,36.63304901123047],[-89.22885894775389,36.56766891479486],[-89.27493286132812,36.57167053222662],[-89.31931304931635,36.62232971191406],[-89.3776626586914,36.61787033081055],[-89.41960144042969,36.498039245605526],[-89.46463775634766,36.457099914550895],[-89.48729705810545,36.499889373779354],[-89.47117614746094,36.53084182739269],[-89.49890136718744,36.57802963256836],[-89.56279754638666,36.571800231933594],[-89.57295227050781,36.546211242675724],[-89.541748046875,36.500339508056584],[-89.52037811279286,36.47090148925781],[-89.55148315429686,36.441398620605526],[-89.51924133300781,36.388339996338004],[-89.52641296386719,36.3459205627442],[-89.60420227050768,36.344612121581974],[-89.61666107177729,36.31863021850586],[-89.54556274414062,36.27909088134771],[-89.55058288574213,36.252170562744254],[-89.60826873779291,36.24090957641613],[-89.67331695556635,36.252090454101676],[-89.69854736328125,36.2308807373048],[-89.58956146240234,36.14751052856445],[-89.60698699951172,36.11838912963873],[-89.65635681152338,36.10235977172857],[-89.681396484375,36.04302978515636],[-89.7169418334961,36.0015220642091],[-90.37732696533197,35.995090484619084],[-90.29045867919916,36.11500930786144],[-90.2384033203125,36.13822937011713],[-90.22168731689447,36.181148529052784],[-90.12837982177734,36.23046875000006],[-90.11355590820307,36.26523971557623],[-90.0680160522461,36.297771453857536],[-90.08075714111315,36.32051086425787],[-90.06600952148438,36.383781433105526],[-90.13665008544922,36.422080993652344],[-90.15357208251953,36.496299743652344],[-90.57686614990234,36.49647140502941],[-90.95155334472645,36.496860504150504],[-91.49015808105463,36.49763870239269],[-92.03105926513672,36.4969100952149],[-92.52845001220697,36.496490478515625],[-93.2854614257812,36.4967994689942],[-93.90712738037108,36.4982795715332],[-94.61815643310547,36.49837112426763],[-94.61897277832026,36.99996185302745],[-94.61727905273432,37.38238143920904],[-94.61480712890614,38.036460876464844],[-94.61344909667963,38.38924026489258],[-94.60816192626953,38.846279144287166],[-94.6082916259765,39.12036895751947],[-94.63912200927727,39.15444946289068],[-94.68992614746087,39.181869506835994],[-94.74864196777344,39.17232131958019],[-94.78721618652338,39.207500457763665],[-94.83648681640624,39.22029876708996],[-94.82805633544922,39.24858093261719],[-94.88765716552723,39.290729522705135],[-94.93068695068358,39.38491058349621],[-94.99127960205077,39.447910308838004],[-95.0346069335937,39.461738586425895],[-95.05657958984375,39.50371170043945],[-95.10457611083984,39.53586959838878],[-95.10365295410149,39.581199645996094],[-95.05754852294922,39.58356857299799],[-95.03668975830071,39.657138824463],[-94.96967315673817,39.69498062133789],[-94.95189666748041,39.747261047363395],[-94.89314270019531,39.7257194519043],[-94.86963653564453,39.73841094970703],[-94.89263916015625,39.83568954467785],[-94.94117736816406,39.86022186279308],[-94.93644714355463,39.89501953125005],[-95.01846313476557,39.89868164062506],[-95.04828643798828,39.864570617675895],[-95.13162994384766,39.87726974487316],[-95.15110778808592,39.907840728759766],[-95.20622253417969,39.9114608764649],[-95.30799865722649,39.99988937377941],[-95.34881591796868,40.029270172119254],[-95.4112777709961,40.03567886352539],[-95.42119598388672,40.05913162231445],[-95.39393615722649,40.10676956176758],[-95.43402862548828,40.15740966796875],[-95.47885131835936,40.18572998046881],[-95.4708862304687,40.23479080200195],[-95.55255889892567,40.261718750000114],[-95.55066680908203,40.28609085083008],[-95.61737823486322,40.31372070312506],[-95.6990127563476,40.505180358886776],[-95.76909637451172,40.53646850585943],[-95.7650680541992,40.5855598449707],[-95.20273590087884,40.57901000976568],[-94.76725006103516,40.57258987426758],[-94.49624633789057,40.57028198242199],[-94.22850799560547,40.5706405639649],[-93.68660736083984,40.57825088500971],[-93.28959655761719,40.580390930175895],[-92.6037368774414,40.5919189453125],[-92.06111907958977,40.603260040283196],[-91.72843933105469,40.614028930664055],[-91.67800903320312,40.55303955078124],[-91.61891937255854,40.53722000122082],[-91.62037658691405,40.516380310058594],[-91.56607055664057,40.46202087402344],[-91.52803802490227,40.459110260009766],[-91.5239028930664,40.41233062744146],[-91.48558044433588,40.38566207885742],[-91.42041015625,40.37800979614257]]]},"properties":{"ID_0":244,"ISO":"US-MO","NAME_0":"United States","ID_1":26,"NAME_1":"Missouri","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MO"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-104.04959106445307,49.000045776367294],[-104.04664611816393,48.38920974731457],[-104.04485321044922,48.00696182250988],[-104.04135131835936,47.91120910644531],[-104.0421524047851,47.44240951538097],[-104.04548645019526,47.18722915649414],[-104.04483795166014,46.64025115966808],[-104.04521942138672,46.28055191040045],[-104.0442886352539,45.94382858276367],[-104.0425033569336,45.55717849731457],[-104.03971099853516,44.99861907958996],[-104.05712890624994,44.99866104125982],[-104.70012664794922,44.99890899658209],[-105.0391998291015,44.99982070922863],[-105.91963958740227,45.00167846679682],[-105.93305969238281,44.997280120849666],[-106.26776885986327,44.99747848510748],[-107.00086212158203,44.99720001220709],[-107.23050689697266,45.00070953369151],[-107.96453857421875,45.000820159912045],[-108.49481964111328,45.001281738281364],[-109.08265686035155,45.00104904174805],[-109.17556762695307,45.00419998168957],[-109.72589874267578,45.00310897827143],[-110.13246154785156,45.00215148925787],[-110.20060729980457,44.99420166015636],[-110.37171173095702,44.99721908569336],[-110.40206146240234,44.99206161499023],[-110.70717620849604,44.99285125732433],[-110.77559661865234,45.001850128173885],[-111.05300140380847,44.9998893737793],[-111.05513763427734,44.6668815612793],[-111.0487289428711,44.4772300720216],[-111.11194610595703,44.490871429443416],[-111.13313293457031,44.53385925292968],[-111.1820602416992,44.5683708190919],[-111.22852325439453,44.580318450927734],[-111.25489044189447,44.65090179443371],[-111.33693695068358,44.731929779052734],[-111.3927612304687,44.750968933105526],[-111.4876480102539,44.703090667724545],[-111.47173309326165,44.66799926757818],[-111.52117156982422,44.61470031738281],[-111.50757598876953,44.562278747558594],[-111.61666107177734,44.549110412597656],[-111.70124816894531,44.5586509704591],[-111.76660156249994,44.528011322021484],[-111.84430694580077,44.52912139892584],[-111.86934661865223,44.56618881225585],[-111.94825744628906,44.55696105957037],[-111.97585296630854,44.53910064697277],[-112.03589630126953,44.544330596923885],[-112.11444091796864,44.52539062500011],[-112.22392272949207,44.544868469238224],[-112.2862319946289,44.569118499755916],[-112.35578155517572,44.53300094604492],[-112.3834228515625,44.449279785156364],[-112.4668884277343,44.478900909423885],[-112.50125122070301,44.464931488037166],[-112.54226684570312,44.48559951782238],[-112.66506958007807,44.48810195922862],[-112.71492767333984,44.505580902099666],[-112.78270721435547,44.48299026489258],[-112.83776092529295,44.42301940917969],[-112.81443023681634,44.39477920532232],[-112.85076141357416,44.358100891113395],[-112.904556274414,44.39897155761719],[-112.97856140136712,44.43222045898443],[-113.02422332763666,44.49374008178716],[-113.00942993164057,44.527019500732536],[-113.08577728271484,44.60416030883789],[-113.05252075195311,44.62907028198253],[-113.13465118408197,44.7754020690918],[-113.24751281738281,44.822879791259766],[-113.3285675048827,44.78882217407232],[-113.38710784912104,44.8386802673341],[-113.45603942871087,44.869979858398494],[-113.49172210693354,44.925960540771534],[-113.4488906860351,44.9556007385255],[-113.43859863281244,45.00783920288097],[-113.45484161376953,45.05990219116222],[-113.48876190185541,45.06468200683593],[-113.55175018310547,45.112850189208984],[-113.59056854248047,45.18058013916026],[-113.6874160766601,45.25794219970709],[-113.68772125244129,45.28544998168945],[-113.73848724365234,45.33082962036133],[-113.7335968017578,45.3900718688966],[-113.78024291992188,45.45209121704112],[-113.75855255126947,45.48418045043945],[-113.77310180664061,45.52172088623052],[-113.8338623046875,45.51961898803705],[-113.79740142822266,45.583091735839844],[-113.81862640380854,45.61006927490245],[-113.90670776367188,45.624568939208984],[-113.8983764648437,45.64971923828131],[-113.98562622070307,45.704719543457145],[-114.01467132568358,45.658760070800724],[-114.06456756591797,45.62884140014654],[-114.08351135253906,45.59706115722662],[-114.14068603515618,45.5566520690918],[-114.2017593383789,45.535438537597706],[-114.22936248779297,45.547359466552784],[-114.27153778076166,45.48403930664074],[-114.34059906005852,45.45949172973644],[-114.3684463500976,45.4918098449707],[-114.42681121826166,45.513469696045036],[-114.46774291992188,45.564689636230575],[-114.55738830566406,45.5707893371582],[-114.53904724121088,45.61233901977539],[-114.56237030029297,45.638771057128906],[-114.50997161865229,45.65647888183588],[-114.50074005126952,45.71800994873052],[-114.56553649902344,45.77730941772455],[-114.51315307617186,45.84299087524419],[-114.38598632812494,45.88628005981445],[-114.43171691894531,45.93975067138672],[-114.4269561767578,45.98537063598644],[-114.48750305175781,46.00328063964843],[-114.49426269531249,46.05138015747081],[-114.4602661132812,46.094451904296875],[-114.52436065673822,46.14707946777344],[-114.50419616699219,46.16942977905285],[-114.4468765258789,46.17393112182622],[-114.45215606689447,46.239139556884766],[-114.41536712646479,46.338520050048885],[-114.41900634765625,46.392768859863274],[-114.3924713134765,46.411220550537166],[-114.38157653808588,46.460391998291016],[-114.40328979492186,46.498908996582145],[-114.34458160400384,46.51733016967785],[-114.3250732421875,46.611099243164006],[-114.33091735839844,46.65861129760748],[-114.43216705322264,46.66014099121094],[-114.46794128417969,46.63304901123046],[-114.5419464111328,46.65205001831055],[-114.59097290039062,46.63652038574219],[-114.64138031005854,46.66588973999035],[-114.62938690185547,46.713420867920036],[-114.6940689086914,46.73913955688488],[-114.75325012207026,46.69955062866211],[-114.78440856933588,46.709308624267635],[-114.76790618896484,46.760261535644474],[-114.88899993896484,46.80926895141607],[-114.9432373046875,46.85945129394531],[-114.92325592041016,46.91519927978515],[-115.0145416259765,46.97518920898449],[-115.04988098144531,46.970748901367244],[-115.08354949951172,47.04393005371094],[-115.10897827148425,47.053329467773494],[-115.18415832519531,47.1279792785645],[-115.29631042480469,47.18864059448248],[-115.2931060791015,47.22064208984386],[-115.32601165771479,47.260028839111435],[-115.40880584716791,47.265338897705135],[-115.50293731689446,47.28733062744146],[-115.55426788330078,47.34683990478521],[-115.60431671142565,47.37866210937499],[-115.75197601318361,47.436679840088004],[-115.7047271728515,47.45449066162121],[-115.68971252441406,47.48748016357433],[-115.70553588867186,47.53404998779308],[-115.75248718261713,47.55353164672857],[-115.68984222412104,47.592601776123104],[-115.7278594970703,47.64252853393555],[-115.72399902343744,47.696281433105526],[-115.83143615722658,47.7523193359375],[-115.84829711914062,47.81541061401373],[-115.90030670166009,47.84254074096691],[-116.02147674560547,47.96451187133789],[-116.04709625244134,47.97301101684582],[-116.04956054687494,48.61183166503912],[-116.0507202148437,49.00037384033209],[-115.37889862060547,49.00006103515619],[-114.67194366455078,49.000095367431754],[-114.24502563476557,49.000083923339844],[-113.71639251708979,49.00003814697277],[-113.25,49.000000000000114],[-112.76576995849604,49.00001907348633],[-111.99925994873047,49.000000000000114],[-111.5089874267578,49.0000114440918],[-110.76078796386713,49.000000000000114],[-110.46959686279297,49.00003433227545],[-109.74128723144526,49.0000114440918],[-108.94216918945311,49.00011825561535],[-108.02102661132812,49.00003051757824],[-107.2088851928711,49.000045776367294],[-106.54457855224604,49.000045776367294],[-106.10801696777344,49.000080108642635],[-105.61226654052729,49.00070953369146],[-104.80355072021479,49.00005340576166],[-104.04959106445307,49.000045776367294]]]},"properties":{"ID_0":244,"ISO":"US-MT","NAME_0":"United States","ID_1":27,"NAME_1":"Montana","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"MT|Mont."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-96.44995117187494,42.48947906494152],[-96.38627624511719,42.478660583496094],[-96.3833618164062,42.438270568847656],[-96.4148712158202,42.40877151489258],[-96.41858673095692,42.35197067260748],[-96.37149047851562,42.314220428466854],[-96.32240295410156,42.23239135742199],[-96.35761260986321,42.21535873413085],[-96.34030151367186,42.15946197509771],[-96.2686080932617,42.11492919921874],[-96.269790649414,42.04290008544927],[-96.23829650878906,42.04108047485357],[-96.17478942871094,41.97829055786133],[-96.13353729248036,41.96995925903325],[-96.1598129272461,41.90803146362315],[-96.10942840576172,41.82608032226574],[-96.06791687011713,41.785739898681754],[-96.11728668212885,41.695449829101676],[-96.09368896484375,41.640201568603565],[-96.11525726318358,41.60998153686523],[-96.07404327392578,41.57339096069341],[-96.09552001953125,41.54486846923828],[-96.04012298583984,41.51821136474614],[-96.0171127319336,41.48749160766596],[-95.92415618896484,41.46094894409191],[-95.95326995849604,41.3501091003419],[-95.93472290039062,41.326850891113274],[-95.90933990478514,41.23062896728527],[-95.92780303955072,41.197158813476555],[-95.85936737060547,41.18632888793945],[-95.879669189453,41.14587020874035],[-95.86030578613268,41.08689880371094],[-95.86933135986321,41.00865936279296],[-95.82760620117188,40.97346115112299],[-95.83789062499994,40.939029693603565],[-95.8106079101562,40.90024948120117],[-95.84304046630854,40.86970901489258],[-95.83296203613281,40.784938812255916],[-95.88831329345697,40.73598098754894],[-95.84239959716795,40.67708969116211],[-95.79515075683588,40.66239166259771],[-95.75086212158203,40.60903930664074],[-95.7650680541992,40.5855598449707],[-95.76909637451172,40.53646850585943],[-95.6990127563476,40.505180358886776],[-95.61737823486322,40.31372070312506],[-95.55066680908203,40.28609085083008],[-95.55255889892567,40.261718750000114],[-95.4708862304687,40.23479080200195],[-95.47885131835936,40.18572998046881],[-95.43402862548828,40.15740966796875],[-95.39393615722649,40.10676956176758],[-95.42119598388672,40.05913162231445],[-95.4112777709961,40.03567886352539],[-95.34881591796868,40.029270172119254],[-95.30799865722649,39.99988937377941],[-96.01006317138672,40.00130081176758],[-96.80671691894526,40.0021705627442],[-97.37114715576172,40.00352859497081],[-97.99389648437499,40.002861022949325],[-98.27548980712889,40.00379180908209],[-98.99961853027342,40.00214004516607],[-99.62758636474604,40.00281143188471],[-100.19460296630858,40.00276184082031],[-100.68540191650385,40.003250122070426],[-101.29899597167963,40.004219055175895],[-102.04854583740234,40.00391006469738],[-102.04926300048821,40.34949874877935],[-102.05042266845703,41.00186920166021],[-102.62048339843749,41.00313949584966],[-102.98530578613281,41.00292205810541],[-103.57476043701166,41.00302886962896],[-104.05284118652332,41.001701354980526],[-104.05198669433582,41.394931793213004],[-104.05223083496094,41.700370788574276],[-104.0524673461914,42.08790969848644],[-104.05248260498047,42.61280059814459],[-104.05265045166003,43.00279998779297],[-103.63710784912104,43.001129150390625],[-103.22856140136712,42.99987030029308],[-102.50831604003905,42.998790740966854],[-101.6774673461914,42.99526977539068],[-101.22769927978516,42.99528884887695],[-100.75086212158203,42.99465179443365],[-100.19835662841791,42.99792098999018],[-99.6529312133789,42.99760055541992],[-99.25251007080072,42.9973411560058],[-98.50005340576165,42.99765014648437],[-98.4639663696289,42.94559860229503],[-98.34464263916016,42.89213943481451],[-98.24179840087885,42.865600585937614],[-98.126953125,42.81991195678722],[-98.05587005615234,42.77059173583989],[-98.01196289062493,42.76224899291998],[-97.94235992431635,42.7765007019043],[-97.88291931152338,42.828258514404354],[-97.87570190429682,42.85726165771484],[-97.82689666748047,42.86854934692394],[-97.7916030883789,42.84027099609369],[-97.708023071289,42.8588485717774],[-97.68215942382811,42.83349990844721],[-97.63408660888672,42.85998916625988],[-97.5897598266601,42.842449188232536],[-97.48414611816406,42.868171691894524],[-97.44138336181635,42.84645080566412],[-97.35588836669922,42.873600006103516],[-97.21930694580078,42.84654998779308],[-97.20980072021483,42.809329986572266],[-97.14066314697266,42.793190002441406],[-97.13471984863281,42.77392959594732],[-96.97498321533203,42.757431030273494],[-96.9207992553711,42.7330207824707],[-96.85941314697266,42.722702026367244],[-96.76580047607416,42.66289138793951],[-96.69304656982416,42.660518646240234],[-96.71321868896484,42.609069824218864],[-96.62798309326166,42.55015945434576],[-96.60624694824213,42.504489898681584],[-96.55103302001947,42.52178192138671],[-96.50003051757801,42.48455047607416],[-96.44995117187494,42.48947906494152]]]},"properties":{"ID_0":244,"ISO":"US-NE","NAME_0":"United States","ID_1":28,"NAME_1":"Nebraska","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NE|Nebr."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-114.04038238525385,41.99338150024414],[-114.03996276855469,41.34764862060547],[-114.04055023193354,40.79679870605469],[-114.04868316650379,40.21612930297857],[-114.04633331298828,39.64641189575201],[-114.04878997802734,39.21791076660162],[-114.05201721191399,38.9993515014649],[-114.04911041259766,38.57279968261719],[-114.04937744140624,38.032859802246094],[-114.05406951904295,37.64472961425787],[-114.05095672607416,36.99998855590826],[-114.04796600341797,36.48881149291998],[-114.04865264892572,36.195098876953125],[-114.06939697265625,36.18202972412114],[-114.15087127685547,36.02880096435547],[-114.23375701904291,36.01391220092785],[-114.3738021850586,36.143798828125],[-114.4400177001953,36.12734985351574],[-114.51081848144526,36.15275192260748],[-114.62979125976562,36.142059326171875],[-114.67988586425777,36.11285018920904],[-114.73661041259766,36.10419082641596],[-114.753921508789,36.08106994628906],[-114.72442626953121,36.0326499938966],[-114.74530029296875,35.984611511230526],[-114.73191833496094,35.94451904296881],[-114.67109680175781,35.875728607177734],[-114.70729064941393,35.848899841308594],[-114.71275329589844,35.80863189697277],[-114.68296051025385,35.685562133789176],[-114.68483734130858,35.64273071289062],[-114.65865325927722,35.61623001098644],[-114.67594909667967,35.582672119140625],[-114.65940856933587,35.53543853759771],[-114.67825317382812,35.51501083374018],[-114.67028808593737,35.469749450683594],[-114.62188720703126,35.390602111816406],[-114.59561920166004,35.32456970214844],[-114.58245086669915,35.211620330810604],[-114.5707168579101,35.18000030517578],[-114.5839767456054,35.1271705627442],[-114.62948608398438,35.12147903442394],[-114.60668182373036,35.07686996459972],[-114.63520812988281,35.035320281982415],[-114.63286590576172,35.00207901000988],[-114.93524932861327,35.24694061279297],[-115.22070312500001,35.47436904907238],[-115.59126281738281,35.766059875488395],[-115.89499664306629,36.00152969360363],[-116.23110961914061,36.262580871582145],[-116.59462738037108,36.5400009155274],[-117.16394805908199,36.9698219299317],[-117.5108032226562,37.22805023193371],[-117.8338623046875,37.465518951416016],[-118.3943710327148,37.87263870239269],[-118.85913848876953,38.20465087890619],[-119.33056640624999,38.53644943237305],[-119.70334625244139,38.795349121093864],[-120.00094604492176,39.000530242919915],[-120.0053482055664,39.28754043579113],[-120.00219726562499,39.7387199401856],[-119.99684906005848,40.05765151977545],[-119.99555206298827,40.4350814819337],[-119.99990844726564,40.933101654052784],[-119.99858093261717,41.36825180053722],[-119.99841308593749,41.69052124023432],[-120.00031280517578,41.995319366455135],[-119.506362915039,41.99246215820307],[-119.04779052734374,41.99464035034191],[-118.7764358520508,41.99296188354492],[-118.23407745361317,41.99626922607416],[-117.71524047851555,41.99824142456065],[-117.28637695312494,41.99853897094732],[-117.02926635742182,42.00030899047857],[-116.43517303466797,41.99805068969738],[-115.99278259277342,41.99637985229492],[-115.22638702392578,41.99446105957037],[-114.85457611083984,42.000251770019645],[-114.59839630126953,41.99534988403326],[-114.04038238525385,41.99338150024414]]]},"properties":{"ID_0":244,"ISO":"US-NV","NAME_0":"United States","ID_1":29,"NAME_1":"Nevada","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NV|Nev."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.08179473876953,45.30643463134777],[-71.03096771240234,44.65752029418945],[-71.02584075927729,44.5243492126466],[-71.0079269409179,44.245109558105526],[-71.00267028808588,44.110271453857536],[-70.97431182861328,43.572429656982415],[-70.9557113647461,43.55598068237316],[-70.96219635009766,43.466480255127],[-70.98787689208979,43.387279510498104],[-70.9743728637694,43.35213851928711],[-70.9148178100586,43.32049942016601],[-70.90750885009759,43.29243850708008],[-70.81997680664062,43.235870361328125],[-70.81687927246094,43.2120094299317],[-70.82611083984375,43.17406082153326],[-70.8262939453125,43.17342758178711],[-70.83499908447266,43.14722061157238],[-70.81999969482422,43.1183319091798],[-70.75666809082031,43.07944488525401],[-70.74166870117182,43.075553894043026],[-70.74388885498047,43.06722259521495],[-70.73000335693354,43.06444549560547],[-70.72555541992176,43.07361221313488],[-70.71055603027338,43.07277679443353],[-70.73194122314447,43.02249908447271],[-70.80999755859375,42.91110992431646],[-70.81531524658203,42.86279678344732],[-70.84805297851562,42.86087036132807],[-70.9166030883789,42.88666152954113],[-71.0318832397461,42.85802078247076],[-71.06595611572266,42.80630874633795],[-71.13334655761707,42.8215217590332],[-71.1891021728515,42.790748596191406],[-71.18434906005854,42.73754882812506],[-71.25987243652338,42.734920501708984],[-71.29679870605463,42.697780609130916],[-71.62925720214832,42.704231262207145],[-72.45662689208983,42.72761154174815],[-72.47955322265614,42.76514053344732],[-72.53206634521479,42.799240112304794],[-72.55626678466797,42.86149978637706],[-72.5256958007812,42.91704940795893],[-72.53244781494135,42.95019912719738],[-72.46894073486322,42.97478103637707],[-72.44692230224604,43.01359939575195],[-72.46572875976551,43.058490753173885],[-72.43524932861328,43.12055206298834],[-72.45376586914061,43.146358489990234],[-72.4341430664062,43.25625991821294],[-72.39569854736322,43.31509017944347],[-72.4127197265625,43.364120483398494],[-72.38091278076166,43.49419021606457],[-72.39760589599604,43.5093994140625],[-72.3776168823242,43.57247924804699],[-72.33777618408203,43.592922210693416],[-72.30145263671875,43.698028564453125],[-72.2328872680664,43.74576950073253],[-72.18389129638665,43.80344009399414],[-72.17279815673827,43.88134002685547],[-72.11731719970696,43.922149658203125],[-72.10730743408197,44.009658813476676],[-72.04624938964844,44.08555221557617],[-72.04280090332031,44.155349731445426],[-72.0692520141601,44.19213867187505],[-72.05311584472656,44.24422073364257],[-72.06490325927734,44.275531768798885],[-72.0282211303711,44.31779861450189],[-71.90088653564453,44.34555053710932],[-71.81964874267578,44.35198211669933],[-71.79556274414057,44.394889831543026],[-71.7033004760742,44.41381072998058],[-71.57936859130854,44.503410339355526],[-71.59429931640625,44.55030059814459],[-71.55339050292967,44.59355926513672],[-71.56241607666016,44.65011978149414],[-71.63387298583984,44.749969482421875],[-71.5766372680664,44.79111862182623],[-71.54973602294922,44.86273956298834],[-71.49823760986328,44.905189514160156],[-71.54281616210938,44.98374938964838],[-71.51013946533197,45.015563964843864],[-71.48467254638666,45.08094024658209],[-71.42907714843743,45.12522125244152],[-71.41320800781249,45.22015762329113],[-71.36026000976562,45.26858139038097],[-71.28388214111328,45.30230712890625],[-71.23162078857422,45.25122451782238],[-71.16233062744135,45.246860504150504],[-71.08179473876953,45.30643463134777]]]},"properties":{"ID_0":244,"ISO":"US-NH","NAME_0":"United States","ID_1":30,"NAME_1":"New Hampshire","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NH|N.H."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-74.69547271728516,41.35763931274414],[-74.33434295654291,41.18642044067388],[-73.90151977539062,40.99758911132806],[-73.92137908935541,40.90834045410156],[-73.969970703125,40.81641006469732],[-74.01300048828125,40.75902938842784],[-74.02426147460938,40.71444320678705],[-74.09166717529297,40.64944458007823],[-74.19083404541016,40.64361190795904],[-74.2066650390625,40.62472152709966],[-74.2147216796875,40.56472396850586],[-74.25472259521473,40.54722213745117],[-74.26139068603509,40.4647216796875],[-74.19277954101562,40.44194412231445],[-74.13749694824212,40.456665039062436],[-74.05928039550776,40.422878265380916],[-73.99893188476557,40.41084289550792],[-74.0119171142577,40.379055023193416],[-73.97204589843744,40.32826995849621],[-73.98690795898432,40.256729125976676],[-74.03051757812489,40.124965667724666],[-74.05972290039061,39.997501373291016],[-74.1176986694336,40.00109481811518],[-74.1134262084961,39.93175506591791],[-74.13959503173822,39.88427352905279],[-74.13033294677729,39.86307144165045],[-74.1802139282226,39.7983512878418],[-74.19266510009766,39.7641105651856],[-74.16726684570307,39.7388801574707],[-74.17394256591791,39.70261383056646],[-74.21639251708984,39.67027664184576],[-74.22019195556635,39.644119262695426],[-74.3070297241211,39.60160446166997],[-74.33846282958984,39.568183898925895],[-74.41388702392572,39.55055618286144],[-74.40576171874994,39.461555480957145],[-74.45738983154297,39.44735336303722],[-74.49138641357422,39.398887634277344],[-74.61943817138672,39.30361175537121],[-74.61392211914062,39.26042556762707],[-74.63777923583979,39.217224121093864],[-74.71111297607422,39.18305587768555],[-74.68638610839844,39.167499542236385],[-74.71097564697264,39.120571136474666],[-74.78916931152344,39.10222244262695],[-74.82555389404297,39.05389022827159],[-74.81565093994135,39.02251434326183],[-74.85250091552734,39.008056640625],[-74.87723541259764,38.95284652709961],[-74.91166687011719,38.93083190917969],[-74.97225189208979,38.940334320068416],[-74.95700836181629,38.99826049804699],[-74.89855194091797,39.096073150634766],[-74.8861236572265,39.143367767333984],[-74.899169921875,39.173332214355526],[-74.99722290039057,39.20138931274414],[-75.01953887939446,39.222778320312614],[-75.16752624511719,39.20378112792969],[-75.17186737060541,39.23682022094721],[-75.2439575195312,39.27717590332031],[-75.25434875488276,39.30101776123047],[-75.314453125,39.31061172485363],[-75.3276138305664,39.340538024902344],[-75.39247894287108,39.36118698120117],[-75.43833160400389,39.393333435058594],[-75.46719360351557,39.372249603271484],[-75.56221771240234,39.470611572265625],[-75.53217315673828,39.49834060668945],[-75.51053619384766,39.57286071777344],[-75.56025695800781,39.62549972534191],[-75.51194763183588,39.673038482666016],[-75.46174621582031,39.76274871826183],[-75.41435241699219,39.803329467773494],[-75.32813262939453,39.85042190551758],[-75.24324798583984,39.855251312255916],[-75.19003295898438,39.88151168823242],[-75.14877319335932,39.884288787841854],[-75.13844299316406,39.944351196289006],[-75.0510025024414,40.00849914550781],[-74.93350982666016,40.0706291198731],[-74.86622619628906,40.085529327392685],[-74.8153305053711,40.12874984741211],[-74.72767639160156,40.14804077148449],[-74.77233123779297,40.21466064453125],[-74.83735656738281,40.247798919677784],[-74.883560180664,40.309211730957145],[-74.9436569213866,40.34506988525402],[-74.96920776367182,40.40135955810547],[-75.03727722167963,40.40800094604498],[-75.07051849365234,40.44784164428711],[-75.06819915771479,40.543239593505916],[-75.09678649902338,40.56641006469737],[-75.19304656982422,40.579139709472656],[-75.20388031005854,40.692680358886776],[-75.167739868164,40.77922058105469],[-75.13263702392578,40.7758407592774],[-75.0867233276367,40.817970275878906],[-75.09252166748041,40.848850250244254],[-75.05380249023432,40.86898040771495],[-75.13263702392578,40.990322113037166],[-75.02649688720697,41.04159927368164],[-74.98101043701166,41.08016204833996],[-74.98371124267567,41.10562896728521],[-74.91963195800781,41.14157867431651],[-74.85928344726562,41.221599578857365],[-74.82543182373047,41.29217910766596],[-74.75060272216791,41.34553146362316],[-74.69547271728516,41.35763931274414]]]},"properties":{"ID_0":244,"ISO":"US-NJ","NAME_0":"United States","ID_1":31,"NAME_1":"New Jersey","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NJ|N.J."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-103.00086975097656,36.99898910522461],[-103.00065612792957,36.50128936767584],[-103.04077911376947,36.50046920776372],[-103.04077911376947,36.1136207580567],[-103.04088592529291,35.622451782226676],[-103.04209899902344,35.186050415039176],[-103.0423812866211,34.747211456298885],[-103.04264831542969,34.367630004882926],[-103.04270935058588,34.000709533691406],[-103.05136108398432,33.640220642089844],[-103.06317138671874,33.00173950195324],[-103.06365203857422,32.52151870727545],[-103.06416320800776,31.9996395111084],[-103.39540100097656,32.000831604003906],[-104.02654266357422,32.00101852416998],[-104.7313003540039,32.0032005310058],[-105.25343322753906,32.00167846679693],[-105.7547531127929,32.00162887573253],[-106.31398010253899,32.00181961059582],[-106.61930084228516,32.001171112060774],[-106.61881256103516,31.916641235351847],[-106.63600158691406,31.869449615478633],[-106.5771713256836,31.81162071228027],[-106.52902984619135,31.784490585327145],[-107.0009765625,31.78400039672863],[-107.53060150146479,31.783960342407337],[-108.2090225219726,31.78452110290527],[-108.20905303955067,31.33402061462402],[-108.76750946044915,31.332780838012695],[-109.04997253417963,31.33189964294434],[-109.04878997802734,31.91115188598638],[-109.04814910888672,32.25138092041044],[-109.04759216308587,32.5987091064456],[-109.04698181152342,32.977729797363395],[-109.04670715332031,33.47565078735363],[-109.04667663574217,33.8202018737793],[-109.04640197753906,34.390869140625114],[-109.04574584960938,34.81711959838867],[-109.04576110839844,35.16600036621105],[-109.04572296142578,35.6636695861817],[-109.04515838623047,36.01681137084972],[-109.04498291015625,36.68064880371105],[-109.04487609863281,36.9986305236817],[-108.53621673583984,36.99837875366211],[-107.9649810791015,36.99711990356451],[-107.19048309326172,36.99908065795909],[-106.87873840332026,36.999038696289055],[-106.87174224853516,36.99227905273443],[-106.20223999023438,36.99480056762701],[-105.71881866455067,36.9969215393067],[-105.06598663330077,36.99544906616222],[-105.03260040283203,36.9933700561524],[-104.33133697509764,36.99296951293956],[-104.00679016113281,36.996631622314396],[-103.00086975097656,36.99898910522461]]]},"properties":{"ID_0":244,"ISO":"US-NM","NAME_0":"United States","ID_1":32,"NAME_1":"New Mexico","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NM|N.M."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-74.08528137207031,40.64889144897461],[-74.05268096923828,40.60137176513683],[-74.11552429199219,40.54777145385742],[-74.24808502197266,40.496196746826286],[-74.246109008789,40.541942596435604],[-74.21805572509766,40.55638885498058],[-74.19833374023432,40.59527587890636],[-74.2011108398437,40.63111114501959],[-74.08528137207031,40.64889144897461]]],[[[-72.33410644531244,41.10768508911144],[-72.31222534179688,41.0538902282716],[-72.37489318847656,41.070472717285156],[-72.33410644531244,41.10768508911144]]],[[[-72.24447631835926,41.16104507446295],[-72.25527954101562,41.13388824462896],[-72.32651519775389,41.13322448730469],[-72.37583160400389,41.08277893066412],[-72.3902740478515,41.02999877929699],[-72.4386138916015,41.03138732910156],[-72.46916961669922,41.002777099609375],[-72.5266647338866,40.97999954223632],[-72.57250213623041,40.935832977295036],[-72.49833679199213,40.894443511963004],[-72.40666961669916,40.95027923583979],[-72.37166595458979,40.993888854980526],[-72.3183364868164,41.011665344238395],[-72.2713851928711,41.00194549560558],[-72.1624984741211,41.05361175537121],[-72.11027526855463,40.99472045898432],[-72.05555725097656,41.02249908447271],[-72.02222442626953,41.02138900756836],[-71.96029663085936,41.07021713256836],[-71.91497802734364,41.08055496215826],[-71.87414550781244,41.05174255371105],[-71.94778442382801,41.03133392333996],[-72.20603179931634,40.93839263916021],[-72.40325164794916,40.863117218017635],[-72.48278045654291,40.88305664062506],[-72.5055541992187,40.8491668701173],[-72.54944610595697,40.849723815918075],[-72.58631134033203,40.80867004394536],[-72.64964294433594,40.79505920410156],[-72.74714660644526,40.80255889892583],[-72.80214691162104,40.784225463867244],[-72.81714630126947,40.75922775268566],[-72.86944580078125,40.739166259765625],[-72.88639068603504,40.765277862548885],[-72.94527435302734,40.74083328247076],[-73.02471923828125,40.7466659545899],[-73.03686523437494,40.72950363159174],[-73.11049652099604,40.72001266479492],[-73.16824340820312,40.6986122131347],[-73.2388916015625,40.71027755737305],[-73.38682556152342,40.656845092773494],[-73.49643707275385,40.635402679443416],[-73.59567260742188,40.63381576538086],[-73.68776702880848,40.5930747985841],[-73.746109008789,40.594722747802734],[-73.80110931396484,40.61194610595703],[-73.82337188720696,40.64927673339855],[-73.89665222167969,40.62366485595709],[-73.89543151855469,40.57699584960948],[-73.99999999999989,40.57110977172857],[-74.04203796386713,40.62841415405268],[-74.01999664306635,40.67861175537115],[-73.97368621826172,40.70675277709972],[-73.96055603027344,40.74416732788097],[-73.90885162353516,40.79110336303722],[-73.87889099121094,40.784999847412216],[-73.76571655273436,40.81289672851573],[-73.72972106933588,40.86639022827154],[-73.67610931396477,40.85722351074218],[-73.63234710693354,40.90250396728521],[-73.56573486328125,40.9155158996582],[-73.54305267333984,40.87861251831066],[-73.48860931396479,40.8774986267091],[-73.49694824218749,40.9275016784668],[-73.43777465820307,40.935192108154354],[-73.41960144042969,40.90475082397472],[-73.3692016601562,40.93303298950195],[-73.29583740234375,40.92491531372075],[-73.22805786132807,40.90499877929693],[-73.14778137207026,40.92305374145519],[-73.14186859130854,40.965953826904354],[-72.90110778808594,40.962223052978516],[-72.7724990844726,40.96555709838873],[-72.64027404785155,40.98110961914068],[-72.57499694824213,41.002223968505966],[-72.47888946533192,41.05138778686529],[-72.44577026367182,41.08646774291998],[-72.39099884033203,41.101066589355526],[-72.3536148071289,41.14027786254888],[-72.24447631835926,41.16104507446295]]],[[[-73.34417724609374,45.01025009155279],[-73.34111022949219,44.919891357421875],[-73.38324737548822,44.84149169921875],[-73.3370361328125,44.800338745117244],[-73.36454772949213,44.7409400939942],[-73.36341094970697,44.69573974609369],[-73.38887786865229,44.633480072021484],[-73.38124084472649,44.58929061889654],[-73.32264709472656,44.5253791809082],[-73.29471588134766,44.43841934204107],[-73.33670043945307,44.36643218994146],[-73.31318664550781,44.26372146606451],[-73.39270782470703,44.191230773925895],[-73.39909362792969,44.148769378662216],[-73.4419174194336,44.05765914916992],[-73.4086074829101,44.00384902954096],[-73.41008758544922,43.935070037841854],[-73.38418579101557,43.890899658203125],[-73.3932876586914,43.82091903686535],[-73.35601806640625,43.76506042480474],[-73.43286895751953,43.64070129394537],[-73.43020629882812,43.58338928222656],[-73.38603210449219,43.58121871948242],[-73.37510681152344,43.62334060668939],[-73.30561065673821,43.62697219848633],[-73.29499053955077,43.5866203308106],[-73.25234985351562,43.553150177001896],[-73.25058746337885,43.51076889038097],[-73.26686859130858,43.1048316955567],[-73.27886962890625,42.8337287902832],[-73.2916259765625,42.80408096313488],[-73.26745605468744,42.745159149170036],[-73.39566040039062,42.39731979370117],[-73.50840759277344,42.08575057983404],[-73.49005889892572,42.049701690673885],[-73.53325653076166,41.497680664062614],[-73.55226898193358,41.29328155517578],[-73.48383331298821,41.21356201171875],[-73.72972106933588,41.10092163085949],[-73.65699005126952,41.01190185546875],[-73.66063690185547,40.98889541625987],[-73.65811920166016,40.982933044433594],[-73.65777587890625,40.98277664184582],[-73.68630981445307,40.945869445800895],[-73.76988220214844,40.91089248657221],[-73.76631164550776,40.89700317382818],[-73.8183364868164,40.81333160400385],[-73.89712524414062,40.80579376220709],[-73.9725036621093,40.741664886474716],[-74.02426147460938,40.71444320678705],[-74.01300048828125,40.75902938842784],[-73.969970703125,40.81641006469732],[-73.92137908935541,40.90834045410156],[-73.90151977539062,40.99758911132806],[-74.33434295654291,41.18642044067388],[-74.69547271728516,41.35763931274414],[-74.73764038085932,41.42605209350597],[-74.79772949218744,41.42506027221691],[-74.8667602539062,41.44520950317383],[-74.91491699218744,41.47402954101574],[-74.97985076904295,41.478839874267635],[-75.02466583251953,41.559810638427734],[-75.07286071777338,41.60536956787115],[-75.04456329345703,41.62071990966791],[-75.05879974365234,41.671298980713004],[-75.0511474609375,41.71348953247082],[-75.07520294189453,41.80068969726568],[-75.11576843261713,41.84431076049816],[-75.20316314697266,41.86951065063488],[-75.25362396240234,41.86478042602539],[-75.2787475585937,41.939140319824276],[-75.31258392333984,41.95072937011719],[-75.35450744628906,41.99919128417969],[-75.84902954101562,41.99866104125971],[-76.38260650634766,41.99892044067388],[-76.89655303955077,42.00260925292969],[-77.17674255371094,42.00017166137707],[-77.70308685302729,41.99909210205089],[-78.2086181640625,41.999980926513786],[-78.74092102050781,41.99868011474615],[-79.26116943359375,41.998088836669865],[-79.76242065429688,41.99845123291021],[-79.76249694824217,42.26787948608404],[-79.71595764160155,42.28366088867199],[-79.54987335205072,42.36217117309582],[-79.4352416992187,42.42253875732433],[-79.34587097167969,42.49298095703124],[-79.24843597412104,42.532669067382805],[-79.14691925048828,42.5560188293457],[-79.10601043701172,42.619918823242294],[-79.06440734863281,42.64744949340826],[-79.04908752441406,42.689250946045036],[-78.91857147216786,42.738231658935604],[-78.85993194580078,42.777961730957024],[-78.85980987548821,42.839828491210994],[-78.92194366455078,42.94859313964855],[-79.00718688964844,42.983379364013786],[-79.02102661132811,43.0212287902832],[-79.00173950195312,43.058227539062614],[-79.07476043701166,43.08132934570324],[-79.04518127441406,43.13709259033203],[-79.05808258056635,43.252819061279354],[-79.07113647460932,43.26202011108404],[-79.20278930664062,43.45099258422857],[-78.68121337890625,43.63359069824219],[-77.48684692382812,43.63220596313482],[-76.79833221435541,43.631408691406364],[-76.44113159179688,44.09443664550787],[-76.35430145263666,44.134410858154354],[-76.31822204589842,44.1964111328125],[-76.24372100830078,44.205051422119254],[-76.1656494140625,44.24100875854498],[-76.1628646850586,44.28158950805664],[-76.05410003662104,44.32858276367182],[-75.9724502563476,44.34394454956055],[-75.91063690185547,44.37150192260748],[-75.82401275634766,44.43101882934575],[-75.81202697753906,44.46752548217768],[-75.76744079589832,44.52051544189453],[-75.52831268310547,44.69904327392578],[-75.4816055297851,44.71929168701177],[-75.42485046386713,44.76723098754882],[-75.3743667602539,44.787727355957024],[-75.30772399902342,44.840999603271484],[-75.09935760498041,44.928920745849545],[-75.01750946044922,44.95492172241211],[-74.99223327636719,44.977695465088004],[-74.90860748291014,44.98673248291021],[-74.82621002197266,45.015830993652344],[-74.7334365844726,44.99049758911144],[-74.64572906494129,44.999248504638786],[-74.3998031616211,44.99351882934582],[-74.15013122558594,44.99119567871088],[-73.82792663574213,45.00313949584961],[-73.62928771972649,45.00341796875],[-73.34417724609374,45.01025009155279]]]]},"properties":{"ID_0":244,"ISO":"US-NY","NAME_0":"United States","ID_1":33,"NAME_1":"New York","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NY|N.Y."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-78.3863906860351,33.902778625488395],[-78.5272216796875,33.86055374145519],[-78.53944396972656,33.87555694580078],[-78.3863906860351,33.902778625488395]]],[[[-77.95249938964832,33.9241676330567],[-77.96138763427734,33.843334197998104],[-78.00187683105463,33.87691497802734],[-77.95249938964832,33.9241676330567]]],[[[-75.52055358886719,35.274444580078125],[-75.52916717529297,35.224723815918026],[-75.59666442871094,35.25833511352539],[-75.52055358886719,35.274444580078125]]],[[[-75.70888519287098,35.93999862670898],[-75.6675033569336,35.925277709960994],[-75.62110900878906,35.86888885498058],[-75.61528015136719,35.82110977172863],[-75.65194702148432,35.8224983215332],[-75.66166687011712,35.86861038208019],[-75.72250366210932,35.924999237060604],[-75.70888519287098,35.93999862670898]]],[[[-75.86539459228516,35.97423934936535],[-75.91915130615229,35.935600280761776],[-75.94689941406244,35.95924377441411],[-75.86539459228516,35.97423934936535]]],[[[-76.15092468261719,36.55038452148449],[-76.03578948974604,36.55078506469732],[-76.02610778808594,36.52416610717785],[-76.05584716796874,36.512008666992244],[-76.06261444091797,36.51898956298828],[-76.07746124267571,36.513439178466854],[-76.086669921875,36.513889312744084],[-76.09322357177734,36.518489837646484],[-76.0925521850586,36.52612304687506],[-76.0994186401367,36.526550292968864],[-76.10232543945312,36.531608581543026],[-76.10741424560541,36.53299331665038],[-76.15092468261719,36.55038452148449]]],[[[-75.89192199707031,36.5506324768067],[-75.86861419677729,36.55083465576172],[-75.85111236572264,36.46888732910162],[-75.80833435058588,36.31999969482416],[-75.73007965087889,36.13615036010748],[-75.6324996948242,35.97638702392584],[-75.5641632080078,35.848888397216854],[-75.59361267089844,35.852222442626896],[-75.60639190673828,35.91583251953119],[-75.66860961914057,35.97305679321295],[-75.69818878173822,36.05973052978521],[-75.73281097412104,36.0405998229981],[-75.74479675292967,36.13921737670904],[-75.77397918701172,36.227294921875114],[-75.82333374023436,36.30444335937506],[-75.83860778808594,36.396945953369254],[-75.87895202636719,36.48988342285161],[-75.89192199707031,36.5506324768067]]],[[[-76.01493072509766,36.55607223510742],[-75.98377990722656,36.550361633300895],[-75.96334075927734,36.551975250244254],[-75.92178344726562,36.55058670043951],[-75.91188812255852,36.494964599609375],[-75.98883056640625,36.49706268310547],[-76.01493072509766,36.55607223510742]]],[[[-76.15270233154291,36.55038070678711],[-76.12142181396479,36.5257186889649],[-76.11267852783203,36.53053665161133],[-76.10549926757807,36.531589508056754],[-76.0957260131836,36.51861572265625],[-76.08817291259766,36.5128326416015],[-76.0794448852539,36.511940002441406],[-76.06433868408203,36.497005462646534],[-76.04522705078118,36.50386810302729],[-75.99494934082031,36.40939331054693],[-75.92972564697259,36.36444473266607],[-75.89591979980469,36.320842742920036],[-75.83875274658196,36.17559051513683],[-75.78942108154297,36.07897186279297],[-75.86318969726551,36.12145233154291],[-75.87627410888672,36.18429183959955],[-75.92498016357416,36.163761138916016],[-76.01811981201172,36.187019348144645],[-76.05075073242182,36.23098373413097],[-76.1355361938476,36.249946594238395],[-76.11553955078125,36.212516784668026],[-76.0788955688476,36.19664382934582],[-76.06148529052734,36.145999908447266],[-76.16743469238281,36.123638153076115],[-76.2464828491211,36.158645629882756],[-76.21710205078125,36.0962028503418],[-76.32318878173828,36.134963989257926],[-76.37344360351562,36.13866806030285],[-76.3919448852539,36.16555404663097],[-76.43518829345697,36.16280746459961],[-76.3373031616211,36.088653564453125],[-76.41982269287104,36.07745361328125],[-76.46305084228504,36.02310943603521],[-76.51454925537098,36.0064430236817],[-76.57422637939447,36.009212493896484],[-76.6029434204101,36.035934448242244],[-76.68263244628905,36.049133300781364],[-76.72190856933594,36.1506690979005],[-76.6983642578125,36.272727966308594],[-76.74189758300776,36.22744369506836],[-76.75553894042963,36.15171432495117],[-76.68201446533192,35.98986434936529],[-76.72465515136717,35.955425262451165],[-76.66388702392572,35.93277740478526],[-76.52500152587889,35.94472122192394],[-76.4058227539062,35.982177734375114],[-76.37069702148438,35.93499755859381],[-76.3256225585937,35.938461303710994],[-76.27027130126953,35.972648620605575],[-76.14888763427729,35.995555877685604],[-76.0613021850586,35.990062713623104],[-76.0242691040039,35.96970367431646],[-76.01333618164062,35.92361068725586],[-76.06416320800781,35.85361099243164],[-76.04804229736328,35.746109008789055],[-76.05916595458979,35.703334808349666],[-76.01305389404297,35.66083145141607],[-75.97572326660145,35.83913421630871],[-75.98572540283197,35.888034820556754],[-75.93083190917967,35.92694473266613],[-75.83349609374994,35.96950912475597],[-75.782470703125,35.93277740478526],[-75.7300033569336,35.80583190917969],[-75.74201202392578,35.7733039855957],[-75.7169189453125,35.694232940673885],[-75.77944183349604,35.684444427490234],[-75.73388671875,35.629444122314396],[-75.78438568115229,35.594490051269524],[-75.89559173583979,35.59509658813488],[-75.9888916015625,35.48444366455078],[-76.01505279541016,35.42124176025402],[-76.05805206298828,35.421276092529354],[-76.06191253662104,35.382686614990234],[-76.15552520751953,35.33635330200195],[-76.22055816650389,35.34333419799816],[-76.23999786376953,35.36666488647461],[-76.29534912109374,35.36656951904297],[-76.39176940917969,35.42996215820318],[-76.44298553466797,35.39718627929699],[-76.53189086914057,35.40140533447277],[-76.53221893310547,35.43249893188482],[-76.56517791748041,35.44864654541021],[-76.5631332397461,35.509979248046875],[-76.58031463623047,35.54079437255871],[-76.63420867919915,35.52183914184582],[-76.598159790039,35.481407165527344],[-76.60467529296875,35.44533157348644],[-76.5775375366211,35.388084411621094],[-76.64667510986328,35.403144836425724],[-76.71055603027344,35.430000305175895],[-76.77110290527344,35.43217468261719],[-76.86750030517572,35.45833206176769],[-76.90583801269526,35.45949554443365],[-76.9808120727539,35.4854621887207],[-76.96533203124994,35.43442916870123],[-76.92620086669922,35.448844909668026],[-76.84395599365234,35.42412185668951],[-76.82176208496092,35.38694763183594],[-76.77361297607422,35.39138793945318],[-76.71861267089838,35.375],[-76.65628051757812,35.33967208862316],[-76.52416992187494,35.32027816772461],[-76.50055694580077,35.30500030517584],[-76.49462890625,35.24466323852545],[-76.53282928466791,35.23281860351557],[-76.58999633789062,35.24166488647472],[-76.60385894775389,35.1599235534668],[-76.57086181640625,35.17341995239258],[-76.54415893554688,35.14193725585943],[-76.60124206542969,35.07135772705084],[-76.7558364868164,34.99444580078125],[-76.81968688964844,34.970901489257926],[-76.90794372558594,35.028877258300895],[-76.92519378662104,35.05154800415039],[-76.97813415527344,35.060813903808594],[-76.97566223144531,35.002235412597656],[-76.93462371826166,34.971878051757926],[-76.84625244140625,34.935722351074276],[-76.81276702880858,34.93930053710937],[-76.76078796386707,34.915424346923885],[-76.65717315673828,34.98215103149414],[-76.51847839355469,35.003753662109375],[-76.45465850830067,35.06954956054682],[-76.43298339843743,35.04957962036144],[-76.42416381835938,34.99499893188482],[-76.4472198486327,34.93888854980463],[-76.37527465820312,34.966945648193416],[-76.31805419921875,34.969165802001946],[-76.27639007568354,34.954723358154354],[-76.33139038085936,34.88499832153332],[-76.366943359375,34.87416839599614],[-76.44916534423828,34.81333160400402],[-76.5066680908203,34.72555541992193],[-76.57971954345703,34.722778320312614],[-76.6172256469726,34.75361251831055],[-76.63972473144531,34.702499389648494],[-76.6875,34.723056793213004],[-76.84583282470697,34.728889465331974],[-76.9705581665039,34.70972061157221],[-77.02875518798822,34.68297195434582],[-77.09282684326166,34.67284774780279],[-77.086669921875,34.707778930664055],[-77.2019424438476,34.63416671752941],[-77.27972412109375,34.56666564941412],[-77.316665649414,34.546390533447315],[-77.3401260375976,34.57320022583008],[-77.3823471069336,34.58266067504894],[-77.33809661865234,34.63757705688488],[-77.37776947021484,34.703575134277344],[-77.40007781982422,34.67928314208996],[-77.37184143066405,34.644081115722656],[-77.39957427978516,34.611148834228516],[-77.39593505859364,34.577289581298885],[-77.36139678955072,34.55169677734369],[-77.37205505371092,34.518531799316406],[-77.46311950683594,34.49252319335949],[-77.53039550781244,34.4584732055664],[-77.72154235839844,34.3248405456543],[-77.81333160400385,34.21944427490229],[-77.86088562011719,34.148883819580135],[-77.89027404785156,34.060276031494084],[-77.94027709960932,34.07805633544933],[-77.9438858032226,34.029445648193416],[-78.01934051513665,33.88722610473644],[-78.09176635742188,33.90628433227544],[-78.19611358642578,33.91305541992193],[-78.21527862548828,33.92472076416027],[-78.40139007568354,33.90472412109369],[-78.53916931152338,33.87694549560547],[-78.59379577636719,33.873611450195426],[-78.57823944091797,33.88254928588867],[-78.77482604980463,34.05017852783208],[-79.06807708740229,34.302268981933594],[-79.3398818969726,34.53039932250988],[-79.67529296874994,34.80459976196295],[-80.44439697265625,34.81481933593756],[-80.79595184326166,34.817508697509766],[-80.78279113769526,34.93494033813488],[-80.93123626708984,35.10493087768549],[-81.04191589355463,35.04320144653326],[-81.05861663818348,35.06698989868164],[-81.04477691650385,35.149429321289176],[-81.45144653320311,35.168991088867244],[-81.76793670654291,35.18014144897461],[-82.2861328125,35.19800186157221],[-82.35906982421875,35.19065093994152],[-82.39054107666016,35.216110229492244],[-82.45495605468744,35.17961883544922],[-82.63318634033203,35.125808715820256],[-82.69233703613274,35.118629455566406],[-82.75473022460938,35.06867980957037],[-82.78246307373041,35.08602905273443],[-83.10518646240229,35.002040863037166],[-83.62129974365229,34.991630554199276],[-83.62158966064447,34.98707962036132],[-83.92658233642572,34.98746109008789],[-84.32096862792969,34.989040374755916],[-84.28929901123047,35.22573852539074],[-84.22789001464844,35.26782989501959],[-84.1956787109375,35.245800018310604],[-84.08760070800781,35.254428863525504],[-84.02401733398438,35.29515075683605],[-84.03388214111322,35.35025024414073],[-84.01317596435541,35.365749359130916],[-84.02050781249994,35.40950012207031],[-83.9592514038086,35.462940216064396],[-83.89984893798828,35.48731994628906],[-83.87874603271483,35.519691467285156],[-83.8241729736327,35.52635955810541],[-83.76255798339838,35.56470108032232],[-83.5976333618164,35.57807922363281],[-83.58116912841791,35.56496047973644],[-83.49848175048822,35.56351089477539],[-83.44892883300781,35.60784912109375],[-83.3963165283203,35.62350082397472],[-83.3444366455078,35.66270065307617],[-83.29599761962885,35.65938186645519],[-83.23628997802734,35.728370666503906],[-83.18351745605469,35.72985076904308],[-83.16223144531239,35.76258850097662],[-83.0742797851562,35.78942108154297],[-82.99822235107422,35.774108886718864],[-82.91703796386707,35.84307861328131],[-82.90119171142572,35.89759063720703],[-82.91729736328118,35.92683029174804],[-82.86482238769531,35.95170974731451],[-82.82103729248047,35.92544174194347],[-82.78694915771479,35.952201843261776],[-82.77717590332031,35.99462127685547],[-82.63355255126953,36.06586074829101],[-82.5910568237304,36.03511047363281],[-82.61403656005852,36.001750946045036],[-82.60154724121088,35.96683883667003],[-82.56421661376953,35.95539093017584],[-82.4603195190429,36.007061004638786],[-82.40696716308592,36.0870819091798],[-82.35263824462885,36.11722946166998],[-82.24635314941406,36.132518768310604],[-82.22119903564453,36.15668869018555],[-82.14823150634766,36.144828796386776],[-82.13188934326172,36.106868743896484],[-82.08226013183588,36.10412216186529],[-82.0320205688476,36.12105178833013],[-81.9107208251952,36.29809951782232],[-81.80771636962885,36.35219192504883],[-81.74630737304676,36.3359489440918],[-81.7240600585937,36.3552703857423],[-81.73815917968749,36.40921020507824],[-81.69689178466791,36.4686012268067],[-81.70812225341795,36.53479003906249],[-81.67576599121094,36.58901214599614],[-81.58782958984375,36.58800888061529],[-81.3697662353515,36.57347106933605],[-80.86318969726557,36.55984115600597],[-80.65233612060541,36.558429718017635],[-80.27754211425776,36.54333877563482],[-79.81475067138672,36.54224014282232],[-79.51119995117188,36.539138793945426],[-78.9762573242187,36.54473876953125],[-78.50949096679688,36.54212188720709],[-78.12504577636719,36.54626083374035],[-77.70121002197266,36.54581069946295],[-76.91735839843744,36.54399871826177],[-76.91617584228516,36.55113983154308],[-76.62683868408202,36.549919128418026],[-76.15270233154291,36.55038070678711]]]]},"properties":{"ID_0":244,"ISO":"US-NC","NAME_0":"United States","ID_1":34,"NAME_1":"North Carolina","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"NC|N.C."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-97.22947692871087,49.00002288818371],[-97.23898315429688,48.96694183349615],[-97.21280670166004,48.906089782714844],[-97.1786499023437,48.871818542480526],[-97.18553924560547,48.81288909912121],[-97.09348297119135,48.6839714050293],[-97.14785003662104,48.61254119873047],[-97.15696716308594,48.479492187500114],[-97.1229019165039,48.43828201293945],[-97.16057586669922,48.39348220825195],[-97.11515045166003,48.295780181884766],[-97.1476058959961,48.18201065063482],[-97.12265014648432,48.105571746826286],[-97.0748901367187,48.050350189208984],[-97.05416107177734,47.945430755615234],[-97.02021026611328,47.92015075683594],[-96.9754867553711,47.80340194702154],[-96.9358673095703,47.767002105713004],[-96.93121337890625,47.73451995849621],[-96.85124969482416,47.588119506835994],[-96.87166595458979,47.52569961547857],[-96.85188293457031,47.47874069213873],[-96.8341293334961,47.334701538086044],[-96.84517669677733,47.31657028198242],[-96.84092712402344,47.23004913330078],[-96.81748962402338,47.1101913452149],[-96.8345260620117,47.012840270996094],[-96.79831695556635,46.963729858398544],[-96.77536010742176,46.89971923828125],[-96.80082702636717,46.81550216674805],[-96.78176879882812,46.763061523437614],[-96.80259704589838,46.65642166137695],[-96.75917053222655,46.59801864624035],[-96.73628997802734,46.47864151000971],[-96.70368194580078,46.4188804626466],[-96.60398101806629,46.33179092407226],[-96.59771728515625,46.22259902954107],[-96.55515289306629,46.073089599609375],[-96.57715606689447,46.03075027465832],[-96.56125640869129,45.935581207275504],[-97.00152587890625,45.93535995483404],[-97.6050415039062,45.93561172485345],[-98.3537368774414,45.93545913696288],[-99.00537109375,45.93931198120123],[-99.72115325927729,45.942131042480526],[-100.45852661132807,45.9434204101563],[-101.08338928222645,45.94343948364252],[-101.9988174438476,45.94432067871094],[-102.42221832275384,45.943988800048935],[-102.99555206298828,45.944000244140675],[-104.0442886352539,45.94382858276367],[-104.04521942138672,46.28055191040045],[-104.04483795166014,46.64025115966808],[-104.04548645019526,47.18722915649414],[-104.0421524047851,47.44240951538097],[-104.04135131835936,47.91120910644531],[-104.04485321044922,48.00696182250988],[-104.04664611816393,48.38920974731457],[-104.04959106445307,49.000045776367294],[-103.24575805664062,49.00000381469726],[-102.7015533447265,49.00004959106451],[-101.82441711425781,49.0001487731933],[-101.25507354736328,49.000007629394645],[-100.4700927734375,49.000068664550774],[-99.9489974975586,49.00005340576166],[-99.49720001220703,49.00000381469726],[-98.78971099853516,49.000045776367294],[-98.20211029052734,49.000255584716854],[-97.48109436035156,49.00002670288085],[-97.22947692871087,49.00002288818371]]]},"properties":{"ID_0":244,"ISO":"US-ND","NAME_0":"United States","ID_1":35,"NAME_1":"North Dakota","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"ND|N.D."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-79.76249694824217,42.26787948608404],[-79.8614730834961,42.22431182861334],[-79.88201141357422,42.22711181640625],[-80.03125,42.15567016601573],[-80.24735260009766,42.07765197753912],[-80.29277038574219,42.05350875854497],[-80.51811981201172,41.97824859619146],[-80.51905822753906,41.52465057373047],[-80.51793670654297,41.12694168090832],[-80.5190658569336,40.63854980468756],[-80.57602691650385,40.61558914184582],[-80.60359191894526,40.626441955566406],[-80.66436004638666,40.587490081787166],[-80.6254272460937,40.53332138061529],[-80.59702301025385,40.464401245117244],[-80.61305999755848,40.406589508056584],[-80.60000610351562,40.32973098754877],[-80.6172103881836,40.269088745117244],[-80.65635681152332,40.24151992797857],[-80.70140838623045,40.16115951538086],[-80.70983886718744,40.102069854736385],[-80.73100280761713,40.08671188354503],[-80.73735046386719,39.97716903686529],[-80.80663299560541,39.90866088867199],[-80.78833007812494,39.86970138549805],[-80.82527160644531,39.84651184082031],[-80.8330459594726,39.79341125488287],[-80.86297607421875,39.75207901000982],[-80.8292388916015,39.71604156494135],[-80.8613662719726,39.691749572753956],[-80.88358306884759,39.6185188293457],[-80.9425430297851,39.60763168334961],[-81.04147338867188,39.53665924072271],[-81.13092041015625,39.44572067260742],[-81.1691284179687,39.43880081176752],[-81.22012329101562,39.38537979125987],[-81.27295684814453,39.38306045532238],[-81.34903717041016,39.34508895874029],[-81.38352966308582,39.34379959106457],[-81.4328994750976,39.40732955932611],[-81.55309295654284,39.344070434570426],[-81.56514739990234,39.27061080932617],[-81.6503601074218,39.278438568115234],[-81.68630981445307,39.26568984985357],[-81.69123077392577,39.22320175170904],[-81.75199890136713,39.1819305419923],[-81.73969268798822,39.110408782958984],[-81.79545593261719,39.04637145996088],[-81.76365661621088,39.02085876464844],[-81.78595733642571,38.92665863037115],[-81.82363891601557,38.945999145507926],[-81.85427856445312,38.89393997192383],[-81.88712310791016,38.87387847900396],[-81.92785644531244,38.894561767578125],[-81.89948272705078,38.93178939819347],[-81.93691253662104,38.99312210083008],[-81.97789764404297,38.99486160278326],[-82.02781677246088,39.02851867675787],[-82.08453369140625,38.97674942016607],[-82.14214324951166,38.89278030395508],[-82.14720153808588,38.83528137207031],[-82.2094497680664,38.800540924072315],[-82.1814193725586,38.71120071411133],[-82.18921661376952,38.68177032470709],[-82.169448852539,38.621429443359375],[-82.21257019042969,38.590721130371094],[-82.26671600341791,38.595821380615234],[-82.29196166992186,38.57307052612305],[-82.31829071044916,38.45495223999035],[-82.40541839599608,38.43870925903326],[-82.53000640869135,38.40449142456055],[-82.59278869628893,38.4185905456543],[-82.60455322265625,38.460201263427734],[-82.65207672119135,38.491180419921875],[-82.72425842285156,38.55809020996088],[-82.82303619384766,38.574310302734375],[-82.85537719726562,38.61193084716797],[-82.87844848632812,38.69113922119146],[-82.86940002441406,38.7294807434082],[-82.8934478759765,38.75444030761724],[-82.97695159912108,38.724922180175895],[-83.013671875,38.72962951660162],[-83.05769348144524,38.69253921508795],[-83.11161041259766,38.670162200927734],[-83.15379333496094,38.62018966674805],[-83.24680328369135,38.627769470214844],[-83.2869567871093,38.59984207153325],[-83.37007141113281,38.65880966186529],[-83.46048736572266,38.67127990722662],[-83.53927612304682,38.701110839843864],[-83.62777709960932,38.676189422607536],[-83.65733337402344,38.62631988525402],[-83.7546615600586,38.64937973022461],[-83.79458618164057,38.70267868041998],[-83.84115600585936,38.72201156616222],[-83.86857604980469,38.761100769043026],[-83.95970916748047,38.78726196289068],[-84.07747650146483,38.772838592529354],[-84.20465087890625,38.80271148681646],[-84.23393249511713,38.839359283447266],[-84.23829650878906,38.8946990966798],[-84.29104614257812,38.95777893066412],[-84.31936645507812,39.02233123779291],[-84.40764617919922,39.04595184326183],[-84.46269226074217,39.12162017822271],[-84.51854705810536,39.09128952026361],[-84.54485321044916,39.0982398986817],[-84.62368774414062,39.07355117797846],[-84.68788909912104,39.102970123291016],[-84.7239761352539,39.13906097412104],[-84.75962829589838,39.14139938354503],[-84.8190689086914,39.1068687438966],[-84.8165817260742,39.41342163085943],[-84.81310272216791,40.0059814453125],[-84.80792999267578,40.174140930175895],[-84.80226135253895,40.72814178466797],[-84.80580139160155,41.34212112426769],[-84.80667114257812,41.69580078125005],[-84.67555999755858,41.70069885253906],[-83.99973297119135,41.71569061279308],[-83.48401641845703,41.732791900634766],[-83.43036651611321,41.76332092285161],[-83.44158172607422,41.80265045166027],[-83.38072204589844,41.86888885498047],[-83.33065795898438,41.898559570312614],[-83.29273223876952,41.945331573486385],[-83.2425231933593,41.97632980346691],[-83.18865966796875,42.030860900878906],[-83.18913269042969,42.09902954101574],[-83.1464385986328,42.24065017700207],[-83.06623077392578,42.32081985473633],[-82.99703979492182,42.33023071289074],[-83.06940460205072,42.309291839599666],[-83.12282562255852,42.23013687133795],[-83.13320159912104,42.172954559326286],[-83.12312316894526,42.120536804199276],[-83.14656829833979,42.033199310302734],[-83.0678100585937,41.86261367797863],[-82.68122100830078,41.677291870117244],[-82.4076919555664,41.6769256591798],[-81.63878631591797,42.02144622802729],[-81.26055145263672,42.20552062988281],[-80.65216064453114,42.30239868164057],[-80.07332611083984,42.39255905151367],[-79.76274871826166,42.51045227050792],[-78.93692016601562,42.83100128173834],[-78.90618133544922,42.90505599975586],[-78.92194366455078,42.94859313964855],[-78.85980987548821,42.839828491210994],[-78.85993194580078,42.777961730957024],[-78.91857147216786,42.738231658935604],[-79.04908752441406,42.689250946045036],[-79.06440734863281,42.64744949340826],[-79.10601043701172,42.619918823242294],[-79.14691925048828,42.5560188293457],[-79.24843597412104,42.532669067382805],[-79.34587097167969,42.49298095703124],[-79.4352416992187,42.42253875732433],[-79.54987335205072,42.36217117309582],[-79.71595764160155,42.28366088867199],[-79.76249694824217,42.26787948608404]]]},"properties":{"ID_0":244,"ISO":"US-OH","NAME_0":"United States","ID_1":36,"NAME_1":"Ohio","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"OH|Ohio"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-94.61897277832026,36.99996185302745],[-94.61815643310547,36.49837112426763],[-94.53376770019531,36.00931167602545],[-94.49468231201172,35.7593612670899],[-94.43070220947266,35.400039672851676],[-94.44738006591797,34.933658599853516],[-94.45709991455077,34.709930419921925],[-94.47178649902344,34.189720153808594],[-94.48629760742186,33.64110946655279],[-94.52642822265624,33.61524963378906],[-94.56958770751947,33.63840866088867],[-94.64672088623041,33.701610565185604],[-94.68688201904291,33.68527984619146],[-94.7577285766601,33.706100463867244],[-94.7821273803711,33.739971160888786],[-94.8667373657226,33.744140625],[-94.94716644287098,33.80718994140631],[-94.96729278564453,33.858612060546875],[-95.02568817138672,33.85887145996099],[-95.11435699462889,33.90649032592785],[-95.1239013671875,33.93470001220703],[-95.21906280517578,33.959758758544865],[-95.27802276611328,33.910751342773494],[-95.28054046630852,33.87709045410156],[-95.41359710693354,33.8667106628418],[-95.54062652587885,33.87945175170893],[-95.56033325195312,33.93019104003912],[-95.58721923828125,33.9355087280274],[-95.69853210449213,33.88484954833996],[-95.74639892578125,33.89616012573247],[-95.75343322753906,33.856300354003906],[-95.82023620605463,33.85768127441406],[-95.83081054687494,33.835449218750114],[-95.91543579101562,33.880779266357536],[-95.94172668457026,33.86233901977539],[-96.0489730834961,33.83668899536144],[-96.0995101928711,33.84947204589844],[-96.16980743408203,33.817070007324276],[-96.18570709228516,33.75487136840832],[-96.23147583007801,33.74747848510742],[-96.29196166992188,33.76789855957036],[-96.3195571899414,33.695709228515625],[-96.37061309814447,33.71834182739258],[-96.42411804199207,33.77716064453125],[-96.50199890136713,33.77413940429687],[-96.53217315673817,33.82139968872075],[-96.57081604003906,33.818359375],[-96.61696624755858,33.84302902221674],[-96.58998107910156,33.8960800170899],[-96.67576599121088,33.911361694336044],[-96.7091064453125,33.83483886718756],[-96.76690673828125,33.82912063598633],[-96.78518676757811,33.86268997192383],[-96.8795928955077,33.869918823242244],[-96.91548156738281,33.95515060424816],[-96.99356842041016,33.9330406188966],[-96.98903656005858,33.878341674804744],[-97.05113220214838,33.81671905517584],[-97.09384155273438,33.79824066162121],[-97.09147644042963,33.73400878906261],[-97.1233673095703,33.716339111328125],[-97.16536712646483,33.731330871582145],[-97.1918258666991,33.763820648193466],[-97.20260620117176,33.817760467529354],[-97.16853332519526,33.84239959716797],[-97.1800918579101,33.889141082763786],[-97.21881866455065,33.91337966918957],[-97.25279235839842,33.86854171752941],[-97.31421661376953,33.86862182617199],[-97.38342285156237,33.81790161132824],[-97.45005035400385,33.82621002197265],[-97.45376586914057,33.89860916137701],[-97.50633239746088,33.91658020019531],[-97.58487701416016,33.900329589843864],[-97.58967590332026,33.953750610351506],[-97.63272857666016,33.982219696045036],[-97.6752090454101,33.990119934082145],[-97.7804718017578,33.89752197265625],[-97.83788299560547,33.85868072509771],[-97.8729019165039,33.852500915527344],[-97.96473693847656,33.883369445800724],[-97.97373199462885,33.939842224121094],[-97.94873809814447,33.986949920654354],[-97.97532653808594,33.999179840088004],[-98.08180236816406,34.00275039672857],[-98.12152862548822,34.077331542968864],[-98.09298706054688,34.13422012329113],[-98.12742614746094,34.15161895751959],[-98.16925811767578,34.11386108398443],[-98.23826599121088,34.132389068603516],[-98.29705810546875,34.133178710937614],[-98.36731719970697,34.15575027465826],[-98.41487884521479,34.08486938476568],[-98.4813461303711,34.06143951416021],[-98.60259246826166,34.161090850830135],[-98.64808654785145,34.164402008056754],[-98.68871307373036,34.13388061523443],[-98.73896026611322,34.12683105468756],[-98.80586242675781,34.15576171875],[-98.88551330566405,34.16930007934576],[-98.95230865478504,34.21345901489258],[-98.99141693115234,34.22214126586919],[-99.04244232177734,34.19905090332031],[-99.189697265625,34.21557998657226],[-99.21247863769531,34.33663940429693],[-99.27086639404297,34.39926147460949],[-99.32402038574212,34.41749954223644],[-99.37039947509753,34.45775222778332],[-99.3972930908202,34.381290435791016],[-99.43290710449217,34.37440109252941],[-99.5057067871093,34.40790176391607],[-99.57929229736328,34.41487121582037],[-99.60735321044915,34.371650695800724],[-99.68681335449213,34.37863159179693],[-99.80113220214844,34.458831787109375],[-99.86705017089838,34.536380767822266],[-99.94872283935547,34.58031082153326],[-100.00144958496094,34.558269500732536],[-100.00084686279291,35.02949905395513],[-100.00100708007812,35.64001846313482],[-100.0015411376952,35.9477806091308],[-100.0037994384765,36.49977874755865],[-100.54590606689453,36.49943923950195],[-101.0908432006836,36.50032043457037],[-101.87004089355463,36.50344085693371],[-102.16182708740234,36.500438690185604],[-103.00065612792957,36.50128936767584],[-103.00086975097656,36.99898910522461],[-102.70156860351557,36.99578094482416],[-102.4775161743164,36.996250152587834],[-102.04226684570312,36.992229461670036],[-101.54396057128906,36.99515151977539],[-100.94407653808594,36.99882888793951],[-100.63371276855463,36.99864959716797],[-100.1078872680664,36.99834060668957],[-99.53988647460936,36.999752044677734],[-99.00054168701166,37.00075912475591],[-98.54572296142572,37.0002212524414],[-98.11641693115233,37.00025939941412],[-97.74241638183594,37.000320434570426],[-97.14676666259766,36.999389648437614],[-96.7531509399414,36.99977874755854],[-96.00036621093744,37.00017929077154],[-95.4002685546875,37.00053024291998],[-95.07227325439447,36.99872207641613],[-94.61897277832026,36.99996185302745]]]},"properties":{"ID_0":244,"ISO":"US-OK","NAME_0":"United States","ID_1":37,"NAME_1":"Oklahoma","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"OK|Okla."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-116.91250610351561,45.99723052978521],[-116.865966796875,45.91519927978521],[-116.78896331787102,45.85863876342779],[-116.78734588623041,45.832050323486264],[-116.69354248046874,45.81795120239258],[-116.66234588623047,45.781181335449325],[-116.59236145019533,45.779312133789],[-116.53446960449219,45.73492050170909],[-116.53412628173822,45.692520141601506],[-116.46163940429682,45.609310150146484],[-116.52025604248047,45.55532073974615],[-116.55211639404295,45.505729675293026],[-116.55047607421875,45.469669342041016],[-116.58493804931642,45.44142913818365],[-116.66703796386717,45.327098846435604],[-116.72841644287098,45.1450309753418],[-116.78071594238281,45.09701156616211],[-116.79583740234364,45.060630798339844],[-116.84127044677734,45.028678894043026],[-116.85294342041011,44.97930145263677],[-116.83304595947266,44.93862152099615],[-116.85518646240234,44.88161087036127],[-116.92706298828112,44.80733871459966],[-116.93521118164064,44.78303146362305],[-117.02852630615227,44.75107955932623],[-117.06185150146483,44.70809173583995],[-117.14137268066406,44.56996917724615],[-117.14733886718744,44.53520202636719],[-117.2239990234375,44.47993087768549],[-117.21296691894526,44.42815017700201],[-117.23731231689453,44.3966522216798],[-117.19207000732416,44.3441619873048],[-117.21711730957031,44.30352020263677],[-117.18097686767578,44.26435089111328],[-117.09243011474597,44.271839141845646],[-116.97283172607416,44.239170074463004],[-116.9663619995117,44.19636917114258],[-116.8932418823242,44.15930175781256],[-116.91957092285156,44.107582092285156],[-116.96887207031249,44.087291717529354],[-116.93847656249993,44.03417968750006],[-116.9359970092773,43.99164199829096],[-116.97589111328114,43.9658203125],[-116.9619903564453,43.91259002685541],[-116.98259735107422,43.8668785095216],[-117.0323028564453,43.829761505126946],[-117.02704620361328,43.80686950683605],[-117.027587890625,43.56449890136713],[-117.02799224853516,43.031379699707145],[-117.02803802490229,42.62831878662121],[-117.02926635742182,42.00030899047857],[-117.28637695312494,41.99853897094732],[-117.71524047851555,41.99824142456065],[-118.23407745361317,41.99626922607416],[-118.7764358520508,41.99296188354492],[-119.04779052734374,41.99464035034191],[-119.506362915039,41.99246215820307],[-120.00031280517578,41.995319366455135],[-120.43006134033202,41.99444961547863],[-121.00151824951166,41.993339538574276],[-121.10743713378905,41.99753189086914],[-121.47303009033197,41.99806976318364],[-121.8769912719726,42.00307083129883],[-122.35028076171875,42.00983047485357],[-122.59681701660149,42.005821228027344],[-123.05084991455078,42.00276184082025],[-123.13788604736328,42.00839996337896],[-123.33613586425768,41.99869918823242],[-123.62500762939453,41.999809265136776],[-123.6563262939453,41.9958610534668],[-124.1179733276367,41.99718856811523],[-124.21170806884766,41.99971771240234],[-124.29944610595702,42.05083465576172],[-124.35741424560541,42.11807632446289],[-124.36125183105469,42.1802597045899],[-124.41444396972649,42.251945495605526],[-124.40811157226562,42.29059600830078],[-124.43250274658202,42.32027816772461],[-124.4241638183593,42.37305450439459],[-124.4352798461914,42.438610076904354],[-124.42305755615234,42.49638748168951],[-124.38984680175776,42.573268890380916],[-124.41333007812499,42.658889770507756],[-124.47389221191406,42.7333335876466],[-124.51195526123047,42.73262405395508],[-124.5235519409179,42.79436492919922],[-124.55583190917969,42.838333129882926],[-124.4752807617187,42.96222305297863],[-124.43915557861315,43.06046295166021],[-124.43241882324219,43.11737823486339],[-124.40420532226561,43.17629623413086],[-124.38138580322264,43.268890380859375],[-124.3863906860351,43.329723358154354],[-124.32749938964844,43.34722137451183],[-124.28333282470703,43.40194320678711],[-124.26315307617186,43.48354721069336],[-124.23262023925781,43.56091690063487],[-124.1753692626952,43.77697372436529],[-124.15499877929686,43.881111145019474],[-124.12247467041016,44.09274291992193],[-124.10878753662102,44.265735626220646],[-124.11083221435545,44.31305694580084],[-124.09117889404297,44.37104034423833],[-124.07701873779291,44.52043914794933],[-124.05747985839837,44.659610748291016],[-124.07318878173828,44.67208099365246],[-124.05722045898439,44.73666763305663],[-124.07638549804686,44.771945953369084],[-124.0686798095703,44.819377899170036],[-124.02936553955077,44.894672393798885],[-124.00499725341798,45.039165496826115],[-123.97068023681635,45.173736572265625],[-123.9632797241211,45.281715393066406],[-123.98154449462892,45.346603393554744],[-123.96334075927727,45.39088821411132],[-123.93137359619139,45.40365600585943],[-123.97515869140618,45.465770721435604],[-123.9476547241211,45.50993728637695],[-123.88188934326166,45.5056991577149],[-123.90708923339838,45.547740936279354],[-123.95750427246094,45.57085800170904],[-123.94148254394531,45.654293060302734],[-123.92082214355463,45.68996810913086],[-123.96499633789062,45.74416732788086],[-123.96286773681634,45.898777008056754],[-123.99246978759766,45.94408416748058],[-123.93892669677729,45.976593017578125],[-123.92666625976561,46.006668090820256],[-123.9445724487304,46.10848236083996],[-123.98793792724604,46.19080734252941],[-123.97195434570312,46.21216201782238],[-123.85583496093749,46.156387329101506],[-123.8644409179687,46.18944549560546],[-123.78333282470705,46.196945190429744],[-123.72555541992188,46.170555114746094],[-123.58822631835938,46.188682556152344],[-123.50916290283205,46.23500061035156],[-123.51113891601562,46.26979064941412],[-123.4571990966797,46.268749237060604],[-123.40740966796876,46.21345901489269],[-123.322998046875,46.16070938110351],[-123.2832260131836,46.15190887451177],[-123.1594772338867,46.19377899169916],[-123.04476165771479,46.166191101074276],[-122.9392166137694,46.100341796875],[-122.87364959716795,46.08272933959961],[-122.8753433227539,46.03828048706055],[-122.81445312499993,45.96516036987316],[-122.78514099121095,45.9505500793457],[-122.80465698242188,45.90948104858393],[-122.77786254882812,45.87194061279302],[-122.78833007812493,45.81502151489269],[-122.75866699218743,45.76884078979498],[-122.7683563232422,45.689090728759815],[-122.74498748779297,45.65333938598633],[-122.66633605957026,45.61940002441412],[-122.6180801391601,45.61742019653332],[-122.48757934570311,45.58692932128912],[-122.35457611083983,45.57968139648443],[-122.3261489868164,45.563140869140675],[-122.21166229248045,45.56464004516596],[-122.14340209960938,45.59384155273443],[-122.07656860351562,45.602859497070426],[-122.0159683227539,45.6291618347168],[-121.90904998779291,45.6552085876466],[-121.89910888671871,45.67844009399419],[-121.80912017822264,45.709060668945426],[-121.71041107177734,45.69580078125],[-121.5420532226562,45.72621917724615],[-121.42942810058588,45.69482040405279],[-121.34548950195311,45.70655059814458],[-121.2166671752929,45.671878814697266],[-121.17626190185545,45.606441497802734],[-121.12879943847656,45.613330841064446],[-121.07901763916014,45.65378952026373],[-120.90762329101561,45.64389038085932],[-120.84915924072264,45.67443847656249],[-120.68961334228516,45.717281341552734],[-120.63098907470702,45.747798919677734],[-120.55400085449219,45.74007034301769],[-120.49202728271483,45.697090148925895],[-120.425537109375,45.70046997070318],[-120.20049285888672,45.73080062866211],[-120.17687225341793,45.75865173339855],[-120.05856323242189,45.79059219360357],[-119.97798919677733,45.82527923583979],[-119.90808105468749,45.82752990722667],[-119.83014678955065,45.847961425781364],[-119.6699295043944,45.8589706420899],[-119.61033630371092,45.91669845581066],[-119.5775070190429,45.925628662109375],[-119.50585937499994,45.90544891357422],[-119.45005798339844,45.9187507629395],[-119.2599868774414,45.93938064575207],[-119.18498992919922,45.926509857177734],[-119.10817718505852,45.93947982788086],[-119.02836608886714,45.96792984008795],[-118.97976684570312,46.003349304199276],[-118.59852600097655,46.00376892089855],[-117.9972534179687,46.00117874145519],[-117.78823852539061,46.0018196105957],[-117.35338592529297,45.996959686279354],[-116.91250610351561,45.99723052978521]]]},"properties":{"ID_0":244,"ISO":"US-OR","NAME_0":"United States","ID_1":38,"NAME_1":"Oregon","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"OR|Ore."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-79.76249694824217,42.26787948608404],[-79.76242065429688,41.99845123291021],[-79.26116943359375,41.998088836669865],[-78.74092102050781,41.99868011474615],[-78.2086181640625,41.999980926513786],[-77.70308685302729,41.99909210205089],[-77.17674255371094,42.00017166137707],[-76.89655303955077,42.00260925292969],[-76.38260650634766,41.99892044067388],[-75.84902954101562,41.99866104125971],[-75.35450744628906,41.99919128417969],[-75.31258392333984,41.95072937011719],[-75.2787475585937,41.939140319824276],[-75.25362396240234,41.86478042602539],[-75.20316314697266,41.86951065063488],[-75.11576843261713,41.84431076049816],[-75.07520294189453,41.80068969726568],[-75.0511474609375,41.71348953247082],[-75.05879974365234,41.671298980713004],[-75.04456329345703,41.62071990966791],[-75.07286071777338,41.60536956787115],[-75.02466583251953,41.559810638427734],[-74.97985076904295,41.478839874267635],[-74.91491699218744,41.47402954101574],[-74.8667602539062,41.44520950317383],[-74.79772949218744,41.42506027221691],[-74.73764038085932,41.42605209350597],[-74.69547271728516,41.35763931274414],[-74.75060272216791,41.34553146362316],[-74.82543182373047,41.29217910766596],[-74.85928344726562,41.221599578857365],[-74.91963195800781,41.14157867431651],[-74.98371124267567,41.10562896728521],[-74.98101043701166,41.08016204833996],[-75.02649688720697,41.04159927368164],[-75.13263702392578,40.990322113037166],[-75.05380249023432,40.86898040771495],[-75.09252166748041,40.848850250244254],[-75.0867233276367,40.817970275878906],[-75.13263702392578,40.7758407592774],[-75.167739868164,40.77922058105469],[-75.20388031005854,40.692680358886776],[-75.19304656982422,40.579139709472656],[-75.09678649902338,40.56641006469737],[-75.06819915771479,40.543239593505916],[-75.07051849365234,40.44784164428711],[-75.03727722167963,40.40800094604498],[-74.96920776367182,40.40135955810547],[-74.9436569213866,40.34506988525402],[-74.883560180664,40.309211730957145],[-74.83735656738281,40.247798919677784],[-74.77233123779297,40.21466064453125],[-74.72767639160156,40.14804077148449],[-74.8153305053711,40.12874984741211],[-74.86622619628906,40.085529327392685],[-74.93350982666016,40.0706291198731],[-75.0510025024414,40.00849914550781],[-75.13844299316406,39.944351196289006],[-75.14877319335932,39.884288787841854],[-75.19003295898438,39.88151168823242],[-75.24324798583984,39.855251312255916],[-75.32813262939453,39.85042190551758],[-75.41435241699219,39.803329467773494],[-75.53071594238274,39.840129852294915],[-75.59546661376947,39.838150024414055],[-75.67752075195312,39.81558990478527],[-75.7475967407226,39.76533126831066],[-75.78752136230469,39.72307968139654],[-76.41134643554682,39.72097015380871],[-76.99621582031244,39.719692230224666],[-77.39267730712885,39.719951629638615],[-77.93804931640625,39.7240104675293],[-78.48763275146484,39.72269058227544],[-79.04081726074213,39.72254943847656],[-79.47741699218744,39.72161102294922],[-80.19114685058587,39.72167968750006],[-80.51705169677733,39.721221923828125],[-80.51956176757807,39.96390914916992],[-80.51873016357416,40.28828048706066],[-80.5190658569336,40.63854980468756],[-80.51793670654297,41.12694168090832],[-80.51905822753906,41.52465057373047],[-80.51811981201172,41.97824859619146],[-80.29277038574219,42.05350875854497],[-80.24735260009766,42.07765197753912],[-80.03125,42.15567016601573],[-79.88201141357422,42.22711181640625],[-79.8614730834961,42.22431182861334],[-79.76249694824217,42.26787948608404]]]},"properties":{"ID_0":244,"ISO":"US-PA","NAME_0":"United States","ID_1":39,"NAME_1":"Pennsylvania","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"Commonwealth of Pennsylvania|PA"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-71.5770645141601,41.23189163208019],[-71.54623413085938,41.15467071533209],[-71.59900665283197,41.14717102050781],[-71.60567474365229,41.1827278137207],[-71.5770645141601,41.23189163208019]]],[[[-71.22898864746088,41.53165054321295],[-71.24691772460932,41.49219894409191],[-71.31929779052727,41.478248596191406],[-71.323501586914,41.515018463134766],[-71.27471160888672,41.62070846557623],[-71.24472808837885,41.588878631591854],[-71.22898864746088,41.53165054321295]]],[[[-71.12061309814453,41.4955787658692],[-71.17595672607416,41.458911895751946],[-71.207046508789,41.49802017211914],[-71.21850585937494,41.54615020751953],[-71.21260833740234,41.63784027099621],[-71.19892120361327,41.67826080322277],[-71.13324737548822,41.6594810485841],[-71.12061309814453,41.4955787658692]]],[[[-71.2276687622069,41.7150993347168],[-71.23889923095697,41.6710319519043],[-71.28746032714832,41.670211791992244],[-71.294692993164,41.7215194702149],[-71.34018707275385,41.72748947143555],[-71.4091567993164,41.66308975219732],[-71.40741729736322,41.58819198608393],[-71.4479370117187,41.57823181152344],[-71.41853332519531,41.52873992919933],[-71.42166137695312,41.47109222412115],[-71.48696136474604,41.36160278320318],[-71.54953002929676,41.37493896484381],[-71.68994140625,41.34371948242198],[-71.70446014404295,41.333827972412166],[-71.82501983642572,41.317993164062614],[-71.85918426513666,41.317436218261825],[-71.82759094238276,41.33882522583013],[-71.83920288085938,41.359920501708984],[-71.84056854248041,41.40938949584966],[-71.79769897460938,41.41868209838867],[-71.78823852539051,41.63874053955084],[-71.7979431152343,42.00889205932623],[-71.3796768188476,42.019100189208984],[-71.38236236572266,41.8914909362793],[-71.33856964111322,41.89826202392578],[-71.34367370605469,41.824249267578125],[-71.32591247558594,41.77928161621094],[-71.26138305664062,41.75149154663086],[-71.2276687622069,41.7150993347168]]]]},"properties":{"ID_0":244,"ISO":"US-RI","NAME_0":"United States","ID_1":40,"NAME_1":"Rhode Island","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"State of Rhode Island and Providence Plantations|RI|R.I."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-80.92190551757812,32.05670166015619],[-80.93218994140625,32.05174636840826],[-80.93279266357415,32.051959991455135],[-80.92190551757812,32.05670166015619]]],[[[-80.84212493896479,32.14805984497076],[-80.8414840698242,32.1183776855471],[-80.87431335449219,32.08179473876959],[-80.89583587646483,32.12444305419922],[-80.84212493896479,32.14805984497076]]],[[[-80.82221984863281,32.20154190063488],[-80.79243469238276,32.18584060668951],[-80.8489303588867,32.15218353271489],[-80.86027526855469,32.173053741455135],[-80.82221984863281,32.20154190063488]]],[[[-80.7283325195312,32.27091979980469],[-80.66805267333979,32.213890075683594],[-80.74003601074219,32.146018981933594],[-80.81266021728504,32.10991668701166],[-80.7283325195312,32.27091979980469]]],[[[-80.43805694580067,32.41363525390648],[-80.42533874511712,32.402137756347656],[-80.4541244506836,32.33850479125971],[-80.48722076416016,32.36194610595726],[-80.43805694580067,32.41363525390648]]],[[[-80.62333679199212,32.50333404541021],[-80.60348510742182,32.444293975830135],[-80.55931854248047,32.45651626586942],[-80.48376464843749,32.44679260253906],[-80.4687728881836,32.38835525512695],[-80.53749847412104,32.37027740478532],[-80.54244995117182,32.33190155029308],[-80.58987426757807,32.28123855590832],[-80.64602661132807,32.261554718017635],[-80.6483306884765,32.35749816894548],[-80.67333221435534,32.36888885498058],[-80.6573486328125,32.438209533691406],[-80.66693878173817,32.455417633056754],[-80.68448638916004,32.4570198059082],[-80.69081115722656,32.47576141357422],[-80.67833709716797,32.501388549804744],[-80.62333679199212,32.50333404541021]]],[[[-80.40860748291014,32.536945343017805],[-80.36018371582031,32.50027847290039],[-80.41055297851562,32.47040176391607],[-80.40860748291014,32.536945343017805]]],[[[-80.74708557128906,32.53986358642578],[-80.71194458007807,32.52833175659179],[-80.69694519042962,32.52583312988287],[-80.6903305053711,32.45998382568382],[-80.6944732666015,32.455505371093864],[-80.667007446289,32.44884490966791],[-80.67722320556635,32.38172912597656],[-80.6852798461914,32.366111755371094],[-80.66281127929682,32.33442687988281],[-80.68806457519531,32.302211761474894],[-80.76638793945307,32.37416839599615],[-80.79805755615229,32.433887481689624],[-80.81027984619129,32.475276947021655],[-80.79111480712889,32.480834960937784],[-80.77861022949213,32.52861022949219],[-80.74708557128906,32.53986358642578]]],[[[-80.33388519287104,32.636390686035156],[-80.29833221435541,32.60222244262701],[-80.270278930664,32.613334655761946],[-80.19750213623047,32.568332672119254],[-80.32637023925776,32.48196792602539],[-80.38639068603516,32.539165496826115],[-80.3852767944336,32.61500167846685],[-80.33388519287104,32.636390686035156]]],[[[-80.10028076171875,32.71694564819336],[-80.0761108398437,32.700553894043026],[-80.09278106689452,32.685832977294865],[-80.13500213623047,32.66694259643565],[-80.15777587890614,32.644443511962834],[-80.16726684570312,32.63027954101562],[-80.16750335693348,32.616943359375],[-80.15721893310547,32.60777664184582],[-80.19324493408197,32.599403381347656],[-80.21508789062489,32.58673477172857],[-80.26319885253906,32.620136260986385],[-80.2566146850586,32.64602661132824],[-80.18333435058582,32.70750045776373],[-80.17500305175776,32.70555496215843],[-80.16777801513666,32.70555496215843],[-80.16222381591791,32.70730972290045],[-80.15750122070312,32.702499389648544],[-80.1549987792968,32.706111907958984],[-80.14055633544922,32.710834503174],[-80.12752532958979,32.704040527343864],[-80.10028076171875,32.71694564819336]]],[[[-80.10131072998041,32.7855796813966],[-80.01186370849598,32.75670623779314],[-80.01162719726562,32.73057174682623],[-79.99044036865234,32.69348144531256],[-80.02893066406239,32.610721588134766],[-80.11130523681635,32.59406661987316],[-80.17765045166016,32.559295654297046],[-80.18104553222643,32.593204498291016],[-80.17222595214844,32.60194396972662],[-80.1555557250976,32.607498168945426],[-80.16527557373041,32.6163902282716],[-80.16305541992186,32.636112213134766],[-80.13166809082031,32.66638946533209],[-80.08000183105467,32.69166564941423],[-80.07472229003906,32.70111083984381],[-80.08139038085938,32.71194458007835],[-80.10138702392572,32.71861267089844],[-80.12722015380852,32.70527648925787],[-80.14083099365233,32.711666107177784],[-80.14916992187494,32.709873199462834],[-80.15805816650379,32.70500183105463],[-80.16161346435545,32.7084197998048],[-80.16444396972649,32.70750045776373],[-80.17057800292969,32.71111297607416],[-80.16278076171875,32.721389770507926],[-80.17055511474598,32.73333358764643],[-80.10131072998041,32.7855796813966]]],[[[-78.59379577636719,33.873611450195426],[-78.57676696777338,33.84688949584961],[-78.68704986572266,33.812202453613395],[-78.74079132080072,33.78737640380871],[-78.84163665771484,33.72248458862299],[-78.93722534179688,33.63972091674805],[-78.91192626953125,33.61110305786133],[-79,33.54555511474621],[-79.11583709716797,33.406944274902344],[-79.14549255371094,33.38412475585943],[-79.19444274902337,33.29444503784191],[-79.29222106933582,33.295555114746094],[-79.2713851928711,33.26777648925787],[-79.2125015258789,33.245555877685604],[-79.18277740478516,33.193054199218864],[-79.24722290039062,33.12472152709955],[-79.3643951416015,33.07618331909185],[-79.37555694580072,33.046665191650504],[-79.47638702392577,33.00666809082037],[-79.528335571289,33.038055419921875],[-79.58416748046875,33.005001068115234],[-79.61668395996094,32.94170379638666],[-79.5847396850586,32.903968811035156],[-79.63007354736321,32.88983535766607],[-79.6977767944336,32.850833892822436],[-79.73666381835938,32.84611129760742],[-79.79055786132812,32.79583358764677],[-79.85861206054688,32.76639175415039],[-79.92375183105469,32.78974914550781],[-79.93389129638672,32.755001068115284],[-79.87000274658203,32.73138809204113],[-79.90638732910145,32.668334960937614],[-79.97138977050781,32.639446258545036],[-80.01329803466795,32.63932037353521],[-79.98527526855469,32.69388961791992],[-80.00609588623047,32.725784301757926],[-80.00222015380854,32.76166534423845],[-80.10262298583979,32.78831481933605],[-80.20138549804688,32.71916580200207],[-80.27789306640624,32.62957382202143],[-80.33777618408203,32.63972091674805],[-80.3891983032226,32.616432189941456],[-80.39277648925781,32.57222366333008],[-80.42487335205072,32.53734970092779],[-80.46514892578125,32.51957321166992],[-80.56222534179676,32.509723663330135],[-80.65055847167969,32.51083374023432],[-80.67416381835932,32.524723052978516],[-80.73611450195312,32.536666870117244],[-80.74861145019531,32.54281997680664],[-80.76444244384766,32.54000091552746],[-80.78416442871092,32.526943206787216],[-80.79027557373045,32.49583435058594],[-80.81156921386719,32.49399566650419],[-80.81777954101557,32.428054809570256],[-80.84388732910156,32.3941650390625],[-80.75971984863276,32.27666854858409],[-80.78134155273438,32.260192871093864],[-80.79916381835938,32.20583343505871],[-80.8373413085937,32.21440505981445],[-80.86194610595697,32.173053741455135],[-80.89555358886719,32.158611297607536],[-80.91500091552734,32.08416748046869],[-80.97160339355463,32.07407760620122],[-81.00077819824219,32.098079681396534],[-81.05835723876953,32.08771896362305],[-81.11342620849602,32.114349365234375],[-81.11042785644531,32.173408508300895],[-81.15537261962889,32.240268707275504],[-81.12291717529297,32.30223083496094],[-81.17884063720697,32.38148880004883],[-81.20572662353516,32.43519210815441],[-81.19062805175781,32.45779037475609],[-81.27002716064446,32.53335952758795],[-81.27886962890625,32.55788040161133],[-81.32314300537104,32.563720703125],[-81.38025665283196,32.59091186523449],[-81.41751861572266,32.631721496582145],[-81.39422607421875,32.65258026123047],[-81.41419982910155,32.71479034423828],[-81.40851593017567,32.756649017333984],[-81.42806243896479,32.78649139404296],[-81.42125701904295,32.83441925048834],[-81.45783233642578,32.85100173950207],[-81.50157928466791,32.936889648437614],[-81.49122619628906,32.99359130859369],[-81.51138305664055,33.026649475097656],[-81.56463623046864,33.04906845092796],[-81.61418151855469,33.095310211181754],[-81.6466064453125,33.09365844726568],[-81.7210693359375,33.125728607177734],[-81.75895690917963,33.155719757080135],[-81.76786041259754,33.21591186523443],[-81.80722045898432,33.2150611877442],[-81.85147094726557,33.24932098388683],[-81.83669281005854,33.27439880371094],[-81.91983795166016,33.33572006225586],[-81.94261169433592,33.40880966186529],[-81.9140167236328,33.44359970092785],[-81.93141937255848,33.46707916259771],[-81.98615264892571,33.487548828125114],[-82.01187133789057,33.531261444091854],[-82.10707855224602,33.598049163818416],[-82.1444473266601,33.59555053710932],[-82.19534301757812,33.63183975219738],[-82.20197296142567,33.67016983032238],[-82.23490142822266,33.703048706054744],[-82.25073242187499,33.75241088867193],[-82.30520629882812,33.80398941040039],[-82.39405059814453,33.86035919189459],[-82.42810821533203,33.86927032470703],[-82.51386260986327,33.93914031982427],[-82.56704711914062,33.96025085449219],[-82.59947967529295,34.033641815185604],[-82.64351654052729,34.07118988037121],[-82.67639923095697,34.128421783447266],[-82.7173233032226,34.152111053466854],[-82.74201965332024,34.213420867920036],[-82.75189971923828,34.27260971069336],[-82.8000869750976,34.34313964843756],[-82.83175659179682,34.36454010009776],[-82.86119842529297,34.453800201416016],[-82.90898895263672,34.48638916015631],[-83.00496673583972,34.47412109375],[-83.08190917968744,34.51549148559576],[-83.1658935546875,34.606731414794865],[-83.23204803466797,34.61494064331055],[-83.30577087402342,34.67078018188488],[-83.3403091430664,34.68120956420904],[-83.3543472290039,34.72204971313482],[-83.31874084472656,34.759410858154354],[-83.32113647460936,34.791290283203125],[-83.24946594238276,34.868099212646484],[-83.1571273803711,34.93120193481445],[-83.12098693847656,34.935989379882926],[-83.10518646240229,35.002040863037166],[-82.78246307373041,35.08602905273443],[-82.75473022460938,35.06867980957037],[-82.69233703613274,35.118629455566406],[-82.63318634033203,35.125808715820256],[-82.45495605468744,35.17961883544922],[-82.39054107666016,35.216110229492244],[-82.35906982421875,35.19065093994152],[-82.2861328125,35.19800186157221],[-81.76793670654291,35.18014144897461],[-81.45144653320311,35.168991088867244],[-81.04477691650385,35.149429321289176],[-81.05861663818348,35.06698989868164],[-81.04191589355463,35.04320144653326],[-80.93123626708984,35.10493087768549],[-80.78279113769526,34.93494033813488],[-80.79595184326166,34.817508697509766],[-80.44439697265625,34.81481933593756],[-79.67529296874994,34.80459976196295],[-79.3398818969726,34.53039932250988],[-79.06807708740229,34.302268981933594],[-78.77482604980463,34.05017852783208],[-78.57823944091797,33.88254928588867],[-78.59379577636719,33.873611450195426]]]]},"properties":{"ID_0":244,"ISO":"US-SC","NAME_0":"United States","ID_1":41,"NAME_1":"South Carolina","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"SC|S.C."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-96.56125640869129,45.935581207275504],[-96.57878875732416,45.8318214416505],[-96.66736602783197,45.7350311279298],[-96.73145294189447,45.71072006225597],[-96.83033752441406,45.656688690185604],[-96.85455322265625,45.6074600219726],[-96.77336883544922,45.528610229492244],[-96.73165893554682,45.45928955078125],[-96.67417144775379,45.4115104675293],[-96.60874938964831,45.40938949584961],[-96.50586700439453,45.369800567627],[-96.4519271850586,45.302162170410206],[-96.45320892333973,44.978752136230575],[-96.45337677001947,44.544448852539176],[-96.45375061035149,44.198329925537166],[-96.45316314697266,43.85147857666021],[-96.45408630371094,43.50263214111334],[-96.59738159179682,43.502071380615234],[-96.59649658203125,43.44218063354492],[-96.51992797851557,43.39160919189459],[-96.55847167968744,43.22566223144537],[-96.46853637695307,43.21004867553711],[-96.46408843994139,43.15085983276378],[-96.43779754638672,43.11725997924815],[-96.46169281005848,43.06549072265636],[-96.5166778564453,43.04603958129883],[-96.49234008789061,43.00564956665045],[-96.49848175048822,42.95956039428722],[-96.53716278076172,42.91868209838872],[-96.55314636230463,42.84725952148443],[-96.58963012695312,42.7986793518067],[-96.63260650634766,42.76808929443365],[-96.62800598144526,42.70771026611322],[-96.53913116455067,42.65932846069347],[-96.47921752929682,42.55704879760748],[-96.49259185791004,42.521499633789176],[-96.44995117187494,42.48947906494152],[-96.50003051757801,42.48455047607416],[-96.55103302001947,42.52178192138671],[-96.60624694824213,42.504489898681584],[-96.62798309326166,42.55015945434576],[-96.71321868896484,42.609069824218864],[-96.69304656982416,42.660518646240234],[-96.76580047607416,42.66289138793951],[-96.85941314697266,42.722702026367244],[-96.9207992553711,42.7330207824707],[-96.97498321533203,42.757431030273494],[-97.13471984863281,42.77392959594732],[-97.14066314697266,42.793190002441406],[-97.20980072021483,42.809329986572266],[-97.21930694580078,42.84654998779308],[-97.35588836669922,42.873600006103516],[-97.44138336181635,42.84645080566412],[-97.48414611816406,42.868171691894524],[-97.5897598266601,42.842449188232536],[-97.63408660888672,42.85998916625988],[-97.68215942382811,42.83349990844721],[-97.708023071289,42.8588485717774],[-97.7916030883789,42.84027099609369],[-97.82689666748047,42.86854934692394],[-97.87570190429682,42.85726165771484],[-97.88291931152338,42.828258514404354],[-97.94235992431635,42.7765007019043],[-98.01196289062493,42.76224899291998],[-98.05587005615234,42.77059173583989],[-98.126953125,42.81991195678722],[-98.24179840087885,42.865600585937614],[-98.34464263916016,42.89213943481451],[-98.4639663696289,42.94559860229503],[-98.50005340576165,42.99765014648437],[-99.25251007080072,42.9973411560058],[-99.6529312133789,42.99760055541992],[-100.19835662841791,42.99792098999018],[-100.75086212158203,42.99465179443365],[-101.22769927978516,42.99528884887695],[-101.6774673461914,42.99526977539068],[-102.50831604003905,42.998790740966854],[-103.22856140136712,42.99987030029308],[-103.63710784912104,43.001129150390625],[-104.05265045166003,43.00279998779297],[-104.05364990234375,43.422111511230526],[-104.05491638183588,43.73770141601562],[-104.05512237548822,44.18148040771496],[-104.05638885498047,44.571701049804744],[-104.05712890624994,44.99866104125982],[-104.03971099853516,44.99861907958996],[-104.0425033569336,45.55717849731457],[-104.0442886352539,45.94382858276367],[-102.99555206298828,45.944000244140675],[-102.42221832275384,45.943988800048935],[-101.9988174438476,45.94432067871094],[-101.08338928222645,45.94343948364252],[-100.45852661132807,45.9434204101563],[-99.72115325927729,45.942131042480526],[-99.00537109375,45.93931198120123],[-98.3537368774414,45.93545913696288],[-97.6050415039062,45.93561172485345],[-97.00152587890625,45.93535995483404],[-96.56125640869129,45.935581207275504]]]},"properties":{"ID_0":244,"ISO":"US-SD","NAME_0":"United States","ID_1":42,"NAME_1":"South Dakota","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"SD|S.D."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.67481994628899,36.60120010375987],[-83.47200012207031,36.59751892089838],[-83.27423858642578,36.600059509277344],[-83.2538070678711,36.594150543213004],[-82.75972747802734,36.594058990478516],[-82.2930297851562,36.59585189819347],[-81.93522644042963,36.595031738281364],[-81.9233169555664,36.616588592529354],[-81.64745330810547,36.61249923706048],[-81.67576599121094,36.58901214599614],[-81.70812225341795,36.53479003906249],[-81.69689178466791,36.4686012268067],[-81.73815917968749,36.40921020507824],[-81.7240600585937,36.3552703857423],[-81.74630737304676,36.3359489440918],[-81.80771636962885,36.35219192504883],[-81.9107208251952,36.29809951782232],[-82.0320205688476,36.12105178833013],[-82.08226013183588,36.10412216186529],[-82.13188934326172,36.106868743896484],[-82.14823150634766,36.144828796386776],[-82.22119903564453,36.15668869018555],[-82.24635314941406,36.132518768310604],[-82.35263824462885,36.11722946166998],[-82.40696716308592,36.0870819091798],[-82.4603195190429,36.007061004638786],[-82.56421661376953,35.95539093017584],[-82.60154724121088,35.96683883667003],[-82.61403656005852,36.001750946045036],[-82.5910568237304,36.03511047363281],[-82.63355255126953,36.06586074829101],[-82.77717590332031,35.99462127685547],[-82.78694915771479,35.952201843261776],[-82.82103729248047,35.92544174194347],[-82.86482238769531,35.95170974731451],[-82.91729736328118,35.92683029174804],[-82.90119171142572,35.89759063720703],[-82.91703796386707,35.84307861328131],[-82.99822235107422,35.774108886718864],[-83.0742797851562,35.78942108154297],[-83.16223144531239,35.76258850097662],[-83.18351745605469,35.72985076904308],[-83.23628997802734,35.728370666503906],[-83.29599761962885,35.65938186645519],[-83.3444366455078,35.66270065307617],[-83.3963165283203,35.62350082397472],[-83.44892883300781,35.60784912109375],[-83.49848175048822,35.56351089477539],[-83.58116912841791,35.56496047973644],[-83.5976333618164,35.57807922363281],[-83.76255798339838,35.56470108032232],[-83.8241729736327,35.52635955810541],[-83.87874603271483,35.519691467285156],[-83.89984893798828,35.48731994628906],[-83.9592514038086,35.462940216064396],[-84.02050781249994,35.40950012207031],[-84.01317596435541,35.365749359130916],[-84.03388214111322,35.35025024414073],[-84.02401733398438,35.29515075683605],[-84.08760070800781,35.254428863525504],[-84.1956787109375,35.245800018310604],[-84.22789001464844,35.26782989501959],[-84.28929901123047,35.22573852539074],[-84.32096862792969,34.989040374755916],[-84.63743591308588,34.99055099487305],[-85.15265655517578,34.987590789795036],[-85.341796875,34.983901977539006],[-85.6055068969726,34.98553085327142],[-86.31871795654295,34.99213027954107],[-86.4191665649414,34.990901947021484],[-86.88439178466791,34.99240875244146],[-87.22883605957031,35.00032043457031],[-87.61036682128906,35.00487136840826],[-88.20189666748041,35.00888061523449],[-88.19957733154295,34.997821807861385],[-88.92314147949219,34.99608993530279],[-89.30813598632812,34.99573135375982],[-89.88611602783203,34.996200561523494],[-90.30976867675781,34.99660873413086],[-90.275650024414,35.03966903686535],[-90.2007217407226,35.03031921386719],[-90.17922973632812,35.1167602539063],[-90.1426391601562,35.1371421813966],[-90.09780883789055,35.119621276855526],[-90.06684112548828,35.15052032470708],[-90.11460876464832,35.180030822753906],[-90.07412719726561,35.21887969970714],[-90.10386657714842,35.25535964965832],[-90.15181732177734,35.255771636963004],[-90.15638732910155,35.30115127563488],[-90.10833740234375,35.30902099609381],[-90.10791778564447,35.34275054931646],[-90.0751113891601,35.384670257568416],[-90.12612152099604,35.41577911376953],[-90.1382827758789,35.379459381103516],[-90.17984771728516,35.38616943359369],[-90.1708984375,35.41873931884776],[-90.0990600585937,35.480419158935604],[-90.03086090087885,35.427928924560604],[-90.01908874511717,35.46895980834966],[-90.04913330078125,35.511329650878906],[-90.03614807128906,35.551521301269645],[-89.98796081542957,35.55937957763672],[-89.95485687255854,35.52400970458996],[-89.94140624999994,35.602321624755966],[-89.86263275146479,35.63191223144537],[-89.91184997558588,35.6542587280274],[-89.9564590454101,35.69501113891613],[-89.95271301269531,35.737960815429744],[-89.9059829711914,35.75981903076166],[-89.87516021728516,35.74160003662115],[-89.8186264038086,35.75682067871094],[-89.79366302490229,35.794780731201286],[-89.70654296875,35.81716156005865],[-89.7074203491211,35.838581085205135],[-89.76239776611322,35.856891632080135],[-89.76773071289057,35.88957977294922],[-89.71317291259759,35.90610885620122],[-89.66558074951172,35.88338088989258],[-89.6587142944336,35.92705154418945],[-89.71617126464844,35.96250152587896],[-89.7169418334961,36.0015220642091],[-89.681396484375,36.04302978515636],[-89.65635681152338,36.10235977172857],[-89.60698699951172,36.11838912963873],[-89.58956146240234,36.14751052856445],[-89.69854736328125,36.2308807373048],[-89.67331695556635,36.252090454101676],[-89.60826873779291,36.24090957641613],[-89.55058288574213,36.252170562744254],[-89.54556274414062,36.27909088134771],[-89.61666107177729,36.31863021850586],[-89.60420227050768,36.344612121581974],[-89.52641296386719,36.3459205627442],[-89.51924133300781,36.388339996338004],[-89.55148315429686,36.441398620605526],[-89.52037811279286,36.47090148925781],[-89.541748046875,36.500339508056584],[-89.48729705810545,36.499889373779354],[-89.46463775634766,36.457099914550895],[-89.41960144042969,36.498039245605526],[-89.29921722412098,36.507820129394645],[-88.95474243164057,36.5037193298341],[-88.51719665527338,36.502750396728565],[-88.05705261230463,36.49671936035162],[-88.0326309204101,36.536708831787166],[-88.0707321166992,36.679248809814396],[-87.8504562377929,36.665149688720696],[-87.85340118408203,36.635250091552734],[-87.43670654296875,36.64168930053711],[-87.06050872802734,36.64443206787121],[-86.59133148193354,36.65443038940441],[-86.56365966796875,36.63505935668945],[-86.50946807861327,36.65394973754882],[-86.34010314941406,36.64995956420904],[-86.20700073242182,36.64120101928716],[-85.8526306152343,36.62451171875006],[-85.50741577148438,36.61513137817394],[-85.26261901855469,36.62825012207031],[-84.97767639160156,36.61809158325195],[-84.83001708984364,36.60713958740239],[-84.5069961547851,36.59875869750971],[-84.0300674438476,36.59305953979492],[-83.69021606445311,36.583831787109375],[-83.67481994628899,36.60120010375987]]]},"properties":{"ID_0":244,"ISO":"US-TN","NAME_0":"United States","ID_1":43,"NAME_1":"Tennessee","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"TN|Tenn."}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-97.3245849609375,26.540695190429688],[-97.29652404785149,26.505138397216797],[-97.26902770996094,26.44041633605957],[-97.22235870361328,26.403749465942326],[-97.19041442871092,26.272918701171875],[-97.24402618408203,26.34180641174316],[-97.2790298461914,26.43430519104004],[-97.335693359375,26.507083892822322],[-97.3245849609375,26.540695190429688]]],[[[-97.05722045898438,27.84222030639654],[-97.20361328125,27.61555480957037],[-97.28138732910155,27.46249961853033],[-97.3133316040039,27.38638877868675],[-97.35055541992188,27.269166946411133],[-97.37139129638666,27.165554046630973],[-97.37930297851557,27.00013923645031],[-97.37069702148438,26.900138854980582],[-97.34402465820307,26.7776393890382],[-97.35652923583973,26.723749160766715],[-97.39624786376953,26.86958312988287],[-97.3862075805664,27.085334777832145],[-97.39416503906244,27.11388969421415],[-97.3897247314453,27.203887939453125],[-97.35610961914057,27.310277938842773],[-97.36055755615234,27.366388320922795],[-97.33083343505858,27.434722900390682],[-97.24805450439453,27.579166412353516],[-97.25749969482416,27.597221374511776],[-97.20555877685536,27.640277862548942],[-97.19750213623047,27.680276870727823],[-97.1161117553711,27.78000068664556],[-97.10250091552734,27.815277099609485],[-97.05722045898438,27.84222030639654]]],[[[-96.883056640625,28.133888244628906],[-96.83944702148426,28.097778320312614],[-96.85055541992186,28.068056106567496],[-96.95805358886713,27.960556030273494],[-96.95512390136707,28.01498985290544],[-96.92583465576166,28.087776184082088],[-96.883056640625,28.133888244628906]]],[[[-96.41000366210926,28.399999618530327],[-96.4073181152343,28.344169616699276],[-96.43694305419922,28.318611145019585],[-96.58949279785156,28.249181747436637],[-96.69731903076166,28.18090438842773],[-96.83620452880847,28.076503753662223],[-96.81074523925781,28.124252319335994],[-96.81722259521473,28.17444419860857],[-96.79389190673828,28.188055038452205],[-96.70345306396473,28.198474884033203],[-96.64944458007807,28.251943588257063],[-96.54916381835938,28.29305648803711],[-96.53221893310547,28.321388244628903],[-96.44820404052734,28.338659286498967],[-96.41000366210926,28.399999618530327]]],[[[-97.2156982421875,25.9701385498048],[-97.28170776367188,25.93453979492187],[-97.34111022949219,25.931459426879996],[-97.36968994140614,25.916503906250284],[-97.3626098632812,25.867675781250284],[-97.38067626953125,25.841308593750057],[-97.44787597656243,25.8554306030274],[-97.45616149902338,25.881572723388842],[-97.52327728271484,25.88829994201666],[-97.55956268310536,25.936424255371094],[-97.60528564453125,25.957885742187557],[-97.64035034179688,26.017892837524357],[-97.7315063476562,26.03387451171892],[-97.79840087890625,26.034912109375057],[-97.87928009033203,26.06055831909185],[-97.97054290771484,26.05360031127924],[-98.07991027832031,26.069110870361328],[-98.14572143554686,26.05134010314964],[-98.18155670166016,26.070020675659293],[-98.24494171142572,26.072040557861385],[-98.30724334716786,26.103620529174748],[-98.3501358032226,26.151500701904297],[-98.3883666992187,26.154872894287223],[-98.460693359375,26.224428176879996],[-98.53676605224604,26.227380752563477],[-98.63279724121088,26.24488067626953],[-98.71463012695307,26.269971847534176],[-98.73211669921875,26.31595039367704],[-98.78988647460932,26.334671020507812],[-98.80258178710926,26.36671066284185],[-98.83598327636717,26.361091613769588],[-98.9337387084961,26.377391815185604],[-98.97540283203125,26.399530410766715],[-99.00982666015625,26.391548156738278],[-99.04194641113276,26.41126060485851],[-99.07444000244135,26.39630126953125],[-99.11052703857422,26.423419952392692],[-99.0942993164062,26.478729248047102],[-99.1226959228515,26.520561218262003],[-99.17156982421875,26.540361404418945],[-99.1753158569336,26.625379562377987],[-99.1949462890625,26.637540817260742],[-99.21095275878906,26.717550277710075],[-99.24610137939447,26.755210876464957],[-99.24382781982415,26.783351898193303],[-99.28430938720702,26.85795021057129],[-99.31520843505858,26.867389678955135],[-99.33206176757801,26.92103195190441],[-99.37467193603509,26.93237113952631],[-99.38150024414061,26.97254943847662],[-99.4147720336914,27.015649795532227],[-99.4452514648437,27.021810531616325],[-99.45159149169922,27.065200805664062],[-99.43107604980467,27.088619232177788],[-99.4413604736328,27.151390075683764],[-99.4294662475586,27.177150726318413],[-99.45950317382812,27.265808105468864],[-99.49928283691406,27.26925086975109],[-99.51422882080078,27.33109092712408],[-99.49028778076172,27.407020568847656],[-99.48268127441406,27.482080459594783],[-99.52964019775385,27.50073051452648],[-99.51799011230469,27.569770812988338],[-99.54339599609362,27.605810165405387],[-99.58589935302729,27.61013031005859],[-99.5995864868164,27.6405811309815],[-99.66470336914051,27.632520675659293],[-99.71279907226561,27.65476036071783],[-99.77307891845703,27.729499816894474],[-99.80383300781244,27.737840652465877],[-99.88121795654297,27.797800064087024],[-99.88115692138665,27.835550308227653],[-99.90937805175781,27.873310089111385],[-99.90213775634759,27.909660339355526],[-99.94222259521473,27.945119857788196],[-99.94168090820312,27.98376083374029],[-99.97769927978504,27.988380432128906],[-100.0106430053711,28.030241012573185],[-100.01835632324219,28.066579818725643],[-100.05081939697259,28.08312988281267],[-100.08590698242182,28.146570205688533],[-100.16947937011713,28.172218322753906],[-100.2107925415039,28.195140838623157],[-100.22326660156244,28.234201431274528],[-100.25372314453125,28.236890792846733],[-100.29205322265624,28.276790618896598],[-100.2906265258789,28.314939498901424],[-100.35040283203125,28.399789810180607],[-100.34129333496094,28.44807052612316],[-100.4136734008789,28.544759750366264],[-100.39832305908203,28.584318161010685],[-100.44872283935547,28.611679077148438],[-100.44938659667956,28.640159606933647],[-100.50189971923821,28.662429809570312],[-100.50910186767578,28.737712860107475],[-100.53363800048828,28.758712768554858],[-100.53756713867182,28.8050594329834],[-100.59410095214844,28.863979339599666],[-100.65245056152344,28.946710586547905],[-100.64908599853503,28.98344993591314],[-100.66651153564447,29.078319549560547],[-100.7778930664062,29.171609878540096],[-100.76811218261719,29.18635940551763],[-100.79841613769526,29.24530982971186],[-100.87713623046875,29.28046989440929],[-100.88947296142572,29.30834007263195],[-101.01200866699217,29.370990753173885],[-101.06388092041016,29.459430694580075],[-101.15209197998047,29.47595024108915],[-101.17408752441406,29.512830734253097],[-101.25068664550781,29.5193080902099],[-101.24913024902338,29.624731063842887],[-101.27997589111328,29.617500305175838],[-101.31739044189446,29.660579681396595],[-101.36557769775385,29.65357017517101],[-101.39840698242188,29.73332977294933],[-101.45127868652342,29.75188255310081],[-101.45876312255858,29.78887939453125],[-101.5381393432617,29.759389877319453],[-101.57309722900384,29.77400970458984],[-101.62976837158203,29.768140792846733],[-101.80718994140625,29.780460357666076],[-101.84648895263665,29.798120498657227],[-101.95585632324219,29.79713058471691],[-101.98252868652342,29.813140869140625],[-102.05916595458979,29.785610198974666],[-102.11559295654297,29.791860580444283],[-102.16747283935547,29.824739456176868],[-102.2645263671875,29.853460311889762],[-102.30094909667969,29.876060485839844],[-102.3642501831054,29.84402084350614],[-102.38485717773432,29.773929595947266],[-102.51605987548822,29.782901763916016],[-102.6427993774414,29.73361968994163],[-102.67556762695311,29.739229202270568],[-102.70636749267578,29.66835975646967],[-102.74153137207026,29.63585090637213],[-102.7997970581054,29.52663993835455],[-102.83098602294916,29.441921234130916],[-102.8175430297851,29.401790618896484],[-102.88387298583983,29.35063171386724],[-102.89063262939453,29.289440155029297],[-102.90792846679682,29.260541915893555],[-102.8679428100586,29.222150802612475],[-102.92119598388666,29.191820144653374],[-102.99746704101562,29.1778011322022],[-102.99828338623047,29.156669616699276],[-103.04200744628906,29.09623908996588],[-103.07473754882805,29.092559814453352],[-103.1156005859375,28.985340118408317],[-103.16821289062494,28.971410751342827],[-103.18692779541016,28.9841709136964],[-103.31387329101562,29.006059646606502],[-103.43218994140612,29.04459953308106],[-103.45153045654291,29.071060180664116],[-103.55538940429682,29.158590316772575],[-103.71832275390625,29.18247985839855],[-103.74508666992182,29.220569610595646],[-103.79914855957024,29.25999259948736],[-103.85405731201172,29.28283119201689],[-103.97450256347656,29.29729080200195],[-104.05293273925776,29.32880020141607],[-104.10856628417969,29.374891281128043],[-104.14359283447266,29.384109497070423],[-104.21470642089844,29.454320907592773],[-104.21006774902338,29.476520538330192],[-104.26664733886712,29.5165195465089],[-104.33349609374994,29.52120971679699],[-104.39842987060541,29.57224082946783],[-104.46740722656239,29.611660003662166],[-104.54428863525389,29.682319641113338],[-104.55277252197266,29.74113082885742],[-104.61035919189442,29.840040206909237],[-104.67765808105463,29.903190612793026],[-104.70703124999993,30.04861068725586],[-104.68654632568352,30.09715080261236],[-104.69097900390625,30.184009552001953],[-104.70945739746094,30.239110946655384],[-104.76023864746094,30.274940490722717],[-104.76090240478516,30.29552078247082],[-104.8119659423827,30.335441589355526],[-104.81246185302734,30.36198043823242],[-104.8569107055664,30.38751029968273],[-104.86849212646479,30.49323272705089],[-104.9100570678711,30.584339141845703],[-104.9784927368164,30.616979598998967],[-105.01148986816406,30.6868896484375],[-105.08203887939447,30.700149536132923],[-105.11248016357422,30.74406051635748],[-105.19647979736322,30.791860580444446],[-105.31915283203124,30.825849533081225],[-105.39462280273438,30.870250701904293],[-105.41694641113276,30.90118980407732],[-105.49122619628905,30.941930770874077],[-105.5057907104492,30.96775054931652],[-105.55367279052734,30.988241195678768],[-105.60177612304682,31.081449508666992],[-105.64803314208979,31.115711212158146],[-105.77559661865234,31.170909881591854],[-105.87269592285156,31.291170120239254],[-105.9311904907226,31.313230514526367],[-105.9494400024414,31.35708045959484],[-106.00462341308588,31.391630172729716],[-106.07707214355469,31.397758483886715],[-106.14290618896479,31.429830551147518],[-106.22122955322264,31.483579635620174],[-106.25026702880852,31.545980453491268],[-106.28044891357422,31.560291290283317],[-106.30473327636713,31.616090774536417],[-106.38513946533197,31.733150482177734],[-106.42549133300768,31.751880645752177],[-106.48884582519531,31.747762680053768],[-106.52902984619135,31.784490585327145],[-106.5771713256836,31.81162071228027],[-106.63600158691406,31.869449615478633],[-106.61881256103516,31.916641235351847],[-106.61930084228516,32.001171112060774],[-106.31398010253899,32.00181961059582],[-105.7547531127929,32.00162887573253],[-105.25343322753906,32.00167846679693],[-104.7313003540039,32.0032005310058],[-104.02654266357422,32.00101852416998],[-103.39540100097656,32.000831604003906],[-103.06416320800776,31.9996395111084],[-103.06365203857422,32.52151870727545],[-103.06317138671874,33.00173950195324],[-103.05136108398432,33.640220642089844],[-103.04270935058588,34.000709533691406],[-103.04264831542969,34.367630004882926],[-103.0423812866211,34.747211456298885],[-103.04209899902344,35.186050415039176],[-103.04088592529291,35.622451782226676],[-103.04077911376947,36.1136207580567],[-103.04077911376947,36.50046920776372],[-103.00065612792957,36.50128936767584],[-102.16182708740234,36.500438690185604],[-101.87004089355463,36.50344085693371],[-101.0908432006836,36.50032043457037],[-100.54590606689453,36.49943923950195],[-100.0037994384765,36.49977874755865],[-100.0015411376952,35.9477806091308],[-100.00100708007812,35.64001846313482],[-100.00084686279291,35.02949905395513],[-100.00144958496094,34.558269500732536],[-99.94872283935547,34.58031082153326],[-99.86705017089838,34.536380767822266],[-99.80113220214844,34.458831787109375],[-99.68681335449213,34.37863159179693],[-99.60735321044915,34.371650695800724],[-99.57929229736328,34.41487121582037],[-99.5057067871093,34.40790176391607],[-99.43290710449217,34.37440109252941],[-99.3972930908202,34.381290435791016],[-99.37039947509753,34.45775222778332],[-99.32402038574212,34.41749954223644],[-99.27086639404297,34.39926147460949],[-99.21247863769531,34.33663940429693],[-99.189697265625,34.21557998657226],[-99.04244232177734,34.19905090332031],[-98.99141693115234,34.22214126586919],[-98.95230865478504,34.21345901489258],[-98.88551330566405,34.16930007934576],[-98.80586242675781,34.15576171875],[-98.73896026611322,34.12683105468756],[-98.68871307373036,34.13388061523443],[-98.64808654785145,34.164402008056754],[-98.60259246826166,34.161090850830135],[-98.4813461303711,34.06143951416021],[-98.41487884521479,34.08486938476568],[-98.36731719970697,34.15575027465826],[-98.29705810546875,34.133178710937614],[-98.23826599121088,34.132389068603516],[-98.16925811767578,34.11386108398443],[-98.12742614746094,34.15161895751959],[-98.09298706054688,34.13422012329113],[-98.12152862548822,34.077331542968864],[-98.08180236816406,34.00275039672857],[-97.97532653808594,33.999179840088004],[-97.94873809814447,33.986949920654354],[-97.97373199462885,33.939842224121094],[-97.96473693847656,33.883369445800724],[-97.8729019165039,33.852500915527344],[-97.83788299560547,33.85868072509771],[-97.7804718017578,33.89752197265625],[-97.6752090454101,33.990119934082145],[-97.63272857666016,33.982219696045036],[-97.58967590332026,33.953750610351506],[-97.58487701416016,33.900329589843864],[-97.50633239746088,33.91658020019531],[-97.45376586914057,33.89860916137701],[-97.45005035400385,33.82621002197265],[-97.38342285156237,33.81790161132824],[-97.31421661376953,33.86862182617199],[-97.25279235839842,33.86854171752941],[-97.21881866455065,33.91337966918957],[-97.1800918579101,33.889141082763786],[-97.16853332519526,33.84239959716797],[-97.20260620117176,33.817760467529354],[-97.1918258666991,33.763820648193466],[-97.16536712646483,33.731330871582145],[-97.1233673095703,33.716339111328125],[-97.09147644042963,33.73400878906261],[-97.09384155273438,33.79824066162121],[-97.05113220214838,33.81671905517584],[-96.98903656005858,33.878341674804744],[-96.99356842041016,33.9330406188966],[-96.91548156738281,33.95515060424816],[-96.8795928955077,33.869918823242244],[-96.78518676757811,33.86268997192383],[-96.76690673828125,33.82912063598633],[-96.7091064453125,33.83483886718756],[-96.67576599121088,33.911361694336044],[-96.58998107910156,33.8960800170899],[-96.61696624755858,33.84302902221674],[-96.57081604003906,33.818359375],[-96.53217315673817,33.82139968872075],[-96.50199890136713,33.77413940429687],[-96.42411804199207,33.77716064453125],[-96.37061309814447,33.71834182739258],[-96.3195571899414,33.695709228515625],[-96.29196166992188,33.76789855957036],[-96.23147583007801,33.74747848510742],[-96.18570709228516,33.75487136840832],[-96.16980743408203,33.817070007324276],[-96.0995101928711,33.84947204589844],[-96.0489730834961,33.83668899536144],[-95.94172668457026,33.86233901977539],[-95.91543579101562,33.880779266357536],[-95.83081054687494,33.835449218750114],[-95.82023620605463,33.85768127441406],[-95.75343322753906,33.856300354003906],[-95.74639892578125,33.89616012573247],[-95.69853210449213,33.88484954833996],[-95.58721923828125,33.9355087280274],[-95.56033325195312,33.93019104003912],[-95.54062652587885,33.87945175170893],[-95.41359710693354,33.8667106628418],[-95.28054046630852,33.87709045410156],[-95.27802276611328,33.910751342773494],[-95.21906280517578,33.959758758544865],[-95.1239013671875,33.93470001220703],[-95.11435699462889,33.90649032592785],[-95.02568817138672,33.85887145996099],[-94.96729278564453,33.858612060546875],[-94.94716644287098,33.80718994140631],[-94.8667373657226,33.744140625],[-94.7821273803711,33.739971160888786],[-94.7577285766601,33.706100463867244],[-94.68688201904291,33.68527984619146],[-94.64672088623041,33.701610565185604],[-94.56958770751947,33.63840866088867],[-94.52642822265624,33.61524963378906],[-94.48629760742186,33.64110946655279],[-94.45440673828125,33.62025070190423],[-94.38497161865223,33.544189453125114],[-94.33524322509766,33.563579559326286],[-94.31211853027342,33.5519905090332],[-94.23461151123047,33.55192947387707],[-94.18660736083973,33.589248657226506],[-94.11730194091797,33.56679916381847],[-94.09290313720703,33.57558059692394],[-94.04447937011713,33.550460815429744],[-94.04561614990234,33.02059936523443],[-94.044692993164,32.4949493408206],[-94.0419082641601,31.993850708007873],[-94.02334594726562,31.991212844848686],[-93.9704132080077,31.92288017272955],[-93.88522338867182,31.870599746704272],[-93.87135314941406,31.82071113586431],[-93.8408432006836,31.800220489502063],[-93.83695220947266,31.750259399414286],[-93.79618835449217,31.70000076293968],[-93.82691192626952,31.664220809936577],[-93.81836700439447,31.6220703125],[-93.83809661865234,31.604658126831055],[-93.81791687011707,31.557151794433707],[-93.72380065917969,31.49423980712891],[-93.7503814697265,31.470579147338864],[-93.69464874267577,31.44045066833496],[-93.6650085449218,31.365739822387695],[-93.68952178955072,31.306579589843754],[-93.6246566772461,31.271310806274585],[-93.6011734008789,31.17836189270031],[-93.55741882324219,31.18597984313965],[-93.53978729248047,31.119659423828125],[-93.56416320800781,31.094360351562553],[-93.51055908203125,31.02806091308588],[-93.56153106689453,31.00732994079595],[-93.5712814331054,30.97071075439453],[-93.53349304199219,30.95523071289063],[-93.58183288574219,30.803251266479545],[-93.63086700439447,30.679679870605526],[-93.68441772460938,30.63473129272461],[-93.67991638183588,30.597721099853516],[-93.72535705566406,30.57720947265625],[-93.73517608642578,30.53626060485851],[-93.70569610595703,30.511669158935547],[-93.70482635498045,30.44635009765625],[-93.75734710693354,30.389930725097653],[-93.76402282714838,30.34357833862316],[-93.74279022216797,30.302831649780384],[-93.7096176147461,30.289310455322266],[-93.70516967773432,30.241809844970703],[-93.72041320800781,30.2090301513673],[-93.7018203735351,30.133670806884766],[-93.73262023925781,30.08361053466797],[-93.72178649902332,30.05425071716314],[-93.79010772705078,29.987340927124134],[-93.83450317382807,29.888000488281364],[-93.92626190185547,29.816520690917912],[-93.84029388427729,29.691368103027457],[-93.86711120605463,29.67747688293468],[-93.97035217285156,29.682861328124996],[-94.04808807373047,29.673246383666992],[-94.11883544921875,29.652656555175895],[-94.5716094970702,29.47876739501953],[-94.6693878173828,29.43265342712431],[-94.72966766357422,29.369878768920955],[-94.77799987792969,29.3757114410401],[-94.68806457519531,29.44963836669928],[-94.51110839843744,29.51638793945318],[-94.54660797119135,29.57265663146973],[-94.76882934570301,29.525432586670146],[-94.71320343017572,29.61051559448248],[-94.68972015380858,29.693056106567436],[-94.69139099121082,29.741388320922965],[-94.73986053466797,29.787935256958118],[-94.8096694946289,29.760990142822493],[-94.84750366210925,29.725276947021484],[-94.87275695800776,29.671140670776534],[-94.90966796874994,29.654878616333008],[-94.94355773925781,29.698490142822546],[-95.01883697509766,29.721660614013672],[-95.0566635131836,29.797500610351562],[-95.07318115234375,29.75656509399414],[-95.05348968505854,29.706724166870174],[-94.98244476318354,29.681266784668086],[-95.0149536132812,29.63200759887695],[-94.98332977294922,29.599721908569393],[-95.01777648925781,29.555553436279297],[-94.99589538574207,29.52073478698736],[-94.90921783447266,29.49481964111351],[-94.9544448852539,29.4730548858642],[-94.89133453369139,29.43376731872564],[-94.88244628906249,29.378765106201225],[-94.90744018554688,29.339878082275447],[-94.8718872070312,29.29098892211914],[-94.79466247558588,29.309602737426925],[-94.76638793945312,29.337778091430774],[-94.72555541992188,29.333610534667965],[-94.8118896484375,29.273767471313473],[-94.98966979980463,29.171545028686637],[-94.9161148071289,29.258054733276367],[-94.87860870361328,29.291389465332145],[-94.9438858032226,29.30500030517578],[-95.02749633789062,29.23110961914074],[-95.03888702392571,29.210832595825195],[-95.09908294677723,29.17623329162609],[-95.1497802734375,29.181299209594954],[-95.16665649414062,29.114900588989258],[-95.19689178466797,29.0895614624024],[-95.16812133789057,29.046066284179744],[-95.29722595214838,28.93500137329113],[-95.3863906860351,28.866945266723636],[-95.44833374023438,28.85611152648931],[-95.64302062988281,28.75495147705078],[-95.675552368164,28.76028060913097],[-95.73055267333984,28.740554809570426],[-95.78641510009764,28.74859237670904],[-95.92298126220702,28.70147705078119],[-95.94555664062494,28.680278778076172],[-95.95277404785156,28.63583374023449],[-95.84027862548817,28.65138626098644],[-96.08860778808587,28.553611755371207],[-96.22528076171864,28.48805427551281],[-96.22721862792969,28.50444412231451],[-96.008056640625,28.601390838623157],[-95.9802780151366,28.636388778686467],[-96.04515075683594,28.649566650390735],[-96.0999984741211,28.623886108398438],[-96.1555557250976,28.612779617309855],[-96.22658538818354,28.63767433166504],[-96.18178558349604,28.70653152465815],[-96.28749847412108,28.683612823486442],[-96.30419158935547,28.645858764648665],[-96.35697937011706,28.628118515014705],[-96.36192321777338,28.661230087280273],[-96.40672302246094,28.664985656738335],[-96.47344207763672,28.62760925292997],[-96.54416656494134,28.645277023315487],[-96.57555389404291,28.667779922485522],[-96.58611297607416,28.725000381469897],[-96.64555358886712,28.711389541626257],[-96.61096954345703,28.592018127441406],[-96.56776428222656,28.582983016967717],[-96.51351165771483,28.533571243286186],[-96.4053497314453,28.454322814941406],[-96.43245697021484,28.428489685058707],[-96.61575317382812,28.341907501220703],[-96.67333221435547,28.321388244628903],[-96.70568084716795,28.34960556030279],[-96.70652770996094,28.40437698364269],[-96.78004455566405,28.400802612304744],[-96.83720397949219,28.432420730590817],[-96.8277740478515,28.3799991607666],[-96.79435729980469,28.36379051208507],[-96.7914810180664,28.313463211059624],[-96.8077774047851,28.295278549194393],[-96.78734588623041,28.25561904907238],[-96.79777526855467,28.23277854919445],[-96.86305236816406,28.17138862609869],[-96.93118286132807,28.124294281006087],[-97.01850891113276,28.143938064575252],[-97.03239440917967,28.18811416625971],[-97.16860961914062,28.13055610656744],[-97.23084259033202,28.07249641418474],[-97.1606674194336,28.049058914184567],[-97.06086730957026,28.087966918945366],[-97.03672027587889,28.074474334716797],[-97.02527618408203,28.032224655151424],[-97.12386322021483,27.920370101928654],[-97.19249725341786,27.820833206176815],[-97.21389007568358,27.820833206176815],[-97.24913787841791,27.875331878662106],[-97.32666778564447,27.8666667938233],[-97.36151885986328,27.87524986267095],[-97.45666503906249,27.86972236633312],[-97.49456787109375,27.88289833068842],[-97.52027893066406,27.860834121704098],[-97.4786148071289,27.825277328491264],[-97.37999725341795,27.837778091430717],[-97.39167022705078,27.776666641235522],[-97.33287048339838,27.719247817993107],[-97.25260925292969,27.697723388671932],[-97.26867675781244,27.67788505554205],[-97.30722045898426,27.581943511963004],[-97.31995391845703,27.571250915527344],[-97.3664779663086,27.446075439453296],[-97.3683090209961,27.413442611694336],[-97.41159057617188,27.32258605957037],[-97.4786148071289,27.299444198608455],[-97.486587524414,27.384460449218693],[-97.63055419921875,27.302499771118335],[-97.6323471069336,27.323181152343864],[-97.70565795898432,27.372482299804688],[-97.6280517578125,27.24194526672369],[-97.54320526123045,27.228982925415096],[-97.44507598876953,27.263874053955078],[-97.42284393310547,27.256383895874137],[-97.44363403320312,27.153629302978516],[-97.44721984863268,27.0944442749024],[-97.49444580078124,27.08972167968761],[-97.45783233642578,27.034763336181637],[-97.45207977294916,26.98430633544939],[-97.47291564941406,26.968748092651477],[-97.51847076416016,26.989585876464957],[-97.5545806884765,26.942638397216793],[-97.50180816650389,26.933473587036133],[-97.45874786376947,26.94319534301752],[-97.46347045898438,26.88319587707548],[-97.48958587646483,26.846805572509822],[-97.54402923583984,26.89513969421398],[-97.55291748046875,26.84208488464361],[-97.50875091552734,26.8084716796875],[-97.48152923583977,26.806804656982536],[-97.46375274658203,26.690694808960075],[-97.40458679199213,26.477638244628963],[-97.33097076416004,26.369583129882812],[-97.3543090820312,26.311807632446232],[-97.34263610839844,26.26597213745123],[-97.30430603027344,26.2540283203125],[-97.3165283203125,26.224306106567383],[-97.29541778564452,26.19597244262701],[-97.30541992187499,26.160417556762695],[-97.2820816040039,26.09375],[-97.2084732055664,26.079305648803768],[-97.19708251953124,26.04958343505865],[-97.2156982421875,26.02152824401861],[-97.2156982421875,25.9701385498048]]]]},"properties":{"ID_0":244,"ISO":"US-TX","NAME_0":"United States","ID_1":44,"NAME_1":"Texas","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"TX|Tex."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-111.04627990722656,42.00048065185546],[-111.04612731933587,41.451118469238395],[-111.04559326171875,40.99777984619135],[-110.27641296386713,40.99626922607422],[-110.0001373291015,40.9992294311524],[-109.58846282958984,40.999469757080135],[-109.0490112304687,41.00003051757824],[-109.05010986328125,40.57934188842784],[-109.05178070068354,39.96863937377941],[-109.0526123046875,39.59577178955084],[-109.05381774902332,39.00075149536133],[-109.0595703125,38.67274093627935],[-109.06067657470696,38.27684020996099],[-109.04094696044922,38.16028976440441],[-109.04305267333984,37.880020141601506],[-109.04440307617188,37.507350921630916],[-109.04487609863281,36.9986305236817],[-109.47431182861328,36.9987411499024],[-110.00110626220703,36.999221801757805],[-110.4719467163086,36.999580383300895],[-110.47875976562494,37.00392913818371],[-111.23603820800781,37.00365066528332],[-111.66131591796868,37.00286865234374],[-112.03301239013672,37.002441406250114],[-112.5424194335937,37.00315093994146],[-112.90373229980467,37.00268936157238],[-113.41142272949213,37.00162887573242],[-114.05095672607416,36.99998855590826],[-114.05406951904295,37.64472961425787],[-114.04937744140624,38.032859802246094],[-114.04911041259766,38.57279968261719],[-114.05201721191399,38.9993515014649],[-114.04878997802734,39.21791076660162],[-114.04633331298828,39.64641189575201],[-114.04868316650379,40.21612930297857],[-114.04055023193354,40.79679870605469],[-114.03996276855469,41.34764862060547],[-114.04038238525385,41.99338150024414],[-113.8321914672851,41.99040985107422],[-113.151611328125,41.99660873413086],[-112.65870666503895,41.99991989135748],[-112.16398620605469,42.00170898437506],[-111.94718170166016,41.999179840088004],[-111.5833129882812,42.00419998168945],[-111.44790649414057,42.00119018554698],[-111.04627990722656,42.00048065185546]]]},"properties":{"ID_0":244,"ISO":"US-UT","NAME_0":"United States","ID_1":45,"NAME_1":"Utah","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"UT"}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-72.45662689208983,42.72761154174815],[-73.26745605468744,42.745159149170036],[-73.2916259765625,42.80408096313488],[-73.27886962890625,42.8337287902832],[-73.26686859130858,43.1048316955567],[-73.25058746337885,43.51076889038097],[-73.25234985351562,43.553150177001896],[-73.29499053955077,43.5866203308106],[-73.30561065673821,43.62697219848633],[-73.37510681152344,43.62334060668939],[-73.38603210449219,43.58121871948242],[-73.43020629882812,43.58338928222656],[-73.43286895751953,43.64070129394537],[-73.35601806640625,43.76506042480474],[-73.3932876586914,43.82091903686535],[-73.38418579101557,43.890899658203125],[-73.41008758544922,43.935070037841854],[-73.4086074829101,44.00384902954096],[-73.4419174194336,44.05765914916992],[-73.39909362792969,44.148769378662216],[-73.39270782470703,44.191230773925895],[-73.31318664550781,44.26372146606451],[-73.33670043945307,44.36643218994146],[-73.29471588134766,44.43841934204107],[-73.32264709472656,44.5253791809082],[-73.38124084472649,44.58929061889654],[-73.38887786865229,44.633480072021484],[-73.36341094970697,44.69573974609369],[-73.36454772949213,44.7409400939942],[-73.3370361328125,44.800338745117244],[-73.38324737548822,44.84149169921875],[-73.34111022949219,44.919891357421875],[-73.34417724609374,45.01025009155279],[-73.05492401123047,45.01567077636719],[-72.63183593749994,45.0139999389649],[-72.55579376220703,45.00810623168945],[-72.3174819946289,45.003921508789176],[-71.91420745849604,45.00745010375988],[-71.51013946533197,45.015563964843864],[-71.54281616210938,44.98374938964838],[-71.49823760986328,44.905189514160156],[-71.54973602294922,44.86273956298834],[-71.5766372680664,44.79111862182623],[-71.63387298583984,44.749969482421875],[-71.56241607666016,44.65011978149414],[-71.55339050292967,44.59355926513672],[-71.59429931640625,44.55030059814459],[-71.57936859130854,44.503410339355526],[-71.7033004760742,44.41381072998058],[-71.79556274414057,44.394889831543026],[-71.81964874267578,44.35198211669933],[-71.90088653564453,44.34555053710932],[-72.0282211303711,44.31779861450189],[-72.06490325927734,44.275531768798885],[-72.05311584472656,44.24422073364257],[-72.0692520141601,44.19213867187505],[-72.04280090332031,44.155349731445426],[-72.04624938964844,44.08555221557617],[-72.10730743408197,44.009658813476676],[-72.11731719970696,43.922149658203125],[-72.17279815673827,43.88134002685547],[-72.18389129638665,43.80344009399414],[-72.2328872680664,43.74576950073253],[-72.30145263671875,43.698028564453125],[-72.33777618408203,43.592922210693416],[-72.3776168823242,43.57247924804699],[-72.39760589599604,43.5093994140625],[-72.38091278076166,43.49419021606457],[-72.4127197265625,43.364120483398494],[-72.39569854736322,43.31509017944347],[-72.4341430664062,43.25625991821294],[-72.45376586914061,43.146358489990234],[-72.43524932861328,43.12055206298834],[-72.46572875976551,43.058490753173885],[-72.44692230224604,43.01359939575195],[-72.46894073486322,42.97478103637707],[-72.53244781494135,42.95019912719738],[-72.5256958007812,42.91704940795893],[-72.55626678466797,42.86149978637706],[-72.53206634521479,42.799240112304794],[-72.47955322265614,42.76514053344732],[-72.45662689208983,42.72761154174815]]]},"properties":{"ID_0":244,"ISO":"US-VT","NAME_0":"United States","ID_1":46,"NAME_1":"Vermont","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"VT"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-75.86499786376947,37.2933349609375],[-75.88583374023438,37.214721679687614],[-75.86638641357422,37.19610977172862],[-75.80166625976557,37.20055389404302],[-75.89583587646484,37.11805725097656],[-75.91055297851555,37.17583465576166],[-75.89694213867182,37.27888870239269],[-75.86499786376947,37.2933349609375]]],[[[-75.64583587646479,37.97084045410156],[-75.62372589111328,37.99547958374035],[-75.37750244140625,38.0175018310548],[-75.43638610839837,37.963333129882926],[-75.41305541992176,37.91388702392584],[-75.51889038085932,37.79750061035156],[-75.5530548095702,37.74166488647461],[-75.60861206054688,37.70694351196289],[-75.5875015258789,37.66722106933594],[-75.60527801513672,37.619998931884766],[-75.66805267333979,37.61166763305669],[-75.598892211914,37.56750106811518],[-75.65972137451172,37.485000610351676],[-75.67416381835932,37.5127792358399],[-75.73555755615227,37.543334960937614],[-75.74944305419922,37.50611114501959],[-75.80583190917969,37.47194290161127],[-75.81694793701172,37.41888809204113],[-75.86277770996088,37.391666412353516],[-75.91777801513672,37.304443359375],[-75.92277526855462,37.21027755737305],[-75.9433364868164,37.16138839721691],[-75.97638702392572,37.15472412109374],[-76.0135650634765,37.208183288574276],[-76.02443695068354,37.25443649291998],[-76.0025024414062,37.30777740478527],[-76.01647186279297,37.32512664794933],[-75.96416473388666,37.39583206176769],[-75.98249816894531,37.42972183227545],[-75.93138885498047,37.551387786865284],[-75.92388916015625,37.60111236572276],[-75.79360961914062,37.74972152709961],[-75.78333282470697,37.77361297607422],[-75.72805786132811,37.78194427490246],[-75.7205581665039,37.81750106811535],[-75.67805480957026,37.89611053466796],[-75.72888946533197,37.8977775573731],[-75.71416473388672,37.93777847290038],[-75.6441650390625,37.93555450439453],[-75.64583587646479,37.97084045410156]]],[[[-75.24777221679682,38.028266906738274],[-75.24251556396479,38.02861785888672],[-75.30833435058588,37.944999694824276],[-75.34027862548822,37.88722229003917],[-75.36444091796875,37.91138839721691],[-75.3155517578125,37.94305419921881],[-75.27194213867186,38.02222061157221],[-75.24777221679682,38.028266906738274]]],[[[-77.71972656249999,39.325309753418026],[-77.6350326538086,39.308689117431754],[-77.5698623657226,39.308151245117244],[-77.53774261474604,39.26604080200195],[-77.45635223388672,39.2284202575683],[-77.47358703613281,39.19351959228521],[-77.51510620117188,39.17042922973644],[-77.517578125,39.12377166748058],[-77.45316314697266,39.07286071777355],[-77.32726287841791,39.061119079589844],[-77.24825286865234,39.02806091308587],[-77.22567749023432,38.9761199951173],[-77.15483093261713,38.967350006103516],[-77.12050628662104,38.93373107910162],[-77.066650390625,38.89587020874029],[-77.03182983398436,38.8532829284668],[-77.04815673828125,38.77756881713867],[-77.04412841796875,38.717277526855526],[-77.08007049560541,38.70919036865234],[-77.14978027343744,38.66471862792969],[-77.13065338134766,38.635868072509766],[-77.20209503173827,38.61770629882818],[-77.24771118164057,38.63320541381836],[-77.2575912475586,38.561305999755916],[-77.30361175537104,38.50944519042963],[-77.33568572998047,38.42210769653326],[-77.2652740478515,38.332221984863395],[-77.09527587890625,38.3636093139649],[-77.04182434082026,38.40008544921881],[-77.0134506225586,38.37482070922857],[-77.03176879882812,38.31133270263671],[-76.96162414550776,38.25674438476562],[-76.9470443725586,38.20814132690441],[-76.83766174316405,38.16347885131841],[-76.79012298583984,38.16964340209972],[-76.73750305175776,38.132778167724666],[-76.70113372802734,38.16019058227545],[-76.61181640624994,38.14834594726574],[-76.60361480712885,38.11305618286133],[-76.53589630126947,38.074440002441406],[-76.51502227783197,38.026260375976676],[-76.47124481201166,37.98833465576183],[-76.41335296630854,37.96324157714844],[-76.3329467773437,37.94308853149414],[-76.26694488525385,37.911945343017685],[-76.24343109130858,37.8706550598145],[-76.26964569091786,37.814502716064396],[-76.30139160156244,37.825553894043026],[-76.32269287109375,37.731117248535156],[-76.31361389160156,37.693332672119254],[-76.36681365966791,37.61375427246088],[-76.46987915039062,37.66982269287121],[-76.50795745849604,37.64230728149413],[-76.58511352539057,37.77201461791992],[-76.6529541015625,37.797084808349666],[-76.71873474121094,37.83563613891612],[-76.79871368408197,37.92478942871105],[-76.83564758300776,37.932518005371094],[-76.85066986083984,37.970417022705135],[-76.9156265258789,37.9734344482423],[-76.84299468994129,37.915279388427734],[-76.79501342773432,37.89577865600586],[-76.76387023925781,37.83552932739257],[-76.72336578369139,37.78844451904308],[-76.67478942871094,37.755126953125],[-76.62702941894531,37.748260498046875],[-76.59954071044922,37.72027969360346],[-76.58472442626947,37.655525207519474],[-76.52333068847656,37.610832214355526],[-76.4351577758789,37.613086700439396],[-76.42861175537104,37.58666610717779],[-76.33106994628906,37.569290161132926],[-76.36000061035156,37.521644592285156],[-76.3280563354492,37.48638916015625],[-76.2614974975586,37.4521102905274],[-76.2471694946289,37.38362121582037],[-76.29555511474602,37.323333740234375],[-76.33795928955078,37.363933563232536],[-76.41708374023426,37.409130096435604],[-76.42472076416016,37.350276947021484],[-76.39360809326165,37.265277862548885],[-76.50583648681635,37.24611282348627],[-76.63694763183594,37.38138961791992],[-76.69527435302734,37.4033317565918],[-76.62583160400385,37.31305694580084],[-76.46916961669922,37.212776184082145],[-76.4205551147461,37.22333145141607],[-76.39347076416016,37.198936462402344],[-76.41255950927734,37.16072463989258],[-76.33805847167969,37.14861297607421],[-76.29383087158203,37.12637329101574],[-76.2750015258789,37.07611083984375],[-76.2983322143554,37.024444580078125],[-76.38410949707031,36.99290847778326],[-76.41671752929688,36.95957565307628],[-76.4651107788086,37.02801132202154],[-76.5566635131836,37.07598495483393],[-76.62288665771473,37.12653732299804],[-76.6053695678711,37.16085815429693],[-76.638916015625,37.214366912841854],[-76.69444274902344,37.22305679321289],[-76.74011993408203,37.21253204345709],[-76.79624176025385,37.23316955566412],[-76.95820617675781,37.24824523925787],[-76.90000152587885,37.19916534423828],[-76.80750274658197,37.205833435058594],[-76.74739074707031,37.150310516357536],[-76.67137908935545,37.141139984130916],[-76.65694427490234,37.09916687011718],[-76.66944122314453,37.06972122192382],[-76.6485595703125,37.037006378173885],[-76.57638549804688,37.01972198486334],[-76.4862213134765,36.955524444580135],[-76.4808349609375,36.915420532226676],[-76.3883666992187,36.89799499511718],[-76.35117340087885,36.87978363037121],[-76.33103942871088,36.96060943603521],[-76.09613037109375,36.908847808838004],[-76.03833770751953,36.93172836303722],[-75.99517822265614,36.92188262939459],[-75.95394897460932,36.77193069458019],[-75.92583465576166,36.69499969482422],[-75.88416290283197,36.61333465576183],[-75.86861419677729,36.55083465576172],[-75.89192199707031,36.5506324768067],[-75.88784790039062,36.59193801879883],[-75.91201019287104,36.62181091308594],[-75.9161987304687,36.66625976562506],[-75.94214630126947,36.7219009399414],[-75.99277496337885,36.634998321533146],[-75.98377990722656,36.550361633300895],[-76.01493072509766,36.55607223510742],[-76.03578948974604,36.55078506469732],[-76.15092468261719,36.55038452148449],[-76.15270233154291,36.55038070678711],[-76.62683868408202,36.549919128418026],[-76.91617584228516,36.55113983154308],[-76.91735839843744,36.54399871826177],[-77.70121002197266,36.54581069946295],[-78.12504577636719,36.54626083374035],[-78.50949096679688,36.54212188720709],[-78.9762573242187,36.54473876953125],[-79.51119995117188,36.539138793945426],[-79.81475067138672,36.54224014282232],[-80.27754211425776,36.54333877563482],[-80.65233612060541,36.558429718017635],[-80.86318969726557,36.55984115600597],[-81.3697662353515,36.57347106933605],[-81.58782958984375,36.58800888061529],[-81.67576599121094,36.58901214599614],[-81.64745330810547,36.61249923706048],[-81.9233169555664,36.616588592529354],[-81.93522644042963,36.595031738281364],[-82.2930297851562,36.59585189819347],[-82.75972747802734,36.594058990478516],[-83.2538070678711,36.594150543213004],[-83.27423858642578,36.600059509277344],[-83.47200012207031,36.59751892089838],[-83.67481994628899,36.60120010375987],[-83.64803314208973,36.62292098999029],[-83.4993896484375,36.670989990234375],[-83.42209625244135,36.670001983642635],[-83.33541107177727,36.704109191894645],[-83.19584655761719,36.7393417358399],[-83.14129638671874,36.74214172363281],[-83.13307189941406,36.78454208374018],[-83.06758880615229,36.85406875610357],[-82.9615020751953,36.86095046997076],[-82.86979675292963,36.900459289550774],[-82.86530303955078,36.97864151000982],[-82.82340240478516,37.00629043579107],[-82.7817611694336,37.009899139404354],[-82.7197875976562,37.048400878906364],[-82.72056579589837,37.12054061889654],[-82.63313293457018,37.15705871582037],[-82.55504608154295,37.2032585144043],[-82.43357849121094,37.24853897094738],[-82.35228729248047,37.268020629882805],[-81.96734619140618,37.53715896606457],[-81.93692016601555,37.51620864868164],[-81.98818969726562,37.48387908935546],[-81.98504638671875,37.456569671630916],[-81.937026977539,37.43920898437511],[-81.93427276611322,37.37966918945324],[-81.85035705566395,37.287311553955014],[-81.75977325439453,37.27370071411138],[-81.67546081542969,37.2027587890625],[-81.55993652343744,37.208011627197266],[-81.4496612548828,37.26836013793951],[-81.42000579833984,37.27243041992193],[-81.358901977539,37.335529327392685],[-81.22756195068358,37.234470367431754],[-81.15924072265625,37.265018463134766],[-80.98857879638666,37.30244064331055],[-80.93473815917967,37.30146026611334],[-80.85443115234364,37.34529876708989],[-80.8817367553711,37.38171005249035],[-80.85750579833984,37.4303817749024],[-80.77094268798828,37.37292861938488],[-80.65178680419922,37.41992950439464],[-80.54995727539062,37.47293853759777],[-80.508316040039,37.481048583984375],[-80.48020935058582,37.42832946777355],[-80.45007324218737,37.43334197998047],[-80.2998428344726,37.51025009155285],[-80.28209686279291,37.53438949584966],[-80.3259658813476,37.566688537597656],[-80.22149658203124,37.62815093994146],[-80.26490020751953,37.648979187011776],[-80.30742645263672,37.68952941894531],[-80.2540664672851,37.72954177856451],[-80.22577667236328,37.803482055664176],[-80.16481018066399,37.87522125244152],[-79.99922180175781,37.99729156494151],[-79.95049285888672,38.08219909667963],[-79.91897583007801,38.181671142578175],[-79.84546661376952,38.2398796081543],[-79.7870101928711,38.27265930175787],[-79.8065109252929,38.31114196777344],[-79.75467681884766,38.35612869262701],[-79.69135284423828,38.431949615478516],[-79.69405364990233,38.493591308593864],[-79.6409606933593,38.59169006347656],[-79.54434204101557,38.55685043334955],[-79.4745864868164,38.457408905029354],[-79.30829620361327,38.413349151611385],[-79.24178314208984,38.4571914672851],[-79.09049987792963,38.70149993896496],[-79.05465698242182,38.78676986694341],[-79.02800750732422,38.79201126098644],[-78.99469757080078,38.85110092163097],[-78.86595153808594,38.76311874389654],[-78.80419921874994,38.863861083984375],[-78.7451171875,38.92110061645519],[-78.71897888183594,38.9061393737793],[-78.6758804321289,38.927490234375114],[-78.6284561157226,38.98104858398443],[-78.60069274902338,38.965999603271484],[-78.55227661132812,39.01892852783203],[-78.57160186767572,39.0332603454591],[-78.48522186279286,39.10733032226568],[-78.4488296508789,39.12289047241222],[-78.4038696289062,39.17174911499034],[-78.43219757080067,39.20524978637701],[-78.4180908203125,39.256179809570256],[-78.34097290039062,39.35272216796875],[-78.34731292724604,39.466579437255916],[-77.82994079589838,39.13425064086914],[-77.76944732666016,39.25764083862305],[-77.71972656249999,39.325309753418026]]]]},"properties":{"ID_0":244,"ISO":"US-VA","NAME_0":"United States","ID_1":47,"NAME_1":"Virginia","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"VA"}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-122.84972381591795,47.30138778686529],[-122.87055206298817,47.24583435058605],[-122.84083557128905,47.208889007568416],[-122.87638854980467,47.1713905334472],[-122.92610931396483,47.23694610595703],[-122.91944122314447,47.2761116027832],[-122.84972381591795,47.30138778686529]]],[[[-122.45249938964842,47.50388717651367],[-122.44380950927734,47.45333480834961],[-122.46066284179675,47.40161132812506],[-122.51531982421876,47.37847900390624],[-122.51324462890625,47.45286560058594],[-122.45249938964842,47.50388717651367]]],[[[-122.53676605224597,47.70678710937506],[-122.50372314453125,47.694103240966854],[-122.51718902587884,47.65335083007818],[-122.49057769775385,47.63384628295904],[-122.49757385253906,47.589282989501896],[-122.57776641845697,47.59991836547863],[-122.59249877929688,47.663055419921875],[-122.53676605224597,47.70678710937506]]],[[[-122.69426727294922,48.103305816650504],[-122.67028045654286,48.01694488525396],[-122.74192047119139,48.04905700683588],[-122.725830078125,48.09472274780284],[-122.69426727294922,48.103305816650504]]],[[[-122.60555267333983,48.410831451416016],[-122.55155181884766,48.34209060668956],[-122.50704956054688,48.31118392944347],[-122.52254486083979,48.28521728515625],[-122.58444213867182,48.29788970947271],[-122.65785980224602,48.28255844116222],[-122.64773559570311,48.22595977783209],[-122.60565948486328,48.20820617675787],[-122.567153930664,48.147769927978516],[-122.57172393798827,48.10266494750982],[-122.53630065917969,48.035026550293026],[-122.49002838134759,48.093902587890625],[-122.445068359375,48.05194473266607],[-122.37627410888672,48.03389358520502],[-122.34919738769531,47.95967102050787],[-122.37696075439452,47.906391143798885],[-122.43083190917969,47.91388702392578],[-122.44783020019531,47.964179992675724],[-122.48110961914061,47.99000167846691],[-122.52249908447264,47.97249984741211],[-122.60681152343749,48.03207397460932],[-122.59956359863281,48.10586166381836],[-122.61041259765625,48.152885437011776],[-122.67745971679688,48.15418243408203],[-122.70757293701173,48.19138717651378],[-122.76451110839844,48.21618652343749],[-122.75736236572267,48.252681732177734],[-122.66944122314453,48.36222076416026],[-122.66471862792963,48.401668548583984],[-122.60555267333983,48.410831451416016]]],[[[-122.88440704345702,48.572738647460994],[-122.85694122314453,48.53499984741211],[-122.87333679199219,48.501945495605526],[-122.8064956665039,48.45303726196295],[-122.83750152587889,48.428665161132805],[-122.94566345214842,48.4655647277832],[-122.92222595214838,48.53944396972656],[-122.88440704345702,48.572738647460994]]],[[[-122.64484405517577,48.58876037597662],[-122.57560729980469,48.542053222656364],[-122.63999938964842,48.52555465698253],[-122.64484405517577,48.58876037597662]]],[[[-123.14583587646483,48.62444305419933],[-123.01726531982422,48.56206130981445],[-122.9830856323241,48.53575897216808],[-123.0368194580078,48.458003997802784],[-123.1324691772461,48.49786758422857],[-123.16313171386713,48.52909088134777],[-123.17379760742182,48.578220367431754],[-123.14583587646483,48.62444305419933]]],[[[-122.8938903808593,48.715000152587834],[-122.74222564697264,48.6616668701173],[-122.84890747070312,48.62232971191412],[-122.88833618164064,48.58833312988287],[-122.9488067626953,48.597793579101506],[-122.95722198486322,48.63138961791998],[-123.03021240234375,48.63068008422863],[-122.93941497802734,48.709548950195426],[-122.8938903808593,48.715000152587834]]],[[[-117.02943420410156,48.99961471557617],[-117.03907012939453,48.59041976928722],[-117.04263305664057,48.04587936401378],[-117.04223632812493,47.36647033691406],[-117.04013061523436,46.859722137451115],[-117.0379867553711,46.42877960205078],[-117.06054687499994,46.36286926269537],[-116.98697662353514,46.2957115173341],[-116.96131896972656,46.24880218505865],[-116.96367645263665,46.206371307373104],[-116.92176818847656,46.17113876342785],[-116.97305297851561,46.07818984985357],[-116.94528198242176,46.06666946411132],[-116.91250610351561,45.99723052978521],[-117.35338592529297,45.996959686279354],[-117.78823852539061,46.0018196105957],[-117.9972534179687,46.00117874145519],[-118.59852600097655,46.00376892089855],[-118.97976684570312,46.003349304199276],[-119.02836608886714,45.96792984008795],[-119.10817718505852,45.93947982788086],[-119.18498992919922,45.926509857177734],[-119.2599868774414,45.93938064575207],[-119.45005798339844,45.9187507629395],[-119.50585937499994,45.90544891357422],[-119.5775070190429,45.925628662109375],[-119.61033630371092,45.91669845581066],[-119.6699295043944,45.8589706420899],[-119.83014678955065,45.847961425781364],[-119.90808105468749,45.82752990722667],[-119.97798919677733,45.82527923583979],[-120.05856323242189,45.79059219360357],[-120.17687225341793,45.75865173339855],[-120.20049285888672,45.73080062866211],[-120.425537109375,45.70046997070318],[-120.49202728271483,45.697090148925895],[-120.55400085449219,45.74007034301769],[-120.63098907470702,45.747798919677734],[-120.68961334228516,45.717281341552734],[-120.84915924072264,45.67443847656249],[-120.90762329101561,45.64389038085932],[-121.07901763916014,45.65378952026373],[-121.12879943847656,45.613330841064446],[-121.17626190185545,45.606441497802734],[-121.2166671752929,45.671878814697266],[-121.34548950195311,45.70655059814458],[-121.42942810058588,45.69482040405279],[-121.5420532226562,45.72621917724615],[-121.71041107177734,45.69580078125],[-121.80912017822264,45.709060668945426],[-121.89910888671871,45.67844009399419],[-121.90904998779291,45.6552085876466],[-122.0159683227539,45.6291618347168],[-122.07656860351562,45.602859497070426],[-122.14340209960938,45.59384155273443],[-122.21166229248045,45.56464004516596],[-122.3261489868164,45.563140869140675],[-122.35457611083983,45.57968139648443],[-122.48757934570311,45.58692932128912],[-122.6180801391601,45.61742019653332],[-122.66633605957026,45.61940002441412],[-122.74498748779297,45.65333938598633],[-122.7683563232422,45.689090728759815],[-122.75866699218743,45.76884078979498],[-122.78833007812493,45.81502151489269],[-122.77786254882812,45.87194061279302],[-122.80465698242188,45.90948104858393],[-122.78514099121095,45.9505500793457],[-122.81445312499993,45.96516036987316],[-122.8753433227539,46.03828048706055],[-122.87364959716795,46.08272933959961],[-122.9392166137694,46.100341796875],[-123.04476165771479,46.166191101074276],[-123.1594772338867,46.19377899169916],[-123.2832260131836,46.15190887451177],[-123.322998046875,46.16070938110351],[-123.40740966796876,46.21345901489269],[-123.4571990966797,46.268749237060604],[-123.51113891601562,46.26979064941412],[-123.56651306152338,46.26136016845703],[-123.66890716552733,46.266975402832145],[-123.69166564941395,46.3036117553712],[-123.76216888427733,46.273971557617244],[-123.80194091796875,46.28444290161144],[-123.87333679199212,46.24055480957031],[-123.94638824462884,46.26889038085949],[-123.97000122070311,46.30110931396496],[-124.02278137207018,46.314167022705185],[-124.07749938964838,46.282222747802734],[-124.0625,46.35694503784173],[-124.0594482421875,46.53861236572277],[-124.03111267089842,46.49638748168945],[-124.01333618164057,46.378887176513615],[-123.96277618408196,46.37777709960949],[-123.90538024902338,46.42907714843756],[-123.94166564941406,46.48860931396496],[-123.89666748046874,46.52361297607421],[-123.89509582519531,46.54908752441417],[-123.95883178710938,46.611991882324276],[-123.92222595214842,46.67305374145508],[-123.83694458007811,46.70999908447271],[-123.87638854980462,46.73055648803722],[-124.03311920166016,46.71954345703131],[-124.09555816650389,46.74416732788086],[-124.10111236572266,46.8136100769043],[-124.1258316040039,46.883609771728516],[-124.06138610839837,46.86138916015625],[-124.04722595214844,46.89361190795904],[-123.98258209228514,46.923053741455014],[-123.87513732910149,46.94117736816412],[-123.86032867431639,46.967254638671875],[-123.99666595458983,46.98055648803716],[-124.02749633789061,47.028808593749936],[-124.06361389160156,47.04055404663086],[-124.13897705078125,47.03617477416992],[-124.13055419921874,46.9466667175294],[-124.17444610595703,46.92805480957042],[-124.17416381835938,47.04083251953119],[-124.18611145019524,47.13333511352545],[-124.20972442626952,47.22138977050787],[-124.23999786376946,47.29222106933588],[-124.27854156494135,47.30707550048839],[-124.33656311035155,47.404735565185604],[-124.34972381591797,47.513889312744254],[-124.36888885498047,47.59166717529291],[-124.42527770996094,47.73805618286127],[-124.47312164306642,47.76581192016607],[-124.49694824218739,47.82249832153332],[-124.55988311767571,47.864944458007926],[-124.6223678588867,47.8860435485841],[-124.66638946533196,47.956390380859375],[-124.68722534179688,48.09777832031255],[-124.73388671874999,48.16249847412121],[-124.69110870361322,48.214168548583984],[-124.70471954345699,48.23694610595703],[-124.6596908569336,48.327167510986385],[-124.73213958740236,48.38005447387707],[-124.677490234375,48.391975402832145],[-124.62200164794922,48.367370605468864],[-124.5645980834961,48.367649078369254],[-124.38275909423822,48.28478240966808],[-124.24723815917969,48.26398468017589],[-124.10194396972655,48.21583175659191],[-124.04953765869142,48.17758560180669],[-123.8655548095703,48.15444564819336],[-123.70500183105463,48.167221069335994],[-123.5883331298828,48.135276794433594],[-123.46194458007811,48.13360977172863],[-123.41361236572266,48.116390228271534],[-123.24083709716793,48.117221832275504],[-123.183609008789,48.148334503173764],[-123.11499786376953,48.15111160278326],[-123.04083251953125,48.08638763427746],[-122.94694519042969,48.09860992431652],[-122.92774200439447,48.068019866943466],[-122.83078002929682,48.13450241088873],[-122.76438140869134,48.14285278320324],[-122.79213714599602,48.09761047363287],[-122.76492309570311,48.040916442871094],[-122.73444366455072,48.03333282470709],[-122.71810913085936,47.98812484741211],[-122.67662811279297,47.959346771240234],[-122.68087768554686,47.93238067626953],[-122.62083435058594,47.87777709960932],[-122.74845886230463,47.80202484130871],[-122.86805725097652,47.80805587768549],[-122.86273193359364,47.76749801635742],[-122.88892364501946,47.69032669067394],[-122.94258880615233,47.63190078735357],[-122.98325347900384,47.613700866699276],[-123.05027770996092,47.528610229492244],[-123.0592269897461,47.499969482421875],[-123.11035156249999,47.45449066162121],[-123.15917205810545,47.356353759765625],[-123.11750030517578,47.340000152587834],[-123.04182434082026,47.359210968017685],[-123.1194458007812,47.389999389648494],[-123.03125,47.50983047485357],[-122.96370697021477,47.58482360839844],[-122.91617584228516,47.62139511108398],[-122.75319671630858,47.66783523559582],[-122.74869537353516,47.720073699951286],[-122.68462371826172,47.79791259765625],[-122.57254028320312,47.86804580688482],[-122.58940124511713,47.92142486572276],[-122.54777526855467,47.91884994506847],[-122.51333618164062,47.8805541992188],[-122.50252532958979,47.78957366943365],[-122.46990203857415,47.75749969482427],[-122.54901123046875,47.73309707641596],[-122.61499786376953,47.65166854858398],[-122.59094238281249,47.63473129272461],[-122.60307312011717,47.574165344238274],[-122.64864349365234,47.58752822875988],[-122.67353057861328,47.637138366699276],[-122.70777893066405,47.604999542236385],[-122.65203094482416,47.58597946166998],[-122.60628509521479,47.5476913452149],[-122.57015991210936,47.582534790039055],[-122.54629516601555,47.52455902099609],[-122.4956741333008,47.510124206543026],[-122.53089141845702,47.47131729125982],[-122.53847503662104,47.376377105713004],[-122.57353973388672,47.31831741333008],[-122.54954528808582,47.28927230834961],[-122.57699584960932,47.256988525390625],[-122.69113159179682,47.29401016235363],[-122.75318908691406,47.28940963745128],[-122.72193145751953,47.22031402587885],[-122.7549819946289,47.17142868041992],[-122.79017639160158,47.1879997253418],[-122.83071899414061,47.243427276611435],[-122.78749847412108,47.29999923706055],[-122.78947448730463,47.337947845458984],[-122.92758178710926,47.280429840088004],[-122.93849182128906,47.19821166992187],[-122.9628219604492,47.169483184814396],[-122.96484374999993,47.112945556640625],[-122.89519500732422,47.09789657592785],[-122.90769195556639,47.13759994506847],[-122.86160278320312,47.16189193725586],[-122.80511474609368,47.16477203369151],[-122.78621673583979,47.127407073974666],[-122.72333526611327,47.09722137451177],[-122.68499755859375,47.09777832031256],[-122.59157562255854,47.17671585083019],[-122.58369445800781,47.20235443115246],[-122.51009368896483,47.30695724487315],[-122.43500518798822,47.26224899291998],[-122.40637207031244,47.284175872802734],[-122.42895507812499,47.3193092346192],[-122.3239517211914,47.35038757324213],[-122.32590484619134,47.3933944702149],[-122.36859130859375,47.458694458007926],[-122.40021514892578,47.55521392822277],[-122.42033386230469,47.57532882690441],[-122.33975219726561,47.60509490966802],[-122.41735839843744,47.6428565979005],[-122.41581726074212,47.67054367065424],[-122.3738708496093,47.731796264648494],[-122.39537811279295,47.80662155151372],[-122.3373413085937,47.849941253662166],[-122.30659484863281,47.94979476928711],[-122.23091125488274,47.970569610595646],[-122.23777008056634,48.0303192138673],[-122.3203887939453,48.08002090454113],[-122.3619613647461,48.120368957519645],[-122.35639190673822,48.18555450439459],[-122.39167022705077,48.22999954223632],[-122.44889068603516,48.23222351074219],[-122.47833251953125,48.187778472900504],[-122.46555328369139,48.1286125183106],[-122.49222564697259,48.121166229248104],[-122.53722381591791,48.18388748168951],[-122.53514099121088,48.24044418334972],[-122.46778106689446,48.268611907959034],[-122.39888763427734,48.25],[-122.3777770996093,48.29555511474615],[-122.40166473388672,48.325553894043026],[-122.49833679199217,48.35889053344738],[-122.55804443359375,48.428070068359375],[-122.65249633789062,48.407501220703125],[-122.67082977294916,48.50416564941406],[-122.61166381835938,48.52305603027344],[-122.55716705322259,48.500225067138786],[-122.53722381591791,48.466945648193416],[-122.48355865478516,48.49336624145502],[-122.47509765624999,48.55564498901373],[-122.42610931396479,48.59999847412115],[-122.50212097167963,48.65567016601568],[-122.51866912841795,48.7174911499024],[-122.50112915039061,48.7541618347168],[-122.53562164306629,48.7754478454591],[-122.59194183349611,48.767608642578125],[-122.70555877685541,48.799446105957024],[-122.71430969238274,48.839500427246094],[-122.79269409179688,48.89125823974615],[-122.74594116210936,48.929443359375114],[-122.81999969482416,48.93916702270508],[-122.75385284423828,49.00329208374029],[-121.95539093017571,49.000045776367294],[-121.25000762939453,49.000000000000114],[-120.33454132080065,49.00015640258783],[-119.7210693359375,49.00003433227545],[-119.00018310546875,48.9999618530274],[-118.18704223632807,49.000167846679744],[-117.63542938232415,49.00081634521479],[-117.02943420410156,48.99961471557617]]]]},"properties":{"ID_0":244,"ISO":"US-WA","NAME_0":"United States","ID_1":48,"NAME_1":"Washington","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"WA|Wash."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-80.5190658569336,40.63854980468756],[-80.51873016357416,40.28828048706066],[-80.51956176757807,39.96390914916992],[-80.51705169677733,39.721221923828125],[-80.19114685058587,39.72167968750006],[-79.47741699218744,39.72161102294922],[-79.48715209960926,39.20666885375988],[-79.42308807373047,39.22732925415038],[-79.37535858154291,39.272708892822266],[-79.16044616699219,39.391288757324276],[-79.09153747558588,39.473018646240284],[-79.0390396118164,39.477890014648494],[-78.96449279785156,39.4396705627442],[-78.935791015625,39.484249114990234],[-78.77593994140625,39.62488174438482],[-78.75669097900389,39.58245849609381],[-78.68025970458984,39.544219970703125],[-78.55940246582026,39.52043151855474],[-78.46636962890625,39.52022171020519],[-78.43984985351562,39.59024047851568],[-78.4062728881836,39.578701019287166],[-78.35508728027344,39.64162063598633],[-78.27274322509754,39.61857986450201],[-78.17941284179686,39.69755172729498],[-78.10209655761713,39.68072891235357],[-78.00673675537104,39.60235214233404],[-77.88593292236317,39.60029983520519],[-77.83941650390625,39.60691070556652],[-77.84004974365229,39.56811904907221],[-77.88199615478509,39.56248092651373],[-77.8391723632812,39.49766921997076],[-77.80246734619135,39.490268707275504],[-77.79225921630854,39.43307113647472],[-77.73954772949219,39.404010772705135],[-77.75768280029295,39.34051895141613],[-77.71972656249999,39.325309753418026],[-77.76944732666016,39.25764083862305],[-77.82994079589838,39.13425064086914],[-78.34731292724604,39.466579437255916],[-78.34097290039062,39.35272216796875],[-78.4180908203125,39.256179809570256],[-78.43219757080067,39.20524978637701],[-78.4038696289062,39.17174911499034],[-78.4488296508789,39.12289047241222],[-78.48522186279286,39.10733032226568],[-78.57160186767572,39.0332603454591],[-78.55227661132812,39.01892852783203],[-78.60069274902338,38.965999603271484],[-78.6284561157226,38.98104858398443],[-78.6758804321289,38.927490234375114],[-78.71897888183594,38.9061393737793],[-78.7451171875,38.92110061645519],[-78.80419921874994,38.863861083984375],[-78.86595153808594,38.76311874389654],[-78.99469757080078,38.85110092163097],[-79.02800750732422,38.79201126098644],[-79.05465698242182,38.78676986694341],[-79.09049987792963,38.70149993896496],[-79.24178314208984,38.4571914672851],[-79.30829620361327,38.413349151611385],[-79.4745864868164,38.457408905029354],[-79.54434204101557,38.55685043334955],[-79.6409606933593,38.59169006347656],[-79.69405364990233,38.493591308593864],[-79.69135284423828,38.431949615478516],[-79.75467681884766,38.35612869262701],[-79.8065109252929,38.31114196777344],[-79.7870101928711,38.27265930175787],[-79.84546661376952,38.2398796081543],[-79.91897583007801,38.181671142578175],[-79.95049285888672,38.08219909667963],[-79.99922180175781,37.99729156494151],[-80.16481018066399,37.87522125244152],[-80.22577667236328,37.803482055664176],[-80.2540664672851,37.72954177856451],[-80.30742645263672,37.68952941894531],[-80.26490020751953,37.648979187011776],[-80.22149658203124,37.62815093994146],[-80.3259658813476,37.566688537597656],[-80.28209686279291,37.53438949584966],[-80.2998428344726,37.51025009155285],[-80.45007324218737,37.43334197998047],[-80.48020935058582,37.42832946777355],[-80.508316040039,37.481048583984375],[-80.54995727539062,37.47293853759777],[-80.65178680419922,37.41992950439464],[-80.77094268798828,37.37292861938488],[-80.85750579833984,37.4303817749024],[-80.8817367553711,37.38171005249035],[-80.85443115234364,37.34529876708989],[-80.93473815917967,37.30146026611334],[-80.98857879638666,37.30244064331055],[-81.15924072265625,37.265018463134766],[-81.22756195068358,37.234470367431754],[-81.358901977539,37.335529327392685],[-81.42000579833984,37.27243041992193],[-81.4496612548828,37.26836013793951],[-81.55993652343744,37.208011627197266],[-81.67546081542969,37.2027587890625],[-81.75977325439453,37.27370071411138],[-81.85035705566395,37.287311553955014],[-81.93427276611322,37.37966918945324],[-81.937026977539,37.43920898437511],[-81.98504638671875,37.456569671630916],[-81.98818969726562,37.48387908935546],[-81.93692016601555,37.51620864868164],[-81.96734619140618,37.53715896606457],[-82.06272125244135,37.53915023803711],[-82.12930297851551,37.552509307861385],[-82.13520812988276,37.596481323242244],[-82.17114257812494,37.631118774414006],[-82.29006195068354,37.67084884643565],[-82.31784057617182,37.734519958496094],[-82.3111801147461,37.76184082031256],[-82.3739166259765,37.803440093994084],[-82.41783142089844,37.84812927246105],[-82.42005157470697,37.885318756103516],[-82.4874496459961,37.918178558349666],[-82.47206115722656,37.9561500549317],[-82.54952239990234,38.07176208496094],[-82.63696289062499,38.14073944091808],[-82.60652923583984,38.177558898925895],[-82.57801055908192,38.25075912475586],[-82.57562255859364,38.330150604248104],[-82.59430694580071,38.34606933593756],[-82.59278869628893,38.4185905456543],[-82.53000640869135,38.40449142456055],[-82.40541839599608,38.43870925903326],[-82.31829071044916,38.45495223999035],[-82.29196166992186,38.57307052612305],[-82.26671600341791,38.595821380615234],[-82.21257019042969,38.590721130371094],[-82.169448852539,38.621429443359375],[-82.18921661376952,38.68177032470709],[-82.1814193725586,38.71120071411133],[-82.2094497680664,38.800540924072315],[-82.14720153808588,38.83528137207031],[-82.14214324951166,38.89278030395508],[-82.08453369140625,38.97674942016607],[-82.02781677246088,39.02851867675787],[-81.97789764404297,38.99486160278326],[-81.93691253662104,38.99312210083008],[-81.89948272705078,38.93178939819347],[-81.92785644531244,38.894561767578125],[-81.88712310791016,38.87387847900396],[-81.85427856445312,38.89393997192383],[-81.82363891601557,38.945999145507926],[-81.78595733642571,38.92665863037115],[-81.76365661621088,39.02085876464844],[-81.79545593261719,39.04637145996088],[-81.73969268798822,39.110408782958984],[-81.75199890136713,39.1819305419923],[-81.69123077392577,39.22320175170904],[-81.68630981445307,39.26568984985357],[-81.6503601074218,39.278438568115234],[-81.56514739990234,39.27061080932617],[-81.55309295654284,39.344070434570426],[-81.4328994750976,39.40732955932611],[-81.38352966308582,39.34379959106457],[-81.34903717041016,39.34508895874029],[-81.27295684814453,39.38306045532238],[-81.22012329101562,39.38537979125987],[-81.1691284179687,39.43880081176752],[-81.13092041015625,39.44572067260742],[-81.04147338867188,39.53665924072271],[-80.9425430297851,39.60763168334961],[-80.88358306884759,39.6185188293457],[-80.8613662719726,39.691749572753956],[-80.8292388916015,39.71604156494135],[-80.86297607421875,39.75207901000982],[-80.8330459594726,39.79341125488287],[-80.82527160644531,39.84651184082031],[-80.78833007812494,39.86970138549805],[-80.80663299560541,39.90866088867199],[-80.73735046386719,39.97716903686529],[-80.73100280761713,40.08671188354503],[-80.70983886718744,40.102069854736385],[-80.70140838623045,40.16115951538086],[-80.65635681152332,40.24151992797857],[-80.6172103881836,40.269088745117244],[-80.60000610351562,40.32973098754877],[-80.61305999755848,40.406589508056584],[-80.59702301025385,40.464401245117244],[-80.6254272460937,40.53332138061529],[-80.66436004638666,40.587490081787166],[-80.60359191894526,40.626441955566406],[-80.57602691650385,40.61558914184582],[-80.5190658569336,40.63854980468756]]]},"properties":{"ID_0":244,"ISO":"US-WV","NAME_0":"United States","ID_1":49,"NAME_1":"West Virginia","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"WV|W.Va."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.95797729492188,47.29117965698242],[-90.41870880126947,46.56695938110351],[-90.39273834228516,46.53889083862316],[-90.32829284667963,46.5547714233399],[-90.30802154541016,46.518741607666016],[-90.21678924560547,46.50550079345703],[-90.12104034423828,46.35794067382824],[-90.11775207519526,46.33657073974615],[-89.92904663085938,46.300048828125],[-89.26661682128906,46.17369079589855],[-89.08544158935547,46.13653182983404],[-88.85073852539062,46.04090881347662],[-88.74083709716791,46.02799224853526],[-88.6148681640625,45.99243927001959],[-88.60163879394531,46.01890182495122],[-88.52305603027344,46.0201301574707],[-88.41734313964838,45.97953033447277],[-88.3820495605468,45.99100112915045],[-88.32615661621088,45.959190368652344],[-88.19853973388672,45.953891754150504],[-88.0979995727539,45.916751861572266],[-88.07279968261717,45.872138977050895],[-88.1359024047851,45.816390991210994],[-88.06414794921874,45.780929565429744],[-87.99714660644526,45.79669189453125],[-87.95907592773438,45.758750915527344],[-87.87747192382807,45.75363922119146],[-87.78424072265625,45.67525100708019],[-87.82975006103516,45.65299224853527],[-87.78272247314453,45.60948944091802],[-87.82350158691395,45.56800079345703],[-87.78568267822266,45.496139526367244],[-87.85975646972656,45.43976974487305],[-87.85341644287104,45.4072608947755],[-87.88687133789061,45.36513137817377],[-87.85740661621094,45.34968948364258],[-87.76006317138665,45.34931945800787],[-87.7033462524414,45.3865699768067],[-87.6513595581054,45.342460632324276],[-87.71179199218744,45.26469039916997],[-87.74075317382812,45.175521850585994],[-87.67529296874994,45.13346099853527],[-87.66039276123041,45.107769012451286],[-87.43727111816406,45.07780075073248],[-87.40345764160156,45.20452880859381],[-87.30750274658203,45.24304962158209],[-87.17965698242182,45.34244155883789],[-87.09626007080078,45.441989898681584],[-86.76052856445307,45.44398117065435],[-86.24957275390625,45.23382186889654],[-86.42835998535149,45.1271705627442],[-86.5084991455078,45.066459655761776],[-86.64382934570312,44.933990478515625],[-86.72654724121094,44.8134002685548],[-86.79164123535156,44.69007873535156],[-86.86270904541014,44.533458709716854],[-86.96586608886707,44.255950927734375],[-87.03440093994135,44.04607009887695],[-87.08138275146484,43.88690185546875],[-87.12481689453118,43.71047210693359],[-87.14817810058588,43.57104873657238],[-87.15516662597645,43.443580627441406],[-87.1437759399414,43.305309295654354],[-87.12329101562493,43.19713211059575],[-87.067398071289,42.81948089599604],[-87.01808166503905,42.49470138549815],[-87.7980117797851,42.49602127075201],[-88.62876892089838,42.498481750488224],[-88.7718505859375,42.495719909668026],[-89.40184783935547,42.50297927856445],[-89.68112945556635,42.50743103027355],[-90.07176208496088,42.50947952270508],[-90.42444610595697,42.50790023803722],[-90.64151000976557,42.509281158447266],[-90.7059707641601,42.63558197021496],[-90.73005676269531,42.6448593139649],[-90.95420837402338,42.68717193603515],[-91.05169677734375,42.73966217041021],[-91.09990692138672,42.875019073486385],[-91.14438629150379,42.91040039062506],[-91.14640045166014,42.96091079711908],[-91.17562866210938,43.041500091552784],[-91.17752838134766,43.133880615234375],[-91.12007904052734,43.20286941528326],[-91.06314086914062,43.251098632812614],[-91.10038757324212,43.311779022216854],[-91.2034683227539,43.352722167968864],[-91.1990127563476,43.401470184326286],[-91.2319564819336,43.45838928222667],[-91.21996307373047,43.50228881835949],[-91.24170684814453,43.54475021362298],[-91.23175811767577,43.58444976806646],[-91.26715087890625,43.62329864501953],[-91.26664733886707,43.71619033813488],[-91.24598693847656,43.77518081665039],[-91.27906799316406,43.840740203857536],[-91.36734008789057,43.9392204284668],[-91.43450927734375,43.99748992919922],[-91.51145172119135,44.02219009399414],[-91.57084655761713,44.027778625488395],[-91.70950317382807,44.10575103759777],[-91.72551727294922,44.13095092773449],[-91.8118896484375,44.16049194335949],[-91.88848114013672,44.224102020263786],[-91.91506958007812,44.31468200683594],[-91.95923614501953,44.36016845703131],[-92.05819702148426,44.40224075317394],[-92.211669921875,44.43642044067394],[-92.28473663330078,44.48208999633788],[-92.31600952148438,44.54072952270519],[-92.36638641357422,44.55821990966791],[-92.5416259765625,44.56864166259771],[-92.5683364868164,44.60174942016613],[-92.73252105712885,44.715030670166065],[-92.80222320556635,44.74462890624999],[-92.76438140869135,44.8381805419923],[-92.75467681884766,44.95714950561518],[-92.76832580566405,45.03247070312505],[-92.80014038085932,45.072299957275504],[-92.74672698974604,45.107582092285156],[-92.75834655761719,45.290390014648494],[-92.70358276367188,45.326229095458984],[-92.69808959960932,45.36170959472662],[-92.64541625976562,45.40578079223633],[-92.64618682861328,45.44691848754894],[-92.72400665283203,45.513210296630916],[-92.72820281982422,45.544311523437614],[-92.77217864990229,45.56787109375006],[-92.81909942626947,45.5603408813476],[-92.88076782226562,45.57435989379877],[-92.8853912353515,45.63793182373058],[-92.86492919921875,45.717460632324325],[-92.784912109375,45.761981964111385],[-92.76248931884754,45.83015060424805],[-92.72895050048827,45.87358856201171],[-92.63555908203125,45.93120193481457],[-92.54872131347656,45.95252990722656],[-92.53526306152344,45.97851943969738],[-92.47383117675781,45.97315979003906],[-92.42616271972655,46.01951980590832],[-92.34934234619135,46.01506042480463],[-92.33354949951172,46.056579589843864],[-92.28991699218744,46.07062149047863],[-92.28830718994135,46.66788864135742],[-92.21241760253906,46.65069198608398],[-92.17941284179676,46.68450164794933],[-92.20291137695312,46.70471954345714],[-92.14028167724604,46.73797988891613],[-92.08677673339838,46.74848937988281],[-92.02097320556635,46.705890655517635],[-91.47432708740229,46.933589935302734],[-91.16647338867188,47.07197952270519],[-90.66310119628906,47.30253219604498],[-89.95797729492188,47.29117965698242]]]},"properties":{"ID_0":244,"ISO":"US-WI","NAME_0":"United States","ID_1":50,"NAME_1":"Wisconsin","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"WI|Wis."}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-104.05712890624994,44.99866104125982],[-104.05638885498047,44.571701049804744],[-104.05512237548822,44.18148040771496],[-104.05491638183588,43.73770141601562],[-104.05364990234375,43.422111511230526],[-104.05265045166003,43.00279998779297],[-104.05248260498047,42.61280059814459],[-104.0524673461914,42.08790969848644],[-104.05223083496094,41.700370788574276],[-104.05198669433582,41.394931793213004],[-104.05284118652332,41.001701354980526],[-104.56794738769531,41.002849578857415],[-104.63365936279297,41.00561141967779],[-104.8300323486328,40.9995689392091],[-105.28948974609375,40.999198913574276],[-105.88063049316399,40.99972152709972],[-106.02378845214838,40.997650146484375],[-106.32630157470697,41.002529144287166],[-107.00211334228516,41.00442123413085],[-107.45752716064447,41.00265884399414],[-107.9153976440429,41.002948760986385],[-108.37809753417969,40.99971008300781],[-109.0490112304687,41.00003051757824],[-109.58846282958984,40.999469757080135],[-110.0001373291015,40.9992294311524],[-110.27641296386713,40.99626922607422],[-111.04559326171875,40.99777984619135],[-111.04612731933587,41.451118469238395],[-111.04627990722656,42.00048065185546],[-111.04721069335936,42.425991058349666],[-111.04464721679688,42.78892135620117],[-111.04361724853514,43.313579559326115],[-111.04548645019531,43.72747039794927],[-111.04792022705072,44.13510894775396],[-111.0487289428711,44.4772300720216],[-111.05513763427734,44.6668815612793],[-111.05300140380847,44.9998893737793],[-110.77559661865234,45.001850128173885],[-110.70717620849604,44.99285125732433],[-110.40206146240234,44.99206161499023],[-110.37171173095702,44.99721908569336],[-110.20060729980457,44.99420166015636],[-110.13246154785156,45.00215148925787],[-109.72589874267578,45.00310897827143],[-109.17556762695307,45.00419998168957],[-109.08265686035155,45.00104904174805],[-108.49481964111328,45.001281738281364],[-107.96453857421875,45.000820159912045],[-107.23050689697266,45.00070953369151],[-107.00086212158203,44.99720001220709],[-106.26776885986327,44.99747848510748],[-105.93305969238281,44.997280120849666],[-105.91963958740227,45.00167846679682],[-105.0391998291015,44.99982070922863],[-104.70012664794922,44.99890899658209],[-104.05712890624994,44.99866104125982]]]},"properties":{"ID_0":244,"ISO":"US-WY","NAME_0":"United States","ID_1":51,"NAME_1":"Wyoming","TYPE_1":"State","ENGTYPE_1":"State","NL_NAME_1":null,"VARNAME_1":"WY|Wyo."}} +]} \ No newline at end of file diff --git a/superset/assets/visualizations/country_map.css b/superset/assets/visualizations/country_map.css new file mode 100644 index 0000000000000..8a16105aaaec8 --- /dev/null +++ b/superset/assets/visualizations/country_map.css @@ -0,0 +1,36 @@ +.country_map svg { + background-color: #feffff; +} + +.country_map { + position: relative; +} + +.country_map .background { + fill: rgba(255,255,255,0); + pointer-events: all; +} + +.country_map .map-layer { + fill: #fff; + stroke: #aaa; +} + +.country_map .effect-layer { + pointer-events: none; +} + +.country_map text { + font-weight: 300; + color: #333333; +} + +.country_map text.big-text { + font-size: 30px; + font-weight: 400; + color: #333333; +} + +.country_map path.region { + cursor: pointer; +} diff --git a/superset/assets/visualizations/country_map.js b/superset/assets/visualizations/country_map.js new file mode 100644 index 0000000000000..54fba87bb4ee2 --- /dev/null +++ b/superset/assets/visualizations/country_map.js @@ -0,0 +1,170 @@ +import d3 from 'd3'; +import './country_map.css'; +import { colorScalerFactory } from '../javascripts/modules/colors'; + + +function countryMapChart(slice, payload) { + // CONSTANTS + const fd = payload.form_data; + let path; + let g; + let bigText; + let resultText; + const container = slice.container; + const data = payload.data; + + const colorScaler = colorScalerFactory(fd.linear_color_scheme, data, v => v.metric); + const colorMap = {}; + data.forEach((d) => { + colorMap[d.country_id] = colorScaler(d.metric); + }); + const colorFn = d => colorMap[d.properties.ISO] || 'none'; + + let centered; + path = d3.geo.path(); + d3.select(slice.selector).selectAll('*').remove(); + const div = d3.select(slice.selector) + .append('svg:svg') + .attr('width', slice.width()) + .attr('height', slice.height()) + .attr('preserveAspectRatio', 'xMidYMid meet'); + + container.css('height', slice.height()); + container.css('width', slice.width()); + + const clicked = function (d) { + let x; + let y; + let k; + let bigTextX; + let bigTextY; + let bigTextSize; + let resultTextX; + let resultTextY; + + if (d && centered !== d) { + const centroid = path.centroid(d); + x = centroid[0]; + y = centroid[1]; + bigTextX = centroid[0]; + bigTextY = centroid[1] - 40; + resultTextX = centroid[0]; + resultTextY = centroid[1] - 40; + bigTextSize = '6px'; + k = 4; + centered = d; + } else { + x = slice.width() / 2; + y = slice.height() / 2; + bigTextX = 0; + bigTextY = 0; + resultTextX = 0; + resultTextY = 0; + bigTextSize = '30px'; + k = 1; + centered = null; + } + + g.transition() + .duration(750) + .attr('transform', 'translate(' + slice.width() / 2 + ',' + slice.height() / 2 + ')scale(' + k + ')translate(' + -x + ',' + -y + ')'); + bigText.transition() + .duration(750) + .attr('transform', 'translate(0,0)translate(' + bigTextX + ',' + bigTextY + ')') + .style('font-size', bigTextSize); + resultText.transition() + .duration(750) + .attr('transform', 'translate(0,0)translate(' + resultTextX + ',' + resultTextY + ')'); + }; + + const selectAndDisplayNameOfRegion = function (feature) { + let name = ''; + if (feature && feature.properties) { + if (feature.properties.ID_2) { + name = feature.properties.NAME_2; + } else { + name = feature.properties.NAME_1; + } + } + bigText.text(name); + }; + + const updateMetrics = function (region) { + if (region.length > 0) { + resultText.text(d3.format(',')(region[0].metric)); + } + }; + + const mouseenter = function (d) { + // Darken color + let c = colorFn(d); + if (c !== 'none') { + c = d3.rgb(c).darker().toString(); + } + d3.select(this).style('fill', c); + selectAndDisplayNameOfRegion(d); + const result = data.filter(region => region.country_id === d.properties.ISO); + updateMetrics(result); + }; + + const mouseout = function () { + d3.select(this).style('fill', colorFn); + bigText.text(''); + resultText.text(''); + }; + + div.append('rect') + .attr('class', 'background') + .attr('width', slice.width()) + .attr('height', slice.height()) + .on('click', clicked); + + g = div.append('g'); + const mapLayer = g.append('g') + .classed('map-layer', true); + bigText = g.append('text') + .classed('big-text', true) + .attr('x', 20) + .attr('y', 45); + resultText = g.append('text') + .classed('result-text', true) + .attr('x', 20) + .attr('y', 60); + + const url = `/static/assets/visualizations/countries/${fd.select_country.toLowerCase()}.geojson`; + d3.json(url, function (error, mapData) { + const features = mapData.features; + const center = d3.geo.centroid(mapData); + let scale = 150; + let offset = [slice.width() / 2, slice.height() / 2]; + let projection = d3.geo.mercator().scale(scale).center(center) + .translate(offset); + + path = path.projection(projection); + + const bounds = path.bounds(mapData); + const hscale = scale * slice.width() / (bounds[1][0] - bounds[0][0]); + const vscale = scale * slice.height() / (bounds[1][1] - bounds[0][1]); + scale = (hscale < vscale) ? hscale : vscale; + const offsetWidth = slice.width() - (bounds[0][0] + bounds[1][0]) / 2; + const offsetHeigth = slice.height() - (bounds[0][1] + bounds[1][1]) / 2; + offset = [offsetWidth, offsetHeigth]; + projection = d3.geo.mercator().center(center).scale(scale).translate(offset); + path = path.projection(projection); + + // Draw each province as a path + mapLayer.selectAll('path') + .data(features) + .enter().append('path') + .attr('d', path) + .attr('class', 'region') + .attr('vector-effect', 'non-scaling-stroke') + .style('fill', colorFn) + .on('mouseenter', mouseenter) + .on('mouseout', mouseout) + .on('click', clicked); + }); + container.show(); +} + +module.exports = countryMapChart; diff --git a/superset/assets/visualizations/directed_force.js b/superset/assets/visualizations/directed_force.js index e2003f122eb15..b95829f9fd272 100644 --- a/superset/assets/visualizations/directed_force.js +++ b/superset/assets/visualizations/directed_force.js @@ -7,9 +7,10 @@ require('./directed_force.css'); const directedForceVis = function (slice, json) { const div = d3.select(slice.selector); const width = slice.width(); - const height = slice.height() - 25; - const linkLength = json.form_data.link_length || 200; - const charge = json.form_data.charge || -500; + const height = slice.height(); + const fd = slice.formData; + const linkLength = fd.link_length || 200; + const charge = fd.charge || -500; const links = json.data; const nodes = {}; @@ -54,7 +55,7 @@ const directedForceVis = function (slice, json) { path.attr('d', function (d) { const dx = d.target.x - d.source.x; const dy = d.target.y - d.source.y; - const dr = Math.sqrt(dx * dx + dy * dy); + const dr = Math.sqrt((dx * dx) + (dy * dy)); return ( 'M' + d.source.x + ',' + diff --git a/superset/assets/visualizations/filter_box.css b/superset/assets/visualizations/filter_box.css index cb5625c80f8b2..e1b72f3bd777e 100644 --- a/superset/assets/visualizations/filter_box.css +++ b/superset/assets/visualizations/filter_box.css @@ -3,7 +3,7 @@ border: 1px superset black; } -.dashboard .filter_box .slice_container > div { +.dashboard .filter_box .slice_container > div:not(.alert) { padding-top: 0; } @@ -20,7 +20,7 @@ ul.select2-results div.filter_box{ border-width: 1px; border-color: transparent; } -.filter_box .slice_container { +.filter_box.slice_container { padding: 10px; overflow: visible !important; } diff --git a/superset/assets/visualizations/filter_box.jsx b/superset/assets/visualizations/filter_box.jsx index 80276fe394247..d4615e66b3980 100644 --- a/superset/assets/visualizations/filter_box.jsx +++ b/superset/assets/visualizations/filter_box.jsx @@ -1,26 +1,28 @@ // JS import d3 from 'd3'; - import React from 'react'; +import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; - import Select from 'react-select'; -import '../stylesheets/react-select/select.less'; +import { Button } from 'react-bootstrap'; +import '../stylesheets/react-select/select.less'; +import { TIME_CHOICES } from './constants'; import './filter_box.css'; -import { TIME_CHOICES } from './constants.js'; const propTypes = { - origSelectedValues: React.PropTypes.object, - filtersChoices: React.PropTypes.object, - onChange: React.PropTypes.func, - showDateFilter: React.PropTypes.bool, + origSelectedValues: PropTypes.object, + instantFiltering: PropTypes.bool, + filtersChoices: PropTypes.object, + onChange: PropTypes.func, + showDateFilter: PropTypes.bool, }; const defaultProps = { origSelectedValues: {}, onChange: () => {}, showDateFilter: false, + instantFiltering: true, }; class FilterBox extends React.Component { @@ -28,21 +30,26 @@ class FilterBox extends React.Component { super(props); this.state = { selectedValues: props.origSelectedValues, + hasChanged: false, }; } + clickApply() { + this.props.onChange(Object.keys(this.state.selectedValues)[0], [], true, true); + this.setState({ hasChanged: false }); + } changeFilter(filter, options) { let vals = null; if (options) { if (Array.isArray(options)) { - vals = options.map((opt) => opt.value); + vals = options.map(opt => opt.value); } else { vals = options.value; } } const selectedValues = Object.assign({}, this.state.selectedValues); selectedValues[filter] = vals; - this.setState({ selectedValues }); - this.props.onChange(filter, vals); + this.setState({ selectedValues, hasChanged: true }); + this.props.onChange(filter, vals, false, this.props.instantFiltering); } render() { let dateFilter; @@ -53,9 +60,9 @@ class FilterBox extends React.Component { if (!choices.includes(val)) { choices.push(val); } - const options = choices.map((s) => ({ value: s, label: s })); + const options = choices.map(s => ({ value: s, label: s })); return ( -
+
{field.replace('__', '')} {filter} -
'; return s; }); - chart.pointRange([5, fd.max_bubble_size * fd.max_bubble_size]); + chart.pointRange([5, fd.max_bubble_size ** 2]); + chart.pointDomain([0, d3.max(payload.data, d => d3.max(d.values, v => v.size))]); break; case 'area': @@ -254,7 +265,7 @@ function nvd3Vis(slice, payload) { chart.style(fd.stacked_style); chart.xScale(d3.time.scale.utc()); chart.xAxis - .showMaxMin(false) + .showMaxMin(fd.x_axis_showminmax) .staggerLabels(true); break; @@ -277,10 +288,14 @@ function nvd3Vis(slice, payload) { } if ('showLegend' in chart && typeof fd.show_legend !== 'undefined') { - chart.showLegend(fd.show_legend); + if (width < BREAKPOINTS.small && vizType !== 'pie') { + chart.showLegend(false); + } else { + chart.showLegend(fd.show_legend); + } } - let height = slice.height() - 15; + let height = slice.height(); if (vizType === 'bullet') { height = Math.min(height, 50); } @@ -291,9 +306,12 @@ function nvd3Vis(slice, payload) { if ((vizType === 'line' || vizType === 'area') && fd.rich_tooltip) { chart.useInteractiveGuideline(true); } - if (fd.y_axis_zero) { - chart.forceY([0]); - } else if (fd.y_log_scale) { + if (chart.forceY && + fd.y_axis_bounds && + (fd.y_axis_bounds[0] !== null || fd.y_axis_bounds[1] !== null)) { + chart.forceY(fd.y_axis_bounds); + } + if (fd.y_log_scale) { chart.yScale(d3.scale.log()); } if (fd.x_log_scale) { @@ -339,12 +357,12 @@ function nvd3Vis(slice, payload) { } } if (vizType !== 'bullet') { - chart.color((d) => category21(d[colorKey])); + chart.color(d => category21(d[colorKey])); } if (fd.x_axis_label && fd.x_axis_label !== '' && chart.xAxis) { let distance = 0; - if (fd.bottom_margin) { + if (fd.bottom_margin && !isNaN(fd.bottom_margin)) { distance = fd.bottom_margin - 50; } chart.xAxis.axisLabel(fd.x_axis_label).axisLabelDistance(distance); @@ -366,17 +384,13 @@ function nvd3Vis(slice, payload) { chart.margin({ bottom: fd.bottom_margin }); } - let svg = d3.select(slice.selector).select('svg'); - if (svg.empty()) { - svg = d3.select(slice.selector).append('svg'); - } if (vizType === 'dual_line') { const yAxisFormatter1 = d3.format(fd.y_axis_format); const yAxisFormatter2 = d3.format(fd.y_axis_2_format); chart.yAxis1.tickFormat(yAxisFormatter1); chart.yAxis2.tickFormat(yAxisFormatter2); customizeToolTip(chart, xAxisFormatter, [yAxisFormatter1, yAxisFormatter2]); - chart.showLegend(true); + chart.showLegend(width > BREAKPOINTS.small); } svg .datum(payload.data) @@ -391,29 +405,41 @@ function nvd3Vis(slice, payload) { .style('fill-opacity', 1); } - // Hack to adjust margins to accommodate long axis tick labels. - // - has to be done only after the chart has been rendered once - // - measure the width or height of the labels - // ---- (x axis labels are rotated 45 degrees so we use height), - // - adjust margins based on these measures and render again - if (isTimeSeries && vizType !== 'bar') { - const maxXAxisLabelHeight = getMaxLabelSize(slice.container, 'nv-x', 'height'); + if (chart.yAxis !== undefined || chart.yAxis2 !== undefined) { + // Hack to adjust y axis left margin to accommodate long numbers const marginPad = isExplore ? width * 0.01 : width * 0.03; - const chartMargins = { - bottom: maxXAxisLabelHeight + marginPad, - right: maxXAxisLabelHeight + marginPad, - }; - - if (vizType === 'dual_line') { - const maxYAxis2LabelWidth = getMaxLabelSize(slice.container, 'nv-y2', 'width'); - // use y axis width if it's wider than axis width/height - if (maxYAxis2LabelWidth > maxXAxisLabelHeight) { - chartMargins.right = maxYAxis2LabelWidth + marginPad; - } + const maxYAxisLabelWidth = chart.yAxis2 ? getMaxLabelSize(slice.container, 'nv-y1') + : getMaxLabelSize(slice.container, 'nv-y'); + const maxXAxisLabelHeight = getMaxLabelSize(slice.container, 'nv-x'); + chart.margin({ left: maxYAxisLabelWidth + marginPad }); + if (fd.y_axis_label && fd.y_axis_label !== '') { + chart.margin({ left: maxYAxisLabelWidth + marginPad + 25 }); } + // Hack to adjust margins to accommodate long axis tick labels. + // - has to be done only after the chart has been rendered once + // - measure the width or height of the labels + // ---- (x axis labels are rotated 45 degrees so we use height), + // - adjust margins based on these measures and render again + if (isTimeSeries && vizType !== 'bar') { + const chartMargins = { + bottom: maxXAxisLabelHeight + marginPad, + right: maxXAxisLabelHeight + marginPad, + }; + + if (vizType === 'dual_line') { + const maxYAxis2LabelWidth = getMaxLabelSize(slice.container, 'nv-y2'); + // use y axis width if it's wider than axis width/height + if (maxYAxis2LabelWidth > maxXAxisLabelHeight) { + chartMargins.right = maxYAxis2LabelWidth + marginPad; + } + } - // apply margins - chart.margin(chartMargins); + // apply margins + chart.margin(chartMargins); + } + if (fd.x_axis_label && fd.x_axis_label !== '' && chart.xAxis) { + chart.margin({ bottom: maxXAxisLabelHeight + marginPad + 25 }); + } // render chart svg diff --git a/superset/assets/visualizations/parallel_coordinates.js b/superset/assets/visualizations/parallel_coordinates.js index cbb01b4964804..facbe00276687 100644 --- a/superset/assets/visualizations/parallel_coordinates.js +++ b/superset/assets/visualizations/parallel_coordinates.js @@ -1,14 +1,15 @@ -const $ = require('jquery'); import d3 from 'd3'; +import '../vendor/parallel_coordinates/d3.parcoords.css'; +import './parallel_coordinates.css'; + d3.parcoords = require('../vendor/parallel_coordinates/d3.parcoords.js'); d3.divgrid = require('../vendor/parallel_coordinates/divgrid.js'); -require('../vendor/parallel_coordinates/d3.parcoords.css'); -require('./parallel_coordinates.css'); +const $ = require('jquery'); function parallelCoordVis(slice, payload) { $('#code').attr('rows', '15'); - const fd = payload.form_data; + const fd = slice.formData; const data = payload.data; let cols = fd.metrics; diff --git a/superset/assets/visualizations/pivot_table.css b/superset/assets/visualizations/pivot_table.css index 7d94f85344af4..43b94878d87c1 100644 --- a/superset/assets/visualizations/pivot_table.css +++ b/superset/assets/visualizations/pivot_table.css @@ -1,17 +1,4 @@ -.slice-grid .widget.pivot_table .slice_container { - overflow: auto !important; -} - -.widget.pivot_table table { - margin: 0px !important; -} - -.widget.pivot_table tr>th { - padding: 1px 5px !important; - font-size: small !important; -} - -.widget.pivot_table tr>td { - padding: 1px 5px !important; - font-size: small !important; +.widget.pivot_table tr > th, +.widget.pivot_table tr > td { + padding: 1px 5px; } diff --git a/superset/assets/visualizations/pivot_table.js b/superset/assets/visualizations/pivot_table.js index 05ed5b6e2eea2..228a97ba790d2 100644 --- a/superset/assets/visualizations/pivot_table.js +++ b/superset/assets/visualizations/pivot_table.js @@ -1,29 +1,50 @@ -import { fixDataTableBodyHeight } from '../javascripts/modules/utils'; -const $ = require('jquery'); - -require('./pivot_table.css'); - -require('datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'); import 'datatables.net'; import dt from 'datatables.net-bs'; +import $ from 'jquery'; +import 'datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'; +import { fixDataTableBodyHeight } from '../javascripts/modules/utils'; +import './pivot_table.css'; + dt(window, $); module.exports = function (slice, payload) { const container = slice.container; - const fd = payload.form_data; + const fd = slice.formData; + const height = container.height(); + const numberFormat = fd.number_format; + + // payload data is a string of html with a single table element container.html(payload.data); + + // format number + $('td').each(function () { + const tdText = $(this)[0].textContent; + if (!isNaN(tdText) && tdText !== '') { + $(this)[0].textContent = d3.format(numberFormat)(tdText); + } + }); + if (fd.groupby.length === 1) { - const height = container.height(); + // When there is only 1 group by column, + // we use the DataTable plugin to make the header fixed. + // The plugin takes care of the scrolling so we don't need + // overflow: 'auto' on the table. + container.css('overflow', 'hidden'); const table = container.find('table').DataTable({ paging: false, searching: false, bInfo: false, - scrollY: height + 'px', + scrollY: `${height}px`, scrollCollapse: true, scrollX: true, }); table.column('-1').order('desc').draw(); - fixDataTableBodyHeight( - container.find('.dataTables_wrapper'), height); + fixDataTableBodyHeight(container.find('.dataTables_wrapper'), height); + } else { + // When there is more than 1 group by column we just render the table, without using + // the DataTable plugin, so we need to handle the scrolling ourselves. + // In this case the header is not fixed. + container.css('overflow', 'auto'); + container.css('height', `${height + 10}px`); } }; diff --git a/superset/assets/visualizations/sankey.js b/superset/assets/visualizations/sankey.js index e80fd6996cb12..80e8980b8eaaf 100644 --- a/superset/assets/visualizations/sankey.js +++ b/superset/assets/visualizations/sankey.js @@ -1,10 +1,10 @@ /* eslint-disable no-param-reassign */ -import { category21 } from '../javascripts/modules/colors'; import d3 from 'd3'; +import { category21 } from '../javascripts/modules/colors'; +import './sankey.css'; d3.sankey = require('d3-sankey').sankey; -require('./sankey.css'); function sankeyVis(slice, payload) { const div = d3.select(slice.selector); @@ -100,7 +100,7 @@ function sankeyVis(slice, payload) { .append('path') .attr('class', 'link') .attr('d', path) - .style('stroke-width', (d) => Math.max(1, d.dy)) + .style('stroke-width', d => Math.max(1, d.dy)) .sort((a, b) => b.dy - a.dy) .on('mouseover', onmouseover) .on('mouseout', onmouseout); @@ -109,7 +109,7 @@ function sankeyVis(slice, payload) { d3.select(this) .attr( 'transform', - `translate(${d.x},${(d.y = Math.max(0, Math.min(height - d.dy, d3.event.y)))})` + `translate(${d.x},${(d.y = Math.max(0, Math.min(height - d.dy, d3.event.y)))})`, ); sankey.relayout(); link.attr('d', path); @@ -130,16 +130,15 @@ function sankeyVis(slice, payload) { .on('dragstart', function () { this.parentNode.appendChild(this); }) - .on('drag', dragmove) + .on('drag', dragmove), ); - + const minRectHeight = 5; node.append('rect') - .attr('height', function (d) { - return d.dy; - }) + .attr('height', d => d.dy > minRectHeight ? d.dy : minRectHeight) .attr('width', sankey.nodeWidth()) .style('fill', function (d) { - d.color = category21(d.name.replace(/ .*/, '')); + const name = d.name || 'N/A'; + d.color = category21(name.replace(/ .*/, '')); return d.color; }) .style('stroke', function (d) { diff --git a/superset/assets/visualizations/sunburst.js b/superset/assets/visualizations/sunburst.js index 7d45a30c568c5..34143c0be34e1 100644 --- a/superset/assets/visualizations/sunburst.js +++ b/superset/assets/visualizations/sunburst.js @@ -34,8 +34,8 @@ function sunburstVis(slice, payload) { .value(function (d) { return d.m1; }); const arc = d3.svg.arc() - .startAngle((d) => d.x) - .endAngle((d) => d.x + d.dx) + .startAngle(d => d.x) + .endAngle(d => d.x + d.dx) .innerRadius(function (d) { return Math.sqrt(d.y); }) @@ -341,10 +341,11 @@ function sunburstVis(slice, payload) { }); let ext; + const fd = slice.formData; - if (rawData.form_data.metric !== rawData.form_data.secondary_metric) { + if (fd.metric !== fd.secondary_metric) { colorByCategory = false; - ext = d3.extent(nodes, (d) => d.m2 / d.m1); + ext = d3.extent(nodes, d => d.m2 / d.m1); colorScale = d3.scale.linear() .domain([ext[0], ext[0] + ((ext[1] - ext[0]) / 2), ext[1]]) .range(['#00D1C1', 'white', '#FFB400']); @@ -359,7 +360,7 @@ function sunburstVis(slice, payload) { }) .attr('d', arc) .attr('fill-rule', 'evenodd') - .style('fill', (d) => colorByCategory ? category21(d.name) : colorScale(d.m2 / d.m1)) + .style('fill', d => colorByCategory ? category21(d.name) : colorScale(d.m2 / d.m1)) .style('opacity', 1) .on('mouseenter', mouseenter); diff --git a/superset/assets/visualizations/table.css b/superset/assets/visualizations/table.css index 2beae00a1f727..84c7e2735159f 100644 --- a/superset/assets/visualizations/table.css +++ b/superset/assets/visualizations/table.css @@ -23,3 +23,7 @@ table.table thead th.sorting:after, table.table thead th.sorting_asc:after, table.table thead th.sorting_desc:after { top: 0px; } + +.like-pre { + white-space: pre-wrap; +} diff --git a/superset/assets/visualizations/table.js b/superset/assets/visualizations/table.js index ed6b95cda82a0..4a2709418ef8b 100644 --- a/superset/assets/visualizations/table.js +++ b/superset/assets/visualizations/table.js @@ -1,13 +1,14 @@ import d3 from 'd3'; +import 'datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'; +import 'datatables.net'; +import dt from 'datatables.net-bs'; + import { fixDataTableBodyHeight } from '../javascripts/modules/utils'; import { timeFormatFactory, formatDate } from '../javascripts/modules/dates'; +import './table.css'; -require('./table.css'); const $ = require('jquery'); -require('datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'); -import 'datatables.net'; -import dt from 'datatables.net-bs'; dt(window, $); function tableVis(slice, payload) { @@ -16,25 +17,21 @@ function tableVis(slice, payload) { let timestampFormatter; const data = payload.data; - const fd = payload.form_data; + const fd = slice.formData; + // Removing metrics (aggregates) that are strings - const realMetrics = []; - for (const k in data.records[0]) { - if (fd.metrics.indexOf(k) > -1 && !isNaN(data.records[0][k])) { - realMetrics.push(k); - } - } - const metrics = realMetrics; + let metrics = fd.metrics || []; + metrics = metrics.filter(m => !isNaN(data.records[0][m])); function col(c) { const arr = []; - for (let i = 0; i < data.records.length; i++) { + for (let i = 0; i < data.records.length; i += 1) { arr.push(data.records[i][c]); } return arr; } const maxes = {}; - for (let i = 0; i < metrics.length; i++) { + for (let i = 0; i < metrics.length; i += 1) { maxes[metrics[i]] = d3.max(col(metrics[i])); } @@ -67,15 +64,24 @@ function tableVis(slice, payload) { .enter() .append('tr') .selectAll('td') - .data((row) => data.columns.map((c) => { - let val = row[c]; + .data(row => data.columns.map((c) => { + const val = row[c]; + let html; + const isMetric = metrics.indexOf(c) >= 0; if (c === 'timestamp') { - val = timestampFormatter(val); + html = timestampFormatter(val); + } + if (typeof (val) === 'string') { + html = ``; + } + if (isMetric) { + html = slice.d3format(c, val); } return { col: c, val, - isMetric: metrics.indexOf(c) >= 0, + html, + isMetric, }; })) .enter() @@ -83,9 +89,11 @@ function tableVis(slice, payload) { .style('background-image', function (d) { if (d.isMetric) { const perc = Math.round((d.val / maxes[d.col]) * 100); + // The 0.01 to 0.001 is a workaround for what appears to be a + // CSS rendering bug on flat, transparent colors return ( - `linear-gradient(to right, lightgrey, lightgrey ${perc}%, ` + - `rgba(0,0,0,0) ${perc}%` + `linear-gradient(to right, rgba(0,0,0,0.2), rgba(0,0,0,0.2) ${perc}%, ` + + `rgba(0,0,0,0.01) ${perc}%, rgba(0,0,0,0.001) 100%)` ); } return null; @@ -114,12 +122,7 @@ function tableVis(slice, payload) { .style('cursor', function (d) { return (!d.isMetric) ? 'pointer' : ''; }) - .html((d) => { - if (d.isMetric) { - return slice.d3format(d.col, d.val); - } - return d.val; - }); + .html(d => d.html ? d.html : d.val); const height = slice.height(); let paging = false; let pageLength; @@ -140,8 +143,8 @@ function tableVis(slice, payload) { fixDataTableBodyHeight( container.find('.dataTables_wrapper'), height); // Sorting table by main column - if (fd.metrics.length > 0) { - const mainMetric = fd.metrics[0]; + if (metrics.length > 0) { + const mainMetric = metrics[0]; datatable.column(data.columns.indexOf(mainMetric)).order('desc').draw(); } container.parents('.widget').find('.tooltip').remove(); diff --git a/superset/assets/visualizations/treemap.js b/superset/assets/visualizations/treemap.js index 88d7e276f1c4a..1e025935e6b25 100644 --- a/superset/assets/visualizations/treemap.js +++ b/superset/assets/visualizations/treemap.js @@ -44,7 +44,7 @@ function treemap(slice, payload) { const grandparent = svg.append('g') .attr('class', 'grandparent') - .attr('transform', 'translate(0,' + (margin.top + navBarBuffer / 2) + ')'); + .attr('transform', 'translate(0,' + (margin.top + (navBarBuffer / 2)) + ')'); grandparent.append('rect') .attr('width', width) @@ -52,12 +52,13 @@ function treemap(slice, payload) { grandparent.append('text') .attr('x', width / 2) - .attr('y', navBarHeight / 2 + navBarTitleSize / 2) + .attr('y', (navBarHeight / 2) + (navBarTitleSize / 2)) .style('font-size', navBarTitleSize + 'px') .style('text-anchor', 'middle'); const initialize = function (root) { - root.x = root.y = 0; + root.x = 0; + root.y = 0; root.dx = width; root.dy = height; root.depth = 0; @@ -86,8 +87,8 @@ function treemap(slice, payload) { if (d._children) { treemap.nodes({ _children: d._children }); d._children.forEach(function (c) { - c.x = d.x + c.x * d.dx; - c.y = d.y + c.y * d.dy; + c.x = d.x + (c.x * d.dx); + c.y = d.y + (c.y * d.dy); c.dx *= d.dx; c.dy *= d.dy; c.parent = d; @@ -229,8 +230,8 @@ function treemap(slice, payload) { div.selectAll('*').remove(); const width = slice.width(); const height = slice.height() / payload.data.length; - for (let i = 0, l = payload.data.length; i < l; i ++) { - _draw(payload.data[i], width, height, payload.form_data); + for (let i = 0, l = payload.data.length; i < l; i += 1) { + _draw(payload.data[i], width, height, slice.formData); } } diff --git a/superset/assets/visualizations/word_cloud.js b/superset/assets/visualizations/word_cloud.js index 775a6d26e1e54..5d445c7db7a6d 100644 --- a/superset/assets/visualizations/word_cloud.js +++ b/superset/assets/visualizations/word_cloud.js @@ -6,18 +6,19 @@ import { category21 } from '../javascripts/modules/colors'; function wordCloudChart(slice, payload) { const chart = d3.select(slice.selector); const data = payload.data; + const fd = slice.formData; const range = [ - payload.form_data.size_from, - payload.form_data.size_to, + fd.size_from, + fd.size_to, ]; - const rotation = payload.form_data.rotation; + const rotation = fd.rotation; let fRotation; if (rotation === 'square') { - fRotation = () => ~~(Math.random() * 2) * 90; + fRotation = () => Math.floor((Math.random() * 2) * 90); } else if (rotation === 'flat') { fRotation = () => 0; } else { - fRotation = () => (~~(Math.random() * 6) - 3) * 30; + fRotation = () => Math.floor(((Math.random() * 6) - 3) * 30); } const size = [slice.width(), slice.height()]; @@ -39,12 +40,12 @@ function wordCloudChart(slice, payload) { .data(words) .enter() .append('text') - .style('font-size', (d) => d.size + 'px') + .style('font-size', d => d.size + 'px') .style('font-family', 'Impact') - .style('fill', (d) => category21(d.text)) + .style('fill', d => category21(d.text)) .attr('text-anchor', 'middle') - .attr('transform', (d) => `translate(${d.x}, ${d.y}) rotate(${d.rotate})`) - .text((d) => d.text); + .attr('transform', d => `translate(${d.x}, ${d.y}) rotate(${d.rotate})`) + .text(d => d.text); } const layout = cloudLayout() @@ -53,7 +54,7 @@ function wordCloudChart(slice, payload) { .padding(5) .rotate(fRotation) .font('serif') - .fontSize((d) => scale(d.size)) + .fontSize(d => scale(d.size)) .on('end', draw); layout.start(); diff --git a/superset/assets/visualizations/world_map.js b/superset/assets/visualizations/world_map.js index fada6666ad2a3..a9ab714a5ecc4 100644 --- a/superset/assets/visualizations/world_map.js +++ b/superset/assets/visualizations/world_map.js @@ -11,9 +11,9 @@ function worldMapChart(slice, payload) { container.css('height', slice.height()); div.selectAll('*').remove(); - const fd = payload.form_data; + const fd = slice.formData; // Ignore XXX's to get better normalization - let data = payload.data.filter((d) => (d.country && d.country !== 'XXX')); + let data = payload.data.filter(d => (d.country && d.country !== 'XXX')); const ext = d3.extent(data, function (d) { return d.m1; @@ -29,7 +29,7 @@ function worldMapChart(slice, payload) { .domain([ext[0], ext[1]]) .range(['#FFF', 'black']); - data = data.map((d) => Object.assign({}, d, { + data = data.map(d => Object.assign({}, d, { radius: radiusScale(d.m2), fillColor: colorScale(d.m1), })); diff --git a/superset/assets/webpack.config.js b/superset/assets/webpack.config.js index 128840cfb2e45..2f51c8c5150e3 100644 --- a/superset/assets/webpack.config.js +++ b/superset/assets/webpack.config.js @@ -14,11 +14,10 @@ const config = { entry: { 'css-theme': APP_DIR + '/javascripts/css-theme.js', common: APP_DIR + '/javascripts/common.js', + addSlice: ['babel-polyfill', APP_DIR + '/javascripts/addSlice/index.jsx'], dashboard: ['babel-polyfill', APP_DIR + '/javascripts/dashboard/Dashboard.jsx'], - explore: ['babel-polyfill', APP_DIR + '/javascripts/explore/explore.jsx'], - explorev2: ['babel-polyfill', APP_DIR + '/javascripts/explorev2/index.jsx'], + explore: ['babel-polyfill', APP_DIR + '/javascripts/explore/index.jsx'], sqllab: ['babel-polyfill', APP_DIR + '/javascripts/SqlLab/index.jsx'], - standalone: ['babel-polyfill', APP_DIR + '/javascripts/standalone.js'], welcome: ['babel-polyfill', APP_DIR + '/javascripts/welcome.js'], profile: ['babel-polyfill', APP_DIR + '/javascripts/profile/index.jsx'], }, @@ -28,7 +27,6 @@ const config = { }, resolve: { extensions: [ - '', '.js', '.jsx', ], @@ -45,12 +43,12 @@ const config = { loaders: [ { test: /datatables\.net.*/, - loader: 'imports?define=>false', + loader: 'imports-loader?define=>false', }, { test: /\.jsx?$/, exclude: APP_DIR + '/node_modules', - loader: 'babel', + loader: 'babel-loader', query: { presets: [ 'airbnb', @@ -63,7 +61,7 @@ const config = { { test: /\.react\.js$/, include: APP_DIR + '/node_modules/react-map-gl/src/overlays', - loader: 'babel', + loader: 'babel-loader', }, /* for require('*.css') */ { @@ -87,7 +85,7 @@ const config = { /* for font-awesome */ { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, - loader: 'url-loader?limit=10000&minetype=application/font-woff', + loader: 'url-loader?limit=10000&mimetype=application/font-woff', }, { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, @@ -97,7 +95,7 @@ const config = { { test: /\.less$/, include: APP_DIR, - loader: 'style!css!less', + loader: 'style-loader!css-loader!less-loader', }, /* for mapbox */ { @@ -110,11 +108,6 @@ const config = { loader: 'transform/cacheable?brfs', }, ], - postLoaders: [{ - include: /node_modules\/mapbox-gl/, - loader: 'transform', - query: 'brfs', - }], }, externals: { cheerio: 'window', diff --git a/superset/bin/superset b/superset/bin/superset index 068d8639fa4dd..ed77176f086dc 100755 --- a/superset/bin/superset +++ b/superset/bin/superset @@ -1,4 +1,5 @@ #!/usr/bin/env python +# -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function diff --git a/superset/cache_util.py b/superset/cache_util.py new file mode 100644 index 0000000000000..ecba03ffa3f19 --- /dev/null +++ b/superset/cache_util.py @@ -0,0 +1,32 @@ +from superset import tables_cache +from flask import request + + +def view_cache_key(*unused_args, **unused_kwargs): + args_hash = hash(frozenset(request.args.items())) + return 'view/{}/{}'.format(request.path, args_hash) + + +def memoized_func(timeout=5 * 60, key=view_cache_key): + """Use this decorator to cache functions that have predefined first arg. + + memoized_func uses simple_cache and stored the data in memory. + Key is a callable function that takes function arguments and + returns the caching key. + """ + def wrap(f): + if tables_cache: + def wrapped_f(cls, *args, **kwargs): + cache_key = key(*args, **kwargs) + o = tables_cache.get(cache_key) + if not kwargs['force'] and o is not None: + return o + o = f(cls, *args, **kwargs) + tables_cache.set(cache_key, o, timeout=timeout) + return o + else: + # noop + def wrapped_f(cls, *args, **kwargs): + return f(cls, *args, **kwargs) + return wrapped_f + return wrap diff --git a/superset/cli.py b/superset/cli.py index ba143594e7d4c..3bf79cb701c95 100755 --- a/superset/cli.py +++ b/superset/cli.py @@ -13,7 +13,7 @@ from flask_migrate import MigrateCommand from flask_script import Manager -from superset import app, db, data, security +from superset import app, db, security config = app.config @@ -30,6 +30,10 @@ def init(): @manager.option( '-d', '--debug', action='store_true', help="Start the web server in debug mode") +@manager.option( + '-n', '--no-reload', action='store_false', dest='no_reload', + default=config.get("FLASK_USE_RELOAD"), + help="Don't use the reloader in debug mode") @manager.option( '-a', '--address', default=config.get("SUPERSET_WEBSERVER_ADDRESS"), help="Specify the address to which to bind the web server") @@ -42,21 +46,28 @@ def init(): @manager.option( '-t', '--timeout', default=config.get("SUPERSET_WEBSERVER_TIMEOUT"), help="Specify the timeout (seconds) for the gunicorn web server") -def runserver(debug, address, port, timeout, workers): - """Starts a Superset web server""" +@manager.option( + '-s', '--socket', default=config.get("SUPERSET_WEBSERVER_SOCKET"), + help="Path to a UNIX socket as an alternative to address:port, e.g. " + "/var/run/superset.sock. " + "Will override the address and port values.") +def runserver(debug, no_reload, address, port, timeout, workers, socket): + """Starts a Superset web server.""" debug = debug or config.get("DEBUG") if debug: app.run( host='0.0.0.0', port=int(port), threaded=True, - debug=True) + debug=True, + use_reloader=no_reload) else: + addr_str = " unix:{socket} " if socket else" {address}:{port} " cmd = ( "gunicorn " "-w {workers} " "--timeout {timeout} " - "-b {address}:{port} " + "-b " + addr_str + "--limit-request-line 0 " "--limit-request-field_size 0 " "superset:app").format(**locals()) @@ -84,6 +95,7 @@ def version(verbose): help="Load additional test data") def load_examples(load_test_data): """Loads a set of Slices and Dashboards and a supporting dataset """ + from superset import data print("Loading examples into {}".format(db)) data.load_css_templates() @@ -103,6 +115,9 @@ def load_examples(load_test_data): print("Loading [Random long/lat data]") data.load_long_lat_data() + print("Loading [Country Map data]") + data.load_country_map_data() + print("Loading [Multiformat time series]") data.load_multiformat_time_series_data() @@ -117,18 +132,18 @@ def load_examples(load_test_data): @manager.option( '-d', '--datasource', help=( - "Specify which datasource name to load, if omitted, all " - "datasources will be refreshed")) + "Specify which datasource name to load, if omitted, all " + "datasources will be refreshed")) @manager.option( '-m', '--merge', help=( - "Specify using 'merge' property during operation. " - "Default value is False ")) + "Specify using 'merge' property during operation. " + "Default value is False ")) def refresh_druid(datasource, merge): """Refresh druid datasources""" session = db.session() - from superset import models - for cluster in session.query(models.DruidCluster).all(): + from superset.connectors.druid.models import DruidCluster + for cluster in session.query(DruidCluster).all(): try: cluster.refresh_datasources(datasource_name=datasource, merge_flag=merge) @@ -144,6 +159,19 @@ def refresh_druid(datasource, merge): session.commit() +@manager.command +def update_datasources_cache(): + """Refresh sqllab datasources cache""" + from superset.models.core import Database + for database in db.session.query(Database).all(): + print('Fetching {} datasources ...'.format(database.name)) + try: + database.all_table_names(force=True) + database.all_view_names(force=True) + except Exception as e: + print('{}'.format(e.message)) + + @manager.option( '-w', '--workers', default=config.get("SUPERSET_CELERY_WORKERS", 32), help="Number of celery server workers to fire up") diff --git a/superset/config.py b/superset/config.py index 71036d69278b9..a350db23b258f 100644 --- a/superset/config.py +++ b/superset/config.py @@ -12,10 +12,16 @@ import imp import json import os +from collections import OrderedDict from dateutil import tz from flask_appbuilder.security.manager import AUTH_DB +from superset.stats_logger import DummyStatsLogger + +# Realtime stats logger, a StatsD implementation exists +STATS_LOGGER = DummyStatsLogger() + BASE_DIR = os.path.abspath(os.path.dirname(__file__)) DATA_DIR = os.path.join(os.path.expanduser('~'), '.superset') if not os.path.exists(DATA_DIR): @@ -53,10 +59,11 @@ QUERY_SEARCH_LIMIT = 1000 # Flask-WTF flag for CSRF -CSRF_ENABLED = True +WTF_CSRF_ENABLED = True # Whether to run the web server in debug mode or not DEBUG = False +FLASK_USE_RELOAD = True # Whether to show the stacktrace on 500 error SHOW_STACKTRACE = True @@ -76,6 +83,9 @@ # Druid query timezone # tz.tzutc() : Using utc timezone # tz.tzlocal() : Using local timezone +# tz.gettz('Asia/Shanghai') : Using the time zone with specific name +# [TimeZone List] +# See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # other tz can be overridden by providing a local_config DRUID_IS_ACTIVE = True DRUID_TZ = tz.tzutc() @@ -131,6 +141,7 @@ # The allowed translation for you app LANGUAGES = { 'en': {'flag': 'us', 'name': 'English'}, + 'it': {'flag': 'it', 'name': 'Italian'}, # 'fr': {'flag': 'fr', 'name': 'French'}, # 'zh': {'flag': 'cn', 'name': 'Chinese'}, } @@ -148,8 +159,9 @@ # Setup image size default is (300, 200, True) # IMG_SIZE = (300, 200, True) -CACHE_DEFAULT_TIMEOUT = None +CACHE_DEFAULT_TIMEOUT = 60 * 60 * 24 CACHE_CONFIG = {'CACHE_TYPE': 'null'} +TABLE_NAMES_CACHE_CONFIG = {'CACHE_TYPE': 'null'} # CORS Options ENABLE_CORS = False @@ -173,7 +185,10 @@ # -------------------------------------------------- # Modules, datasources and middleware to be registered # -------------------------------------------------- -DEFAULT_MODULE_DS_MAP = {'superset.models': ['DruidDatasource', 'SqlaTable']} +DEFAULT_MODULE_DS_MAP = OrderedDict([ + ('superset.connectors.sqla.models', ['SqlaTable']), + ('superset.connectors.druid.models', ['DruidDatasource']), +]) ADDITIONAL_MODULE_DS_MAP = {} ADDITIONAL_MIDDLEWARE = [] @@ -206,6 +221,9 @@ SQL_MAX_ROW = 1000000 DISPLAY_SQL_MAX_ROW = 1000 +# Maximum number of tables/views displayed in the dropdown window in SQL Lab. +MAX_TABLE_NAMES = 3000 + # If defined, shows this text in an alert-warning box in the navbar # one example use case may be "STAGING" to make it clear that this is # not the production version of the site. @@ -259,16 +277,6 @@ class CeleryConfig(object): CONFIG_PATH_ENV_VAR = 'SUPERSET_CONFIG_PATH' -try: - if CONFIG_PATH_ENV_VAR in os.environ: - # Explicitly import config module that is not in pythonpath; useful - # for case where app is being executed via pex. - imp.load_source('superset_config', os.environ[CONFIG_PATH_ENV_VAR]) - - from superset_config import * # noqa - print('Loaded your LOCAL configuration') -except ImportError: - pass # smtp server configuration EMAIL_NOTIFICATIONS = False # all the emails are sent using dryrun @@ -282,3 +290,29 @@ class CeleryConfig(object): if not CACHE_DEFAULT_TIMEOUT: CACHE_DEFAULT_TIMEOUT = CACHE_CONFIG.get('CACHE_DEFAULT_TIMEOUT') + +# Whether to bump the logging level to ERRROR on the flask_appbiulder package +# Set to False if/when debugging FAB related issues like +# permission management +SILENCE_FAB = True + + +# Integrate external Blueprints to the app by passing them to your +# configuration. These blueprints will get integrated in the app +BLUEPRINTS = [] + +try: + + if CONFIG_PATH_ENV_VAR in os.environ: + # Explicitly import config module that is not in pythonpath; useful + # for case where app is being executed via pex. + print('Loaded your LOCAL configuration at [{}]'.format( + os.environ[CONFIG_PATH_ENV_VAR])) + imp.load_source('superset_config', os.environ[CONFIG_PATH_ENV_VAR]) + else: + from superset_config import * # noqa + import superset_config + print('Loaded your LOCAL configuration at [{}]'.format( + superset_config.__file__)) +except ImportError: + pass diff --git a/superset/connectors/__init__.py b/superset/connectors/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/superset/connectors/base.py b/superset/connectors/base.py new file mode 100644 index 0000000000000..982b3bd75898a --- /dev/null +++ b/superset/connectors/base.py @@ -0,0 +1,229 @@ +import json + +from sqlalchemy import ( + Column, Integer, String, Text, Boolean, +) +from superset import utils +from superset.models.helpers import AuditMixinNullable, ImportMixin + + +class BaseDatasource(AuditMixinNullable, ImportMixin): + + """A common interface to objects that are queryable (tables and datasources)""" + + # --------------------------------------------------------------- + # class attributes to define when deriving BaseDatasource + # --------------------------------------------------------------- + __tablename__ = None # {connector_name}_datasource + type = None # datasoure type, str to be defined when deriving this class + baselink = None # url portion pointing to ModelView endpoint + + column_class = None # link to derivative of BaseColumn + metric_class = None # link to derivative of BaseMetric + + # Used to do code highlighting when displaying the query in the UI + query_language = None + + name = None # can be a Column or a property pointing to one + + # --------------------------------------------------------------- + + # Columns + id = Column(Integer, primary_key=True) + description = Column(Text) + default_endpoint = Column(Text) + is_featured = Column(Boolean, default=False) # TODO deprecating + filter_select_enabled = Column(Boolean, default=False) + offset = Column(Integer, default=0) + cache_timeout = Column(Integer) + params = Column(String(1000)) + perm = Column(String(1000)) + + # placeholder for a relationship to a derivative of BaseColumn + columns = [] + # placeholder for a relationship to a derivative of BaseMetric + metrics = [] + + @property + def uid(self): + """Unique id across datasource types""" + return "{self.id}__{self.type}".format(**locals()) + + @property + def column_names(self): + return sorted([c.column_name for c in self.columns]) + + @property + def main_dttm_col(self): + return "timestamp" + + @property + def groupby_column_names(self): + return sorted([c.column_name for c in self.columns if c.groupby]) + + @property + def filterable_column_names(self): + return sorted([c.column_name for c in self.columns if c.filterable]) + + @property + def dttm_cols(self): + return [] + + @property + def url(self): + return '/{}/edit/{}'.format(self.baselink, self.id) + + @property + def explore_url(self): + if self.default_endpoint: + return self.default_endpoint + else: + return "/superset/explore/{obj.type}/{obj.id}/".format(obj=self) + + @property + def column_formats(self): + return { + m.metric_name: m.d3format + for m in self.metrics + if m.d3format + } + + @property + def metrics_combo(self): + return sorted( + [ + (m.metric_name, m.verbose_name or m.metric_name) + for m in self.metrics], + key=lambda x: x[1]) + + @property + def data(self): + """Data representation of the datasource sent to the frontend""" + order_by_choices = [] + for s in sorted(self.column_names): + order_by_choices.append((json.dumps([s, True]), s + ' [asc]')) + order_by_choices.append((json.dumps([s, False]), s + ' [desc]')) + + d = { + 'all_cols': utils.choicify(self.column_names), + 'column_formats': self.column_formats, + 'edit_url': self.url, + 'filter_select': self.filter_select_enabled, + 'filterable_cols': utils.choicify(self.filterable_column_names), + 'gb_cols': utils.choicify(self.groupby_column_names), + 'id': self.id, + 'metrics_combo': self.metrics_combo, + 'name': self.name, + 'order_by_choices': order_by_choices, + 'type': self.type, + } + + return d + + def get_query_str(self, query_obj): + """Returns a query as a string + + This is used to be displayed to the user so that she/he can + understand what is taking place behind the scene""" + raise NotImplementedError() + + def query(self, query_obj): + """Executes the query and returns a dataframe + + query_obj is a dictionary representing Superset's query interface. + Should return a ``superset.models.helpers.QueryResult`` + """ + raise NotImplementedError() + + def values_for_column(self, column_name, limit=10000): + """Given a column, returns an iterable of distinct values + + This is used to populate the dropdown showing a list of + values in filters in the explore view""" + raise NotImplementedError() + + +class BaseColumn(AuditMixinNullable, ImportMixin): + """Interface for column""" + + __tablename__ = None # {connector_name}_column + + id = Column(Integer, primary_key=True) + column_name = Column(String(255)) + verbose_name = Column(String(1024)) + is_active = Column(Boolean, default=True) + type = Column(String(32)) + groupby = Column(Boolean, default=False) + count_distinct = Column(Boolean, default=False) + sum = Column(Boolean, default=False) + avg = Column(Boolean, default=False) + max = Column(Boolean, default=False) + min = Column(Boolean, default=False) + filterable = Column(Boolean, default=False) + description = Column(Text) + + # [optional] Set this to support import/export functionality + export_fields = [] + + def __repr__(self): + return self.column_name + + num_types = ( + 'DOUBLE', 'FLOAT', 'INT', 'BIGINT', + 'LONG', 'REAL', 'NUMERIC', 'DECIMAL' + ) + date_types = ('DATE', 'TIME', 'DATETIME') + str_types = ('VARCHAR', 'STRING', 'CHAR') + + @property + def is_num(self): + return ( + self.type and + any([t in self.type.upper() for t in self.num_types]) + ) + + @property + def is_time(self): + return ( + self.type and + any([t in self.type.upper() for t in self.date_types]) + ) + + @property + def is_string(self): + return ( + self.type and + any([t in self.type.upper() for t in self.str_types]) + ) + + +class BaseMetric(AuditMixinNullable, ImportMixin): + + """Interface for Metrics""" + + __tablename__ = None # {connector_name}_metric + + id = Column(Integer, primary_key=True) + metric_name = Column(String(512)) + verbose_name = Column(String(1024)) + metric_type = Column(String(32)) + description = Column(Text) + is_restricted = Column(Boolean, default=False, nullable=True) + d3format = Column(String(128)) + + """ + The interface should also declare a datasource relationship pointing + to a derivative of BaseDatasource, along with a FK + + datasource_name = Column( + String(255), + ForeignKey('datasources.datasource_name')) + datasource = relationship( + # needs to be altered to point to {Connector}Datasource + 'BaseDatasource', + backref=backref('metrics', cascade='all, delete-orphan'), + enable_typechecks=False) + """ + @property + def perm(self): + raise NotImplementedError() diff --git a/superset/source_registry.py b/superset/connectors/connector_registry.py similarity index 67% rename from superset/source_registry.py rename to superset/connectors/connector_registry.py index ff64265d4788c..9c58f48076467 100644 --- a/superset/source_registry.py +++ b/superset/connectors/connector_registry.py @@ -1,7 +1,7 @@ from sqlalchemy.orm import subqueryload -class SourceRegistry(object): +class ConnectorRegistry(object): """ Central Registry for all available datasource engines""" sources = {} @@ -26,15 +26,15 @@ def get_datasource(cls, datasource_type, datasource_id, session): @classmethod def get_all_datasources(cls, session): datasources = [] - for source_type in SourceRegistry.sources: + for source_type in ConnectorRegistry.sources: datasources.extend( - session.query(SourceRegistry.sources[source_type]).all()) + session.query(ConnectorRegistry.sources[source_type]).all()) return datasources @classmethod def get_datasource_by_name(cls, session, datasource_type, datasource_name, schema, database_name): - datasource_class = SourceRegistry.sources[datasource_type] + datasource_class = ConnectorRegistry.sources[datasource_type] datasources = session.query(datasource_class).all() # Filter datasoures that don't have database. @@ -44,30 +44,19 @@ def get_datasource_by_name(cls, session, datasource_type, datasource_name, return db_ds[0] @classmethod - def query_datasources_by_name( - cls, session, database, datasource_name, schema=None): - datasource_class = SourceRegistry.sources[database.type] - if database.type == 'table': - query = ( - session.query(datasource_class) - .filter_by(database_id=database.id) - .filter_by(table_name=datasource_name)) - if schema: - query = query.filter_by(schema=schema) - return query.all() - if database.type == 'druid': - return ( - session.query(datasource_class) - .filter_by(cluster_name=database.id) - .filter_by(datasource_name=datasource_name) - .all() - ) - return None + def query_datasources_by_permissions(cls, session, database, permissions): + datasource_class = ConnectorRegistry.sources[database.type] + return ( + session.query(datasource_class) + .filter_by(database_id=database.id) + .filter(datasource_class.perm.in_(permissions)) + .all() + ) @classmethod def get_eager_datasource(cls, session, datasource_type, datasource_id): """Returns datasource with columns and metrics.""" - datasource_class = SourceRegistry.sources[datasource_type] + datasource_class = ConnectorRegistry.sources[datasource_type] return ( session.query(datasource_class) .options( @@ -77,3 +66,10 @@ def get_eager_datasource(cls, session, datasource_type, datasource_id): .filter_by(id=datasource_id) .one() ) + + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + datasource_class = ConnectorRegistry.sources[database.type] + return datasource_class.query_datasources_by_name( + session, database, datasource_name, schema=None) diff --git a/superset/connectors/druid/__init__.py b/superset/connectors/druid/__init__.py new file mode 100644 index 0000000000000..b2df79851f224 --- /dev/null +++ b/superset/connectors/druid/__init__.py @@ -0,0 +1,2 @@ +from . import models # noqa +from . import views # noqa diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py new file mode 100644 index 0000000000000..9add7b13d459a --- /dev/null +++ b/superset/connectors/druid/models.py @@ -0,0 +1,1081 @@ +# pylint: disable=invalid-unary-operand-type +from collections import OrderedDict +import json +import logging +from copy import deepcopy +from datetime import datetime, timedelta +from six import string_types + +import requests +import sqlalchemy as sa +from sqlalchemy import ( + Column, Integer, String, ForeignKey, Text, Boolean, + DateTime, +) +from sqlalchemy.orm import backref, relationship +from dateutil.parser import parse as dparse + +from pydruid.client import PyDruid +from pydruid.utils.aggregators import count +from pydruid.utils.filters import Dimension, Filter +from pydruid.utils.postaggregator import ( + Postaggregator, Quantile, Quantiles, Field, Const, HyperUniqueCardinality, +) +from pydruid.utils.having import Aggregation + +from flask import Markup, escape +from flask_appbuilder.models.decorators import renders +from flask_appbuilder import Model + +from flask_babel import lazy_gettext as _ + +from superset import conf, db, import_util, utils, sm, get_session +from superset.utils import ( + flasher, MetricPermException, DimSelector, DTTM_ALIAS +) +from superset.connectors.base import BaseDatasource, BaseColumn, BaseMetric +from superset.models.helpers import AuditMixinNullable, QueryResult, set_perm + +DRUID_TZ = conf.get("DRUID_TZ") + + +class JavascriptPostAggregator(Postaggregator): + def __init__(self, name, field_names, function): + self.post_aggregator = { + 'type': 'javascript', + 'fieldNames': field_names, + 'name': name, + 'function': function, + } + self.name = name + + +class DruidCluster(Model, AuditMixinNullable): + + """ORM object referencing the Druid clusters""" + + __tablename__ = 'clusters' + type = "druid" + + id = Column(Integer, primary_key=True) + verbose_name = Column(String(250), unique=True) + # short unique name, used in permissions + cluster_name = Column(String(250), unique=True) + coordinator_host = Column(String(255)) + coordinator_port = Column(Integer) + coordinator_endpoint = Column( + String(255), default='druid/coordinator/v1/metadata') + broker_host = Column(String(255)) + broker_port = Column(Integer) + broker_endpoint = Column(String(255), default='druid/v2') + metadata_last_refreshed = Column(DateTime) + cache_timeout = Column(Integer) + + def __repr__(self): + return self.verbose_name if self.verbose_name else self.cluster_name + + def get_pydruid_client(self): + cli = PyDruid( + "http://{0}:{1}/".format(self.broker_host, self.broker_port), + self.broker_endpoint) + return cli + + def get_datasources(self): + endpoint = ( + "http://{obj.coordinator_host}:{obj.coordinator_port}/" + "{obj.coordinator_endpoint}/datasources" + ).format(obj=self) + + return json.loads(requests.get(endpoint).text) + + def get_druid_version(self): + endpoint = ( + "http://{obj.coordinator_host}:{obj.coordinator_port}/status" + ).format(obj=self) + return json.loads(requests.get(endpoint).text)['version'] + + def refresh_datasources(self, datasource_name=None, merge_flag=False): + """Refresh metadata of all datasources in the cluster + If ``datasource_name`` is specified, only that datasource is updated + """ + self.druid_version = self.get_druid_version() + for datasource in self.get_datasources(): + if datasource not in conf.get('DRUID_DATA_SOURCE_BLACKLIST', []): + if not datasource_name or datasource_name == datasource: + DruidDatasource.sync_to_db(datasource, self, merge_flag) + + @property + def perm(self): + return "[{obj.cluster_name}].(id:{obj.id})".format(obj=self) + + def get_perm(self): + return self.perm + + @property + def name(self): + return self.verbose_name if self.verbose_name else self.cluster_name + + @property + def unique_name(self): + return self.verbose_name if self.verbose_name else self.cluster_name + + +class DruidColumn(Model, BaseColumn): + """ORM model for storing Druid datasource column metadata""" + + __tablename__ = 'columns' + + datasource_name = Column( + String(255), + ForeignKey('datasources.datasource_name')) + # Setting enable_typechecks=False disables polymorphic inheritance. + datasource = relationship( + 'DruidDatasource', + backref=backref('columns', cascade='all, delete-orphan'), + enable_typechecks=False) + dimension_spec_json = Column(Text) + + export_fields = ( + 'datasource_name', 'column_name', 'is_active', 'type', 'groupby', + 'count_distinct', 'sum', 'avg', 'max', 'min', 'filterable', + 'description', 'dimension_spec_json' + ) + + def __repr__(self): + return self.column_name + + @property + def dimension_spec(self): + if self.dimension_spec_json: + return json.loads(self.dimension_spec_json) + + def generate_metrics(self): + """Generate metrics based on the column metadata""" + M = DruidMetric # noqa + metrics = [] + metrics.append(DruidMetric( + metric_name='count', + verbose_name='COUNT(*)', + metric_type='count', + json=json.dumps({'type': 'count', 'name': 'count'}) + )) + # Somehow we need to reassign this for UDAFs + if self.type in ('DOUBLE', 'FLOAT'): + corrected_type = 'DOUBLE' + else: + corrected_type = self.type + + if self.sum and self.is_num: + mt = corrected_type.lower() + 'Sum' + name = 'sum__' + self.column_name + metrics.append(DruidMetric( + metric_name=name, + metric_type='sum', + verbose_name='SUM({})'.format(self.column_name), + json=json.dumps({ + 'type': mt, 'name': name, 'fieldName': self.column_name}) + )) + + if self.avg and self.is_num: + mt = corrected_type.lower() + 'Avg' + name = 'avg__' + self.column_name + metrics.append(DruidMetric( + metric_name=name, + metric_type='avg', + verbose_name='AVG({})'.format(self.column_name), + json=json.dumps({ + 'type': mt, 'name': name, 'fieldName': self.column_name}) + )) + + if self.min and self.is_num: + mt = corrected_type.lower() + 'Min' + name = 'min__' + self.column_name + metrics.append(DruidMetric( + metric_name=name, + metric_type='min', + verbose_name='MIN({})'.format(self.column_name), + json=json.dumps({ + 'type': mt, 'name': name, 'fieldName': self.column_name}) + )) + if self.max and self.is_num: + mt = corrected_type.lower() + 'Max' + name = 'max__' + self.column_name + metrics.append(DruidMetric( + metric_name=name, + metric_type='max', + verbose_name='MAX({})'.format(self.column_name), + json=json.dumps({ + 'type': mt, 'name': name, 'fieldName': self.column_name}) + )) + if self.count_distinct: + name = 'count_distinct__' + self.column_name + if self.type == 'hyperUnique' or self.type == 'thetaSketch': + metrics.append(DruidMetric( + metric_name=name, + verbose_name='COUNT(DISTINCT {})'.format(self.column_name), + metric_type=self.type, + json=json.dumps({ + 'type': self.type, + 'name': name, + 'fieldName': self.column_name + }) + )) + else: + mt = 'count_distinct' + metrics.append(DruidMetric( + metric_name=name, + verbose_name='COUNT(DISTINCT {})'.format(self.column_name), + metric_type='count_distinct', + json=json.dumps({ + 'type': 'cardinality', + 'name': name, + 'fieldNames': [self.column_name]}) + )) + session = get_session() + new_metrics = [] + for metric in metrics: + m = ( + session.query(M) + .filter(M.metric_name == metric.metric_name) + .filter(M.datasource_name == self.datasource_name) + .filter(DruidCluster.cluster_name == self.datasource.cluster_name) + .first() + ) + metric.datasource_name = self.datasource_name + if not m: + new_metrics.append(metric) + session.add(metric) + session.flush() + + @classmethod + def import_obj(cls, i_column): + def lookup_obj(lookup_column): + return db.session.query(DruidColumn).filter( + DruidColumn.datasource_name == lookup_column.datasource_name, + DruidColumn.column_name == lookup_column.column_name).first() + + return import_util.import_simple_obj(db.session, i_column, lookup_obj) + + +class DruidMetric(Model, BaseMetric): + + """ORM object referencing Druid metrics for a datasource""" + + __tablename__ = 'metrics' + datasource_name = Column( + String(255), + ForeignKey('datasources.datasource_name')) + # Setting enable_typechecks=False disables polymorphic inheritance. + datasource = relationship( + 'DruidDatasource', + backref=backref('metrics', cascade='all, delete-orphan'), + enable_typechecks=False) + json = Column(Text) + + export_fields = ( + 'metric_name', 'verbose_name', 'metric_type', 'datasource_name', + 'json', 'description', 'is_restricted', 'd3format' + ) + + @property + def json_obj(self): + try: + obj = json.loads(self.json) + except Exception: + obj = {} + return obj + + @property + def perm(self): + return ( + "{parent_name}.[{obj.metric_name}](id:{obj.id})" + ).format(obj=self, + parent_name=self.datasource.full_name + ) if self.datasource else None + + @classmethod + def import_obj(cls, i_metric): + def lookup_obj(lookup_metric): + return db.session.query(DruidMetric).filter( + DruidMetric.datasource_name == lookup_metric.datasource_name, + DruidMetric.metric_name == lookup_metric.metric_name).first() + return import_util.import_simple_obj(db.session, i_metric, lookup_obj) + + +class DruidDatasource(Model, BaseDatasource): + + """ORM object referencing Druid datasources (tables)""" + + __tablename__ = 'datasources' + + type = "druid" + query_langtage = "json" + cluster_class = DruidCluster + metric_class = DruidMetric + column_class = DruidColumn + + baselink = "druiddatasourcemodelview" + + # Columns + datasource_name = Column(String(255), unique=True) + is_hidden = Column(Boolean, default=False) + fetch_values_from = Column(String(100)) + cluster_name = Column( + String(250), ForeignKey('clusters.cluster_name')) + cluster = relationship( + 'DruidCluster', backref='datasources', foreign_keys=[cluster_name]) + user_id = Column(Integer, ForeignKey('ab_user.id')) + owner = relationship( + sm.user_model, + backref=backref('datasources', cascade='all, delete-orphan'), + foreign_keys=[user_id]) + + export_fields = ( + 'datasource_name', 'is_hidden', 'description', 'default_endpoint', + 'cluster_name', 'offset', 'cache_timeout', 'params' + ) + slices = relationship( + 'Slice', + primaryjoin=( + "DruidDatasource.id == foreign(Slice.datasource_id) and " + "Slice.datasource_type == 'druid'")) + + @property + def database(self): + return self.cluster + + @property + def num_cols(self): + return [c.column_name for c in self.columns if c.is_num] + + @property + def name(self): + return self.datasource_name + + @property + def schema(self): + ds_name = self.datasource_name or '' + name_pieces = ds_name.split('.') + if len(name_pieces) > 1: + return name_pieces[0] + else: + return None + + @property + def schema_perm(self): + """Returns schema permission if present, cluster one otherwise.""" + return utils.get_schema_perm(self.cluster, self.schema) + + def get_perm(self): + return ( + "[{obj.cluster_name}].[{obj.datasource_name}]" + "(id:{obj.id})").format(obj=self) + + @property + def link(self): + name = escape(self.datasource_name) + return Markup('{name}').format(**locals()) + + @property + def full_name(self): + return utils.get_datasource_full_name( + self.cluster_name, self.datasource_name) + + @property + def time_column_grains(self): + return { + "time_columns": [ + 'all', '5 seconds', '30 seconds', '1 minute', + '5 minutes', '1 hour', '6 hour', '1 day', '7 days', + 'week', 'week_starting_sunday', 'week_ending_saturday', + 'month', + ], + "time_grains": ['now'] + } + + def __repr__(self): + return self.datasource_name + + @renders('datasource_name') + def datasource_link(self): + url = "/superset/explore/{obj.type}/{obj.id}/".format(obj=self) + name = escape(self.datasource_name) + return Markup('{name}'.format(**locals())) + + def get_metric_obj(self, metric_name): + return [ + m.json_obj for m in self.metrics + if m.metric_name == metric_name + ][0] + + @classmethod + def import_obj(cls, i_datasource, import_time=None): + """Imports the datasource from the object to the database. + + Metrics and columns and datasource will be overridden if exists. + This function can be used to import/export dashboards between multiple + superset instances. Audit metadata isn't copies over. + """ + def lookup_datasource(d): + return db.session.query(DruidDatasource).join(DruidCluster).filter( + DruidDatasource.datasource_name == d.datasource_name, + DruidCluster.cluster_name == d.cluster_name, + ).first() + + def lookup_cluster(d): + return db.session.query(DruidCluster).filter_by( + cluster_name=d.cluster_name).one() + return import_util.import_datasource( + db.session, i_datasource, lookup_cluster, lookup_datasource, + import_time) + + @staticmethod + def version_higher(v1, v2): + """is v1 higher than v2 + + >>> DruidDatasource.version_higher('0.8.2', '0.9.1') + False + >>> DruidDatasource.version_higher('0.8.2', '0.6.1') + True + >>> DruidDatasource.version_higher('0.8.2', '0.8.2') + False + >>> DruidDatasource.version_higher('0.8.2', '0.9.BETA') + False + >>> DruidDatasource.version_higher('0.8.2', '0.9') + False + """ + def int_or_0(v): + try: + v = int(v) + except (TypeError, ValueError): + v = 0 + return v + v1nums = [int_or_0(n) for n in v1.split('.')] + v2nums = [int_or_0(n) for n in v2.split('.')] + v1nums = (v1nums + [0, 0, 0])[:3] + v2nums = (v2nums + [0, 0, 0])[:3] + return v1nums[0] > v2nums[0] or \ + (v1nums[0] == v2nums[0] and v1nums[1] > v2nums[1]) or \ + (v1nums[0] == v2nums[0] and v1nums[1] == v2nums[1] and v1nums[2] > v2nums[2]) + + def latest_metadata(self): + """Returns segment metadata from the latest segment""" + client = self.cluster.get_pydruid_client() + results = client.time_boundary(datasource=self.datasource_name) + if not results: + return + max_time = results[0]['result']['maxTime'] + max_time = dparse(max_time) + # Query segmentMetadata for 7 days back. However, due to a bug, + # we need to set this interval to more than 1 day ago to exclude + # realtime segments, which triggered a bug (fixed in druid 0.8.2). + # https://groups.google.com/forum/#!topic/druid-user/gVCqqspHqOQ + lbound = (max_time - timedelta(days=7)).isoformat() + rbound = max_time.isoformat() + if not self.version_higher(self.cluster.druid_version, '0.8.2'): + rbound = (max_time - timedelta(1)).isoformat() + segment_metadata = None + try: + segment_metadata = client.segment_metadata( + datasource=self.datasource_name, + intervals=lbound + '/' + rbound, + merge=self.merge_flag, + analysisTypes=conf.get('DRUID_ANALYSIS_TYPES')) + except Exception as e: + logging.warning("Failed first attempt to get latest segment") + logging.exception(e) + if not segment_metadata: + # if no segments in the past 7 days, look at all segments + lbound = datetime(1901, 1, 1).isoformat()[:10] + rbound = datetime(2050, 1, 1).isoformat()[:10] + if not self.version_higher(self.cluster.druid_version, '0.8.2'): + rbound = datetime.now().isoformat()[:10] + try: + segment_metadata = client.segment_metadata( + datasource=self.datasource_name, + intervals=lbound + '/' + rbound, + merge=self.merge_flag, + analysisTypes=conf.get('DRUID_ANALYSIS_TYPES')) + except Exception as e: + logging.warning("Failed 2nd attempt to get latest segment") + logging.exception(e) + if segment_metadata: + return segment_metadata[-1]['columns'] + + def generate_metrics(self): + for col in self.columns: + col.generate_metrics() + + @classmethod + def sync_to_db_from_config(cls, druid_config, user, cluster): + """Merges the ds config from druid_config into one stored in the db.""" + session = db.session() + datasource = ( + session.query(cls) + .filter_by( + datasource_name=druid_config['name']) + .first() + ) + # Create a new datasource. + if not datasource: + datasource = cls( + datasource_name=druid_config['name'], + cluster=cluster, + owner=user, + changed_by_fk=user.id, + created_by_fk=user.id, + ) + session.add(datasource) + + dimensions = druid_config['dimensions'] + for dim in dimensions: + col_obj = ( + session.query(DruidColumn) + .filter_by( + datasource_name=druid_config['name'], + column_name=dim) + .first() + ) + if not col_obj: + col_obj = DruidColumn( + datasource_name=druid_config['name'], + column_name=dim, + groupby=True, + filterable=True, + # TODO: fetch type from Hive. + type="STRING", + datasource=datasource, + ) + session.add(col_obj) + # Import Druid metrics + for metric_spec in druid_config["metrics_spec"]: + metric_name = metric_spec["name"] + metric_type = metric_spec["type"] + metric_json = json.dumps(metric_spec) + + if metric_type == "count": + metric_type = "longSum" + metric_json = json.dumps({ + "type": "longSum", + "name": metric_name, + "fieldName": metric_name, + }) + + metric_obj = ( + session.query(DruidMetric) + .filter_by( + datasource_name=druid_config['name'], + metric_name=metric_name) + ).first() + if not metric_obj: + metric_obj = DruidMetric( + metric_name=metric_name, + metric_type=metric_type, + verbose_name="%s(%s)" % (metric_type, metric_name), + datasource=datasource, + json=metric_json, + description=( + "Imported from the airolap config dir for %s" % + druid_config['name']), + ) + session.add(metric_obj) + session.commit() + + @classmethod + def sync_to_db(cls, name, cluster, merge): + """Fetches metadata for that datasource and merges the Superset db""" + logging.info("Syncing Druid datasource [{}]".format(name)) + session = get_session() + datasource = session.query(cls).filter_by(datasource_name=name).first() + if not datasource: + datasource = cls(datasource_name=name) + session.add(datasource) + flasher("Adding new datasource [{}]".format(name), "success") + else: + flasher("Refreshing datasource [{}]".format(name), "info") + session.flush() + datasource.cluster = cluster + datasource.merge_flag = merge + session.flush() + + cols = datasource.latest_metadata() + if not cols: + logging.error("Failed at fetching the latest segment") + return + for col in cols: + # Skip the time column + if col == "__time": + continue + col_obj = ( + session + .query(DruidColumn) + .filter_by(datasource_name=name, column_name=col) + .first() + ) + datatype = cols[col]['type'] + if not col_obj: + col_obj = DruidColumn(datasource_name=name, column_name=col) + session.add(col_obj) + if datatype == "STRING": + col_obj.groupby = True + col_obj.filterable = True + if datatype == "hyperUnique" or datatype == "thetaSketch": + col_obj.count_distinct = True + # If long or double, allow sum/min/max + if datatype == "LONG" or datatype == "DOUBLE": + col_obj.sum = True + col_obj.min = True + col_obj.max = True + if col_obj: + col_obj.type = cols[col]['type'] + session.flush() + col_obj.datasource = datasource + col_obj.generate_metrics() + session.flush() + + @staticmethod + def time_offset(granularity): + if granularity == 'week_ending_saturday': + return 6 * 24 * 3600 * 1000 # 6 days + return 0 + + # uses https://en.wikipedia.org/wiki/ISO_8601 + # http://druid.io/docs/0.8.0/querying/granularities.html + # TODO: pass origin from the UI + @staticmethod + def granularity(period_name, timezone=None, origin=None): + if not period_name or period_name == 'all': + return 'all' + iso_8601_dict = { + '5 seconds': 'PT5S', + '30 seconds': 'PT30S', + '1 minute': 'PT1M', + '5 minutes': 'PT5M', + '1 hour': 'PT1H', + '6 hour': 'PT6H', + 'one day': 'P1D', + '1 day': 'P1D', + '7 days': 'P7D', + 'week': 'P1W', + 'week_starting_sunday': 'P1W', + 'week_ending_saturday': 'P1W', + 'month': 'P1M', + } + + granularity = {'type': 'period'} + if timezone: + granularity['timeZone'] = timezone + + if origin: + dttm = utils.parse_human_datetime(origin) + granularity['origin'] = dttm.isoformat() + + if period_name in iso_8601_dict: + granularity['period'] = iso_8601_dict[period_name] + if period_name in ('week_ending_saturday', 'week_starting_sunday'): + # use Sunday as start of the week + granularity['origin'] = '2016-01-03T00:00:00' + elif not isinstance(period_name, string_types): + granularity['type'] = 'duration' + granularity['duration'] = period_name + elif period_name.startswith('P'): + # identify if the string is the iso_8601 period + granularity['period'] = period_name + else: + granularity['type'] = 'duration' + granularity['duration'] = utils.parse_human_timedelta( + period_name).total_seconds() * 1000 + return granularity + + def values_for_column(self, + column_name, + limit=10000): + """Retrieve some values for the given column""" + # TODO: Use Lexicographic TopNMetricSpec once supported by PyDruid + if self.fetch_values_from: + from_dttm = utils.parse_human_datetime(self.fetch_values_from) + else: + from_dttm = datetime(1970, 1, 1) + + qry = dict( + datasource=self.datasource_name, + granularity="all", + intervals=from_dttm.isoformat() + '/' + datetime.now().isoformat(), + aggregations=dict(count=count("count")), + dimension=column_name, + metric="count", + threshold=limit, + ) + + client = self.cluster.get_pydruid_client() + client.topn(**qry) + df = client.export_pandas() + return [row[column_name] for row in df.to_records(index=False)] + + def get_query_str(self, query_obj, phase=1, client=None): + return self.run_query(client=client, phase=phase, **query_obj) + + def run_query( # noqa / druid + self, + groupby, metrics, + granularity, + from_dttm, to_dttm, + filter=None, # noqa + is_timeseries=True, + timeseries_limit=None, + timeseries_limit_metric=None, + row_limit=None, + inner_from_dttm=None, inner_to_dttm=None, + orderby=None, + extras=None, # noqa + select=None, # noqa + columns=None, phase=2, client=None, form_data=None): + """Runs a query against Druid and returns a dataframe. + """ + # TODO refactor into using a TBD Query object + client = client or self.cluster.get_pydruid_client() + if not is_timeseries: + granularity = 'all' + inner_from_dttm = inner_from_dttm or from_dttm + inner_to_dttm = inner_to_dttm or to_dttm + + # add tzinfo to native datetime with config + from_dttm = from_dttm.replace(tzinfo=DRUID_TZ) + to_dttm = to_dttm.replace(tzinfo=DRUID_TZ) + timezone = from_dttm.tzname() + + query_str = "" + metrics_dict = {m.metric_name: m for m in self.metrics} + all_metrics = [] + post_aggs = {} + + columns_dict = {c.column_name: c for c in self.columns} + + def recursive_get_fields(_conf): + _fields = _conf.get('fields', []) + field_names = [] + for _f in _fields: + _type = _f.get('type') + if _type in ['fieldAccess', 'hyperUniqueCardinality']: + field_names.append(_f.get('fieldName')) + elif _type == 'arithmetic': + field_names += recursive_get_fields(_f) + return list(set(field_names)) + + for metric_name in metrics: + metric = metrics_dict[metric_name] + if metric.metric_type != 'postagg': + all_metrics.append(metric_name) + else: + mconf = metric.json_obj + all_metrics += recursive_get_fields(mconf) + all_metrics += mconf.get('fieldNames', []) + if mconf.get('type') == 'javascript': + post_aggs[metric_name] = JavascriptPostAggregator( + name=mconf.get('name', ''), + field_names=mconf.get('fieldNames', []), + function=mconf.get('function', '')) + elif mconf.get('type') == 'quantile': + post_aggs[metric_name] = Quantile( + mconf.get('name', ''), + mconf.get('probability', ''), + ) + elif mconf.get('type') == 'quantiles': + post_aggs[metric_name] = Quantiles( + mconf.get('name', ''), + mconf.get('probabilities', ''), + ) + elif mconf.get('type') == 'fieldAccess': + post_aggs[metric_name] = Field(mconf.get('name')) + elif mconf.get('type') == 'constant': + post_aggs[metric_name] = Const( + mconf.get('value'), + output_name=mconf.get('name', '') + ) + elif mconf.get('type') == 'hyperUniqueCardinality': + post_aggs[metric_name] = HyperUniqueCardinality( + mconf.get('name') + ) + else: + post_aggs[metric_name] = Postaggregator( + mconf.get('fn', "/"), + mconf.get('fields', []), + mconf.get('name', '')) + + aggregations = OrderedDict() + for m in self.metrics: + if m.metric_name in all_metrics: + aggregations[m.metric_name] = m.json_obj + + rejected_metrics = [ + m.metric_name for m in self.metrics + if m.is_restricted and + m.metric_name in aggregations.keys() and + not sm.has_access('metric_access', m.perm) + ] + + if rejected_metrics: + raise MetricPermException( + "Access to the metrics denied: " + ', '.join(rejected_metrics) + ) + + # the dimensions list with dimensionSpecs expanded + dimensions = [] + groupby = [gb for gb in groupby if gb in columns_dict] + for column_name in groupby: + col = columns_dict.get(column_name) + dim_spec = col.dimension_spec + if dim_spec: + dimensions.append(dim_spec) + else: + dimensions.append(column_name) + qry = dict( + datasource=self.datasource_name, + dimensions=dimensions, + aggregations=aggregations, + granularity=DruidDatasource.granularity( + granularity, + timezone=timezone, + origin=extras.get('druid_time_origin'), + ), + post_aggregations=post_aggs, + intervals=from_dttm.isoformat() + '/' + to_dttm.isoformat(), + ) + + filters = self.get_filters(filter) + if filters: + qry['filter'] = filters + + having_filters = self.get_having_filters(extras.get('having_druid')) + if having_filters: + qry['having'] = having_filters + + orig_filters = filters + if len(groupby) == 0 and not having_filters: + del qry['dimensions'] + client.timeseries(**qry) + if not having_filters and len(groupby) == 1: + qry['threshold'] = timeseries_limit or 1000 + if row_limit and granularity == 'all': + qry['threshold'] = row_limit + qry['dimension'] = list(qry.get('dimensions'))[0] + del qry['dimensions'] + qry['metric'] = list(qry['aggregations'].keys())[0] + client.topn(**qry) + elif len(groupby) > 1 or having_filters: + # If grouping on multiple fields or using a having filter + # we have to force a groupby query + if timeseries_limit and is_timeseries: + order_by = metrics[0] if metrics else self.metrics[0] + if timeseries_limit_metric: + order_by = timeseries_limit_metric + # Limit on the number of timeseries, doing a two-phases query + pre_qry = deepcopy(qry) + pre_qry['granularity'] = "all" + pre_qry['limit_spec'] = { + "type": "default", + "limit": timeseries_limit, + 'intervals': ( + inner_from_dttm.isoformat() + '/' + + inner_to_dttm.isoformat()), + "columns": [{ + "dimension": order_by, + "direction": "descending", + }], + } + client.groupby(**pre_qry) + query_str += "// Two phase query\n// Phase 1\n" + query_str += json.dumps( + client.query_builder.last_query.query_dict, indent=2) + query_str += "\n" + if phase == 1: + return query_str + query_str += ( + "//\nPhase 2 (built based on phase one's results)\n") + df = client.export_pandas() + if df is not None and not df.empty: + dims = qry['dimensions'] + filters = [] + for unused, row in df.iterrows(): + fields = [] + for dim in dims: + f = Dimension(dim) == row[dim] + fields.append(f) + if len(fields) > 1: + filt = Filter(type="and", fields=fields) + filters.append(filt) + elif fields: + filters.append(fields[0]) + + if filters: + ff = Filter(type="or", fields=filters) + if not orig_filters: + qry['filter'] = ff + else: + qry['filter'] = Filter(type="and", fields=[ + ff, + orig_filters]) + qry['limit_spec'] = None + if row_limit: + qry['limit_spec'] = { + "type": "default", + "limit": row_limit, + "columns": [{ + "dimension": ( + metrics[0] if metrics else self.metrics[0]), + "direction": "descending", + }], + } + client.groupby(**qry) + query_str += json.dumps( + client.query_builder.last_query.query_dict, indent=2) + return query_str + + def query(self, query_obj): + qry_start_dttm = datetime.now() + client = self.cluster.get_pydruid_client() + query_str = self.get_query_str( + client=client, query_obj=query_obj, phase=2) + df = client.export_pandas() + + if df is None or df.size == 0: + raise Exception(_("No data was returned.")) + df.columns = [ + DTTM_ALIAS if c == 'timestamp' else c for c in df.columns] + + is_timeseries = query_obj['is_timeseries'] \ + if 'is_timeseries' in query_obj else True + if ( + not is_timeseries and + DTTM_ALIAS in df.columns): + del df[DTTM_ALIAS] + + # Reordering columns + cols = [] + if DTTM_ALIAS in df.columns: + cols += [DTTM_ALIAS] + cols += [col for col in query_obj['groupby'] if col in df.columns] + cols += [col for col in query_obj['metrics'] if col in df.columns] + df = df[cols] + + time_offset = DruidDatasource.time_offset(query_obj['granularity']) + + def increment_timestamp(ts): + dt = utils.parse_human_datetime(ts).replace( + tzinfo=DRUID_TZ) + return dt + timedelta(milliseconds=time_offset) + if DTTM_ALIAS in df.columns and time_offset: + df[DTTM_ALIAS] = df[DTTM_ALIAS].apply(increment_timestamp) + + return QueryResult( + df=df, + query=query_str, + duration=datetime.now() - qry_start_dttm) + + def get_filters(self, raw_filters): # noqa + filters = None + for flt in raw_filters: + if not all(f in flt for f in ['col', 'op', 'val']): + continue + col = flt['col'] + op = flt['op'] + eq = flt['val'] + cond = None + if op in ('in', 'not in'): + eq = [ + types.replace("'", '').strip() + if isinstance(types, string_types) + else types + for types in eq] + elif not isinstance(flt['val'], string_types): + eq = eq[0] if len(eq) > 0 else '' + if col in self.num_cols: + if op in ('in', 'not in'): + eq = [utils.string_to_num(v) for v in eq] + else: + eq = utils.string_to_num(eq) + if op == '==': + cond = Dimension(col) == eq + elif op == '!=': + cond = ~(Dimension(col) == eq) + elif op in ('in', 'not in'): + fields = [] + if len(eq) > 1: + for s in eq: + fields.append(Dimension(col) == s) + cond = Filter(type="or", fields=fields) + elif len(eq) == 1: + cond = Dimension(col) == eq[0] + if op == 'not in': + cond = ~cond + elif op == 'regex': + cond = Filter(type="regex", pattern=eq, dimension=col) + elif op == '>=': + cond = Dimension(col) >= eq + elif op == '<=': + cond = Dimension(col) <= eq + elif op == '>': + cond = Dimension(col) > eq + elif op == '<': + cond = Dimension(col) < eq + if filters: + filters = Filter(type="and", fields=[ + cond, + filters + ]) + else: + filters = cond + return filters + + def _get_having_obj(self, col, op, eq): + cond = None + if op == '==': + if col in self.column_names: + cond = DimSelector(dimension=col, value=eq) + else: + cond = Aggregation(col) == eq + elif op == '>': + cond = Aggregation(col) > eq + elif op == '<': + cond = Aggregation(col) < eq + + return cond + + def get_having_filters(self, raw_filters): + filters = None + reversed_op_map = { + '!=': '==', + '>=': '<', + '<=': '>' + } + + for flt in raw_filters: + if not all(f in flt for f in ['col', 'op', 'val']): + continue + col = flt['col'] + op = flt['op'] + eq = flt['val'] + cond = None + if op in ['==', '>', '<']: + cond = self._get_having_obj(col, op, eq) + elif op in reversed_op_map: + cond = ~self._get_having_obj(col, reversed_op_map[op], eq) + + if filters: + filters = filters & cond + else: + filters = cond + return filters + + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + return ( + session.query(cls) + .filter_by(cluster_name=database.id) + .filter_by(datasource_name=datasource_name) + .all() + ) + +sa.event.listen(DruidDatasource, 'after_insert', set_perm) +sa.event.listen(DruidDatasource, 'after_update', set_perm) diff --git a/superset/connectors/druid/views.py b/superset/connectors/druid/views.py new file mode 100644 index 0000000000000..e12321755b24b --- /dev/null +++ b/superset/connectors/druid/views.py @@ -0,0 +1,288 @@ +from datetime import datetime +import logging + +import sqlalchemy as sqla + +from flask import Markup, flash, redirect, abort +from flask_appbuilder import CompactCRUDMixin, expose +from flask_appbuilder.models.sqla.interface import SQLAInterface + +from flask_babel import lazy_gettext as _ +from flask_babel import gettext as __ + +import superset +from superset import db, utils, appbuilder, sm, security +from superset.connectors.connector_registry import ConnectorRegistry +from superset.utils import has_access +from superset.views.base import BaseSupersetView +from superset.views.base import ( + SupersetModelView, validate_json, DeleteMixin, ListWidgetWithCheckboxes, + DatasourceFilter, get_datasource_exist_error_mgs) + +from . import models + + +class DruidColumnInlineView(CompactCRUDMixin, SupersetModelView): # noqa + datamodel = SQLAInterface(models.DruidColumn) + edit_columns = [ + 'column_name', 'description', 'dimension_spec_json', 'datasource', + 'groupby', 'filterable', 'count_distinct', 'sum', 'min', 'max'] + add_columns = edit_columns + list_columns = [ + 'column_name', 'type', 'groupby', 'filterable', 'count_distinct', + 'sum', 'min', 'max'] + can_delete = False + page_size = 500 + label_columns = { + 'column_name': _("Column"), + 'type': _("Type"), + 'datasource': _("Datasource"), + 'groupby': _("Groupable"), + 'filterable': _("Filterable"), + 'count_distinct': _("Count Distinct"), + 'sum': _("Sum"), + 'min': _("Min"), + 'max': _("Max"), + } + description_columns = { + 'filterable': _( + "Whether this column is exposed in the `Filters` section " + "of the explore view."), + 'dimension_spec_json': utils.markdown( + "this field can be used to specify " + "a `dimensionSpec` as documented [here]" + "(http://druid.io/docs/latest/querying/dimensionspecs.html). " + "Make sure to input valid JSON and that the " + "`outputName` matches the `column_name` defined " + "above.", + True), + } + + def post_update(self, col): + col.generate_metrics() + utils.validate_json(col.dimension_spec_json) + + def post_add(self, col): + self.post_update(col) + +appbuilder.add_view_no_menu(DruidColumnInlineView) + + +class DruidMetricInlineView(CompactCRUDMixin, SupersetModelView): # noqa + datamodel = SQLAInterface(models.DruidMetric) + list_columns = ['metric_name', 'verbose_name', 'metric_type'] + edit_columns = [ + 'metric_name', 'description', 'verbose_name', 'metric_type', 'json', + 'datasource', 'd3format', 'is_restricted'] + add_columns = edit_columns + page_size = 500 + validators_columns = { + 'json': [validate_json], + } + description_columns = { + 'metric_type': utils.markdown( + "use `postagg` as the metric type if you are defining a " + "[Druid Post Aggregation]" + "(http://druid.io/docs/latest/querying/post-aggregations.html)", + True), + 'is_restricted': _("Whether the access to this metric is restricted " + "to certain roles. Only roles with the permission " + "'metric access on XXX (the name of this metric)' " + "are allowed to access this metric"), + } + label_columns = { + 'metric_name': _("Metric"), + 'description': _("Description"), + 'verbose_name': _("Verbose Name"), + 'metric_type': _("Type"), + 'json': _("JSON"), + 'datasource': _("Druid Datasource"), + } + + def post_add(self, metric): + if metric.is_restricted: + security.merge_perm(sm, 'metric_access', metric.get_perm()) + + def post_update(self, metric): + if metric.is_restricted: + security.merge_perm(sm, 'metric_access', metric.get_perm()) + +appbuilder.add_view_no_menu(DruidMetricInlineView) + + +class DruidClusterModelView(SupersetModelView, DeleteMixin): # noqa + datamodel = SQLAInterface(models.DruidCluster) + add_columns = [ + 'verbose_name', 'coordinator_host', 'coordinator_port', + 'coordinator_endpoint', 'broker_host', 'broker_port', + 'broker_endpoint', 'cache_timeout', 'cluster_name', + ] + edit_columns = add_columns + list_columns = ['cluster_name', 'metadata_last_refreshed'] + search_columns = ('cluster_name',) + label_columns = { + 'cluster_name': _("Cluster"), + 'coordinator_host': _("Coordinator Host"), + 'coordinator_port': _("Coordinator Port"), + 'coordinator_endpoint': _("Coordinator Endpoint"), + 'broker_host': _("Broker Host"), + 'broker_port': _("Broker Port"), + 'broker_endpoint': _("Broker Endpoint"), + } + + def pre_add(self, cluster): + security.merge_perm(sm, 'database_access', cluster.perm) + + def pre_update(self, cluster): + self.pre_add(cluster) + + def _delete(self, pk): + DeleteMixin._delete(self, pk) + +appbuilder.add_view( + DruidClusterModelView, + name="Druid Clusters", + label=__("Druid Clusters"), + icon="fa-cubes", + category="Sources", + category_label=__("Sources"), + category_icon='fa-database',) + + +class DruidDatasourceModelView(SupersetModelView, DeleteMixin): # noqa + datamodel = SQLAInterface(models.DruidDatasource) + list_widget = ListWidgetWithCheckboxes + list_columns = [ + 'datasource_link', 'cluster', 'changed_by_', 'modified'] + order_columns = [ + 'datasource_link', 'changed_on_', 'offset'] + related_views = [DruidColumnInlineView, DruidMetricInlineView] + edit_columns = [ + 'datasource_name', 'cluster', 'slices', 'description', 'owner', + 'is_hidden', + 'filter_select_enabled', 'fetch_values_from', + 'default_endpoint', 'offset', 'cache_timeout'] + search_columns = ( + 'datasource_name', 'cluster', 'description', 'owner' + ) + add_columns = edit_columns + show_columns = add_columns + ['perm'] + page_size = 500 + base_order = ('datasource_name', 'asc') + description_columns = { + 'slices': _( + "The list of slices associated with this table. By " + "altering this datasource, you may change how these associated " + "slices behave. " + "Also note that slices need to point to a datasource, so " + "this form will fail at saving if removing slices from a " + "datasource. If you want to change the datasource for a slice, " + "overwrite the slice from the 'explore view'"), + 'offset': _("Timezone offset (in hours) for this datasource"), + 'description': Markup( + "Supports markdown"), + 'fetch_values_from': _( + "Time expression to use as a predicate when retrieving " + "distinct values to populate the filter component. " + "Only applies when `Enable Filter Select` is on. If " + "you enter `7 days ago`, the distinct list of values in " + "the filter will be populated based on the distinct value over " + "the past week"), + 'filter_select_enabled': _( + "Whether to populate the filter's dropdown in the explore " + "view's filter section with a list of distinct values fetched " + "from the backend on the fly"), + 'default_endpoint': _( + "Redirects to this endpoint when clicking on the datasource " + "from the datasource list"), + } + base_filters = [['id', DatasourceFilter, lambda: []]] + label_columns = { + 'slices': _("Associated Slices"), + 'datasource_link': _("Data Source"), + 'cluster': _("Cluster"), + 'description': _("Description"), + 'owner': _("Owner"), + 'is_hidden': _("Is Hidden"), + 'filter_select_enabled': _("Enable Filter Select"), + 'default_endpoint': _("Default Endpoint"), + 'offset': _("Time Offset"), + 'cache_timeout': _("Cache Timeout"), + } + + def pre_add(self, datasource): + number_of_existing_datasources = db.session.query( + sqla.func.count('*')).filter( + models.DruidDatasource.datasource_name == + datasource.datasource_name, + models.DruidDatasource.cluster_name == datasource.cluster.id + ).scalar() + + # table object is already added to the session + if number_of_existing_datasources > 1: + raise Exception(get_datasource_exist_error_mgs( + datasource.full_name)) + + def post_add(self, datasource): + datasource.generate_metrics() + security.merge_perm(sm, 'datasource_access', datasource.get_perm()) + if datasource.schema: + security.merge_perm(sm, 'schema_access', datasource.schema_perm) + + def post_update(self, datasource): + self.post_add(datasource) + + def _delete(self, pk): + DeleteMixin._delete(self, pk) + +appbuilder.add_view( + DruidDatasourceModelView, + "Druid Datasources", + label=__("Druid Datasources"), + category="Sources", + category_label=__("Sources"), + icon="fa-cube") + + +class Druid(BaseSupersetView): + """The base views for Superset!""" + + @has_access + @expose("/refresh_datasources/") + def refresh_datasources(self): + """endpoint that refreshes druid datasources metadata""" + session = db.session() + DruidCluster = ConnectorRegistry.sources['druid'].cluster_class + for cluster in session.query(DruidCluster).all(): + cluster_name = cluster.cluster_name + try: + cluster.refresh_datasources() + except Exception as e: + flash( + "Error while processing cluster '{}'\n{}".format( + cluster_name, utils.error_msg_from_exception(e)), + "danger") + logging.exception(e) + return redirect('/druidclustermodelview/list/') + cluster.metadata_last_refreshed = datetime.now() + flash( + "Refreshed metadata from cluster " + "[" + cluster.cluster_name + "]", + 'info') + session.commit() + return redirect("/druiddatasourcemodelview/list/") + +appbuilder.add_view_no_menu(Druid) + +appbuilder.add_link( + "Refresh Druid Metadata", + label=__("Refresh Druid Metadata"), + href='/druid/refresh_datasources/', + category='Sources', + category_label=__("Sources"), + category_icon='fa-database', + icon="fa-cog") + + +appbuilder.add_separator("Sources", ) diff --git a/superset/connectors/sqla/__init__.py b/superset/connectors/sqla/__init__.py new file mode 100644 index 0000000000000..b2df79851f224 --- /dev/null +++ b/superset/connectors/sqla/__init__.py @@ -0,0 +1,2 @@ +from . import models # noqa +from . import views # noqa diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py new file mode 100644 index 0000000000000..300dd3572fb03 --- /dev/null +++ b/superset/connectors/sqla/models.py @@ -0,0 +1,713 @@ +from datetime import datetime +import logging +import sqlparse +from past.builtins import basestring + +import pandas as pd + +from sqlalchemy import ( + Column, Integer, String, ForeignKey, Text, Boolean, + DateTime, +) +import sqlalchemy as sa +from sqlalchemy import asc, and_, desc, select +from sqlalchemy.ext.compiler import compiles +from sqlalchemy.sql.expression import ColumnClause, TextAsFrom +from sqlalchemy.orm import backref, relationship +from sqlalchemy.sql import table, literal_column, text, column + +from flask import escape, Markup +from flask_appbuilder import Model +from flask_babel import lazy_gettext as _ + +from superset import db, utils, import_util, sm +from superset.connectors.base import BaseDatasource, BaseColumn, BaseMetric +from superset.utils import DTTM_ALIAS, QueryStatus +from superset.models.helpers import QueryResult +from superset.models.core import Database +from superset.jinja_context import get_template_processor +from superset.models.helpers import set_perm + + +class TableColumn(Model, BaseColumn): + + """ORM object for table columns, each table can have multiple columns""" + + __tablename__ = 'table_columns' + table_id = Column(Integer, ForeignKey('tables.id')) + table = relationship( + 'SqlaTable', + backref=backref('columns', cascade='all, delete-orphan'), + foreign_keys=[table_id]) + is_dttm = Column(Boolean, default=False) + expression = Column(Text, default='') + python_date_format = Column(String(255)) + database_expression = Column(String(255)) + + export_fields = ( + 'table_id', 'column_name', 'verbose_name', 'is_dttm', 'is_active', + 'type', 'groupby', 'count_distinct', 'sum', 'avg', 'max', 'min', + 'filterable', 'expression', 'description', 'python_date_format', + 'database_expression' + ) + + @property + def sqla_col(self): + name = self.column_name + if not self.expression: + col = column(self.column_name).label(name) + else: + col = literal_column(self.expression).label(name) + return col + + def get_time_filter(self, start_dttm, end_dttm): + col = self.sqla_col.label('__time') + return and_( + col >= text(self.dttm_sql_literal(start_dttm)), + col <= text(self.dttm_sql_literal(end_dttm)), + ) + + def get_timestamp_expression(self, time_grain): + """Getting the time component of the query""" + expr = self.expression or self.column_name + if not self.expression and not time_grain: + return column(expr, type_=DateTime).label(DTTM_ALIAS) + if time_grain: + pdf = self.python_date_format + if pdf in ('epoch_s', 'epoch_ms'): + # if epoch, translate to DATE using db specific conf + db_spec = self.table.database.db_engine_spec + if pdf == 'epoch_s': + expr = db_spec.epoch_to_dttm().format(col=expr) + elif pdf == 'epoch_ms': + expr = db_spec.epoch_ms_to_dttm().format(col=expr) + grain = self.table.database.grains_dict().get(time_grain, '{col}') + expr = grain.function.format(col=expr) + return literal_column(expr, type_=DateTime).label(DTTM_ALIAS) + + @classmethod + def import_obj(cls, i_column): + def lookup_obj(lookup_column): + return db.session.query(TableColumn).filter( + TableColumn.table_id == lookup_column.table_id, + TableColumn.column_name == lookup_column.column_name).first() + return import_util.import_simple_obj(db.session, i_column, lookup_obj) + + def dttm_sql_literal(self, dttm): + """Convert datetime object to a SQL expression string + + If database_expression is empty, the internal dttm + will be parsed as the string with the pattern that + the user inputted (python_date_format) + If database_expression is not empty, the internal dttm + will be parsed as the sql sentence for the database to convert + """ + + tf = self.python_date_format or '%Y-%m-%d %H:%M:%S.%f' + if self.database_expression: + return self.database_expression.format(dttm.strftime('%Y-%m-%d %H:%M:%S')) + elif tf == 'epoch_s': + return str((dttm - datetime(1970, 1, 1)).total_seconds()) + elif tf == 'epoch_ms': + return str((dttm - datetime(1970, 1, 1)).total_seconds() * 1000.0) + else: + s = self.table.database.db_engine_spec.convert_dttm( + self.type or '', dttm) + return s or "'{}'".format(dttm.strftime(tf)) + + +class SqlMetric(Model, BaseMetric): + + """ORM object for metrics, each table can have multiple metrics""" + + __tablename__ = 'sql_metrics' + table_id = Column(Integer, ForeignKey('tables.id')) + table = relationship( + 'SqlaTable', + backref=backref('metrics', cascade='all, delete-orphan'), + foreign_keys=[table_id]) + expression = Column(Text) + + export_fields = ( + 'metric_name', 'verbose_name', 'metric_type', 'table_id', 'expression', + 'description', 'is_restricted', 'd3format') + + @property + def sqla_col(self): + name = self.metric_name + return literal_column(self.expression).label(name) + + @property + def perm(self): + return ( + "{parent_name}.[{obj.metric_name}](id:{obj.id})" + ).format(obj=self, + parent_name=self.table.full_name) if self.table else None + + @classmethod + def import_obj(cls, i_metric): + def lookup_obj(lookup_metric): + return db.session.query(SqlMetric).filter( + SqlMetric.table_id == lookup_metric.table_id, + SqlMetric.metric_name == lookup_metric.metric_name).first() + return import_util.import_simple_obj(db.session, i_metric, lookup_obj) + + +class SqlaTable(Model, BaseDatasource): + + """An ORM object for SqlAlchemy table references""" + + type = "table" + query_language = 'sql' + metric_class = SqlMetric + column_class = TableColumn + + __tablename__ = 'tables' + table_name = Column(String(250)) + main_dttm_col = Column(String(250)) + database_id = Column(Integer, ForeignKey('dbs.id'), nullable=False) + fetch_values_predicate = Column(String(1000)) + user_id = Column(Integer, ForeignKey('ab_user.id')) + owner = relationship( + sm.user_model, + backref='tables', + foreign_keys=[user_id]) + database = relationship( + 'Database', + backref=backref('tables', cascade='all, delete-orphan'), + foreign_keys=[database_id]) + schema = Column(String(255)) + sql = Column(Text) + slices = relationship( + 'Slice', + primaryjoin=( + "SqlaTable.id == foreign(Slice.datasource_id) and " + "Slice.datasource_type == 'table'")) + + baselink = "tablemodelview" + export_fields = ( + 'table_name', 'main_dttm_col', 'description', 'default_endpoint', + 'database_id', 'offset', 'cache_timeout', 'schema', + 'sql', 'params') + + __table_args__ = ( + sa.UniqueConstraint( + 'database_id', 'schema', 'table_name', + name='_customer_location_uc'),) + + def __repr__(self): + return self.name + + @property + def description_markeddown(self): + return utils.markdown(self.description) + + @property + def link(self): + name = escape(self.name) + return Markup( + '{name}'.format(**locals())) + + @property + def schema_perm(self): + """Returns schema permission if present, database one otherwise.""" + return utils.get_schema_perm(self.database, self.schema) + + def get_perm(self): + return ( + "[{obj.database}].[{obj.table_name}]" + "(id:{obj.id})").format(obj=self) + + @property + def name(self): + if not self.schema: + return self.table_name + return "{}.{}".format(self.schema, self.table_name) + + @property + def full_name(self): + return utils.get_datasource_full_name( + self.database, self.table_name, schema=self.schema) + + @property + def dttm_cols(self): + l = [c.column_name for c in self.columns if c.is_dttm] + if self.main_dttm_col and self.main_dttm_col not in l: + l.append(self.main_dttm_col) + return l + + @property + def num_cols(self): + return [c.column_name for c in self.columns if c.is_num] + + @property + def any_dttm_col(self): + cols = self.dttm_cols + if cols: + return cols[0] + + @property + def html(self): + t = ((c.column_name, c.type) for c in self.columns) + df = pd.DataFrame(t) + df.columns = ['field', 'type'] + return df.to_html( + index=False, + classes=( + "dataframe table table-striped table-bordered " + "table-condensed")) + + @property + def sql_url(self): + return self.database.sql_url + "?table_name=" + str(self.table_name) + + @property + def time_column_grains(self): + return { + "time_columns": self.dttm_cols, + "time_grains": [grain.name for grain in self.database.grains()] + } + + def get_col(self, col_name): + columns = self.columns + for col in columns: + if col_name == col.column_name: + return col + + @property + def data(self): + d = super(SqlaTable, self).data + if self.type == 'table': + grains = self.database.grains() or [] + if grains: + grains = [(g.name, g.name) for g in grains] + d['granularity_sqla'] = utils.choicify(self.dttm_cols) + d['time_grain_sqla'] = grains + return d + + def values_for_column(self, column_name, limit=10000): + """Runs query against sqla to retrieve some + sample values for the given column. + """ + cols = {col.column_name: col for col in self.columns} + target_col = cols[column_name] + + qry = ( + select([target_col.sqla_col]) + .select_from(self.get_from_clause()) + .distinct(column_name) + ) + if limit: + qry = qry.limit(limit) + + if self.fetch_values_predicate: + tp = self.get_template_processor() + qry = qry.where(tp.process_template(self.fetch_values_predicate)) + + engine = self.database.get_sqla_engine() + sql = "{}".format( + qry.compile( + engine, compile_kwargs={"literal_binds": True}, ), + ) + + df = pd.read_sql_query(sql=sql, con=engine) + return [row[0] for row in df.to_records(index=False)] + + def get_template_processor(self, **kwargs): + return get_template_processor( + table=self, database=self.database, **kwargs) + + def get_query_str(self, query_obj): + engine = self.database.get_sqla_engine() + qry = self.get_sqla_query(**query_obj) + sql = str( + qry.compile( + engine, + compile_kwargs={"literal_binds": True} + ) + ) + logging.info(sql) + sql = sqlparse.format(sql, reindent=True) + sql = self.database.db_engine_spec.sql_preprocessor(sql) + return sql + + def get_sqla_table(self): + tbl = table(self.table_name) + if self.schema: + tbl.schema = self.schema + return tbl + + def get_from_clause(self): + # Supporting arbitrary SQL statements in place of tables + if self.sql: + tp = self.get_template_processor() + from_sql = tp.process_template(self.sql) + return TextAsFrom(sa.text(from_sql), []).alias('expr_qry') + + return self.get_sqla_table() + + def get_sqla_query( # sqla + self, + groupby, metrics, + granularity, + from_dttm, to_dttm, + filter=None, # noqa + is_timeseries=True, + timeseries_limit=15, + timeseries_limit_metric=None, + row_limit=None, + inner_from_dttm=None, + inner_to_dttm=None, + orderby=None, + extras=None, + columns=None, + form_data=None): + """Querying any sqla table from this common interface""" + + template_kwargs = { + 'from_dttm': from_dttm, + 'groupby': groupby, + 'metrics': metrics, + 'row_limit': row_limit, + 'to_dttm': to_dttm, + 'form_data': form_data, + } + template_processor = self.get_template_processor(**template_kwargs) + + # For backward compatibility + if granularity not in self.dttm_cols: + granularity = self.main_dttm_col + + # Database spec supports join-free timeslot grouping + time_groupby_inline = self.database.db_engine_spec.time_groupby_inline + + cols = {col.column_name: col for col in self.columns} + metrics_dict = {m.metric_name: m for m in self.metrics} + + if not granularity and is_timeseries: + raise Exception(_( + "Datetime column not provided as part table configuration " + "and is required by this type of chart")) + for m in metrics: + if m not in metrics_dict: + raise Exception(_("Metric '{}' is not valid".format(m))) + metrics_exprs = [metrics_dict.get(m).sqla_col for m in metrics] + timeseries_limit_metric = metrics_dict.get(timeseries_limit_metric) + timeseries_limit_metric_expr = None + if timeseries_limit_metric: + timeseries_limit_metric_expr = \ + timeseries_limit_metric.sqla_col + if metrics_exprs: + main_metric_expr = metrics_exprs[0] + else: + main_metric_expr = literal_column("COUNT(*)").label("ccount") + + select_exprs = [] + groupby_exprs = [] + + if groupby: + select_exprs = [] + inner_select_exprs = [] + inner_groupby_exprs = [] + for s in groupby: + col = cols[s] + outer = col.sqla_col + inner = col.sqla_col.label(col.column_name + '__') + + groupby_exprs.append(outer) + select_exprs.append(outer) + inner_groupby_exprs.append(inner) + inner_select_exprs.append(inner) + elif columns: + for s in columns: + select_exprs.append(cols[s].sqla_col) + metrics_exprs = [] + + if granularity: + dttm_col = cols[granularity] + time_grain = extras.get('time_grain_sqla') + time_filters = [] + + if is_timeseries: + timestamp = dttm_col.get_timestamp_expression(time_grain) + select_exprs += [timestamp] + groupby_exprs += [timestamp] + + # Use main dttm column to support index with secondary dttm columns + if self.database.db_engine_spec.time_secondary_columns and \ + self.main_dttm_col in self.dttm_cols and \ + self.main_dttm_col != dttm_col.column_name: + time_filters.append(cols[self.main_dttm_col]. + get_time_filter(from_dttm, to_dttm)) + time_filters.append(dttm_col.get_time_filter(from_dttm, to_dttm)) + + select_exprs += metrics_exprs + qry = sa.select(select_exprs) + + tbl = self.get_from_clause() + + if not columns: + qry = qry.group_by(*groupby_exprs) + + where_clause_and = [] + having_clause_and = [] + for flt in filter: + if not all([flt.get(s) for s in ['col', 'op', 'val']]): + continue + col = flt['col'] + op = flt['op'] + eq = flt['val'] + col_obj = cols.get(col) + if col_obj: + if op in ('in', 'not in'): + values = [] + for v in eq: + # For backwards compatibility and edge cases + # where a column data type might have changed + if isinstance(v, basestring): + v = v.strip("'").strip('"') + if col_obj.is_num: + v = utils.string_to_num(v) + + # Removing empty strings and non numeric values + # targeting numeric columns + if v is not None: + values.append(v) + cond = col_obj.sqla_col.in_(values) + if op == 'not in': + cond = ~cond + where_clause_and.append(cond) + else: + if col_obj.is_num: + eq = utils.string_to_num(flt['val']) + if op == '==': + where_clause_and.append(col_obj.sqla_col == eq) + elif op == '!=': + where_clause_and.append(col_obj.sqla_col != eq) + elif op == '>': + where_clause_and.append(col_obj.sqla_col > eq) + elif op == '<': + where_clause_and.append(col_obj.sqla_col < eq) + elif op == '>=': + where_clause_and.append(col_obj.sqla_col >= eq) + elif op == '<=': + where_clause_and.append(col_obj.sqla_col <= eq) + elif op == 'LIKE': + where_clause_and.append(col_obj.sqla_col.like(eq)) + if extras: + where = extras.get('where') + if where: + where = template_processor.process_template(where) + where_clause_and += [sa.text('({})'.format(where))] + having = extras.get('having') + if having: + having = template_processor.process_template(having) + having_clause_and += [sa.text('({})'.format(having))] + if granularity: + qry = qry.where(and_(*(time_filters + where_clause_and))) + else: + qry = qry.where(and_(*where_clause_and)) + qry = qry.having(and_(*having_clause_and)) + if groupby: + qry = qry.order_by(desc(main_metric_expr)) + elif orderby: + for col, ascending in orderby: + direction = asc if ascending else desc + qry = qry.order_by(direction(col)) + + if row_limit: + qry = qry.limit(row_limit) + + if is_timeseries and \ + timeseries_limit and groupby and not time_groupby_inline: + # some sql dialects require for order by expressions + # to also be in the select clause -- others, e.g. vertica, + # require a unique inner alias + inner_main_metric_expr = main_metric_expr.label('mme_inner__') + inner_select_exprs += [inner_main_metric_expr] + subq = select(inner_select_exprs) + subq = subq.select_from(tbl) + inner_time_filter = dttm_col.get_time_filter( + inner_from_dttm or from_dttm, + inner_to_dttm or to_dttm, + ) + subq = subq.where(and_(*(where_clause_and + [inner_time_filter]))) + subq = subq.group_by(*inner_groupby_exprs) + ob = inner_main_metric_expr + if timeseries_limit_metric_expr is not None: + ob = timeseries_limit_metric_expr + subq = subq.order_by(desc(ob)) + subq = subq.limit(timeseries_limit) + on_clause = [] + for i, gb in enumerate(groupby): + on_clause.append( + groupby_exprs[i] == column(gb + '__')) + + tbl = tbl.join(subq.alias(), and_(*on_clause)) + + return qry.select_from(tbl) + + def query(self, query_obj): + qry_start_dttm = datetime.now() + sql = self.get_query_str(query_obj) + status = QueryStatus.SUCCESS + error_message = None + df = None + try: + df = self.database.get_df(sql, self.schema) + except Exception as e: + status = QueryStatus.FAILED + logging.exception(e) + error_message = ( + self.database.db_engine_spec.extract_error_message(e)) + + return QueryResult( + status=status, + df=df, + duration=datetime.now() - qry_start_dttm, + query=sql, + error_message=error_message) + + def get_sqla_table_object(self): + return self.database.get_table(self.table_name, schema=self.schema) + + def fetch_metadata(self): + """Fetches the metadata for the table and merges it in""" + try: + table = self.get_sqla_table_object() + except Exception: + raise Exception( + "Table doesn't seem to exist in the specified database, " + "couldn't fetch column information") + + TC = TableColumn # noqa shortcut to class + M = SqlMetric # noqa + metrics = [] + any_date_col = None + db_dialect = self.database.get_sqla_engine().dialect + for col in table.columns: + try: + datatype = "{}".format(col.type).upper() + except Exception as e: + datatype = "UNKNOWN" + logging.error( + "Unrecognized data type in {}.{}".format(table, col.name)) + logging.exception(e) + dbcol = ( + db.session + .query(TC) + .filter(TC.table == self) + .filter(TC.column_name == col.name) + .first() + ) + db.session.flush() + if not dbcol: + dbcol = TableColumn(column_name=col.name, type=datatype) + dbcol.groupby = dbcol.is_string + dbcol.filterable = dbcol.is_string + dbcol.sum = dbcol.is_num + dbcol.avg = dbcol.is_num + dbcol.is_dttm = dbcol.is_time + + db.session.merge(self) + self.columns.append(dbcol) + + if not any_date_col and dbcol.is_time: + any_date_col = col.name + + quoted = "{}".format(col.compile(dialect=db_dialect)) + if dbcol.sum: + metrics.append(M( + metric_name='sum__' + dbcol.column_name, + verbose_name='sum__' + dbcol.column_name, + metric_type='sum', + expression="SUM({})".format(quoted) + )) + if dbcol.avg: + metrics.append(M( + metric_name='avg__' + dbcol.column_name, + verbose_name='avg__' + dbcol.column_name, + metric_type='avg', + expression="AVG({})".format(quoted) + )) + if dbcol.max: + metrics.append(M( + metric_name='max__' + dbcol.column_name, + verbose_name='max__' + dbcol.column_name, + metric_type='max', + expression="MAX({})".format(quoted) + )) + if dbcol.min: + metrics.append(M( + metric_name='min__' + dbcol.column_name, + verbose_name='min__' + dbcol.column_name, + metric_type='min', + expression="MIN({})".format(quoted) + )) + if dbcol.count_distinct: + metrics.append(M( + metric_name='count_distinct__' + dbcol.column_name, + verbose_name='count_distinct__' + dbcol.column_name, + metric_type='count_distinct', + expression="COUNT(DISTINCT {})".format(quoted) + )) + dbcol.type = datatype + db.session.merge(self) + db.session.commit() + + metrics.append(M( + metric_name='count', + verbose_name='COUNT(*)', + metric_type='count', + expression="COUNT(*)" + )) + for metric in metrics: + m = ( + db.session.query(M) + .filter(M.metric_name == metric.metric_name) + .filter(M.table_id == self.id) + .first() + ) + metric.table_id = self.id + if not m: + db.session.add(metric) + db.session.commit() + if not self.main_dttm_col: + self.main_dttm_col = any_date_col + + @classmethod + def import_obj(cls, i_datasource, import_time=None): + """Imports the datasource from the object to the database. + + Metrics and columns and datasource will be overrided if exists. + This function can be used to import/export dashboards between multiple + superset instances. Audit metadata isn't copies over. + """ + def lookup_sqlatable(table): + return db.session.query(SqlaTable).join(Database).filter( + SqlaTable.table_name == table.table_name, + SqlaTable.schema == table.schema, + Database.id == table.database_id, + ).first() + + def lookup_database(table): + return db.session.query(Database).filter_by( + database_name=table.params_dict['database_name']).one() + return import_util.import_datasource( + db.session, i_datasource, lookup_database, lookup_sqlatable, + import_time) + + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + query = ( + session.query(cls) + .filter_by(database_id=database.id) + .filter_by(table_name=datasource_name) + ) + if schema: + query = query.filter_by(schema=schema) + return query.all() + +sa.event.listen(SqlaTable, 'after_insert', set_perm) +sa.event.listen(SqlaTable, 'after_update', set_perm) diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py new file mode 100644 index 0000000000000..5ba10dac54f46 --- /dev/null +++ b/superset/connectors/sqla/views.py @@ -0,0 +1,265 @@ +"""Views used by the SqlAlchemy connector""" +import logging + +from past.builtins import basestring + +from flask import Markup, flash, redirect, abort +from flask_appbuilder import CompactCRUDMixin, expose +from flask_appbuilder.models.sqla.interface import SQLAInterface +import sqlalchemy as sa + +from flask_babel import lazy_gettext as _ +from flask_babel import gettext as __ + +from superset import appbuilder, db, utils, security, sm +from superset.utils import has_access +from superset.views.base import ( + SupersetModelView, ListWidgetWithCheckboxes, DeleteMixin, DatasourceFilter, + get_datasource_exist_error_mgs, +) + +from . import models + + +class TableColumnInlineView(CompactCRUDMixin, SupersetModelView): # noqa + datamodel = SQLAInterface(models.TableColumn) + can_delete = False + list_widget = ListWidgetWithCheckboxes + edit_columns = [ + 'column_name', 'verbose_name', 'description', + 'type', 'groupby', 'filterable', + 'table', 'count_distinct', 'sum', 'min', 'max', 'expression', + 'is_dttm', 'python_date_format', 'database_expression'] + add_columns = edit_columns + list_columns = [ + 'column_name', 'type', 'groupby', 'filterable', 'count_distinct', + 'sum', 'min', 'max', 'is_dttm'] + page_size = 500 + description_columns = { + 'is_dttm': _( + "Whether to make this column available as a " + "[Time Granularity] option, column has to be DATETIME or " + "DATETIME-like"), + 'filterable': _( + "Whether this column is exposed in the `Filters` section " + "of the explore view."), + 'type': _( + "The data type that was inferred by the database. " + "It may be necessary to input a type manually for " + "expression-defined columns in some cases. In most case " + "users should not need to alter this."), + 'expression': utils.markdown( + "a valid SQL expression as supported by the underlying backend. " + "Example: `substr(name, 1, 1)`", True), + 'python_date_format': utils.markdown(Markup( + "The pattern of timestamp format, use " + "" + "python datetime string pattern " + "expression. If time is stored in epoch " + "format, put `epoch_s` or `epoch_ms`. Leave `Database Expression` " + "below empty if timestamp is stored in " + "String or Integer(epoch) type"), True), + 'database_expression': utils.markdown( + "The database expression to cast internal datetime " + "constants to database date/timestamp type according to the DBAPI. " + "The expression should follow the pattern of " + "%Y-%m-%d %H:%M:%S, based on different DBAPI. " + "The string should be a python string formatter \n" + "`Ex: TO_DATE('{}', 'YYYY-MM-DD HH24:MI:SS')` for Oracle" + "Superset uses default expression based on DB URI if this " + "field is blank.", True), + } + label_columns = { + 'column_name': _("Column"), + 'verbose_name': _("Verbose Name"), + 'description': _("Description"), + 'groupby': _("Groupable"), + 'filterable': _("Filterable"), + 'table': _("Table"), + 'count_distinct': _("Count Distinct"), + 'sum': _("Sum"), + 'min': _("Min"), + 'max': _("Max"), + 'expression': _("Expression"), + 'is_dttm': _("Is temporal"), + 'python_date_format': _("Datetime Format"), + 'database_expression': _("Database Expression") + } +appbuilder.add_view_no_menu(TableColumnInlineView) + + +class SqlMetricInlineView(CompactCRUDMixin, SupersetModelView): # noqa + datamodel = SQLAInterface(models.SqlMetric) + list_columns = ['metric_name', 'verbose_name', 'metric_type'] + edit_columns = [ + 'metric_name', 'description', 'verbose_name', 'metric_type', + 'expression', 'table', 'd3format', 'is_restricted'] + description_columns = { + 'expression': utils.markdown( + "a valid SQL expression as supported by the underlying backend. " + "Example: `count(DISTINCT userid)`", True), + 'is_restricted': _("Whether the access to this metric is restricted " + "to certain roles. Only roles with the permission " + "'metric access on XXX (the name of this metric)' " + "are allowed to access this metric"), + 'd3format': utils.markdown( + "d3 formatting string as defined [here]" + "(https://github.com/d3/d3-format/blob/master/README.md#format). " + "For instance, this default formatting applies in the Table " + "visualization and allow for different metric to use different " + "formats", True + ), + } + add_columns = edit_columns + page_size = 500 + label_columns = { + 'metric_name': _("Metric"), + 'description': _("Description"), + 'verbose_name': _("Verbose Name"), + 'metric_type': _("Type"), + 'expression': _("SQL Expression"), + 'table': _("Table"), + } + + def post_add(self, metric): + if metric.is_restricted: + security.merge_perm(sm, 'metric_access', metric.get_perm()) + + def post_update(self, metric): + if metric.is_restricted: + security.merge_perm(sm, 'metric_access', metric.get_perm()) + +appbuilder.add_view_no_menu(SqlMetricInlineView) + + +class TableModelView(SupersetModelView, DeleteMixin): # noqa + datamodel = SQLAInterface(models.SqlaTable) + list_columns = [ + 'link', 'database', + 'changed_by_', 'modified'] + order_columns = [ + 'link', 'database', 'changed_on_'] + add_columns = ['database', 'schema', 'table_name'] + edit_columns = [ + 'table_name', 'sql', 'filter_select_enabled', 'slices', + 'fetch_values_predicate', 'database', 'schema', + 'description', 'owner', + 'main_dttm_col', 'default_endpoint', 'offset', 'cache_timeout'] + show_columns = edit_columns + ['perm'] + related_views = [TableColumnInlineView, SqlMetricInlineView] + base_order = ('changed_on', 'desc') + search_columns = ( + 'database', 'schema', 'table_name', 'owner', + ) + description_columns = { + 'slices': _( + "The list of slices associated with this table. By " + "altering this datasource, you may change how these associated " + "slices behave. " + "Also note that slices need to point to a datasource, so " + "this form will fail at saving if removing slices from a " + "datasource. If you want to change the datasource for a slice, " + "overwrite the slice from the 'explore view'"), + 'offset': _("Timezone offset (in hours) for this datasource"), + 'table_name': _( + "Name of the table that exists in the source database"), + 'schema': _( + "Schema, as used only in some databases like Postgres, Redshift " + "and DB2"), + 'description': Markup( + "Supports " + "markdown"), + 'sql': _( + "This fields acts a Superset view, meaning that Superset will " + "run a query against this string as a subquery." + ), + 'fetch_values_predicate': _( + "Predicate applied when fetching distinct value to " + "populate the filter control component. Supports " + "jinja template syntax. Applies only when " + "`Enable Filter Select` is on." + ), + 'default_endpoint': _( + "Redirects to this endpoint when clicking on the table " + "from the table list"), + 'filter_select_enabled': _( + "Whether to populate the filter's dropdown in the explore " + "view's filter section with a list of distinct values fetched " + "from the backend on the fly"), + } + base_filters = [['id', DatasourceFilter, lambda: []]] + label_columns = { + 'slices': _("Associated Slices"), + 'link': _("Table"), + 'changed_by_': _("Changed By"), + 'database': _("Database"), + 'changed_on_': _("Last Changed"), + 'filter_select_enabled': _("Enable Filter Select"), + 'schema': _("Schema"), + 'default_endpoint': _( + "Redirects to this endpoint when clicking on the datasource " + "from the datasource list"), + 'offset': _("Offset"), + 'cache_timeout': _("Cache Timeout"), + } + + def pre_add(self, table): + number_of_existing_tables = db.session.query( + sa.func.count('*')).filter( + models.SqlaTable.table_name == table.table_name, + models.SqlaTable.schema == table.schema, + models.SqlaTable.database_id == table.database.id + ).scalar() + # table object is already added to the session + if number_of_existing_tables > 1: + raise Exception(get_datasource_exist_error_mgs(table.full_name)) + + # Fail before adding if the table can't be found + try: + table.get_sqla_table_object() + except Exception as e: + logging.exception(e) + raise Exception( + "Table [{}] could not be found, " + "please double check your " + "database connection, schema, and " + "table name".format(table.name)) + + def post_add(self, table, flash_message=True): + table.fetch_metadata() + security.merge_perm(sm, 'datasource_access', table.get_perm()) + if table.schema: + security.merge_perm(sm, 'schema_access', table.schema_perm) + + if flash_message: + flash(_( + "The table was created. " + "As part of this two phase configuration " + "process, you should now click the edit button by " + "the new table to configure it."), "info") + + def post_update(self, table): + self.post_add(table, flash_message=False) + + def _delete(self, pk): + DeleteMixin._delete(self, pk) + + @expose('/edit/', methods=['GET', 'POST']) + @has_access + def edit(self, pk): + """Simple hack to redirect to explore view after saving""" + resp = super(TableModelView, self).edit(pk) + if isinstance(resp, basestring): + return resp + return redirect('/superset/explore/table/{}/'.format(pk)) + +appbuilder.add_view( + TableModelView, + "Tables", + label=__("Tables"), + category="Sources", + category_label=__("Sources"), + icon='fa-table',) + +appbuilder.add_separator("Sources") diff --git a/superset/data/__init__.py b/superset/data/__init__.py index 70564e54c2691..c3428b3d2c354 100644 --- a/superset/data/__init__.py +++ b/superset/data/__init__.py @@ -14,15 +14,19 @@ import pandas as pd from sqlalchemy import String, DateTime, Date, Float, BigInteger -from superset import app, db, models, utils +from superset import app, db, utils +from superset.models import core as models from superset.security import get_or_create_main_db +from superset.connectors.connector_registry import ConnectorRegistry + # Shortcuts DB = models.Database Slice = models.Slice -TBL = models.SqlaTable Dash = models.Dashboard +TBL = ConnectorRegistry.sources['table'] + config = app.config DATA_FOLDER = os.path.join(config.get("BASE_DIR"), 'data') @@ -66,7 +70,6 @@ def load_energy(): if not tbl: tbl = TBL(table_name=tbl_name) tbl.description = "Energy consumption" - tbl.is_featured = True tbl.database = get_or_create_main_db() db.session.merge(tbl) db.session.commit() @@ -80,12 +83,6 @@ def load_energy(): params=textwrap.dedent("""\ { "collapsed_fieldsets": "", - "datasource_id": "3", - "datasource_name": "energy_usage", - "datasource_type": "table", - "flt_col_0": "source", - "flt_eq_0": "", - "flt_op_0": "in", "groupby": [ "source", "target" @@ -111,12 +108,6 @@ def load_energy(): { "charge": "-500", "collapsed_fieldsets": "", - "datasource_id": "1", - "datasource_name": "energy_usage", - "datasource_type": "table", - "flt_col_0": "source", - "flt_eq_0": "", - "flt_op_0": "in", "groupby": [ "source", "target" @@ -145,12 +136,6 @@ def load_energy(): "all_columns_y": "target", "canvas_image_rendering": "pixelated", "collapsed_fieldsets": "", - "datasource_id": "1", - "datasource_name": "energy_usage", - "datasource_type": "table", - "flt_col_0": "source", - "flt_eq_0": "", - "flt_op_0": "in", "having": "", "linear_color_scheme": "blue_white_yellow", "metric": "sum__value", @@ -193,8 +178,8 @@ def load_world_bank_health_n_pop(): tbl = TBL(table_name=tbl_name) tbl.description = utils.readfile(os.path.join(DATA_FOLDER, 'countries.md')) tbl.main_dttm_col = 'year' - tbl.is_featured = True tbl.database = get_or_create_main_db() + tbl.filter_select_enabled = True db.session.merge(tbl) db.session.commit() tbl.fetch_metadata() @@ -202,9 +187,6 @@ def load_world_bank_health_n_pop(): defaults = { "compare_lag": "10", "compare_suffix": "o10Y", - "datasource_id": "1", - "datasource_name": "birth_names", - "datasource_type": "table", "limit": "25", "granularity": "year", "groupby": [], @@ -218,7 +200,7 @@ def load_world_bank_health_n_pop(): "country_fieldtype": "cca3", "secondary_metric": "sum__SP_POP_TOTL", "entity": "country_code", - "show_bubbles": "y", + "show_bubbles": True, } print("Creating slices") @@ -287,16 +269,20 @@ def load_world_bank_health_n_pop(): since="2011-01-01", until="2011-01-02", series="region", - limit="0", + limit=0, entity="country_name", x="sum__SP_RUR_TOTL_ZS", y="sum__SP_DYN_LE00_IN", size="sum__SP_POP_TOTL", max_bubble_size="50", - flt_col_1="country_code", - flt_op_1="not in", - flt_eq_1="TCA,MNP,DMA,MHL,MCO,SXM,CYM,TUV,IMY,KNA,ASM,ADO,AMA,PLW", - num_period_compare="10",)), + filters=[{ + "col": "country_code", + "val": [ + "TCA", "MNP", "DMA", "MHL", "MCO", "SXM", "CYM", + "TUV", "IMY", "KNA", "ASM", "ADO", "AMA", "PLW", + ], + "op": "not in"}], + )), Slice( slice_name="Rural Breakdown", viz_type='sunburst', @@ -587,7 +573,7 @@ def load_birth_names(): obj = TBL(table_name='birth_names') obj.main_dttm_col = 'ds' obj.database = get_or_create_main_db() - obj.is_featured = True + obj.filter_select_enabled = True db.session.merge(obj) db.session.commit() obj.fetch_metadata() @@ -596,10 +582,6 @@ def load_birth_names(): defaults = { "compare_lag": "10", "compare_suffix": "o10Y", - "datasource_id": "1", - "datasource_name": "birth_names", - "datasource_type": "table", - "flt_op_1": "in", "limit": "25", "granularity": "ds", "groupby": [], @@ -623,8 +605,12 @@ def load_birth_names(): params=get_slice_json( defaults, groupby=['name'], - flt_col_1='gender', - flt_eq_1="girl", row_limit=50)), + filters=[{ + 'col': 'gender', + 'op': 'in', + 'val': ['girl'], + }], + row_limit=50)), Slice( slice_name="Boys", viz_type='table', @@ -633,8 +619,11 @@ def load_birth_names(): params=get_slice_json( defaults, groupby=['name'], - flt_col_1='gender', - flt_eq_1="boy", + filters=[{ + 'col': 'gender', + 'op': 'in', + 'val': ['boy'], + }], row_limit=50)), Slice( slice_name="Participants", @@ -660,9 +649,14 @@ def load_birth_names(): datasource_id=tbl.id, params=get_slice_json( defaults, - flt_eq_1="other", viz_type="dist_bar", + filters=[{ + 'col': 'state', + 'op': 'not in', + 'val': ['other'], + }], + viz_type="dist_bar", metrics=['sum__sum_girls', 'sum__sum_boys'], - groupby=['state'], flt_op_1='not in', flt_col_1='state')), + groupby=['state'])), Slice( slice_name="Trends", viz_type='line', @@ -671,7 +665,7 @@ def load_birth_names(): params=get_slice_json( defaults, viz_type="line", groupby=['name'], - granularity='ds', rich_tooltip='y', show_legend='y')), + granularity='ds', rich_tooltip=True, show_legend=True)), Slice( slice_name="Average and Sum Trends", viz_type='dual_line', @@ -726,7 +720,11 @@ def load_birth_names(): params=get_slice_json( defaults, viz_type="big_number_total", granularity="ds", - flt_col_1='gender', flt_eq_1='girl', + filters=[{ + 'col': 'gender', + 'op': 'in', + 'val': ['girl'], + }], subheader='total female participants')), ] for slc in slices: @@ -822,7 +820,7 @@ def load_unicode_test_data(): # generate date/numeric data df['date'] = datetime.datetime.now().date() df['value'] = [random.randint(1, 100) for _ in range(len(df))] - df.to_sql( + df.to_sql( # pylint: disable=no-member 'unicode_test', db.engine, if_exists='replace', @@ -844,17 +842,12 @@ def load_unicode_test_data(): obj = TBL(table_name='unicode_test') obj.main_dttm_col = 'date' obj.database = get_or_create_main_db() - obj.is_featured = False db.session.merge(obj) db.session.commit() obj.fetch_metadata() tbl = obj slice_data = { - "datasource_id": "3", - "datasource_name": "unicode_test", - "datasource_type": "table", - "flt_op_1": "in", "granularity": "date", "groupby": [], "metric": 'sum__value', @@ -927,20 +920,17 @@ def load_random_time_series_data(): obj = TBL(table_name='random_time_series') obj.main_dttm_col = 'ds' obj.database = get_or_create_main_db() - obj.is_featured = False db.session.merge(obj) db.session.commit() obj.fetch_metadata() tbl = obj slice_data = { - "datasource_id": "6", - "datasource_name": "random_time_series", - "datasource_type": "table", "granularity": "day", "row_limit": config.get("ROW_LIMIT"), "since": "1 year ago", "until": "now", + "metric": "count", "where": "", "viz_type": "cal_heatmap", "domain_granularity": "month", @@ -958,6 +948,69 @@ def load_random_time_series_data(): merge_slice(slc) +def load_country_map_data(): + """Loading data for map with country map""" + csvPath = os.path.join(DATA_FOLDER, 'birth_france_data_for_country_map.csv') + data = pd.read_csv(csvPath, encoding="utf-8") + data['date'] = datetime.datetime.now().date() + data.to_sql( + 'birth_france_by_region', + db.engine, + if_exists='replace', + chunksize=500, + dtype={ + 'DEPT_ID': String(10), + '2003': BigInteger, + '2004': BigInteger, + '2005': BigInteger, + '2006': BigInteger, + '2007': BigInteger, + '2008': BigInteger, + '2009': BigInteger, + '2010': BigInteger, + '2011': BigInteger, + '2012': BigInteger, + '2013': BigInteger, + '2014': BigInteger, + 'date': Date() + }, + index=False) + print("Done loading table!") + print("-" * 80) + print("Creating table reference") + obj = db.session.query(TBL).filter_by(table_name='birth_france_by_region').first() + if not obj: + obj = TBL(table_name='birth_france_by_region') + obj.main_dttm_col = 'date' + obj.database = get_or_create_main_db() + db.session.merge(obj) + db.session.commit() + obj.fetch_metadata() + tbl = obj + + slice_data = { + "granularity": "", + "since": "", + "until": "", + "where": "", + "viz_type": "country_map", + "entity": "DEPT_ID", + "metric": "avg__2004", + "row_limit": 500000, + } + + print("Creating a slice") + slc = Slice( + slice_name="Birth in France by department in 2016", + viz_type='country_map', + datasource_type='table', + datasource_id=tbl.id, + params=get_slice_json(slice_data), + ) + misc_dash_slices.append(slc.slice_name) + merge_slice(slc) + + def load_long_lat_data(): """Loading lat/long data from a csv file in the repo""" with gzip.open(os.path.join(DATA_FOLDER, 'san_francisco.csv.gz')) as f: @@ -965,7 +1018,7 @@ def load_long_lat_data(): pdf['date'] = datetime.datetime.now().date() pdf['occupancy'] = [random.randint(1, 6) for _ in range(len(pdf))] pdf['radius_miles'] = [random.uniform(1, 3) for _ in range(len(pdf))] - pdf.to_sql( + pdf.to_sql( # pylint: disable=no-member 'long_lat', db.engine, if_exists='replace', @@ -995,16 +1048,12 @@ def load_long_lat_data(): obj = TBL(table_name='long_lat') obj.main_dttm_col = 'date' obj.database = get_or_create_main_db() - obj.is_featured = False db.session.merge(obj) db.session.commit() obj.fetch_metadata() tbl = obj slice_data = { - "datasource_id": "7", - "datasource_name": "long_lat", - "datasource_type": "table", "granularity": "day", "since": "2014-01-01", "until": "now", @@ -1060,7 +1109,6 @@ def load_multiformat_time_series_data(): obj = TBL(table_name='multiformat_time_series') obj.main_dttm_col = 'ds' obj.database = get_or_create_main_db() - obj.is_featured = False dttm_and_expr_dict = { 'ds': [None, None], 'ds2': [None, None], @@ -1084,10 +1132,8 @@ def load_multiformat_time_series_data(): print("Creating some slices") for i, col in enumerate(tbl.columns): slice_data = { + "metric": 'count', "granularity_sqla": col.column_name, - "datasource_id": "8", - "datasource_name": "multiformat_time_series", - "datasource_type": "table", "granularity": "day", "row_limit": config.get("ROW_LIMIT"), "since": "1 year ago", diff --git a/superset/data/birth_france_data_for_country_map.csv b/superset/data/birth_france_data_for_country_map.csv new file mode 100644 index 0000000000000..5de8d4551fa0d --- /dev/null +++ b/superset/data/birth_france_data_for_country_map.csv @@ -0,0 +1,97 @@ +DEPT_ID,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014 +FR-01,6866,6706,6976,7228,6949,7323,7157,7282,7265,7242,7296,7354 +FR-02,6841,6761,6889,7041,6847,7012,6941,7050,6939,6755,6559,6468 +FR-03,3391,3335,3363,3503,3277,3289,3308,3402,3196,3288,3198,3152 +FR-04,1460,1522,1514,1536,1569,1569,1513,1547,1578,1561,1629,1538 +FR-05,1408,1403,1395,1461,1448,1441,1513,1470,1399,1441,1406,1383 +FR-06,11144,11514,11631,11754,11633,12275,11949,12257,11999,12087,12149,12170 +FR-07,3367,3176,3414,3484,3484,3447,3307,3380,3360,3405,3179,3254 +FR-08,3532,3422,3420,3343,3552,3522,3312,3254,3137,3258,3021,2966 +FR-09,1350,1412,1389,1499,1570,1493,1452,1473,1404,1425,1413,1364 +FR-10,3428,3553,3692,3685,3619,3721,3745,3722,3635,3587,3436,3377 +FR-11,3421,3321,3502,3661,3723,3778,3797,3770,3789,3669,3618,3516 +FR-12,2558,2614,2701,2829,2769,2748,2640,2694,2682,2615,2475,2555 +FR-13,23908,24056,24411,25371,25126,25412,25547,26410,25889,26328,26762,26384 +FR-14,8231,8257,8251,8531,8310,8183,8304,8111,8041,7833,7644,7466 +FR-15,1344,1396,1391,1398,1357,1300,1377,1274,1237,1230,1290,1214 +FR-16,3401,3514,3570,3653,3618,3666,3408,3564,3459,3490,3472,3378 +FR-17,5935,5900,6069,6089,5903,6136,6209,6185,6065,5916,5778,5846 +FR-18,3301,3271,3313,3231,3341,3303,3229,3341,3159,3120,3128,3097 +FR-19,2133,2250,2319,2327,2245,2263,2231,2247,2196,2163,2055,2094 +FR-21,6079,6052,5844,5986,6015,5960,5852,5963,5906,5905,5769,5779 +FR-22,6413,6317,6287,6743,6473,6494,6559,6438,6221,6184,5927,5790 +FR-23,1011,957,1054,1038,1013,1029,1044,919,967,998,897,879 +FR-24,3607,3690,3662,3758,3760,3832,3672,3665,3645,3547,3486,3479 +FR-25,6529,6798,6782,6993,6804,7097,6914,7105,6826,6778,6732,6659 +FR-26,5525,5703,5579,5945,5833,5927,5846,5915,5978,5912,6026,5965 +FR-27,7213,7220,7386,7402,7471,7717,7714,7715,7738,7676,7352,7242 +FR-28,5370,5363,5585,5632,5440,5677,5573,5716,5540,5548,5312,5295 +FR-29,9900,9963,9851,10184,9962,10040,9733,9823,9615,9597,9277,9088 +FR-2A,1232,1228,1348,1337,1284,1370,1422,1408,1422,1398,1317,1371 +FR-2B,1455,1444,1525,1474,1564,1569,1580,1591,1662,1612,1599,1616 +FR-30,7446,7777,7901,8384,8190,8449,8354,8494,8467,8196,8427,8216 +FR-31,13989,13900,14233,14957,14968,15415,15317,15770,16031,16347,16290,16641 +FR-32,1635,1625,1666,1580,1669,1689,1718,1671,1587,1668,1648,1643 +FR-33,15610,15819,15722,16539,16514,16636,17072,17271,17098,17097,17265,17303 +FR-34,11380,11562,11636,12191,12252,12564,12531,12658,13000,12902,12899,13008 +FR-35,12134,12072,12405,12687,12606,12837,12917,12876,13033,12892,12729,12555 +FR-36,2312,2314,2394,2283,2341,2371,2178,2221,2137,2136,2006,2030 +FR-37,6620,6594,6644,6813,6434,6811,6828,6886,6696,6796,6594,6718 +FR-38,14885,15356,15447,15830,15646,15999,15916,16136,15739,15948,15724,15664 +FR-39,2964,3017,2924,3021,3037,3045,2897,2865,2758,2741,2675,2637 +FR-40,3477,3621,3574,3755,3953,3862,3914,3993,3853,3880,3864,3696 +FR-41,3617,3678,3724,3815,3752,3847,3786,3777,3667,3704,3581,3517 +FR-42,8804,8906,8975,9184,9222,9357,9174,9403,9357,9473,9086,9183 +FR-43,2458,2416,2485,2426,2301,2398,2390,2348,2300,2244,2247,2157 +FR-44,15795,15988,16301,16530,16664,16763,16766,17159,16747,16821,16822,16700 +FR-45,8265,8424,8200,8635,8644,8524,8499,8757,8686,8689,8526,8355 +FR-46,1537,1430,1477,1563,1511,1555,1435,1506,1423,1487,1345,1415 +FR-47,3173,3245,3341,3426,3399,3378,3445,3359,3397,3332,3361,3347 +FR-48,768,772,760,784,781,779,798,736,695,711,663,651 +FR-49,10018,10085,10148,10548,10227,10270,10165,10312,10320,10061,10016,9781 +FR-50,5490,5487,5538,5448,5356,5384,5231,5238,5193,5282,4998,4911 +FR-51,6916,6979,7108,7118,6932,7065,7061,7182,7070,6761,7000,6887 +FR-52,2100,2095,2029,2104,2062,2037,1944,1889,1916,1847,1923,1881 +FR-53,3846,3932,3981,4118,3835,3912,3897,3962,3733,3750,3656,3456 +FR-54,8398,8671,8542,8743,8421,8559,8487,8536,8499,8387,8197,8135 +FR-55,2218,2287,2158,2294,2296,2220,2122,2221,2119,2107,2070,1928 +FR-56,7817,8036,7802,8221,7968,8288,7942,8029,7894,7909,7645,7554 +FR-57,11710,11970,12048,12114,11853,12012,11831,11856,11474,11579,11421,11385 +FR-58,2123,2181,2115,2137,2151,2049,1986,1982,1999,1942,1850,1801 +FR-59,36099,36257,35960,36858,36531,36572,36508,36703,36678,36513,36354,35923 +FR-60,10696,10630,10753,11144,11097,11162,11013,10960,11032,10941,10814,10802 +FR-61,3323,3243,3117,3276,3316,3185,3248,3192,3105,2933,2834,2810 +FR-62,18888,19304,19407,19780,19668,19902,19661,19784,19720,19017,19054,18809 +FR-63,6576,6632,6701,6902,6896,6865,6774,7131,6828,6933,6699,6908 +FR-64,6436,6338,6395,6680,6288,6455,6652,6569,6459,6490,6269,6497 +FR-65,2144,2186,2095,2284,2266,2095,2161,2149,2110,2201,2057,2111 +FR-66,4456,4320,4563,4779,4638,4756,4837,4869,4843,4943,4914,4800 +FR-67,13024,12828,13195,13388,13152,13231,13218,13346,13030,12895,13043,13262 +FR-68,9045,8945,8912,9324,8941,8909,8938,9177,8927,8818,8713,8826 +FR-69,23376,23796,24270,24808,24465,25120,25528,25973,25921,26294,25914,26712 +FR-70,2675,2773,2827,2975,2888,2755,2785,2761,2643,2609,2510,2458 +FR-71,5717,5709,5789,5876,5736,5860,5838,5865,5811,5752,5514,5552 +FR-72,6871,6935,6770,7133,6808,6909,6957,6942,6810,6703,6645,6664 +FR-73,4687,4736,4795,4903,5000,4971,4863,5074,4917,4786,4762,4798 +FR-74,8839,8753,8967,9124,8939,9333,9271,9521,9476,9829,9893,9982 +FR-75,31493,31817,31378,31748,30820,30623,31063,31447,30094,29291,28945,29134 +FR-76,15862,15650,15691,16004,16066,16041,15947,16338,16146,16014,15574,15199 +FR-77,17501,17729,18317,18986,18978,19240,19331,19712,19824,19678,19331,19708 +FR-78,19937,19431,19766,20438,19899,19895,19868,20312,19886,19827,19886,19525 +FR-79,3994,4100,4191,4057,4037,4331,4157,4060,4006,4029,3986,3718 +FR-80,7134,7035,7024,7021,6939,7094,6838,7103,6989,6843,6743,6506 +FR-81,3579,3611,3837,3933,3869,4056,4030,3925,4006,3939,3829,3831 +FR-82,2398,2591,2590,2823,2858,2932,2935,2926,2978,2940,2827,2829 +FR-83,10388,10622,10646,10889,10938,11131,10955,11159,11146,11240,10917,11123 +FR-84,6547,6629,6608,6805,6694,7000,7014,6967,7008,7107,7171,7058 +FR-85,6874,7062,7299,7589,7647,7629,7718,7601,7442,7436,7164,7070 +FR-86,4594,4568,4725,4850,4753,4909,4953,5006,4885,4880,4708,4686 +FR-87,3449,3659,3834,3754,3829,3891,3985,3848,3907,3825,3723,3724 +FR-88,4291,4264,4310,4416,4274,4215,4252,4057,3883,3715,3796,3679 +FR-89,3710,3844,3821,3929,3917,4045,3991,3842,3699,3729,3780,3621 +FR-90,1896,1766,1837,1888,1880,1818,1822,1802,1794,1763,1675,1707 +FR-91,17122,17614,17753,18281,17932,18134,18040,18509,18493,18506,18510,18903 +FR-92,24607,24649,24588,25426,24937,25217,25192,25194,25083,24790,24614,24675 +FR-93,25868,26313,26760,27916,27743,28062,28313,28513,28362,28675,28687,29471 +FR-94,19637,19866,19947,20948,20331,20736,21022,21391,20991,20967,20748,21566 +FR-95,17346,17863,18012,19015,18624,18761,18728,19506,19551,19495,19550,19737 \ No newline at end of file diff --git a/superset/dataframe.py b/superset/dataframe.py index 1785fda32f6c9..f3b9f3e1be41c 100644 --- a/superset/dataframe.py +++ b/superset/dataframe.py @@ -10,6 +10,9 @@ from __future__ import print_function from __future__ import unicode_literals +from datetime import datetime, date +from past.builtins import basestring + import pandas as pd import numpy as np @@ -19,6 +22,22 @@ class SupersetDataFrame(object): + # Mapping numpy dtype.char to generic database types + type_map = { + 'b': 'BOOL', # boolean + 'i': 'INT', # (signed) integer + 'u': 'INT', # unsigned integer + 'l': 'INT', # 64bit integer + 'f': 'FLOAT', # floating-point + 'c': 'FLOAT', # complex-floating point + 'm': None, # timedelta + 'M': 'DATETIME', # datetime + 'O': 'OBJECT', # (Python) objects + 'S': 'BYTE', # (byte-)string + 'U': 'STRING', # Unicode + 'V': None, # raw data (void) + } + def __init__(self, df): self.__df = df.where((pd.notnull(df)), None) @@ -30,8 +49,49 @@ def size(self): def data(self): return self.__df.to_dict(orient='records') + @classmethod + def db_type(cls, dtype): + """Given a numpy dtype, Returns a generic database type""" + return cls.type_map.get(dtype.char) + + @classmethod + def datetime_conversion_rate(cls, data_series): + success = 0 + total = 0 + for value in data_series: + total += 1 + try: + pd.to_datetime(value) + success += 1 + except Exception: + continue + return 100 * success / total + + @classmethod + def is_date(cls, dtype): + if dtype.name: + return dtype.name.startswith('datetime') + + @classmethod + def is_dimension(cls, dtype, column_name): + if cls.is_id(column_name): + return False + return dtype.name in ('object', 'bool') + + @classmethod + def is_id(cls, column_name): + return column_name.startswith('id') or column_name.endswith('id') + + @classmethod + def agg_func(cls, dtype, column_name): + # consider checking for key substring too. + if cls.is_id(column_name): + return 'count_distinct' + if np.issubdtype(dtype, np.number): + return 'sum' + @property - def columns_dict(self): + def columns(self): """Provides metadata about columns for data visualization. :return: dict, with the fields name, type, is_date, is_dim and agg. @@ -45,22 +105,33 @@ def columns_dict(self): if sample_size: sample = self.__df.sample(sample_size) for col in self.__df.dtypes.keys(): + col_db_type = self.db_type(self.__df.dtypes[col]) column = { 'name': col, - 'type': self.__df.dtypes[col].name, - 'is_date': is_date(self.__df.dtypes[col]), - 'is_dim': is_dimension(self.__df.dtypes[col], col), + 'agg': self.agg_func(self.__df.dtypes[col], col), + 'type': col_db_type, + 'is_date': self.is_date(self.__df.dtypes[col]), + 'is_dim': self.is_dimension(self.__df.dtypes[col], col), } - agg = agg_func(self.__df.dtypes[col], col) - if agg_func: - column['agg'] = agg - if column['type'] == 'object': + if column['type'] in ('OBJECT', None): + v = sample[col].iloc[0] if not sample[col].empty else None + if isinstance(v, basestring): + column['type'] = 'STRING' + elif isinstance(v, int): + column['type'] = 'INT' + elif isinstance(v, float): + column['type'] = 'FLOAT' + elif isinstance(v, (datetime, date)): + column['type'] = 'DATETIME' + column['is_date'] = True + column['is_dim'] = False # check if encoded datetime - if (datetime_conversion_rate(sample[col]) > + if ( + column['type'] == 'STRING' and + self.datetime_conversion_rate(sample[col]) > INFER_COL_TYPES_THRESHOLD): column.update({ - 'type': 'datetime_string', 'is_date': True, 'is_dim': False, 'agg': None @@ -69,44 +140,4 @@ def columns_dict(self): if not column['agg']: column.pop('agg', None) columns.append(column) - return columns - - -# It will give false positives on the numbers that are stored as strings. -# It is hard to distinguish integer numbers and timestamps -def datetime_conversion_rate(data_series): - success = 0 - total = 0 - for value in data_series: - total += 1 - try: - pd.to_datetime(value) - success += 1 - except Exception: - continue - return 100 * success / total - - -def is_date(dtype): - if dtype.name: - return dtype.name.startswith('datetime') - - -def is_dimension(dtype, column_name): - if is_id(column_name): - return False - return dtype.name in ('object', 'bool') - - -def is_id(column_name): - return column_name.startswith('id') or column_name.endswith('id') - - -def agg_func(dtype, column_name): - # consider checking for key substring too. - if is_id(column_name): - return 'count_distinct' - if np.issubdtype(dtype, np.number): - return 'sum' - return None diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py index 8bcb1a304931b..d4a7fa0e4de4d 100644 --- a/superset/db_engine_specs.py +++ b/superset/db_engine_specs.py @@ -16,13 +16,24 @@ from __future__ import print_function from __future__ import unicode_literals -from collections import namedtuple +from collections import namedtuple, defaultdict + import inspect +import logging +import re import textwrap import time +import sqlparse +from sqlalchemy import select +from sqlalchemy.sql import text from flask_babel import lazy_gettext as _ +from superset.utils import SupersetTemplateException +from superset.utils import QueryStatus +from superset import utils +from superset import cache_util + Grain = namedtuple('Grain', 'name label function') @@ -33,9 +44,21 @@ class LimitMethod(object): class BaseEngineSpec(object): + + """Abstract class for database engine specific configurations""" + engine = 'base' # str as defined in sqlalchemy.engine.engine + cursor_execute_kwargs = {} time_grains = tuple() + time_groupby_inline = False limit_method = LimitMethod.FETCH_MANY + time_secondary_columns = False + + @classmethod + def fetch_data(cls, cursor, limit): + if cls.limit_method == LimitMethod.FETCH_MANY: + return cursor.fetchmany(limit) + return cursor.fetchall() @classmethod def epoch_to_dttm(cls): @@ -54,6 +77,33 @@ def extra_table_metadata(cls, database, table_name, schema_name): def convert_dttm(cls, target_type, dttm): return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S')) + @classmethod + @cache_util.memoized_func( + timeout=600, + key=lambda *args, **kwargs: 'db:{}:{}'.format(args[0].id, args[1])) + def fetch_result_sets(cls, db, datasource_type, force=False): + """Returns the dictionary {schema : [result_set_name]}. + + Datasource_type can be 'table' or 'view'. + Empty schema corresponds to the list of full names of the all + tables or views: .. + """ + schemas = db.inspector.get_schema_names() + result_sets = {} + all_result_sets = [] + for schema in schemas: + if datasource_type == 'table': + result_sets[schema] = sorted( + db.inspector.get_table_names(schema)) + elif datasource_type == 'view': + result_sets[schema] = sorted( + db.inspector.get_view_names(schema)) + all_result_sets += [ + '{}.{}'.format(schema, t) for t in result_sets[schema]] + if all_result_sets: + result_sets[""] = all_result_sets + return result_sets + @classmethod def handle_cursor(cls, cursor, query, session): """Handle a live cursor between the execute and fetchall calls @@ -63,6 +113,32 @@ def handle_cursor(cls, cursor, query, session): query object""" pass + @classmethod + def extract_error_message(cls, e): + """Extract error message for queries""" + return utils.error_msg_from_exception(e) + + @classmethod + def adjust_database_uri(cls, uri, selected_schema): + """Based on a URI and selected schema, return a new URI + + The URI here represents the URI as entered when saving the database, + ``selected_schema`` is the schema currently active presumably in + the SQL Lab dropdown. Based on that, for some database engine, + we can return a new altered URI that connects straight to the + active schema, meaning the users won't have to prefix the object + names by the schema name. + + Some databases engines have 2 level of namespacing: database and + schema (postgres, oracle, mssql, ...) + For those it's probably better to not alter the database + component of the URI with the schema name, it won't work. + + Some database drivers like presto accept "{catalog}/{schema}" in + the database component of the URL, that can be handled here. + """ + return uri + @classmethod def sql_preprocessor(cls, sql): """If the SQL needs to be altered prior to running it @@ -71,6 +147,45 @@ def sql_preprocessor(cls, sql): """ return sql + @classmethod + def patch(cls): + pass + + @classmethod + def get_table_names(cls, schema, inspector): + return sorted(inspector.get_table_names(schema)) + + @classmethod + def where_latest_partition( + cls, table_name, schema, database, qry, columns=None): + return False + + @classmethod + def select_star(cls, my_db, table_name, schema=None, limit=100, + show_cols=False, indent=True, latest_partition=True): + fields = '*' + cols = [] + if show_cols or latest_partition: + cols = my_db.get_table(table_name, schema=schema).columns + + if show_cols: + fields = [my_db.get_quoter()(c.name) for c in cols] + full_table_name = table_name + if schema: + full_table_name = schema + '.' + table_name + qry = select(fields).select_from(text(full_table_name)) + if limit: + qry = qry.limit(limit) + if latest_partition: + partition_query = cls.where_latest_partition( + table_name, schema, my_db, qry, columns=cols) + if partition_query != False: # noqa + qry = partition_query + sql = my_db.compile_sqla_query(qry) + if indent: + sql = sqlparse.format(sql, reindent=True) + return sql + class PostgresEngineSpec(BaseEngineSpec): engine = 'postgresql' @@ -87,6 +202,14 @@ class PostgresEngineSpec(BaseEngineSpec): Grain("year", _('year'), "DATE_TRUNC('year', {col})"), ) + @classmethod + def fetch_data(cls, cursor, limit): + if not cursor.description: + return [] + if cls.limit_method == LimitMethod.FETCH_MANY: + return cursor.fetchmany(limit) + return cursor.fetchall() + @classmethod def epoch_to_dttm(cls): return "(timestamp 'epoch' + {col} * interval '1 second')" @@ -96,6 +219,50 @@ def convert_dttm(cls, target_type, dttm): return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S')) +class Db2EngineSpec(BaseEngineSpec): + engine = 'ibm_db_sa' + time_grains = ( + Grain('Time Column', _('Time Column'), '{col}'), + Grain('second', _('second'), + 'CAST({col} as TIMESTAMP)' + ' - MICROSECOND({col}) MICROSECONDS'), + Grain('minute', _('minute'), + 'CAST({col} as TIMESTAMP)' + ' - SECOND({col}) SECONDS' + ' - MICROSECOND({col}) MICROSECONDS'), + Grain('hour', _('hour'), + 'CAST({col} as TIMESTAMP)' + ' - MINUTE({col}) MINUTES' + ' - SECOND({col}) SECONDS' + ' - MICROSECOND({col}) MICROSECONDS '), + Grain('day', _('day'), + 'CAST({col} as TIMESTAMP)' + ' - HOUR({col}) HOURS' + ' - MINUTE({col}) MINUTES' + ' - SECOND({col}) SECONDS' + ' - MICROSECOND({col}) MICROSECONDS '), + Grain('week', _('week'), + '{col} - (DAYOFWEEK({col})) DAYS'), + Grain('month', _('month'), + '{col} - (DAY({col})-1) DAYS'), + Grain('quarter', _('quarter'), + '{col} - (DAY({col})-1) DAYS' + ' - (MONTH({col})-1) MONTHS' + ' + ((QUARTER({col})-1) * 3) MONTHS'), + Grain('year', _('year'), + '{col} - (DAY({col})-1) DAYS' + ' - (MONTH({col})-1) MONTHS'), + ) + + @classmethod + def epoch_to_dttm(cls): + return "(TIMESTAMP('1970-01-01', '00:00:00') + {col} SECONDS)" + + @classmethod + def convert_dttm(cls, target_type, dttm): + return "'{}'".format(dttm.strftime('%Y-%m-%d-%H.%M.%S')) + + class SqliteEngineSpec(BaseEngineSpec): engine = 'sqlite' time_grains = ( @@ -104,13 +271,32 @@ class SqliteEngineSpec(BaseEngineSpec): Grain("week", _('week'), "DATE({col}, -strftime('%w', {col}) || ' days')"), Grain("month", _('month'), - "DATE({col}, -strftime('%d', {col}) || ' days')"), + "DATE({col}, -strftime('%d', {col}) || ' days', '+1 day')"), ) @classmethod def epoch_to_dttm(cls): return "datetime({col}, 'unixepoch')" + @classmethod + @cache_util.memoized_func( + timeout=600, + key=lambda *args, **kwargs: 'db:{}:{}'.format(args[0].id, args[1])) + def fetch_result_sets(cls, db, datasource_type, force=False): + schemas = db.inspector.get_schema_names() + result_sets = {} + all_result_sets = [] + schema = schemas[0] + if datasource_type == 'table': + result_sets[schema] = sorted(db.inspector.get_table_names()) + elif datasource_type == 'view': + result_sets[schema] = sorted(db.inspector.get_view_names()) + all_result_sets += [ + '{}.{}'.format(schema, t) for t in result_sets[schema]] + if all_result_sets: + result_sets[""] = all_result_sets + return result_sets + @classmethod def convert_dttm(cls, target_type, dttm): iso = dttm.isoformat().replace('T', ' ') @@ -118,9 +304,15 @@ def convert_dttm(cls, target_type, dttm): iso += '.000000' return "'{}'".format(iso) + @classmethod + def get_table_names(cls, schema, inspector): + """Need to disregard the schema for Sqlite""" + return sorted(inspector.get_table_names()) + class MySQLEngineSpec(BaseEngineSpec): engine = 'mysql' + cursor_execute_kwargs = {'args': {}} time_grains = ( Grain('Time Column', _('Time Column'), '{col}'), Grain("second", _('second'), "DATE_ADD(DATE({col}), " @@ -151,6 +343,12 @@ def convert_dttm(cls, target_type, dttm): dttm.strftime('%Y-%m-%d %H:%M:%S')) return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S')) + @classmethod + def adjust_database_uri(cls, uri, selected_schema=None): + if selected_schema: + uri.database = selected_schema + return uri + @classmethod def epoch_to_dttm(cls): return "from_unixtime({col})" @@ -158,6 +356,7 @@ def epoch_to_dttm(cls): class PrestoEngineSpec(BaseEngineSpec): engine = 'presto' + cursor_execute_kwargs = {'parameters': None} time_grains = ( Grain('Time Column', _('Time Column'), '{col}'), @@ -184,8 +383,21 @@ class PrestoEngineSpec(BaseEngineSpec): ) @classmethod - def sql_preprocessor(cls, sql): - return sql.replace('%', '%%') + def patch(cls): + from pyhive import presto + from superset.db_engines import presto as patched_presto + presto.Cursor.cancel = patched_presto.cancel + + @classmethod + def adjust_database_uri(cls, uri, selected_schema=None): + database = uri.database + if selected_schema: + if '/' in database: + database = database.split('/')[0] + '/' + selected_schema + else: + database += '/' + selected_schema + uri.database = database + return uri @classmethod def convert_dttm(cls, target_type, dttm): @@ -200,26 +412,27 @@ def convert_dttm(cls, target_type, dttm): def epoch_to_dttm(cls): return "from_unixtime({col})" - @staticmethod - def show_partition_pql( - table_name, schema_name=None, order_by=None, limit=100): - if schema_name: - table_name = schema_name + '.' + table_name - order_by = order_by or [] - order_by_clause = '' - if order_by: - order_by_clause = "ORDER BY " + ', '.join(order_by) + " DESC" - - limit_clause = '' - if limit: - limit_clause = "LIMIT {}".format(limit) - - return textwrap.dedent("""\ - SHOW PARTITIONS - FROM {table_name} - {order_by_clause} - {limit_clause} - """).format(**locals()) + @classmethod + @cache_util.memoized_func( + timeout=600, + key=lambda *args, **kwargs: 'db:{}:{}'.format(args[0].id, args[1])) + def fetch_result_sets(cls, db, datasource_type, force=False): + """Returns the dictionary {schema : [result_set_name]}. + + Datasource_type can be 'table' or 'view'. + Empty schema corresponds to the list of full names of the all + tables or views: .. + """ + result_set_df = db.get_df( + """SELECT table_schema, table_name FROM INFORMATION_SCHEMA.{}S + ORDER BY concat(table_schema, '.', table_name)""".format( + datasource_type.upper()), None) + result_sets = defaultdict(list) + for unused, row in result_set_df.iterrows(): + result_sets[row['table_schema']].append(row['table_name']) + result_sets[""].append('{}.{}'.format( + row['table_schema'], row['table_name'])) + return result_sets @classmethod def extra_table_metadata(cls, database, table_name, schema_name): @@ -227,22 +440,24 @@ def extra_table_metadata(cls, database, table_name, schema_name): if not indexes: return {} cols = indexes[0].get('column_names', []) - pql = cls.show_partition_pql(table_name, schema_name, cols) - df = database.get_df(pql, schema_name) - latest_part = df.to_dict(orient='records')[0] if not df.empty else None - - partition_query = cls.show_partition_pql(table_name, schema_name, cols) + full_table_name = table_name + if schema_name and '.' not in table_name: + full_table_name = "{}.{}".format(schema_name, table_name) + pql = cls._partition_query(full_table_name) + col_name, latest_part = cls.latest_partition( + table_name, schema_name, database, show_first=True) return { 'partitions': { 'cols': cols, - 'latest': latest_part, - 'partitionQuery': partition_query, + 'latest': {col_name: latest_part}, + 'partitionQuery': pql, } } @classmethod def handle_cursor(cls, cursor, query, session): """Updates progress information""" + logging.info('Polling the cursor for progress') polled = cursor.poll() # poll returns dict -- JSON status information or ``None`` # if the query is done @@ -251,17 +466,301 @@ def handle_cursor(cls, cursor, query, session): while polled: # Update the object and wait for the kill signal. stats = polled.get('stats', {}) + + query = session.query(type(query)).filter_by(id=query.id).one() + if query.status == QueryStatus.STOPPED: + cursor.cancel() + break + if stats: completed_splits = float(stats.get('completedSplits')) total_splits = float(stats.get('totalSplits')) if total_splits and completed_splits: progress = 100 * (completed_splits / total_splits) + logging.info( + 'Query progress: {} / {} ' + 'splits'.format(completed_splits, total_splits)) if progress > query.progress: query.progress = progress session.commit() time.sleep(1) + logging.info('Polling the cursor for progress') + polled = cursor.poll() + + @classmethod + def extract_error_message(cls, e): + if ( + hasattr(e, 'orig') and + type(e.orig).__name__ == 'DatabaseError' and + isinstance(e.orig[0], dict)): + error_dict = e.orig[0] + return '{} at {}: {}'.format( + error_dict['errorName'], + error_dict['errorLocation'], + error_dict['message'] + ) + return utils.error_msg_from_exception(e) + + @classmethod + def _partition_query( + cls, table_name, limit=0, order_by=None, filters=None): + """Returns a partition query + + :param table_name: the name of the table to get partitions from + :type table_name: str + :param limit: the number of partitions to be returned + :type limit: int + :param order_by: a list of tuples of field name and a boolean + that determines if that field should be sorted in descending + order + :type order_by: list of (str, bool) tuples + :param filters: a list of filters to apply + :param filters: dict of field name and filter value combinations + """ + limit_clause = "LIMIT {}".format(limit) if limit else '' + order_by_clause = '' + if order_by: + l = [] + for field, desc in order_by: + l.append(field + ' DESC' if desc else '') + order_by_clause = 'ORDER BY ' + ', '.join(l) + + where_clause = '' + if filters: + l = [] + for field, value in filters.items(): + l.append("{field} = '{value}'".format(**locals())) + where_clause = 'WHERE ' + ' AND '.join(l) + + sql = textwrap.dedent("""\ + SHOW PARTITIONS FROM {table_name} + {where_clause} + {order_by_clause} + {limit_clause} + """).format(**locals()) + return sql + + @classmethod + def _latest_partition_from_df(cls, df): + recs = df.to_records(index=False) + if recs: + return recs[0][0] + + @classmethod + def latest_partition(cls, table_name, schema, database, show_first=False): + """Returns col name and the latest (max) partition value for a table + + :param table_name: the name of the table + :type table_name: str + :param schema: schema / database / namespace + :type schema: str + :param database: database query will be run against + :type database: models.Database + :param show_first: displays the value for the first partitioning key + if there are many partitioning keys + :type show_first: bool + + >>> latest_partition('foo_table') + '2018-01-01' + """ + indexes = database.get_indexes(table_name, schema) + if len(indexes[0]['column_names']) < 1: + raise SupersetTemplateException( + "The table should have one partitioned field") + elif not show_first and len(indexes[0]['column_names']) > 1: + raise SupersetTemplateException( + "The table should have a single partitioned field " + "to use this function. You may want to use " + "`presto.latest_sub_partition`") + part_field = indexes[0]['column_names'][0] + sql = cls._partition_query(table_name, 1, [(part_field, True)]) + df = database.get_df(sql, schema) + return part_field, cls._latest_partition_from_df(df) + + @classmethod + def latest_sub_partition(cls, table_name, schema, database, **kwargs): + """Returns the latest (max) partition value for a table + + A filtering criteria should be passed for all fields that are + partitioned except for the field to be returned. For example, + if a table is partitioned by (``ds``, ``event_type`` and + ``event_category``) and you want the latest ``ds``, you'll want + to provide a filter as keyword arguments for both + ``event_type`` and ``event_category`` as in + ``latest_sub_partition('my_table', + event_category='page', event_type='click')`` + + :param table_name: the name of the table, can be just the table + name or a fully qualified table name as ``schema_name.table_name`` + :type table_name: str + :param schema: schema / database / namespace + :type schema: str + :param database: database query will be run against + :type database: models.Database + + :param kwargs: keyword arguments define the filtering criteria + on the partition list. There can be many of these. + :type kwargs: str + >>> latest_sub_partition('sub_partition_table', event_type='click') + '2018-01-01' + """ + indexes = database.get_indexes(table_name, schema) + part_fields = indexes[0]['column_names'] + for k in kwargs.keys(): + if k not in k in part_fields: + msg = "Field [{k}] is not part of the portioning key" + raise SupersetTemplateException(msg) + if len(kwargs.keys()) != len(part_fields) - 1: + msg = ( + "A filter needs to be specified for {} out of the " + "{} fields." + ).format(len(part_fields)-1, len(part_fields)) + raise SupersetTemplateException(msg) + + for field in part_fields: + if field not in kwargs.keys(): + field_to_return = field + + sql = cls._partition_query( + table_name, 1, [(field_to_return, True)], kwargs) + df = database.get_df(sql, schema) + if df.empty: + return '' + return df.to_dict()[field_to_return][0] + + +class HiveEngineSpec(PrestoEngineSpec): + + """Reuses PrestoEngineSpec functionality.""" + + engine = 'hive' + cursor_execute_kwargs = {'async': True} + + @classmethod + def patch(cls): + from pyhive import hive + from superset.db_engines import hive as patched_hive + from pythrifthiveapi.TCLIService import ( + constants as patched_constants, + ttypes as patched_ttypes, + TCLIService as patched_TCLIService) + + hive.TCLIService = patched_TCLIService + hive.constants = patched_constants + hive.ttypes = patched_ttypes + hive.Cursor.fetch_logs = patched_hive.fetch_logs + + @classmethod + @cache_util.memoized_func( + timeout=600, + key=lambda *args, **kwargs: 'db:{}:{}'.format(args[0].id, args[1])) + def fetch_result_sets(cls, db, datasource_type, force=False): + return BaseEngineSpec.fetch_result_sets( + db, datasource_type, force=force) + + @classmethod + def adjust_database_uri(cls, uri, selected_schema=None): + if selected_schema: + uri.database = selected_schema + return uri + + @classmethod + def progress(cls, logs): + # 17/02/07 19:36:38 INFO ql.Driver: Total jobs = 5 + jobs_stats_r = re.compile( + r'.*INFO.*Total jobs = (?P[0-9]+)') + # 17/02/07 19:37:08 INFO ql.Driver: Launching Job 2 out of 5 + launching_job_r = re.compile( + '.*INFO.*Launching Job (?P[0-9]+) out of ' + '(?P[0-9]+)') + # 17/02/07 19:36:58 INFO exec.Task: 2017-02-07 19:36:58,152 Stage-18 + # map = 0%, reduce = 0% + stage_progress = re.compile( + r'.*INFO.*Stage-(?P[0-9]+).*' + r'map = (?P[0-9]+)%.*' + r'reduce = (?P[0-9]+)%.*') + total_jobs = None + current_job = None + stages = {} + lines = logs.splitlines() + for line in lines: + match = jobs_stats_r.match(line) + if match: + total_jobs = int(match.groupdict()['max_jobs']) + match = launching_job_r.match(line) + if match: + current_job = int(match.groupdict()['job_number']) + stages = {} + match = stage_progress.match(line) + if match: + stage_number = int(match.groupdict()['stage_number']) + map_progress = int(match.groupdict()['map_progress']) + reduce_progress = int(match.groupdict()['reduce_progress']) + stages[stage_number] = (map_progress + reduce_progress) / 2 + + if not total_jobs or not current_job: + return 0 + stage_progress = sum( + stages.values()) / len(stages.values()) if stages else 0 + + progress = ( + 100 * (current_job - 1) / total_jobs + stage_progress / total_jobs + ) + return int(progress) + + @classmethod + def handle_cursor(cls, cursor, query, session): + """Updates progress information""" + from pyhive import hive + unfinished_states = ( + hive.ttypes.TOperationState.INITIALIZED_STATE, + hive.ttypes.TOperationState.RUNNING_STATE, + ) + polled = cursor.poll() + while polled.operationState in unfinished_states: + query = session.query(type(query)).filter_by(id=query.id).one() + if query.status == QueryStatus.STOPPED: + cursor.cancel() + break + + resp = cursor.fetch_logs() + if resp and resp.log: + progress = cls.progress(resp.log) + if progress > query.progress: + query.progress = progress + session.commit() + time.sleep(5) polled = cursor.poll() + @classmethod + def where_latest_partition( + cls, table_name, schema, database, qry, columns=None): + try: + col_name, value = cls.latest_partition( + table_name, schema, database) + except Exception: + # table is not partitioned + return False + for c in columns: + if str(c.name) == str(col_name): + return qry.where(c == str(value)) + return False + + @classmethod + def latest_sub_partition(cls, table_name, schema, database, **kwargs): + # TODO(bogdan): implement` + pass + + @classmethod + def _latest_partition_from_df(cls, df): + """Hive partitions look like ds={partition name}""" + return df.ix[:, 0].max().split('=')[1] + + @classmethod + def _partition_query( + cls, table_name, limit=0, order_by=None, filters=None): + return "SHOW PARTITIONS {table_name}".format(**locals()) + class MssqlEngineSpec(BaseEngineSpec): engine = 'mssql' @@ -331,6 +830,86 @@ def convert_dttm(cls, target_type, dttm): class VerticaEngineSpec(PostgresEngineSpec): engine = 'vertica' + +class AthenaEngineSpec(BaseEngineSpec): + engine = 'awsathena' + + time_grains = ( + Grain('Time Column', _('Time Column'), '{col}'), + Grain('second', _('second'), + "date_trunc('second', CAST({col} AS TIMESTAMP))"), + Grain('minute', _('minute'), + "date_trunc('minute', CAST({col} AS TIMESTAMP))"), + Grain('hour', _('hour'), + "date_trunc('hour', CAST({col} AS TIMESTAMP))"), + Grain('day', _('day'), + "date_trunc('day', CAST({col} AS TIMESTAMP))"), + Grain('week', _('week'), + "date_trunc('week', CAST({col} AS TIMESTAMP))"), + Grain('month', _('month'), + "date_trunc('month', CAST({col} AS TIMESTAMP))"), + Grain('quarter', _('quarter'), + "date_trunc('quarter', CAST({col} AS TIMESTAMP))"), + Grain("week_ending_saturday", _('week_ending_saturday'), + "date_add('day', 5, date_trunc('week', date_add('day', 1, " + "CAST({col} AS TIMESTAMP))))"), + Grain("week_start_sunday", _('week_start_sunday'), + "date_add('day', -1, date_trunc('week', " + "date_add('day', 1, CAST({col} AS TIMESTAMP))))"), + ) + + @classmethod + def convert_dttm(cls, target_type, dttm): + tt = target_type.upper() + if tt == 'DATE': + return "from_iso8601_date('{}')".format(dttm.isoformat()[:10]) + if tt == 'TIMESTAMP': + return "from_iso8601_timestamp('{}')".format(dttm.isoformat()) + return ("CAST ('{}' AS TIMESTAMP)" + .format(dttm.strftime('%Y-%m-%d %H:%M:%S'))) + + @classmethod + def epoch_to_dttm(cls): + return "from_unixtime({col})" + + +class ClickHouseEngineSpec(BaseEngineSpec): + """Dialect for ClickHouse analytical DB.""" + + engine = 'clickhouse' + + time_secondary_columns = True + time_groupby_inline = True + time_grains = ( + Grain('Time Column', _('Time Column'), '{col}'), + Grain('minute', _('minute'), + "toStartOfMinute(toDateTime({col}))"), + Grain('5 minute', _('5 minute'), + "toDateTime(intDiv(toUInt32(toDateTime({col})), 300)*300)"), + Grain('10 minute', _('10 minute'), + "toDateTime(intDiv(toUInt32(toDateTime({col})), 600)*600)"), + Grain('hour', _('hour'), + "toStartOfHour(toDateTime({col}))"), + Grain('day', _('day'), + "toStartOfDay(toDateTime({col}))"), + Grain('month', _('month'), + "toStartOfMonth(toDateTime({col}))"), + Grain('quarter', _('quarter'), + "toStartOfQuarter(toDateTime({col}))"), + Grain('year', _('year'), + "toStartOfYear(toDateTime({col}))"), + ) + + @classmethod + def convert_dttm(cls, target_type, dttm): + tt = target_type.upper() + if tt == 'DATE': + return "toDate('{}')".format(dttm.strftime('%Y-%m-%d')) + if tt == 'DATETIME': + return "toDateTime('{}')".format( + dttm.strftime('%Y-%m-%d %H:%M:%S')) + return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S')) + engines = { o.engine: o for o in globals().values() if inspect.isclass(o) and issubclass(o, BaseEngineSpec)} diff --git a/superset/db_engines/__init__.py b/superset/db_engines/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/superset/db_engines/hive.py b/superset/db_engines/hive.py new file mode 100644 index 0000000000000..d3244feac62b0 --- /dev/null +++ b/superset/db_engines/hive.py @@ -0,0 +1,41 @@ +from pyhive import hive +from pythrifthiveapi.TCLIService import ttypes + + +# TODO: contribute back to pyhive. +def fetch_logs(self, max_rows=1024, + orientation=ttypes.TFetchOrientation.FETCH_NEXT): + """Mocked. Retrieve the logs produced by the execution of the query. + Can be called multiple times to fetch the logs produced after + the previous call. + :returns: list + :raises: ``ProgrammingError`` when no query has been started + .. note:: + This is not a part of DB-API. + """ + try: + req = ttypes.TGetLogReq(operationHandle=self._operationHandle) + logs = self._connection.client.GetLog(req) + return logs + except ttypes.TApplicationException as e: # raised if Hive is used + if self._state == self._STATE_NONE: + raise hive.ProgrammingError("No query yet") + logs = [] + while True: + req = ttypes.TFetchResultsReq( + operationHandle=self._operationHandle, + orientation=ttypes.TFetchOrientation.FETCH_NEXT, + maxRows=self.arraysize, + fetchType=1 # 0: results, 1: logs + ) + response = self._connection.client.FetchResults(req) + hive._check_status(response) + assert not ( + response.results.rows, 'expected data in columnar format' + ) + assert len(response.results.columns) == 1, response.results.columns + new_logs = hive._unwrap_column(response.results.columns[0]) + logs += new_logs + if not new_logs: + break + return logs diff --git a/superset/db_engines/presto.py b/superset/db_engines/presto.py new file mode 100644 index 0000000000000..57d04601711a7 --- /dev/null +++ b/superset/db_engines/presto.py @@ -0,0 +1,21 @@ +from pyhive import presto + + +# TODO(bogdan): Remove this when new pyhive release will be available. +def cancel(self): + if self._state == self._STATE_NONE: + raise presto.ProgrammingError("No query yet") + if self._nextUri is None: + assert self._state == self._STATE_FINISHED, \ + "Should be finished if nextUri is None" + return + + response = presto.requests.delete(self._nextUri) + + # pylint: disable=no-member + if response.status_code != presto.requests.codes.no_content: + fmt = "Unexpected status code after cancel {}\n{}" + raise presto.OperationalError( + fmt.format(response.status_code, response.content)) + self._state = self._STATE_FINISHED + return diff --git a/superset/forms.py b/superset/forms.py deleted file mode 100755 index 63e1f1084257c..0000000000000 --- a/superset/forms.py +++ /dev/null @@ -1,1165 +0,0 @@ -"""Contains the logic to create cohesive forms on the explore view""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -from collections import OrderedDict -from copy import copy -import json -import math - -from flask_babel import lazy_gettext as _ -from wtforms import ( - Form, SelectMultipleField, SelectField, TextField, TextAreaField, - BooleanField, IntegerField, HiddenField, DecimalField) -from wtforms import validators, widgets - -from superset import app - -config = app.config - -TIMESTAMP_CHOICES = [ - ('smart_date', 'Adaptive formatting'), - ("%m/%d/%Y", '"%m/%d/%Y" | 01/14/2019'), - ("%Y-%m-%d", '"%Y-%m-%d" | 2019-01-14'), - ("%Y-%m-%d %H:%M:%S", - '"%Y-%m-%d %H:%M:%S" | 2019-01-14 01:32:10'), - ("%H:%M:%S", '"%H:%M:%S" | 01:32:10'), -] -AXIS_FORMAT_CHOICES = [ - ('.3s', '".3s" | 12.3k'), - ('.3%', '".3%" | 1234543.210%'), - ('.4r', '".4r" | 12350'), - ('.3f', '".3f" | 12345.432'), - ('+,', '"+," | +12,345.4321'), - ('$,.2f', '"$,.2f" | $12,345.43'), -] -D3_FORMAT_DOCS = _( - "D3 format syntax " - "https://github.com/d3/d3-format") - - -class BetterBooleanField(BooleanField): - - """Fixes the html checkbox to distinguish absent from unchecked - - (which doesn't distinguish False from NULL/missing ) - If value is unchecked, this hidden fills in False value - """ - - def __call__(self, **kwargs): - html = super(BetterBooleanField, self).__call__(**kwargs) - html += u''.format(self.name) - return widgets.HTMLString(html) - - -class SelectMultipleSortableField(SelectMultipleField): - - """Works along with select2sortable to preserves the sort order""" - - def iter_choices(self): - d = OrderedDict() - for value, label in self.choices: - selected = self.data is not None and self.coerce(value) in self.data - d[value] = (value, label, selected) - if self.data: - for value in self.data: - if value and value in d: - yield d.pop(value) - while d: - yield d.popitem(last=False)[1] - - -class FreeFormSelect(widgets.Select): - - """A WTF widget that allows for free form entry""" - - def __call__(self, field, **kwargs): - kwargs.setdefault('id', field.id) - if self.multiple: - kwargs['multiple'] = True - html = ['') - return widgets.HTMLString(''.join(html)) - - -class FreeFormSelectField(SelectField): - - """A WTF SelectField that allows for free form input""" - - widget = FreeFormSelect() - - def pre_validate(self, form): - return - - -class OmgWtForm(Form): - - """Supersetification of the WTForm Form object""" - - fieldsets = {} - css_classes = dict() - - def get_field(self, fieldname): - return getattr(self, fieldname) - - def field_css_classes(self, fieldname): - if fieldname in self.css_classes: - return " ".join(self.css_classes[fieldname]) - return "" - - -class FormFactory(object): - - """Used to create the forms in the explore view dynamically""" - - series_limits = [0, 5, 10, 25, 50, 100, 500] - fieltype_class = { - SelectField: 'select2', - SelectMultipleField: 'select2', - FreeFormSelectField: 'select2_freeform', - SelectMultipleSortableField: 'select2Sortable', - } - - def __init__(self, viz): - self.viz = viz - from superset.viz import viz_types - viz = self.viz - datasource = viz.datasource - if not datasource.metrics_combo: - raise Exception("Please define at least one metric for your table") - default_metric = datasource.metrics_combo[0][0] - - gb_cols = datasource.groupby_column_names - default_groupby = gb_cols[0] if gb_cols else None - group_by_choices = self.choicify(gb_cols) - order_by_choices = [] - for s in sorted(datasource.column_names): - order_by_choices.append((json.dumps([s, True]), s + ' [asc]')) - order_by_choices.append((json.dumps([s, False]), s + ' [desc]')) - # Pool of all the fields that can be used in Superset - field_data = { - 'viz_type': (SelectField, { - "label": _("Viz"), - "default": 'table', - "choices": [(k, v.verbose_name) for k, v in viz_types.items()], - "description": _("The type of visualization to display") - }), - 'metrics': (SelectMultipleSortableField, { - "label": _("Metrics"), - "choices": datasource.metrics_combo, - "default": [default_metric], - "description": _("One or many metrics to display") - }), - 'order_by_cols': (SelectMultipleSortableField, { - "label": _("Ordering"), - "choices": order_by_choices, - "description": _("One or many metrics to display") - }), - 'metric': (SelectField, { - "label": _("Metric"), - "choices": datasource.metrics_combo, - "default": default_metric, - "description": _("Choose the metric") - }), - 'metric_2': (SelectField, { - "label": _("Right Axis Metric"), - "choices": datasource.metrics_combo, - "default": default_metric, - "description": _("Choose the metric for second y axis") - }), - 'stacked_style': (SelectField, { - "label": _("Chart Style"), - "choices": ( - ('stack', _('stack')), - ('stream', _('stream')), - ('expand', _('expand')), - ), - "default": 'stack', - "description": "" - }), - 'linear_color_scheme': (SelectField, { - "label": _("Color Scheme"), - "choices": ( - ('fire', _('fire')), - ('blue_white_yellow', _('blue_white_yellow')), - ('white_black', _('white_black')), - ('black_white', _('black_white')), - ), - "default": 'blue_white_yellow', - "description": "" - }), - 'normalize_across': (SelectField, { - "label": _("Normalize Across"), - "choices": ( - ('heatmap', _('heatmap')), - ('x', _('x')), - ('y', _('y')), - ), - "default": 'heatmap', - "description": _( - "Color will be rendered based on a ratio " - "of the cell against the sum of across this " - "criteria") - }), - 'horizon_color_scale': (SelectField, { - "label": _("Color Scale"), - "choices": ( - ('series', _('series')), - ('overall', _('overall')), - ('change', _('change')), - ), - "default": 'series', - "description": _("Defines how the color are attributed.") - }), - 'canvas_image_rendering': (SelectField, { - "label": _("Rendering"), - "choices": ( - ('pixelated', _('pixelated (Sharp)')), - ('auto', _('auto (Smooth)')), - ), - "default": 'pixelated', - "description": _( - "image-rendering CSS attribute of the canvas object that " - "defines how the browser scales up the image") - }), - 'xscale_interval': (SelectField, { - "label": _("XScale Interval"), - "choices": self.choicify(range(1, 50)), - "default": '1', - "description": _( - "Number of step to take between ticks when " - "printing the x scale") - }), - 'yscale_interval': (SelectField, { - "label": _("YScale Interval"), - "choices": self.choicify(range(1, 50)), - "default": '1', - "description": _( - "Number of step to take between ticks when " - "printing the y scale") - }), - 'bar_stacked': (BetterBooleanField, { - "label": _("Stacked Bars"), - "default": False, - "description": "" - }), - 'show_markers': (BetterBooleanField, { - "label": _("Show Markers"), - "default": False, - "description": ( - "Show data points as circle markers on top of the lines " - "in the chart") - }), - 'show_bar_value': (BetterBooleanField, { - "label": _("Bar Values"), - "default": False, - "description": "Show the value on top of the bars or not" - }), - 'order_bars': (BetterBooleanField, { - "label": _("Sort Bars"), - "default": False, - "description": _("Sort bars by x labels."), - }), - 'show_controls': (BetterBooleanField, { - "label": _("Extra Controls"), - "default": False, - "description": _( - "Whether to show extra controls or not. Extra controls " - "include things like making mulitBar charts stacked " - "or side by side.") - }), - 'reduce_x_ticks': (BetterBooleanField, { - "label": _("Reduce X ticks"), - "default": False, - "description": _( - "Reduces the number of X axis ticks to be rendered. " - "If true, the x axis wont overflow and labels may be " - "missing. If false, a minimum width will be applied " - "to columns and the width may overflow into an " - "horizontal scroll."), - }), - 'include_series': (BetterBooleanField, { - "label": _("Include Series"), - "default": False, - "description": _("Include series name as an axis") - }), - 'secondary_metric': (SelectField, { - "label": _("Color Metric"), - "choices": datasource.metrics_combo, - "default": default_metric, - "description": _("A metric to use for color") - }), - 'country_fieldtype': (SelectField, { - "label": _("Country Field Type"), - "default": 'cca2', - "choices": ( - ('name', _('Full name')), - ('cioc', _('code International Olympic Committee (cioc)')), - ('cca2', _('code ISO 3166-1 alpha-2 (cca2)')), - ('cca3', _('code ISO 3166-1 alpha-3 (cca3)')), - ), - "description": _( - "The country code standard that Superset should expect " - "to find in the [country] column") - }), - 'groupby': (SelectMultipleSortableField, { - "label": _("Group by"), - "choices": self.choicify(datasource.groupby_column_names), - "description": _("One or many fields to group by") - }), - 'columns': (SelectMultipleSortableField, { - "label": _("Columns"), - "choices": self.choicify(datasource.groupby_column_names), - "description": _("One or many fields to pivot as columns") - }), - 'all_columns': (SelectMultipleSortableField, { - "label": _("Columns"), - "choices": self.choicify(datasource.column_names), - "description": _("Columns to display") - }), - 'all_columns_x': (SelectField, { - "label": _("X"), - "choices": self.choicify(datasource.column_names), - "default": datasource.column_names[0], - "description": _("Columns to display") - }), - 'all_columns_y': (SelectField, { - "label": _("Y"), - "choices": self.choicify(datasource.column_names), - "default": datasource.column_names[0], - "description": _("Columns to display") - }), - 'druid_time_origin': (FreeFormSelectField, { - "label": _("Origin"), - "choices": ( - ('', _('default')), - ('now', _('now')), - ), - "default": '', - "description": _( - "Defines the origin where time buckets start, " - "accepts natural dates as in 'now', 'sunday' or '1970-01-01'") - }), - 'bottom_margin': (FreeFormSelectField, { - "label": _("Bottom Margin"), - "choices": self.choicify(['auto', 50, 75, 100, 125, 150, 200]), - "default": 'auto', - "description": _( - "Bottom margin, in pixels, allowing for more room for " - "axis labels"), - }), - 'page_length': (FreeFormSelectField, { - "label": _("Page Length"), - "default": 0, - "choices": self.choicify([0, 10, 25, 50, 100, 250, 500]), - "description": _( - "Number of rows per page, 0 means no pagination") - }), - 'granularity': (FreeFormSelectField, { - "label": _("Time Granularity"), - "default": "one day", - "choices": ( - ('all', _('all')), - ('5 seconds', _('5 seconds')), - ('30 seconds', _('30 seconds')), - ('1 minute', _('1 minute')), - ('5 minutes', _('5 minutes')), - ('1 hour', _('1 hour')), - ('6 hour', _('6 hour')), - ('1 day', _('1 day')), - ('7 days', _('7 days')), - ('week', _('week')), - ('week_starting_sunday', _('week_starting_sunday')), - ('week_ending_saturday', _('week_ending_saturday')), - ('month', _('month')), - ), - "description": _( - "The time granularity for the visualization. Note that you " - "can type and use simple natural language as in '10 seconds', " - "'1 day' or '56 weeks'") - }), - 'domain_granularity': (SelectField, { - "label": _("Domain"), - "default": "month", - "choices": ( - ('hour', _('hour')), - ('day', _('day')), - ('week', _('week')), - ('month', _('month')), - ('year', _('year')), - ), - "description": _( - "The time unit used for the grouping of blocks") - }), - 'subdomain_granularity': (SelectField, { - "label": _("Subdomain"), - "default": "day", - "choices": ( - ('min', _('min')), - ('hour', _('hour')), - ('day', _('day')), - ('week', _('week')), - ('month', _('month')), - ), - "description": _( - "The time unit for each block. Should be a smaller unit than " - "domain_granularity. Should be larger or equal to Time Grain") - }), - 'link_length': (FreeFormSelectField, { - "label": _("Link Length"), - "default": "200", - "choices": self.choicify([ - '10', - '25', - '50', - '75', - '100', - '150', - '200', - '250', - ]), - "description": _("Link length in the force layout") - }), - 'charge': (FreeFormSelectField, { - "label": _("Charge"), - "default": "-500", - "choices": self.choicify([ - '-50', - '-75', - '-100', - '-150', - '-200', - '-250', - '-500', - '-1000', - '-2500', - '-5000', - ]), - "description": _("Charge in the force layout") - }), - 'granularity_sqla': (SelectField, { - "label": _("Time Column"), - "default": datasource.main_dttm_col or datasource.any_dttm_col, - "choices": self.choicify(datasource.dttm_cols), - "description": _( - "The time column for the visualization. Note that you " - "can define arbitrary expression that return a DATETIME " - "column in the table editor. Also note that the " - "filter below is applied against this column or " - "expression") - }), - 'resample_rule': (FreeFormSelectField, { - "label": _("Resample Rule"), - "default": '', - "choices": ( - ('1T', _('1T')), - ('1H', _('1H')), - ('1D', _('1D')), - ('7D', _('7D')), - ('1M', _('1M')), - ('1AS', _('1AS')), - ), - "description": _("Pandas resample rule") - }), - 'resample_how': (FreeFormSelectField, { - "label": _("Resample How"), - "default": '', - "choices": ( - ('', ''), - ('mean', _('mean')), - ('sum', _('sum')), - ('median', _('median')), - ), - "description": _("Pandas resample how") - }), - 'resample_fillmethod': (FreeFormSelectField, { - "label": _("Resample Fill Method"), - "default": '', - "choices": ( - ('', ''), - ('ffill', _('ffill')), - ('bfill', _('bfill')), - ), - "description": _("Pandas resample fill method") - }), - 'since': (FreeFormSelectField, { - "label": _("Since"), - "default": "7 days ago", - "choices": ( - ('1 hour ago', _('1 hour ago')), - ('12 hours ago', _('12 hours ago')), - ('1 day ago', _('1 day ago')), - ('7 days ago', _('7 days ago')), - ('28 days ago', _('28 days ago')), - ('90 days ago', _('90 days ago')), - ('1 year ago', _('1 year ago')), - ), - "description": _( - "Timestamp from filter. This supports free form typing and " - "natural language as in '1 day ago', '28 days' or '3 years'") - }), - 'until': (FreeFormSelectField, { - "label": _("Until"), - "default": "now", - "choices": ( - ('now', _('now')), - ('1 day ago', _('1 day ago')), - ('7 days ago', _('7 days ago')), - ('28 days ago', _('28 days ago')), - ('90 days ago', _('90 days ago')), - ('1 year ago', _('1 year ago')), - ) - }), - 'max_bubble_size': (FreeFormSelectField, { - "label": _("Max Bubble Size"), - "default": "25", - "choices": self.choicify([ - '5', - '10', - '15', - '25', - '50', - '75', - '100', - ]) - }), - 'whisker_options': (FreeFormSelectField, { - "label": _("Whisker/outlier options"), - "default": "Tukey", - "description": _( - "Determines how whiskers and outliers are calculated."), - "choices": ( - ('Tukey', _('Tukey')), - ('Min/max (no outliers)', _('Min/max (no outliers)')), - ('2/98 percentiles', _('2/98 percentiles')), - ('9/91 percentiles', _('9/91 percentiles')), - ) - }), - 'treemap_ratio': (DecimalField, { - "label": _("Ratio"), - "default": 0.5 * (1 + math.sqrt(5)), # d3 default, golden ratio - "description": _('Target aspect ratio for treemap tiles.'), - }), - 'number_format': (FreeFormSelectField, { - "label": _("Number format"), - "default": '.3s', - "choices": [ - ('.3s', '".3s" | 12.3k'), - ('.3%', '".3%" | 1234543.210%'), - ('.4r', '".4r" | 12350'), - ('.3f', '".3f" | 12345.432'), - ('+,', '"+," | +12,345.4321'), - ('$,.2f', '"$,.2f" | $12,345.43'), - ], - "description": D3_FORMAT_DOCS, - }), - 'row_limit': (FreeFormSelectField, { - "label": _('Row limit'), - "default": config.get("VIZ_ROW_LIMIT"), - "choices": self.choicify( - [10, 50, 100, 250, 500, 1000, 5000, 10000, 50000]) - }), - 'limit': (FreeFormSelectField, { - "label": _('Series limit'), - "choices": self.choicify(self.series_limits), - "default": 50, - "description": _( - "Limits the number of time series that get displayed") - }), - 'timeseries_limit_metric': (SelectField, { - "label": _("Sort By"), - "choices": [('', '')] + datasource.metrics_combo, - "default": "", - "description": _("Metric used to define the top series") - }), - 'rolling_type': (SelectField, { - "label": _("Rolling"), - "default": 'None', - "choices": [(s, s) for s in ['None', 'mean', 'sum', 'std', 'cumsum']], - "description": _( - "Defines a rolling window function to apply, works along " - "with the [Periods] text box") - }), - 'rolling_periods': (IntegerField, { - "label": _("Periods"), - "validators": [validators.optional()], - "description": _( - "Defines the size of the rolling window function, " - "relative to the time granularity selected") - }), - 'series': (SelectField, { - "label": _("Series"), - "choices": group_by_choices, - "default": default_groupby, - "description": _( - "Defines the grouping of entities. " - "Each series is shown as a specific color on the chart and " - "has a legend toggle") - }), - 'entity': (SelectField, { - "label": _("Entity"), - "choices": group_by_choices, - "default": default_groupby, - "description": _("This define the element to be plotted on the chart") - }), - 'x': (SelectField, { - "label": _("X Axis"), - "choices": datasource.metrics_combo, - "default": default_metric, - "description": _("Metric assigned to the [X] axis") - }), - 'y': (SelectField, { - "label": _("Y Axis"), - "choices": datasource.metrics_combo, - "default": default_metric, - "description": _("Metric assigned to the [Y] axis") - }), - 'size': (SelectField, { - "label": _('Bubble Size'), - "default": default_metric, - "choices": datasource.metrics_combo - }), - 'url': (TextField, { - "label": _("URL"), - "description": _( - "The URL, this field is templated, so you can integrate " - "{{ width }} and/or {{ height }} in your URL string." - ), - "default": 'https: //www.youtube.com/embed/JkI5rg_VcQ4', - }), - 'x_axis_label': (TextField, { - "label": _("X Axis Label"), - "default": '', - }), - 'y_axis_label': (TextField, { - "label": _("Y Axis Label"), - "default": '', - }), - 'where': (TextField, { - "label": _("Custom WHERE clause"), - "default": '', - "description": _( - "The text in this box gets included in your query's WHERE " - "clause, as an AND to other criteria. You can include " - "complex expression, parenthesis and anything else " - "supported by the backend it is directed towards.") - }), - 'having': (TextField, { - "label": _("Custom HAVING clause"), - "default": '', - "description": _( - "The text in this box gets included in your query's HAVING" - " clause, as an AND to other criteria. You can include " - "complex expression, parenthesis and anything else " - "supported by the backend it is directed towards.") - }), - 'compare_lag': (TextField, { - "label": _("Comparison Period Lag"), - "description": _( - "Based on granularity, number of time periods to " - "compare against") - }), - 'compare_suffix': (TextField, { - "label": _("Comparison suffix"), - "description": _("Suffix to apply after the percentage display") - }), - 'table_timestamp_format': (FreeFormSelectField, { - "label": _("Table Timestamp Format"), - "default": 'smart_date', - "choices": TIMESTAMP_CHOICES, - "description": _("Timestamp Format") - }), - 'series_height': (FreeFormSelectField, { - "label": _("Series Height"), - "default": 25, - "choices": self.choicify([10, 25, 40, 50, 75, 100, 150, 200]), - "description": _("Pixel height of each series") - }), - 'x_axis_format': (FreeFormSelectField, { - "label": _("X axis format"), - "default": 'smart_date', - "choices": TIMESTAMP_CHOICES, - "description": D3_FORMAT_DOCS, - }), - 'y_axis_format': (FreeFormSelectField, { - "label": _("Y axis format"), - "default": '.3s', - "choices": AXIS_FORMAT_CHOICES, - "description": D3_FORMAT_DOCS, - }), - 'y_axis_2_format': (FreeFormSelectField, { - "label": _("Right axis format"), - "default": '.3s', - "choices": AXIS_FORMAT_CHOICES, - "description": D3_FORMAT_DOCS, - }), - 'markup_type': (SelectField, { - "label": _("Markup Type"), - "choices": ( - ('markdown', _('markdown')), - ('html', _('html')) - ), - "default": "markdown", - "description": _("Pick your favorite markup language") - }), - 'rotation': (SelectField, { - "label": _("Rotation"), - "choices": ( - ('random', _('random')), - ('flat', _('flat')), - ('square', _('square')), - ), - "default": "random", - "description": _("Rotation to apply to words in the cloud") - }), - 'line_interpolation': (SelectField, { - "label": _("Line Style"), - "choices": ( - ('linear', _('linear')), - ('basis', _('basis')), - ('cardinal', _('cardinal')), - ('monotone', _('monotone')), - ('step-before', _('step-before')), - ('step-after', _('step-after')), - ), - "default": 'linear', - "description": _("Line interpolation as defined by d3.js") - }), - 'pie_label_type': (SelectField, { - "label": _("Label Type"), - "default": 'key', - "choices": ( - ('key', _("Category Name")), - ('value', _("Value")), - ('percent', _("Percentage")), - ), - "description": _("What should be shown on the label?") - }), - 'code': (TextAreaField, { - "label": _("Code"), - "description": _("Put your code here"), - "default": '' - }), - 'pandas_aggfunc': (SelectField, { - "label": _("Aggregation function"), - "choices": ( - ('sum', _('sum')), - ('mean', _('mean')), - ('min', _('min')), - ('max', _('max')), - ('median', _('median')), - ('stdev', _('stdev')), - ('var', _('var')), - ), - "default": 'sum', - "description": _( - "Aggregate function to apply when pivoting and " - "computing the total rows and columns") - }), - 'size_from': (TextField, { - "label": _("Font Size From"), - "default": "20", - "description": _("Font size for the smallest value in the list") - }), - 'size_to': (TextField, { - "label": _("Font Size To"), - "default": "150", - "description": _("Font size for the biggest value in the list") - }), - 'show_brush': (BetterBooleanField, { - "label": _("Range Filter"), - "default": False, - "description": _( - "Whether to display the time range interactive selector") - }), - 'date_filter': (BetterBooleanField, { - "label": _("Date Filter"), - "default": False, - "description": _("Whether to include a time filter") - }), - 'show_datatable': (BetterBooleanField, { - "label": _("Data Table"), - "default": False, - "description": _("Whether to display the interactive data table") - }), - 'include_search': (BetterBooleanField, { - "label": _("Search Box"), - "default": False, - "description": _( - "Whether to include a client side search box") - }), - 'table_filter': (BetterBooleanField, { - "label": _("Table Filter"), - "default": False, - "description": _( - "Whether to apply filter when table cell is clicked") - }), - 'show_bubbles': (BetterBooleanField, { - "label": _("Show Bubbles"), - "default": False, - "description": _( - "Whether to display bubbles on top of countries") - }), - 'show_legend': (BetterBooleanField, { - "label": _("Legend"), - "default": True, - "description": _("Whether to display the legend (toggles)") - }), - 'x_axis_showminmax': (BetterBooleanField, { - "label": _("X bounds"), - "default": True, - "description": _( - "Whether to display the min and max values of the X axis") - }), - 'rich_tooltip': (BetterBooleanField, { - "label": _("Rich Tooltip"), - "default": True, - "description": _( - "The rich tooltip shows a list of all series for that" - " point in time") - }), - 'y_axis_zero': (BetterBooleanField, { - "label": _("Y Axis Zero"), - "default": False, - "description": _( - "Force the Y axis to start at 0 instead of the minimum " - "value") - }), - 'y_log_scale': (BetterBooleanField, { - "label": _("Y Log"), - "default": False, - "description": _("Use a log scale for the Y axis") - }), - 'x_log_scale': (BetterBooleanField, { - "label": _("X Log"), - "default": False, - "description": _("Use a log scale for the X axis") - }), - 'donut': (BetterBooleanField, { - "label": _("Donut"), - "default": False, - "description": _("Do you want a donut or a pie?") - }), - 'labels_outside': (BetterBooleanField, { - "label": _("Put labels outside"), - "default": True, - "description": _("Put the labels outside the pie?") - }), - 'contribution': (BetterBooleanField, { - "label": _("Contribution"), - "default": False, - "description": _("Compute the contribution to the total") - }), - 'num_period_compare': (IntegerField, { - "label": _("Period Ratio"), - "default": None, - "validators": [validators.optional()], - "description": _( - "[integer] Number of period to compare against, " - "this is relative to the granularity selected") - }), - 'period_ratio_type': (SelectField, { - "label": _("Period Ratio Type"), - "default": 'growth', - "choices": ( - ('factor', _('factor')), - ('growth', _('growth')), - ('value', _('value')), - ), - "description": _( - "`factor` means (new/previous), `growth` is " - "((new/previous) - 1), `value` is (new-previous)") - }), - 'time_compare': (TextField, { - "label": _("Time Shift"), - "default": "", - "description": _( - "Overlay a timeseries from a " - "relative time period. Expects relative time delta " - "in natural language (example: 24 hours, 7 days, " - "56 weeks, 365 days") - }), - 'subheader': (TextField, { - "label": _("Subheader"), - "description": _( - "Description text that shows up below your Big " - "Number") - }), - 'mapbox_label': (SelectMultipleSortableField, { - "label": "Label", - "choices": self.choicify(["count"] + datasource.column_names), - "description": _( - "'count' is COUNT(*) if a group by is used. " - "Numerical columns will be aggregated with the aggregator. " - "Non-numerical columns will be used to label points. " - "Leave empty to get a count of points in each cluster."), - }), - 'mapbox_style': (SelectField, { - "label": "Map Style", - "choices": [ - ("mapbox://styles/mapbox/streets-v9", "Streets"), - ("mapbox://styles/mapbox/dark-v9", "Dark"), - ("mapbox://styles/mapbox/light-v9", "Light"), - ("mapbox://styles/mapbox/satellite-streets-v9", "Satellite Streets"), - ("mapbox://styles/mapbox/satellite-v9", "Satellite"), - ("mapbox://styles/mapbox/outdoors-v9", "Outdoors"), - ], - "default": "mapbox://styles/mapbox/streets-v9", - "description": _("Base layer map style") - }), - 'clustering_radius': (FreeFormSelectField, { - "label": _("Clustering Radius"), - "default": "60", - "choices": self.choicify([ - '0', - '20', - '40', - '60', - '80', - '100', - '200', - '500', - '1000', - ]), - "description": _( - "The radius (in pixels) the algorithm uses to define a cluster. " - "Choose 0 to turn off clustering, but beware that a large " - "number of points (>1000) will cause lag.") - }), - 'point_radius': (SelectField, { - "label": _("Point Radius"), - "default": "Auto", - "choices": self.choicify(["Auto"] + datasource.column_names), - "description": _( - "The radius of individual points (ones that are not in a cluster). " - "Either a numerical column or 'Auto', which scales the point based " - "on the largest cluster") - }), - 'point_radius_unit': (SelectField, { - "label": _("Point Radius Unit"), - "default": "Pixels", - "choices": self.choicify([ - "Pixels", - "Miles", - "Kilometers", - ]), - "description": _("The unit of measure for the specified point radius") - }), - 'global_opacity': (DecimalField, { - "label": _("Opacity"), - "default": 1, - "description": _( - "Opacity of all clusters, points, and labels. " - "Between 0 and 1."), - }), - 'viewport_zoom': (DecimalField, { - "label": _("Zoom"), - "default": 11, - "validators": [validators.optional()], - "description": _("Zoom level of the map"), - "places": 8, - }), - 'viewport_latitude': (DecimalField, { - "label": _("Default latitude"), - "default": 37.772123, - "description": _("Latitude of default viewport"), - "places": 8, - }), - 'viewport_longitude': (DecimalField, { - "label": _("Default longitude"), - "default": -122.405293, - "description": _("Longitude of default viewport"), - "places": 8, - }), - 'render_while_dragging': (BetterBooleanField, { - "label": _("Live render"), - "default": True, - "description": _( - "Points and clusters will update as viewport " - "is being changed"), - }), - 'mapbox_color': (FreeFormSelectField, { - "label": _("RGB Color"), - "default": "rgb(0, 122, 135)", - "choices": [ - ("rgb(0, 139, 139)", "Dark Cyan"), - ("rgb(128, 0, 128)", "Purple"), - ("rgb(255, 215, 0)", "Gold"), - ("rgb(69, 69, 69)", "Dim Gray"), - ("rgb(220, 20, 60)", "Crimson"), - ("rgb(34, 139, 34)", "Forest Green"), - ], - "description": _("The color for points and clusters in RGB") - }), - 'ranges': (TextField, { - "label": _("Ranges"), - "default": "", - "description": _("Ranges to highlight with shading") - }), - 'range_labels': (TextField, { - "label": _("Range labels"), - "default": "", - "description": _("Labels for the ranges") - }), - 'markers': (TextField, { - "label": _("Markers"), - "default": "", - "description": _("List of values to mark with triangles") - }), - 'marker_labels': (TextField, { - "label": _("Marker labels"), - "default": "", - "description": _("Labels for the markers") - }), - 'marker_lines': (TextField, { - "label": _("Marker lines"), - "default": "", - "description": _("List of values to mark with lines") - }), - 'marker_line_labels': (TextField, { - "label": _("Marker line labels"), - "default": "", - "description": _("Labels for the marker lines") - }), - } - - # Override default arguments with form overrides - for field_name, override_map in viz.form_overrides.items(): - if field_name in field_data: - field_data[field_name][1].update(override_map) - - self.field_dict = { - field_name: v[0](**v[1]) - for field_name, v in field_data.items() - } - - @staticmethod - def choicify(l): - return [("{}".format(obj), "{}".format(obj)) for obj in l] - - def get_form(self): - """Returns a form object based on the viz/datasource/context""" - viz = self.viz - field_css_classes = {} - for name, obj in self.field_dict.items(): - field_css_classes[name] = ['form-control', 'input-sm'] - s = self.fieltype_class.get(obj.field_class) - if s: - field_css_classes[name] += [s] - - for field in ('show_brush', 'show_legend', 'rich_tooltip'): - field_css_classes[field] += ['input-sm'] - - class QueryForm(OmgWtForm): - - """The dynamic form object used for the explore view""" - - fieldsets = copy(viz.fieldsets) - css_classes = field_css_classes - standalone = HiddenField() - async = HiddenField() - force = HiddenField() - extra_filters = HiddenField() - json = HiddenField() - slice_id = HiddenField() - slice_name = HiddenField() - previous_viz_type = HiddenField(default=viz.viz_type) - collapsed_fieldsets = HiddenField() - viz_type = self.field_dict.get('viz_type') - - for field in viz.flat_form_fields(): - setattr(QueryForm, field, self.field_dict[field]) - - def add_to_form(attrs): - for attr in attrs: - setattr(QueryForm, attr, self.field_dict[attr]) - - filter_choices = self.choicify(['in', 'not in']) - having_op_choices = [] - filter_prefixes = ['flt'] - # datasource type specific form elements - datasource_classname = viz.datasource.__class__.__name__ - time_fields = None - if datasource_classname == 'SqlaTable': - QueryForm.fieldsets += ({ - 'label': _('SQL'), - 'fields': ['where', 'having'], - 'description': _( - "This section exposes ways to include snippets of " - "SQL in your query"), - },) - add_to_form(('where', 'having')) - grains = viz.datasource.database.grains() - - if grains: - grains_choices = [(grain.name, grain.label) for grain in grains] - time_fields = ('granularity_sqla', 'time_grain_sqla') - self.field_dict['time_grain_sqla'] = SelectField( - _('Time Grain'), - choices=grains_choices, - default="Time Column", - description=_( - "The time granularity for the visualization. This " - "applies a date transformation to alter " - "your time column and defines a new time granularity." - "The options here are defined on a per database " - "engine basis in the Superset source code")) - add_to_form(time_fields) - field_css_classes['time_grain_sqla'] = ['form-control', 'select2'] - field_css_classes['granularity_sqla'] = ['form-control', 'select2'] - else: - time_fields = 'granularity_sqla' - add_to_form((time_fields, )) - elif datasource_classname == 'DruidDatasource': - time_fields = ('granularity', 'druid_time_origin') - add_to_form(('granularity', 'druid_time_origin')) - field_css_classes['granularity'] = ['form-control', 'select2_freeform'] - field_css_classes['druid_time_origin'] = ['form-control', 'select2_freeform'] - filter_choices = self.choicify(['in', 'not in', 'regex']) - having_op_choices = self.choicify( - ['==', '!=', '>', '<', '>=', '<=']) - filter_prefixes += ['having'] - add_to_form(('since', 'until')) - - # filter_cols defaults to ''. Filters with blank col will be ignored - filter_cols = self.choicify( - ([''] + viz.datasource.filterable_column_names) or ['']) - having_cols = filter_cols + viz.datasource.metrics_combo - for field_prefix in filter_prefixes: - is_having_filter = field_prefix == 'having' - col_choices = filter_cols if not is_having_filter else having_cols - op_choices = filter_choices if not is_having_filter else \ - having_op_choices - for i in range(10): - setattr(QueryForm, field_prefix + '_col_' + str(i), - SelectField( - _('Filter 1'), - default=col_choices[0][0], - choices=col_choices)) - setattr(QueryForm, field_prefix + '_op_' + str(i), SelectField( - _('Filter 1'), - default=op_choices[0][0], - choices=op_choices)) - setattr( - QueryForm, field_prefix + '_eq_' + str(i), - TextField(_("Super"), default='')) - - if time_fields: - QueryForm.fieldsets = ({ - 'label': _('Time'), - 'fields': ( - time_fields, - ('since', 'until'), - ), - 'description': _("Time related form attributes"), - },) + tuple(QueryForm.fieldsets) - return QueryForm diff --git a/superset/import_util.py b/superset/import_util.py index e71623d579261..8795b5a341f81 100644 --- a/superset/import_util.py +++ b/superset/import_util.py @@ -38,7 +38,7 @@ def import_datasource( new_m.table_id = datasource.id logging.info('Importing metric {} from the datasource: {}'.format( new_m.to_json(), i_datasource.full_name)) - imported_m = i_datasource.metric_cls.import_obj(new_m) + imported_m = i_datasource.metric_class.import_obj(new_m) if (imported_m.metric_name not in [m.metric_name for m in datasource.metrics]): datasource.metrics.append(imported_m) @@ -48,7 +48,7 @@ def import_datasource( new_c.table_id = datasource.id logging.info('Importing column {} from the datasource: {}'.format( new_c.to_json(), i_datasource.full_name)) - imported_c = i_datasource.column_cls.import_obj(new_c) + imported_c = i_datasource.column_class.import_obj(new_c) if (imported_c.column_name not in [c.column_name for c in datasource.columns]): datasource.columns.append(imported_c) diff --git a/superset/jinja_context.py b/superset/jinja_context.py index c861d9ac20643..e096ded2d55ef 100644 --- a/superset/jinja_context.py +++ b/superset/jinja_context.py @@ -4,18 +4,18 @@ from __future__ import print_function from __future__ import unicode_literals +from datetime import datetime, timedelta import inspect +import random +import time +import uuid + from jinja2.sandbox import SandboxedEnvironment +from flask import request, g -from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta -import time -import textwrap -import uuid -import random from superset import app -from superset.utils import SupersetTemplateException config = app.config BASE_CONTEXT = { @@ -29,6 +29,30 @@ BASE_CONTEXT.update(config.get('JINJA_CONTEXT_ADDONS', {})) +def url_param(param, default=None): + """Get a url paramater + + :param param: the url parameter to lookup + :type param: str + :param default: the value to return in the absence of the parameter + :type default: str + """ + print(request.args) + return request.args.get(param, default) + + +def current_user_id(): + """The id of the user who is currently logged in""" + if g.user: + return g.user.id + + +def current_username(): + """The username of the user who is currently logged in""" + if g.user: + return g.user.username + + class BaseTemplateProcessor(object): """Base class for database-specific jinja context @@ -46,7 +70,7 @@ class BaseTemplateProcessor(object): """ engine = None - def __init__(self, database=None, query=None, table=None): + def __init__(self, database=None, query=None, table=None, **kwargs): self.database = database self.query = query self.schema = None @@ -54,13 +78,19 @@ def __init__(self, database=None, query=None, table=None): self.schema = query.schema elif table: self.schema = table.schema - self.context = {} + self.context = { + 'url_param': url_param, + 'current_user_id': current_user_id, + 'current_username': current_username, + 'form_data': {}, + } + self.context.update(kwargs) self.context.update(BASE_CONTEXT) if self.engine: self.context[self.engine] = self self.env = SandboxedEnvironment() - def process_template(self, sql): + def process_template(self, sql, **kwargs): """Processes a sql template >>> sql = "SELECT '{{ datetime(2017, 1, 1).isoformat() }}'" @@ -68,7 +98,8 @@ def process_template(self, sql): "SELECT '2017-01-01T00:00:00'" """ template = self.env.from_string(sql) - return template.render(self.context) + kwargs.update(self.context) + return template.render(kwargs) class PrestoTemplateProcessor(BaseTemplateProcessor): @@ -79,44 +110,6 @@ class PrestoTemplateProcessor(BaseTemplateProcessor): """ engine = 'presto' - @staticmethod - def _partition_query(table_name, limit=0, order_by=None, filters=None): - """Returns a partition query - - :param table_name: the name of the table to get partitions from - :type table_name: str - :param limit: the number of partitions to be returned - :type limit: int - :param order_by: a list of tuples of field name and a boolean - that determines if that field should be sorted in descending - order - :type order_by: list of (str, bool) tuples - :param filters: a list of filters to apply - :param filters: dict of field name and filter value combinations - """ - limit_clause = "LIMIT {}".format(limit) if limit else '' - order_by_clause = '' - if order_by: - l = [] - for field, desc in order_by: - l.append(field + ' DESC' if desc else '') - order_by_clause = 'ORDER BY ' + ', '.join(l) - - where_clause = '' - if filters: - l = [] - for field, value in filters.items(): - l.append("{field} = '{value}'".format(**locals())) - where_clause = 'WHERE ' + ' AND '.join(l) - - sql = textwrap.dedent("""\ - SHOW PARTITIONS FROM {table_name} - {where_clause} - {order_by_clause} - {limit_clause} - """).format(**locals()) - return sql - @staticmethod def _schema_table(table_name, schema): if '.' in table_name: @@ -124,74 +117,21 @@ def _schema_table(table_name, schema): return table_name, schema def latest_partition(self, table_name): - """Returns the latest (max) partition value for a table - - :param table_name: the name of the table, can be just the table - name or a fully qualified table name as ``schema_name.table_name`` - :type table_name: str - >>> latest_partition('foo_table') - '2018-01-01' - """ table_name, schema = self._schema_table(table_name, self.schema) - indexes = self.database.get_indexes(table_name, schema) - if len(indexes[0]['column_names']) < 1: - raise SupersetTemplateException( - "The table should have one partitioned field") - elif len(indexes[0]['column_names']) > 1: - raise SupersetTemplateException( - "The table should have a single partitioned field " - "to use this function. You may want to use " - "`presto.latest_sub_partition`") - part_field = indexes[0]['column_names'][0] - sql = self._partition_query(table_name, 1, [(part_field, True)]) - df = self.database.get_df(sql, schema) - return df.to_records(index=False)[0][0] + return self.database.db_engine_spec.latest_partition( + table_name, schema, self.database)[1] def latest_sub_partition(self, table_name, **kwargs): - """Returns the latest (max) partition value for a table - - A filtering criteria should be passed for all fields that are - partitioned except for the field to be returned. For example, - if a table is partitioned by (``ds``, ``event_type`` and - ``event_category``) and you want the latest ``ds``, you'll want - to provide a filter as keyword arguments for both - ``event_type`` and ``event_category`` as in - ``latest_sub_partition('my_table', - event_category='page', event_type='click')`` - - :param table_name: the name of the table, can be just the table - name or a fully qualified table name as ``schema_name.table_name`` - :type table_name: str - :param kwargs: keyword arguments define the filtering criteria - on the partition list. There can be many of these. - :type kwargs: str - >>> latest_sub_partition('sub_partition_table', event_type='click') - '2018-01-01' - """ table_name, schema = self._schema_table(table_name, self.schema) - indexes = self.database.get_indexes(table_name, schema) - part_fields = indexes[0]['column_names'] - for k in kwargs.keys(): - if k not in k in part_fields: - msg = "Field [{k}] is not part of the portioning key" - raise SupersetTemplateException(msg) - if len(kwargs.keys()) != len(part_fields) - 1: - msg = ( - "A filter needs to be specified for {} out of the " - "{} fields." - ).format(len(part_fields)-1, len(part_fields)) - raise SupersetTemplateException(msg) - - for field in part_fields: - if field not in kwargs.keys(): - field_to_return = field - - sql = self._partition_query( - table_name, 1, [(field_to_return, True)], kwargs) - df = self.database.get_df(sql, schema) - if df.empty: - return '' - return df.to_dict()[field_to_return][0] + return self.database.db_engine_spec.latest_sub_partition( + table_name=table_name, + schema=schema, + database=self.database, + **kwargs) + + +class HiveTemplateProcessor(PrestoTemplateProcessor): + engine = 'hive' template_processors = {} @@ -202,6 +142,6 @@ def latest_sub_partition(self, table_name, **kwargs): template_processors[o.engine] = o -def get_template_processor(database, table=None, query=None): +def get_template_processor(database, table=None, query=None, **kwargs): TP = template_processors.get(database.backend, BaseTemplateProcessor) - return TP(database=database, table=table, query=query) + return TP(database=database, table=table, query=query, **kwargs) diff --git a/superset/legacy.py b/superset/legacy.py new file mode 100644 index 0000000000000..8de2548c8e160 --- /dev/null +++ b/superset/legacy.py @@ -0,0 +1,83 @@ +"""Code related with dealing with legacy / change management""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from superset import frontend_config +import re + +FORM_DATA_KEY_WHITELIST = list(frontend_config.get('controls').keys()) + ['slice_id'] + + +def cast_filter_data(form_data): + """Used by cast_form_data to parse the filters""" + flts = [] + having_flts = [] + fd = form_data + filter_pattern = re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''') + for i in range(0, 10): + for prefix in ['flt', 'having']: + col_str = '{}_col_{}'.format(prefix, i) + op_str = '{}_op_{}'.format(prefix, i) + val_str = '{}_eq_{}'.format(prefix, i) + if col_str in fd and op_str in fd and val_str in fd \ + and len(fd[val_str]) > 0: + f = {} + f['col'] = fd[col_str] + f['op'] = fd[op_str] + if prefix == 'flt': + # transfer old strings in filter value to list + splitted = filter_pattern.split(fd[val_str])[1::2] + values = [types.replace("'", '').strip() for types in splitted] + f['val'] = values + flts.append(f) + if prefix == 'having': + f['val'] = fd[val_str] + having_flts.append(f) + if col_str in fd: + del fd[col_str] + if op_str in fd: + del fd[op_str] + if val_str in fd: + del fd[val_str] + fd['filters'] = flts + fd['having_filters'] = having_flts + return fd + + +def cast_form_data(form_data): + """Translates old to new form_data""" + d = {} + fields = frontend_config.get('controls', {}) + for k, v in form_data.items(): + field_config = fields.get(k, {}) + ft = field_config.get('type') + if ft == 'CheckboxControl': + # bug in some urls with dups on bools + if isinstance(v, list): + v = 'y' in v + else: + v = True if v in ('true', 'y') or v is True else False + elif v and ft == 'TextControl' and field_config.get('isInt'): + v = int(v) if v != '' else None + elif v and ft == 'TextControl' and field_config.get('isFloat'): + v = float(v) if v != '' else None + elif v and ft == 'SelectControl': + if field_config.get('multi'): + if type(form_data).__name__ == 'ImmutableMultiDict': + v = form_data.getlist(k) + elif not isinstance(v, list): + v = [v] + if d.get('slice_id'): + d['slice_id'] = int(d['slice_id']) + + d[k] = v + if 'filters' not in d: + d = cast_filter_data(d) + for k in list(d.keys()): + if k not in FORM_DATA_KEY_WHITELIST: + del d[k] + return d + + diff --git a/superset/migrations/env.py b/superset/migrations/env.py index 428e6e3b534bd..599bda71fa822 100755 --- a/superset/migrations/env.py +++ b/superset/migrations/env.py @@ -20,9 +20,10 @@ # for 'autogenerate' support # from myapp import mymodel from flask import current_app + config.set_main_option('sqlalchemy.url', current_app.config.get('SQLALCHEMY_DATABASE_URI')) -target_metadata = Base.metadata +target_metadata = Base.metadata # pylint: disable=no-member # other values from the config, defined by the needs of env.py, # can be acquired: diff --git a/superset/migrations/versions/2fcdcb35e487_saved_queries.py b/superset/migrations/versions/2fcdcb35e487_saved_queries.py new file mode 100644 index 0000000000000..43aa277c55055 --- /dev/null +++ b/superset/migrations/versions/2fcdcb35e487_saved_queries.py @@ -0,0 +1,40 @@ +"""saved_queries + +Revision ID: 2fcdcb35e487 +Revises: a6c18f869a4e +Create Date: 2017-03-29 15:04:35.734190 + +""" + +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = '2fcdcb35e487' +down_revision = 'a6c18f869a4e' + + +def upgrade(): + op.create_table( + 'saved_query', + sa.Column('created_on', sa.DateTime(), nullable=True), + sa.Column('changed_on', sa.DateTime(), nullable=True), + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=True), + sa.Column('db_id', sa.Integer(), nullable=True), + sa.Column('label', sa.String(256), nullable=True), + sa.Column('schema', sa.String(128), nullable=True), + sa.Column('sql', sa.Text(), nullable=True), + sa.Column('description', sa.Text(), nullable=True), + sa.Column('changed_by_fk', sa.Integer(), nullable=True), + sa.Column('created_by_fk', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['changed_by_fk'], ['ab_user.id'], ), + sa.ForeignKeyConstraint(['created_by_fk'], ['ab_user.id'], ), + sa.ForeignKeyConstraint(['user_id'], [u'ab_user.id'], ), + sa.ForeignKeyConstraint(['db_id'], [u'dbs.id'], ), + sa.PrimaryKeyConstraint('id') + ) + + +def downgrade(): + op.drop_table('saved_query') diff --git a/superset/migrations/versions/732f1c06bcbf_add_fetch_values_predicate.py b/superset/migrations/versions/732f1c06bcbf_add_fetch_values_predicate.py new file mode 100644 index 0000000000000..2d7ce54107a83 --- /dev/null +++ b/superset/migrations/versions/732f1c06bcbf_add_fetch_values_predicate.py @@ -0,0 +1,23 @@ +"""add fetch values predicate + +Revision ID: 732f1c06bcbf +Revises: d6db5a5cdb5d +Create Date: 2017-03-03 09:15:56.800930 + +""" + +# revision identifiers, used by Alembic. +revision = '732f1c06bcbf' +down_revision = 'd6db5a5cdb5d' + +from alembic import op +import sqlalchemy as sa + +def upgrade(): + op.add_column('datasources', sa.Column('fetch_values_from', sa.String(length=100), nullable=True)) + op.add_column('tables', sa.Column('fetch_values_predicate', sa.String(length=1000), nullable=True)) + + +def downgrade(): + op.drop_column('tables', 'fetch_values_predicate') + op.drop_column('datasources', 'fetch_values_from') diff --git a/superset/migrations/versions/979c03af3341_.py b/superset/migrations/versions/979c03af3341_.py new file mode 100644 index 0000000000000..6cb241f388d01 --- /dev/null +++ b/superset/migrations/versions/979c03af3341_.py @@ -0,0 +1,22 @@ +"""empty message + +Revision ID: 979c03af3341 +Revises: ('db527d8c4c78', 'ea033256294a') +Create Date: 2017-03-21 15:41:34.383808 + +""" + +# revision identifiers, used by Alembic. +revision = '979c03af3341' +down_revision = ('db527d8c4c78', 'ea033256294a') + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + pass + + +def downgrade(): + pass diff --git a/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py b/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py new file mode 100644 index 0000000000000..49a9d1b74e812 --- /dev/null +++ b/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py @@ -0,0 +1,26 @@ +"""add_result_backend_time_logging + +Revision ID: a65458420354 +Revises: 2fcdcb35e487 +Create Date: 2017-04-25 10:00:58.053120 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = 'a65458420354' +down_revision = '2fcdcb35e487' + + +def upgrade(): + op.add_column( + 'query', + sa.Column( + 'end_result_backend_time', + sa.Numeric(precision=20, scale=6), + nullable=True)) + + +def downgrade(): + op.drop_column('query', 'end_result_backend_time') diff --git a/superset/migrations/versions/a6c18f869a4e_query_start_running_time.py b/superset/migrations/versions/a6c18f869a4e_query_start_running_time.py new file mode 100644 index 0000000000000..0f89b3f516df9 --- /dev/null +++ b/superset/migrations/versions/a6c18f869a4e_query_start_running_time.py @@ -0,0 +1,25 @@ +"""query.start_running_time + +Revision ID: a6c18f869a4e +Revises: 979c03af3341 +Create Date: 2017-03-28 11:28:41.387182 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = 'a6c18f869a4e' +down_revision = '979c03af3341' + + +def upgrade(): + op.add_column( + 'query', + sa.Column('start_running_time', + sa.Numeric(precision=20, scale=6), + nullable=True)) + + +def downgrade(): + op.drop_column('query', 'start_running_time') diff --git a/superset/migrations/versions/a99f2f7c195a_rewriting_url_from_shortner_with_new_.py b/superset/migrations/versions/a99f2f7c195a_rewriting_url_from_shortner_with_new_.py new file mode 100644 index 0000000000000..818d08d830088 --- /dev/null +++ b/superset/migrations/versions/a99f2f7c195a_rewriting_url_from_shortner_with_new_.py @@ -0,0 +1,71 @@ +"""rewriting url from shortner with new format + +Revision ID: a99f2f7c195a +Revises: 53fc3de270ae +Create Date: 2017-02-08 14:16:34.948793 + +""" + +# revision identifiers, used by Alembic. +revision = 'a99f2f7c195a' +down_revision = 'db0c65b146bd' + +from alembic import op +import json +import sqlalchemy as sa +from superset import db +from superset.legacy import cast_form_data +from sqlalchemy.ext.declarative import declarative_base +from future.standard_library import install_aliases +install_aliases() +from urllib import parse + +Base = declarative_base() + +def parse_querystring(qs): + d = {} + for k, v in parse.parse_qsl(qs): + if not k in d: + d[k] = v + else: + if isinstance(d[k], list): + d[k].append(v) + else: + d[k] = [d[k], v] + return d + +class Url(Base): + + """Used for the short url feature""" + + __tablename__ = 'url' + id = sa.Column(sa.Integer, primary_key=True) + url = sa.Column(sa.Text) + + +def upgrade(): + bind = op.get_bind() + session = db.Session(bind=bind) + + urls = session.query(Url).all() + urls_len = len(urls) + for i, url in enumerate(urls): + if ( + '?form_data' not in url.url and + '?' in url.url and + 'dbid' not in url.url and + url.url.startswith('//superset/explore')): + d = parse_querystring(url.url.split('?')[1]) + split = url.url.split('/') + d['datasource'] = split[5] + '__' + split[4] + d = cast_form_data(d) + newurl = '/'.join(split[:-1]) + '/?form_data=' + parse.quote_plus(json.dumps(d)) + url.url = newurl + session.merge(url) + session.commit() + print('Updating url ({}/{})'.format(i, urls_len)) + session.close() + + +def downgrade(): + pass diff --git a/superset/migrations/versions/b318dfe5fb6c_adding_verbose_name_to_druid_column.py b/superset/migrations/versions/b318dfe5fb6c_adding_verbose_name_to_druid_column.py new file mode 100644 index 0000000000000..d492427b644f8 --- /dev/null +++ b/superset/migrations/versions/b318dfe5fb6c_adding_verbose_name_to_druid_column.py @@ -0,0 +1,22 @@ +"""adding verbose_name to druid column + +Revision ID: b318dfe5fb6c +Revises: d6db5a5cdb5d +Create Date: 2017-03-08 11:48:10.835741 + +""" + +# revision identifiers, used by Alembic. +revision = 'b318dfe5fb6c' +down_revision = 'd6db5a5cdb5d' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.add_column('columns', sa.Column('verbose_name', sa.String(length=1024), nullable=True)) + + +def downgrade(): + op.drop_column('columns', 'verbose_name') diff --git a/superset/migrations/versions/d6db5a5cdb5d_.py b/superset/migrations/versions/d6db5a5cdb5d_.py new file mode 100644 index 0000000000000..4a51fb8ff563d --- /dev/null +++ b/superset/migrations/versions/d6db5a5cdb5d_.py @@ -0,0 +1,22 @@ +"""empty message + +Revision ID: d6db5a5cdb5d +Revises: ('a99f2f7c195a', 'bcf3126872fc') +Create Date: 2017-02-10 17:58:20.149960 + +""" + +# revision identifiers, used by Alembic. +revision = 'd6db5a5cdb5d' +down_revision = ('a99f2f7c195a', 'bcf3126872fc') + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + pass + + +def downgrade(): + pass diff --git a/superset/migrations/versions/db0c65b146bd_update_slice_model_json.py b/superset/migrations/versions/db0c65b146bd_update_slice_model_json.py new file mode 100644 index 0000000000000..d4135562cf4a2 --- /dev/null +++ b/superset/migrations/versions/db0c65b146bd_update_slice_model_json.py @@ -0,0 +1,54 @@ +"""update_slice_model_json + +Revision ID: db0c65b146bd +Revises: f18570e03440 +Create Date: 2017-01-24 12:31:06.541746 + +""" + +# revision identifiers, used by Alembic. +revision = 'db0c65b146bd' +down_revision = 'f18570e03440' + +from alembic import op +import json +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy import Column, Integer, String, Text + +from superset import db +from superset.legacy import cast_form_data + +Base = declarative_base() + + +class Slice(Base): + """Declarative class to do query in upgrade""" + __tablename__ = 'slices' + id = Column(Integer, primary_key=True) + datasource_type = Column(String(200)) + slice_name = Column(String(200)) + params = Column(Text) + + +def upgrade(): + bind = op.get_bind() + session = db.Session(bind=bind) + + slices = session.query(Slice).all() + slice_len = len(slices) + for i, slc in enumerate(slices): + try: + d = json.loads(slc.params or '{}') + d = cast_form_data(d) + slc.params = json.dumps(d, indent=2, sort_keys=True) + session.merge(slc) + session.commit() + print('Upgraded ({}/{}): {}'.format(i, slice_len, slc.slice_name)) + except Exception as e: + print(slc.slice_name + ' error: ' + str(e)) + + session.close() + + +def downgrade(): + pass diff --git a/superset/migrations/versions/db527d8c4c78_add_db_verbose_name.py b/superset/migrations/versions/db527d8c4c78_add_db_verbose_name.py new file mode 100644 index 0000000000000..4c0d4167f551f --- /dev/null +++ b/superset/migrations/versions/db527d8c4c78_add_db_verbose_name.py @@ -0,0 +1,35 @@ +"""Add verbose name to DruidCluster and Database + +Revision ID: db527d8c4c78 +Revises: b318dfe5fb6c +Create Date: 2017-03-16 18:10:57.193035 + +""" + +# revision identifiers, used by Alembic. +revision = 'db527d8c4c78' +down_revision = 'b318dfe5fb6c' + +from alembic import op +import logging +import sqlalchemy as sa + + +def upgrade(): + op.add_column('clusters', sa.Column('verbose_name', sa.String(length=250), nullable=True)) + op.add_column('dbs', sa.Column('verbose_name', sa.String(length=250), nullable=True)) + + try: + op.create_unique_constraint(None, 'dbs', ['verbose_name']) + op.create_unique_constraint(None, 'clusters', ['verbose_name']) + except Exception as e: + logging.info('Constraint not created, expected when using sqlite') + + +def downgrade(): + try: + op.drop_column('dbs', 'verbose_name') + op.drop_column('clusters', 'verbose_name') + except Exception as e: + logging.exception(e) + diff --git a/superset/migrations/versions/ea033256294a_.py b/superset/migrations/versions/ea033256294a_.py new file mode 100644 index 0000000000000..8a5bbd21c32d4 --- /dev/null +++ b/superset/migrations/versions/ea033256294a_.py @@ -0,0 +1,22 @@ +"""empty message + +Revision ID: ea033256294a +Revises: ('732f1c06bcbf', 'b318dfe5fb6c') +Create Date: 2017-03-16 14:55:59.431283 + +""" + +# revision identifiers, used by Alembic. +revision = 'ea033256294a' +down_revision = ('732f1c06bcbf', 'b318dfe5fb6c') + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + pass + + +def downgrade(): + pass diff --git a/superset/models.py b/superset/models.py deleted file mode 100644 index ae0ba525c7844..0000000000000 --- a/superset/models.py +++ /dev/null @@ -1,2816 +0,0 @@ -"""A collection of ORM sqlalchemy models for Superset""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import ast -from collections import OrderedDict -import functools -import json -import logging -import numpy -import pickle -import re -import textwrap -from copy import deepcopy, copy -from datetime import timedelta, datetime, date - -import humanize -import pandas as pd -import requests -import sqlalchemy as sqla -from sqlalchemy.engine.url import make_url -from sqlalchemy.orm import subqueryload - -import sqlparse -from dateutil.parser import parse - -from flask import escape, g, Markup, request -from flask_appbuilder import Model -from flask_appbuilder.models.mixins import AuditMixin -from flask_appbuilder.models.decorators import renders -from flask_babel import lazy_gettext as _ - -from pydruid.client import PyDruid -from pydruid.utils.aggregators import count -from pydruid.utils.filters import Dimension, Filter -from pydruid.utils.postaggregator import Postaggregator -from pydruid.utils.having import Aggregation -from six import string_types - -from sqlalchemy import ( - Column, Integer, String, ForeignKey, Text, Boolean, - DateTime, Date, Table, Numeric, - create_engine, MetaData, desc, asc, select, and_ -) -from sqlalchemy.ext.compiler import compiles -from sqlalchemy.ext.declarative import declared_attr -from sqlalchemy.orm import backref, relationship -from sqlalchemy.orm.session import make_transient -from sqlalchemy.sql import table, literal_column, text, column -from sqlalchemy.sql.expression import ColumnClause, TextAsFrom -from sqlalchemy_utils import EncryptedType - -from werkzeug.datastructures import ImmutableMultiDict - -from superset import ( - app, db, db_engine_specs, get_session, utils, sm, import_util -) -from superset.source_registry import SourceRegistry -from superset.viz import viz_types -from superset.jinja_context import get_template_processor -from superset.utils import ( - flasher, MetricPermException, DimSelector, wrap_clause_in_parens, - DTTM_ALIAS, QueryStatus, -) - -config = app.config - - -class QueryResult(object): - - """Object returned by the query interface""" - - def __init__( # noqa - self, - df, - query, - duration, - status=QueryStatus.SUCCESS, - error_message=None): - self.df = df - self.query = query - self.duration = duration - self.status = status - self.error_message = error_message - - -FilterPattern = re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''') - - -def set_perm(mapper, connection, target): # noqa - if target.perm != target.get_perm(): - link_table = target.__table__ - connection.execute( - link_table.update() - .where(link_table.c.id == target.id) - .values(perm=target.get_perm()) - ) - - -def set_related_perm(mapper, connection, target): # noqa - src_class = target.cls_model - id_ = target.datasource_id - ds = db.session.query(src_class).filter_by(id=int(id_)).first() - target.perm = ds.perm - - -class JavascriptPostAggregator(Postaggregator): - def __init__(self, name, field_names, function): - self.post_aggregator = { - 'type': 'javascript', - 'fieldNames': field_names, - 'name': name, - 'function': function, - } - self.name = name - - -class ImportMixin(object): - def override(self, obj): - """Overrides the plain fields of the dashboard.""" - for field in obj.__class__.export_fields: - setattr(self, field, getattr(obj, field)) - - def copy(self): - """Creates a copy of the dashboard without relationships.""" - new_obj = self.__class__() - new_obj.override(self) - return new_obj - - def alter_params(self, **kwargs): - d = self.params_dict - d.update(kwargs) - self.params = json.dumps(d) - - @property - def params_dict(self): - if self.params: - params = re.sub(",[ \t\r\n]+}", "}", self.params) - params = re.sub(",[ \t\r\n]+\]", "]", params) - return json.loads(params) - else: - return {} - - -class AuditMixinNullable(AuditMixin): - - """Altering the AuditMixin to use nullable fields - - Allows creating objects programmatically outside of CRUD - """ - - created_on = Column(DateTime, default=datetime.now, nullable=True) - changed_on = Column( - DateTime, default=datetime.now, - onupdate=datetime.now, nullable=True) - - @declared_attr - def created_by_fk(cls): # noqa - return Column(Integer, ForeignKey('ab_user.id'), - default=cls.get_user_id, nullable=True) - - @declared_attr - def changed_by_fk(cls): # noqa - return Column( - Integer, ForeignKey('ab_user.id'), - default=cls.get_user_id, onupdate=cls.get_user_id, nullable=True) - - def _user_link(self, user): - if not user: - return '' - url = '/superset/profile/{}/'.format(user.username) - return Markup('{}'.format(url, escape(user) or '')) - - @renders('created_by') - def creator(self): # noqa - return self._user_link(self.created_by) - - @property - def changed_by_(self): - return self._user_link(self.changed_by) - - @renders('changed_on') - def changed_on_(self): - return Markup( - '{}'.format(self.changed_on)) - - @renders('changed_on') - def modified(self): - s = humanize.naturaltime(datetime.now() - self.changed_on) - return Markup('{}'.format(s)) - - @property - def icons(self): - return """ - - - - """.format(**locals()) - - -class Url(Model, AuditMixinNullable): - - """Used for the short url feature""" - - __tablename__ = 'url' - id = Column(Integer, primary_key=True) - url = Column(Text) - - -class KeyValue(Model): - - """Used for any type of key-value store""" - - __tablename__ = 'keyvalue' - id = Column(Integer, primary_key=True) - value = Column(Text, nullable=False) - - -class CssTemplate(Model, AuditMixinNullable): - - """CSS templates for dashboards""" - - __tablename__ = 'css_templates' - id = Column(Integer, primary_key=True) - template_name = Column(String(250)) - css = Column(Text, default='') - - -slice_user = Table('slice_user', Model.metadata, - Column('id', Integer, primary_key=True), - Column('user_id', Integer, ForeignKey('ab_user.id')), - Column('slice_id', Integer, ForeignKey('slices.id')) - ) - - -class Slice(Model, AuditMixinNullable, ImportMixin): - - """A slice is essentially a report or a view on data""" - - __tablename__ = 'slices' - id = Column(Integer, primary_key=True) - slice_name = Column(String(250)) - datasource_id = Column(Integer) - datasource_type = Column(String(200)) - datasource_name = Column(String(2000)) - viz_type = Column(String(250)) - params = Column(Text) - description = Column(Text) - cache_timeout = Column(Integer) - perm = Column(String(1000)) - owners = relationship("User", secondary=slice_user) - - export_fields = ('slice_name', 'datasource_type', 'datasource_name', - 'viz_type', 'params', 'cache_timeout') - - def __repr__(self): - return self.slice_name - - @property - def cls_model(self): - return SourceRegistry.sources[self.datasource_type] - - @property - def datasource(self): - return self.get_datasource - - @datasource.getter - @utils.memoized - def get_datasource(self): - ds = db.session.query( - self.cls_model).filter_by( - id=self.datasource_id).first() - return ds - - @renders('datasource_name') - def datasource_link(self): - datasource = self.datasource - if datasource: - return self.datasource.link - - @property - def datasource_edit_url(self): - self.datasource.url - - @property - @utils.memoized - def viz(self): - d = json.loads(self.params) - viz_class = viz_types[self.viz_type] - return viz_class(self.datasource, form_data=d) - - @property - def description_markeddown(self): - return utils.markdown(self.description) - - @property - def data(self): - """Data used to render slice in templates""" - d = {} - self.token = '' - try: - d = self.viz.data - self.token = d.get('token') - except Exception as e: - logging.exception(e) - d['error'] = str(e) - d['slice_id'] = self.id - d['slice_name'] = self.slice_name - d['description'] = self.description - d['slice_url'] = self.slice_url - d['edit_url'] = self.edit_url - d['description_markeddown'] = self.description_markeddown - return d - - @property - def json_data(self): - return json.dumps(self.data) - - @property - def slice_url(self): - """Defines the url to access the slice""" - try: - slice_params = json.loads(self.params) - except Exception as e: - logging.exception(e) - slice_params = {} - slice_params['slice_id'] = self.id - slice_params['json'] = "false" - slice_params['slice_name'] = self.slice_name - from werkzeug.urls import Href - href = Href( - "/superset/explore/{obj.datasource_type}/" - "{obj.datasource_id}/".format(obj=self)) - return href(slice_params) - - @property - def slice_id_url(self): - return ( - "/superset/{slc.datasource_type}/{slc.datasource_id}/{slc.id}/" - ).format(slc=self) - - @property - def edit_url(self): - return "/slicemodelview/edit/{}".format(self.id) - - @property - def slice_link(self): - url = self.slice_url - name = escape(self.slice_name) - return Markup('{name}'.format(**locals())) - - def get_viz(self, url_params_multidict=None): - """Creates :py:class:viz.BaseViz object from the url_params_multidict. - - :param werkzeug.datastructures.MultiDict url_params_multidict: - Contains the visualization params, they override the self.params - stored in the database - :return: object of the 'viz_type' type that is taken from the - url_params_multidict or self.params. - :rtype: :py:class:viz.BaseViz - """ - slice_params = json.loads(self.params) # {} - slice_params['slice_id'] = self.id - slice_params['json'] = "false" - slice_params['slice_name'] = self.slice_name - slice_params['viz_type'] = self.viz_type if self.viz_type else "table" - if url_params_multidict: - slice_params.update(url_params_multidict) - to_del = [k for k in slice_params if k not in url_params_multidict] - for k in to_del: - del slice_params[k] - - immutable_slice_params = ImmutableMultiDict(slice_params) - return viz_types[immutable_slice_params.get('viz_type')]( - self.datasource, - form_data=immutable_slice_params, - slice_=self - ) - - @classmethod - def import_obj(cls, slc_to_import, import_time=None): - """Inserts or overrides slc in the database. - - remote_id and import_time fields in params_dict are set to track the - slice origin and ensure correct overrides for multiple imports. - Slice.perm is used to find the datasources and connect them. - """ - session = db.session - make_transient(slc_to_import) - slc_to_import.dashboards = [] - slc_to_import.alter_params( - remote_id=slc_to_import.id, import_time=import_time) - - # find if the slice was already imported - slc_to_override = None - for slc in session.query(Slice).all(): - if ('remote_id' in slc.params_dict and - slc.params_dict['remote_id'] == slc_to_import.id): - slc_to_override = slc - - slc_to_import = slc_to_import.copy() - params = slc_to_import.params_dict - slc_to_import.datasource_id = SourceRegistry.get_datasource_by_name( - session, slc_to_import.datasource_type, params['datasource_name'], - params['schema'], params['database_name']).id - if slc_to_override: - slc_to_override.override(slc_to_import) - session.flush() - return slc_to_override.id - session.add(slc_to_import) - logging.info('Final slice: {}'.format(slc_to_import.to_json())) - session.flush() - return slc_to_import.id - - -sqla.event.listen(Slice, 'before_insert', set_related_perm) -sqla.event.listen(Slice, 'before_update', set_related_perm) - - -dashboard_slices = Table( - 'dashboard_slices', Model.metadata, - Column('id', Integer, primary_key=True), - Column('dashboard_id', Integer, ForeignKey('dashboards.id')), - Column('slice_id', Integer, ForeignKey('slices.id')), -) - -dashboard_user = Table( - 'dashboard_user', Model.metadata, - Column('id', Integer, primary_key=True), - Column('user_id', Integer, ForeignKey('ab_user.id')), - Column('dashboard_id', Integer, ForeignKey('dashboards.id')) -) - - -class Dashboard(Model, AuditMixinNullable, ImportMixin): - - """The dashboard object!""" - - __tablename__ = 'dashboards' - id = Column(Integer, primary_key=True) - dashboard_title = Column(String(500)) - position_json = Column(Text) - description = Column(Text) - css = Column(Text) - json_metadata = Column(Text) - slug = Column(String(255), unique=True) - slices = relationship( - 'Slice', secondary=dashboard_slices, backref='dashboards') - owners = relationship("User", secondary=dashboard_user) - - export_fields = ('dashboard_title', 'position_json', 'json_metadata', - 'description', 'css', 'slug') - - def __repr__(self): - return self.dashboard_title - - @property - def table_names(self): - return ", ".join( - {"{}".format(s.datasource.name) for s in self.slices}) - - @property - def url(self): - return "/superset/dashboard/{}/".format(self.slug or self.id) - - @property - def datasources(self): - return {slc.datasource for slc in self.slices} - - @property - def sqla_metadata(self): - metadata = MetaData(bind=self.get_sqla_engine()) - return metadata.reflect() - - def dashboard_link(self): - title = escape(self.dashboard_title) - return Markup( - '{title}'.format(**locals())) - - @property - def json_data(self): - positions = self.position_json - if positions: - positions = json.loads(positions) - d = { - 'id': self.id, - 'metadata': self.params_dict, - 'css': self.css, - 'dashboard_title': self.dashboard_title, - 'slug': self.slug, - 'slices': [slc.data for slc in self.slices], - 'position_json': positions, - } - return json.dumps(d) - - @property - def params(self): - return self.json_metadata - - @params.setter - def params(self, value): - self.json_metadata = value - - @property - def position_array(self): - if self.position_json: - return json.loads(self.position_json) - return [] - - @classmethod - def import_obj(cls, dashboard_to_import, import_time=None): - """Imports the dashboard from the object to the database. - - Once dashboard is imported, json_metadata field is extended and stores - remote_id and import_time. It helps to decide if the dashboard has to - be overridden or just copies over. Slices that belong to this - dashboard will be wired to existing tables. This function can be used - to import/export dashboards between multiple superset instances. - Audit metadata isn't copies over. - """ - def alter_positions(dashboard, old_to_new_slc_id_dict): - """ Updates slice_ids in the position json. - - Sample position json: - [{ - "col": 5, - "row": 10, - "size_x": 4, - "size_y": 2, - "slice_id": "3610" - }] - """ - position_array = dashboard.position_array - for position in position_array: - if 'slice_id' not in position: - continue - old_slice_id = int(position['slice_id']) - if old_slice_id in old_to_new_slc_id_dict: - position['slice_id'] = '{}'.format( - old_to_new_slc_id_dict[old_slice_id]) - dashboard.position_json = json.dumps(position_array) - - logging.info('Started import of the dashboard: {}' - .format(dashboard_to_import.to_json())) - session = db.session - logging.info('Dashboard has {} slices' - .format(len(dashboard_to_import.slices))) - # copy slices object as Slice.import_slice will mutate the slice - # and will remove the existing dashboard - slice association - slices = copy(dashboard_to_import.slices) - old_to_new_slc_id_dict = {} - new_filter_immune_slices = [] - new_expanded_slices = {} - i_params_dict = dashboard_to_import.params_dict - for slc in slices: - logging.info('Importing slice {} from the dashboard: {}'.format( - slc.to_json(), dashboard_to_import.dashboard_title)) - new_slc_id = Slice.import_obj(slc, import_time=import_time) - old_to_new_slc_id_dict[slc.id] = new_slc_id - # update json metadata that deals with slice ids - new_slc_id_str = '{}'.format(new_slc_id) - old_slc_id_str = '{}'.format(slc.id) - if ('filter_immune_slices' in i_params_dict and - old_slc_id_str in i_params_dict['filter_immune_slices']): - new_filter_immune_slices.append(new_slc_id_str) - if ('expanded_slices' in i_params_dict and - old_slc_id_str in i_params_dict['expanded_slices']): - new_expanded_slices[new_slc_id_str] = ( - i_params_dict['expanded_slices'][old_slc_id_str]) - - # override the dashboard - existing_dashboard = None - for dash in session.query(Dashboard).all(): - if ('remote_id' in dash.params_dict and - dash.params_dict['remote_id'] == - dashboard_to_import.id): - existing_dashboard = dash - - dashboard_to_import.id = None - alter_positions(dashboard_to_import, old_to_new_slc_id_dict) - dashboard_to_import.alter_params(import_time=import_time) - if new_expanded_slices: - dashboard_to_import.alter_params( - expanded_slices=new_expanded_slices) - if new_filter_immune_slices: - dashboard_to_import.alter_params( - filter_immune_slices=new_filter_immune_slices) - - new_slices = session.query(Slice).filter( - Slice.id.in_(old_to_new_slc_id_dict.values())).all() - - if existing_dashboard: - existing_dashboard.override(dashboard_to_import) - existing_dashboard.slices = new_slices - session.flush() - return existing_dashboard.id - else: - # session.add(dashboard_to_import) causes sqlachemy failures - # related to the attached users / slices. Creating new object - # allows to avoid conflicts in the sql alchemy state. - copied_dash = dashboard_to_import.copy() - copied_dash.slices = new_slices - session.add(copied_dash) - session.flush() - return copied_dash.id - - @classmethod - def export_dashboards(cls, dashboard_ids): - copied_dashboards = [] - datasource_ids = set() - for dashboard_id in dashboard_ids: - # make sure that dashboard_id is an integer - dashboard_id = int(dashboard_id) - copied_dashboard = ( - db.session.query(Dashboard) - .options(subqueryload(Dashboard.slices)) - .filter_by(id=dashboard_id).first() - ) - make_transient(copied_dashboard) - for slc in copied_dashboard.slices: - datasource_ids.add((slc.datasource_id, slc.datasource_type)) - # add extra params for the import - slc.alter_params( - remote_id=slc.id, - datasource_name=slc.datasource.name, - schema=slc.datasource.name, - database_name=slc.datasource.database.name, - ) - copied_dashboard.alter_params(remote_id=dashboard_id) - copied_dashboards.append(copied_dashboard) - - eager_datasources = [] - for dashboard_id, dashboard_type in datasource_ids: - eager_datasource = SourceRegistry.get_eager_datasource( - db.session, dashboard_type, dashboard_id) - eager_datasource.alter_params( - remote_id=eager_datasource.id, - database_name=eager_datasource.database.name, - ) - make_transient(eager_datasource) - eager_datasources.append(eager_datasource) - - return pickle.dumps({ - 'dashboards': copied_dashboards, - 'datasources': eager_datasources, - }) - - -class Queryable(object): - - """A common interface to objects that are queryable (tables and datasources)""" - - @property - def column_names(self): - return sorted([c.column_name for c in self.columns]) - - @property - def main_dttm_col(self): - return "timestamp" - - @property - def groupby_column_names(self): - return sorted([c.column_name for c in self.columns if c.groupby]) - - @property - def filterable_column_names(self): - return sorted([c.column_name for c in self.columns if c.filterable]) - - @property - def dttm_cols(self): - return [] - - @property - def url(self): - return '/{}/edit/{}'.format(self.baselink, self.id) - - @property - def explore_url(self): - if self.default_endpoint: - return self.default_endpoint - else: - return "/superset/explore/{obj.type}/{obj.id}/".format(obj=self) - - @property - def data(self): - """data representation of the datasource sent to the frontend""" - gb_cols = [(col, col) for col in self.groupby_column_names] - all_cols = [(c, c) for c in self.column_names] - filter_cols = [(c, c) for c in self.filterable_column_names] - order_by_choices = [] - for s in sorted(self.column_names): - order_by_choices.append((json.dumps([s, True]), s + ' [asc]')) - order_by_choices.append((json.dumps([s, False]), s + ' [desc]')) - - d = { - 'id': self.id, - 'type': self.type, - 'name': self.name, - 'metrics_combo': self.metrics_combo, - 'order_by_choices': order_by_choices, - 'gb_cols': gb_cols, - 'all_cols': all_cols, - 'filterable_cols': filter_cols, - 'filter_select': self.filter_select_enabled, - } - if self.type == 'table': - grains = self.database.grains() or [] - if grains: - grains = [(g.name, g.name) for g in grains] - d['granularity_sqla'] = [(c, c) for c in self.dttm_cols] - d['time_grain_sqla'] = grains - return d - - -class Database(Model, AuditMixinNullable): - - """An ORM object that stores Database related information""" - - __tablename__ = 'dbs' - type = "table" - - id = Column(Integer, primary_key=True) - database_name = Column(String(250), unique=True) - sqlalchemy_uri = Column(String(1024)) - password = Column(EncryptedType(String(1024), config.get('SECRET_KEY'))) - cache_timeout = Column(Integer) - select_as_create_table_as = Column(Boolean, default=False) - expose_in_sqllab = Column(Boolean, default=False) - allow_run_sync = Column(Boolean, default=True) - allow_run_async = Column(Boolean, default=False) - allow_ctas = Column(Boolean, default=False) - allow_dml = Column(Boolean, default=False) - force_ctas_schema = Column(String(250)) - extra = Column(Text, default=textwrap.dedent("""\ - { - "metadata_params": {}, - "engine_params": {} - } - """)) - perm = Column(String(1000)) - - def __repr__(self): - return self.database_name - - @property - def name(self): - return self.database_name - - @property - def backend(self): - url = make_url(self.sqlalchemy_uri_decrypted) - return url.get_backend_name() - - def set_sqlalchemy_uri(self, uri): - password_mask = "X" * 10 - conn = sqla.engine.url.make_url(uri) - if conn.password != password_mask: - # do not over-write the password with the password mask - self.password = conn.password - conn.password = password_mask if conn.password else None - self.sqlalchemy_uri = str(conn) # hides the password - - def get_sqla_engine(self, schema=None): - extra = self.get_extra() - url = make_url(self.sqlalchemy_uri_decrypted) - params = extra.get('engine_params', {}) - if self.backend == 'presto' and schema: - if '/' in url.database: - url.database = url.database.split('/')[0] + '/' + schema - else: - url.database += '/' + schema - elif schema: - url.database = schema - return create_engine(url, **params) - - def get_reserved_words(self): - return self.get_sqla_engine().dialect.preparer.reserved_words - - def get_quoter(self): - return self.get_sqla_engine().dialect.identifier_preparer.quote - - def get_df(self, sql, schema): - sql = sql.strip().strip(';') - eng = self.get_sqla_engine(schema=schema) - cur = eng.execute(sql, schema=schema) - cols = [col[0] for col in cur.cursor.description] - df = pd.DataFrame(cur.fetchall(), columns=cols) - - def needs_conversion(df_series): - if df_series.empty: - return False - for df_type in [list, dict]: - if isinstance(df_series[0], df_type): - return True - return False - - for k, v in df.dtypes.iteritems(): - if v.type == numpy.object_ and needs_conversion(df[k]): - df[k] = df[k].apply(utils.json_dumps_w_dates) - return df - - def compile_sqla_query(self, qry, schema=None): - eng = self.get_sqla_engine(schema=schema) - compiled = qry.compile(eng, compile_kwargs={"literal_binds": True}) - return '{}'.format(compiled) - - def select_star( - self, table_name, schema=None, limit=100, show_cols=False, - indent=True): - """Generates a ``select *`` statement in the proper dialect""" - quote = self.get_quoter() - fields = '*' - table = self.get_table(table_name, schema=schema) - if show_cols: - fields = [quote(c.name) for c in table.columns] - if schema: - table_name = schema + '.' + table_name - qry = select(fields).select_from(text(table_name)) - if limit: - qry = qry.limit(limit) - sql = self.compile_sqla_query(qry) - if indent: - sql = sqlparse.format(sql, reindent=True) - return sql - - def wrap_sql_limit(self, sql, limit=1000): - qry = ( - select('*') - .select_from(TextAsFrom(text(sql), ['*']) - .alias('inner_qry')).limit(limit) - ) - return self.compile_sqla_query(qry) - - def safe_sqlalchemy_uri(self): - return self.sqlalchemy_uri - - @property - def inspector(self): - engine = self.get_sqla_engine() - return sqla.inspect(engine) - - def all_table_names(self, schema=None): - return sorted(self.inspector.get_table_names(schema)) - - def all_view_names(self, schema=None): - views = [] - try: - views = self.inspector.get_view_names(schema) - except Exception as e: - pass - return views - - def all_schema_names(self): - return sorted(self.inspector.get_schema_names()) - - @property - def db_engine_spec(self): - engine_name = self.get_sqla_engine().name or 'base' - return db_engine_specs.engines.get( - engine_name, db_engine_specs.BaseEngineSpec) - - def grains(self): - """Defines time granularity database-specific expressions. - - The idea here is to make it easy for users to change the time grain - form a datetime (maybe the source grain is arbitrary timestamps, daily - or 5 minutes increments) to another, "truncated" datetime. Since - each database has slightly different but similar datetime functions, - this allows a mapping between database engines and actual functions. - """ - return self.db_engine_spec.time_grains - - def grains_dict(self): - return {grain.name: grain for grain in self.grains()} - - def get_extra(self): - extra = {} - if self.extra: - try: - extra = json.loads(self.extra) - except Exception as e: - logging.error(e) - return extra - - def get_table(self, table_name, schema=None): - extra = self.get_extra() - meta = MetaData(**extra.get('metadata_params', {})) - return Table( - table_name, meta, - schema=schema or None, - autoload=True, - autoload_with=self.get_sqla_engine()) - - def get_columns(self, table_name, schema=None): - return self.inspector.get_columns(table_name, schema) - - def get_indexes(self, table_name, schema=None): - return self.inspector.get_indexes(table_name, schema) - - def get_pk_constraint(self, table_name, schema=None): - return self.inspector.get_pk_constraint(table_name, schema) - - def get_foreign_keys(self, table_name, schema=None): - return self.inspector.get_foreign_keys(table_name, schema) - - @property - def sqlalchemy_uri_decrypted(self): - conn = sqla.engine.url.make_url(self.sqlalchemy_uri) - conn.password = self.password - return str(conn) - - @property - def sql_url(self): - return '/superset/sql/{}/'.format(self.id) - - def get_perm(self): - return ( - "[{obj.database_name}].(id:{obj.id})").format(obj=self) - -sqla.event.listen(Database, 'after_insert', set_perm) -sqla.event.listen(Database, 'after_update', set_perm) - - -class TableColumn(Model, AuditMixinNullable, ImportMixin): - - """ORM object for table columns, each table can have multiple columns""" - - __tablename__ = 'table_columns' - id = Column(Integer, primary_key=True) - table_id = Column(Integer, ForeignKey('tables.id')) - table = relationship( - 'SqlaTable', - backref=backref('columns', cascade='all, delete-orphan'), - foreign_keys=[table_id]) - column_name = Column(String(255)) - verbose_name = Column(String(1024)) - is_dttm = Column(Boolean, default=False) - is_active = Column(Boolean, default=True) - type = Column(String(32), default='') - groupby = Column(Boolean, default=False) - count_distinct = Column(Boolean, default=False) - sum = Column(Boolean, default=False) - avg = Column(Boolean, default=False) - max = Column(Boolean, default=False) - min = Column(Boolean, default=False) - filterable = Column(Boolean, default=False) - expression = Column(Text, default='') - description = Column(Text, default='') - python_date_format = Column(String(255)) - database_expression = Column(String(255)) - - num_types = ('DOUBLE', 'FLOAT', 'INT', 'BIGINT', 'LONG', 'REAL', 'NUMERIC') - date_types = ('DATE', 'TIME') - str_types = ('VARCHAR', 'STRING', 'CHAR') - export_fields = ( - 'table_id', 'column_name', 'verbose_name', 'is_dttm', 'is_active', - 'type', 'groupby', 'count_distinct', 'sum', 'avg', 'max', 'min', - 'filterable', 'expression', 'description', 'python_date_format', - 'database_expression' - ) - - def __repr__(self): - return self.column_name - - @property - def is_num(self): - return any([t in self.type.upper() for t in self.num_types]) - - @property - def is_time(self): - return any([t in self.type.upper() for t in self.date_types]) - - @property - def is_string(self): - return any([t in self.type.upper() for t in self.str_types]) - - @property - def sqla_col(self): - name = self.column_name - if not self.expression: - col = column(self.column_name).label(name) - else: - col = literal_column(self.expression).label(name) - return col - - def get_time_filter(self, start_dttm, end_dttm): - col = self.sqla_col.label('__time') - return and_( - col >= text(self.dttm_sql_literal(start_dttm)), - col <= text(self.dttm_sql_literal(end_dttm)), - ) - - def get_timestamp_expression(self, time_grain): - """Getting the time component of the query""" - expr = self.expression or self.column_name - if not self.expression and not time_grain: - return column(expr, type_=DateTime).label(DTTM_ALIAS) - if time_grain: - pdf = self.python_date_format - if pdf in ('epoch_s', 'epoch_ms'): - # if epoch, translate to DATE using db specific conf - db_spec = self.table.database.db_engine_spec - if pdf == 'epoch_s': - expr = db_spec.epoch_to_dttm().format(col=expr) - elif pdf == 'epoch_ms': - expr = db_spec.epoch_ms_to_dttm().format(col=expr) - grain = self.table.database.grains_dict().get(time_grain, '{col}') - expr = grain.function.format(col=expr) - return literal_column(expr, type_=DateTime).label(DTTM_ALIAS) - - @classmethod - def import_obj(cls, i_column): - def lookup_obj(lookup_column): - return db.session.query(TableColumn).filter( - TableColumn.table_id == lookup_column.table_id, - TableColumn.column_name == lookup_column.column_name).first() - return import_util.import_simple_obj(db.session, i_column, lookup_obj) - - def dttm_sql_literal(self, dttm): - """Convert datetime object to a SQL expression string - - If database_expression is empty, the internal dttm - will be parsed as the string with the pattern that - the user inputted (python_date_format) - If database_expression is not empty, the internal dttm - will be parsed as the sql sentence for the database to convert - """ - - tf = self.python_date_format or '%Y-%m-%d %H:%M:%S.%f' - if self.database_expression: - return self.database_expression.format(dttm.strftime('%Y-%m-%d %H:%M:%S')) - elif tf == 'epoch_s': - return str((dttm - datetime(1970, 1, 1)).total_seconds()) - elif tf == 'epoch_ms': - return str((dttm - datetime(1970, 1, 1)).total_seconds() * 1000.0) - else: - s = self.table.database.db_engine_spec.convert_dttm( - self.type, dttm) - return s or "'{}'".format(dttm.strftime(tf)) - - -class SqlMetric(Model, AuditMixinNullable, ImportMixin): - - """ORM object for metrics, each table can have multiple metrics""" - - __tablename__ = 'sql_metrics' - id = Column(Integer, primary_key=True) - metric_name = Column(String(512)) - verbose_name = Column(String(1024)) - metric_type = Column(String(32)) - table_id = Column(Integer, ForeignKey('tables.id')) - table = relationship( - 'SqlaTable', - backref=backref('metrics', cascade='all, delete-orphan'), - foreign_keys=[table_id]) - expression = Column(Text) - description = Column(Text) - is_restricted = Column(Boolean, default=False, nullable=True) - d3format = Column(String(128)) - - export_fields = ( - 'metric_name', 'verbose_name', 'metric_type', 'table_id', 'expression', - 'description', 'is_restricted', 'd3format') - - @property - def sqla_col(self): - name = self.metric_name - return literal_column(self.expression).label(name) - - @property - def perm(self): - return ( - "{parent_name}.[{obj.metric_name}](id:{obj.id})" - ).format(obj=self, - parent_name=self.table.full_name) if self.table else None - - @classmethod - def import_obj(cls, i_metric): - def lookup_obj(lookup_metric): - return db.session.query(SqlMetric).filter( - SqlMetric.table_id == lookup_metric.table_id, - SqlMetric.metric_name == lookup_metric.metric_name).first() - return import_util.import_simple_obj(db.session, i_metric, lookup_obj) - - -class SqlaTable(Model, Queryable, AuditMixinNullable, ImportMixin): - - """An ORM object for SqlAlchemy table references""" - - type = "table" - - __tablename__ = 'tables' - id = Column(Integer, primary_key=True) - table_name = Column(String(250)) - main_dttm_col = Column(String(250)) - description = Column(Text) - default_endpoint = Column(Text) - database_id = Column(Integer, ForeignKey('dbs.id'), nullable=False) - is_featured = Column(Boolean, default=False) - filter_select_enabled = Column(Boolean, default=False) - user_id = Column(Integer, ForeignKey('ab_user.id')) - owner = relationship('User', backref='tables', foreign_keys=[user_id]) - database = relationship( - 'Database', - backref=backref('tables', cascade='all, delete-orphan'), - foreign_keys=[database_id]) - offset = Column(Integer, default=0) - cache_timeout = Column(Integer) - schema = Column(String(255)) - sql = Column(Text) - params = Column(Text) - perm = Column(String(1000)) - - baselink = "tablemodelview" - column_cls = TableColumn - metric_cls = SqlMetric - export_fields = ( - 'table_name', 'main_dttm_col', 'description', 'default_endpoint', - 'database_id', 'is_featured', 'offset', 'cache_timeout', 'schema', - 'sql', 'params') - - __table_args__ = ( - sqla.UniqueConstraint( - 'database_id', 'schema', 'table_name', - name='_customer_location_uc'),) - - def __repr__(self): - return self.name - - @property - def description_markeddown(self): - return utils.markdown(self.description) - - @property - def link(self): - name = escape(self.name) - return Markup( - '{name}'.format(**locals())) - - @property - def schema_perm(self): - """Returns schema permission if present, database one otherwise.""" - return utils.get_schema_perm(self.database, self.schema) - - def get_perm(self): - return ( - "[{obj.database}].[{obj.table_name}]" - "(id:{obj.id})").format(obj=self) - - @property - def name(self): - if not self.schema: - return self.table_name - return "{}.{}".format(self.schema, self.table_name) - - @property - def full_name(self): - return utils.get_datasource_full_name( - self.database, self.table_name, schema=self.schema) - - @property - def dttm_cols(self): - l = [c.column_name for c in self.columns if c.is_dttm] - if self.main_dttm_col not in l: - l.append(self.main_dttm_col) - return l - - @property - def num_cols(self): - return [c.column_name for c in self.columns if c.is_num] - - @property - def any_dttm_col(self): - cols = self.dttm_cols - if cols: - return cols[0] - - @property - def html(self): - t = ((c.column_name, c.type) for c in self.columns) - df = pd.DataFrame(t) - df.columns = ['field', 'type'] - return df.to_html( - index=False, - classes=( - "dataframe table table-striped table-bordered " - "table-condensed")) - - @property - def metrics_combo(self): - return sorted( - [ - (m.metric_name, m.verbose_name or m.metric_name) - for m in self.metrics], - key=lambda x: x[1]) - - @property - def sql_url(self): - return self.database.sql_url + "?table_name=" + str(self.table_name) - - @property - def time_column_grains(self): - return { - "time_columns": self.dttm_cols, - "time_grains": [grain.name for grain in self.database.grains()] - } - - def get_col(self, col_name): - columns = self.columns - for col in columns: - if col_name == col.column_name: - return col - - def values_for_column(self, - column_name, - from_dttm, - to_dttm, - limit=500): - """Runs query against sqla to retrieve some - sample values for the given column. - """ - granularity = self.main_dttm_col - - cols = {col.column_name: col for col in self.columns} - target_col = cols[column_name] - - tbl = table(self.table_name) - qry = select([target_col.sqla_col]) - qry = qry.select_from(tbl) - qry = qry.distinct(column_name) - qry = qry.limit(limit) - - if granularity: - dttm_col = cols[granularity] - timestamp = dttm_col.sqla_col.label('timestamp') - time_filter = [ - timestamp >= text(dttm_col.dttm_sql_literal(from_dttm)), - timestamp <= text(dttm_col.dttm_sql_literal(to_dttm)), - ] - qry = qry.where(and_(*time_filter)) - - engine = self.database.get_sqla_engine() - sql = "{}".format( - qry.compile( - engine, compile_kwargs={"literal_binds": True}, ), - ) - - return pd.read_sql_query( - sql=sql, - con=engine - ) - - def query( # sqla - self, groupby, metrics, - granularity, - from_dttm, to_dttm, - filter=None, # noqa - is_timeseries=True, - timeseries_limit=15, - timeseries_limit_metric=None, - row_limit=None, - inner_from_dttm=None, - inner_to_dttm=None, - orderby=None, - extras=None, - columns=None): - """Querying any sqla table from this common interface""" - template_processor = get_template_processor( - table=self, database=self.database) - - # For backward compatibility - if granularity not in self.dttm_cols: - granularity = self.main_dttm_col - - cols = {col.column_name: col for col in self.columns} - metrics_dict = {m.metric_name: m for m in self.metrics} - qry_start_dttm = datetime.now() - - if not granularity and is_timeseries: - raise Exception(_( - "Datetime column not provided as part table configuration " - "and is required by this type of chart")) - for m in metrics: - if m not in metrics_dict: - raise Exception(_("Metric '{}' is not valid".format(m))) - metrics_exprs = [metrics_dict.get(m).sqla_col for m in metrics] - timeseries_limit_metric = metrics_dict.get(timeseries_limit_metric) - timeseries_limit_metric_expr = None - if timeseries_limit_metric: - timeseries_limit_metric_expr = \ - timeseries_limit_metric.sqla_col - if metrics: - main_metric_expr = metrics_exprs[0] - else: - main_metric_expr = literal_column("COUNT(*)").label("ccount") - - select_exprs = [] - groupby_exprs = [] - - if groupby: - select_exprs = [] - inner_select_exprs = [] - inner_groupby_exprs = [] - for s in groupby: - col = cols[s] - outer = col.sqla_col - inner = col.sqla_col.label(col.column_name + '__') - - groupby_exprs.append(outer) - select_exprs.append(outer) - inner_groupby_exprs.append(inner) - inner_select_exprs.append(inner) - elif columns: - for s in columns: - select_exprs.append(cols[s].sqla_col) - metrics_exprs = [] - - if granularity: - @compiles(ColumnClause) - def visit_column(element, compiler, **kw): - """Patch for sqlalchemy bug - - TODO: sqlalchemy 1.2 release should be doing this on its own. - Patch only if the column clause is specific for DateTime - set and granularity is selected. - """ - text = compiler.visit_column(element, **kw) - try: - if ( - element.is_literal and - hasattr(element.type, 'python_type') and - type(element.type) is DateTime - ): - text = text.replace('%%', '%') - except NotImplementedError: - # Some elements raise NotImplementedError for python_type - pass - return text - - dttm_col = cols[granularity] - time_grain = extras.get('time_grain_sqla') - - if is_timeseries: - timestamp = dttm_col.get_timestamp_expression(time_grain) - select_exprs += [timestamp] - groupby_exprs += [timestamp] - - time_filter = dttm_col.get_time_filter(from_dttm, to_dttm) - - select_exprs += metrics_exprs - qry = select(select_exprs) - - tbl = table(self.table_name) - if self.schema: - tbl.schema = self.schema - - # Supporting arbitrary SQL statements in place of tables - if self.sql: - tbl = TextAsFrom(sqla.text(self.sql), []).alias('expr_qry') - - if not columns: - qry = qry.group_by(*groupby_exprs) - - where_clause_and = [] - having_clause_and = [] - for col, op, eq in filter: - col_obj = cols[col] - if op in ('in', 'not in'): - split = FilterPattern.split(eq)[1::2] - values = [types.strip() for types in split] - # attempt to get the values type if they are not in quotes - if not col_obj.is_string: - try: - values = [ast.literal_eval(v) for v in values] - except Exception as e: - logging.info(utils.error_msg_from_exception(e)) - values = [v.replace("'", '').strip() for v in values] - else: - values = [v.replace("'", '').strip() for v in values] - cond = col_obj.sqla_col.in_(values) - if op == 'not in': - cond = ~cond - where_clause_and.append(cond) - if extras: - where = extras.get('where') - if where: - where_clause_and += [wrap_clause_in_parens( - template_processor.process_template(where))] - having = extras.get('having') - if having: - having_clause_and += [wrap_clause_in_parens( - template_processor.process_template(having))] - if granularity: - qry = qry.where(and_(*([time_filter] + where_clause_and))) - else: - qry = qry.where(and_(*where_clause_and)) - qry = qry.having(and_(*having_clause_and)) - if groupby: - qry = qry.order_by(desc(main_metric_expr)) - elif orderby: - for col, ascending in orderby: - direction = asc if ascending else desc - qry = qry.order_by(direction(col)) - - qry = qry.limit(row_limit) - - if is_timeseries and timeseries_limit and groupby: - # some sql dialects require for order by expressions - # to also be in the select clause -- others, e.g. vertica, - # require a unique inner alias - inner_main_metric_expr = main_metric_expr.label('mme_inner__') - inner_select_exprs += [inner_main_metric_expr] - subq = select(inner_select_exprs) - subq = subq.select_from(tbl) - inner_time_filter = dttm_col.get_time_filter( - inner_from_dttm or from_dttm, - inner_to_dttm or to_dttm, - ) - subq = subq.where(and_(*(where_clause_and + [inner_time_filter]))) - subq = subq.group_by(*inner_groupby_exprs) - ob = inner_main_metric_expr - if timeseries_limit_metric_expr is not None: - ob = timeseries_limit_metric_expr - subq = subq.order_by(desc(ob)) - subq = subq.limit(timeseries_limit) - on_clause = [] - for i, gb in enumerate(groupby): - on_clause.append( - groupby_exprs[i] == column(gb + '__')) - - tbl = tbl.join(subq.alias(), and_(*on_clause)) - - qry = qry.select_from(tbl) - - engine = self.database.get_sqla_engine() - sql = "{}".format( - qry.compile( - engine, compile_kwargs={"literal_binds": True},), - ) - sql = sqlparse.format(sql, reindent=True) - status = QueryStatus.SUCCESS - error_message = None - df = None - try: - df = pd.read_sql_query(sql, con=engine) - except Exception as e: - status = QueryStatus.FAILED - error_message = str(e) - - return QueryResult( - status=status, - df=df, - duration=datetime.now() - qry_start_dttm, - query=sql, - error_message=error_message) - - def get_sqla_table_object(self): - return self.database.get_table(self.table_name, schema=self.schema) - - def fetch_metadata(self): - """Fetches the metadata for the table and merges it in""" - try: - table = self.get_sqla_table_object() - except Exception: - raise Exception( - "Table doesn't seem to exist in the specified database, " - "couldn't fetch column information") - - TC = TableColumn # noqa shortcut to class - M = SqlMetric # noqa - metrics = [] - any_date_col = None - for col in table.columns: - try: - datatype = "{}".format(col.type).upper() - except Exception as e: - datatype = "UNKNOWN" - logging.error( - "Unrecognized data type in {}.{}".format(table, col.name)) - logging.exception(e) - dbcol = ( - db.session - .query(TC) - .filter(TC.table == self) - .filter(TC.column_name == col.name) - .first() - ) - db.session.flush() - if not dbcol: - dbcol = TableColumn(column_name=col.name, type=datatype) - dbcol.groupby = dbcol.is_string - dbcol.filterable = dbcol.is_string - dbcol.sum = dbcol.is_num - dbcol.avg = dbcol.is_num - dbcol.is_dttm = dbcol.is_time - - db.session.merge(self) - self.columns.append(dbcol) - - if not any_date_col and dbcol.is_time: - any_date_col = col.name - - quoted = "{}".format( - column(dbcol.column_name).compile(dialect=db.engine.dialect)) - if dbcol.sum: - metrics.append(M( - metric_name='sum__' + dbcol.column_name, - verbose_name='sum__' + dbcol.column_name, - metric_type='sum', - expression="SUM({})".format(quoted) - )) - if dbcol.avg: - metrics.append(M( - metric_name='avg__' + dbcol.column_name, - verbose_name='avg__' + dbcol.column_name, - metric_type='avg', - expression="AVG({})".format(quoted) - )) - if dbcol.max: - metrics.append(M( - metric_name='max__' + dbcol.column_name, - verbose_name='max__' + dbcol.column_name, - metric_type='max', - expression="MAX({})".format(quoted) - )) - if dbcol.min: - metrics.append(M( - metric_name='min__' + dbcol.column_name, - verbose_name='min__' + dbcol.column_name, - metric_type='min', - expression="MIN({})".format(quoted) - )) - if dbcol.count_distinct: - metrics.append(M( - metric_name='count_distinct__' + dbcol.column_name, - verbose_name='count_distinct__' + dbcol.column_name, - metric_type='count_distinct', - expression="COUNT(DISTINCT {})".format(quoted) - )) - dbcol.type = datatype - db.session.merge(self) - db.session.commit() - - metrics.append(M( - metric_name='count', - verbose_name='COUNT(*)', - metric_type='count', - expression="COUNT(*)" - )) - for metric in metrics: - m = ( - db.session.query(M) - .filter(M.metric_name == metric.metric_name) - .filter(M.table_id == self.id) - .first() - ) - metric.table_id = self.id - if not m: - db.session.add(metric) - db.session.commit() - if not self.main_dttm_col: - self.main_dttm_col = any_date_col - - @classmethod - def import_obj(cls, i_datasource, import_time=None): - """Imports the datasource from the object to the database. - - Metrics and columns and datasource will be overrided if exists. - This function can be used to import/export dashboards between multiple - superset instances. Audit metadata isn't copies over. - """ - def lookup_sqlatable(table): - return db.session.query(SqlaTable).join(Database).filter( - SqlaTable.table_name == table.table_name, - SqlaTable.schema == table.schema, - Database.id == table.database_id, - ).first() - - def lookup_database(table): - return db.session.query(Database).filter_by( - database_name=table.params_dict['database_name']).one() - return import_util.import_datasource( - db.session, i_datasource, lookup_database, lookup_sqlatable, - import_time) - -sqla.event.listen(SqlaTable, 'after_insert', set_perm) -sqla.event.listen(SqlaTable, 'after_update', set_perm) - - -class DruidCluster(Model, AuditMixinNullable): - - """ORM object referencing the Druid clusters""" - - __tablename__ = 'clusters' - type = "druid" - - id = Column(Integer, primary_key=True) - cluster_name = Column(String(250), unique=True) - coordinator_host = Column(String(255)) - coordinator_port = Column(Integer) - coordinator_endpoint = Column( - String(255), default='druid/coordinator/v1/metadata') - broker_host = Column(String(255)) - broker_port = Column(Integer) - broker_endpoint = Column(String(255), default='druid/v2') - metadata_last_refreshed = Column(DateTime) - cache_timeout = Column(Integer) - - def __repr__(self): - return self.cluster_name - - def get_pydruid_client(self): - cli = PyDruid( - "http://{0}:{1}/".format(self.broker_host, self.broker_port), - self.broker_endpoint) - return cli - - def get_datasources(self): - endpoint = ( - "http://{obj.coordinator_host}:{obj.coordinator_port}/" - "{obj.coordinator_endpoint}/datasources" - ).format(obj=self) - - return json.loads(requests.get(endpoint).text) - - def get_druid_version(self): - endpoint = ( - "http://{obj.coordinator_host}:{obj.coordinator_port}/status" - ).format(obj=self) - return json.loads(requests.get(endpoint).text)['version'] - - def refresh_datasources(self, datasource_name=None, merge_flag=False): - """Refresh metadata of all datasources in the cluster - If ``datasource_name`` is specified, only that datasource is updated - """ - self.druid_version = self.get_druid_version() - for datasource in self.get_datasources(): - if datasource not in config.get('DRUID_DATA_SOURCE_BLACKLIST'): - if not datasource_name or datasource_name == datasource: - DruidDatasource.sync_to_db(datasource, self, merge_flag) - - @property - def perm(self): - return "[{obj.cluster_name}].(id:{obj.id})".format(obj=self) - - @property - def name(self): - return self.cluster_name - - -class DruidColumn(Model, AuditMixinNullable, ImportMixin): - """ORM model for storing Druid datasource column metadata""" - - __tablename__ = 'columns' - id = Column(Integer, primary_key=True) - datasource_name = Column( - String(255), - ForeignKey('datasources.datasource_name')) - # Setting enable_typechecks=False disables polymorphic inheritance. - datasource = relationship( - 'DruidDatasource', - backref=backref('columns', cascade='all, delete-orphan'), - enable_typechecks=False) - column_name = Column(String(255)) - is_active = Column(Boolean, default=True) - type = Column(String(32)) - groupby = Column(Boolean, default=False) - count_distinct = Column(Boolean, default=False) - sum = Column(Boolean, default=False) - avg = Column(Boolean, default=False) - max = Column(Boolean, default=False) - min = Column(Boolean, default=False) - filterable = Column(Boolean, default=False) - description = Column(Text) - dimension_spec_json = Column(Text) - - export_fields = ( - 'datasource_name', 'column_name', 'is_active', 'type', 'groupby', - 'count_distinct', 'sum', 'avg', 'max', 'min', 'filterable', - 'description', 'dimension_spec_json' - ) - - def __repr__(self): - return self.column_name - - @property - def is_num(self): - return self.type in ('LONG', 'DOUBLE', 'FLOAT', 'INT') - - @property - def dimension_spec(self): - if self.dimension_spec_json: - return json.loads(self.dimension_spec_json) - - def generate_metrics(self): - """Generate metrics based on the column metadata""" - M = DruidMetric # noqa - metrics = [] - metrics.append(DruidMetric( - metric_name='count', - verbose_name='COUNT(*)', - metric_type='count', - json=json.dumps({'type': 'count', 'name': 'count'}) - )) - # Somehow we need to reassign this for UDAFs - if self.type in ('DOUBLE', 'FLOAT'): - corrected_type = 'DOUBLE' - else: - corrected_type = self.type - - if self.sum and self.is_num: - mt = corrected_type.lower() + 'Sum' - name = 'sum__' + self.column_name - metrics.append(DruidMetric( - metric_name=name, - metric_type='sum', - verbose_name='SUM({})'.format(self.column_name), - json=json.dumps({ - 'type': mt, 'name': name, 'fieldName': self.column_name}) - )) - - if self.avg and self.is_num: - mt = corrected_type.lower() + 'Avg' - name = 'avg__' + self.column_name - metrics.append(DruidMetric( - metric_name=name, - metric_type='avg', - verbose_name='AVG({})'.format(self.column_name), - json=json.dumps({ - 'type': mt, 'name': name, 'fieldName': self.column_name}) - )) - - if self.min and self.is_num: - mt = corrected_type.lower() + 'Min' - name = 'min__' + self.column_name - metrics.append(DruidMetric( - metric_name=name, - metric_type='min', - verbose_name='MIN({})'.format(self.column_name), - json=json.dumps({ - 'type': mt, 'name': name, 'fieldName': self.column_name}) - )) - if self.max and self.is_num: - mt = corrected_type.lower() + 'Max' - name = 'max__' + self.column_name - metrics.append(DruidMetric( - metric_name=name, - metric_type='max', - verbose_name='MAX({})'.format(self.column_name), - json=json.dumps({ - 'type': mt, 'name': name, 'fieldName': self.column_name}) - )) - if self.count_distinct: - name = 'count_distinct__' + self.column_name - if self.type == 'hyperUnique' or self.type == 'thetaSketch': - metrics.append(DruidMetric( - metric_name=name, - verbose_name='COUNT(DISTINCT {})'.format(self.column_name), - metric_type=self.type, - json=json.dumps({ - 'type': self.type, - 'name': name, - 'fieldName': self.column_name - }) - )) - else: - mt = 'count_distinct' - metrics.append(DruidMetric( - metric_name=name, - verbose_name='COUNT(DISTINCT {})'.format(self.column_name), - metric_type='count_distinct', - json=json.dumps({ - 'type': 'cardinality', - 'name': name, - 'fieldNames': [self.column_name]}) - )) - session = get_session() - new_metrics = [] - for metric in metrics: - m = ( - session.query(M) - .filter(M.metric_name == metric.metric_name) - .filter(M.datasource_name == self.datasource_name) - .filter(DruidCluster.cluster_name == self.datasource.cluster_name) - .first() - ) - metric.datasource_name = self.datasource_name - if not m: - new_metrics.append(metric) - session.add(metric) - session.flush() - - @classmethod - def import_obj(cls, i_column): - def lookup_obj(lookup_column): - return db.session.query(DruidColumn).filter( - DruidColumn.datasource_name == lookup_column.datasource_name, - DruidColumn.column_name == lookup_column.column_name).first() - - return import_util.import_simple_obj(db.session, i_column, lookup_obj) - - -class DruidMetric(Model, AuditMixinNullable, ImportMixin): - - """ORM object referencing Druid metrics for a datasource""" - - __tablename__ = 'metrics' - id = Column(Integer, primary_key=True) - metric_name = Column(String(512)) - verbose_name = Column(String(1024)) - metric_type = Column(String(32)) - datasource_name = Column( - String(255), - ForeignKey('datasources.datasource_name')) - # Setting enable_typechecks=False disables polymorphic inheritance. - datasource = relationship( - 'DruidDatasource', - backref=backref('metrics', cascade='all, delete-orphan'), - enable_typechecks=False) - json = Column(Text) - description = Column(Text) - is_restricted = Column(Boolean, default=False, nullable=True) - d3format = Column(String(128)) - - def refresh_datasources(self, datasource_name=None, merge_flag=False): - """Refresh metadata of all datasources in the cluster - - If ``datasource_name`` is specified, only that datasource is updated - """ - self.druid_version = self.get_druid_version() - for datasource in self.get_datasources(): - if datasource not in config.get('DRUID_DATA_SOURCE_BLACKLIST'): - if not datasource_name or datasource_name == datasource: - DruidDatasource.sync_to_db(datasource, self, merge_flag) - export_fields = ( - 'metric_name', 'verbose_name', 'metric_type', 'datasource_name', - 'json', 'description', 'is_restricted', 'd3format' - ) - - @property - def json_obj(self): - try: - obj = json.loads(self.json) - except Exception: - obj = {} - return obj - - @property - def perm(self): - return ( - "{parent_name}.[{obj.metric_name}](id:{obj.id})" - ).format(obj=self, - parent_name=self.datasource.full_name - ) if self.datasource else None - - @classmethod - def import_obj(cls, i_metric): - def lookup_obj(lookup_metric): - return db.session.query(DruidMetric).filter( - DruidMetric.datasource_name == lookup_metric.datasource_name, - DruidMetric.metric_name == lookup_metric.metric_name).first() - return import_util.import_simple_obj(db.session, i_metric, lookup_obj) - - -class DruidDatasource(Model, AuditMixinNullable, Queryable, ImportMixin): - - """ORM object referencing Druid datasources (tables)""" - - type = "druid" - - baselink = "druiddatasourcemodelview" - - __tablename__ = 'datasources' - id = Column(Integer, primary_key=True) - datasource_name = Column(String(255), unique=True) - is_featured = Column(Boolean, default=False) - is_hidden = Column(Boolean, default=False) - filter_select_enabled = Column(Boolean, default=False) - description = Column(Text) - default_endpoint = Column(Text) - user_id = Column(Integer, ForeignKey('ab_user.id')) - owner = relationship( - 'User', - backref=backref('datasources', cascade='all, delete-orphan'), - foreign_keys=[user_id]) - cluster_name = Column( - String(250), ForeignKey('clusters.cluster_name')) - cluster = relationship( - 'DruidCluster', backref='datasources', foreign_keys=[cluster_name]) - offset = Column(Integer, default=0) - cache_timeout = Column(Integer) - params = Column(String(1000)) - perm = Column(String(1000)) - - metric_cls = DruidMetric - column_cls = DruidColumn - - export_fields = ( - 'datasource_name', 'is_hidden', 'description', 'default_endpoint', - 'cluster_name', 'is_featured', 'offset', 'cache_timeout', 'params' - ) - - @property - def database(self): - return self.cluster - - @property - def metrics_combo(self): - return sorted( - [(m.metric_name, m.verbose_name) for m in self.metrics], - key=lambda x: x[1]) - - @property - def database(self): - return self.cluster - - @property - def num_cols(self): - return [c.column_name for c in self.columns if c.is_num] - - @property - def name(self): - return self.datasource_name - - @property - def schema(self): - name_pieces = self.datasource_name.split('.') - if len(name_pieces) > 1: - return name_pieces[0] - else: - return None - - @property - def schema_perm(self): - """Returns schema permission if present, cluster one otherwise.""" - return utils.get_schema_perm(self.cluster, self.schema) - - def get_perm(self): - return ( - "[{obj.cluster_name}].[{obj.datasource_name}]" - "(id:{obj.id})").format(obj=self) - - @property - def link(self): - name = escape(self.datasource_name) - return Markup('{name}').format(**locals()) - - @property - def full_name(self): - return utils.get_datasource_full_name( - self.cluster_name, self.datasource_name) - - @property - def time_column_grains(self): - return { - "time_columns": [ - 'all', '5 seconds', '30 seconds', '1 minute', - '5 minutes', '1 hour', '6 hour', '1 day', '7 days', - 'week', 'week_starting_sunday', 'week_ending_saturday', - 'month', - ], - "time_grains": ['now'] - } - - def __repr__(self): - return self.datasource_name - - @renders('datasource_name') - def datasource_link(self): - url = "/superset/explore/{obj.type}/{obj.id}/".format(obj=self) - name = escape(self.datasource_name) - return Markup('{name}'.format(**locals())) - - def get_metric_obj(self, metric_name): - return [ - m.json_obj for m in self.metrics - if m.metric_name == metric_name - ][0] - - @classmethod - def import_obj(cls, i_datasource, import_time=None): - """Imports the datasource from the object to the database. - - Metrics and columns and datasource will be overridden if exists. - This function can be used to import/export dashboards between multiple - superset instances. Audit metadata isn't copies over. - """ - def lookup_datasource(d): - return db.session.query(DruidDatasource).join(DruidCluster).filter( - DruidDatasource.datasource_name == d.datasource_name, - DruidCluster.cluster_name == d.cluster_name, - ).first() - - def lookup_cluster(d): - return db.session.query(DruidCluster).filter_by( - cluster_name=d.cluster_name).one() - return import_util.import_datasource( - db.session, i_datasource, lookup_cluster, lookup_datasource, - import_time) - - @staticmethod - def version_higher(v1, v2): - """is v1 higher than v2 - - >>> DruidDatasource.version_higher('0.8.2', '0.9.1') - False - >>> DruidDatasource.version_higher('0.8.2', '0.6.1') - True - >>> DruidDatasource.version_higher('0.8.2', '0.8.2') - False - >>> DruidDatasource.version_higher('0.8.2', '0.9.BETA') - False - >>> DruidDatasource.version_higher('0.8.2', '0.9') - False - """ - def int_or_0(v): - try: - v = int(v) - except (TypeError, ValueError): - v = 0 - return v - v1nums = [int_or_0(n) for n in v1.split('.')] - v2nums = [int_or_0(n) for n in v2.split('.')] - v1nums = (v1nums + [0, 0, 0])[:3] - v2nums = (v2nums + [0, 0, 0])[:3] - return v1nums[0] > v2nums[0] or \ - (v1nums[0] == v2nums[0] and v1nums[1] > v2nums[1]) or \ - (v1nums[0] == v2nums[0] and v1nums[1] == v2nums[1] and v1nums[2] > v2nums[2]) - - def latest_metadata(self): - """Returns segment metadata from the latest segment""" - client = self.cluster.get_pydruid_client() - results = client.time_boundary(datasource=self.datasource_name) - if not results: - return - max_time = results[0]['result']['maxTime'] - max_time = parse(max_time) - # Query segmentMetadata for 7 days back. However, due to a bug, - # we need to set this interval to more than 1 day ago to exclude - # realtime segments, which triggered a bug (fixed in druid 0.8.2). - # https://groups.google.com/forum/#!topic/druid-user/gVCqqspHqOQ - lbound = (max_time - timedelta(days=7)).isoformat() - rbound = max_time.isoformat() - if not self.version_higher(self.cluster.druid_version, '0.8.2'): - rbound = (max_time - timedelta(1)).isoformat() - segment_metadata = None - try: - segment_metadata = client.segment_metadata( - datasource=self.datasource_name, - intervals=lbound + '/' + rbound, - merge=self.merge_flag, - analysisTypes=config.get('DRUID_ANALYSIS_TYPES')) - except Exception as e: - logging.warning("Failed first attempt to get latest segment") - logging.exception(e) - if not segment_metadata: - # if no segments in the past 7 days, look at all segments - lbound = datetime(1901, 1, 1).isoformat()[:10] - rbound = datetime(2050, 1, 1).isoformat()[:10] - if not self.version_higher(self.cluster.druid_version, '0.8.2'): - rbound = datetime.now().isoformat()[:10] - try: - segment_metadata = client.segment_metadata( - datasource=self.datasource_name, - intervals=lbound + '/' + rbound, - merge=self.merge_flag, - analysisTypes=config.get('DRUID_ANALYSIS_TYPES')) - except Exception as e: - logging.warning("Failed 2nd attempt to get latest segment") - logging.exception(e) - if segment_metadata: - return segment_metadata[-1]['columns'] - - def generate_metrics(self): - for col in self.columns: - col.generate_metrics() - - @classmethod - def sync_to_db_from_config(cls, druid_config, user, cluster): - """Merges the ds config from druid_config into one stored in the db.""" - session = db.session() - datasource = ( - session.query(DruidDatasource) - .filter_by( - datasource_name=druid_config['name']) - ).first() - # Create a new datasource. - if not datasource: - datasource = DruidDatasource( - datasource_name=druid_config['name'], - cluster=cluster, - owner=user, - changed_by_fk=user.id, - created_by_fk=user.id, - ) - session.add(datasource) - - dimensions = druid_config['dimensions'] - for dim in dimensions: - col_obj = ( - session.query(DruidColumn) - .filter_by( - datasource_name=druid_config['name'], - column_name=dim) - ).first() - if not col_obj: - col_obj = DruidColumn( - datasource_name=druid_config['name'], - column_name=dim, - groupby=True, - filterable=True, - # TODO: fetch type from Hive. - type="STRING", - datasource=datasource - ) - session.add(col_obj) - # Import Druid metrics - for metric_spec in druid_config["metrics_spec"]: - metric_name = metric_spec["name"] - metric_type = metric_spec["type"] - metric_json = json.dumps(metric_spec) - - if metric_type == "count": - metric_type = "longSum" - metric_json = json.dumps({ - "type": "longSum", - "name": metric_name, - "fieldName": metric_name, - }) - - metric_obj = ( - session.query(DruidMetric) - .filter_by( - datasource_name=druid_config['name'], - metric_name=metric_name) - ).first() - if not metric_obj: - metric_obj = DruidMetric( - metric_name=metric_name, - metric_type=metric_type, - verbose_name="%s(%s)" % (metric_type, metric_name), - datasource=datasource, - json=metric_json, - description=( - "Imported from the airolap config dir for %s" % - druid_config['name']), - ) - session.add(metric_obj) - session.commit() - - @classmethod - def sync_to_db(cls, name, cluster, merge): - """Fetches metadata for that datasource and merges the Superset db""" - logging.info("Syncing Druid datasource [{}]".format(name)) - session = get_session() - datasource = session.query(cls).filter_by(datasource_name=name).first() - if not datasource: - datasource = cls(datasource_name=name) - session.add(datasource) - flasher("Adding new datasource [{}]".format(name), "success") - else: - flasher("Refreshing datasource [{}]".format(name), "info") - session.flush() - datasource.cluster = cluster - datasource.merge_flag = merge - session.flush() - - cols = datasource.latest_metadata() - if not cols: - logging.error("Failed at fetching the latest segment") - return - for col in cols: - col_obj = ( - session - .query(DruidColumn) - .filter_by(datasource_name=name, column_name=col) - .first() - ) - datatype = cols[col]['type'] - if not col_obj: - col_obj = DruidColumn(datasource_name=name, column_name=col) - session.add(col_obj) - if datatype == "STRING": - col_obj.groupby = True - col_obj.filterable = True - if datatype == "hyperUnique" or datatype == "thetaSketch": - col_obj.count_distinct = True - if col_obj: - col_obj.type = cols[col]['type'] - session.flush() - col_obj.datasource = datasource - col_obj.generate_metrics() - session.flush() - - @staticmethod - def time_offset(granularity): - if granularity == 'week_ending_saturday': - return 6 * 24 * 3600 * 1000 # 6 days - return 0 - - # uses https://en.wikipedia.org/wiki/ISO_8601 - # http://druid.io/docs/0.8.0/querying/granularities.html - # TODO: pass origin from the UI - @staticmethod - def granularity(period_name, timezone=None, origin=None): - if not period_name or period_name == 'all': - return 'all' - iso_8601_dict = { - '5 seconds': 'PT5S', - '30 seconds': 'PT30S', - '1 minute': 'PT1M', - '5 minutes': 'PT5M', - '1 hour': 'PT1H', - '6 hour': 'PT6H', - 'one day': 'P1D', - '1 day': 'P1D', - '7 days': 'P7D', - 'week': 'P1W', - 'week_starting_sunday': 'P1W', - 'week_ending_saturday': 'P1W', - 'month': 'P1M', - } - - granularity = {'type': 'period'} - if timezone: - granularity['timeZone'] = timezone - - if origin: - dttm = utils.parse_human_datetime(origin) - granularity['origin'] = dttm.isoformat() - - if period_name in iso_8601_dict: - granularity['period'] = iso_8601_dict[period_name] - if period_name in ('week_ending_saturday', 'week_starting_sunday'): - # use Sunday as start of the week - granularity['origin'] = '2016-01-03T00:00:00' - elif not isinstance(period_name, string_types): - granularity['type'] = 'duration' - granularity['duration'] = period_name - elif period_name.startswith('P'): - # identify if the string is the iso_8601 period - granularity['period'] = period_name - else: - granularity['type'] = 'duration' - granularity['duration'] = utils.parse_human_timedelta( - period_name).total_seconds() * 1000 - return granularity - - def values_for_column(self, - column_name, - from_dttm, - to_dttm, - limit=500): - """Retrieve some values for the given column""" - # TODO: Use Lexicographic TopNMetricSpec once supported by PyDruid - from_dttm = from_dttm.replace(tzinfo=config.get("DRUID_TZ")) - to_dttm = to_dttm.replace(tzinfo=config.get("DRUID_TZ")) - - qry = dict( - datasource=self.datasource_name, - granularity="all", - intervals=from_dttm.isoformat() + '/' + to_dttm.isoformat(), - aggregations=dict(count=count("count")), - dimension=column_name, - metric="count", - threshold=limit, - ) - - client = self.cluster.get_pydruid_client() - client.topn(**qry) - df = client.export_pandas() - - if df is None or df.size == 0: - raise Exception(_("No data was returned.")) - - return df - - def query( # druid - self, groupby, metrics, - granularity, - from_dttm, to_dttm, - filter=None, # noqa - is_timeseries=True, - timeseries_limit=None, - timeseries_limit_metric=None, - row_limit=None, - inner_from_dttm=None, inner_to_dttm=None, - orderby=None, - extras=None, # noqa - select=None, # noqa - columns=None, ): - """Runs a query against Druid and returns a dataframe. - - This query interface is common to SqlAlchemy and Druid - """ - # TODO refactor into using a TBD Query object - qry_start_dttm = datetime.now() - if not is_timeseries: - granularity = 'all' - inner_from_dttm = inner_from_dttm or from_dttm - inner_to_dttm = inner_to_dttm or to_dttm - - # add tzinfo to native datetime with config - from_dttm = from_dttm.replace(tzinfo=config.get("DRUID_TZ")) - to_dttm = to_dttm.replace(tzinfo=config.get("DRUID_TZ")) - timezone = from_dttm.tzname() - - query_str = "" - metrics_dict = {m.metric_name: m for m in self.metrics} - all_metrics = [] - post_aggs = {} - - columns_dict = {c.column_name: c for c in self.columns} - - def recursive_get_fields(_conf): - _fields = _conf.get('fields', []) - field_names = [] - for _f in _fields: - _type = _f.get('type') - if _type in ['fieldAccess', 'hyperUniqueCardinality']: - field_names.append(_f.get('fieldName')) - elif _type == 'arithmetic': - field_names += recursive_get_fields(_f) - return list(set(field_names)) - - for metric_name in metrics: - metric = metrics_dict[metric_name] - if metric.metric_type != 'postagg': - all_metrics.append(metric_name) - else: - conf = metric.json_obj - all_metrics += recursive_get_fields(conf) - all_metrics += conf.get('fieldNames', []) - if conf.get('type') == 'javascript': - post_aggs[metric_name] = JavascriptPostAggregator( - name=conf.get('name'), - field_names=conf.get('fieldNames'), - function=conf.get('function')) - else: - post_aggs[metric_name] = Postaggregator( - conf.get('fn', "/"), - conf.get('fields', []), - conf.get('name', '')) - - aggregations = OrderedDict() - for m in self.metrics: - if m.metric_name in all_metrics: - aggregations[m.metric_name] = m.json_obj - - rejected_metrics = [ - m.metric_name for m in self.metrics - if m.is_restricted and - m.metric_name in aggregations.keys() and - not sm.has_access('metric_access', m.perm) - ] - - if rejected_metrics: - raise MetricPermException( - "Access to the metrics denied: " + ', '.join(rejected_metrics) - ) - - # the dimensions list with dimensionSpecs expanded - dimensions = [] - groupby = [gb for gb in groupby if gb in columns_dict] - for column_name in groupby: - col = columns_dict.get(column_name) - dim_spec = col.dimension_spec - if dim_spec: - dimensions.append(dim_spec) - else: - dimensions.append(column_name) - qry = dict( - datasource=self.datasource_name, - dimensions=dimensions, - aggregations=aggregations, - granularity=DruidDatasource.granularity( - granularity, - timezone=timezone, - origin=extras.get('druid_time_origin'), - ), - post_aggregations=post_aggs, - intervals=from_dttm.isoformat() + '/' + to_dttm.isoformat(), - ) - - filters = self.get_filters(filter) - if filters: - qry['filter'] = filters - - having_filters = self.get_having_filters(extras.get('having_druid')) - if having_filters: - qry['having'] = having_filters - - client = self.cluster.get_pydruid_client() - orig_filters = filters - if len(groupby) == 0: - del qry['dimensions'] - client.timeseries(**qry) - if not having_filters and len(groupby) == 1: - qry['threshold'] = timeseries_limit or 1000 - if row_limit and granularity == 'all': - qry['threshold'] = row_limit - qry['dimension'] = list(qry.get('dimensions'))[0] - del qry['dimensions'] - qry['metric'] = list(qry['aggregations'].keys())[0] - client.topn(**qry) - elif len(groupby) > 1 or having_filters: - # If grouping on multiple fields or using a having filter - # we have to force a groupby query - if timeseries_limit and is_timeseries: - order_by = metrics[0] if metrics else self.metrics[0] - if timeseries_limit_metric: - order_by = timeseries_limit_metric - # Limit on the number of timeseries, doing a two-phases query - pre_qry = deepcopy(qry) - pre_qry['granularity'] = "all" - pre_qry['limit_spec'] = { - "type": "default", - "limit": timeseries_limit, - 'intervals': ( - inner_from_dttm.isoformat() + '/' + - inner_to_dttm.isoformat()), - "columns": [{ - "dimension": order_by, - "direction": "descending", - }], - } - client.groupby(**pre_qry) - query_str += "// Two phase query\n// Phase 1\n" - query_str += json.dumps( - client.query_builder.last_query.query_dict, indent=2) - query_str += "\n" - query_str += ( - "//\nPhase 2 (built based on phase one's results)\n") - df = client.export_pandas() - if df is not None and not df.empty: - dims = qry['dimensions'] - filters = [] - for unused, row in df.iterrows(): - fields = [] - for dim in dims: - f = Dimension(dim) == row[dim] - fields.append(f) - if len(fields) > 1: - filt = Filter(type="and", fields=fields) - filters.append(filt) - elif fields: - filters.append(fields[0]) - - if filters: - ff = Filter(type="or", fields=filters) - if not orig_filters: - qry['filter'] = ff - else: - qry['filter'] = Filter(type="and", fields=[ - ff, - orig_filters]) - qry['limit_spec'] = None - if row_limit: - qry['limit_spec'] = { - "type": "default", - "limit": row_limit, - "columns": [{ - "dimension": ( - metrics[0] if metrics else self.metrics[0]), - "direction": "descending", - }], - } - client.groupby(**qry) - query_str += json.dumps( - client.query_builder.last_query.query_dict, indent=2) - df = client.export_pandas() - if df is None or df.size == 0: - raise Exception(_("No data was returned.")) - df.columns = [ - DTTM_ALIAS if c == 'timestamp' else c for c in df.columns] - - if ( - not is_timeseries and - granularity == "all" and - DTTM_ALIAS in df.columns): - del df[DTTM_ALIAS] - - # Reordering columns - cols = [] - if DTTM_ALIAS in df.columns: - cols += [DTTM_ALIAS] - cols += [col for col in groupby if col in df.columns] - cols += [col for col in metrics if col in df.columns] - df = df[cols] - - time_offset = DruidDatasource.time_offset(granularity) - - def increment_timestamp(ts): - dt = utils.parse_human_datetime(ts).replace( - tzinfo=config.get("DRUID_TZ")) - return dt + timedelta(milliseconds=time_offset) - if DTTM_ALIAS in df.columns and time_offset: - df[DTTM_ALIAS] = df[DTTM_ALIAS].apply(increment_timestamp) - - return QueryResult( - df=df, - query=query_str, - duration=datetime.now() - qry_start_dttm) - - @staticmethod - def get_filters(raw_filters): - filters = None - for col, op, eq in raw_filters: - cond = None - if op == '==': - cond = Dimension(col) == eq - elif op == '!=': - cond = ~(Dimension(col) == eq) - elif op in ('in', 'not in'): - fields = [] - # Distinguish quoted values with regular value types - split = FilterPattern.split(eq)[1::2] - values = [types.replace("'", '') for types in split] - if len(values) > 1: - for s in values: - s = s.strip() - fields.append(Dimension(col) == s) - cond = Filter(type="or", fields=fields) - else: - cond = Dimension(col) == eq - if op == 'not in': - cond = ~cond - elif op == 'regex': - cond = Filter(type="regex", pattern=eq, dimension=col) - if filters: - filters = Filter(type="and", fields=[ - cond, - filters - ]) - else: - filters = cond - return filters - - def _get_having_obj(self, col, op, eq): - cond = None - if op == '==': - if col in self.column_names: - cond = DimSelector(dimension=col, value=eq) - else: - cond = Aggregation(col) == eq - elif op == '>': - cond = Aggregation(col) > eq - elif op == '<': - cond = Aggregation(col) < eq - - return cond - - def get_having_filters(self, raw_filters): - filters = None - reversed_op_map = { - '!=': '==', - '>=': '<', - '<=': '>' - } - - for col, op, eq in raw_filters: - cond = None - if op in ['==', '>', '<']: - cond = self._get_having_obj(col, op, eq) - elif op in reversed_op_map: - cond = ~self._get_having_obj(col, reversed_op_map[op], eq) - - if filters: - filters = filters & cond - else: - filters = cond - return filters - -sqla.event.listen(DruidDatasource, 'after_insert', set_perm) -sqla.event.listen(DruidDatasource, 'after_update', set_perm) - - -class Log(Model): - - """ORM object used to log Superset actions to the database""" - - __tablename__ = 'logs' - - id = Column(Integer, primary_key=True) - action = Column(String(512)) - user_id = Column(Integer, ForeignKey('ab_user.id')) - dashboard_id = Column(Integer) - slice_id = Column(Integer) - json = Column(Text) - user = relationship('User', backref='logs', foreign_keys=[user_id]) - dttm = Column(DateTime, default=datetime.utcnow) - dt = Column(Date, default=date.today()) - duration_ms = Column(Integer) - referrer = Column(String(1024)) - - @classmethod - def log_this(cls, f): - """Decorator to log user actions""" - @functools.wraps(f) - def wrapper(*args, **kwargs): - start_dttm = datetime.now() - user_id = None - if g.user: - user_id = g.user.get_id() - d = request.args.to_dict() - post_data = request.form or {} - d.update(post_data) - d.update(kwargs) - slice_id = d.get('slice_id', 0) - try: - slice_id = int(slice_id) if slice_id else 0 - except ValueError: - slice_id = 0 - params = "" - try: - params = json.dumps(d) - except: - pass - value = f(*args, **kwargs) - - sesh = db.session() - log = cls( - action=f.__name__, - json=params, - dashboard_id=d.get('dashboard_id') or None, - slice_id=slice_id, - duration_ms=( - datetime.now() - start_dttm).total_seconds() * 1000, - referrer=request.referrer[:1000] if request.referrer else None, - user_id=user_id) - sesh.add(log) - sesh.commit() - return value - return wrapper - - -class FavStar(Model): - __tablename__ = 'favstar' - - id = Column(Integer, primary_key=True) - user_id = Column(Integer, ForeignKey('ab_user.id')) - class_name = Column(String(50)) - obj_id = Column(Integer) - dttm = Column(DateTime, default=datetime.utcnow) - - -class Query(Model): - - """ORM model for SQL query""" - - __tablename__ = 'query' - id = Column(Integer, primary_key=True) - client_id = Column(String(11), unique=True, nullable=False) - - database_id = Column(Integer, ForeignKey('dbs.id'), nullable=False) - - # Store the tmp table into the DB only if the user asks for it. - tmp_table_name = Column(String(256)) - user_id = Column( - Integer, ForeignKey('ab_user.id'), nullable=True) - status = Column(String(16), default=QueryStatus.PENDING) - tab_name = Column(String(256)) - sql_editor_id = Column(String(256)) - schema = Column(String(256)) - sql = Column(Text) - # Query to retrieve the results, - # used only in case of select_as_cta_used is true. - select_sql = Column(Text) - executed_sql = Column(Text) - # Could be configured in the superset config. - limit = Column(Integer) - limit_used = Column(Boolean, default=False) - limit_reached = Column(Boolean, default=False) - select_as_cta = Column(Boolean) - select_as_cta_used = Column(Boolean, default=False) - - progress = Column(Integer, default=0) # 1..100 - # # of rows in the result set or rows modified. - rows = Column(Integer) - error_message = Column(Text) - # key used to store the results in the results backend - results_key = Column(String(64), index=True) - - # Using Numeric in place of DateTime for sub-second precision - # stored as seconds since epoch, allowing for milliseconds - start_time = Column(Numeric(precision=3)) - end_time = Column(Numeric(precision=3)) - changed_on = Column( - DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=True) - - database = relationship( - 'Database', - foreign_keys=[database_id], - backref=backref('queries', cascade='all, delete-orphan') - ) - user = relationship( - 'User', - backref=backref('queries', cascade='all, delete-orphan'), - foreign_keys=[user_id]) - - __table_args__ = ( - sqla.Index('ti_user_id_changed_on', user_id, changed_on), - ) - - @property - def limit_reached(self): - return self.rows == self.limit if self.limit_used else False - - def to_dict(self): - return { - 'changedOn': self.changed_on, - 'changed_on': self.changed_on.isoformat(), - 'dbId': self.database_id, - 'db': self.database.database_name, - 'endDttm': self.end_time, - 'errorMessage': self.error_message, - 'executedSql': self.executed_sql, - 'id': self.client_id, - 'limit': self.limit, - 'progress': self.progress, - 'rows': self.rows, - 'schema': self.schema, - 'ctas': self.select_as_cta, - 'serverId': self.id, - 'sql': self.sql, - 'sqlEditorId': self.sql_editor_id, - 'startDttm': self.start_time, - 'state': self.status.lower(), - 'tab': self.tab_name, - 'tempTable': self.tmp_table_name, - 'userId': self.user_id, - 'user': self.user.username, - 'limit_reached': self.limit_reached, - 'resultsKey': self.results_key, - } - - @property - def name(self): - ts = datetime.now().isoformat() - ts = ts.replace('-', '').replace(':', '').split('.')[0] - tab = self.tab_name.replace(' ', '_').lower() if self.tab_name else 'notab' - tab = re.sub(r'\W+', '', tab) - return "sqllab_{tab}_{ts}".format(**locals()) - - -class DatasourceAccessRequest(Model, AuditMixinNullable): - """ORM model for the access requests for datasources and dbs.""" - __tablename__ = 'access_request' - id = Column(Integer, primary_key=True) - - datasource_id = Column(Integer) - datasource_type = Column(String(200)) - - ROLES_BLACKLIST = set(config.get('ROBOT_PERMISSION_ROLES', [])) - - @property - def cls_model(self): - return SourceRegistry.sources[self.datasource_type] - - @property - def username(self): - return self.creator() - - @property - def datasource(self): - return self.get_datasource - - @datasource.getter - @utils.memoized - def get_datasource(self): - ds = db.session.query(self.cls_model).filter_by( - id=self.datasource_id).first() - return ds - - @property - def datasource_link(self): - return self.datasource.link - - @property - def roles_with_datasource(self): - action_list = '' - pv = sm.find_permission_view_menu( - 'datasource_access', self.datasource.perm) - for r in pv.role: - if r.name in self.ROLES_BLACKLIST: - continue - url = ( - '/superset/approve?datasource_type={self.datasource_type}&' - 'datasource_id={self.datasource_id}&' - 'created_by={self.created_by.username}&role_to_grant={r.name}' - .format(**locals()) - ) - href = 'Grant {} Role'.format(url, r.name) - action_list = action_list + '
  • ' + href + '
  • ' - return '
      ' + action_list + '
    ' - - @property - def user_roles(self): - action_list = '' - for r in self.created_by.roles: - url = ( - '/superset/approve?datasource_type={self.datasource_type}&' - 'datasource_id={self.datasource_id}&' - 'created_by={self.created_by.username}&role_to_extend={r.name}' - .format(**locals()) - ) - href = 'Extend {} Role'.format(url, r.name) - if r.name in self.ROLES_BLACKLIST: - href = "{} Role".format(r.name) - action_list = action_list + '
  • ' + href + '
  • ' - return '
      ' + action_list + '
    ' diff --git a/superset/models/__init__.py b/superset/models/__init__.py new file mode 100644 index 0000000000000..bed8c30ede7c1 --- /dev/null +++ b/superset/models/__init__.py @@ -0,0 +1,2 @@ +from . import core # noqa +from . import sql_lab # noqa diff --git a/superset/models/core.py b/superset/models/core.py new file mode 100644 index 0000000000000..49f95d7669b5a --- /dev/null +++ b/superset/models/core.py @@ -0,0 +1,850 @@ +"""A collection of ORM sqlalchemy models for Superset""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import functools +import json +import logging +import numpy +import pickle +import textwrap +from future.standard_library import install_aliases +from copy import copy +from datetime import datetime, date + +import pandas as pd +import sqlalchemy as sqla +from sqlalchemy.engine.url import make_url +from sqlalchemy.orm import subqueryload + +from flask import escape, g, Markup, request +from flask_appbuilder import Model +from flask_appbuilder.models.decorators import renders + +from sqlalchemy import ( + Column, Integer, String, ForeignKey, Text, Boolean, + DateTime, Date, Table, + create_engine, MetaData, select +) +from sqlalchemy.orm import relationship +from sqlalchemy.orm.session import make_transient +from sqlalchemy.sql import text +from sqlalchemy.sql.expression import TextAsFrom +from sqlalchemy_utils import EncryptedType + +from superset import app, db, db_engine_specs, utils, sm +from superset.connectors.connector_registry import ConnectorRegistry +from superset.viz import viz_types +from superset.models.helpers import AuditMixinNullable, ImportMixin, set_perm +install_aliases() +from urllib import parse # noqa + +config = app.config +stats_logger = config.get('STATS_LOGGER') +metadata = Model.metadata # pylint: disable=no-member + + +def set_related_perm(mapper, connection, target): # noqa + src_class = target.cls_model + id_ = target.datasource_id + if id_: + ds = db.session.query(src_class).filter_by(id=int(id_)).first() + if ds: + target.perm = ds.perm + + +class Url(Model, AuditMixinNullable): + """Used for the short url feature""" + + __tablename__ = 'url' + id = Column(Integer, primary_key=True) + url = Column(Text) + + +class KeyValue(Model): + + """Used for any type of key-value store""" + + __tablename__ = 'keyvalue' + id = Column(Integer, primary_key=True) + value = Column(Text, nullable=False) + + +class CssTemplate(Model, AuditMixinNullable): + + """CSS templates for dashboards""" + + __tablename__ = 'css_templates' + id = Column(Integer, primary_key=True) + template_name = Column(String(250)) + css = Column(Text, default='') + + +slice_user = Table('slice_user', metadata, + Column('id', Integer, primary_key=True), + Column('user_id', Integer, ForeignKey('ab_user.id')), + Column('slice_id', Integer, ForeignKey('slices.id')) + ) + + +class Slice(Model, AuditMixinNullable, ImportMixin): + + """A slice is essentially a report or a view on data""" + + __tablename__ = 'slices' + id = Column(Integer, primary_key=True) + slice_name = Column(String(250)) + datasource_id = Column(Integer) + datasource_type = Column(String(200)) + datasource_name = Column(String(2000)) + viz_type = Column(String(250)) + params = Column(Text) + description = Column(Text) + cache_timeout = Column(Integer) + perm = Column(String(1000)) + owners = relationship(sm.user_model, secondary=slice_user) + + export_fields = ('slice_name', 'datasource_type', 'datasource_name', + 'viz_type', 'params', 'cache_timeout') + + def __repr__(self): + return self.slice_name + + @property + def cls_model(self): + return ConnectorRegistry.sources[self.datasource_type] + + @property + def datasource(self): + return self.get_datasource + + @datasource.getter + @utils.memoized + def get_datasource(self): + return ( + db.session.query(self.cls_model) + .filter_by(id=self.datasource_id) + .first() + ) + + @renders('datasource_name') + def datasource_link(self): + # pylint: disable=no-member + datasource = self.datasource + return datasource.link if datasource else None + + @property + def datasource_edit_url(self): + # pylint: disable=no-member + datasource = self.datasource + return datasource.url if datasource else None + + @property + @utils.memoized + def viz(self): + d = json.loads(self.params) + viz_class = viz_types[self.viz_type] + # pylint: disable=no-member + return viz_class(self.datasource, form_data=d) + + @property + def description_markeddown(self): + return utils.markdown(self.description) + + @property + def data(self): + """Data used to render slice in templates""" + d = {} + self.token = '' + try: + d = self.viz.data + self.token = d.get('token') + except Exception as e: + logging.exception(e) + d['error'] = str(e) + return { + 'datasource': self.datasource_name, + 'description': self.description, + 'description_markeddown': self.description_markeddown, + 'edit_url': self.edit_url, + 'form_data': self.form_data, + 'slice_id': self.id, + 'slice_name': self.slice_name, + 'slice_url': self.slice_url, + } + + @property + def json_data(self): + return json.dumps(self.data) + + @property + def form_data(self): + form_data = json.loads(self.params) + form_data.update({ + 'slice_id': self.id, + 'viz_type': self.viz_type, + 'datasource': str(self.datasource_id) + '__' + self.datasource_type + }) + if self.cache_timeout: + form_data['cache_timeout'] = self.cache_timeout + return form_data + + @property + def slice_url(self): + """Defines the url to access the slice""" + return ( + "/superset/explore/{obj.datasource_type}/" + "{obj.datasource_id}/?form_data={params}".format( + obj=self, params=parse.quote(json.dumps(self.form_data)))) + + @property + def slice_id_url(self): + return ( + "/superset/{slc.datasource_type}/{slc.datasource_id}/{slc.id}/" + ).format(slc=self) + + @property + def edit_url(self): + return "/slicemodelview/edit/{}".format(self.id) + + @property + def slice_link(self): + url = self.slice_url + name = escape(self.slice_name) + return Markup('{name}'.format(**locals())) + + def get_viz(self, url_params_multidict=None): + """Creates :py:class:viz.BaseViz object from the url_params_multidict. + + :param werkzeug.datastructures.MultiDict url_params_multidict: + Contains the visualization params, they override the self.params + stored in the database + :return: object of the 'viz_type' type that is taken from the + url_params_multidict or self.params. + :rtype: :py:class:viz.BaseViz + """ + slice_params = json.loads(self.params) + slice_params['slice_id'] = self.id + slice_params['json'] = "false" + slice_params['slice_name'] = self.slice_name + slice_params['viz_type'] = self.viz_type if self.viz_type else "table" + + return viz_types[slice_params.get('viz_type')]( + self.datasource, + form_data=slice_params, + ) + + @classmethod + def import_obj(cls, slc_to_import, import_time=None): + """Inserts or overrides slc in the database. + + remote_id and import_time fields in params_dict are set to track the + slice origin and ensure correct overrides for multiple imports. + Slice.perm is used to find the datasources and connect them. + """ + session = db.session + make_transient(slc_to_import) + slc_to_import.dashboards = [] + slc_to_import.alter_params( + remote_id=slc_to_import.id, import_time=import_time) + + # find if the slice was already imported + slc_to_override = None + for slc in session.query(Slice).all(): + if ('remote_id' in slc.params_dict and + slc.params_dict['remote_id'] == slc_to_import.id): + slc_to_override = slc + + slc_to_import = slc_to_import.copy() + params = slc_to_import.params_dict + slc_to_import.datasource_id = ConnectorRegistry.get_datasource_by_name( + session, slc_to_import.datasource_type, params['datasource_name'], + params['schema'], params['database_name']).id + if slc_to_override: + slc_to_override.override(slc_to_import) + session.flush() + return slc_to_override.id + session.add(slc_to_import) + logging.info('Final slice: {}'.format(slc_to_import.to_json())) + session.flush() + return slc_to_import.id + + +sqla.event.listen(Slice, 'before_insert', set_related_perm) +sqla.event.listen(Slice, 'before_update', set_related_perm) + + +dashboard_slices = Table( + 'dashboard_slices', metadata, + Column('id', Integer, primary_key=True), + Column('dashboard_id', Integer, ForeignKey('dashboards.id')), + Column('slice_id', Integer, ForeignKey('slices.id')), +) + +dashboard_user = Table( + 'dashboard_user', metadata, + Column('id', Integer, primary_key=True), + Column('user_id', Integer, ForeignKey('ab_user.id')), + Column('dashboard_id', Integer, ForeignKey('dashboards.id')) +) + + +class Dashboard(Model, AuditMixinNullable, ImportMixin): + + """The dashboard object!""" + + __tablename__ = 'dashboards' + id = Column(Integer, primary_key=True) + dashboard_title = Column(String(500)) + position_json = Column(Text) + description = Column(Text) + css = Column(Text) + json_metadata = Column(Text) + slug = Column(String(255), unique=True) + slices = relationship( + 'Slice', secondary=dashboard_slices, backref='dashboards') + owners = relationship(sm.user_model, secondary=dashboard_user) + + export_fields = ('dashboard_title', 'position_json', 'json_metadata', + 'description', 'css', 'slug') + + def __repr__(self): + return self.dashboard_title + + @property + def table_names(self): + # pylint: disable=no-member + return ", ".join( + {"{}".format(s.datasource.full_name) for s in self.slices}) + + @property + def url(self): + return "/superset/dashboard/{}/".format(self.slug or self.id) + + @property + def datasources(self): + return {slc.datasource for slc in self.slices} + + @property + def sqla_metadata(self): + # pylint: disable=no-member + metadata = MetaData(bind=self.get_sqla_engine()) + return metadata.reflect() + + def dashboard_link(self): + title = escape(self.dashboard_title) + return Markup( + '{title}'.format(**locals())) + + @property + def data(self): + positions = self.position_json + if positions: + positions = json.loads(positions) + return { + 'id': self.id, + 'metadata': self.params_dict, + 'css': self.css, + 'dashboard_title': self.dashboard_title, + 'slug': self.slug, + 'slices': [slc.data for slc in self.slices], + 'position_json': positions, + } + + @property + def params(self): + return self.json_metadata + + @params.setter + def params(self, value): + self.json_metadata = value + + @property + def position_array(self): + if self.position_json: + return json.loads(self.position_json) + return [] + + @classmethod + def import_obj(cls, dashboard_to_import, import_time=None): + """Imports the dashboard from the object to the database. + + Once dashboard is imported, json_metadata field is extended and stores + remote_id and import_time. It helps to decide if the dashboard has to + be overridden or just copies over. Slices that belong to this + dashboard will be wired to existing tables. This function can be used + to import/export dashboards between multiple superset instances. + Audit metadata isn't copies over. + """ + def alter_positions(dashboard, old_to_new_slc_id_dict): + """ Updates slice_ids in the position json. + + Sample position json: + [{ + "col": 5, + "row": 10, + "size_x": 4, + "size_y": 2, + "slice_id": "3610" + }] + """ + position_array = dashboard.position_array + for position in position_array: + if 'slice_id' not in position: + continue + old_slice_id = int(position['slice_id']) + if old_slice_id in old_to_new_slc_id_dict: + position['slice_id'] = '{}'.format( + old_to_new_slc_id_dict[old_slice_id]) + dashboard.position_json = json.dumps(position_array) + + logging.info('Started import of the dashboard: {}' + .format(dashboard_to_import.to_json())) + session = db.session + logging.info('Dashboard has {} slices' + .format(len(dashboard_to_import.slices))) + # copy slices object as Slice.import_slice will mutate the slice + # and will remove the existing dashboard - slice association + slices = copy(dashboard_to_import.slices) + old_to_new_slc_id_dict = {} + new_filter_immune_slices = [] + new_expanded_slices = {} + i_params_dict = dashboard_to_import.params_dict + for slc in slices: + logging.info('Importing slice {} from the dashboard: {}'.format( + slc.to_json(), dashboard_to_import.dashboard_title)) + new_slc_id = Slice.import_obj(slc, import_time=import_time) + old_to_new_slc_id_dict[slc.id] = new_slc_id + # update json metadata that deals with slice ids + new_slc_id_str = '{}'.format(new_slc_id) + old_slc_id_str = '{}'.format(slc.id) + if ('filter_immune_slices' in i_params_dict and + old_slc_id_str in i_params_dict['filter_immune_slices']): + new_filter_immune_slices.append(new_slc_id_str) + if ('expanded_slices' in i_params_dict and + old_slc_id_str in i_params_dict['expanded_slices']): + new_expanded_slices[new_slc_id_str] = ( + i_params_dict['expanded_slices'][old_slc_id_str]) + + # override the dashboard + existing_dashboard = None + for dash in session.query(Dashboard).all(): + if ('remote_id' in dash.params_dict and + dash.params_dict['remote_id'] == + dashboard_to_import.id): + existing_dashboard = dash + + dashboard_to_import.id = None + alter_positions(dashboard_to_import, old_to_new_slc_id_dict) + dashboard_to_import.alter_params(import_time=import_time) + if new_expanded_slices: + dashboard_to_import.alter_params( + expanded_slices=new_expanded_slices) + if new_filter_immune_slices: + dashboard_to_import.alter_params( + filter_immune_slices=new_filter_immune_slices) + + new_slices = session.query(Slice).filter( + Slice.id.in_(old_to_new_slc_id_dict.values())).all() + + if existing_dashboard: + existing_dashboard.override(dashboard_to_import) + existing_dashboard.slices = new_slices + session.flush() + return existing_dashboard.id + else: + # session.add(dashboard_to_import) causes sqlachemy failures + # related to the attached users / slices. Creating new object + # allows to avoid conflicts in the sql alchemy state. + copied_dash = dashboard_to_import.copy() + copied_dash.slices = new_slices + session.add(copied_dash) + session.flush() + return copied_dash.id + + @classmethod + def export_dashboards(cls, dashboard_ids): + copied_dashboards = [] + datasource_ids = set() + for dashboard_id in dashboard_ids: + # make sure that dashboard_id is an integer + dashboard_id = int(dashboard_id) + copied_dashboard = ( + db.session.query(Dashboard) + .options(subqueryload(Dashboard.slices)) + .filter_by(id=dashboard_id).first() + ) + make_transient(copied_dashboard) + for slc in copied_dashboard.slices: + datasource_ids.add((slc.datasource_id, slc.datasource_type)) + # add extra params for the import + slc.alter_params( + remote_id=slc.id, + datasource_name=slc.datasource.name, + schema=slc.datasource.name, + database_name=slc.datasource.database.name, + ) + copied_dashboard.alter_params(remote_id=dashboard_id) + copied_dashboards.append(copied_dashboard) + + eager_datasources = [] + for dashboard_id, dashboard_type in datasource_ids: + eager_datasource = ConnectorRegistry.get_eager_datasource( + db.session, dashboard_type, dashboard_id) + eager_datasource.alter_params( + remote_id=eager_datasource.id, + database_name=eager_datasource.database.name, + ) + make_transient(eager_datasource) + eager_datasources.append(eager_datasource) + + return pickle.dumps({ + 'dashboards': copied_dashboards, + 'datasources': eager_datasources, + }) + + +class Database(Model, AuditMixinNullable): + + """An ORM object that stores Database related information""" + + __tablename__ = 'dbs' + type = "table" + + id = Column(Integer, primary_key=True) + verbose_name = Column(String(250), unique=True) + # short unique name, used in permissions + database_name = Column(String(250), unique=True) + sqlalchemy_uri = Column(String(1024)) + password = Column(EncryptedType(String(1024), config.get('SECRET_KEY'))) + cache_timeout = Column(Integer) + select_as_create_table_as = Column(Boolean, default=False) + expose_in_sqllab = Column(Boolean, default=False) + allow_run_sync = Column(Boolean, default=True) + allow_run_async = Column(Boolean, default=False) + allow_ctas = Column(Boolean, default=False) + allow_dml = Column(Boolean, default=False) + force_ctas_schema = Column(String(250)) + extra = Column(Text, default=textwrap.dedent("""\ + { + "metadata_params": {}, + "engine_params": {} + } + """)) + perm = Column(String(1000)) + + def __repr__(self): + return self.verbose_name if self.verbose_name else self.database_name + + @property + def name(self): + return self.verbose_name if self.verbose_name else self.database_name + + @property + def unique_name(self): + return self.database_name + + @property + def backend(self): + url = make_url(self.sqlalchemy_uri_decrypted) + return url.get_backend_name() + + def set_sqlalchemy_uri(self, uri): + password_mask = "X" * 10 + conn = sqla.engine.url.make_url(uri) + if conn.password != password_mask: + # do not over-write the password with the password mask + self.password = conn.password + conn.password = password_mask if conn.password else None + self.sqlalchemy_uri = str(conn) # hides the password + + def get_sqla_engine(self, schema=None): + extra = self.get_extra() + uri = make_url(self.sqlalchemy_uri_decrypted) + params = extra.get('engine_params', {}) + uri = self.db_engine_spec.adjust_database_uri(uri, schema) + return create_engine(uri, **params) + + def get_reserved_words(self): + return self.get_sqla_engine().dialect.preparer.reserved_words + + def get_quoter(self): + return self.get_sqla_engine().dialect.identifier_preparer.quote + + def get_df(self, sql, schema): + sql = sql.strip().strip(';') + eng = self.get_sqla_engine(schema=schema) + df = pd.read_sql(sql, eng) + + def needs_conversion(df_series): + if df_series.empty: + return False + if isinstance(df_series[0], (list, dict)): + return True + return False + + for k, v in df.dtypes.iteritems(): + if v.type == numpy.object_ and needs_conversion(df[k]): + df[k] = df[k].apply(utils.json_dumps_w_dates) + return df + + def compile_sqla_query(self, qry, schema=None): + eng = self.get_sqla_engine(schema=schema) + compiled = qry.compile(eng, compile_kwargs={"literal_binds": True}) + return '{}'.format(compiled) + + def select_star( + self, table_name, schema=None, limit=100, show_cols=False, + indent=True, latest_partition=True): + """Generates a ``select *`` statement in the proper dialect""" + return self.db_engine_spec.select_star( + self, table_name, schema=schema, limit=limit, show_cols=show_cols, + indent=indent, latest_partition=latest_partition) + + def wrap_sql_limit(self, sql, limit=1000): + qry = ( + select('*') + .select_from( + TextAsFrom(text(sql), ['*']) + .alias('inner_qry') + ).limit(limit) + ) + return self.compile_sqla_query(qry) + + def safe_sqlalchemy_uri(self): + return self.sqlalchemy_uri + + @property + def inspector(self): + engine = self.get_sqla_engine() + return sqla.inspect(engine) + + def all_table_names(self, schema=None, force=False): + if not schema: + tables_dict = self.db_engine_spec.fetch_result_sets( + self, 'table', force=force) + return tables_dict.get("", []) + return sorted( + self.db_engine_spec.get_table_names(schema, self.inspector)) + + def all_view_names(self, schema=None, force=False): + if not schema: + views_dict = self.db_engine_spec.fetch_result_sets( + self, 'view', force=force) + return views_dict.get("", []) + views = [] + try: + views = self.inspector.get_view_names(schema) + except Exception: + pass + return views + + def all_schema_names(self): + return sorted(self.inspector.get_schema_names()) + + @property + def db_engine_spec(self): + return db_engine_specs.engines.get( + self.backend, db_engine_specs.BaseEngineSpec) + + def grains(self): + """Defines time granularity database-specific expressions. + + The idea here is to make it easy for users to change the time grain + form a datetime (maybe the source grain is arbitrary timestamps, daily + or 5 minutes increments) to another, "truncated" datetime. Since + each database has slightly different but similar datetime functions, + this allows a mapping between database engines and actual functions. + """ + return self.db_engine_spec.time_grains + + def grains_dict(self): + return {grain.name: grain for grain in self.grains()} + + def get_extra(self): + extra = {} + if self.extra: + try: + extra = json.loads(self.extra) + except Exception as e: + logging.error(e) + return extra + + def get_table(self, table_name, schema=None): + extra = self.get_extra() + meta = MetaData(**extra.get('metadata_params', {})) + return Table( + table_name, meta, + schema=schema or None, + autoload=True, + autoload_with=self.get_sqla_engine()) + + def get_columns(self, table_name, schema=None): + return self.inspector.get_columns(table_name, schema) + + def get_indexes(self, table_name, schema=None): + return self.inspector.get_indexes(table_name, schema) + + def get_pk_constraint(self, table_name, schema=None): + return self.inspector.get_pk_constraint(table_name, schema) + + def get_foreign_keys(self, table_name, schema=None): + return self.inspector.get_foreign_keys(table_name, schema) + + @property + def sqlalchemy_uri_decrypted(self): + conn = sqla.engine.url.make_url(self.sqlalchemy_uri) + conn.password = self.password + return str(conn) + + @property + def sql_url(self): + return '/superset/sql/{}/'.format(self.id) + + def get_perm(self): + return ( + "[{obj.database_name}].(id:{obj.id})").format(obj=self) + +sqla.event.listen(Database, 'after_insert', set_perm) +sqla.event.listen(Database, 'after_update', set_perm) + + +class Log(Model): + + """ORM object used to log Superset actions to the database""" + + __tablename__ = 'logs' + + id = Column(Integer, primary_key=True) + action = Column(String(512)) + user_id = Column(Integer, ForeignKey('ab_user.id')) + dashboard_id = Column(Integer) + slice_id = Column(Integer) + json = Column(Text) + user = relationship(sm.user_model, backref='logs', foreign_keys=[user_id]) + dttm = Column(DateTime, default=datetime.utcnow) + dt = Column(Date, default=date.today()) + duration_ms = Column(Integer) + referrer = Column(String(1024)) + + @classmethod + def log_this(cls, f): + """Decorator to log user actions""" + @functools.wraps(f) + def wrapper(*args, **kwargs): + start_dttm = datetime.now() + user_id = None + if g.user: + user_id = g.user.get_id() + d = request.args.to_dict() + post_data = request.form or {} + d.update(post_data) + d.update(kwargs) + slice_id = d.get('slice_id', 0) + try: + slice_id = int(slice_id) if slice_id else 0 + except ValueError: + slice_id = 0 + params = "" + try: + params = json.dumps(d) + except: + pass + stats_logger.incr(f.__name__) + value = f(*args, **kwargs) + + sesh = db.session() + log = cls( + action=f.__name__, + json=params, + dashboard_id=d.get('dashboard_id') or None, + slice_id=slice_id, + duration_ms=( + datetime.now() - start_dttm).total_seconds() * 1000, + referrer=request.referrer[:1000] if request.referrer else None, + user_id=user_id) + sesh.add(log) + sesh.commit() + return value + return wrapper + + +class FavStar(Model): + __tablename__ = 'favstar' + + id = Column(Integer, primary_key=True) + user_id = Column(Integer, ForeignKey('ab_user.id')) + class_name = Column(String(50)) + obj_id = Column(Integer) + dttm = Column(DateTime, default=datetime.utcnow) + + +class DatasourceAccessRequest(Model, AuditMixinNullable): + """ORM model for the access requests for datasources and dbs.""" + __tablename__ = 'access_request' + id = Column(Integer, primary_key=True) + + datasource_id = Column(Integer) + datasource_type = Column(String(200)) + + ROLES_BLACKLIST = set(config.get('ROBOT_PERMISSION_ROLES', [])) + + @property + def cls_model(self): + return ConnectorRegistry.sources[self.datasource_type] + + @property + def username(self): + return self.creator() + + @property + def datasource(self): + return self.get_datasource + + @datasource.getter + @utils.memoized + def get_datasource(self): + # pylint: disable=no-member + ds = db.session.query(self.cls_model).filter_by( + id=self.datasource_id).first() + return ds + + @property + def datasource_link(self): + return self.datasource.link # pylint: disable=no-member + + @property + def roles_with_datasource(self): + action_list = '' + perm = self.datasource.perm # pylint: disable=no-member + pv = sm.find_permission_view_menu('datasource_access', perm) + for r in pv.role: + if r.name in self.ROLES_BLACKLIST: + continue + url = ( + '/superset/approve?datasource_type={self.datasource_type}&' + 'datasource_id={self.datasource_id}&' + 'created_by={self.created_by.username}&role_to_grant={r.name}' + .format(**locals()) + ) + href = 'Grant {} Role'.format(url, r.name) + action_list = action_list + '
  • ' + href + '
  • ' + return '
      ' + action_list + '
    ' + + @property + def user_roles(self): + action_list = '' + for r in self.created_by.roles: # pylint: disable=no-member + url = ( + '/superset/approve?datasource_type={self.datasource_type}&' + 'datasource_id={self.datasource_id}&' + 'created_by={self.created_by.username}&role_to_extend={r.name}' + .format(**locals()) + ) + href = 'Extend {} Role'.format(url, r.name) + if r.name in self.ROLES_BLACKLIST: + href = "{} Role".format(r.name) + action_list = action_list + '
  • ' + href + '
  • ' + return '
      ' + action_list + '
    ' diff --git a/superset/models/helpers.py b/superset/models/helpers.py new file mode 100644 index 0000000000000..9af7c68ef9e53 --- /dev/null +++ b/superset/models/helpers.py @@ -0,0 +1,168 @@ +from datetime import datetime +import humanize +import json +import re +import sqlalchemy as sa + +from sqlalchemy.ext.declarative import declared_attr + +from flask import escape, Markup +from flask_appbuilder.models.mixins import AuditMixin +from flask_appbuilder.models.decorators import renders +from superset.utils import QueryStatus +from superset import sm + + +class ImportMixin(object): + def override(self, obj): + """Overrides the plain fields of the dashboard.""" + for field in obj.__class__.export_fields: + setattr(self, field, getattr(obj, field)) + + def copy(self): + """Creates a copy of the dashboard without relationships.""" + new_obj = self.__class__() + new_obj.override(self) + return new_obj + + def alter_params(self, **kwargs): + d = self.params_dict + d.update(kwargs) + self.params = json.dumps(d) + + @property + def params_dict(self): + if self.params: + params = re.sub(",[ \t\r\n]+}", "}", self.params) + params = re.sub(",[ \t\r\n]+\]", "]", params) + return json.loads(params) + else: + return {} + + +class AuditMixinNullable(AuditMixin): + + """Altering the AuditMixin to use nullable fields + + Allows creating objects programmatically outside of CRUD + """ + + created_on = sa.Column(sa.DateTime, default=datetime.now, nullable=True) + changed_on = sa.Column( + sa.DateTime, default=datetime.now, + onupdate=datetime.now, nullable=True) + + @declared_attr + def created_by_fk(self): # noqa + return sa.Column( + sa.Integer, sa.ForeignKey('ab_user.id'), + default=self.get_user_id, nullable=True) + + @declared_attr + def changed_by_fk(self): # noqa + return sa.Column( + sa.Integer, sa.ForeignKey('ab_user.id'), + default=self.get_user_id, onupdate=self.get_user_id, nullable=True) + + def _user_link(self, user): + if not user: + return '' + url = '/superset/profile/{}/'.format(user.username) + return Markup('{}'.format(url, escape(user) or '')) + + @renders('created_by') + def creator(self): # noqa + return self._user_link(self.created_by) + + @property + def changed_by_(self): + return self._user_link(self.changed_by) + + @renders('changed_on') + def changed_on_(self): + return Markup( + '{}'.format(self.changed_on)) + + @renders('changed_on') + def modified(self): + s = humanize.naturaltime(datetime.now() - self.changed_on) + return Markup('{}'.format(s)) + + @property + def icons(self): + return """ + + + + """.format(**locals()) + + +class QueryResult(object): + + """Object returned by the query interface""" + + def __init__( # noqa + self, + df, + query, + duration, + status=QueryStatus.SUCCESS, + error_message=None): + self.df = df + self.query = query + self.duration = duration + self.status = status + self.error_message = error_message + + +def merge_perm(sm, permission_name, view_menu_name, connection): + + permission = sm.find_permission(permission_name) + view_menu = sm.find_view_menu(view_menu_name) + pv = None + + if not permission: + permission_table = sm.permission_model.__table__ + connection.execute( + permission_table.insert() + .values(name=permission_name) + ) + if not view_menu: + view_menu_table = sm.viewmenu_model.__table__ + connection.execute( + view_menu_table.insert() + .values(name=view_menu_name) + ) + + permission = sm.find_permission(permission_name) + view_menu = sm.find_view_menu(view_menu_name) + + if permission and view_menu: + pv = sm.get_session.query(sm.permissionview_model).filter_by( + permission=permission, view_menu=view_menu).first() + if not pv and permission and view_menu: + permission_view_table = sm.permissionview_model.__table__ + connection.execute( + permission_view_table.insert() + .values( + permission_id=permission.id, + view_menu_id=view_menu.id + ) + ) + + +def set_perm(mapper, connection, target): # noqa + + if target.perm != target.get_perm(): + link_table = target.__table__ + connection.execute( + link_table.update() + .where(link_table.c.id == target.id) + .values(perm=target.get_perm()) + ) + + # add to view menu if not already exists + merge_perm(sm, 'datasource_access', target.get_perm(), connection) diff --git a/superset/models/sql_lab.py b/superset/models/sql_lab.py new file mode 100644 index 0000000000000..00eb388150041 --- /dev/null +++ b/superset/models/sql_lab.py @@ -0,0 +1,168 @@ +"""A collection of ORM sqlalchemy models for SQL Lab""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import re +from datetime import datetime + +from future.standard_library import install_aliases + +from flask import Markup + +from flask_appbuilder import Model + +import sqlalchemy as sqla +from sqlalchemy import ( + Column, Integer, String, ForeignKey, Text, Boolean, + DateTime, Numeric, +) +from sqlalchemy.orm import backref, relationship + +from superset import sm +from superset.utils import QueryStatus +from superset.models.helpers import AuditMixinNullable + +install_aliases() + + +class Query(Model): + + """ORM model for SQL query""" + + __tablename__ = 'query' + id = Column(Integer, primary_key=True) + client_id = Column(String(11), unique=True, nullable=False) + + database_id = Column(Integer, ForeignKey('dbs.id'), nullable=False) + + # Store the tmp table into the DB only if the user asks for it. + tmp_table_name = Column(String(256)) + user_id = Column( + Integer, ForeignKey('ab_user.id'), nullable=True) + status = Column(String(16), default=QueryStatus.PENDING) + tab_name = Column(String(256)) + sql_editor_id = Column(String(256)) + schema = Column(String(256)) + sql = Column(Text) + # Query to retrieve the results, + # used only in case of select_as_cta_used is true. + select_sql = Column(Text) + executed_sql = Column(Text) + # Could be configured in the superset config. + limit = Column(Integer) + limit_used = Column(Boolean, default=False) + select_as_cta = Column(Boolean) + select_as_cta_used = Column(Boolean, default=False) + + progress = Column(Integer, default=0) # 1..100 + # # of rows in the result set or rows modified. + rows = Column(Integer) + error_message = Column(Text) + # key used to store the results in the results backend + results_key = Column(String(64), index=True) + + # Using Numeric in place of DateTime for sub-second precision + # stored as seconds since epoch, allowing for milliseconds + start_time = Column(Numeric(precision=20, scale=6)) + start_running_time = Column(Numeric(precision=20, scale=6)) + end_time = Column(Numeric(precision=20, scale=6)) + end_result_backend_time = Column(Numeric(precision=20, scale=6)) + + changed_on = Column( + DateTime, + default=datetime.utcnow, + onupdate=datetime.utcnow, + nullable=True) + + database = relationship( + 'Database', + foreign_keys=[database_id], + backref=backref('queries', cascade='all, delete-orphan') + ) + user = relationship( + sm.user_model, + foreign_keys=[user_id]) + + __table_args__ = ( + sqla.Index('ti_user_id_changed_on', user_id, changed_on), + ) + + @property + def limit_reached(self): + return self.rows == self.limit if self.limit_used else False + + def to_dict(self): + return { + 'changedOn': self.changed_on, + 'changed_on': self.changed_on.isoformat(), + 'dbId': self.database_id, + 'db': self.database.database_name, + 'endDttm': self.end_time, + 'errorMessage': self.error_message, + 'executedSql': self.executed_sql, + 'id': self.client_id, + 'limit': self.limit, + 'progress': self.progress, + 'rows': self.rows, + 'schema': self.schema, + 'ctas': self.select_as_cta, + 'serverId': self.id, + 'sql': self.sql, + 'sqlEditorId': self.sql_editor_id, + 'startDttm': self.start_time, + 'state': self.status.lower(), + 'tab': self.tab_name, + 'tempTable': self.tmp_table_name, + 'userId': self.user_id, + 'user': self.user.username, + 'limit_reached': self.limit_reached, + 'resultsKey': self.results_key, + } + + @property + def name(self): + """Name property""" + ts = datetime.now().isoformat() + ts = ts.replace('-', '').replace(':', '').split('.')[0] + tab = ( + self.tab_name.replace(' ', '_').lower() + if self.tab_name + else 'notab' + ) + tab = re.sub(r'\W+', '', tab) + return "sqllab_{tab}_{ts}".format(**locals()) + + +class SavedQuery(Model, AuditMixinNullable): + + """ORM model for SQL query""" + + __tablename__ = 'saved_query' + id = Column(Integer, primary_key=True) + user_id = Column( + Integer, ForeignKey('ab_user.id'), nullable=True) + db_id = Column( + Integer, ForeignKey('dbs.id'), nullable=True) + schema = Column(String(128)) + label = Column(String(256)) + description = Column(Text) + sql = Column(Text) + user = relationship( + sm.user_model, + backref=backref('saved_queries', cascade='all, delete-orphan'), + foreign_keys=[user_id]) + database = relationship( + 'Database', + foreign_keys=[db_id], + backref=backref('saved_queries', cascade='all, delete-orphan') + ) + + @property + def pop_tab_link(self): + return Markup(""" + + + + """.format(**locals())) diff --git a/superset/results_backends.py b/superset/results_backends.py deleted file mode 100644 index 0448d7c390c4b..0000000000000 --- a/superset/results_backends.py +++ /dev/null @@ -1,175 +0,0 @@ -"""Results backends are used to store long-running query results - -The Abstraction is flask-cache, which uses the BaseCache class from werkzeug -""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -try: - import cPickle as pickle -except ImportError: - import pickle - -import io -import logging - -import boto3 -from werkzeug.contrib.cache import BaseCache - -from superset import app - -config = app.config - - -class S3Cache(BaseCache): - - """S3 cache implementation. - - Adapted from examples in - https://github.com/pallets/werkzeug/blob/master/werkzeug/contrib/cache.py. - - Timeout parameters are ignored as S3 doesn't support key-level expiration. - To expire keys, set up an expiration policy as described in - https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/. - """ - - def __init__(self, default_timeout=300): - self.default_timeout = default_timeout - - self.s3_client = boto3.client('s3') - - self.bucket = config.get('S3_CACHE_BUCKET') - self.key_prefix = config.get('S3_CACHE_KEY_PREFIX') - - def get(self, key): - """Look up key in the cache and return the value for it. - - :param key: the key to be looked up. - :returns: The value if it exists and is readable, else ``None``. - """ - if not self._key_exists(key): - return None - else: - value_file = io.BytesIO() - - try: - self.s3_client.download_fileobj( - self.bucket, - self._full_s3_key(key), - value_file - ) - except Exception as e: - logging.warn('Error while trying to get key %s', key) - logging.exception(e) - - return None - else: - value_file.seek(0) - return pickle.load(value_file) - - def delete(self, key): - """Delete `key` from the cache. - - :param key: the key to delete. - :returns: Whether the key existed and has been deleted. - :rtype: boolean - """ - if not self._key_exists(key): - return False - else: - try: - self.s3_client.delete_objects( - Bucket=self.bucket, - Delete={ - 'Objects': [ - { - 'Key': self._full_s3_key(key) - } - ] - } - ) - except Exception as e: - logging.warn('Error while trying to delete key %s', key) - logging.exception(e) - - return False - else: - return True - - def set(self, key, value, timeout=None): - """Add a new key/value to the cache. - - If the key already exists, the existing value is overwritten. - - :param key: the key to set - :param value: the value for the key - :param timeout: the cache timeout for the key in seconds (if not - specified, it uses the default timeout). A timeout of - 0 idicates that the cache never expires. - :returns: ``True`` if key has been updated, ``False`` for backend - errors. Pickling errors, however, will raise a subclass of - ``pickle.PickleError``. - :rtype: boolean - """ - value_file = io.BytesIO() - pickle.dump(value, value_file) - - try: - value_file.seek(0) - self.s3_client.upload_fileobj( - value_file, - self.bucket, - self._full_s3_key(key) - ) - except Exception as e: - logging.warn('Error while trying to set key %s', key) - logging.exception(e) - - return False - else: - return True - - def add(self, key, value, timeout=None): - """Works like :meth:`set` but does not overwrite existing values. - - :param key: the key to set - :param value: the value for the key - :param timeout: the cache timeout for the key in seconds (if not - specified, it uses the default timeout). A timeout of - 0 idicates that the cache never expires. - :returns: Same as :meth:`set`, but also ``False`` for already - existing keys. - :rtype: boolean - """ - if self._key_exists(key): - return False - else: - return self.set(key, value, timeout=timeout) - - def clear(self): - """Clears the cache. - - Keep in mind that not all caches support completely clearing the cache. - :returns: Whether the cache has been cleared. - :rtype: boolean - """ - return False - - def _full_s3_key(self, key): - """Convert a cache key to a full S3 key, including the key prefix.""" - return '%s%s' % (self.key_prefix, key) - - def _key_exists(self, key): - """Determine whether the given key exists in the bucket.""" - try: - self.s3_client.head_object( - Bucket=self.bucket, - Key=self._full_s3_key(key) - ) - except Exception: - # head_object throws an exception when object doesn't exist - return False - else: - return True diff --git a/superset/security.py b/superset/security.py index 1834213f040fd..3db268be0333f 100644 --- a/superset/security.py +++ b/superset/security.py @@ -1,3 +1,4 @@ +"""A set of constants and methods to manage permissions and security""" from __future__ import absolute_import from __future__ import division from __future__ import print_function @@ -6,7 +7,9 @@ import logging from flask_appbuilder.security.sqla import models as ab_models -from superset import conf, db, models, sm, source_registry +from superset import conf, db, sm +from superset.models import core as models +from superset.connectors.connector_registry import ConnectorRegistry READ_ONLY_MODEL_VIEWS = { @@ -38,8 +41,7 @@ ADMIN_ONLY_PERMISSIONS = { 'all_database_access', - # TODO: move can_sql_json to sql_lab role - 'can_sql_json', + 'can_sql_json', # TODO: move can_sql_json to sql_lab role 'can_override_role_permissions', 'can_sync_druid_source', 'can_override_role_permissions', @@ -92,7 +94,6 @@ def get_or_create_main_db(): ) if not dbobj: dbobj = models.Database(database_name="main") - logging.info(conf.get("SQLALCHEMY_DATABASE_URI")) dbobj.set_sqlalchemy_uri(conf.get("SQLALCHEMY_DATABASE_URI")) dbobj.expose_in_sqllab = True dbobj.allow_run_sync = True @@ -145,6 +146,9 @@ def set_role(role_name, pvms, pvm_check): role = sm.add_role(role_name) role_pvms = [p for p in pvms if pvm_check(p)] role.permissions = role_pvms + sesh = sm.get_session() + sesh.merge(role) + sesh.commit() def create_custom_permissions(): @@ -155,7 +159,7 @@ def create_custom_permissions(): def create_missing_datasource_perms(view_menu_set): logging.info("Creating missing datasource permissions.") - datasources = source_registry.SourceRegistry.get_all_datasources( + datasources = ConnectorRegistry.get_all_datasources( db.session) for datasource in datasources: if datasource and datasource.perm not in view_menu_set: @@ -181,8 +185,8 @@ def create_missing_metrics_perm(view_menu_set): """ logging.info("Creating missing metrics permissions") metrics = [] - for model in [models.SqlMetric, models.DruidMetric]: - metrics += list(db.session.query(model).all()) + for datasource_class in ConnectorRegistry.sources.values(): + metrics += list(db.session.query(datasource_class.metric_class).all()) for metric in metrics: if (metric.is_restricted and metric.perm and @@ -216,7 +220,9 @@ def sync_role_definitions(): if conf.get('PUBLIC_ROLE_LIKE_GAMMA', False): set_role('Public', pvms, is_gamma_pvm) - view_menu_set = db.session.query(models.SqlaTable).all() + view_menu_set = [] + for datasource_class in ConnectorRegistry.sources.values(): + view_menu_set += list(db.session.query(datasource_class).all()) create_missing_datasource_perms(view_menu_set) create_missing_database_perms(view_menu_set) create_missing_metrics_perm(view_menu_set) diff --git a/superset/sql_lab.py b/superset/sql_lab.py index 588d556f28abe..7158d9c755c96 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -1,21 +1,22 @@ import celery +from time import sleep from datetime import datetime import json import logging import pandas as pd import sqlalchemy import uuid -import zlib from sqlalchemy.pool import NullPool from sqlalchemy.orm import sessionmaker from superset import ( - app, db, models, utils, dataframe, results_backend) + app, db, utils, dataframe, results_backend) +from superset.models.sql_lab import Query from superset.sql_parse import SupersetQuery from superset.db_engine_specs import LimitMethod from superset.jinja_context import get_template_processor -QueryStatus = models.QueryStatus +from superset.utils import QueryStatus celery_app = celery.Celery(config_source=app.config.get('CELERY_CONFIG')) @@ -53,9 +54,20 @@ def get_sql_results(self, query_id, return_results=True, store_results=False): else: session = db.session() session.commit() # HACK - query = session.query(models.Query).filter_by(id=query_id).one() + try: + query = session.query(Query).filter_by(id=query_id).one() + except Exception as e: + logging.error( + "Query with id `{}` could not be retrieved".format(query_id)) + logging.error("Sleeping for a sec and retrying...") + # Nasty hack to get around a race condition where the worker + # cannot find the query it's supposed to run + sleep(1) + query = session.query(Query).filter_by(id=query_id).one() + database = query.database db_engine_spec = database.db_engine_spec + db_engine_spec.patch() def handle_error(msg): """Local method handling error while processing the SQL""" @@ -91,7 +103,6 @@ def handle_error(msg): db_engine_spec.limit_method == LimitMethod.WRAP_SQL): executed_sql = database.wrap_sql_limit(executed_sql, query.limit) query.limit_used = True - engine = database.get_sqla_engine(schema=query.schema) try: template_processor = get_template_processor( database=database, query=query) @@ -103,61 +114,83 @@ def handle_error(msg): handle_error(msg) query.executed_sql = executed_sql - logging.info("Running query: \n{}".format(executed_sql)) + query.status = QueryStatus.RUNNING + query.start_running_time = utils.now_as_float() + session.merge(query) + session.commit() + logging.info("Set query to 'running'") + try: - result_proxy = engine.execute(query.executed_sql, schema=query.schema) + engine = database.get_sqla_engine(schema=query.schema) + conn = engine.raw_connection() + cursor = conn.cursor() + logging.info("Running query: \n{}".format(executed_sql)) + logging.info(query.executed_sql) + cursor.execute( + query.executed_sql, **db_engine_spec.cursor_execute_kwargs) except Exception as e: logging.exception(e) - handle_error(utils.error_msg_from_exception(e)) - - cursor = result_proxy.cursor - query.status = QueryStatus.RUNNING - session.flush() - db_engine_spec.handle_cursor(cursor, query, session) - - cdf = None - if result_proxy.cursor: - column_names = [col[0] for col in result_proxy.cursor.description] - column_names = dedup(column_names) - if db_engine_spec.limit_method == LimitMethod.FETCH_MANY: - data = result_proxy.fetchmany(query.limit) - else: - data = result_proxy.fetchall() - cdf = dataframe.SupersetDataFrame( - pd.DataFrame(data, columns=column_names)) + conn.close() + handle_error(db_engine_spec.extract_error_message(e)) - query.rows = result_proxy.rowcount + try: + logging.info("Handling cursor") + db_engine_spec.handle_cursor(cursor, query, session) + logging.info("Fetching data: {}".format(query.to_dict())) + data = db_engine_spec.fetch_data(cursor, query.limit) + except Exception as e: + logging.exception(e) + conn.close() + handle_error(db_engine_spec.extract_error_message(e)) + + conn.commit() + conn.close() + + if query.status == utils.QueryStatus.STOPPED: + return json.dumps({ + 'query_id': query.id, + 'status': query.status, + 'query': query.to_dict(), + }, default=utils.json_iso_dttm_ser) + + column_names = ( + [col[0] for col in cursor.description] if cursor.description else []) + column_names = dedup(column_names) + cdf = dataframe.SupersetDataFrame(pd.DataFrame( + list(data), columns=column_names)) + + query.rows = cdf.size query.progress = 100 query.status = QueryStatus.SUCCESS - if query.rows == -1 and cdf: - # Presto doesn't provide result_proxy.row_count - query.rows = cdf.size if query.select_as_cta: query.select_sql = '{}'.format(database.select_star( query.tmp_table_name, limit=query.limit, - schema=database.force_ctas_schema + schema=database.force_ctas_schema, + show_cols=False, + latest_partition=False, )) query.end_time = utils.now_as_float() + session.merge(query) session.flush() payload = { 'query_id': query.id, 'status': query.status, - 'data': [], + 'data': cdf.data if cdf.data else [], + 'columns': cdf.columns if cdf.columns else [], + 'query': query.to_dict(), } - payload['data'] = cdf.data if cdf else [] - payload['columns'] = cdf.columns_dict if cdf else [] - payload['query'] = query.to_dict() payload = json.dumps(payload, default=utils.json_iso_dttm_ser) if store_results: key = '{}'.format(uuid.uuid4()) logging.info("Storing results in results backend, key: {}".format(key)) - results_backend.set(key, zlib.compress(payload)) + results_backend.set(key, utils.zlib_compress(payload)) query.results_key = key + query.end_result_backend_time = utils.now_as_float() - session.flush() + session.merge(query) session.commit() if return_results: diff --git a/superset/sql_parse.py b/superset/sql_parse.py index 61966c2a7829d..0faae28b9428a 100644 --- a/superset/sql_parse.py +++ b/superset/sql_parse.py @@ -1,6 +1,8 @@ +import logging + import sqlparse from sqlparse.sql import IdentifierList, Identifier -from sqlparse.tokens import DML, Keyword, Name +from sqlparse.tokens import Keyword, Name RESULT_OPERATIONS = {'UNION', 'INTERSECT', 'EXCEPT'} PRECEDES_TABLE_NAME = {'FROM', 'JOIN', 'DESC', 'DESCRIBE', 'WITH'} @@ -13,6 +15,7 @@ def __init__(self, sql_statement): self._table_names = set() self._alias_names = set() # TODO: multistatement support + logging.info("Parsing with sqlparse statement {}".format(self.sql)) self._parsed = sqlparse.parse(self.sql) for statement in self._parsed: self.__extract_from_token(statement) diff --git a/superset/stats_logger.py b/superset/stats_logger.py new file mode 100644 index 0000000000000..b79cc8ffa70da --- /dev/null +++ b/superset/stats_logger.py @@ -0,0 +1,59 @@ + +class BaseStatsLogger(object): + """Base class for logging realtime events""" + + def __init__(self, prefix='superset'): + self.prefix = prefix + + def key(self, key): + if self.prefix: + return self.prefix + key + return key + + def incr(self, key): + """Increment a counter""" + raise NotImplementedError() + + def decr(self, key): + """Decrement a counter""" + raise NotImplementedError() + + def gauge(self, key): + """Setup a gauge""" + raise NotImplementedError() + + +class DummyStatsLogger(BaseStatsLogger): + + def incr(self, key): + pass + + def decr(self, key): + pass + + def gauge(self, key): + pass + + +try: + from statsd import StatsClient + + class StatsdStatsLogger(BaseStatsLogger): + def __init__(self, host, port, prefix='superset'): + self.client = StatsClient( + host=host, + port=port, + prefix=prefix) + + def incr(self, key): + self.client.incr(key) + + def decr(self, key): + self.client.decr(key) + + def gauge(self, key): + # pylint: disable=no-value-for-parameter + self.client.gauge(key) + +except Exception as e: + pass diff --git a/superset/templates/appbuilder/navbar.html b/superset/templates/appbuilder/navbar.html index 5772cc64818e1..b5c3d0a074beb 100644 --- a/superset/templates/appbuilder/navbar.html +++ b/superset/templates/appbuilder/navbar.html @@ -1,5 +1,6 @@ {% set menu = appbuilder.menu %} {% set languages = appbuilder.languages %} +{% set WARNING_MSG = appbuilder.app.config.get('WARNING_MSG') %}
    -{% set WARNING_MSG = appbuilder.app.config.get('WARNING_MSG') %} -{% if WARNING_MSG %} -
    - -
    -{% endif %} diff --git a/superset/templates/superset/explorev2.html b/superset/templates/superset/add_slice.html similarity index 61% rename from superset/templates/superset/explorev2.html rename to superset/templates/superset/add_slice.html index 516c97ffe5aaa..c2e6978eb5824 100644 --- a/superset/templates/superset/explorev2.html +++ b/superset/templates/superset/add_slice.html @@ -1,23 +1,19 @@ {% extends "superset/basic.html" %} {% block title %} - {% if slc %} - [slice] {{ slc.slice_name }} - {% else %} - [explore] {{ table_name }} - {% endif %} + Add new slice {% endblock %} {% block body %}
    {% endblock %} {% block tail_js %} {{ super() }} - {% with filename="explorev2" %} + {% with filename="addSlice" %} {% include "superset/partials/_script_tag.html" %} {% endwith %} {% endblock %} diff --git a/superset/templates/superset/basic.html b/superset/templates/superset/basic.html index 73ba2879dbcab..e146c51758b00 100644 --- a/superset/templates/superset/basic.html +++ b/superset/templates/superset/basic.html @@ -1,3 +1,4 @@ +{% import 'appbuilder/general/lib.html' as lib %} @@ -21,6 +22,12 @@ {% include "superset/partials/_script_tag.html" %} {% endwith %} {% endblock %} + <input + type="hidden" + name="csrf_token" + id="csrf_token" + value="{{ csrf_token() if csrf_token else '' }}" + > </head> <body> diff --git a/superset/templates/superset/csrf_token.json b/superset/templates/superset/csrf_token.json new file mode 100644 index 0000000000000..d5e4e0c78a8fd --- /dev/null +++ b/superset/templates/superset/csrf_token.json @@ -0,0 +1,3 @@ +{ + "csrf_token": "{{ csrf_token() if csrf_token else '' }}" +} diff --git a/superset/templates/superset/dashboard.html b/superset/templates/superset/dashboard.html index f899d6fa0a24b..8fe4a6ed5bfc1 100644 --- a/superset/templates/superset/dashboard.html +++ b/superset/templates/superset/dashboard.html @@ -6,13 +6,12 @@ {% include "superset/partials/_script_tag.html" %} {% endwith %} {% endblock %} -{% block title %}[dashboard] {{ dashboard.dashboard_title }}{% endblock %} +{% block title %}[dashboard] {{ dashboard_title }}{% endblock %} {% block body %} <div class="dashboard container-fluid" - data-dashboard="{{ dashboard.json_data }}" - data-context="{{ context }}" + data-bootstrap="{{ bootstrap_data }}" > {% include 'superset/flash_wrapper.html' %} diff --git a/superset/templates/superset/explore.html b/superset/templates/superset/explore.html index 8324adf4eeeef..ad7d8b9fddbbe 100644 --- a/superset/templates/superset/explore.html +++ b/superset/templates/superset/explore.html @@ -1,302 +1,18 @@ {% extends "superset/basic.html" %} {% block title %} - {% if slice %} - [slice] {{ slice.slice_name }} + {% if slc %} + [slice] {{ slc.slice_name }} {% else %} - [explore] {{ viz.datasource.table_name }} + [explore] {{ table_name }} {% endif %} {% endblock %} {% block body %} - {% set datasource = viz.datasource %} - {% set form = viz.form %} - - {% macro panofield(fieldname)%} - <div> - {% set field = form.get_field(fieldname)%} - <div> - {{ field.label }} - {% if field.description %} - <i class="fa fa-question-circle-o" data-toggle="tooltip" data-placement="right" - title="{{ field.description }}"></i> - {% endif %} - {{ field(class_=form.field_css_classes(field.name)) }} - </div> - </div> - {% endmacro %} - - <div class="datasource container-fluid"> - <form id="query" method="GET" style="display: none;"> - <div id="form_container" class="row"> - <div class="col-md-3"> - <div - id="js-query-and-save-btns" - class="query-and-save-btns-container" - data-can-add="{{ can_add }}" - > - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - <div class="panel-title"> - Datasource & Chart Type - </div> - </div> - <div class="panel-body"> - <div> - <!-- DATASOURCE --> - <span title="Data Source" data-toggle="tooltip"> - <select id="datasource_id" class="select2"> - {% for ds in datasources %} - <option url="{{ ds.explore_url }}" {{ "selected" if ds.id == datasource.id }} value="{{ ds.id }}">{{ ds.full_name }}<i class="fa fa-info"></i></option> - {% endfor %} - </select> - </span> - <a href="{{ datasource.url }}" data-toggle="tooltip" title="Edit/configure datasource"> - <i class="fa fa-edit m-l-3"></i> - </a> - </div> - <br/> - <!-- CHART TYPE --> - <div title="Visualization Type" data-toggle="tooltip"> - {{ form.get_field("viz_type")(class_="select2-with-images") }} - </div> - </div> - </div> - {% for fieldset in form.fieldsets %} - <div class="panel panel-default"> - {% if fieldset.label %} - <div class="panel-heading"> - <div class="panel-title"> - {{ fieldset.label }} - {% if fieldset.description %} - <i class="fa fa-question-circle-o" data-toggle="tooltip" - data-placement="bottom" - title="{{ fieldset.description }}"></i> - {% endif %} - </div> - </div> - {% endif %} - <div class="panel-body"> - {% for fieldname in fieldset.fields %} - {% if not fieldname %} - <hr/> - {% elif fieldname is string %} - {{ panofield(fieldname) }} - {% else %} - <div class="row"> - <div class="form-group"> - {% for name in fieldname %} - <div class="col-xs-{{ (12 / fieldname|length) | int }}"> - {% if name %} - {{ panofield(name) }} - {% endif %} - </div> - {% endfor %} - </div> - </div> - {% endif %} - {% endfor %} - </div> - </div> - {% endfor %} - <div id="filter_panel" class="panel panel-default"> - <div class="panel-heading"> - <div class="panel-title"> - {{ _("Filters") }} - <i class="fa fa-question-circle-o" data-toggle="tooltip" - data-placement="right" - title="{{_("Filters are defined using comma delimited strings as in <US,FR,Other>")}}. - {{_("Leave the value field empty to filter empty strings or nulls")}}. - {{_("For filters with comma in values, wrap them in single quotes, - as in <NY, 'Tahoe, CA', DC>")}}"> - </i> - </div> - </div> - <div class="panel-body"> - <div id="flt0" style="display: none;"> - <span class="">{{ form.flt_col_0(class_="form-control inc") }}</span> - <div class="row"> - <span class="col col-sm-4">{{ form.flt_op_0(class_="form-control inc") }}</span> - <span class="col col-sm-6">{{ form.flt_eq_0(class_="form-control inc") }}</span> - <button type="button" class="btn btn-default btn-sm remove" aria-label="Delete filter"> - <span class="fa fa-minus" aria-hidden="true"></span> - - </button> - </div> - </div> - <div id="filters"></div> - <button type="button" id="plus" class="btn btn-default btn-sm" aria-label="Add a filter"> - <span class="fa fa-plus" aria-hidden="true"></span> - <span>{{ _("Add filter") }}</span> - </button> - </div> - </div> - - - {% if form.having_col_0 %} - <div id="having_panel" class="panel panel-default"> - <div class="panel-heading"> - <div class="panel-title"> - Result Filters ("having" filters) - <i - class="fa fa-info-circle" - data-toggle="tooltip" - data-placement="bottom" - title="{{_("The filters to apply after post-aggregation.")}} {{_("Leave the value field empty to filter empty strings or nulls")}}"> - </i> - </div> - </div> - <div class="panel-body"> - <div id="having0" style="display: none;"> - <span class="">{{ form.having_col_0(class_="form-control inc") }}</span> - <div class="row"> - <span class="col col-sm-4">{{ form.having_op_0(class_="form-control inc") }}</span> - <span class="col col-sm-6">{{ form.having_eq_0(class_="form-control inc") }}</span> - <button type="button" - class="btn btn-default btn-sm remove" - aria-label="Delete filter"> - <span class="fa fa-minus" - aria-hidden="true"></span> - </button> - </div> - </div> - <div id="filters"></div> - <button type="button" id="plus" - class="btn btn-default btn-sm" - aria-label="Add a filter"> - <span class="fa fa-plus" aria-hidden="true"></span> - <span>Add filter</span> - </button> - </div> - </div> - {% endif %} - {{ form.slice_id() }} - {{ form.slice_name() }} - {{ form.collapsed_fieldsets() }} - <input type="hidden" name="action" id="action" value=""> - <input type="hidden" name="userid" id="userid" value="{{ userid }}"> - <input type="hidden" name="goto_dash" id="goto_dash" value="false"> - <input type="hidden" name="datasource_name" value="{{ datasource.name }}"> - <input type="hidden" name="datasource_id" value="{{ datasource.id }}"> - <input type="hidden" name="datasource_type" value="{{ datasource.type }}"> - <input type="hidden" name="previous_viz_type" value="{{ viz.viz_type or "table" }}"> - </div> - <div class="col-md-9"> - {% block messages %}{% endblock %} - {% include 'appbuilder/flash.html' %} - <div class="panel panel-default"> - <div class="panel-heading"> - <div class="panel-title"> - <div class="clearfix"> - <div class="pull-left"> - {% include 'superset/partials/_explore_title.html' %} - </div> - <div class="pull-right"> - <div class="slice-meta-controls pull-right"> - <span id="is_cached" class="label label-default m-r-3" title="{{ _("Force refresh" )}}" data-toggle="tooltip"> - cached - </span> - <span - class="label label-warning m-r-3" - id="timer" - title="{{ _("Query timer") }}" - data-toggle="tooltip"> - {{ _("0 sec") }} - </span> - - <span - id="js-explore-actions" - data-can-download="{{can_download}}" - > - </span> - </div> - </div> - </div> - </div> - </div> - <div class="panel-body"> - <div - id="{{ viz.token }}" - class="widget viz slice {{ viz.viz_type }}" - data-slice="{{ viz.json_data }}" - style="height: 700px;"> - <img src="{{ url_for("static", filename="assets/images/loading.gif") }}" class="loading" alt="loading"> - <div id="{{ viz.token }}_con" class="slice_container" style="height: 100%; width: 100%"></div> - </div> - </div> - </div> - </div> - - <div class="modal fade" id="sourceinfo_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - <h4 class="modal-title">{{ _("Datasource Description") }}</h4> - </div> - <div class="modal-body"> - {{ datasource.description_markeddown | safe }} - </div> - <div class="modal-footer"> - <button type="button" class="btn btn-default" data-dismiss="modal">{{ _("Close") }}</button> - </div> - </div> - </div> - </div> - <div class="modal fade" id="save_modal" tabindex="-1" role="dialog"> - <div class="modal-dialog" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - <h4 class="modal-title">{{ _("Save a Slice") }}</h4> - </div> - <div class="modal-body"> - {% if slice %} - <input - type="radio" - name="rdo_save" - value="overwrite" - {{ 'disabled' if not can_edit else '' }} - {{ 'checked' if can_edit else '' }}> - Overwrite slice [{{ slice.slice_name }}] <br><br> - {% endif %} - <input - id="save_as_new" - type="radio" - name="rdo_save" - value="saveas" - {{ 'checked' if not slice or not can_edit else '' }}> - Save as - <input type="text" name="new_slice_name" placeholder="[slice name]"><br> - <hr/> - <input type="radio" name="add_to_dash" checked value="false">Do not add to a dashboard<br><br> - <input id="add_to_dash_existing" type="radio" name="add_to_dash" value="existing">Add slice to existing dashboard - <input type="text" id="save_to_dashboard_id" name="save_to_dashboard_id"><br><br> - <input type="radio" id="add_to_new_dash" name="add_to_dash" value="new">Add to new dashboard - <input type="text" name="new_dashboard_name" placeholder="[dashboard name]"> <br><br> - </div> - <div class="modal-footer"> - <button type="button" id="btn_modal_save" class="btn pull-left"> - {{ _("Save") }} - </button> - <button type="button" id="btn_modal_save_goto_dash" class="btn btn-primary pull-left gotodash" disabled> - {{ _("Save & go to dashboard") }} - </button> - <button type="button" class="btn btn-default pull-right" data-dismiss="modal"> - {{ _("Cancel") }} - </button> - </div> - </div> - </div> - </div> - </form> - </div> + <div + id="js-explore-view-container" + data-bootstrap="{{ bootstrap_data }}" + ></div> {% endblock %} {% block tail_js %} diff --git a/superset/templates/superset/import_dashboards.html b/superset/templates/superset/import_dashboards.html index 4ca9f73f7ada6..383506f98423b 100644 --- a/superset/templates/superset/import_dashboards.html +++ b/superset/templates/superset/import_dashboards.html @@ -15,6 +15,12 @@ <title>Import the dashboards.

    Import the dashboards.

    +

    diff --git a/superset/templates/superset/models/database/macros.html b/superset/templates/superset/models/database/macros.html index db5422f815bc0..e66854c3c4f5c 100644 --- a/superset/templates/superset/models/database/macros.html +++ b/superset/templates/superset/models/database/macros.html @@ -5,13 +5,22 @@ $("#testconn").click(function(e) { e.preventDefault(); var url = "/superset/testconn"; + var csrf_token = "{{ csrf_token() if csrf_token else '' }}"; + + $.ajaxSetup({ + beforeSend: function(xhr, settings) { + if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { + xhr.setRequestHeader("X-CSRFToken", csrf_token); + } + } + }); var data = {}; try{ data = JSON.stringify({ uri: $("#sqlalchemy_uri").val(), name: $('#database_name').val(), - extras: JSON.parse($("#extra").val()) + extras: JSON.parse($("#extra").val()), }) } catch(parse_error){ alert("Malformed JSON in the extras field: " + parse_error); diff --git a/superset/templates/superset/standalone.html b/superset/templates/superset/standalone.html deleted file mode 100644 index 276e47a62c7f2..0000000000000 --- a/superset/templates/superset/standalone.html +++ /dev/null @@ -1,33 +0,0 @@ - - - {{ viz.token }} - - - - - {% set CSS_THEME = appbuilder.get_app.config.get("CSS_THEME") %} - {% set height = request.args.get("height", 700) %} - {% if CSS_THEME %} - - {% endif %} - - - -
    - loading -
    -
    - - {% with filename="css-theme" %} - {% include "superset/partials/_script_tag.html" %} - {% endwith %} - {% with filename="standalone" %} - {% include "superset/partials/_script_tag.html" %} - {% endwith %} - - diff --git a/superset/translations/es/LC_MESSAGES/messages.mo b/superset/translations/es/LC_MESSAGES/messages.mo index 96bca730b5842..9ecae647e4b31 100644 Binary files a/superset/translations/es/LC_MESSAGES/messages.mo and b/superset/translations/es/LC_MESSAGES/messages.mo differ diff --git a/superset/translations/es/LC_MESSAGES/messages.po b/superset/translations/es/LC_MESSAGES/messages.po old mode 100755 new mode 100644 index 45ff97d5de319..9db3217a20656 --- a/superset/translations/es/LC_MESSAGES/messages.po +++ b/superset/translations/es/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-07-01 17:17+0800\n" +"POT-Creation-Date: 2017-06-04 20:38+0200\n" "PO-Revision-Date: 2016-05-02 08:49-0700\n" "Last-Translator: FULL NAME \n" "Language: es\n" @@ -18,1829 +18,1596 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -#: superset/forms.py:140 -msgid "Viz" -msgstr "" - -#: superset/forms.py:143 -msgid "The type of visualization to display" -msgstr "" - -#: superset/forms.py:146 -msgid "Metrics" +#: superset/db_engine_specs.py:194 superset/db_engine_specs.py:225 +#: superset/db_engine_specs.py:269 superset/db_engine_specs.py:317 +#: superset/db_engine_specs.py:362 superset/db_engine_specs.py:770 +#: superset/db_engine_specs.py:806 superset/db_engine_specs.py:838 +#: superset/db_engine_specs.py:884 +msgid "Time Column" msgstr "" -#: superset/forms.py:149 superset/forms.py:154 -msgid "One or many metrics to display" +#: superset/db_engine_specs.py:195 superset/db_engine_specs.py:226 +#: superset/db_engine_specs.py:318 superset/db_engine_specs.py:363 +#: superset/db_engine_specs.py:771 superset/db_engine_specs.py:839 +msgid "second" msgstr "" -#: superset/forms.py:152 -msgid "Ordering" +#: superset/db_engine_specs.py:196 superset/db_engine_specs.py:229 +#: superset/db_engine_specs.py:321 superset/db_engine_specs.py:365 +#: superset/db_engine_specs.py:773 superset/db_engine_specs.py:807 +#: superset/db_engine_specs.py:841 superset/db_engine_specs.py:885 +msgid "minute" msgstr "" -#: superset/forms.py:157 superset/views.py:294 superset/views.py:334 -msgid "Metric" +#: superset/db_engine_specs.py:197 superset/db_engine_specs.py:233 +#: superset/db_engine_specs.py:323 superset/db_engine_specs.py:367 +#: superset/db_engine_specs.py:779 superset/db_engine_specs.py:809 +#: superset/db_engine_specs.py:843 superset/db_engine_specs.py:891 +msgid "hour" msgstr "" -#: superset/forms.py:160 -msgid "Choose the metric" +#: superset/db_engine_specs.py:198 superset/db_engine_specs.py:238 +#: superset/db_engine_specs.py:270 superset/db_engine_specs.py:325 +#: superset/db_engine_specs.py:369 superset/db_engine_specs.py:781 +#: superset/db_engine_specs.py:811 superset/db_engine_specs.py:845 +#: superset/db_engine_specs.py:893 +msgid "day" msgstr "" -#: superset/forms.py:163 -msgid "Chart Style" +#: superset/db_engine_specs.py:199 superset/db_engine_specs.py:244 +#: superset/db_engine_specs.py:271 superset/db_engine_specs.py:326 +#: superset/db_engine_specs.py:371 superset/db_engine_specs.py:783 +#: superset/db_engine_specs.py:813 superset/db_engine_specs.py:847 +msgid "week" msgstr "" -#: superset/forms.py:165 -msgid "stack" +#: superset/db_engine_specs.py:200 superset/db_engine_specs.py:246 +#: superset/db_engine_specs.py:273 superset/db_engine_specs.py:328 +#: superset/db_engine_specs.py:373 superset/db_engine_specs.py:785 +#: superset/db_engine_specs.py:815 superset/db_engine_specs.py:849 +#: superset/db_engine_specs.py:895 +msgid "month" msgstr "" -#: superset/forms.py:166 -msgid "stream" +#: superset/db_engine_specs.py:201 superset/db_engine_specs.py:248 +#: superset/db_engine_specs.py:330 superset/db_engine_specs.py:375 +#: superset/db_engine_specs.py:787 superset/db_engine_specs.py:817 +#: superset/db_engine_specs.py:851 superset/db_engine_specs.py:897 +msgid "quarter" msgstr "" -#: superset/forms.py:167 -msgid "expand" +#: superset/db_engine_specs.py:202 superset/db_engine_specs.py:252 +#: superset/db_engine_specs.py:332 superset/db_engine_specs.py:789 +#: superset/db_engine_specs.py:819 superset/db_engine_specs.py:899 +msgid "year" msgstr "" -#: superset/forms.py:173 -msgid "Color Scheme" +#: superset/db_engine_specs.py:334 +msgid "week_start_monday" msgstr "" -#: superset/forms.py:175 -msgid "fire" +#: superset/db_engine_specs.py:377 superset/db_engine_specs.py:853 +msgid "week_ending_saturday" msgstr "" -#: superset/forms.py:176 -msgid "blue_white_yellow" +#: superset/db_engine_specs.py:380 superset/db_engine_specs.py:856 +msgid "week_start_sunday" msgstr "" -#: superset/forms.py:177 -msgid "white_black" +#: superset/db_engine_specs.py:775 superset/db_engine_specs.py:887 +msgid "5 minute" msgstr "" -#: superset/forms.py:178 -msgid "black_white" +#: superset/db_engine_specs.py:777 +msgid "half hour" msgstr "" -#: superset/forms.py:184 -msgid "Normalize Across" +#: superset/db_engine_specs.py:889 +msgid "10 minute" msgstr "" -#: superset/forms.py:186 -msgid "heatmap" +#: superset/viz.py:311 +msgid "Table View" msgstr "" -#: superset/forms.py:187 -msgid "x" +#: superset/viz.py:364 +msgid "Pivot Table" msgstr "" -#: superset/forms.py:188 -msgid "y" +#: superset/viz.py:413 +msgid "Markup" msgstr "" -#: superset/forms.py:191 -msgid "" -"Color will be rendered based on a ratio of the cell against the sum of " -"across this criteria" +#: superset/viz.py:432 +msgid "Separator" msgstr "" -#: superset/forms.py:197 -msgid "Color Scale" +#: superset/viz.py:448 +msgid "Word Cloud" msgstr "" -#: superset/forms.py:199 -msgid "series" +#: superset/viz.py:471 +msgid "Treemap" msgstr "" -#: superset/forms.py:200 -msgid "overall" +#: superset/viz.py:497 +msgid "Calendar Heatmap" msgstr "" -#: superset/forms.py:201 -msgid "change" +#: superset/viz.py:555 +msgid "Box Plot" msgstr "" -#: superset/forms.py:204 -msgid "Defines how the color are attributed." +#: superset/viz.py:644 +msgid "Bubble Chart" msgstr "" -#: superset/forms.py:207 -msgid "Rendering" +#: superset/viz.py:693 +msgid "Bullet Chart" msgstr "" -#: superset/forms.py:209 -msgid "pixelated (Sharp)" +#: superset/viz.py:742 +msgid "Big Number with Trendline" msgstr "" -#: superset/forms.py:210 -msgid "auto (Smooth)" +#: superset/viz.py:771 +msgid "Big Number" msgstr "" -#: superset/forms.py:213 -msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" +#: superset/viz.py:798 +msgid "Time Series - Line Chart" msgstr "" -#: superset/forms.py:218 -msgid "XScale Interval" +#: superset/viz.py:925 +msgid "Time Series - Dual Axis Line Chart" msgstr "" -#: superset/forms.py:221 -msgid "Number of step to take between ticks when printing the x scale" +#: superset/viz.py:1000 +msgid "Time Series - Bar Chart" msgstr "" -#: superset/forms.py:226 -msgid "YScale Interval" +#: superset/viz.py:1008 +msgid "Time Series - Percent Change" msgstr "" -#: superset/forms.py:229 -msgid "Number of step to take between ticks when printing the y scale" +#: superset/viz.py:1016 +msgid "Time Series - Stacked" msgstr "" -#: superset/forms.py:234 -msgid "Stacked Bars" +#: superset/viz.py:1025 +msgid "Distribution - NVD3 - Pie Chart" msgstr "" -#: superset/forms.py:239 -msgid "Extra Controls" +#: superset/viz.py:1043 +msgid "Histogram" msgstr "" -#: superset/forms.py:241 -msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." +#: superset/viz.py:1068 +msgid "Distribution - Bar Chart" msgstr "" -#: superset/forms.py:247 -msgid "Reduce X ticks" +#: superset/viz.py:1135 +msgid "Sunburst" msgstr "" -#: superset/forms.py:249 -msgid "" -"Reduces the number of X axis ticks to be rendered. If true, the x axis " -"wont overflow and labels may be missing. If false, a minimum width will " -"be applied to columns and the width may overflow into an horizontal " -"scroll." +#: superset/viz.py:1168 +msgid "Sankey" msgstr "" -#: superset/forms.py:257 -msgid "Include Series" +#: superset/viz.py:1217 +msgid "Directed Force Layout" msgstr "" -#: superset/forms.py:259 -msgid "Include series name as an axis" +#: superset/viz.py:1238 +msgid "Country Map" msgstr "" -#: superset/forms.py:262 -msgid "Color Metric" +#: superset/viz.py:1267 +msgid "World Map" msgstr "" -#: superset/forms.py:265 -msgid "A metric to use for color" +#: superset/viz.py:1317 +msgid "Filters" msgstr "" -#: superset/forms.py:268 -msgid "Country Field Type" +#: superset/viz.py:1352 +msgid "iFrame" msgstr "" -#: superset/forms.py:271 -msgid "Full name" +#: superset/viz.py:1369 +msgid "Parallel Coordinates" msgstr "" -#: superset/forms.py:272 -msgid "code International Olympic Committee (cioc)" +#: superset/viz.py:1394 +msgid "Heatmap" msgstr "" -#: superset/forms.py:273 -msgid "code ISO 3166-1 alpha-2 (cca2)" +#: superset/viz.py:1445 +msgid "Horizon Charts" msgstr "" -#: superset/forms.py:274 -msgid "code ISO 3166-1 alpha-3 (cca3)" +#: superset/viz.py:1456 +msgid "Mapbox" msgstr "" -#: superset/forms.py:276 -msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" +#: superset/connectors/druid/models.py:934 +msgid "No data was returned." msgstr "" -#: superset/forms.py:281 -msgid "Group by" +#: superset/connectors/druid/views.py:37 superset/connectors/sqla/views.py:74 +msgid "Column" msgstr "" -#: superset/forms.py:283 -msgid "One or many fields to group by" +#: superset/connectors/druid/views.py:38 superset/connectors/druid/views.py:97 +#: superset/connectors/sqla/views.py:120 +msgid "Type" msgstr "" -#: superset/forms.py:286 superset/forms.py:291 -msgid "Columns" +#: superset/connectors/druid/views.py:39 superset/views/core.py:306 +#: superset/views/core.py:355 +msgid "Datasource" msgstr "" -#: superset/forms.py:288 -msgid "One or many fields to pivot as columns" +#: superset/connectors/druid/views.py:40 superset/connectors/sqla/views.py:77 +msgid "Groupable" msgstr "" -#: superset/forms.py:293 superset/forms.py:298 superset/forms.py:303 -msgid "Columns to display" +#: superset/connectors/druid/views.py:41 superset/connectors/sqla/views.py:78 +msgid "Filterable" msgstr "" -#: superset/forms.py:296 -msgid "X" +#: superset/connectors/druid/views.py:42 superset/connectors/sqla/views.py:80 +msgid "Count Distinct" msgstr "" -#: superset/forms.py:301 -msgid "Y" +#: superset/connectors/druid/views.py:43 superset/connectors/sqla/views.py:81 +msgid "Sum" msgstr "" -#: superset/forms.py:306 -msgid "Origin" +#: superset/connectors/druid/views.py:44 superset/connectors/sqla/views.py:82 +msgid "Min" msgstr "" -#: superset/forms.py:308 -msgid "default" +#: superset/connectors/druid/views.py:45 superset/connectors/sqla/views.py:83 +msgid "Max" msgstr "" -#: superset/forms.py:309 superset/forms.py:467 -msgid "now" +#: superset/connectors/druid/views.py:48 superset/connectors/sqla/views.py:43 +msgid "" +"Whether this column is exposed in the `Filters` section of the explore " +"view." msgstr "" -#: superset/forms.py:312 +#: superset/connectors/druid/views.py:88 superset/connectors/sqla/views.py:102 msgid "" -"Defines the origin where time buckets start, accepts natural dates as in " -"'now', 'sunday' or '1970-01-01'" +"Whether the access to this metric is restricted to certain roles. Only " +"roles with the permission 'metric access on XXX (the name of this " +"metric)' are allowed to access this metric" msgstr "" -#: superset/forms.py:317 -msgid "Bottom Margin" +#: superset/connectors/druid/views.py:94 superset/connectors/sqla/views.py:117 +msgid "Metric" msgstr "" -#: superset/forms.py:320 -msgid "Bottom marging, in pixels, allowing for more room for axis labels" +#: superset/connectors/druid/views.py:95 superset/connectors/druid/views.py:205 +#: superset/connectors/sqla/views.py:76 superset/connectors/sqla/views.py:118 +#: superset/views/core.py:356 +msgid "Description" msgstr "" -#: superset/forms.py:325 -msgid "Time Granularity" +#: superset/connectors/druid/views.py:96 superset/connectors/sqla/views.py:75 +#: superset/connectors/sqla/views.py:119 +msgid "Verbose Name" msgstr "" -#: superset/forms.py:328 -msgid "all" +#: superset/connectors/druid/views.py:98 superset/views/core.py:529 +msgid "JSON" msgstr "" -#: superset/forms.py:329 -msgid "5 seconds" +#: superset/connectors/druid/views.py:99 +msgid "Druid Datasource" msgstr "" -#: superset/forms.py:330 -msgid "30 seconds" +#: superset/connectors/druid/views.py:124 +#: superset/connectors/druid/views.py:204 +msgid "Cluster" msgstr "" -#: superset/forms.py:331 -msgid "1 minute" +#: superset/connectors/druid/views.py:125 +msgid "Coordinator Host" msgstr "" -#: superset/forms.py:332 -msgid "5 minutes" +#: superset/connectors/druid/views.py:126 +msgid "Coordinator Port" msgstr "" -#: superset/forms.py:333 -msgid "1 hour" +#: superset/connectors/druid/views.py:127 +msgid "Coordinator Endpoint" msgstr "" -#: superset/forms.py:334 -msgid "6 hour" +#: superset/connectors/druid/views.py:128 +msgid "Broker Host" msgstr "" -#: superset/forms.py:335 -msgid "1 day" +#: superset/connectors/druid/views.py:129 +msgid "Broker Port" msgstr "" -#: superset/forms.py:336 -msgid "7 days" +#: superset/connectors/druid/views.py:130 +msgid "Broker Endpoint" msgstr "" -#: superset/forms.py:338 +#: superset/connectors/druid/views.py:173 superset/connectors/sqla/views.py:156 msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in '10 seconds', '1 day' or '56 weeks'" -msgstr "" - -#: superset/forms.py:344 -msgid "Domain" -msgstr "" - -#: superset/forms.py:347 superset/forms.py:361 superset/models.py:417 -#: superset/models.py:435 -msgid "hour" -msgstr "" - -#: superset/forms.py:348 superset/forms.py:362 superset/models.py:419 -#: superset/models.py:427 superset/models.py:436 -msgid "day" +"The list of slices associated with this table. By altering this " +"datasource, you may change how these associated slices behave. Also note " +"that slices need to point to a datasource, so this form will fail at " +"saving if removing slices from a datasource. If you want to change the " +"datasource for a slice, overwrite the slice from the 'explore view'" msgstr "" -#: superset/forms.py:349 superset/forms.py:363 superset/models.py:407 -#: superset/models.py:420 superset/models.py:428 superset/models.py:437 -msgid "week" +#: superset/connectors/druid/views.py:181 superset/connectors/sqla/views.py:164 +msgid "Timezone offset (in hours) for this datasource" msgstr "" -#: superset/forms.py:350 superset/forms.py:364 superset/models.py:408 -#: superset/models.py:422 superset/models.py:429 superset/models.py:438 -msgid "month" +#: superset/connectors/druid/views.py:185 +msgid "" +"Time expression to use as a predicate when retrieving distinct values to " +"populate the filter component. Only applies when `Enable Filter Select` " +"is on. If you enter `7 days ago`, the distinct list of values in the " +"filter will be populated based on the distinct value over the past week" msgstr "" -#: superset/forms.py:351 superset/models.py:439 -msgid "year" +#: superset/connectors/druid/views.py:192 superset/connectors/sqla/views.py:186 +msgid "" +"Whether to populate the filter's dropdown in the explore view's filter " +"section with a list of distinct values fetched from the backend on the " +"fly" msgstr "" -#: superset/forms.py:353 -msgid "The time unit used for the grouping of blocks" +#: superset/connectors/druid/views.py:196 superset/connectors/sqla/views.py:200 +msgid "" +"Redirects to this endpoint when clicking on the datasource from the " +"datasource list" msgstr "" -#: superset/forms.py:357 -msgid "Subdomain" +#: superset/connectors/druid/views.py:202 superset/connectors/sqla/views.py:193 +msgid "Associated Slices" msgstr "" -#: superset/forms.py:360 superset/forms.py:701 -msgid "min" +#: superset/connectors/druid/views.py:203 +msgid "Data Source" msgstr "" -#: superset/forms.py:366 -msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" +#: superset/connectors/druid/views.py:206 +msgid "Owner" msgstr "" -#: superset/forms.py:371 -msgid "Link Length" +#: superset/connectors/druid/views.py:207 +msgid "Is Hidden" msgstr "" -#: superset/forms.py:383 -msgid "Link length in the force layout" +#: superset/connectors/druid/views.py:208 superset/connectors/sqla/views.py:198 +msgid "Enable Filter Select" msgstr "" -#: superset/forms.py:386 -msgid "Charge" +#: superset/connectors/druid/views.py:209 +msgid "Default Endpoint" msgstr "" -#: superset/forms.py:400 -msgid "Charge in the force layout" +#: superset/connectors/druid/views.py:210 +msgid "Time Offset" msgstr "" -#: superset/forms.py:403 superset/models.py:406 superset/models.py:416 -#: superset/models.py:426 superset/models.py:432 -msgid "Time Column" +#: superset/connectors/druid/views.py:211 superset/connectors/sqla/views.py:204 +#: superset/views/core.py:242 superset/views/core.py:352 +msgid "Cache Timeout" msgstr "" -#: superset/forms.py:406 +#: superset/connectors/sqla/models.py:388 msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table editor. Also note " -"that the filter below is applied against this column or expression" +"Datetime column not provided as part table configuration and is required " +"by this type of chart" msgstr "" -#: superset/forms.py:414 -msgid "Resample Rule" +#: superset/connectors/sqla/models.py:393 +msgid "Metric '{}' is not valid" msgstr "" -#: superset/forms.py:417 -msgid "1T" +#: superset/connectors/sqla/views.py:39 +msgid "" +"Whether to make this column available as a [Time Granularity] option, " +"column has to be DATETIME or DATETIME-like" msgstr "" -#: superset/forms.py:418 -msgid "1H" +#: superset/connectors/sqla/views.py:46 +msgid "" +"The data type that was inferred by the database. It may be necessary to " +"input a type manually for expression-defined columns in some cases. In " +"most case users should not need to alter this." msgstr "" -#: superset/forms.py:419 -msgid "1D" +#: superset/connectors/sqla/views.py:79 superset/connectors/sqla/views.py:122 +#: superset/connectors/sqla/views.py:194 superset/views/core.py:362 +msgid "Table" msgstr "" -#: superset/forms.py:420 -msgid "7D" +#: superset/connectors/sqla/views.py:84 +msgid "Expression" msgstr "" -#: superset/forms.py:421 -msgid "1M" +#: superset/connectors/sqla/views.py:85 +msgid "Is temporal" msgstr "" -#: superset/forms.py:422 -msgid "1AS" +#: superset/connectors/sqla/views.py:86 +msgid "Datetime Format" msgstr "" -#: superset/forms.py:424 -msgid "Pandas resample rule" +#: superset/connectors/sqla/views.py:87 +msgid "Database Expression" msgstr "" -#: superset/forms.py:427 -msgid "Resample How" +#: superset/connectors/sqla/views.py:121 +msgid "SQL Expression" msgstr "" -#: superset/forms.py:431 superset/forms.py:700 -msgid "mean" +#: superset/connectors/sqla/views.py:165 +msgid "Name of the table that exists in the source database" msgstr "" -#: superset/forms.py:432 superset/forms.py:699 -msgid "sum" +#: superset/connectors/sqla/views.py:167 +msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" msgstr "" -#: superset/forms.py:433 superset/forms.py:703 -msgid "median" +#: superset/connectors/sqla/views.py:173 +msgid "" +"This fields acts a Superset view, meaning that Superset will run a query " +"against this string as a subquery." msgstr "" -#: superset/forms.py:435 -msgid "Pandas resample how" +#: superset/connectors/sqla/views.py:177 +msgid "" +"Predicate applied when fetching distinct value to populate the filter " +"control component. Supports jinja template syntax. Applies only when " +"`Enable Filter Select` is on." msgstr "" -#: superset/forms.py:438 -msgid "Resample Fill Method" +#: superset/connectors/sqla/views.py:183 +msgid "Redirects to this endpoint when clicking on the table from the table list" msgstr "" -#: superset/forms.py:442 -msgid "ffill" +#: superset/connectors/sqla/views.py:195 +msgid "Changed By" msgstr "" -#: superset/forms.py:443 -msgid "bfill" +#: superset/connectors/sqla/views.py:196 superset/views/core.py:238 +msgid "Database" msgstr "" -#: superset/forms.py:445 -msgid "Pandas resample fill method" +#: superset/connectors/sqla/views.py:197 superset/views/core.py:240 +msgid "Last Changed" msgstr "" -#: superset/forms.py:448 -msgid "Since" +#: superset/connectors/sqla/views.py:199 +msgid "Schema" msgstr "" -#: superset/forms.py:451 -msgid "1 hour ago" +#: superset/connectors/sqla/views.py:203 +msgid "Offset" msgstr "" -#: superset/forms.py:452 -msgid "12 hours ago" +#: superset/connectors/sqla/views.py:236 +msgid "" +"The table was created. As part of this two phase configuration process, " +"you should now click the edit button by the new table to configure it." msgstr "" -#: superset/forms.py:453 superset/forms.py:468 -msgid "1 day ago" +#: superset/templates/appbuilder/navbar_right.html:41 +msgid "Profile" msgstr "" -#: superset/forms.py:454 superset/forms.py:469 -msgid "7 days ago" +#: superset/templates/appbuilder/navbar_right.html:42 +msgid "Logout" msgstr "" -#: superset/forms.py:455 superset/forms.py:470 -msgid "28 days ago" +#: superset/templates/appbuilder/navbar_right.html:47 +msgid "Login" msgstr "" -#: superset/forms.py:456 superset/forms.py:471 -msgid "90 days ago" +#: superset/templates/superset/request_access.html:2 +msgid "No Access!" msgstr "" -#: superset/forms.py:457 superset/forms.py:472 -msgid "1 year ago" +#: superset/templates/superset/request_access.html:7 +#, python-format +msgid "You do not have permissions to access the datasource(s): %(name)s." msgstr "" -#: superset/forms.py:459 -msgid "" -"Timestamp from filter. This supports free form typing and natural " -"language as in '1 day ago', '28 days' or '3 years'" +#: superset/templates/superset/request_access.html:13 +msgid "Request Permissions" msgstr "" -#: superset/forms.py:464 -msgid "Until" +#: superset/templates/superset/request_access.html:16 +msgid "Cancel" msgstr "" -#: superset/forms.py:476 -msgid "Max Bubble Size" +#: superset/templates/superset/models/database/macros.html:4 +msgid "Test Connection" msgstr "" -#: superset/forms.py:489 -msgid "Whisker/outlier options" +#: superset/views/core.py:206 +msgid "Expose this DB in SQL Lab" msgstr "" -#: superset/forms.py:491 -msgid "Determines how whiskers and outliers are calculated." +#: superset/views/core.py:207 +msgid "" +"Allow users to run synchronous queries, this is the default and should " +"work well for queries that can be executed within a web request scope " +"(<~1 minute)" msgstr "" -#: superset/forms.py:494 -msgid "Tukey" +#: superset/views/core.py:211 +msgid "" +"Allow users to run queries, against an async backend. This assumes that " +"you have a Celery worker setup as well as a results backend." msgstr "" -#: superset/forms.py:495 -msgid "Min/max (no outliers)" +#: superset/views/core.py:215 +msgid "Allow CREATE TABLE AS option in SQL Lab" msgstr "" -#: superset/forms.py:496 -msgid "2/98 percentiles" +#: superset/views/core.py:216 +msgid "" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" +" SQL Lab" msgstr "" -#: superset/forms.py:497 -msgid "9/91 percentiles" +#: superset/views/core.py:220 +msgid "" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " +"table to be created in this schema" msgstr "" -#: superset/forms.py:501 -msgid "Ratio" +#: superset/views/core.py:234 +msgid "Expose in SQL Lab" msgstr "" -#: superset/forms.py:503 -msgid "Target aspect ratio for treemap tiles." +#: superset/views/core.py:235 +msgid "Allow CREATE TABLE AS" msgstr "" -#: superset/forms.py:506 superset/viz.py:856 superset/viz.py:905 -msgid "Number format" +#: superset/views/core.py:236 +msgid "Allow DML" msgstr "" -#: superset/forms.py:516 -msgid "" -"D3 format syntax for numbers https: //github.com/mbostock/\n" -"d3/wiki/Formatting" +#: superset/views/core.py:237 +msgid "CTAS Schema" msgstr "" -#: superset/forms.py:521 -msgid "Row limit" +#: superset/views/core.py:239 superset/views/core.py:353 +#: superset/views/core.py:449 superset/views/core.py:513 +msgid "Creator" msgstr "" -#: superset/forms.py:527 -msgid "Series limit" +#: superset/views/core.py:241 +msgid "SQLAlchemy URI" msgstr "" -#: superset/forms.py:530 -msgid "Limits the number of time series that get displayed" +#: superset/views/core.py:243 +msgid "Extra" msgstr "" -#: superset/forms.py:534 -msgid "Rolling" +#: superset/views/core.py:303 superset/views/core.py:526 +msgid "User" msgstr "" -#: superset/forms.py:537 -msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" +#: superset/views/core.py:304 +msgid "User Roles" msgstr "" -#: superset/forms.py:542 -msgid "Periods" +#: superset/views/core.py:305 +msgid "Database URL" msgstr "" -#: superset/forms.py:544 -msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" +#: superset/views/core.py:307 +msgid "Roles to grant" msgstr "" -#: superset/forms.py:549 superset/viz.py:1192 -msgid "Series" +#: superset/views/core.py:308 +msgid "Created On" msgstr "" -#: superset/forms.py:552 +#: superset/views/core.py:341 msgid "" -"Defines the grouping of entities. Each serie is shown as a specific color" -" on the chart and has a legend toggle" +"These parameters are generated dynamically when clicking the save or " +"overwrite button in the explore view. This JSON object is exposed here " +"for reference and for power users who may want to alter specific " +"parameters." msgstr "" -#: superset/forms.py:558 -msgid "Entity" +#: superset/views/core.py:346 +msgid "Duration (in seconds) of the caching timeout for this slice." msgstr "" -#: superset/forms.py:561 -msgid "This define the element to be plotted on the chart" +#: superset/views/core.py:354 +msgid "Dashboards" msgstr "" -#: superset/forms.py:564 -msgid "X Axis" +#: superset/views/core.py:357 +msgid "Last Modified" msgstr "" -#: superset/forms.py:567 -msgid "Metric assigned to the [X] axis" +#: superset/views/core.py:358 superset/views/core.py:448 +msgid "Owners" msgstr "" -#: superset/forms.py:570 -msgid "Y Axis" +#: superset/views/core.py:359 +msgid "Parameters" msgstr "" -#: superset/forms.py:573 -msgid "Metric assigned to the [Y] axis" +#: superset/views/core.py:360 superset/views/core.py:396 +msgid "Slice" msgstr "" -#: superset/forms.py:576 -msgid "Bubble Size" +#: superset/views/core.py:361 +msgid "Name" msgstr "" -#: superset/forms.py:581 -msgid "URL" +#: superset/views/core.py:363 +msgid "Visualization Type" msgstr "" -#: superset/forms.py:582 +#: superset/views/core.py:421 msgid "" -"The URL, this field is templated, so you can integrate {{ width }} and/or" -" {{ height }} in your URL string." -msgstr "" - -#: superset/forms.py:589 -msgid "X Axis Label" -msgstr "" - -#: superset/forms.py:593 -msgid "Y Axis Label" -msgstr "" - -#: superset/forms.py:597 -msgid "Custom WHERE clause" +"This json object describes the positioning of the widgets in the " +"dashboard. It is dynamically generated when adjusting the widgets size " +"and positions by using drag & drop in the dashboard view" msgstr "" -#: superset/forms.py:599 +#: superset/views/core.py:426 msgid "" -"The text in this box gets included in your query's WHERE clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." +"The css for individual dashboards can be altered here, or in the " +"dashboard view where changes are immediately visible" msgstr "" -#: superset/forms.py:606 -msgid "Custom HAVING clause" +#: superset/views/core.py:430 +msgid "To get a readable URL for your dashboard" msgstr "" -#: superset/forms.py:608 +#: superset/views/core.py:431 msgid "" -"The text in this box gets included in your query's HAVING clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." +"This JSON object is generated dynamically when clicking the save or " +"overwrite button in the dashboard view. It is exposed here for reference " +"and for power users who may want to alter specific parameters." msgstr "" -#: superset/forms.py:615 -msgid "Comparison Period Lag" +#: superset/views/core.py:436 +msgid "Owners is a list of users who can alter the dashboard." msgstr "" -#: superset/forms.py:616 -msgid "Based on granularity, number of time periods to compare against" +#: superset/views/core.py:444 superset/views/core.py:511 +msgid "Dashboard" msgstr "" -#: superset/forms.py:621 -msgid "Comparison suffix" +#: superset/views/core.py:445 superset/views/core.py:512 +msgid "Title" msgstr "" -#: superset/forms.py:622 -msgid "Suffix to apply after the percentage display" +#: superset/views/core.py:446 +msgid "Slug" msgstr "" -#: superset/forms.py:625 -msgid "Table Timestamp Format" +#: superset/views/core.py:447 +msgid "Slices" msgstr "" -#: superset/forms.py:628 -msgid "Timestamp Format" +#: superset/views/core.py:450 superset/views/core.py:514 +msgid "Modified" msgstr "" -#: superset/forms.py:631 -msgid "Series Height" +#: superset/views/core.py:451 +msgid "Position JSON" msgstr "" -#: superset/forms.py:634 -msgid "Pixel height of each series" +#: superset/views/core.py:452 +msgid "CSS" msgstr "" -#: superset/forms.py:637 -msgid "X axis format" +#: superset/views/core.py:453 +msgid "JSON Metadata" msgstr "" -#: superset/forms.py:640 superset/forms.py:655 -msgid "" -"D3 format syntax for y axis https: //github.com/mbostock/\n" -"d3/wiki/Formatting" +#: superset/views/core.py:454 +msgid "Underlying Tables" msgstr "" -#: superset/forms.py:645 -msgid "Y axis format" +#: superset/views/core.py:527 +msgid "Action" msgstr "" -#: superset/forms.py:660 -msgid "Markup Type" +#: superset/views/core.py:528 +msgid "dttm" msgstr "" -#: superset/forms.py:662 -msgid "markdown" +#: superset/views/core.py:2279 +msgid "SQL Editor" msgstr "" -#: superset/forms.py:663 -msgid "html" +#: superset/views/core.py:2288 +msgid "Query Search" msgstr "" -#: superset/forms.py:666 -msgid "Pick your favorite markup language" -msgstr "" +#~ msgid "Databases" +#~ msgstr "" -#: superset/forms.py:669 -msgid "Rotation" -msgstr "" +#~ msgid "Sources" +#~ msgstr "" -#: superset/forms.py:671 -msgid "random" -msgstr "" +#~ msgid "Tables" +#~ msgstr "" -#: superset/forms.py:672 -msgid "flat" -msgstr "" +#~ msgid "Druid Clusters" +#~ msgstr "" -#: superset/forms.py:673 -msgid "square" -msgstr "" +#~ msgid "Action Log" +#~ msgstr "" -#: superset/forms.py:676 -msgid "Rotation to apply to words in the cloud" -msgstr "" +#~ msgid "Security" +#~ msgstr "" -#: superset/forms.py:679 -msgid "Line Style" -msgstr "" +#~ msgid "Druid Datasources" +#~ msgstr "" -#: superset/forms.py:681 -msgid "linear" -msgstr "" +#~ msgid "CSS Templates" +#~ msgstr "" -#: superset/forms.py:682 -msgid "basis" -msgstr "" +#~ msgid "Documentation" +#~ msgstr "" -#: superset/forms.py:683 -msgid "cardinal" -msgstr "" +#~ msgid "Standalone version, use to embed anywhere" +#~ msgstr "" -#: superset/forms.py:684 -msgid "monotone" -msgstr "" +#~ msgid "Overwrite" +#~ msgstr "" -#: superset/forms.py:685 -msgid "step-before" -msgstr "" +#~ msgid "Save as" +#~ msgstr "" -#: superset/forms.py:686 -msgid "step-after" -msgstr "" +#~ msgid "Viz" +#~ msgstr "" -#: superset/forms.py:689 -msgid "Line interpolation as defined by d3.js" -msgstr "" +#~ msgid "The type of visualization to display" +#~ msgstr "" -#: superset/forms.py:692 -msgid "Code" -msgstr "" +#~ msgid "Metrics" +#~ msgstr "" -#: superset/forms.py:693 -msgid "Put your code here" -msgstr "" +#~ msgid "One or many metrics to display" +#~ msgstr "" -#: superset/forms.py:697 -msgid "Aggregation function" -msgstr "" +#~ msgid "Ordering" +#~ msgstr "" -#: superset/forms.py:702 -msgid "max" -msgstr "" +#~ msgid "Choose the metric" +#~ msgstr "" -#: superset/forms.py:704 -msgid "stdev" -msgstr "" +#~ msgid "Chart Style" +#~ msgstr "" -#: superset/forms.py:705 -msgid "var" -msgstr "" +#~ msgid "stack" +#~ msgstr "" -#: superset/forms.py:708 -msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" -msgstr "" +#~ msgid "stream" +#~ msgstr "" -#: superset/forms.py:713 -msgid "Font Size From" -msgstr "" +#~ msgid "expand" +#~ msgstr "" -#: superset/forms.py:715 -msgid "Font size for the smallest value in the list" -msgstr "" +#~ msgid "Color Scheme" +#~ msgstr "" -#: superset/forms.py:718 -msgid "Font Size To" -msgstr "" +#~ msgid "fire" +#~ msgstr "" -#: superset/forms.py:720 -msgid "Font size for the biggest value in the list" -msgstr "" +#~ msgid "blue_white_yellow" +#~ msgstr "" -#: superset/forms.py:723 -msgid "Range Filter" -msgstr "" +#~ msgid "white_black" +#~ msgstr "" -#: superset/forms.py:725 -msgid "Whether to display the time range interactive selector" -msgstr "" +#~ msgid "black_white" +#~ msgstr "" -#: superset/forms.py:729 -msgid "Data Table" -msgstr "" +#~ msgid "Normalize Across" +#~ msgstr "" -#: superset/forms.py:731 -msgid "Whether to display the interactive data table" -msgstr "" +#~ msgid "heatmap" +#~ msgstr "" -#: superset/forms.py:734 -msgid "Search Box" -msgstr "" +#~ msgid "x" +#~ msgstr "" -#: superset/forms.py:736 -msgid "Whether to include a client side search box" -msgstr "" +#~ msgid "y" +#~ msgstr "" -#: superset/forms.py:740 -msgid "Show Bubbles" -msgstr "" +#~ msgid "" +#~ msgstr "" -#: superset/forms.py:742 -msgid "Whether to display bubbles on top of countries" -msgstr "" +#~ msgid "Color Scale" +#~ msgstr "" -#: superset/forms.py:746 -msgid "Legend" -msgstr "" +#~ msgid "series" +#~ msgstr "" -#: superset/forms.py:748 -msgid "Whether to display the legend (toggles)" -msgstr "" +#~ msgid "overall" +#~ msgstr "" -#: superset/forms.py:751 -msgid "X bounds" -msgstr "" +#~ msgid "change" +#~ msgstr "" -#: superset/forms.py:753 -msgid "Whether to display the min and max values of the X axis" -msgstr "" +#~ msgid "Defines how the color are attributed." +#~ msgstr "" -#: superset/forms.py:757 -msgid "Rich Tooltip" -msgstr "" +#~ msgid "Rendering" +#~ msgstr "" -#: superset/forms.py:759 -msgid "The rich tooltip shows a list of all series for that point in time" -msgstr "" +#~ msgid "pixelated (Sharp)" +#~ msgstr "" -#: superset/forms.py:764 -msgid "Y Axis Zero" -msgstr "" +#~ msgid "auto (Smooth)" +#~ msgstr "" -#: superset/forms.py:766 -msgid "Force the Y axis to start at 0 instead of the minimum value" -msgstr "" +#~ msgid "XScale Interval" +#~ msgstr "" -#: superset/forms.py:771 -msgid "Y Log" -msgstr "" +#~ msgid "Number of step to take between ticks when printing the x scale" +#~ msgstr "" -#: superset/forms.py:773 -msgid "Use a log scale for the Y axis" -msgstr "" +#~ msgid "YScale Interval" +#~ msgstr "" -#: superset/forms.py:776 -msgid "X Log" -msgstr "" +#~ msgid "Number of step to take between ticks when printing the y scale" +#~ msgstr "" -#: superset/forms.py:778 -msgid "Use a log scale for the X axis" -msgstr "" +#~ msgid "Stacked Bars" +#~ msgstr "" -#: superset/forms.py:781 -msgid "Donut" -msgstr "" +#~ msgid "Extra Controls" +#~ msgstr "" -#: superset/forms.py:783 -msgid "Do you want a donut or a pie?" -msgstr "" +#~ msgid "Reduce X ticks" +#~ msgstr "" -#: superset/forms.py:786 -msgid "Contribution" -msgstr "" +#~ msgid "Include Series" +#~ msgstr "" -#: superset/forms.py:788 -msgid "Compute the contribution to the total" -msgstr "" +#~ msgid "Include series name as an axis" +#~ msgstr "" -#: superset/forms.py:791 -msgid "Period Ratio" -msgstr "" +#~ msgid "Color Metric" +#~ msgstr "" -#: superset/forms.py:794 -msgid "" -"[integer] Number of period to compare against, this is relative to the " -"granularity selected" -msgstr "" +#~ msgid "A metric to use for color" +#~ msgstr "" -#: superset/forms.py:799 -msgid "Time Shift" -msgstr "" +#~ msgid "Country Field Type" +#~ msgstr "" -#: superset/forms.py:801 -msgid "" -"Overlay a timeseries from a relative time period. Expects relative time " -"delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days" -msgstr "" +#~ msgid "Full name" +#~ msgstr "" -#: superset/forms.py:808 -msgid "Subheader" -msgstr "" +#~ msgid "code International Olympic Committee (cioc)" +#~ msgstr "" -#: superset/forms.py:809 -msgid "Description text that shows up below your Big Number" -msgstr "" +#~ msgid "code ISO 3166-1 alpha-2 (cca2)" +#~ msgstr "" -#: superset/forms.py:816 -msgid "" -"'count' is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." -msgstr "" +#~ msgid "code ISO 3166-1 alpha-3 (cca3)" +#~ msgstr "" -#: superset/forms.py:832 -msgid "Base layer map style" -msgstr "" +#~ msgid "Group by" +#~ msgstr "" -#: superset/forms.py:835 -msgid "Clustering Radius" -msgstr "" +#~ msgid "One or many fields to group by" +#~ msgstr "" -#: superset/forms.py:848 -msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." -msgstr "" +#~ msgid "Columns" +#~ msgstr "" -#: superset/forms.py:854 -msgid "Point Radius" -msgstr "" +#~ msgid "One or many fields to pivot as columns" +#~ msgstr "" -#: superset/forms.py:857 -msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or 'Auto', which scales the point based on the largest" -" cluster" -msgstr "" +#~ msgid "Columns to display" +#~ msgstr "" -#: superset/forms.py:863 -msgid "Point Radius Unit" -msgstr "" +#~ msgid "X" +#~ msgstr "" -#: superset/forms.py:870 -msgid "The unit of measure for the specified point radius" -msgstr "" +#~ msgid "Y" +#~ msgstr "" -#: superset/forms.py:873 -msgid "Opacity" -msgstr "" +#~ msgid "Origin" +#~ msgstr "" -#: superset/forms.py:875 -msgid "Opacity of all clusters, points, and labels. Between 0 and 1." -msgstr "" +#~ msgid "default" +#~ msgstr "" -#: superset/forms.py:880 -msgid "Zoom" -msgstr "" +#~ msgid "now" +#~ msgstr "" -#: superset/forms.py:883 -msgid "Zoom level of the map" -msgstr "" +#~ msgid "Bottom Margin" +#~ msgstr "" -#: superset/forms.py:887 -msgid "Default latitude" -msgstr "" +#~ msgid "Bottom marging, in pixels, allowing for more room for axis labels" +#~ msgstr "" -#: superset/forms.py:889 -msgid "Latitude of default viewport" -msgstr "" +#~ msgid "Time Granularity" +#~ msgstr "" -#: superset/forms.py:893 -msgid "Default longitude" -msgstr "" +#~ msgid "all" +#~ msgstr "" -#: superset/forms.py:895 -msgid "Longitude of default viewport" -msgstr "" +#~ msgid "5 seconds" +#~ msgstr "" -#: superset/forms.py:899 -msgid "Live render" -msgstr "" +#~ msgid "30 seconds" +#~ msgstr "" -#: superset/forms.py:901 -msgid "Points and clusters will update as viewport is being changed" -msgstr "" +#~ msgid "1 minute" +#~ msgstr "" -#: superset/forms.py:905 -msgid "RGB Color" -msgstr "" +#~ msgid "5 minutes" +#~ msgstr "" -#: superset/forms.py:915 -msgid "The color for points and clusters in RGB" -msgstr "" +#~ msgid "1 hour" +#~ msgstr "" -#: superset/forms.py:978 -msgid "SQL" -msgstr "" +#~ msgid "6 hour" +#~ msgstr "" -#: superset/forms.py:980 -msgid "This section exposes ways to include snippets of SQL in your query" -msgstr "" +#~ msgid "1 day" +#~ msgstr "" -#: superset/forms.py:991 -msgid "Time Grain" -msgstr "" +#~ msgid "7 days" +#~ msgstr "" -#: superset/forms.py:994 -msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity.The options here are defined on a per database engine basis " -"in the Superset source code" -msgstr "" +#~ msgid "Domain" +#~ msgstr "" -#: superset/forms.py:1027 superset/forms.py:1031 -msgid "Filter 1" -msgstr "" +#~ msgid "The time unit used for the grouping of blocks" +#~ msgstr "" -#: superset/forms.py:1036 -msgid "Super" -msgstr "" +#~ msgid "Subdomain" +#~ msgstr "" -#: superset/forms.py:1040 -msgid "Time" -msgstr "" +#~ msgid "min" +#~ msgstr "" -#: superset/forms.py:1045 -msgid "Time related form attributes" -msgstr "" +#~ msgid "Link Length" +#~ msgstr "" -#: superset/models.py:409 -msgid "quarter" -msgstr "" +#~ msgid "Link length in the force layout" +#~ msgstr "" -#: superset/models.py:410 -msgid "week_ending_saturday" -msgstr "" +#~ msgid "Charge" +#~ msgstr "" -#: superset/models.py:412 -msgid "week_start_sunday" -msgstr "" +#~ msgid "Charge in the force layout" +#~ msgstr "" -#: superset/models.py:433 -msgid "second" -msgstr "" +#~ msgid "Resample Rule" +#~ msgstr "" -#: superset/models.py:434 -msgid "minute" -msgstr "" +#~ msgid "1T" +#~ msgstr "" -#: superset/models.py:620 -msgid "" -"Datetime column not provided as part table configuration and is required " -"by this type of chart" -msgstr "" +#~ msgid "1H" +#~ msgstr "" -#: superset/models.py:1328 -msgid "No data was returned." -msgstr "" +#~ msgid "1D" +#~ msgstr "" -#: superset/views.py:203 -msgid "" -"Whether to make this column available as a [Time Granularity] option, " -"column has to be DATETIME or DATETIME-like" -msgstr "" +#~ msgid "7D" +#~ msgstr "" -#: superset/views.py:230 superset/views.py:259 -msgid "Column" -msgstr "" +#~ msgid "1M" +#~ msgstr "" -#: superset/views.py:231 superset/views.py:296 superset/views.py:336 -msgid "Verbose Name" -msgstr "" +#~ msgid "1AS" +#~ msgstr "" -#: superset/views.py:232 superset/views.py:295 superset/views.py:335 -#: superset/views.py:537 superset/views.py:691 -msgid "Description" -msgstr "" +#~ msgid "Pandas resample rule" +#~ msgstr "" -#: superset/views.py:233 superset/views.py:262 -msgid "Groupable" -msgstr "" +#~ msgid "Resample How" +#~ msgstr "" -#: superset/views.py:234 superset/views.py:263 -msgid "Filterable" -msgstr "" +#~ msgid "mean" +#~ msgstr "" -#: superset/views.py:235 superset/views.py:299 superset/views.py:433 -#: superset/views.py:543 -msgid "Table" -msgstr "" +#~ msgid "sum" +#~ msgstr "" -#: superset/views.py:236 superset/views.py:264 -msgid "Count Distinct" -msgstr "" +#~ msgid "median" +#~ msgstr "" -#: superset/views.py:237 superset/views.py:265 -msgid "Sum" -msgstr "" +#~ msgid "Pandas resample how" +#~ msgstr "" -#: superset/views.py:238 superset/views.py:266 -msgid "Min" -msgstr "" +#~ msgid "Resample Fill Method" +#~ msgstr "" -#: superset/views.py:239 superset/views.py:267 -msgid "Max" -msgstr "" +#~ msgid "ffill" +#~ msgstr "" -#: superset/views.py:240 -msgid "Expression" -msgstr "" +#~ msgid "bfill" +#~ msgstr "" -#: superset/views.py:241 -msgid "Is temporal" -msgstr "" +#~ msgid "Pandas resample fill method" +#~ msgstr "" -#: superset/views.py:242 -msgid "Datetime Format" -msgstr "" +#~ msgid "Since" +#~ msgstr "" -#: superset/views.py:243 -msgid "Database Expression" -msgstr "" +#~ msgid "1 hour ago" +#~ msgstr "" -#: superset/views.py:260 superset/views.py:297 superset/views.py:337 -#: superset/views.py:568 -msgid "Type" -msgstr "" +#~ msgid "12 hours ago" +#~ msgstr "" -#: superset/views.py:261 superset/views.py:536 -msgid "Datasource" -msgstr "" +#~ msgid "1 day ago" +#~ msgstr "" -#: superset/views.py:286 superset/views.py:328 -msgid "" -"Whether the access to this metric is restricted to certain roles. Only " -"roles with the permission 'metric access on XXX (the name of this " -"metric)' are allowed to access this metric" -msgstr "" +#~ msgid "7 days ago" +#~ msgstr "" -#: superset/views.py:298 -msgid "SQL Expression" -msgstr "" +#~ msgid "28 days ago" +#~ msgstr "" -#: superset/views.py:338 superset/views.py:656 -msgid "JSON" -msgstr "" +#~ msgid "90 days ago" +#~ msgstr "" -#: superset/views.py:339 -msgid "Druid Datasource" -msgstr "" +#~ msgid "1 year ago" +#~ msgstr "" -#: superset/views.py:378 superset/views.py:435 -msgid "Database" -msgstr "" +#~ msgid "Until" +#~ msgstr "" -#: superset/views.py:379 -msgid "SQL link" -msgstr "" +#~ msgid "Max Bubble Size" +#~ msgstr "" -#: superset/views.py:380 superset/views.py:534 superset/views.py:610 -msgid "Creator" -msgstr "" +#~ msgid "Whisker/outlier options" +#~ msgstr "" -#: superset/views.py:381 superset/views.py:436 -msgid "Last Changed" -msgstr "" +#~ msgid "Determines how whiskers and outliers are calculated." +#~ msgstr "" -#: superset/views.py:382 -msgid "SQLAlchemy URI" -msgstr "" +#~ msgid "Tukey" +#~ msgstr "" -#: superset/views.py:383 superset/views.py:442 superset/views.py:533 -#: superset/views.py:697 -msgid "Cache Timeout" -msgstr "" +#~ msgid "Min/max (no outliers)" +#~ msgstr "" -#: superset/views.py:384 -msgid "Extra" -msgstr "" +#~ msgid "2/98 percentiles" +#~ msgstr "" -#: superset/views.py:434 -msgid "Changed By" -msgstr "" +#~ msgid "9/91 percentiles" +#~ msgstr "" -#: superset/views.py:437 -msgid "SQL Editor" -msgstr "" +#~ msgid "Ratio" +#~ msgstr "" -#: superset/views.py:438 superset/views.py:693 -msgid "Is Featured" -msgstr "" +#~ msgid "Target aspect ratio for treemap tiles." +#~ msgstr "" -#: superset/views.py:439 -msgid "Schema" -msgstr "" +#~ msgid "Number format" +#~ msgstr "" -#: superset/views.py:440 superset/views.py:695 -msgid "Default Endpoint" -msgstr "" +#~ msgid "Row limit" +#~ msgstr "" -#: superset/views.py:441 -msgid "Offset" -msgstr "" +#~ msgid "Series limit" +#~ msgstr "" -#: superset/views.py:482 superset/views.py:690 -msgid "Cluster" -msgstr "" +#~ msgid "Limits the number of time series that get displayed" +#~ msgstr "" -#: superset/views.py:483 -msgid "Coordinator Host" -msgstr "" +#~ msgid "Rolling" +#~ msgstr "" -#: superset/views.py:484 -msgid "Coordinator Port" -msgstr "" +#~ msgid "Periods" +#~ msgstr "" -#: superset/views.py:485 -msgid "Coordinator Endpoint" -msgstr "" +#~ msgid "Series" +#~ msgstr "" -#: superset/views.py:486 -msgid "Broker Host" -msgstr "" +#~ msgid "Entity" +#~ msgstr "" -#: superset/views.py:487 -msgid "Broker Port" -msgstr "" +#~ msgid "This define the element to be plotted on the chart" +#~ msgstr "" -#: superset/views.py:488 -msgid "Broker Endpoint" -msgstr "" +#~ msgid "X Axis" +#~ msgstr "" -#: superset/views.py:522 -msgid "" -"These parameters are generated dynamically when clicking the save or " -"overwrite button in the explore view. This JSON object is exposed here " -"for reference and for power users who may want to alter specific " -"parameters." -msgstr "" +#~ msgid "Metric assigned to the [X] axis" +#~ msgstr "" -#: superset/views.py:527 -msgid "Duration (in seconds) of the caching timeout for this slice." -msgstr "" +#~ msgid "Y Axis" +#~ msgstr "" -#: superset/templates/superset/welcome.html:26 superset/views.py:535 -msgid "Dashboards" -msgstr "" +#~ msgid "Metric assigned to the [Y] axis" +#~ msgstr "" -#: superset/views.py:538 -msgid "Last Modified" -msgstr "" +#~ msgid "Bubble Size" +#~ msgstr "" -#: superset/views.py:539 superset/views.py:609 -msgid "Owners" -msgstr "" +#~ msgid "URL" +#~ msgstr "" -#: superset/views.py:540 -msgid "Parameters" -msgstr "" +#~ msgid "X Axis Label" +#~ msgstr "" -#: superset/views.py:541 superset/views.py:569 -msgid "Slice" -msgstr "" +#~ msgid "Y Axis Label" +#~ msgstr "" -#: superset/views.py:542 -msgid "Name" -msgstr "" +#~ msgid "Custom WHERE clause" +#~ msgstr "" -#: superset/views.py:544 superset/views.py:570 -msgid "Visualization Type" -msgstr "" +#~ msgid "Custom HAVING clause" +#~ msgstr "" -#: superset/views.py:586 -msgid "" -"This json object describes the positioning of the widgets in the " -"dashboard. It is dynamically generated when adjusting the widgets size " -"and positions by using drag & drop in the dashboard view" -msgstr "" +#~ msgid "Comparison Period Lag" +#~ msgstr "" -#: superset/views.py:591 -msgid "" -"The css for individual dashboards can be altered here, or in the " -"dashboard view where changes are immediately visible" -msgstr "" +#~ msgid "Based on granularity, number of time periods to compare against" +#~ msgstr "" -#: superset/views.py:595 -msgid "To get a readable URL for your dashboard" -msgstr "" +#~ msgid "Comparison suffix" +#~ msgstr "" -#: superset/views.py:596 -msgid "" -"This JSON object is generated dynamically when clicking the save or " -"overwrite button in the dashboard view. It is exposed here for reference " -"and for power users who may want to alter specific parameters." -msgstr "" +#~ msgid "Suffix to apply after the percentage display" +#~ msgstr "" -#: superset/views.py:601 -msgid "Owners is a list of users who can alter the dashboard." -msgstr "" +#~ msgid "Table Timestamp Format" +#~ msgstr "" -#: superset/views.py:605 -msgid "Dashboard" -msgstr "" +#~ msgid "Timestamp Format" +#~ msgstr "" -#: superset/views.py:606 -msgid "Title" -msgstr "" +#~ msgid "Series Height" +#~ msgstr "" -#: superset/views.py:607 -msgid "Slug" -msgstr "" +#~ msgid "Pixel height of each series" +#~ msgstr "" -#: superset/views.py:608 -msgid "Slices" -msgstr "" +#~ msgid "X axis format" +#~ msgstr "" -#: superset/views.py:611 -msgid "Modified" -msgstr "" +#~ msgid "Y axis format" +#~ msgstr "" -#: superset/views.py:612 -msgid "Position JSON" -msgstr "" +#~ msgid "Markup Type" +#~ msgstr "" -#: superset/views.py:613 -msgid "CSS" -msgstr "" +#~ msgid "markdown" +#~ msgstr "" -#: superset/views.py:614 -msgid "JSON Metadata" -msgstr "" +#~ msgid "html" +#~ msgstr "" -#: superset/views.py:615 -msgid "Underlying Tables" -msgstr "" +#~ msgid "Pick your favorite markup language" +#~ msgstr "" -#: superset/views.py:653 -msgid "User" -msgstr "" +#~ msgid "Rotation" +#~ msgstr "" -#: superset/views.py:654 -msgid "Action" -msgstr "" +#~ msgid "random" +#~ msgstr "" -#: superset/views.py:655 -msgid "dttm" -msgstr "" +#~ msgid "flat" +#~ msgstr "" + +#~ msgid "square" +#~ msgstr "" + +#~ msgid "Rotation to apply to words in the cloud" +#~ msgstr "" + +#~ msgid "Line Style" +#~ msgstr "" + +#~ msgid "linear" +#~ msgstr "" + +#~ msgid "basis" +#~ msgstr "" + +#~ msgid "cardinal" +#~ msgstr "" + +#~ msgid "monotone" +#~ msgstr "" + +#~ msgid "step-before" +#~ msgstr "" + +#~ msgid "step-after" +#~ msgstr "" + +#~ msgid "Line interpolation as defined by d3.js" +#~ msgstr "" + +#~ msgid "Code" +#~ msgstr "" + +#~ msgid "Put your code here" +#~ msgstr "" + +#~ msgid "Aggregation function" +#~ msgstr "" + +#~ msgid "max" +#~ msgstr "" + +#~ msgid "stdev" +#~ msgstr "" + +#~ msgid "var" +#~ msgstr "" + +#~ msgid "Font Size From" +#~ msgstr "" + +#~ msgid "Font size for the smallest value in the list" +#~ msgstr "" + +#~ msgid "Font Size To" +#~ msgstr "" + +#~ msgid "Font size for the biggest value in the list" +#~ msgstr "" + +#~ msgid "Range Filter" +#~ msgstr "" -#: superset/views.py:683 -msgid "Timezone offset (in hours) for this datasource" -msgstr "" +#~ msgid "Whether to display the time range interactive selector" +#~ msgstr "" -#: superset/views.py:689 -msgid "Data Source" -msgstr "" +#~ msgid "Data Table" +#~ msgstr "" -#: superset/views.py:692 -msgid "Owner" -msgstr "" +#~ msgid "Whether to display the interactive data table" +#~ msgstr "" -#: superset/views.py:694 -msgid "Is Hidden" -msgstr "" +#~ msgid "Search Box" +#~ msgstr "" -#: superset/views.py:696 -msgid "Time Offset" -msgstr "" +#~ msgid "Whether to include a client side search box" +#~ msgstr "" -#: superset/views.py:1176 -msgid "This view requires the `all_datasource_access` permission" -msgstr "" +#~ msgid "Show Bubbles" +#~ msgstr "" -#: superset/views.py:1249 -msgid "Refresh Druid Metadata" -msgstr "" +#~ msgid "Whether to display bubbles on top of countries" +#~ msgstr "" -#: superset/viz.py:367 -msgid "Table View" -msgstr "" +#~ msgid "Legend" +#~ msgstr "" -#: superset/viz.py:370 -msgid "GROUP BY" -msgstr "" +#~ msgid "Whether to display the legend (toggles)" +#~ msgstr "" -#: superset/viz.py:371 -msgid "Use this section if you want a query that aggregates" -msgstr "" +#~ msgid "X bounds" +#~ msgstr "" -#: superset/viz.py:374 -msgid "NOT GROUPED BY" -msgstr "" +#~ msgid "Whether to display the min and max values of the X axis" +#~ msgstr "" -#: superset/viz.py:375 -msgid "Use this section if you want to query atomic rows" -msgstr "" +#~ msgid "Rich Tooltip" +#~ msgstr "" -#: superset/viz.py:378 -msgid "Options" -msgstr "" +#~ msgid "The rich tooltip shows a list of all series for that point in time" +#~ msgstr "" -#: superset/viz.py:429 -msgid "Pivot Table" -msgstr "" +#~ msgid "Y Axis Zero" +#~ msgstr "" -#: superset/viz.py:491 -msgid "Markup" -msgstr "" +#~ msgid "Force the Y axis to start at 0 instead of the minimum value" +#~ msgstr "" -#: superset/viz.py:519 -msgid "Word Cloud" -msgstr "" +#~ msgid "Y Log" +#~ msgstr "" -#: superset/viz.py:551 -msgid "Treemap" -msgstr "" +#~ msgid "Use a log scale for the Y axis" +#~ msgstr "" -#: superset/viz.py:561 superset/viz.py:676 superset/viz.py:783 superset/viz.py:948 -#: superset/viz.py:1093 superset/viz.py:1122 superset/viz.py:1177 -#: superset/viz.py:1682 -msgid "Chart Options" -msgstr "" +#~ msgid "X Log" +#~ msgstr "" -#: superset/viz.py:595 -msgid "Calendar Heatmap" -msgstr "" +#~ msgid "Use a log scale for the X axis" +#~ msgstr "" -#: superset/viz.py:666 -msgid "Box Plot" -msgstr "" +#~ msgid "Donut" +#~ msgstr "" -#: superset/viz.py:773 -msgid "Bubble Chart" -msgstr "" +#~ msgid "Do you want a donut or a pie?" +#~ msgstr "" -#: superset/viz.py:842 -msgid "Big Number with Trendline" -msgstr "" +#~ msgid "Contribution" +#~ msgstr "" -#: superset/viz.py:892 -msgid "Big Number" -msgstr "" +#~ msgid "Compute the contribution to the total" +#~ msgstr "" -#: superset/viz.py:938 -msgid "Time Series - Line Chart" -msgstr "" +#~ msgid "Period Ratio" +#~ msgstr "" -#: superset/viz.py:958 -msgid "Advanced Analytics" -msgstr "" +#~ msgid "Time Shift" +#~ msgstr "" -#: superset/viz.py:959 -msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" -msgstr "" +#~ msgid "Subheader" +#~ msgstr "" -#: superset/viz.py:1091 -msgid "Time Series - Bar Chart" -msgstr "" +#~ msgid "Description text that shows up below your Big Number" +#~ msgstr "" -#: superset/viz.py:1111 -msgid "Time Series - Percent Change" -msgstr "" +#~ msgid "Base layer map style" +#~ msgstr "" -#: superset/viz.py:1119 -msgid "Time Series - Stacked" -msgstr "" +#~ msgid "Clustering Radius" +#~ msgstr "" -#: superset/viz.py:1138 -msgid "Distribution - NVD3 - Pie Chart" -msgstr "" +#~ msgid "Point Radius" +#~ msgstr "" -#: superset/viz.py:1174 -msgid "Distribution - Bar Chart" -msgstr "" +#~ msgid "Point Radius Unit" +#~ msgstr "" -#: superset/viz.py:1195 -msgid "Breakdowns" -msgstr "" +#~ msgid "The unit of measure for the specified point radius" +#~ msgstr "" -#: superset/viz.py:1196 -msgid "Defines how each series is broken down" -msgstr "" +#~ msgid "Opacity" +#~ msgstr "" -#: superset/viz.py:1261 -msgid "Sunburst" -msgstr "" +#~ msgid "Opacity of all clusters, points, and labels. Between 0 and 1." +#~ msgstr "" -#: superset/viz.py:1276 -msgid "Primary Metric" -msgstr "" +#~ msgid "Zoom" +#~ msgstr "" -#: superset/viz.py:1277 -msgid "The primary metric is used to define the arc segment sizes" -msgstr "" +#~ msgid "Zoom level of the map" +#~ msgstr "" -#: superset/viz.py:1282 -msgid "Secondary Metric" -msgstr "" +#~ msgid "Default latitude" +#~ msgstr "" -#: superset/viz.py:1283 -msgid "" -"This secondary metric is used to define the color as a ratio against the " -"primary metric. If the two metrics match, color is mapped level groups" -msgstr "" +#~ msgid "Latitude of default viewport" +#~ msgstr "" -#: superset/viz.py:1289 -msgid "Hierarchy" -msgstr "" +#~ msgid "Default longitude" +#~ msgstr "" -#: superset/viz.py:1290 -msgid "This defines the level of the hierarchy" -msgstr "" +#~ msgid "Longitude of default viewport" +#~ msgstr "" -#: superset/viz.py:1327 -msgid "Sankey" -msgstr "" +#~ msgid "Live render" +#~ msgstr "" -#: superset/viz.py:1340 superset/viz.py:1410 -msgid "Source / Target" -msgstr "" +#~ msgid "Points and clusters will update as viewport is being changed" +#~ msgstr "" -#: superset/viz.py:1341 superset/viz.py:1411 -msgid "Choose a source and a target" -msgstr "" +#~ msgid "RGB Color" +#~ msgstr "" -#: superset/viz.py:1391 -msgid "Directed Force Layout" -msgstr "" +#~ msgid "The color for points and clusters in RGB" +#~ msgstr "" -#: superset/viz.py:1402 -msgid "Force Layout" -msgstr "" +#~ msgid "SQL" +#~ msgstr "" -#: superset/viz.py:1433 -msgid "World Map" -msgstr "" +#~ msgid "This section exposes ways to include snippets of SQL in your query" +#~ msgstr "" -#: superset/viz.py:1444 -msgid "Bubbles" -msgstr "" +#~ msgid "Time Grain" +#~ msgstr "" -#: superset/viz.py:1453 -msgid "Country Field" -msgstr "" +#~ msgid "Filter 1" +#~ msgstr "" -#: superset/viz.py:1454 -msgid "3 letter code of the country" -msgstr "" +#~ msgid "Super" +#~ msgstr "" -#: superset/viz.py:1457 -msgid "Metric for color" -msgstr "" +#~ msgid "Time" +#~ msgstr "" -#: superset/viz.py:1458 -msgid "Metric that defines the color of the country" -msgstr "" +#~ msgid "Time related form attributes" +#~ msgstr "" -#: superset/viz.py:1461 -msgid "Bubble size" -msgstr "" +#~ msgid "SQL link" +#~ msgstr "" -#: superset/viz.py:1462 -msgid "Metric that defines the size of the bubble" -msgstr "" +#~ msgid "Is Featured" +#~ msgstr "" -#: superset/templates/superset/explore.html:147 superset/viz.py:1507 -msgid "Filters" -msgstr "" +#~ msgid "This view requires the `all_datasource_access` permission" +#~ msgstr "" -#: superset/viz.py:1519 -msgid "Filter fields" -msgstr "" +#~ msgid "Refresh Druid Metadata" +#~ msgstr "" -#: superset/viz.py:1520 -msgid "The fields you want to filter on" -msgstr "" +#~ msgid "GROUP BY" +#~ msgstr "" -#: superset/viz.py:1555 -msgid "iFrame" -msgstr "" +#~ msgid "Use this section if you want a query that aggregates" +#~ msgstr "" -#: superset/viz.py:1573 -msgid "Parallel Coordinates" -msgstr "" +#~ msgid "NOT GROUPED BY" +#~ msgstr "" -#: superset/viz.py:1609 -msgid "Heatmap" -msgstr "" +#~ msgid "Use this section if you want to query atomic rows" +#~ msgstr "" -#: superset/viz.py:1622 -msgid "Heatmap Options" -msgstr "" +#~ msgid "Options" +#~ msgstr "" -#: superset/viz.py:1677 -msgid "Horizon Charts" -msgstr "" +#~ msgid "Chart Options" +#~ msgstr "" -#: superset/viz.py:1693 -msgid "Mapbox" -msgstr "" +#~ msgid "Advanced Analytics" +#~ msgstr "" -#: superset/viz.py:1707 -msgid "Points" -msgstr "" +#~ msgid "Breakdowns" +#~ msgstr "" -#: superset/viz.py:1713 -msgid "Labelling" -msgstr "" +#~ msgid "Defines how each series is broken down" +#~ msgstr "" -#: superset/viz.py:1719 -msgid "Visual Tweaks" -msgstr "" +#~ msgid "Primary Metric" +#~ msgstr "" -#: superset/viz.py:1726 -msgid "Viewport" -msgstr "" +#~ msgid "The primary metric is used to define the arc segment sizes" +#~ msgstr "" -#: superset/viz.py:1736 -msgid "Longitude" -msgstr "" +#~ msgid "Secondary Metric" +#~ msgstr "" -#: superset/viz.py:1737 -msgid "Column containing longitude data" -msgstr "" +#~ msgid "Hierarchy" +#~ msgstr "" -#: superset/viz.py:1740 -msgid "Latitude" -msgstr "" +#~ msgid "This defines the level of the hierarchy" +#~ msgstr "" -#: superset/viz.py:1741 -msgid "Column containing latitude data" -msgstr "" +#~ msgid "Source / Target" +#~ msgstr "" -#: superset/viz.py:1744 -msgid "Cluster label aggregator" -msgstr "" +#~ msgid "Choose a source and a target" +#~ msgstr "" -#: superset/viz.py:1745 -msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." -msgstr "" +#~ msgid "Force Layout" +#~ msgstr "" -#: superset/viz.py:1750 -msgid "Tooltip" -msgstr "" +#~ msgid "Bubbles" +#~ msgstr "" -#: superset/viz.py:1751 -msgid "Show a tooltip when hovering over points and clusters describing the label" -msgstr "" +#~ msgid "Country Field" +#~ msgstr "" -#: superset/viz.py:1756 -msgid "" -"One or many fields to group by. If grouping, latitude and longitude " -"columns must be present." -msgstr "" +#~ msgid "3 letter code of the country" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:36 -msgid "Profile" -msgstr "" +#~ msgid "Metric for color" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:37 -msgid "Logout" -msgstr "" +#~ msgid "Metric that defines the color of the country" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:42 -msgid "Login" -msgstr "" +#~ msgid "Bubble size" +#~ msgstr "" -#: superset/templates/superset/explore.html:34 -#: superset/templates/superset/explore.html:241 -msgid "Query" -msgstr "" +#~ msgid "Metric that defines the size of the bubble" +#~ msgstr "" -#: superset/templates/superset/explore.html:43 -#: superset/templates/superset/explore.html:306 -msgid "Save" -msgstr "" +#~ msgid "Filter fields" +#~ msgstr "" -#: superset/templates/superset/explore.html:72 -msgid "Force refresh" -msgstr "" +#~ msgid "The fields you want to filter on" +#~ msgstr "" -#: superset/templates/superset/explore.html:77 -msgid "Short URL" -msgstr "" +#~ msgid "Heatmap Options" +#~ msgstr "" -#: superset/templates/superset/explore.html:79 -msgid "Generate an embeddable iframe" -msgstr "" +#~ msgid "Points" +#~ msgstr "" -#: superset/templates/superset/explore.html:82 -msgid "Export to .json" -msgstr "" +#~ msgid "Labelling" +#~ msgstr "" -#: superset/templates/superset/explore.html:86 -msgid "Export to .csv format" -msgstr "" +#~ msgid "Visual Tweaks" +#~ msgstr "" -#: superset/templates/superset/explore.html:92 -msgid "Query timer" -msgstr "" +#~ msgid "Viewport" +#~ msgstr "" -#: superset/templates/superset/explore.html:94 -msgid "0 sec" -msgstr "" +#~ msgid "Longitude" +#~ msgstr "" -#: superset/templates/superset/explore.html:100 -msgid "View database query" -msgstr "" +#~ msgid "Column containing longitude data" +#~ msgstr "" -#: superset/templates/superset/explore.html:101 -msgid "query" -msgstr "" +#~ msgid "Latitude" +#~ msgstr "" -#: superset/templates/superset/explore.html:150 -msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" -msgstr "" +#~ msgid "Column containing latitude data" +#~ msgstr "" -#: superset/templates/superset/explore.html:168 -msgid "Add filter" -msgstr "" +#~ msgid "Cluster label aggregator" +#~ msgstr "" -#: superset/templates/superset/explore.html:247 -#: superset/templates/superset/explore.html:265 -msgid "Close" -msgstr "" +#~ msgid "Tooltip" +#~ msgstr "" -#: superset/templates/superset/explore.html:259 -msgid "Datasource Description" -msgstr "" +#~ msgid "Query" +#~ msgstr "" -#: superset/templates/superset/explore.html:277 -msgid "Save a Slice" -msgstr "" +#~ msgid "Save" +#~ msgstr "" -#: superset/templates/superset/explore.html:309 -msgid "Save & go to dashboard" -msgstr "" +#~ msgid "Force refresh" +#~ msgstr "" -#: superset/templates/superset/explore.html:312 -msgid "Cancel" -msgstr "" +#~ msgid "Short URL" +#~ msgstr "" -#: superset/templates/superset/sql.html:12 -msgid "Run!" -msgstr "" +#~ msgid "Generate an embeddable iframe" +#~ msgstr "" -#: superset/templates/superset/sql.html:13 -msgid "Create View" -msgstr "" +#~ msgid "Export to .json" +#~ msgstr "" -#: superset/templates/superset/welcome.html:8 -#: superset/templates/superset/welcome.html:14 -msgid "Welcome!" -msgstr "" +#~ msgid "Export to .csv format" +#~ msgstr "" -#: superset/templates/superset/models/database/macros.html:4 -msgid "Test Connection" -msgstr "" +#~ msgid "Query timer" +#~ msgstr "" -#~ msgid "Databases" +#~ msgid "0 sec" #~ msgstr "" -#~ msgid "Sources" +#~ msgid "View database query" #~ msgstr "" -#~ msgid "Tables" +#~ msgid "query" #~ msgstr "" -#~ msgid "Druid Clusters" +#~ msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" #~ msgstr "" -#~ msgid "Action Log" +#~ msgid "Add filter" #~ msgstr "" -#~ msgid "Security" +#~ msgid "Close" #~ msgstr "" -#~ msgid "Druid Datasources" +#~ msgid "Datasource Description" #~ msgstr "" -#~ msgid "CSS Templates" +#~ msgid "Save a Slice" #~ msgstr "" -#~ msgid "Documentation" +#~ msgid "Save & go to dashboard" #~ msgstr "" -#~ msgid "Standalone version, use to embed anywhere" +#~ msgid "Run!" #~ msgstr "" -#~ msgid "Overwrite" +#~ msgid "Create View" #~ msgstr "" -#~ msgid "Save as" +#~ msgid "Import" +#~ msgstr "" + +#~ msgid "Welcome!" #~ msgstr "" diff --git a/superset/translations/fr/LC_MESSAGES/messages.mo b/superset/translations/fr/LC_MESSAGES/messages.mo index 4fdcc9a62a1e4..ae15668527f99 100644 Binary files a/superset/translations/fr/LC_MESSAGES/messages.mo and b/superset/translations/fr/LC_MESSAGES/messages.mo differ diff --git a/superset/translations/fr/LC_MESSAGES/messages.po b/superset/translations/fr/LC_MESSAGES/messages.po old mode 100755 new mode 100644 index b3df8ffb4f733..b9a9543d4c8b2 --- a/superset/translations/fr/LC_MESSAGES/messages.po +++ b/superset/translations/fr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-07-01 17:17+0800\n" +"POT-Creation-Date: 2017-06-04 20:38+0200\n" "PO-Revision-Date: 2016-05-01 23:07-0700\n" "Last-Translator: FULL NAME \n" "Language: fr\n" @@ -18,1829 +18,1596 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -#: superset/forms.py:140 -msgid "Viz" -msgstr "" - -#: superset/forms.py:143 -msgid "The type of visualization to display" -msgstr "" - -#: superset/forms.py:146 -msgid "Metrics" +#: superset/db_engine_specs.py:194 superset/db_engine_specs.py:225 +#: superset/db_engine_specs.py:269 superset/db_engine_specs.py:317 +#: superset/db_engine_specs.py:362 superset/db_engine_specs.py:770 +#: superset/db_engine_specs.py:806 superset/db_engine_specs.py:838 +#: superset/db_engine_specs.py:884 +msgid "Time Column" msgstr "" -#: superset/forms.py:149 superset/forms.py:154 -msgid "One or many metrics to display" +#: superset/db_engine_specs.py:195 superset/db_engine_specs.py:226 +#: superset/db_engine_specs.py:318 superset/db_engine_specs.py:363 +#: superset/db_engine_specs.py:771 superset/db_engine_specs.py:839 +msgid "second" msgstr "" -#: superset/forms.py:152 -msgid "Ordering" +#: superset/db_engine_specs.py:196 superset/db_engine_specs.py:229 +#: superset/db_engine_specs.py:321 superset/db_engine_specs.py:365 +#: superset/db_engine_specs.py:773 superset/db_engine_specs.py:807 +#: superset/db_engine_specs.py:841 superset/db_engine_specs.py:885 +msgid "minute" msgstr "" -#: superset/forms.py:157 superset/views.py:294 superset/views.py:334 -msgid "Metric" +#: superset/db_engine_specs.py:197 superset/db_engine_specs.py:233 +#: superset/db_engine_specs.py:323 superset/db_engine_specs.py:367 +#: superset/db_engine_specs.py:779 superset/db_engine_specs.py:809 +#: superset/db_engine_specs.py:843 superset/db_engine_specs.py:891 +msgid "hour" msgstr "" -#: superset/forms.py:160 -msgid "Choose the metric" +#: superset/db_engine_specs.py:198 superset/db_engine_specs.py:238 +#: superset/db_engine_specs.py:270 superset/db_engine_specs.py:325 +#: superset/db_engine_specs.py:369 superset/db_engine_specs.py:781 +#: superset/db_engine_specs.py:811 superset/db_engine_specs.py:845 +#: superset/db_engine_specs.py:893 +msgid "day" msgstr "" -#: superset/forms.py:163 -msgid "Chart Style" +#: superset/db_engine_specs.py:199 superset/db_engine_specs.py:244 +#: superset/db_engine_specs.py:271 superset/db_engine_specs.py:326 +#: superset/db_engine_specs.py:371 superset/db_engine_specs.py:783 +#: superset/db_engine_specs.py:813 superset/db_engine_specs.py:847 +msgid "week" msgstr "" -#: superset/forms.py:165 -msgid "stack" +#: superset/db_engine_specs.py:200 superset/db_engine_specs.py:246 +#: superset/db_engine_specs.py:273 superset/db_engine_specs.py:328 +#: superset/db_engine_specs.py:373 superset/db_engine_specs.py:785 +#: superset/db_engine_specs.py:815 superset/db_engine_specs.py:849 +#: superset/db_engine_specs.py:895 +msgid "month" msgstr "" -#: superset/forms.py:166 -msgid "stream" +#: superset/db_engine_specs.py:201 superset/db_engine_specs.py:248 +#: superset/db_engine_specs.py:330 superset/db_engine_specs.py:375 +#: superset/db_engine_specs.py:787 superset/db_engine_specs.py:817 +#: superset/db_engine_specs.py:851 superset/db_engine_specs.py:897 +msgid "quarter" msgstr "" -#: superset/forms.py:167 -msgid "expand" +#: superset/db_engine_specs.py:202 superset/db_engine_specs.py:252 +#: superset/db_engine_specs.py:332 superset/db_engine_specs.py:789 +#: superset/db_engine_specs.py:819 superset/db_engine_specs.py:899 +msgid "year" msgstr "" -#: superset/forms.py:173 -msgid "Color Scheme" +#: superset/db_engine_specs.py:334 +msgid "week_start_monday" msgstr "" -#: superset/forms.py:175 -msgid "fire" +#: superset/db_engine_specs.py:377 superset/db_engine_specs.py:853 +msgid "week_ending_saturday" msgstr "" -#: superset/forms.py:176 -msgid "blue_white_yellow" +#: superset/db_engine_specs.py:380 superset/db_engine_specs.py:856 +msgid "week_start_sunday" msgstr "" -#: superset/forms.py:177 -msgid "white_black" +#: superset/db_engine_specs.py:775 superset/db_engine_specs.py:887 +msgid "5 minute" msgstr "" -#: superset/forms.py:178 -msgid "black_white" +#: superset/db_engine_specs.py:777 +msgid "half hour" msgstr "" -#: superset/forms.py:184 -msgid "Normalize Across" +#: superset/db_engine_specs.py:889 +msgid "10 minute" msgstr "" -#: superset/forms.py:186 -msgid "heatmap" +#: superset/viz.py:311 +msgid "Table View" msgstr "" -#: superset/forms.py:187 -msgid "x" +#: superset/viz.py:364 +msgid "Pivot Table" msgstr "" -#: superset/forms.py:188 -msgid "y" +#: superset/viz.py:413 +msgid "Markup" msgstr "" -#: superset/forms.py:191 -msgid "" -"Color will be rendered based on a ratio of the cell against the sum of " -"across this criteria" +#: superset/viz.py:432 +msgid "Separator" msgstr "" -#: superset/forms.py:197 -msgid "Color Scale" +#: superset/viz.py:448 +msgid "Word Cloud" msgstr "" -#: superset/forms.py:199 -msgid "series" +#: superset/viz.py:471 +msgid "Treemap" msgstr "" -#: superset/forms.py:200 -msgid "overall" +#: superset/viz.py:497 +msgid "Calendar Heatmap" msgstr "" -#: superset/forms.py:201 -msgid "change" +#: superset/viz.py:555 +msgid "Box Plot" msgstr "" -#: superset/forms.py:204 -msgid "Defines how the color are attributed." +#: superset/viz.py:644 +msgid "Bubble Chart" msgstr "" -#: superset/forms.py:207 -msgid "Rendering" +#: superset/viz.py:693 +msgid "Bullet Chart" msgstr "" -#: superset/forms.py:209 -msgid "pixelated (Sharp)" +#: superset/viz.py:742 +msgid "Big Number with Trendline" msgstr "" -#: superset/forms.py:210 -msgid "auto (Smooth)" +#: superset/viz.py:771 +msgid "Big Number" msgstr "" -#: superset/forms.py:213 -msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" +#: superset/viz.py:798 +msgid "Time Series - Line Chart" msgstr "" -#: superset/forms.py:218 -msgid "XScale Interval" +#: superset/viz.py:925 +msgid "Time Series - Dual Axis Line Chart" msgstr "" -#: superset/forms.py:221 -msgid "Number of step to take between ticks when printing the x scale" +#: superset/viz.py:1000 +msgid "Time Series - Bar Chart" msgstr "" -#: superset/forms.py:226 -msgid "YScale Interval" +#: superset/viz.py:1008 +msgid "Time Series - Percent Change" msgstr "" -#: superset/forms.py:229 -msgid "Number of step to take between ticks when printing the y scale" +#: superset/viz.py:1016 +msgid "Time Series - Stacked" msgstr "" -#: superset/forms.py:234 -msgid "Stacked Bars" +#: superset/viz.py:1025 +msgid "Distribution - NVD3 - Pie Chart" msgstr "" -#: superset/forms.py:239 -msgid "Extra Controls" +#: superset/viz.py:1043 +msgid "Histogram" msgstr "" -#: superset/forms.py:241 -msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." +#: superset/viz.py:1068 +msgid "Distribution - Bar Chart" msgstr "" -#: superset/forms.py:247 -msgid "Reduce X ticks" +#: superset/viz.py:1135 +msgid "Sunburst" msgstr "" -#: superset/forms.py:249 -msgid "" -"Reduces the number of X axis ticks to be rendered. If true, the x axis " -"wont overflow and labels may be missing. If false, a minimum width will " -"be applied to columns and the width may overflow into an horizontal " -"scroll." +#: superset/viz.py:1168 +msgid "Sankey" msgstr "" -#: superset/forms.py:257 -msgid "Include Series" +#: superset/viz.py:1217 +msgid "Directed Force Layout" msgstr "" -#: superset/forms.py:259 -msgid "Include series name as an axis" +#: superset/viz.py:1238 +msgid "Country Map" msgstr "" -#: superset/forms.py:262 -msgid "Color Metric" +#: superset/viz.py:1267 +msgid "World Map" msgstr "" -#: superset/forms.py:265 -msgid "A metric to use for color" +#: superset/viz.py:1317 +msgid "Filters" msgstr "" -#: superset/forms.py:268 -msgid "Country Field Type" +#: superset/viz.py:1352 +msgid "iFrame" msgstr "" -#: superset/forms.py:271 -msgid "Full name" +#: superset/viz.py:1369 +msgid "Parallel Coordinates" msgstr "" -#: superset/forms.py:272 -msgid "code International Olympic Committee (cioc)" +#: superset/viz.py:1394 +msgid "Heatmap" msgstr "" -#: superset/forms.py:273 -msgid "code ISO 3166-1 alpha-2 (cca2)" +#: superset/viz.py:1445 +msgid "Horizon Charts" msgstr "" -#: superset/forms.py:274 -msgid "code ISO 3166-1 alpha-3 (cca3)" +#: superset/viz.py:1456 +msgid "Mapbox" msgstr "" -#: superset/forms.py:276 -msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" +#: superset/connectors/druid/models.py:934 +msgid "No data was returned." msgstr "" -#: superset/forms.py:281 -msgid "Group by" +#: superset/connectors/druid/views.py:37 superset/connectors/sqla/views.py:74 +msgid "Column" msgstr "" -#: superset/forms.py:283 -msgid "One or many fields to group by" +#: superset/connectors/druid/views.py:38 superset/connectors/druid/views.py:97 +#: superset/connectors/sqla/views.py:120 +msgid "Type" msgstr "" -#: superset/forms.py:286 superset/forms.py:291 -msgid "Columns" +#: superset/connectors/druid/views.py:39 superset/views/core.py:306 +#: superset/views/core.py:355 +msgid "Datasource" msgstr "" -#: superset/forms.py:288 -msgid "One or many fields to pivot as columns" +#: superset/connectors/druid/views.py:40 superset/connectors/sqla/views.py:77 +msgid "Groupable" msgstr "" -#: superset/forms.py:293 superset/forms.py:298 superset/forms.py:303 -msgid "Columns to display" +#: superset/connectors/druid/views.py:41 superset/connectors/sqla/views.py:78 +msgid "Filterable" msgstr "" -#: superset/forms.py:296 -msgid "X" +#: superset/connectors/druid/views.py:42 superset/connectors/sqla/views.py:80 +msgid "Count Distinct" msgstr "" -#: superset/forms.py:301 -msgid "Y" +#: superset/connectors/druid/views.py:43 superset/connectors/sqla/views.py:81 +msgid "Sum" msgstr "" -#: superset/forms.py:306 -msgid "Origin" +#: superset/connectors/druid/views.py:44 superset/connectors/sqla/views.py:82 +msgid "Min" msgstr "" -#: superset/forms.py:308 -msgid "default" +#: superset/connectors/druid/views.py:45 superset/connectors/sqla/views.py:83 +msgid "Max" msgstr "" -#: superset/forms.py:309 superset/forms.py:467 -msgid "now" +#: superset/connectors/druid/views.py:48 superset/connectors/sqla/views.py:43 +msgid "" +"Whether this column is exposed in the `Filters` section of the explore " +"view." msgstr "" -#: superset/forms.py:312 +#: superset/connectors/druid/views.py:88 superset/connectors/sqla/views.py:102 msgid "" -"Defines the origin where time buckets start, accepts natural dates as in " -"'now', 'sunday' or '1970-01-01'" +"Whether the access to this metric is restricted to certain roles. Only " +"roles with the permission 'metric access on XXX (the name of this " +"metric)' are allowed to access this metric" msgstr "" -#: superset/forms.py:317 -msgid "Bottom Margin" +#: superset/connectors/druid/views.py:94 superset/connectors/sqla/views.py:117 +msgid "Metric" msgstr "" -#: superset/forms.py:320 -msgid "Bottom marging, in pixels, allowing for more room for axis labels" +#: superset/connectors/druid/views.py:95 superset/connectors/druid/views.py:205 +#: superset/connectors/sqla/views.py:76 superset/connectors/sqla/views.py:118 +#: superset/views/core.py:356 +msgid "Description" msgstr "" -#: superset/forms.py:325 -msgid "Time Granularity" +#: superset/connectors/druid/views.py:96 superset/connectors/sqla/views.py:75 +#: superset/connectors/sqla/views.py:119 +msgid "Verbose Name" msgstr "" -#: superset/forms.py:328 -msgid "all" +#: superset/connectors/druid/views.py:98 superset/views/core.py:529 +msgid "JSON" msgstr "" -#: superset/forms.py:329 -msgid "5 seconds" +#: superset/connectors/druid/views.py:99 +msgid "Druid Datasource" msgstr "" -#: superset/forms.py:330 -msgid "30 seconds" +#: superset/connectors/druid/views.py:124 +#: superset/connectors/druid/views.py:204 +msgid "Cluster" msgstr "" -#: superset/forms.py:331 -msgid "1 minute" +#: superset/connectors/druid/views.py:125 +msgid "Coordinator Host" msgstr "" -#: superset/forms.py:332 -msgid "5 minutes" +#: superset/connectors/druid/views.py:126 +msgid "Coordinator Port" msgstr "" -#: superset/forms.py:333 -msgid "1 hour" +#: superset/connectors/druid/views.py:127 +msgid "Coordinator Endpoint" msgstr "" -#: superset/forms.py:334 -msgid "6 hour" +#: superset/connectors/druid/views.py:128 +msgid "Broker Host" msgstr "" -#: superset/forms.py:335 -msgid "1 day" +#: superset/connectors/druid/views.py:129 +msgid "Broker Port" msgstr "" -#: superset/forms.py:336 -msgid "7 days" +#: superset/connectors/druid/views.py:130 +msgid "Broker Endpoint" msgstr "" -#: superset/forms.py:338 +#: superset/connectors/druid/views.py:173 superset/connectors/sqla/views.py:156 msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in '10 seconds', '1 day' or '56 weeks'" -msgstr "" - -#: superset/forms.py:344 -msgid "Domain" -msgstr "" - -#: superset/forms.py:347 superset/forms.py:361 superset/models.py:417 -#: superset/models.py:435 -msgid "hour" -msgstr "" - -#: superset/forms.py:348 superset/forms.py:362 superset/models.py:419 -#: superset/models.py:427 superset/models.py:436 -msgid "day" +"The list of slices associated with this table. By altering this " +"datasource, you may change how these associated slices behave. Also note " +"that slices need to point to a datasource, so this form will fail at " +"saving if removing slices from a datasource. If you want to change the " +"datasource for a slice, overwrite the slice from the 'explore view'" msgstr "" -#: superset/forms.py:349 superset/forms.py:363 superset/models.py:407 -#: superset/models.py:420 superset/models.py:428 superset/models.py:437 -msgid "week" +#: superset/connectors/druid/views.py:181 superset/connectors/sqla/views.py:164 +msgid "Timezone offset (in hours) for this datasource" msgstr "" -#: superset/forms.py:350 superset/forms.py:364 superset/models.py:408 -#: superset/models.py:422 superset/models.py:429 superset/models.py:438 -msgid "month" +#: superset/connectors/druid/views.py:185 +msgid "" +"Time expression to use as a predicate when retrieving distinct values to " +"populate the filter component. Only applies when `Enable Filter Select` " +"is on. If you enter `7 days ago`, the distinct list of values in the " +"filter will be populated based on the distinct value over the past week" msgstr "" -#: superset/forms.py:351 superset/models.py:439 -msgid "year" +#: superset/connectors/druid/views.py:192 superset/connectors/sqla/views.py:186 +msgid "" +"Whether to populate the filter's dropdown in the explore view's filter " +"section with a list of distinct values fetched from the backend on the " +"fly" msgstr "" -#: superset/forms.py:353 -msgid "The time unit used for the grouping of blocks" +#: superset/connectors/druid/views.py:196 superset/connectors/sqla/views.py:200 +msgid "" +"Redirects to this endpoint when clicking on the datasource from the " +"datasource list" msgstr "" -#: superset/forms.py:357 -msgid "Subdomain" +#: superset/connectors/druid/views.py:202 superset/connectors/sqla/views.py:193 +msgid "Associated Slices" msgstr "" -#: superset/forms.py:360 superset/forms.py:701 -msgid "min" +#: superset/connectors/druid/views.py:203 +msgid "Data Source" msgstr "" -#: superset/forms.py:366 -msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" +#: superset/connectors/druid/views.py:206 +msgid "Owner" msgstr "" -#: superset/forms.py:371 -msgid "Link Length" +#: superset/connectors/druid/views.py:207 +msgid "Is Hidden" msgstr "" -#: superset/forms.py:383 -msgid "Link length in the force layout" +#: superset/connectors/druid/views.py:208 superset/connectors/sqla/views.py:198 +msgid "Enable Filter Select" msgstr "" -#: superset/forms.py:386 -msgid "Charge" +#: superset/connectors/druid/views.py:209 +msgid "Default Endpoint" msgstr "" -#: superset/forms.py:400 -msgid "Charge in the force layout" +#: superset/connectors/druid/views.py:210 +msgid "Time Offset" msgstr "" -#: superset/forms.py:403 superset/models.py:406 superset/models.py:416 -#: superset/models.py:426 superset/models.py:432 -msgid "Time Column" +#: superset/connectors/druid/views.py:211 superset/connectors/sqla/views.py:204 +#: superset/views/core.py:242 superset/views/core.py:352 +msgid "Cache Timeout" msgstr "" -#: superset/forms.py:406 +#: superset/connectors/sqla/models.py:388 msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table editor. Also note " -"that the filter below is applied against this column or expression" +"Datetime column not provided as part table configuration and is required " +"by this type of chart" msgstr "" -#: superset/forms.py:414 -msgid "Resample Rule" +#: superset/connectors/sqla/models.py:393 +msgid "Metric '{}' is not valid" msgstr "" -#: superset/forms.py:417 -msgid "1T" +#: superset/connectors/sqla/views.py:39 +msgid "" +"Whether to make this column available as a [Time Granularity] option, " +"column has to be DATETIME or DATETIME-like" msgstr "" -#: superset/forms.py:418 -msgid "1H" +#: superset/connectors/sqla/views.py:46 +msgid "" +"The data type that was inferred by the database. It may be necessary to " +"input a type manually for expression-defined columns in some cases. In " +"most case users should not need to alter this." msgstr "" -#: superset/forms.py:419 -msgid "1D" +#: superset/connectors/sqla/views.py:79 superset/connectors/sqla/views.py:122 +#: superset/connectors/sqla/views.py:194 superset/views/core.py:362 +msgid "Table" msgstr "" -#: superset/forms.py:420 -msgid "7D" +#: superset/connectors/sqla/views.py:84 +msgid "Expression" msgstr "" -#: superset/forms.py:421 -msgid "1M" +#: superset/connectors/sqla/views.py:85 +msgid "Is temporal" msgstr "" -#: superset/forms.py:422 -msgid "1AS" +#: superset/connectors/sqla/views.py:86 +msgid "Datetime Format" msgstr "" -#: superset/forms.py:424 -msgid "Pandas resample rule" +#: superset/connectors/sqla/views.py:87 +msgid "Database Expression" msgstr "" -#: superset/forms.py:427 -msgid "Resample How" +#: superset/connectors/sqla/views.py:121 +msgid "SQL Expression" msgstr "" -#: superset/forms.py:431 superset/forms.py:700 -msgid "mean" +#: superset/connectors/sqla/views.py:165 +msgid "Name of the table that exists in the source database" msgstr "" -#: superset/forms.py:432 superset/forms.py:699 -msgid "sum" +#: superset/connectors/sqla/views.py:167 +msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" msgstr "" -#: superset/forms.py:433 superset/forms.py:703 -msgid "median" +#: superset/connectors/sqla/views.py:173 +msgid "" +"This fields acts a Superset view, meaning that Superset will run a query " +"against this string as a subquery." msgstr "" -#: superset/forms.py:435 -msgid "Pandas resample how" +#: superset/connectors/sqla/views.py:177 +msgid "" +"Predicate applied when fetching distinct value to populate the filter " +"control component. Supports jinja template syntax. Applies only when " +"`Enable Filter Select` is on." msgstr "" -#: superset/forms.py:438 -msgid "Resample Fill Method" +#: superset/connectors/sqla/views.py:183 +msgid "Redirects to this endpoint when clicking on the table from the table list" msgstr "" -#: superset/forms.py:442 -msgid "ffill" +#: superset/connectors/sqla/views.py:195 +msgid "Changed By" msgstr "" -#: superset/forms.py:443 -msgid "bfill" +#: superset/connectors/sqla/views.py:196 superset/views/core.py:238 +msgid "Database" msgstr "" -#: superset/forms.py:445 -msgid "Pandas resample fill method" +#: superset/connectors/sqla/views.py:197 superset/views/core.py:240 +msgid "Last Changed" msgstr "" -#: superset/forms.py:448 -msgid "Since" +#: superset/connectors/sqla/views.py:199 +msgid "Schema" msgstr "" -#: superset/forms.py:451 -msgid "1 hour ago" +#: superset/connectors/sqla/views.py:203 +msgid "Offset" msgstr "" -#: superset/forms.py:452 -msgid "12 hours ago" +#: superset/connectors/sqla/views.py:236 +msgid "" +"The table was created. As part of this two phase configuration process, " +"you should now click the edit button by the new table to configure it." msgstr "" -#: superset/forms.py:453 superset/forms.py:468 -msgid "1 day ago" +#: superset/templates/appbuilder/navbar_right.html:41 +msgid "Profile" msgstr "" -#: superset/forms.py:454 superset/forms.py:469 -msgid "7 days ago" +#: superset/templates/appbuilder/navbar_right.html:42 +msgid "Logout" msgstr "" -#: superset/forms.py:455 superset/forms.py:470 -msgid "28 days ago" +#: superset/templates/appbuilder/navbar_right.html:47 +msgid "Login" msgstr "" -#: superset/forms.py:456 superset/forms.py:471 -msgid "90 days ago" +#: superset/templates/superset/request_access.html:2 +msgid "No Access!" msgstr "" -#: superset/forms.py:457 superset/forms.py:472 -msgid "1 year ago" +#: superset/templates/superset/request_access.html:7 +#, python-format +msgid "You do not have permissions to access the datasource(s): %(name)s." msgstr "" -#: superset/forms.py:459 -msgid "" -"Timestamp from filter. This supports free form typing and natural " -"language as in '1 day ago', '28 days' or '3 years'" +#: superset/templates/superset/request_access.html:13 +msgid "Request Permissions" msgstr "" -#: superset/forms.py:464 -msgid "Until" +#: superset/templates/superset/request_access.html:16 +msgid "Cancel" msgstr "" -#: superset/forms.py:476 -msgid "Max Bubble Size" +#: superset/templates/superset/models/database/macros.html:4 +msgid "Test Connection" msgstr "" -#: superset/forms.py:489 -msgid "Whisker/outlier options" +#: superset/views/core.py:206 +msgid "Expose this DB in SQL Lab" msgstr "" -#: superset/forms.py:491 -msgid "Determines how whiskers and outliers are calculated." +#: superset/views/core.py:207 +msgid "" +"Allow users to run synchronous queries, this is the default and should " +"work well for queries that can be executed within a web request scope " +"(<~1 minute)" msgstr "" -#: superset/forms.py:494 -msgid "Tukey" +#: superset/views/core.py:211 +msgid "" +"Allow users to run queries, against an async backend. This assumes that " +"you have a Celery worker setup as well as a results backend." msgstr "" -#: superset/forms.py:495 -msgid "Min/max (no outliers)" +#: superset/views/core.py:215 +msgid "Allow CREATE TABLE AS option in SQL Lab" msgstr "" -#: superset/forms.py:496 -msgid "2/98 percentiles" +#: superset/views/core.py:216 +msgid "" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" +" SQL Lab" msgstr "" -#: superset/forms.py:497 -msgid "9/91 percentiles" +#: superset/views/core.py:220 +msgid "" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " +"table to be created in this schema" msgstr "" -#: superset/forms.py:501 -msgid "Ratio" +#: superset/views/core.py:234 +msgid "Expose in SQL Lab" msgstr "" -#: superset/forms.py:503 -msgid "Target aspect ratio for treemap tiles." +#: superset/views/core.py:235 +msgid "Allow CREATE TABLE AS" msgstr "" -#: superset/forms.py:506 superset/viz.py:856 superset/viz.py:905 -msgid "Number format" +#: superset/views/core.py:236 +msgid "Allow DML" msgstr "" -#: superset/forms.py:516 -msgid "" -"D3 format syntax for numbers https: //github.com/mbostock/\n" -"d3/wiki/Formatting" +#: superset/views/core.py:237 +msgid "CTAS Schema" msgstr "" -#: superset/forms.py:521 -msgid "Row limit" +#: superset/views/core.py:239 superset/views/core.py:353 +#: superset/views/core.py:449 superset/views/core.py:513 +msgid "Creator" msgstr "" -#: superset/forms.py:527 -msgid "Series limit" +#: superset/views/core.py:241 +msgid "SQLAlchemy URI" msgstr "" -#: superset/forms.py:530 -msgid "Limits the number of time series that get displayed" +#: superset/views/core.py:243 +msgid "Extra" msgstr "" -#: superset/forms.py:534 -msgid "Rolling" +#: superset/views/core.py:303 superset/views/core.py:526 +msgid "User" msgstr "" -#: superset/forms.py:537 -msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" +#: superset/views/core.py:304 +msgid "User Roles" msgstr "" -#: superset/forms.py:542 -msgid "Periods" +#: superset/views/core.py:305 +msgid "Database URL" msgstr "" -#: superset/forms.py:544 -msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" +#: superset/views/core.py:307 +msgid "Roles to grant" msgstr "" -#: superset/forms.py:549 superset/viz.py:1192 -msgid "Series" +#: superset/views/core.py:308 +msgid "Created On" msgstr "" -#: superset/forms.py:552 +#: superset/views/core.py:341 msgid "" -"Defines the grouping of entities. Each serie is shown as a specific color" -" on the chart and has a legend toggle" +"These parameters are generated dynamically when clicking the save or " +"overwrite button in the explore view. This JSON object is exposed here " +"for reference and for power users who may want to alter specific " +"parameters." msgstr "" -#: superset/forms.py:558 -msgid "Entity" +#: superset/views/core.py:346 +msgid "Duration (in seconds) of the caching timeout for this slice." msgstr "" -#: superset/forms.py:561 -msgid "This define the element to be plotted on the chart" +#: superset/views/core.py:354 +msgid "Dashboards" msgstr "" -#: superset/forms.py:564 -msgid "X Axis" +#: superset/views/core.py:357 +msgid "Last Modified" msgstr "" -#: superset/forms.py:567 -msgid "Metric assigned to the [X] axis" +#: superset/views/core.py:358 superset/views/core.py:448 +msgid "Owners" msgstr "" -#: superset/forms.py:570 -msgid "Y Axis" +#: superset/views/core.py:359 +msgid "Parameters" msgstr "" -#: superset/forms.py:573 -msgid "Metric assigned to the [Y] axis" +#: superset/views/core.py:360 superset/views/core.py:396 +msgid "Slice" msgstr "" -#: superset/forms.py:576 -msgid "Bubble Size" +#: superset/views/core.py:361 +msgid "Name" msgstr "" -#: superset/forms.py:581 -msgid "URL" +#: superset/views/core.py:363 +msgid "Visualization Type" msgstr "" -#: superset/forms.py:582 +#: superset/views/core.py:421 msgid "" -"The URL, this field is templated, so you can integrate {{ width }} and/or" -" {{ height }} in your URL string." -msgstr "" - -#: superset/forms.py:589 -msgid "X Axis Label" -msgstr "" - -#: superset/forms.py:593 -msgid "Y Axis Label" -msgstr "" - -#: superset/forms.py:597 -msgid "Custom WHERE clause" +"This json object describes the positioning of the widgets in the " +"dashboard. It is dynamically generated when adjusting the widgets size " +"and positions by using drag & drop in the dashboard view" msgstr "" -#: superset/forms.py:599 +#: superset/views/core.py:426 msgid "" -"The text in this box gets included in your query's WHERE clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." +"The css for individual dashboards can be altered here, or in the " +"dashboard view where changes are immediately visible" msgstr "" -#: superset/forms.py:606 -msgid "Custom HAVING clause" +#: superset/views/core.py:430 +msgid "To get a readable URL for your dashboard" msgstr "" -#: superset/forms.py:608 +#: superset/views/core.py:431 msgid "" -"The text in this box gets included in your query's HAVING clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." +"This JSON object is generated dynamically when clicking the save or " +"overwrite button in the dashboard view. It is exposed here for reference " +"and for power users who may want to alter specific parameters." msgstr "" -#: superset/forms.py:615 -msgid "Comparison Period Lag" +#: superset/views/core.py:436 +msgid "Owners is a list of users who can alter the dashboard." msgstr "" -#: superset/forms.py:616 -msgid "Based on granularity, number of time periods to compare against" +#: superset/views/core.py:444 superset/views/core.py:511 +msgid "Dashboard" msgstr "" -#: superset/forms.py:621 -msgid "Comparison suffix" +#: superset/views/core.py:445 superset/views/core.py:512 +msgid "Title" msgstr "" -#: superset/forms.py:622 -msgid "Suffix to apply after the percentage display" +#: superset/views/core.py:446 +msgid "Slug" msgstr "" -#: superset/forms.py:625 -msgid "Table Timestamp Format" +#: superset/views/core.py:447 +msgid "Slices" msgstr "" -#: superset/forms.py:628 -msgid "Timestamp Format" +#: superset/views/core.py:450 superset/views/core.py:514 +msgid "Modified" msgstr "" -#: superset/forms.py:631 -msgid "Series Height" +#: superset/views/core.py:451 +msgid "Position JSON" msgstr "" -#: superset/forms.py:634 -msgid "Pixel height of each series" +#: superset/views/core.py:452 +msgid "CSS" msgstr "" -#: superset/forms.py:637 -msgid "X axis format" +#: superset/views/core.py:453 +msgid "JSON Metadata" msgstr "" -#: superset/forms.py:640 superset/forms.py:655 -msgid "" -"D3 format syntax for y axis https: //github.com/mbostock/\n" -"d3/wiki/Formatting" +#: superset/views/core.py:454 +msgid "Underlying Tables" msgstr "" -#: superset/forms.py:645 -msgid "Y axis format" +#: superset/views/core.py:527 +msgid "Action" msgstr "" -#: superset/forms.py:660 -msgid "Markup Type" +#: superset/views/core.py:528 +msgid "dttm" msgstr "" -#: superset/forms.py:662 -msgid "markdown" +#: superset/views/core.py:2279 +msgid "SQL Editor" msgstr "" -#: superset/forms.py:663 -msgid "html" +#: superset/views/core.py:2288 +msgid "Query Search" msgstr "" -#: superset/forms.py:666 -msgid "Pick your favorite markup language" -msgstr "" +#~ msgid "Databases" +#~ msgstr "" -#: superset/forms.py:669 -msgid "Rotation" -msgstr "" +#~ msgid "Sources" +#~ msgstr "" -#: superset/forms.py:671 -msgid "random" -msgstr "" +#~ msgid "Tables" +#~ msgstr "" -#: superset/forms.py:672 -msgid "flat" -msgstr "" +#~ msgid "Druid Clusters" +#~ msgstr "" -#: superset/forms.py:673 -msgid "square" -msgstr "" +#~ msgid "Action Log" +#~ msgstr "" -#: superset/forms.py:676 -msgid "Rotation to apply to words in the cloud" -msgstr "" +#~ msgid "Security" +#~ msgstr "" -#: superset/forms.py:679 -msgid "Line Style" -msgstr "" +#~ msgid "Druid Datasources" +#~ msgstr "" -#: superset/forms.py:681 -msgid "linear" -msgstr "" +#~ msgid "CSS Templates" +#~ msgstr "" -#: superset/forms.py:682 -msgid "basis" -msgstr "" +#~ msgid "Documentation" +#~ msgstr "" -#: superset/forms.py:683 -msgid "cardinal" -msgstr "" +#~ msgid "Standalone version, use to embed anywhere" +#~ msgstr "" -#: superset/forms.py:684 -msgid "monotone" -msgstr "" +#~ msgid "Overwrite" +#~ msgstr "" -#: superset/forms.py:685 -msgid "step-before" -msgstr "" +#~ msgid "Save as" +#~ msgstr "" -#: superset/forms.py:686 -msgid "step-after" -msgstr "" +#~ msgid "Viz" +#~ msgstr "" -#: superset/forms.py:689 -msgid "Line interpolation as defined by d3.js" -msgstr "" +#~ msgid "The type of visualization to display" +#~ msgstr "" -#: superset/forms.py:692 -msgid "Code" -msgstr "" +#~ msgid "Metrics" +#~ msgstr "" -#: superset/forms.py:693 -msgid "Put your code here" -msgstr "" +#~ msgid "One or many metrics to display" +#~ msgstr "" -#: superset/forms.py:697 -msgid "Aggregation function" -msgstr "" +#~ msgid "Ordering" +#~ msgstr "" -#: superset/forms.py:702 -msgid "max" -msgstr "" +#~ msgid "Choose the metric" +#~ msgstr "" -#: superset/forms.py:704 -msgid "stdev" -msgstr "" +#~ msgid "Chart Style" +#~ msgstr "" -#: superset/forms.py:705 -msgid "var" -msgstr "" +#~ msgid "stack" +#~ msgstr "" -#: superset/forms.py:708 -msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" -msgstr "" +#~ msgid "stream" +#~ msgstr "" -#: superset/forms.py:713 -msgid "Font Size From" -msgstr "" +#~ msgid "expand" +#~ msgstr "" -#: superset/forms.py:715 -msgid "Font size for the smallest value in the list" -msgstr "" +#~ msgid "Color Scheme" +#~ msgstr "" -#: superset/forms.py:718 -msgid "Font Size To" -msgstr "" +#~ msgid "fire" +#~ msgstr "" -#: superset/forms.py:720 -msgid "Font size for the biggest value in the list" -msgstr "" +#~ msgid "blue_white_yellow" +#~ msgstr "" -#: superset/forms.py:723 -msgid "Range Filter" -msgstr "" +#~ msgid "white_black" +#~ msgstr "" -#: superset/forms.py:725 -msgid "Whether to display the time range interactive selector" -msgstr "" +#~ msgid "black_white" +#~ msgstr "" -#: superset/forms.py:729 -msgid "Data Table" -msgstr "" +#~ msgid "Normalize Across" +#~ msgstr "" -#: superset/forms.py:731 -msgid "Whether to display the interactive data table" -msgstr "" +#~ msgid "heatmap" +#~ msgstr "" -#: superset/forms.py:734 -msgid "Search Box" -msgstr "" +#~ msgid "x" +#~ msgstr "" -#: superset/forms.py:736 -msgid "Whether to include a client side search box" -msgstr "" +#~ msgid "y" +#~ msgstr "" -#: superset/forms.py:740 -msgid "Show Bubbles" -msgstr "" +#~ msgid "" +#~ msgstr "" -#: superset/forms.py:742 -msgid "Whether to display bubbles on top of countries" -msgstr "" +#~ msgid "Color Scale" +#~ msgstr "" -#: superset/forms.py:746 -msgid "Legend" -msgstr "" +#~ msgid "series" +#~ msgstr "" -#: superset/forms.py:748 -msgid "Whether to display the legend (toggles)" -msgstr "" +#~ msgid "overall" +#~ msgstr "" -#: superset/forms.py:751 -msgid "X bounds" -msgstr "" +#~ msgid "change" +#~ msgstr "" -#: superset/forms.py:753 -msgid "Whether to display the min and max values of the X axis" -msgstr "" +#~ msgid "Defines how the color are attributed." +#~ msgstr "" -#: superset/forms.py:757 -msgid "Rich Tooltip" -msgstr "" +#~ msgid "Rendering" +#~ msgstr "" -#: superset/forms.py:759 -msgid "The rich tooltip shows a list of all series for that point in time" -msgstr "" +#~ msgid "pixelated (Sharp)" +#~ msgstr "" -#: superset/forms.py:764 -msgid "Y Axis Zero" -msgstr "" +#~ msgid "auto (Smooth)" +#~ msgstr "" -#: superset/forms.py:766 -msgid "Force the Y axis to start at 0 instead of the minimum value" -msgstr "" +#~ msgid "XScale Interval" +#~ msgstr "" -#: superset/forms.py:771 -msgid "Y Log" -msgstr "" +#~ msgid "Number of step to take between ticks when printing the x scale" +#~ msgstr "" -#: superset/forms.py:773 -msgid "Use a log scale for the Y axis" -msgstr "" +#~ msgid "YScale Interval" +#~ msgstr "" -#: superset/forms.py:776 -msgid "X Log" -msgstr "" +#~ msgid "Number of step to take between ticks when printing the y scale" +#~ msgstr "" -#: superset/forms.py:778 -msgid "Use a log scale for the X axis" -msgstr "" +#~ msgid "Stacked Bars" +#~ msgstr "" -#: superset/forms.py:781 -msgid "Donut" -msgstr "" +#~ msgid "Extra Controls" +#~ msgstr "" -#: superset/forms.py:783 -msgid "Do you want a donut or a pie?" -msgstr "" +#~ msgid "Reduce X ticks" +#~ msgstr "" -#: superset/forms.py:786 -msgid "Contribution" -msgstr "" +#~ msgid "Include Series" +#~ msgstr "" -#: superset/forms.py:788 -msgid "Compute the contribution to the total" -msgstr "" +#~ msgid "Include series name as an axis" +#~ msgstr "" -#: superset/forms.py:791 -msgid "Period Ratio" -msgstr "" +#~ msgid "Color Metric" +#~ msgstr "" -#: superset/forms.py:794 -msgid "" -"[integer] Number of period to compare against, this is relative to the " -"granularity selected" -msgstr "" +#~ msgid "A metric to use for color" +#~ msgstr "" -#: superset/forms.py:799 -msgid "Time Shift" -msgstr "" +#~ msgid "Country Field Type" +#~ msgstr "" -#: superset/forms.py:801 -msgid "" -"Overlay a timeseries from a relative time period. Expects relative time " -"delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days" -msgstr "" +#~ msgid "Full name" +#~ msgstr "" -#: superset/forms.py:808 -msgid "Subheader" -msgstr "" +#~ msgid "code International Olympic Committee (cioc)" +#~ msgstr "" -#: superset/forms.py:809 -msgid "Description text that shows up below your Big Number" -msgstr "" +#~ msgid "code ISO 3166-1 alpha-2 (cca2)" +#~ msgstr "" -#: superset/forms.py:816 -msgid "" -"'count' is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." -msgstr "" +#~ msgid "code ISO 3166-1 alpha-3 (cca3)" +#~ msgstr "" -#: superset/forms.py:832 -msgid "Base layer map style" -msgstr "" +#~ msgid "Group by" +#~ msgstr "" -#: superset/forms.py:835 -msgid "Clustering Radius" -msgstr "" +#~ msgid "One or many fields to group by" +#~ msgstr "" -#: superset/forms.py:848 -msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." -msgstr "" +#~ msgid "Columns" +#~ msgstr "" -#: superset/forms.py:854 -msgid "Point Radius" -msgstr "" +#~ msgid "One or many fields to pivot as columns" +#~ msgstr "" -#: superset/forms.py:857 -msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or 'Auto', which scales the point based on the largest" -" cluster" -msgstr "" +#~ msgid "Columns to display" +#~ msgstr "" -#: superset/forms.py:863 -msgid "Point Radius Unit" -msgstr "" +#~ msgid "X" +#~ msgstr "" -#: superset/forms.py:870 -msgid "The unit of measure for the specified point radius" -msgstr "" +#~ msgid "Y" +#~ msgstr "" -#: superset/forms.py:873 -msgid "Opacity" -msgstr "" +#~ msgid "Origin" +#~ msgstr "" -#: superset/forms.py:875 -msgid "Opacity of all clusters, points, and labels. Between 0 and 1." -msgstr "" +#~ msgid "default" +#~ msgstr "" -#: superset/forms.py:880 -msgid "Zoom" -msgstr "" +#~ msgid "now" +#~ msgstr "" -#: superset/forms.py:883 -msgid "Zoom level of the map" -msgstr "" +#~ msgid "Bottom Margin" +#~ msgstr "" -#: superset/forms.py:887 -msgid "Default latitude" -msgstr "" +#~ msgid "Bottom marging, in pixels, allowing for more room for axis labels" +#~ msgstr "" -#: superset/forms.py:889 -msgid "Latitude of default viewport" -msgstr "" +#~ msgid "Time Granularity" +#~ msgstr "" -#: superset/forms.py:893 -msgid "Default longitude" -msgstr "" +#~ msgid "all" +#~ msgstr "" -#: superset/forms.py:895 -msgid "Longitude of default viewport" -msgstr "" +#~ msgid "5 seconds" +#~ msgstr "" -#: superset/forms.py:899 -msgid "Live render" -msgstr "" +#~ msgid "30 seconds" +#~ msgstr "" -#: superset/forms.py:901 -msgid "Points and clusters will update as viewport is being changed" -msgstr "" +#~ msgid "1 minute" +#~ msgstr "" -#: superset/forms.py:905 -msgid "RGB Color" -msgstr "" +#~ msgid "5 minutes" +#~ msgstr "" -#: superset/forms.py:915 -msgid "The color for points and clusters in RGB" -msgstr "" +#~ msgid "1 hour" +#~ msgstr "" -#: superset/forms.py:978 -msgid "SQL" -msgstr "" +#~ msgid "6 hour" +#~ msgstr "" -#: superset/forms.py:980 -msgid "This section exposes ways to include snippets of SQL in your query" -msgstr "" +#~ msgid "1 day" +#~ msgstr "" -#: superset/forms.py:991 -msgid "Time Grain" -msgstr "" +#~ msgid "7 days" +#~ msgstr "" -#: superset/forms.py:994 -msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity.The options here are defined on a per database engine basis " -"in the Superset source code" -msgstr "" +#~ msgid "Domain" +#~ msgstr "" -#: superset/forms.py:1027 superset/forms.py:1031 -msgid "Filter 1" -msgstr "" +#~ msgid "The time unit used for the grouping of blocks" +#~ msgstr "" -#: superset/forms.py:1036 -msgid "Super" -msgstr "" +#~ msgid "Subdomain" +#~ msgstr "" -#: superset/forms.py:1040 -msgid "Time" -msgstr "" +#~ msgid "min" +#~ msgstr "" -#: superset/forms.py:1045 -msgid "Time related form attributes" -msgstr "" +#~ msgid "Link Length" +#~ msgstr "" -#: superset/models.py:409 -msgid "quarter" -msgstr "" +#~ msgid "Link length in the force layout" +#~ msgstr "" -#: superset/models.py:410 -msgid "week_ending_saturday" -msgstr "" +#~ msgid "Charge" +#~ msgstr "" -#: superset/models.py:412 -msgid "week_start_sunday" -msgstr "" +#~ msgid "Charge in the force layout" +#~ msgstr "" -#: superset/models.py:433 -msgid "second" -msgstr "" +#~ msgid "Resample Rule" +#~ msgstr "" -#: superset/models.py:434 -msgid "minute" -msgstr "" +#~ msgid "1T" +#~ msgstr "" -#: superset/models.py:620 -msgid "" -"Datetime column not provided as part table configuration and is required " -"by this type of chart" -msgstr "" +#~ msgid "1H" +#~ msgstr "" -#: superset/models.py:1328 -msgid "No data was returned." -msgstr "" +#~ msgid "1D" +#~ msgstr "" -#: superset/views.py:203 -msgid "" -"Whether to make this column available as a [Time Granularity] option, " -"column has to be DATETIME or DATETIME-like" -msgstr "" +#~ msgid "7D" +#~ msgstr "" -#: superset/views.py:230 superset/views.py:259 -msgid "Column" -msgstr "" +#~ msgid "1M" +#~ msgstr "" -#: superset/views.py:231 superset/views.py:296 superset/views.py:336 -msgid "Verbose Name" -msgstr "" +#~ msgid "1AS" +#~ msgstr "" -#: superset/views.py:232 superset/views.py:295 superset/views.py:335 -#: superset/views.py:537 superset/views.py:691 -msgid "Description" -msgstr "" +#~ msgid "Pandas resample rule" +#~ msgstr "" -#: superset/views.py:233 superset/views.py:262 -msgid "Groupable" -msgstr "" +#~ msgid "Resample How" +#~ msgstr "" -#: superset/views.py:234 superset/views.py:263 -msgid "Filterable" -msgstr "" +#~ msgid "mean" +#~ msgstr "" -#: superset/views.py:235 superset/views.py:299 superset/views.py:433 -#: superset/views.py:543 -msgid "Table" -msgstr "" +#~ msgid "sum" +#~ msgstr "" -#: superset/views.py:236 superset/views.py:264 -msgid "Count Distinct" -msgstr "" +#~ msgid "median" +#~ msgstr "" -#: superset/views.py:237 superset/views.py:265 -msgid "Sum" -msgstr "" +#~ msgid "Pandas resample how" +#~ msgstr "" -#: superset/views.py:238 superset/views.py:266 -msgid "Min" -msgstr "" +#~ msgid "Resample Fill Method" +#~ msgstr "" -#: superset/views.py:239 superset/views.py:267 -msgid "Max" -msgstr "" +#~ msgid "ffill" +#~ msgstr "" -#: superset/views.py:240 -msgid "Expression" -msgstr "" +#~ msgid "bfill" +#~ msgstr "" -#: superset/views.py:241 -msgid "Is temporal" -msgstr "" +#~ msgid "Pandas resample fill method" +#~ msgstr "" -#: superset/views.py:242 -msgid "Datetime Format" -msgstr "" +#~ msgid "Since" +#~ msgstr "" -#: superset/views.py:243 -msgid "Database Expression" -msgstr "" +#~ msgid "1 hour ago" +#~ msgstr "" -#: superset/views.py:260 superset/views.py:297 superset/views.py:337 -#: superset/views.py:568 -msgid "Type" -msgstr "" +#~ msgid "12 hours ago" +#~ msgstr "" -#: superset/views.py:261 superset/views.py:536 -msgid "Datasource" -msgstr "" +#~ msgid "1 day ago" +#~ msgstr "" -#: superset/views.py:286 superset/views.py:328 -msgid "" -"Whether the access to this metric is restricted to certain roles. Only " -"roles with the permission 'metric access on XXX (the name of this " -"metric)' are allowed to access this metric" -msgstr "" +#~ msgid "7 days ago" +#~ msgstr "" -#: superset/views.py:298 -msgid "SQL Expression" -msgstr "" +#~ msgid "28 days ago" +#~ msgstr "" -#: superset/views.py:338 superset/views.py:656 -msgid "JSON" -msgstr "" +#~ msgid "90 days ago" +#~ msgstr "" -#: superset/views.py:339 -msgid "Druid Datasource" -msgstr "" +#~ msgid "1 year ago" +#~ msgstr "" -#: superset/views.py:378 superset/views.py:435 -msgid "Database" -msgstr "" +#~ msgid "Until" +#~ msgstr "" -#: superset/views.py:379 -msgid "SQL link" -msgstr "" +#~ msgid "Max Bubble Size" +#~ msgstr "" -#: superset/views.py:380 superset/views.py:534 superset/views.py:610 -msgid "Creator" -msgstr "" +#~ msgid "Whisker/outlier options" +#~ msgstr "" -#: superset/views.py:381 superset/views.py:436 -msgid "Last Changed" -msgstr "" +#~ msgid "Determines how whiskers and outliers are calculated." +#~ msgstr "" -#: superset/views.py:382 -msgid "SQLAlchemy URI" -msgstr "" +#~ msgid "Tukey" +#~ msgstr "" -#: superset/views.py:383 superset/views.py:442 superset/views.py:533 -#: superset/views.py:697 -msgid "Cache Timeout" -msgstr "" +#~ msgid "Min/max (no outliers)" +#~ msgstr "" -#: superset/views.py:384 -msgid "Extra" -msgstr "" +#~ msgid "2/98 percentiles" +#~ msgstr "" -#: superset/views.py:434 -msgid "Changed By" -msgstr "" +#~ msgid "9/91 percentiles" +#~ msgstr "" -#: superset/views.py:437 -msgid "SQL Editor" -msgstr "" +#~ msgid "Ratio" +#~ msgstr "" -#: superset/views.py:438 superset/views.py:693 -msgid "Is Featured" -msgstr "" +#~ msgid "Target aspect ratio for treemap tiles." +#~ msgstr "" -#: superset/views.py:439 -msgid "Schema" -msgstr "" +#~ msgid "Number format" +#~ msgstr "" -#: superset/views.py:440 superset/views.py:695 -msgid "Default Endpoint" -msgstr "" +#~ msgid "Row limit" +#~ msgstr "" -#: superset/views.py:441 -msgid "Offset" -msgstr "" +#~ msgid "Series limit" +#~ msgstr "" -#: superset/views.py:482 superset/views.py:690 -msgid "Cluster" -msgstr "" +#~ msgid "Limits the number of time series that get displayed" +#~ msgstr "" -#: superset/views.py:483 -msgid "Coordinator Host" -msgstr "" +#~ msgid "Rolling" +#~ msgstr "" -#: superset/views.py:484 -msgid "Coordinator Port" -msgstr "" +#~ msgid "Periods" +#~ msgstr "" -#: superset/views.py:485 -msgid "Coordinator Endpoint" -msgstr "" +#~ msgid "Series" +#~ msgstr "" -#: superset/views.py:486 -msgid "Broker Host" -msgstr "" +#~ msgid "Entity" +#~ msgstr "" -#: superset/views.py:487 -msgid "Broker Port" -msgstr "" +#~ msgid "This define the element to be plotted on the chart" +#~ msgstr "" -#: superset/views.py:488 -msgid "Broker Endpoint" -msgstr "" +#~ msgid "X Axis" +#~ msgstr "" -#: superset/views.py:522 -msgid "" -"These parameters are generated dynamically when clicking the save or " -"overwrite button in the explore view. This JSON object is exposed here " -"for reference and for power users who may want to alter specific " -"parameters." -msgstr "" +#~ msgid "Metric assigned to the [X] axis" +#~ msgstr "" -#: superset/views.py:527 -msgid "Duration (in seconds) of the caching timeout for this slice." -msgstr "" +#~ msgid "Y Axis" +#~ msgstr "" -#: superset/templates/superset/welcome.html:26 superset/views.py:535 -msgid "Dashboards" -msgstr "" +#~ msgid "Metric assigned to the [Y] axis" +#~ msgstr "" -#: superset/views.py:538 -msgid "Last Modified" -msgstr "" +#~ msgid "Bubble Size" +#~ msgstr "" -#: superset/views.py:539 superset/views.py:609 -msgid "Owners" -msgstr "" +#~ msgid "URL" +#~ msgstr "" -#: superset/views.py:540 -msgid "Parameters" -msgstr "" +#~ msgid "X Axis Label" +#~ msgstr "" -#: superset/views.py:541 superset/views.py:569 -msgid "Slice" -msgstr "" +#~ msgid "Y Axis Label" +#~ msgstr "" -#: superset/views.py:542 -msgid "Name" -msgstr "" +#~ msgid "Custom WHERE clause" +#~ msgstr "" -#: superset/views.py:544 superset/views.py:570 -msgid "Visualization Type" -msgstr "" +#~ msgid "Custom HAVING clause" +#~ msgstr "" -#: superset/views.py:586 -msgid "" -"This json object describes the positioning of the widgets in the " -"dashboard. It is dynamically generated when adjusting the widgets size " -"and positions by using drag & drop in the dashboard view" -msgstr "" +#~ msgid "Comparison Period Lag" +#~ msgstr "" -#: superset/views.py:591 -msgid "" -"The css for individual dashboards can be altered here, or in the " -"dashboard view where changes are immediately visible" -msgstr "" +#~ msgid "Based on granularity, number of time periods to compare against" +#~ msgstr "" -#: superset/views.py:595 -msgid "To get a readable URL for your dashboard" -msgstr "" +#~ msgid "Comparison suffix" +#~ msgstr "" -#: superset/views.py:596 -msgid "" -"This JSON object is generated dynamically when clicking the save or " -"overwrite button in the dashboard view. It is exposed here for reference " -"and for power users who may want to alter specific parameters." -msgstr "" +#~ msgid "Suffix to apply after the percentage display" +#~ msgstr "" -#: superset/views.py:601 -msgid "Owners is a list of users who can alter the dashboard." -msgstr "" +#~ msgid "Table Timestamp Format" +#~ msgstr "" -#: superset/views.py:605 -msgid "Dashboard" -msgstr "" +#~ msgid "Timestamp Format" +#~ msgstr "" -#: superset/views.py:606 -msgid "Title" -msgstr "" +#~ msgid "Series Height" +#~ msgstr "" -#: superset/views.py:607 -msgid "Slug" -msgstr "" +#~ msgid "Pixel height of each series" +#~ msgstr "" -#: superset/views.py:608 -msgid "Slices" -msgstr "" +#~ msgid "X axis format" +#~ msgstr "" -#: superset/views.py:611 -msgid "Modified" -msgstr "" +#~ msgid "Y axis format" +#~ msgstr "" -#: superset/views.py:612 -msgid "Position JSON" -msgstr "" +#~ msgid "Markup Type" +#~ msgstr "" -#: superset/views.py:613 -msgid "CSS" -msgstr "" +#~ msgid "markdown" +#~ msgstr "" -#: superset/views.py:614 -msgid "JSON Metadata" -msgstr "" +#~ msgid "html" +#~ msgstr "" -#: superset/views.py:615 -msgid "Underlying Tables" -msgstr "" +#~ msgid "Pick your favorite markup language" +#~ msgstr "" -#: superset/views.py:653 -msgid "User" -msgstr "" +#~ msgid "Rotation" +#~ msgstr "" -#: superset/views.py:654 -msgid "Action" -msgstr "" +#~ msgid "random" +#~ msgstr "" -#: superset/views.py:655 -msgid "dttm" -msgstr "" +#~ msgid "flat" +#~ msgstr "" + +#~ msgid "square" +#~ msgstr "" + +#~ msgid "Rotation to apply to words in the cloud" +#~ msgstr "" + +#~ msgid "Line Style" +#~ msgstr "" + +#~ msgid "linear" +#~ msgstr "" + +#~ msgid "basis" +#~ msgstr "" + +#~ msgid "cardinal" +#~ msgstr "" + +#~ msgid "monotone" +#~ msgstr "" + +#~ msgid "step-before" +#~ msgstr "" + +#~ msgid "step-after" +#~ msgstr "" + +#~ msgid "Line interpolation as defined by d3.js" +#~ msgstr "" + +#~ msgid "Code" +#~ msgstr "" + +#~ msgid "Put your code here" +#~ msgstr "" + +#~ msgid "Aggregation function" +#~ msgstr "" + +#~ msgid "max" +#~ msgstr "" + +#~ msgid "stdev" +#~ msgstr "" + +#~ msgid "var" +#~ msgstr "" + +#~ msgid "Font Size From" +#~ msgstr "" + +#~ msgid "Font size for the smallest value in the list" +#~ msgstr "" + +#~ msgid "Font Size To" +#~ msgstr "" + +#~ msgid "Font size for the biggest value in the list" +#~ msgstr "" + +#~ msgid "Range Filter" +#~ msgstr "" -#: superset/views.py:683 -msgid "Timezone offset (in hours) for this datasource" -msgstr "" +#~ msgid "Whether to display the time range interactive selector" +#~ msgstr "" -#: superset/views.py:689 -msgid "Data Source" -msgstr "" +#~ msgid "Data Table" +#~ msgstr "" -#: superset/views.py:692 -msgid "Owner" -msgstr "" +#~ msgid "Whether to display the interactive data table" +#~ msgstr "" -#: superset/views.py:694 -msgid "Is Hidden" -msgstr "" +#~ msgid "Search Box" +#~ msgstr "" -#: superset/views.py:696 -msgid "Time Offset" -msgstr "" +#~ msgid "Whether to include a client side search box" +#~ msgstr "" -#: superset/views.py:1176 -msgid "This view requires the `all_datasource_access` permission" -msgstr "" +#~ msgid "Show Bubbles" +#~ msgstr "" -#: superset/views.py:1249 -msgid "Refresh Druid Metadata" -msgstr "" +#~ msgid "Whether to display bubbles on top of countries" +#~ msgstr "" -#: superset/viz.py:367 -msgid "Table View" -msgstr "" +#~ msgid "Legend" +#~ msgstr "" -#: superset/viz.py:370 -msgid "GROUP BY" -msgstr "" +#~ msgid "Whether to display the legend (toggles)" +#~ msgstr "" -#: superset/viz.py:371 -msgid "Use this section if you want a query that aggregates" -msgstr "" +#~ msgid "X bounds" +#~ msgstr "" -#: superset/viz.py:374 -msgid "NOT GROUPED BY" -msgstr "" +#~ msgid "Whether to display the min and max values of the X axis" +#~ msgstr "" -#: superset/viz.py:375 -msgid "Use this section if you want to query atomic rows" -msgstr "" +#~ msgid "Rich Tooltip" +#~ msgstr "" -#: superset/viz.py:378 -msgid "Options" -msgstr "" +#~ msgid "The rich tooltip shows a list of all series for that point in time" +#~ msgstr "" -#: superset/viz.py:429 -msgid "Pivot Table" -msgstr "" +#~ msgid "Y Axis Zero" +#~ msgstr "" -#: superset/viz.py:491 -msgid "Markup" -msgstr "" +#~ msgid "Force the Y axis to start at 0 instead of the minimum value" +#~ msgstr "" -#: superset/viz.py:519 -msgid "Word Cloud" -msgstr "" +#~ msgid "Y Log" +#~ msgstr "" -#: superset/viz.py:551 -msgid "Treemap" -msgstr "" +#~ msgid "Use a log scale for the Y axis" +#~ msgstr "" -#: superset/viz.py:561 superset/viz.py:676 superset/viz.py:783 superset/viz.py:948 -#: superset/viz.py:1093 superset/viz.py:1122 superset/viz.py:1177 -#: superset/viz.py:1682 -msgid "Chart Options" -msgstr "" +#~ msgid "X Log" +#~ msgstr "" -#: superset/viz.py:595 -msgid "Calendar Heatmap" -msgstr "" +#~ msgid "Use a log scale for the X axis" +#~ msgstr "" -#: superset/viz.py:666 -msgid "Box Plot" -msgstr "" +#~ msgid "Donut" +#~ msgstr "" -#: superset/viz.py:773 -msgid "Bubble Chart" -msgstr "" +#~ msgid "Do you want a donut or a pie?" +#~ msgstr "" -#: superset/viz.py:842 -msgid "Big Number with Trendline" -msgstr "" +#~ msgid "Contribution" +#~ msgstr "" -#: superset/viz.py:892 -msgid "Big Number" -msgstr "" +#~ msgid "Compute the contribution to the total" +#~ msgstr "" -#: superset/viz.py:938 -msgid "Time Series - Line Chart" -msgstr "" +#~ msgid "Period Ratio" +#~ msgstr "" -#: superset/viz.py:958 -msgid "Advanced Analytics" -msgstr "" +#~ msgid "Time Shift" +#~ msgstr "" -#: superset/viz.py:959 -msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" -msgstr "" +#~ msgid "Subheader" +#~ msgstr "" -#: superset/viz.py:1091 -msgid "Time Series - Bar Chart" -msgstr "" +#~ msgid "Description text that shows up below your Big Number" +#~ msgstr "" -#: superset/viz.py:1111 -msgid "Time Series - Percent Change" -msgstr "" +#~ msgid "Base layer map style" +#~ msgstr "" -#: superset/viz.py:1119 -msgid "Time Series - Stacked" -msgstr "" +#~ msgid "Clustering Radius" +#~ msgstr "" -#: superset/viz.py:1138 -msgid "Distribution - NVD3 - Pie Chart" -msgstr "" +#~ msgid "Point Radius" +#~ msgstr "" -#: superset/viz.py:1174 -msgid "Distribution - Bar Chart" -msgstr "" +#~ msgid "Point Radius Unit" +#~ msgstr "" -#: superset/viz.py:1195 -msgid "Breakdowns" -msgstr "" +#~ msgid "The unit of measure for the specified point radius" +#~ msgstr "" -#: superset/viz.py:1196 -msgid "Defines how each series is broken down" -msgstr "" +#~ msgid "Opacity" +#~ msgstr "" -#: superset/viz.py:1261 -msgid "Sunburst" -msgstr "" +#~ msgid "Opacity of all clusters, points, and labels. Between 0 and 1." +#~ msgstr "" -#: superset/viz.py:1276 -msgid "Primary Metric" -msgstr "" +#~ msgid "Zoom" +#~ msgstr "" -#: superset/viz.py:1277 -msgid "The primary metric is used to define the arc segment sizes" -msgstr "" +#~ msgid "Zoom level of the map" +#~ msgstr "" -#: superset/viz.py:1282 -msgid "Secondary Metric" -msgstr "" +#~ msgid "Default latitude" +#~ msgstr "" -#: superset/viz.py:1283 -msgid "" -"This secondary metric is used to define the color as a ratio against the " -"primary metric. If the two metrics match, color is mapped level groups" -msgstr "" +#~ msgid "Latitude of default viewport" +#~ msgstr "" -#: superset/viz.py:1289 -msgid "Hierarchy" -msgstr "" +#~ msgid "Default longitude" +#~ msgstr "" -#: superset/viz.py:1290 -msgid "This defines the level of the hierarchy" -msgstr "" +#~ msgid "Longitude of default viewport" +#~ msgstr "" -#: superset/viz.py:1327 -msgid "Sankey" -msgstr "" +#~ msgid "Live render" +#~ msgstr "" -#: superset/viz.py:1340 superset/viz.py:1410 -msgid "Source / Target" -msgstr "" +#~ msgid "Points and clusters will update as viewport is being changed" +#~ msgstr "" -#: superset/viz.py:1341 superset/viz.py:1411 -msgid "Choose a source and a target" -msgstr "" +#~ msgid "RGB Color" +#~ msgstr "" -#: superset/viz.py:1391 -msgid "Directed Force Layout" -msgstr "" +#~ msgid "The color for points and clusters in RGB" +#~ msgstr "" -#: superset/viz.py:1402 -msgid "Force Layout" -msgstr "" +#~ msgid "SQL" +#~ msgstr "" -#: superset/viz.py:1433 -msgid "World Map" -msgstr "" +#~ msgid "This section exposes ways to include snippets of SQL in your query" +#~ msgstr "" -#: superset/viz.py:1444 -msgid "Bubbles" -msgstr "" +#~ msgid "Time Grain" +#~ msgstr "" -#: superset/viz.py:1453 -msgid "Country Field" -msgstr "" +#~ msgid "Filter 1" +#~ msgstr "" -#: superset/viz.py:1454 -msgid "3 letter code of the country" -msgstr "" +#~ msgid "Super" +#~ msgstr "" -#: superset/viz.py:1457 -msgid "Metric for color" -msgstr "" +#~ msgid "Time" +#~ msgstr "" -#: superset/viz.py:1458 -msgid "Metric that defines the color of the country" -msgstr "" +#~ msgid "Time related form attributes" +#~ msgstr "" -#: superset/viz.py:1461 -msgid "Bubble size" -msgstr "" +#~ msgid "SQL link" +#~ msgstr "" -#: superset/viz.py:1462 -msgid "Metric that defines the size of the bubble" -msgstr "" +#~ msgid "Is Featured" +#~ msgstr "" -#: superset/templates/superset/explore.html:147 superset/viz.py:1507 -msgid "Filters" -msgstr "" +#~ msgid "This view requires the `all_datasource_access` permission" +#~ msgstr "" -#: superset/viz.py:1519 -msgid "Filter fields" -msgstr "" +#~ msgid "Refresh Druid Metadata" +#~ msgstr "" -#: superset/viz.py:1520 -msgid "The fields you want to filter on" -msgstr "" +#~ msgid "GROUP BY" +#~ msgstr "" -#: superset/viz.py:1555 -msgid "iFrame" -msgstr "" +#~ msgid "Use this section if you want a query that aggregates" +#~ msgstr "" -#: superset/viz.py:1573 -msgid "Parallel Coordinates" -msgstr "" +#~ msgid "NOT GROUPED BY" +#~ msgstr "" -#: superset/viz.py:1609 -msgid "Heatmap" -msgstr "" +#~ msgid "Use this section if you want to query atomic rows" +#~ msgstr "" -#: superset/viz.py:1622 -msgid "Heatmap Options" -msgstr "" +#~ msgid "Options" +#~ msgstr "" -#: superset/viz.py:1677 -msgid "Horizon Charts" -msgstr "" +#~ msgid "Chart Options" +#~ msgstr "" -#: superset/viz.py:1693 -msgid "Mapbox" -msgstr "" +#~ msgid "Advanced Analytics" +#~ msgstr "" -#: superset/viz.py:1707 -msgid "Points" -msgstr "" +#~ msgid "Breakdowns" +#~ msgstr "" -#: superset/viz.py:1713 -msgid "Labelling" -msgstr "" +#~ msgid "Defines how each series is broken down" +#~ msgstr "" -#: superset/viz.py:1719 -msgid "Visual Tweaks" -msgstr "" +#~ msgid "Primary Metric" +#~ msgstr "" -#: superset/viz.py:1726 -msgid "Viewport" -msgstr "" +#~ msgid "The primary metric is used to define the arc segment sizes" +#~ msgstr "" -#: superset/viz.py:1736 -msgid "Longitude" -msgstr "" +#~ msgid "Secondary Metric" +#~ msgstr "" -#: superset/viz.py:1737 -msgid "Column containing longitude data" -msgstr "" +#~ msgid "Hierarchy" +#~ msgstr "" -#: superset/viz.py:1740 -msgid "Latitude" -msgstr "" +#~ msgid "This defines the level of the hierarchy" +#~ msgstr "" -#: superset/viz.py:1741 -msgid "Column containing latitude data" -msgstr "" +#~ msgid "Source / Target" +#~ msgstr "" -#: superset/viz.py:1744 -msgid "Cluster label aggregator" -msgstr "" +#~ msgid "Choose a source and a target" +#~ msgstr "" -#: superset/viz.py:1745 -msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." -msgstr "" +#~ msgid "Force Layout" +#~ msgstr "" -#: superset/viz.py:1750 -msgid "Tooltip" -msgstr "" +#~ msgid "Bubbles" +#~ msgstr "" -#: superset/viz.py:1751 -msgid "Show a tooltip when hovering over points and clusters describing the label" -msgstr "" +#~ msgid "Country Field" +#~ msgstr "" -#: superset/viz.py:1756 -msgid "" -"One or many fields to group by. If grouping, latitude and longitude " -"columns must be present." -msgstr "" +#~ msgid "3 letter code of the country" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:36 -msgid "Profile" -msgstr "" +#~ msgid "Metric for color" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:37 -msgid "Logout" -msgstr "" +#~ msgid "Metric that defines the color of the country" +#~ msgstr "" -#: superset/templates/appbuilder/navbar_right.html:42 -msgid "Login" -msgstr "" +#~ msgid "Bubble size" +#~ msgstr "" -#: superset/templates/superset/explore.html:34 -#: superset/templates/superset/explore.html:241 -msgid "Query" -msgstr "" +#~ msgid "Metric that defines the size of the bubble" +#~ msgstr "" -#: superset/templates/superset/explore.html:43 -#: superset/templates/superset/explore.html:306 -msgid "Save" -msgstr "" +#~ msgid "Filter fields" +#~ msgstr "" -#: superset/templates/superset/explore.html:72 -msgid "Force refresh" -msgstr "" +#~ msgid "The fields you want to filter on" +#~ msgstr "" -#: superset/templates/superset/explore.html:77 -msgid "Short URL" -msgstr "" +#~ msgid "Heatmap Options" +#~ msgstr "" -#: superset/templates/superset/explore.html:79 -msgid "Generate an embeddable iframe" -msgstr "" +#~ msgid "Points" +#~ msgstr "" -#: superset/templates/superset/explore.html:82 -msgid "Export to .json" -msgstr "" +#~ msgid "Labelling" +#~ msgstr "" -#: superset/templates/superset/explore.html:86 -msgid "Export to .csv format" -msgstr "" +#~ msgid "Visual Tweaks" +#~ msgstr "" -#: superset/templates/superset/explore.html:92 -msgid "Query timer" -msgstr "" +#~ msgid "Viewport" +#~ msgstr "" -#: superset/templates/superset/explore.html:94 -msgid "0 sec" -msgstr "" +#~ msgid "Longitude" +#~ msgstr "" -#: superset/templates/superset/explore.html:100 -msgid "View database query" -msgstr "" +#~ msgid "Column containing longitude data" +#~ msgstr "" -#: superset/templates/superset/explore.html:101 -msgid "query" -msgstr "" +#~ msgid "Latitude" +#~ msgstr "" -#: superset/templates/superset/explore.html:150 -msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" -msgstr "" +#~ msgid "Column containing latitude data" +#~ msgstr "" -#: superset/templates/superset/explore.html:168 -msgid "Add filter" -msgstr "" +#~ msgid "Cluster label aggregator" +#~ msgstr "" -#: superset/templates/superset/explore.html:247 -#: superset/templates/superset/explore.html:265 -msgid "Close" -msgstr "" +#~ msgid "Tooltip" +#~ msgstr "" -#: superset/templates/superset/explore.html:259 -msgid "Datasource Description" -msgstr "" +#~ msgid "Query" +#~ msgstr "" -#: superset/templates/superset/explore.html:277 -msgid "Save a Slice" -msgstr "" +#~ msgid "Save" +#~ msgstr "" -#: superset/templates/superset/explore.html:309 -msgid "Save & go to dashboard" -msgstr "" +#~ msgid "Force refresh" +#~ msgstr "" -#: superset/templates/superset/explore.html:312 -msgid "Cancel" -msgstr "" +#~ msgid "Short URL" +#~ msgstr "" -#: superset/templates/superset/sql.html:12 -msgid "Run!" -msgstr "" +#~ msgid "Generate an embeddable iframe" +#~ msgstr "" -#: superset/templates/superset/sql.html:13 -msgid "Create View" -msgstr "" +#~ msgid "Export to .json" +#~ msgstr "" -#: superset/templates/superset/welcome.html:8 -#: superset/templates/superset/welcome.html:14 -msgid "Welcome!" -msgstr "" +#~ msgid "Export to .csv format" +#~ msgstr "" -#: superset/templates/superset/models/database/macros.html:4 -msgid "Test Connection" -msgstr "" +#~ msgid "Query timer" +#~ msgstr "" -#~ msgid "Databases" +#~ msgid "0 sec" #~ msgstr "" -#~ msgid "Sources" +#~ msgid "View database query" #~ msgstr "" -#~ msgid "Tables" +#~ msgid "query" #~ msgstr "" -#~ msgid "Druid Clusters" +#~ msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" #~ msgstr "" -#~ msgid "Action Log" +#~ msgid "Add filter" #~ msgstr "" -#~ msgid "Security" +#~ msgid "Close" #~ msgstr "" -#~ msgid "Druid Datasources" +#~ msgid "Datasource Description" #~ msgstr "" -#~ msgid "CSS Templates" +#~ msgid "Save a Slice" #~ msgstr "" -#~ msgid "Documentation" +#~ msgid "Save & go to dashboard" #~ msgstr "" -#~ msgid "Standalone version, use to embed anywhere" +#~ msgid "Run!" #~ msgstr "" -#~ msgid "Overwrite" +#~ msgid "Create View" #~ msgstr "" -#~ msgid "Save as" +#~ msgid "Import" +#~ msgstr "" + +#~ msgid "Welcome!" #~ msgstr "" diff --git a/superset/translations/it/LC_MESSAGES/messages.mo b/superset/translations/it/LC_MESSAGES/messages.mo index 034d5c86e1d5b..0106116871914 100644 Binary files a/superset/translations/it/LC_MESSAGES/messages.mo and b/superset/translations/it/LC_MESSAGES/messages.mo differ diff --git a/superset/translations/it/LC_MESSAGES/messages.po b/superset/translations/it/LC_MESSAGES/messages.po old mode 100755 new mode 100644 index cea45ab76dfda..ea7d34d2c4dc2 --- a/superset/translations/it/LC_MESSAGES/messages.po +++ b/superset/translations/it/LC_MESSAGES/messages.po @@ -2,1846 +2,803 @@ # Copyright (C) 2016 ORGANIZATION # This file is distributed under the same license as the Superset project. # Maxime Beauchemin , 2016. +# Maurizio Napolitano , 2017. # msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-07-01 17:17+0800\n" -"PO-Revision-Date: 2016-05-19 16:43+0200\n" -"Last-Translator: Riccardo Magliocchetti " -"\n" +"POT-Creation-Date: 2017-06-04 20:38+0200\n" +"PO-Revision-Date: 2017-06-04 20:36+0200\n" +"Last-Translator: Maurizio Napolitano \n" "Language: it\n" -"Language-Team: it \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Language-Team: Italiano <>\n" +"Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -#: superset/forms.py:140 -msgid "Viz" -msgstr "" - -#: superset/forms.py:143 -msgid "The type of visualization to display" -msgstr "" - -#: superset/forms.py:146 -msgid "Metrics" -msgstr "" +#: superset/db_engine_specs.py:194 superset/db_engine_specs.py:225 +#: superset/db_engine_specs.py:269 superset/db_engine_specs.py:317 +#: superset/db_engine_specs.py:362 superset/db_engine_specs.py:770 +#: superset/db_engine_specs.py:806 superset/db_engine_specs.py:838 +#: superset/db_engine_specs.py:884 +msgid "Time Column" +msgstr "Colonna del Tempo" -#: superset/forms.py:149 superset/forms.py:154 -msgid "One or many metrics to display" -msgstr "" +#: superset/db_engine_specs.py:195 superset/db_engine_specs.py:226 +#: superset/db_engine_specs.py:318 superset/db_engine_specs.py:363 +#: superset/db_engine_specs.py:771 superset/db_engine_specs.py:839 +msgid "second" +msgstr "secondo" -#: superset/forms.py:152 -msgid "Ordering" -msgstr "" +#: superset/db_engine_specs.py:196 superset/db_engine_specs.py:229 +#: superset/db_engine_specs.py:321 superset/db_engine_specs.py:365 +#: superset/db_engine_specs.py:773 superset/db_engine_specs.py:807 +#: superset/db_engine_specs.py:841 superset/db_engine_specs.py:885 +msgid "minute" +msgstr "minuto" -#: superset/forms.py:157 superset/views.py:294 superset/views.py:334 -msgid "Metric" -msgstr "" +#: superset/db_engine_specs.py:197 superset/db_engine_specs.py:233 +#: superset/db_engine_specs.py:323 superset/db_engine_specs.py:367 +#: superset/db_engine_specs.py:779 superset/db_engine_specs.py:809 +#: superset/db_engine_specs.py:843 superset/db_engine_specs.py:891 +msgid "hour" +msgstr "ora" -#: superset/forms.py:160 -msgid "Choose the metric" -msgstr "" +#: superset/db_engine_specs.py:198 superset/db_engine_specs.py:238 +#: superset/db_engine_specs.py:270 superset/db_engine_specs.py:325 +#: superset/db_engine_specs.py:369 superset/db_engine_specs.py:781 +#: superset/db_engine_specs.py:811 superset/db_engine_specs.py:845 +#: superset/db_engine_specs.py:893 +msgid "day" +msgstr "giorno" -#: superset/forms.py:163 -msgid "Chart Style" -msgstr "" +#: superset/db_engine_specs.py:199 superset/db_engine_specs.py:244 +#: superset/db_engine_specs.py:271 superset/db_engine_specs.py:326 +#: superset/db_engine_specs.py:371 superset/db_engine_specs.py:783 +#: superset/db_engine_specs.py:813 superset/db_engine_specs.py:847 +msgid "week" +msgstr "settimana" -#: superset/forms.py:165 -msgid "stack" -msgstr "" +#: superset/db_engine_specs.py:200 superset/db_engine_specs.py:246 +#: superset/db_engine_specs.py:273 superset/db_engine_specs.py:328 +#: superset/db_engine_specs.py:373 superset/db_engine_specs.py:785 +#: superset/db_engine_specs.py:815 superset/db_engine_specs.py:849 +#: superset/db_engine_specs.py:895 +msgid "month" +msgstr "mese" -#: superset/forms.py:166 -msgid "stream" -msgstr "" +#: superset/db_engine_specs.py:201 superset/db_engine_specs.py:248 +#: superset/db_engine_specs.py:330 superset/db_engine_specs.py:375 +#: superset/db_engine_specs.py:787 superset/db_engine_specs.py:817 +#: superset/db_engine_specs.py:851 superset/db_engine_specs.py:897 +msgid "quarter" +msgstr "quartile" -#: superset/forms.py:167 -msgid "expand" -msgstr "" +#: superset/db_engine_specs.py:202 superset/db_engine_specs.py:252 +#: superset/db_engine_specs.py:332 superset/db_engine_specs.py:789 +#: superset/db_engine_specs.py:819 superset/db_engine_specs.py:899 +msgid "year" +msgstr "anno" -#: superset/forms.py:173 -msgid "Color Scheme" -msgstr "" +#: superset/db_engine_specs.py:334 +msgid "week_start_monday" +msgstr "settimana_inizio_lunedì" -#: superset/forms.py:175 -msgid "fire" -msgstr "" +#: superset/db_engine_specs.py:377 superset/db_engine_specs.py:853 +msgid "week_ending_saturday" +msgstr "settimana_fine_domenica" -#: superset/forms.py:176 -msgid "blue_white_yellow" -msgstr "" +#: superset/db_engine_specs.py:380 superset/db_engine_specs.py:856 +msgid "week_start_sunday" +msgstr "settimana_inizio_domenica" -#: superset/forms.py:177 -msgid "white_black" -msgstr "" +#: superset/db_engine_specs.py:775 superset/db_engine_specs.py:887 +msgid "5 minute" +msgstr "5 minuti" -#: superset/forms.py:178 -msgid "black_white" -msgstr "" +#: superset/db_engine_specs.py:777 +msgid "half hour" +msgstr "mezz'ora" -#: superset/forms.py:184 -msgid "Normalize Across" -msgstr "" +#: superset/db_engine_specs.py:889 +msgid "10 minute" +msgstr "10 minuti" -#: superset/forms.py:186 -msgid "heatmap" -msgstr "" +#: superset/viz.py:311 +msgid "Table View" +msgstr "Vista Tabella" -#: superset/forms.py:187 -msgid "x" -msgstr "" +#: superset/viz.py:364 +msgid "Pivot Table" +msgstr "Vista Pivot" -#: superset/forms.py:188 -msgid "y" -msgstr "" +#: superset/viz.py:413 +msgid "Markup" +msgstr "Marcatore" -#: superset/forms.py:191 -msgid "" -"Color will be rendered based on a ratio of the cell against the sum of " -"across this criteria" -msgstr "" +#: superset/viz.py:432 +msgid "Separator" +msgstr "Separatore" -#: superset/forms.py:197 -msgid "Color Scale" -msgstr "" +#: superset/viz.py:448 +msgid "Word Cloud" +msgstr "Cloud di Parole" -#: superset/forms.py:199 -msgid "series" -msgstr "" +#: superset/viz.py:471 +msgid "Treemap" +msgstr "Treemap" -#: superset/forms.py:200 -msgid "overall" -msgstr "" +#: superset/viz.py:497 +msgid "Calendar Heatmap" +msgstr "Calendario di Intensità" -#: superset/forms.py:201 -msgid "change" -msgstr "" +#: superset/viz.py:555 +msgid "Box Plot" +msgstr "Box Plot" -#: superset/forms.py:204 -msgid "Defines how the color are attributed." -msgstr "" +#: superset/viz.py:644 +msgid "Bubble Chart" +msgstr "Grafico a Bolle" -#: superset/forms.py:207 -msgid "Rendering" -msgstr "" +#: superset/viz.py:693 +msgid "Bullet Chart" +msgstr "Grafico a Proiettile" -#: superset/forms.py:209 -msgid "pixelated (Sharp)" -msgstr "" +#: superset/viz.py:742 +msgid "Big Number with Trendline" +msgstr "Numero Grande con Linea del Trend" -#: superset/forms.py:210 -msgid "auto (Smooth)" -msgstr "" +#: superset/viz.py:771 +msgid "Big Number" +msgstr "Numero Grande" -#: superset/forms.py:213 -msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" -msgstr "" +#: superset/viz.py:798 +msgid "Time Series - Line Chart" +msgstr "Serie Temporali - Grafico Lineare" -#: superset/forms.py:218 -msgid "XScale Interval" -msgstr "" +#: superset/viz.py:925 +msgid "Time Series - Dual Axis Line Chart" +msgstr "Serie Temporali - Grafico Lineare ad Assi Duali" -#: superset/forms.py:221 -msgid "Number of step to take between ticks when printing the x scale" -msgstr "" +#: superset/viz.py:1000 +msgid "Time Series - Bar Chart" +msgstr "Serie Temporali - Grafico Barre" -#: superset/forms.py:226 -msgid "YScale Interval" -msgstr "" +#: superset/viz.py:1008 +msgid "Time Series - Percent Change" +msgstr "Serie Temporali - Cambiamento Percentuale" -#: superset/forms.py:229 -msgid "Number of step to take between ticks when printing the y scale" -msgstr "" +#: superset/viz.py:1016 +msgid "Time Series - Stacked" +msgstr "Serie Temporali - Stacked" -#: superset/forms.py:234 -msgid "Stacked Bars" -msgstr "" +#: superset/viz.py:1025 +msgid "Distribution - NVD3 - Pie Chart" +msgstr "Distribuzione - NVD3 - Grafico Torta" -#: superset/forms.py:239 -msgid "Extra Controls" -msgstr "" +#: superset/viz.py:1043 +msgid "Histogram" +msgstr "Istogramma" -#: superset/forms.py:241 -msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." -msgstr "" +#: superset/viz.py:1068 +msgid "Distribution - Bar Chart" +msgstr "Distribuzione - Grafico Barre" -#: superset/forms.py:247 -msgid "Reduce X ticks" -msgstr "" +#: superset/viz.py:1135 +msgid "Sunburst" +msgstr "Sunburst" -#: superset/forms.py:249 -msgid "" -"Reduces the number of X axis ticks to be rendered. If true, the x axis " -"wont overflow and labels may be missing. If false, a minimum width will " -"be applied to columns and the width may overflow into an horizontal " -"scroll." -msgstr "" +#: superset/viz.py:1168 +msgid "Sankey" +msgstr "Sankey" -#: superset/forms.py:257 -msgid "Include Series" -msgstr "" +#: superset/viz.py:1217 +msgid "Directed Force Layout" +msgstr "Disposizione a Forza Diretta" -#: superset/forms.py:259 -msgid "Include series name as an axis" -msgstr "" +#: superset/viz.py:1238 +msgid "Country Map" +msgstr "Mappa della Nazione" -#: superset/forms.py:262 -msgid "Color Metric" -msgstr "" +#: superset/viz.py:1267 +msgid "World Map" +msgstr "Mappa del Mondo" -#: superset/forms.py:265 -msgid "A metric to use for color" -msgstr "" +#: superset/viz.py:1317 +msgid "Filters" +msgstr "Filtri" -#: superset/forms.py:268 -msgid "Country Field Type" -msgstr "" +#: superset/viz.py:1352 +msgid "iFrame" +msgstr "iFrame" -#: superset/forms.py:271 -msgid "Full name" -msgstr "" +#: superset/viz.py:1369 +msgid "Parallel Coordinates" +msgstr "Coordinate Parallele" -#: superset/forms.py:272 -msgid "code International Olympic Committee (cioc)" -msgstr "" +#: superset/viz.py:1394 +msgid "Heatmap" +msgstr "Mappa di Intensità" -#: superset/forms.py:273 -msgid "code ISO 3166-1 alpha-2 (cca2)" -msgstr "" +#: superset/viz.py:1445 +msgid "Horizon Charts" +msgstr "Grafici d'orizzonte" -#: superset/forms.py:274 -msgid "code ISO 3166-1 alpha-3 (cca3)" -msgstr "" +#: superset/viz.py:1456 +msgid "Mapbox" +msgstr "Mapbox" -#: superset/forms.py:276 -msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" -msgstr "" +#: superset/connectors/druid/models.py:934 +msgid "No data was returned." +msgstr "Nessun dato restituito." -#: superset/forms.py:281 -msgid "Group by" -msgstr "" +#: superset/connectors/druid/views.py:37 superset/connectors/sqla/views.py:74 +msgid "Column" +msgstr "Colonna" -#: superset/forms.py:283 -msgid "One or many fields to group by" -msgstr "" +#: superset/connectors/druid/views.py:38 superset/connectors/druid/views.py:97 +#: superset/connectors/sqla/views.py:120 +msgid "Type" +msgstr "Tipo" -#: superset/forms.py:286 superset/forms.py:291 -msgid "Columns" -msgstr "" +#: superset/connectors/druid/views.py:39 superset/views/core.py:306 +#: superset/views/core.py:355 +msgid "Datasource" +msgstr "Sorgente Dati" -#: superset/forms.py:288 -msgid "One or many fields to pivot as columns" -msgstr "" +#: superset/connectors/druid/views.py:40 superset/connectors/sqla/views.py:77 +msgid "Groupable" +msgstr "Raggruppabile" -#: superset/forms.py:293 superset/forms.py:298 superset/forms.py:303 -msgid "Columns to display" -msgstr "" +#: superset/connectors/druid/views.py:41 superset/connectors/sqla/views.py:78 +msgid "Filterable" +msgstr "Filtrabile" -#: superset/forms.py:296 -msgid "X" -msgstr "" +#: superset/connectors/druid/views.py:42 superset/connectors/sqla/views.py:80 +msgid "Count Distinct" +msgstr "Count Distinct" -#: superset/forms.py:301 -msgid "Y" -msgstr "" +#: superset/connectors/druid/views.py:43 superset/connectors/sqla/views.py:81 +msgid "Sum" +msgstr "Sum" -#: superset/forms.py:306 -msgid "Origin" -msgstr "" +#: superset/connectors/druid/views.py:44 superset/connectors/sqla/views.py:82 +msgid "Min" +msgstr "Min" -#: superset/forms.py:308 -msgid "default" -msgstr "" +#: superset/connectors/druid/views.py:45 superset/connectors/sqla/views.py:83 +msgid "Max" +msgstr "Max" -#: superset/forms.py:309 superset/forms.py:467 -msgid "now" +#: superset/connectors/druid/views.py:48 superset/connectors/sqla/views.py:43 +msgid "" +"Whether this column is exposed in the `Filters` section of the explore " +"view." msgstr "" +"Se questa colonna è esposta nella sezione `Filtri` della vista " +"esplorazione." -#: superset/forms.py:312 +#: superset/connectors/druid/views.py:88 superset/connectors/sqla/views.py:102 msgid "" -"Defines the origin where time buckets start, accepts natural dates as in " -"'now', 'sunday' or '1970-01-01'" +"Whether the access to this metric is restricted to certain roles. Only " +"roles with the permission 'metric access on XXX (the name of this " +"metric)' are allowed to access this metric" msgstr "" +"Se l'accesso a questa metrica è limitato a determinati ruoli. Solo i " +"ruoli con l'autorizzazione 'accesso metrico su XXX (il nome di questa " +"metrica)' possono accedervi" -#: superset/forms.py:317 -msgid "Bottom Margin" -msgstr "" +#: superset/connectors/druid/views.py:94 superset/connectors/sqla/views.py:117 +msgid "Metric" +msgstr "Metrica" -#: superset/forms.py:320 -msgid "Bottom marging, in pixels, allowing for more room for axis labels" -msgstr "" +#: superset/connectors/druid/views.py:95 superset/connectors/druid/views.py:205 +#: superset/connectors/sqla/views.py:76 superset/connectors/sqla/views.py:118 +#: superset/views/core.py:356 +msgid "Description" +msgstr "Descrizione" -#: superset/forms.py:325 -msgid "Time Granularity" -msgstr "" +#: superset/connectors/druid/views.py:96 superset/connectors/sqla/views.py:75 +#: superset/connectors/sqla/views.py:119 +msgid "Verbose Name" +msgstr "Nome Completo" -#: superset/forms.py:328 -msgid "all" -msgstr "" +#: superset/connectors/druid/views.py:98 superset/views/core.py:529 +msgid "JSON" +msgstr "JSON" -#: superset/forms.py:329 -msgid "5 seconds" -msgstr "" +#: superset/connectors/druid/views.py:99 +msgid "Druid Datasource" +msgstr "Sorgente Dati Druid" -#: superset/forms.py:330 -msgid "30 seconds" -msgstr "" +#: superset/connectors/druid/views.py:124 +#: superset/connectors/druid/views.py:204 +msgid "Cluster" +msgstr "Cluster" -#: superset/forms.py:331 -msgid "1 minute" -msgstr "" +#: superset/connectors/druid/views.py:125 +msgid "Coordinator Host" +msgstr "Host Coordinatore" -#: superset/forms.py:332 -msgid "5 minutes" -msgstr "" +#: superset/connectors/druid/views.py:126 +msgid "Coordinator Port" +msgstr "Porta Coordinatore" -#: superset/forms.py:333 -msgid "1 hour" -msgstr "" +#: superset/connectors/druid/views.py:127 +msgid "Coordinator Endpoint" +msgstr "Endpoint Coordinatore" -#: superset/forms.py:334 -msgid "6 hour" -msgstr "" +#: superset/connectors/druid/views.py:128 +msgid "Broker Host" +msgstr "Host Broker" -#: superset/forms.py:335 -msgid "1 day" -msgstr "" +#: superset/connectors/druid/views.py:129 +msgid "Broker Port" +msgstr "Porta Broker" -#: superset/forms.py:336 -msgid "7 days" -msgstr "" +#: superset/connectors/druid/views.py:130 +msgid "Broker Endpoint" +msgstr "Endpoint Broker" -#: superset/forms.py:338 +#: superset/connectors/druid/views.py:173 superset/connectors/sqla/views.py:156 msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in '10 seconds', '1 day' or '56 weeks'" +"The list of slices associated with this table. By altering this " +"datasource, you may change how these associated slices behave. Also note " +"that slices need to point to a datasource, so this form will fail at " +"saving if removing slices from a datasource. If you want to change the " +"datasource for a slice, overwrite the slice from the 'explore view'" msgstr "" +"Elenco delle slice associate a questa tabella. Modificando questa origine" +" dati, è possibile modificare le modalità di comportamento delle slice " +"associate. Inoltre, va tenuto presente che le slice devono indicare " +"un'origine dati, pertanto questo modulo non registra le impostazioni " +"qualora si modifica un'origine dati. Se vuoi modificare l'origine dati " +"per una slide, devi sovrascriverla dal 'vista di esplorazione'" -#: superset/forms.py:344 -msgid "Domain" -msgstr "" +#: superset/connectors/druid/views.py:181 superset/connectors/sqla/views.py:164 +msgid "Timezone offset (in hours) for this datasource" +msgstr "Timezone offset (in ore) per questa sorgente dati" -#: superset/forms.py:347 superset/forms.py:361 superset/models.py:417 -#: superset/models.py:435 -msgid "hour" +#: superset/connectors/druid/views.py:185 +msgid "" +"Time expression to use as a predicate when retrieving distinct values to " +"populate the filter component. Only applies when `Enable Filter Select` " +"is on. If you enter `7 days ago`, the distinct list of values in the " +"filter will be populated based on the distinct value over the past week" msgstr "" +"Espressione temporale da utilizzare come predicato durante il recupero di" +" valori distinti per popolare la componente del filtro. Viene applicata " +"solo quando è attivata l'opzione \"Abilita selezione filtro\". Se si " +"inserisce `7 giorni fa`, l'elenco distinto di valori nel filtro verrà " +"popolato in base al valore distinto della settimana passata" -#: superset/forms.py:348 superset/forms.py:362 superset/models.py:419 -#: superset/models.py:427 superset/models.py:436 -msgid "day" +#: superset/connectors/druid/views.py:192 superset/connectors/sqla/views.py:186 +msgid "" +"Whether to populate the filter's dropdown in the explore view's filter " +"section with a list of distinct values fetched from the backend on the " +"fly" msgstr "" +"Usato per popolare la finestra a cascata dei filtri dall'elenco dei " +"valori distinti prelevati dal backend al volo" -#: superset/forms.py:349 superset/forms.py:363 superset/models.py:407 -#: superset/models.py:420 superset/models.py:428 superset/models.py:437 -msgid "week" +#: superset/connectors/druid/views.py:196 superset/connectors/sqla/views.py:200 +msgid "" +"Redirects to this endpoint when clicking on the datasource from the " +"datasource list" msgstr "" +"Rinvia a questo endpoint al clic sulla sorgente dati dall'elenco delle " +"sorgenti dati" -#: superset/forms.py:350 superset/forms.py:364 superset/models.py:408 -#: superset/models.py:422 superset/models.py:429 superset/models.py:438 -msgid "month" -msgstr "" +#: superset/connectors/druid/views.py:202 superset/connectors/sqla/views.py:193 +msgid "Associated Slices" +msgstr "Slice associate" -#: superset/forms.py:351 superset/models.py:439 -msgid "year" -msgstr "" +#: superset/connectors/druid/views.py:203 +msgid "Data Source" +msgstr "Sorgente Dati" -#: superset/forms.py:353 -msgid "The time unit used for the grouping of blocks" -msgstr "" +#: superset/connectors/druid/views.py:206 +msgid "Owner" +msgstr "Proprietario" -#: superset/forms.py:357 -msgid "Subdomain" -msgstr "" +#: superset/connectors/druid/views.py:207 +msgid "Is Hidden" +msgstr "è nascosto" -#: superset/forms.py:360 superset/forms.py:701 -msgid "min" -msgstr "" +#: superset/connectors/druid/views.py:208 superset/connectors/sqla/views.py:198 +msgid "Enable Filter Select" +msgstr "Abilita il filtro di Select" -#: superset/forms.py:366 -msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" -msgstr "" +#: superset/connectors/druid/views.py:209 +msgid "Default Endpoint" +msgstr "Endpoint predefinito" -#: superset/forms.py:371 -msgid "Link Length" -msgstr "" +#: superset/connectors/druid/views.py:210 +msgid "Time Offset" +msgstr "Offset temporale" -#: superset/forms.py:383 -msgid "Link length in the force layout" -msgstr "" +#: superset/connectors/druid/views.py:211 superset/connectors/sqla/views.py:204 +#: superset/views/core.py:242 superset/views/core.py:352 +msgid "Cache Timeout" +msgstr "Cache Timeout" -#: superset/forms.py:386 -msgid "Charge" +#: superset/connectors/sqla/models.py:388 +msgid "" +"Datetime column not provided as part table configuration and is required " +"by this type of chart" msgstr "" +"la colonna Datetime è necessaria per questo tipo di grafico. Nella " +"configurazione della tabella però non è stata definita" -#: superset/forms.py:400 -msgid "Charge in the force layout" -msgstr "" +#: superset/connectors/sqla/models.py:393 +msgid "Metric '{}' is not valid" +msgstr "Metrica '{}' non valida" -#: superset/forms.py:403 superset/models.py:406 superset/models.py:416 -#: superset/models.py:426 superset/models.py:432 -msgid "Time Column" +#: superset/connectors/sqla/views.py:39 +msgid "" +"Whether to make this column available as a [Time Granularity] option, " +"column has to be DATETIME or DATETIME-like" msgstr "" +"Se rendere disponibile questa colonna come opzione [Time Granularity], la" +" colonna deve essere di tipo DATETIME o simile" -#: superset/forms.py:406 +#: superset/connectors/sqla/views.py:46 msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table editor. Also note " -"that the filter below is applied against this column or expression" +"The data type that was inferred by the database. It may be necessary to " +"input a type manually for expression-defined columns in some cases. In " +"most case users should not need to alter this." msgstr "" +"Il tipo di dato è dedotto dal database. In alcuni casi potrebbe essere " +"necessario inserire manualmente un tipo di colonna definito " +"dall'espressione. Nella maggior parte dei casi gli utenti non hanno " +"bisogno di fare questa modifica." -#: superset/forms.py:414 -msgid "Resample Rule" -msgstr "" +#: superset/connectors/sqla/views.py:79 superset/connectors/sqla/views.py:122 +#: superset/connectors/sqla/views.py:194 superset/views/core.py:362 +msgid "Table" +msgstr "Tabella" -#: superset/forms.py:417 -msgid "1T" -msgstr "" +#: superset/connectors/sqla/views.py:84 +msgid "Expression" +msgstr "Espressione" -#: superset/forms.py:418 -msgid "1H" -msgstr "" +#: superset/connectors/sqla/views.py:85 +msgid "Is temporal" +msgstr "è temporale" -#: superset/forms.py:419 -msgid "1D" -msgstr "" +#: superset/connectors/sqla/views.py:86 +msgid "Datetime Format" +msgstr "Formato Datetime" -#: superset/forms.py:420 -msgid "7D" -msgstr "" +#: superset/connectors/sqla/views.py:87 +msgid "Database Expression" +msgstr "Espressione del Database" -#: superset/forms.py:421 -msgid "1M" -msgstr "" +#: superset/connectors/sqla/views.py:121 +msgid "SQL Expression" +msgstr "Espressione SQL" -#: superset/forms.py:422 -msgid "1AS" -msgstr "" +#: superset/connectors/sqla/views.py:165 +msgid "Name of the table that exists in the source database" +msgstr "Nome delle tabella esistente nella sorgente del database" -#: superset/forms.py:424 -msgid "Pandas resample rule" +#: superset/connectors/sqla/views.py:167 +msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" msgstr "" +"Schema, va utilizzato soltanto in alcuni database come Postgres, Redshift" +" e DB2" -#: superset/forms.py:427 -msgid "Resample How" +#: superset/connectors/sqla/views.py:173 +msgid "" +"This fields acts a Superset view, meaning that Superset will run a query " +"against this string as a subquery." msgstr "" +"Questo campo agisce come una vista Superset, il che vuol dire che " +"Superset eseguirà una query su questa stringa come sotto-query." -#: superset/forms.py:431 superset/forms.py:700 -msgid "mean" +#: superset/connectors/sqla/views.py:177 +msgid "" +"Predicate applied when fetching distinct value to populate the filter " +"control component. Supports jinja template syntax. Applies only when " +"`Enable Filter Select` is on." msgstr "" +"Predicato utilizzato quando si fornisce un valore univoco per popolare il" +" componente di controllo del filtro. Supporta la sintassi del template " +"jinja. È utilizzabile solo quando è abilitata l'opzione \"Abilita " +"selezione filtro\"." -#: superset/forms.py:432 superset/forms.py:699 -msgid "sum" -msgstr "" +#: superset/connectors/sqla/views.py:183 +msgid "Redirects to this endpoint when clicking on the table from the table list" +msgstr "Reinvia a questo endpoint al clic sulla tabella dall'elenco delle tabelle" -#: superset/forms.py:433 superset/forms.py:703 -msgid "median" -msgstr "" +#: superset/connectors/sqla/views.py:195 +msgid "Changed By" +msgstr "Modificato da" -#: superset/forms.py:435 -msgid "Pandas resample how" -msgstr "" +#: superset/connectors/sqla/views.py:196 superset/views/core.py:238 +msgid "Database" +msgstr "Database" -#: superset/forms.py:438 -msgid "Resample Fill Method" -msgstr "" +#: superset/connectors/sqla/views.py:197 superset/views/core.py:240 +msgid "Last Changed" +msgstr "Ultima Modifica" -#: superset/forms.py:442 -msgid "ffill" -msgstr "" +#: superset/connectors/sqla/views.py:199 +msgid "Schema" +msgstr "Schema" -#: superset/forms.py:443 -msgid "bfill" -msgstr "" +#: superset/connectors/sqla/views.py:203 +msgid "Offset" +msgstr "Offset" -#: superset/forms.py:445 -msgid "Pandas resample fill method" +#: superset/connectors/sqla/views.py:236 +msgid "" +"The table was created. As part of this two phase configuration process, " +"you should now click the edit button by the new table to configure it." msgstr "" +"Tabella creata. Come parte di questo processo di configurazione in due " +"fasi, è necessario andare sul pulsante di modifica della nuova tabella " +"per configurarla." -#: superset/forms.py:448 -msgid "Since" -msgstr "" +#: superset/templates/appbuilder/navbar_right.html:41 +msgid "Profile" +msgstr "Profilo" -#: superset/forms.py:451 -msgid "1 hour ago" -msgstr "" +#: superset/templates/appbuilder/navbar_right.html:42 +msgid "Logout" +msgstr "Logout" -#: superset/forms.py:452 -msgid "12 hours ago" -msgstr "" +#: superset/templates/appbuilder/navbar_right.html:47 +msgid "Login" +msgstr "Login" -#: superset/forms.py:453 superset/forms.py:468 -msgid "1 day ago" -msgstr "" +#: superset/templates/superset/request_access.html:2 +msgid "No Access!" +msgstr "Nessun Accesso!" -#: superset/forms.py:454 superset/forms.py:469 -msgid "7 days ago" -msgstr "" +#: superset/templates/superset/request_access.html:7 +#, python-format +msgid "You do not have permissions to access the datasource(s): %(name)s." +msgstr "Non hai i permessi per accedere alla/e sorgente/i dati: %(name)s." -#: superset/forms.py:455 superset/forms.py:470 -msgid "28 days ago" -msgstr "" +#: superset/templates/superset/request_access.html:13 +msgid "Request Permissions" +msgstr "Richiesta di Permessi" -#: superset/forms.py:456 superset/forms.py:471 -msgid "90 days ago" -msgstr "" +#: superset/templates/superset/request_access.html:16 +msgid "Cancel" +msgstr "Annulla" -#: superset/forms.py:457 superset/forms.py:472 -msgid "1 year ago" -msgstr "" +#: superset/templates/superset/models/database/macros.html:4 +msgid "Test Connection" +msgstr "Testa la Connessione" -#: superset/forms.py:459 +#: superset/views/core.py:206 +msgid "Expose this DB in SQL Lab" +msgstr "Esponi questo DB in SQL Lab" + +#: superset/views/core.py:207 msgid "" -"Timestamp from filter. This supports free form typing and natural " -"language as in '1 day ago', '28 days' or '3 years'" +"Allow users to run synchronous queries, this is the default and should " +"work well for queries that can be executed within a web request scope " +"(<~1 minute)" msgstr "" +"Permetti agli utenti di eseguire query sincrone, questa è l'impostazione " +"predefinita e dovrebbe funzionare bene per query che possono essere " +"eseguite con una richiesta web (<-1 minuto)" -#: superset/forms.py:464 -msgid "Until" +#: superset/views/core.py:211 +msgid "" +"Allow users to run queries, against an async backend. This assumes that " +"you have a Celery worker setup as well as a results backend." msgstr "" +"Permetti agli utenti di eseguire query, contro un back-office asincrono. " +"Questo presuppone che si abbia una installazione funzionante di Celery " +"nel backend." -#: superset/forms.py:476 -msgid "Max Bubble Size" -msgstr "" +#: superset/views/core.py:215 +msgid "Allow CREATE TABLE AS option in SQL Lab" +msgstr "Permetti l'opzione CREATE TABLE AS in SQL Lab" -#: superset/forms.py:489 -msgid "Whisker/outlier options" +#: superset/views/core.py:216 +msgid "" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" +" SQL Lab" msgstr "" +"Permetti agli utenti di eseguire dichiarazioni diverse da SELECT (UPDATE," +" DELETE, CREATE, ...) nel SQL Lab" -#: superset/forms.py:491 -msgid "Determines how whiskers and outliers are calculated." +#: superset/views/core.py:220 +msgid "" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " +"table to be created in this schema" msgstr "" +"Se si abilita l'opzione CREATE TABLE AS in SQL Lab, verrà forzata la " +"creazione della tabella con questo schema" -#: superset/forms.py:494 -msgid "Tukey" -msgstr "" +#: superset/views/core.py:234 +msgid "Expose in SQL Lab" +msgstr "Esponi in SQL Lab" -#: superset/forms.py:495 -msgid "Min/max (no outliers)" -msgstr "" +#: superset/views/core.py:235 +msgid "Allow CREATE TABLE AS" +msgstr "Permetti CREATE TABLE AS" -#: superset/forms.py:496 -msgid "2/98 percentiles" -msgstr "" +#: superset/views/core.py:236 +msgid "Allow DML" +msgstr "Permetti DML" -#: superset/forms.py:497 -msgid "9/91 percentiles" -msgstr "" +#: superset/views/core.py:237 +msgid "CTAS Schema" +msgstr "Schema CTAS" -#: superset/forms.py:501 -msgid "Ratio" -msgstr "" +#: superset/views/core.py:239 superset/views/core.py:353 +#: superset/views/core.py:449 superset/views/core.py:513 +msgid "Creator" +msgstr "Creatore" -#: superset/forms.py:503 -msgid "Target aspect ratio for treemap tiles." -msgstr "" +#: superset/views/core.py:241 +msgid "SQLAlchemy URI" +msgstr "URI SQLAlchemy" -#: superset/forms.py:506 superset/viz.py:856 superset/viz.py:905 -msgid "Number format" -msgstr "" +#: superset/views/core.py:243 +msgid "Extra" +msgstr "Extra" -#: superset/forms.py:516 -msgid "" -"D3 format syntax for numbers https: //github.com/mbostock/\n" -"d3/wiki/Formatting" -msgstr "" +#: superset/views/core.py:303 superset/views/core.py:526 +msgid "User" +msgstr "Utente" -#: superset/forms.py:521 -msgid "Row limit" -msgstr "" +#: superset/views/core.py:304 +msgid "User Roles" +msgstr "Ruoli Utente" -#: superset/forms.py:527 -msgid "Series limit" -msgstr "" +#: superset/views/core.py:305 +msgid "Database URL" +msgstr "URL del Database" -#: superset/forms.py:530 -msgid "Limits the number of time series that get displayed" -msgstr "" +#: superset/views/core.py:307 +msgid "Roles to grant" +msgstr "Ruoli per l'accesso" -#: superset/forms.py:534 -msgid "Rolling" -msgstr "" +#: superset/views/core.py:308 +msgid "Created On" +msgstr "Creato il" -#: superset/forms.py:537 +#: superset/views/core.py:341 msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" +"These parameters are generated dynamically when clicking the save or " +"overwrite button in the explore view. This JSON object is exposed here " +"for reference and for power users who may want to alter specific " +"parameters." msgstr "" +"Questi parametri sono generati dinamicamente al clic su salva o con il " +"bottone di sovrascrittura nella vista di esplorazione. Questo oggetto " +"JSON è esposto qui per referenza e per utenti esperti che vogliono " +"modificare parametri specifici." -#: superset/forms.py:542 -msgid "Periods" -msgstr "" +#: superset/views/core.py:346 +msgid "Duration (in seconds) of the caching timeout for this slice." +msgstr "Durata (in secondi) per il timeout della cache per questa slice." -#: superset/forms.py:544 -msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" -msgstr "" +#: superset/views/core.py:354 +msgid "Dashboards" +msgstr "Elenco Dashboard" -#: superset/forms.py:549 superset/viz.py:1192 -msgid "Series" -msgstr "" +#: superset/views/core.py:357 +msgid "Last Modified" +msgstr "Ultima Modifica" -#: superset/forms.py:552 -msgid "" -"Defines the grouping of entities. Each serie is shown as a specific color" -" on the chart and has a legend toggle" -msgstr "" +#: superset/views/core.py:358 superset/views/core.py:448 +msgid "Owners" +msgstr "Proprietari" -#: superset/forms.py:558 -msgid "Entity" -msgstr "" +#: superset/views/core.py:359 +msgid "Parameters" +msgstr "Parametri" -#: superset/forms.py:561 -msgid "This define the element to be plotted on the chart" -msgstr "" +#: superset/views/core.py:360 superset/views/core.py:396 +msgid "Slice" +msgstr "Slice" -#: superset/forms.py:564 -msgid "X Axis" -msgstr "" - -#: superset/forms.py:567 -msgid "Metric assigned to the [X] axis" -msgstr "" - -#: superset/forms.py:570 -msgid "Y Axis" -msgstr "" - -#: superset/forms.py:573 -msgid "Metric assigned to the [Y] axis" -msgstr "" - -#: superset/forms.py:576 -msgid "Bubble Size" -msgstr "" - -#: superset/forms.py:581 -msgid "URL" -msgstr "" - -#: superset/forms.py:582 -msgid "" -"The URL, this field is templated, so you can integrate {{ width }} and/or" -" {{ height }} in your URL string." -msgstr "" - -#: superset/forms.py:589 -msgid "X Axis Label" -msgstr "" - -#: superset/forms.py:593 -msgid "Y Axis Label" -msgstr "" - -#: superset/forms.py:597 -msgid "Custom WHERE clause" -msgstr "" - -#: superset/forms.py:599 -msgid "" -"The text in this box gets included in your query's WHERE clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." -msgstr "" - -#: superset/forms.py:606 -msgid "Custom HAVING clause" -msgstr "" - -#: superset/forms.py:608 -msgid "" -"The text in this box gets included in your query's HAVING clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." -msgstr "" - -#: superset/forms.py:615 -msgid "Comparison Period Lag" -msgstr "" - -#: superset/forms.py:616 -msgid "Based on granularity, number of time periods to compare against" -msgstr "" - -#: superset/forms.py:621 -msgid "Comparison suffix" -msgstr "" - -#: superset/forms.py:622 -msgid "Suffix to apply after the percentage display" -msgstr "" - -#: superset/forms.py:625 -msgid "Table Timestamp Format" -msgstr "" - -#: superset/forms.py:628 -msgid "Timestamp Format" -msgstr "" - -#: superset/forms.py:631 -msgid "Series Height" -msgstr "" - -#: superset/forms.py:634 -msgid "Pixel height of each series" -msgstr "" - -#: superset/forms.py:637 -msgid "X axis format" -msgstr "" - -#: superset/forms.py:640 superset/forms.py:655 -msgid "" -"D3 format syntax for y axis https: //github.com/mbostock/\n" -"d3/wiki/Formatting" -msgstr "" - -#: superset/forms.py:645 -msgid "Y axis format" -msgstr "" - -#: superset/forms.py:660 -msgid "Markup Type" -msgstr "" - -#: superset/forms.py:662 -msgid "markdown" -msgstr "" - -#: superset/forms.py:663 -msgid "html" -msgstr "" - -#: superset/forms.py:666 -msgid "Pick your favorite markup language" -msgstr "" - -#: superset/forms.py:669 -msgid "Rotation" -msgstr "" - -#: superset/forms.py:671 -msgid "random" -msgstr "" - -#: superset/forms.py:672 -msgid "flat" -msgstr "" - -#: superset/forms.py:673 -msgid "square" -msgstr "" - -#: superset/forms.py:676 -msgid "Rotation to apply to words in the cloud" -msgstr "" - -#: superset/forms.py:679 -msgid "Line Style" -msgstr "" - -#: superset/forms.py:681 -msgid "linear" -msgstr "" - -#: superset/forms.py:682 -msgid "basis" -msgstr "" - -#: superset/forms.py:683 -msgid "cardinal" -msgstr "" - -#: superset/forms.py:684 -msgid "monotone" -msgstr "" - -#: superset/forms.py:685 -msgid "step-before" -msgstr "" - -#: superset/forms.py:686 -msgid "step-after" -msgstr "" - -#: superset/forms.py:689 -msgid "Line interpolation as defined by d3.js" -msgstr "" - -#: superset/forms.py:692 -msgid "Code" -msgstr "" - -#: superset/forms.py:693 -msgid "Put your code here" -msgstr "" - -#: superset/forms.py:697 -msgid "Aggregation function" -msgstr "" - -#: superset/forms.py:702 -msgid "max" -msgstr "" - -#: superset/forms.py:704 -msgid "stdev" -msgstr "" - -#: superset/forms.py:705 -msgid "var" -msgstr "" - -#: superset/forms.py:708 -msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" -msgstr "" - -#: superset/forms.py:713 -msgid "Font Size From" -msgstr "" - -#: superset/forms.py:715 -msgid "Font size for the smallest value in the list" -msgstr "" - -#: superset/forms.py:718 -msgid "Font Size To" -msgstr "" - -#: superset/forms.py:720 -msgid "Font size for the biggest value in the list" -msgstr "" - -#: superset/forms.py:723 -msgid "Range Filter" -msgstr "" - -#: superset/forms.py:725 -msgid "Whether to display the time range interactive selector" -msgstr "" - -#: superset/forms.py:729 -msgid "Data Table" -msgstr "" - -#: superset/forms.py:731 -msgid "Whether to display the interactive data table" -msgstr "" - -#: superset/forms.py:734 -msgid "Search Box" -msgstr "" - -#: superset/forms.py:736 -msgid "Whether to include a client side search box" -msgstr "" - -#: superset/forms.py:740 -msgid "Show Bubbles" -msgstr "" - -#: superset/forms.py:742 -msgid "Whether to display bubbles on top of countries" -msgstr "" - -#: superset/forms.py:746 -msgid "Legend" -msgstr "" - -#: superset/forms.py:748 -msgid "Whether to display the legend (toggles)" -msgstr "" - -#: superset/forms.py:751 -msgid "X bounds" -msgstr "" - -#: superset/forms.py:753 -msgid "Whether to display the min and max values of the X axis" -msgstr "" - -#: superset/forms.py:757 -msgid "Rich Tooltip" -msgstr "" - -#: superset/forms.py:759 -msgid "The rich tooltip shows a list of all series for that point in time" -msgstr "" - -#: superset/forms.py:764 -msgid "Y Axis Zero" -msgstr "" - -#: superset/forms.py:766 -msgid "Force the Y axis to start at 0 instead of the minimum value" -msgstr "" - -#: superset/forms.py:771 -msgid "Y Log" -msgstr "" - -#: superset/forms.py:773 -msgid "Use a log scale for the Y axis" -msgstr "" - -#: superset/forms.py:776 -msgid "X Log" -msgstr "" - -#: superset/forms.py:778 -msgid "Use a log scale for the X axis" -msgstr "" - -#: superset/forms.py:781 -msgid "Donut" -msgstr "" - -#: superset/forms.py:783 -msgid "Do you want a donut or a pie?" -msgstr "" - -#: superset/forms.py:786 -msgid "Contribution" -msgstr "" - -#: superset/forms.py:788 -msgid "Compute the contribution to the total" -msgstr "" - -#: superset/forms.py:791 -msgid "Period Ratio" -msgstr "" - -#: superset/forms.py:794 -msgid "" -"[integer] Number of period to compare against, this is relative to the " -"granularity selected" -msgstr "" - -#: superset/forms.py:799 -msgid "Time Shift" -msgstr "" - -#: superset/forms.py:801 -msgid "" -"Overlay a timeseries from a relative time period. Expects relative time " -"delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days" -msgstr "" - -#: superset/forms.py:808 -msgid "Subheader" -msgstr "" - -#: superset/forms.py:809 -msgid "Description text that shows up below your Big Number" -msgstr "" - -#: superset/forms.py:816 -msgid "" -"'count' is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." -msgstr "" - -#: superset/forms.py:832 -msgid "Base layer map style" -msgstr "" - -#: superset/forms.py:835 -msgid "Clustering Radius" -msgstr "" - -#: superset/forms.py:848 -msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." -msgstr "" - -#: superset/forms.py:854 -msgid "Point Radius" -msgstr "" - -#: superset/forms.py:857 -msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or 'Auto', which scales the point based on the largest" -" cluster" -msgstr "" - -#: superset/forms.py:863 -msgid "Point Radius Unit" -msgstr "" - -#: superset/forms.py:870 -msgid "The unit of measure for the specified point radius" -msgstr "" - -#: superset/forms.py:873 -msgid "Opacity" -msgstr "" - -#: superset/forms.py:875 -msgid "Opacity of all clusters, points, and labels. Between 0 and 1." -msgstr "" - -#: superset/forms.py:880 -msgid "Zoom" -msgstr "" - -#: superset/forms.py:883 -msgid "Zoom level of the map" -msgstr "" - -#: superset/forms.py:887 -msgid "Default latitude" -msgstr "" - -#: superset/forms.py:889 -msgid "Latitude of default viewport" -msgstr "" - -#: superset/forms.py:893 -msgid "Default longitude" -msgstr "" - -#: superset/forms.py:895 -msgid "Longitude of default viewport" -msgstr "" - -#: superset/forms.py:899 -msgid "Live render" -msgstr "" - -#: superset/forms.py:901 -msgid "Points and clusters will update as viewport is being changed" -msgstr "" - -#: superset/forms.py:905 -msgid "RGB Color" -msgstr "" - -#: superset/forms.py:915 -msgid "The color for points and clusters in RGB" -msgstr "" - -#: superset/forms.py:978 -msgid "SQL" -msgstr "" - -#: superset/forms.py:980 -msgid "This section exposes ways to include snippets of SQL in your query" -msgstr "" - -#: superset/forms.py:991 -msgid "Time Grain" -msgstr "" - -#: superset/forms.py:994 -msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity.The options here are defined on a per database engine basis " -"in the Superset source code" -msgstr "" - -#: superset/forms.py:1027 superset/forms.py:1031 -msgid "Filter 1" -msgstr "" - -#: superset/forms.py:1036 -msgid "Super" -msgstr "" - -#: superset/forms.py:1040 -msgid "Time" -msgstr "" - -#: superset/forms.py:1045 -msgid "Time related form attributes" -msgstr "" - -#: superset/models.py:409 -msgid "quarter" -msgstr "" - -#: superset/models.py:410 -msgid "week_ending_saturday" -msgstr "" - -#: superset/models.py:412 -msgid "week_start_sunday" -msgstr "" - -#: superset/models.py:433 -msgid "second" -msgstr "" - -#: superset/models.py:434 -msgid "minute" -msgstr "" - -#: superset/models.py:620 -msgid "" -"Datetime column not provided as part table configuration and is required " -"by this type of chart" -msgstr "" - -#: superset/models.py:1328 -msgid "No data was returned." -msgstr "" - -#: superset/views.py:203 -msgid "" -"Whether to make this column available as a [Time Granularity] option, " -"column has to be DATETIME or DATETIME-like" -msgstr "" - -#: superset/views.py:230 superset/views.py:259 -msgid "Column" -msgstr "" - -#: superset/views.py:231 superset/views.py:296 superset/views.py:336 -msgid "Verbose Name" -msgstr "" - -#: superset/views.py:232 superset/views.py:295 superset/views.py:335 -#: superset/views.py:537 superset/views.py:691 -msgid "Description" -msgstr "" - -#: superset/views.py:233 superset/views.py:262 -msgid "Groupable" -msgstr "" - -#: superset/views.py:234 superset/views.py:263 -msgid "Filterable" -msgstr "" - -#: superset/views.py:235 superset/views.py:299 superset/views.py:433 -#: superset/views.py:543 -msgid "Table" -msgstr "" - -#: superset/views.py:236 superset/views.py:264 -msgid "Count Distinct" -msgstr "" - -#: superset/views.py:237 superset/views.py:265 -msgid "Sum" -msgstr "" - -#: superset/views.py:238 superset/views.py:266 -msgid "Min" -msgstr "" - -#: superset/views.py:239 superset/views.py:267 -msgid "Max" -msgstr "" - -#: superset/views.py:240 -msgid "Expression" -msgstr "" - -#: superset/views.py:241 -msgid "Is temporal" -msgstr "" - -#: superset/views.py:242 -msgid "Datetime Format" -msgstr "" - -#: superset/views.py:243 -msgid "Database Expression" -msgstr "" - -#: superset/views.py:260 superset/views.py:297 superset/views.py:337 -#: superset/views.py:568 -msgid "Type" -msgstr "" - -#: superset/views.py:261 superset/views.py:536 -msgid "Datasource" -msgstr "" - -#: superset/views.py:286 superset/views.py:328 -msgid "" -"Whether the access to this metric is restricted to certain roles. Only " -"roles with the permission 'metric access on XXX (the name of this " -"metric)' are allowed to access this metric" -msgstr "" - -#: superset/views.py:298 -msgid "SQL Expression" -msgstr "" - -#: superset/views.py:338 superset/views.py:656 -msgid "JSON" -msgstr "" - -#: superset/views.py:339 -msgid "Druid Datasource" -msgstr "" - -#: superset/views.py:378 superset/views.py:435 -msgid "Database" -msgstr "" - -#: superset/views.py:379 -msgid "SQL link" -msgstr "" - -#: superset/views.py:380 superset/views.py:534 superset/views.py:610 -msgid "Creator" -msgstr "" - -#: superset/views.py:381 superset/views.py:436 -msgid "Last Changed" -msgstr "" - -#: superset/views.py:382 -msgid "SQLAlchemy URI" -msgstr "" - -#: superset/views.py:383 superset/views.py:442 superset/views.py:533 -#: superset/views.py:697 -msgid "Cache Timeout" -msgstr "" - -#: superset/views.py:384 -msgid "Extra" -msgstr "" - -#: superset/views.py:434 -msgid "Changed By" -msgstr "" - -#: superset/views.py:437 -msgid "SQL Editor" -msgstr "" - -#: superset/views.py:438 superset/views.py:693 -msgid "Is Featured" -msgstr "" - -#: superset/views.py:439 -msgid "Schema" -msgstr "" - -#: superset/views.py:440 superset/views.py:695 -msgid "Default Endpoint" -msgstr "" - -#: superset/views.py:441 -msgid "Offset" -msgstr "" - -#: superset/views.py:482 superset/views.py:690 -msgid "Cluster" -msgstr "" - -#: superset/views.py:483 -msgid "Coordinator Host" -msgstr "" - -#: superset/views.py:484 -msgid "Coordinator Port" -msgstr "" - -#: superset/views.py:485 -msgid "Coordinator Endpoint" -msgstr "" - -#: superset/views.py:486 -msgid "Broker Host" -msgstr "" - -#: superset/views.py:487 -msgid "Broker Port" -msgstr "" - -#: superset/views.py:488 -msgid "Broker Endpoint" -msgstr "" - -#: superset/views.py:522 -msgid "" -"These parameters are generated dynamically when clicking the save or " -"overwrite button in the explore view. This JSON object is exposed here " -"for reference and for power users who may want to alter specific " -"parameters." -msgstr "" - -#: superset/views.py:527 -msgid "Duration (in seconds) of the caching timeout for this slice." -msgstr "" - -#: superset/templates/superset/welcome.html:26 superset/views.py:535 -msgid "Dashboards" -msgstr "" - -#: superset/views.py:538 -msgid "Last Modified" -msgstr "" - -#: superset/views.py:539 superset/views.py:609 -msgid "Owners" -msgstr "" - -#: superset/views.py:540 -msgid "Parameters" -msgstr "" - -#: superset/views.py:541 superset/views.py:569 -msgid "Slice" -msgstr "" - -#: superset/views.py:542 -msgid "Name" -msgstr "" - -#: superset/views.py:544 superset/views.py:570 -msgid "Visualization Type" -msgstr "" - -#: superset/views.py:586 -msgid "" -"This json object describes the positioning of the widgets in the " -"dashboard. It is dynamically generated when adjusting the widgets size " -"and positions by using drag & drop in the dashboard view" -msgstr "" - -#: superset/views.py:591 -msgid "" -"The css for individual dashboards can be altered here, or in the " -"dashboard view where changes are immediately visible" -msgstr "" - -#: superset/views.py:595 -msgid "To get a readable URL for your dashboard" -msgstr "" - -#: superset/views.py:596 -msgid "" -"This JSON object is generated dynamically when clicking the save or " -"overwrite button in the dashboard view. It is exposed here for reference " -"and for power users who may want to alter specific parameters." -msgstr "" - -#: superset/views.py:601 -msgid "Owners is a list of users who can alter the dashboard." -msgstr "" - -#: superset/views.py:605 -msgid "Dashboard" -msgstr "" - -#: superset/views.py:606 -msgid "Title" -msgstr "" - -#: superset/views.py:607 -msgid "Slug" -msgstr "" - -#: superset/views.py:608 -msgid "Slices" -msgstr "" - -#: superset/views.py:611 -msgid "Modified" -msgstr "" - -#: superset/views.py:612 -msgid "Position JSON" -msgstr "" - -#: superset/views.py:613 -msgid "CSS" -msgstr "" - -#: superset/views.py:614 -msgid "JSON Metadata" -msgstr "" - -#: superset/views.py:615 -msgid "Underlying Tables" -msgstr "" - -#: superset/views.py:653 -msgid "User" -msgstr "" - -#: superset/views.py:654 -msgid "Action" -msgstr "" - -#: superset/views.py:655 -msgid "dttm" -msgstr "" - -#: superset/views.py:683 -msgid "Timezone offset (in hours) for this datasource" -msgstr "" - -#: superset/views.py:689 -msgid "Data Source" -msgstr "" - -#: superset/views.py:692 -msgid "Owner" -msgstr "" - -#: superset/views.py:694 -msgid "Is Hidden" -msgstr "" - -#: superset/views.py:696 -msgid "Time Offset" -msgstr "" - -#: superset/views.py:1176 -msgid "This view requires the `all_datasource_access` permission" -msgstr "" - -#: superset/views.py:1249 -msgid "Refresh Druid Metadata" -msgstr "" - -#: superset/viz.py:367 -msgid "Table View" -msgstr "" - -#: superset/viz.py:370 -msgid "GROUP BY" -msgstr "" - -#: superset/viz.py:371 -msgid "Use this section if you want a query that aggregates" -msgstr "" - -#: superset/viz.py:374 -msgid "NOT GROUPED BY" -msgstr "" - -#: superset/viz.py:375 -msgid "Use this section if you want to query atomic rows" -msgstr "" - -#: superset/viz.py:378 -msgid "Options" -msgstr "" - -#: superset/viz.py:429 -msgid "Pivot Table" -msgstr "" - -#: superset/viz.py:491 -msgid "Markup" -msgstr "" - -#: superset/viz.py:519 -msgid "Word Cloud" -msgstr "" - -#: superset/viz.py:551 -msgid "Treemap" -msgstr "" - -#: superset/viz.py:561 superset/viz.py:676 superset/viz.py:783 superset/viz.py:948 -#: superset/viz.py:1093 superset/viz.py:1122 superset/viz.py:1177 -#: superset/viz.py:1682 -msgid "Chart Options" -msgstr "" - -#: superset/viz.py:595 -msgid "Calendar Heatmap" -msgstr "" - -#: superset/viz.py:666 -msgid "Box Plot" -msgstr "" - -#: superset/viz.py:773 -msgid "Bubble Chart" -msgstr "" - -#: superset/viz.py:842 -msgid "Big Number with Trendline" -msgstr "" - -#: superset/viz.py:892 -msgid "Big Number" -msgstr "" - -#: superset/viz.py:938 -msgid "Time Series - Line Chart" -msgstr "" - -#: superset/viz.py:958 -msgid "Advanced Analytics" -msgstr "" - -#: superset/viz.py:959 -msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" -msgstr "" - -#: superset/viz.py:1091 -msgid "Time Series - Bar Chart" -msgstr "" - -#: superset/viz.py:1111 -msgid "Time Series - Percent Change" -msgstr "" - -#: superset/viz.py:1119 -msgid "Time Series - Stacked" -msgstr "" - -#: superset/viz.py:1138 -msgid "Distribution - NVD3 - Pie Chart" -msgstr "" - -#: superset/viz.py:1174 -msgid "Distribution - Bar Chart" -msgstr "" - -#: superset/viz.py:1195 -msgid "Breakdowns" -msgstr "" - -#: superset/viz.py:1196 -msgid "Defines how each series is broken down" -msgstr "" - -#: superset/viz.py:1261 -msgid "Sunburst" -msgstr "" - -#: superset/viz.py:1276 -msgid "Primary Metric" -msgstr "" - -#: superset/viz.py:1277 -msgid "The primary metric is used to define the arc segment sizes" -msgstr "" +#: superset/views/core.py:361 +msgid "Name" +msgstr "Nome" -#: superset/viz.py:1282 -msgid "Secondary Metric" -msgstr "" +#: superset/views/core.py:363 +msgid "Visualization Type" +msgstr "Tipo di Visualizzazione" -#: superset/viz.py:1283 +#: superset/views/core.py:421 msgid "" -"This secondary metric is used to define the color as a ratio against the " -"primary metric. If the two metrics match, color is mapped level groups" -msgstr "" - -#: superset/viz.py:1289 -msgid "Hierarchy" -msgstr "" - -#: superset/viz.py:1290 -msgid "This defines the level of the hierarchy" -msgstr "" - -#: superset/viz.py:1327 -msgid "Sankey" -msgstr "" - -#: superset/viz.py:1340 superset/viz.py:1410 -msgid "Source / Target" -msgstr "" - -#: superset/viz.py:1341 superset/viz.py:1411 -msgid "Choose a source and a target" -msgstr "" - -#: superset/viz.py:1391 -msgid "Directed Force Layout" -msgstr "" - -#: superset/viz.py:1402 -msgid "Force Layout" -msgstr "" - -#: superset/viz.py:1433 -msgid "World Map" -msgstr "" - -#: superset/viz.py:1444 -msgid "Bubbles" -msgstr "" - -#: superset/viz.py:1453 -msgid "Country Field" -msgstr "" - -#: superset/viz.py:1454 -msgid "3 letter code of the country" -msgstr "" - -#: superset/viz.py:1457 -msgid "Metric for color" -msgstr "" - -#: superset/viz.py:1458 -msgid "Metric that defines the color of the country" -msgstr "" - -#: superset/viz.py:1461 -msgid "Bubble size" -msgstr "" - -#: superset/viz.py:1462 -msgid "Metric that defines the size of the bubble" -msgstr "" - -#: superset/templates/superset/explore.html:147 superset/viz.py:1507 -msgid "Filters" -msgstr "" - -#: superset/viz.py:1519 -msgid "Filter fields" -msgstr "" - -#: superset/viz.py:1520 -msgid "The fields you want to filter on" -msgstr "" - -#: superset/viz.py:1555 -msgid "iFrame" -msgstr "" - -#: superset/viz.py:1573 -msgid "Parallel Coordinates" -msgstr "" - -#: superset/viz.py:1609 -msgid "Heatmap" -msgstr "" - -#: superset/viz.py:1622 -msgid "Heatmap Options" -msgstr "" - -#: superset/viz.py:1677 -msgid "Horizon Charts" -msgstr "" - -#: superset/viz.py:1693 -msgid "Mapbox" -msgstr "" - -#: superset/viz.py:1707 -msgid "Points" -msgstr "" - -#: superset/viz.py:1713 -msgid "Labelling" -msgstr "" - -#: superset/viz.py:1719 -msgid "Visual Tweaks" -msgstr "" - -#: superset/viz.py:1726 -msgid "Viewport" -msgstr "" - -#: superset/viz.py:1736 -msgid "Longitude" -msgstr "" - -#: superset/viz.py:1737 -msgid "Column containing longitude data" -msgstr "" - -#: superset/viz.py:1740 -msgid "Latitude" -msgstr "" - -#: superset/viz.py:1741 -msgid "Column containing latitude data" -msgstr "" - -#: superset/viz.py:1744 -msgid "Cluster label aggregator" +"This json object describes the positioning of the widgets in the " +"dashboard. It is dynamically generated when adjusting the widgets size " +"and positions by using drag & drop in the dashboard view" msgstr "" +"L'oggetto JSON descrive la posizione dei vari widget nella dashboard. È " +"generato automaticamente nel momento in cui se ne cambia la posizione e " +"la dimensione usando la funzione di drag & drop nella vista della " +"dashboard. " -#: superset/viz.py:1745 +#: superset/views/core.py:426 msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." -msgstr "" - -#: superset/viz.py:1750 -msgid "Tooltip" +"The css for individual dashboards can be altered here, or in the " +"dashboard view where changes are immediately visible" msgstr "" +"Il CSS di ogni singola dashboard può essere modificato qui, oppure nella " +"vista della dashboard dove i cambiamenti sono visibili immediatamente" -#: superset/viz.py:1751 -msgid "Show a tooltip when hovering over points and clusters describing the label" -msgstr "" +#: superset/views/core.py:430 +msgid "To get a readable URL for your dashboard" +msgstr "ottenere una URL leggibile per la tua dashboard" -#: superset/viz.py:1756 +#: superset/views/core.py:431 msgid "" -"One or many fields to group by. If grouping, latitude and longitude " -"columns must be present." -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:36 -msgid "Profile" -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:37 -msgid "Logout" -msgstr "" - -#: superset/templates/appbuilder/navbar_right.html:42 -msgid "Login" -msgstr "" - -#: superset/templates/superset/explore.html:34 -#: superset/templates/superset/explore.html:241 -msgid "Query" -msgstr "" - -#: superset/templates/superset/explore.html:43 -#: superset/templates/superset/explore.html:306 -msgid "Save" -msgstr "" - -#: superset/templates/superset/explore.html:72 -msgid "Force refresh" -msgstr "" - -#: superset/templates/superset/explore.html:77 -msgid "Short URL" -msgstr "" - -#: superset/templates/superset/explore.html:79 -msgid "Generate an embeddable iframe" -msgstr "" - -#: superset/templates/superset/explore.html:82 -msgid "Export to .json" -msgstr "" - -#: superset/templates/superset/explore.html:86 -msgid "Export to .csv format" -msgstr "" - -#: superset/templates/superset/explore.html:92 -msgid "Query timer" -msgstr "" - -#: superset/templates/superset/explore.html:94 -msgid "0 sec" -msgstr "" - -#: superset/templates/superset/explore.html:100 -msgid "View database query" -msgstr "" - -#: superset/templates/superset/explore.html:101 -msgid "query" -msgstr "" - -#: superset/templates/superset/explore.html:150 -msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" -msgstr "" - -#: superset/templates/superset/explore.html:168 -msgid "Add filter" -msgstr "" - -#: superset/templates/superset/explore.html:247 -#: superset/templates/superset/explore.html:265 -msgid "Close" -msgstr "" - -#: superset/templates/superset/explore.html:259 -msgid "Datasource Description" -msgstr "" - -#: superset/templates/superset/explore.html:277 -msgid "Save a Slice" -msgstr "" - -#: superset/templates/superset/explore.html:309 -msgid "Save & go to dashboard" -msgstr "" - -#: superset/templates/superset/explore.html:312 -msgid "Cancel" -msgstr "" - -#: superset/templates/superset/sql.html:12 -msgid "Run!" -msgstr "" - -#: superset/templates/superset/sql.html:13 -msgid "Create View" +"This JSON object is generated dynamically when clicking the save or " +"overwrite button in the dashboard view. It is exposed here for reference " +"and for power users who may want to alter specific parameters." msgstr "" +"Questo oggetto JSON è generato in maniera dinamica al clic sul pulsante " +"di salvataggio o sovrascrittura nella vista dashboard. Il JSON è esposto " +"qui come riferimento e per gli utenti esperti che vogliono modificare " +"parametri specifici." -#: superset/templates/superset/welcome.html:8 -#: superset/templates/superset/welcome.html:14 -msgid "Welcome!" -msgstr "" +#: superset/views/core.py:436 +msgid "Owners is a list of users who can alter the dashboard." +msgstr "Proprietari è una lista di utenti che può alterare la dashboard." -#: superset/templates/superset/models/database/macros.html:4 -msgid "Test Connection" -msgstr "" +#: superset/views/core.py:444 superset/views/core.py:511 +msgid "Dashboard" +msgstr "Dashboard" -#~ msgid "Databases" -#~ msgstr "" +#: superset/views/core.py:445 superset/views/core.py:512 +msgid "Title" +msgstr "Titolo" -#~ msgid "Sources" -#~ msgstr "" +#: superset/views/core.py:446 +msgid "Slug" +msgstr "Slug" -#~ msgid "Tables" -#~ msgstr "" +#: superset/views/core.py:447 +msgid "Slices" +msgstr "Slice" -#~ msgid "Druid Clusters" -#~ msgstr "" +#: superset/views/core.py:450 superset/views/core.py:514 +msgid "Modified" +msgstr "Modificato" -#~ msgid "Action Log" -#~ msgstr "" +#: superset/views/core.py:451 +msgid "Position JSON" +msgstr "Posizione del JSON" -#~ msgid "Security" -#~ msgstr "" +#: superset/views/core.py:452 +msgid "CSS" +msgstr "CSS" -#~ msgid "Druid Datasources" -#~ msgstr "" +#: superset/views/core.py:453 +msgid "JSON Metadata" +msgstr "Metadati JSON" -#~ msgid "CSS Templates" -#~ msgstr "" +#: superset/views/core.py:454 +msgid "Underlying Tables" +msgstr "Tabelle sottostanti" -#~ msgid "Documentation" -#~ msgstr "" +#: superset/views/core.py:527 +msgid "Action" +msgstr "Azione" -#~ msgid "Standalone version, use to embed anywhere" -#~ msgstr "" +#: superset/views/core.py:528 +msgid "dttm" +msgstr "dttm" -#~ msgid "Overwrite" -#~ msgstr "" +#: superset/views/core.py:2279 +msgid "SQL Editor" +msgstr "Editor SQL" -#~ msgid "Save as" -#~ msgstr "" +#: superset/views/core.py:2288 +msgid "Query Search" +msgstr "Ricerca Query" diff --git a/superset/translations/zh/LC_MESSAGES/messages.mo b/superset/translations/zh/LC_MESSAGES/messages.mo index c0d8b095ba6aa..534b45a86773c 100644 Binary files a/superset/translations/zh/LC_MESSAGES/messages.mo and b/superset/translations/zh/LC_MESSAGES/messages.mo differ diff --git a/superset/translations/zh/LC_MESSAGES/messages.po b/superset/translations/zh/LC_MESSAGES/messages.po old mode 100755 new mode 100644 index c270381526bbc..f1432ba4e694a --- a/superset/translations/zh/LC_MESSAGES/messages.po +++ b/superset/translations/zh/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-07-01 17:17+0800\n" +"POT-Creation-Date: 2017-06-04 20:38+0200\n" "PO-Revision-Date: 2016-05-01 23:07-0700\n" "Last-Translator: FULL NAME \n" "Language: zh\n" @@ -18,1267 +18,607 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -#: superset/forms.py:140 -msgid "Viz" -msgstr "图表" - -#: superset/forms.py:143 -msgid "The type of visualization to display" -msgstr "显示图表类型" - -#: superset/forms.py:146 -msgid "Metrics" -msgstr "度量" - -#: superset/forms.py:149 superset/forms.py:154 -msgid "One or many metrics to display" -msgstr "显示一个或多个度量" - -#: superset/forms.py:152 -msgid "Ordering" -msgstr "排序" - -#: superset/forms.py:157 superset/views.py:294 superset/views.py:334 -msgid "Metric" -msgstr "度量" - -#: superset/forms.py:160 -msgid "Choose the metric" -msgstr "选择度量" - -#: superset/forms.py:163 -msgid "Chart Style" -msgstr "图表样式" - -#: superset/forms.py:165 -msgid "stack" -msgstr "堆积" - -#: superset/forms.py:166 -msgid "stream" -msgstr "流" - -#: superset/forms.py:167 -msgid "expand" -msgstr "展开" - -#: superset/forms.py:173 -msgid "Color Scheme" -msgstr "配色" - -#: superset/forms.py:175 -msgid "fire" -msgstr "火焰" - -#: superset/forms.py:176 -msgid "blue_white_yellow" -msgstr "蓝白黄" - -#: superset/forms.py:177 -msgid "white_black" -msgstr "白黑" - -#: superset/forms.py:178 -msgid "black_white" -msgstr "黑白" - -#: superset/forms.py:184 -msgid "Normalize Across" -msgstr "标准化" - -#: superset/forms.py:186 -msgid "heatmap" -msgstr "热力图" - -#: superset/forms.py:187 -msgid "x" -msgstr "" - -#: superset/forms.py:188 -msgid "y" -msgstr "" - -#: superset/forms.py:191 -msgid "" -"Color will be rendered based on a ratio of the cell against the sum of " -"across this criteria" -msgstr "颜色将根据比例进行渲染" - -#: superset/forms.py:197 -msgid "Color Scale" -msgstr "色阶" - -#: superset/forms.py:199 -msgid "series" -msgstr "项目" - -#: superset/forms.py:200 -msgid "overall" -msgstr "综合" - -#: superset/forms.py:201 -msgid "change" -msgstr "变化" - -#: superset/forms.py:204 -msgid "Defines how the color are attributed." -msgstr "定义颜色属性" - -#: superset/forms.py:207 -msgid "Rendering" -msgstr "渲染" - -#: superset/forms.py:209 -msgid "pixelated (Sharp)" -msgstr "像素化(锐利)" - -#: superset/forms.py:210 -msgid "auto (Smooth)" -msgstr "自动(平滑)" - -#: superset/forms.py:213 -msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" -msgstr "浏览器渲染图片的方式" - -#: superset/forms.py:218 -msgid "XScale Interval" -msgstr "X轴步长" - -#: superset/forms.py:221 -msgid "Number of step to take between ticks when printing the x scale" -msgstr "X轴每个刻度的单位长度" - -#: superset/forms.py:226 -msgid "YScale Interval" -msgstr "Y轴步长" - -#: superset/forms.py:229 -msgid "Number of step to take between ticks when printing the y scale" -msgstr "Y轴每个刻度的单位长度" - -#: superset/forms.py:234 -msgid "Stacked Bars" -msgstr "堆积" - -#: superset/forms.py:239 -msgid "Extra Controls" -msgstr "扩展控件" - -#: superset/forms.py:241 -msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." -msgstr "是否显示扩展控件" - -#: superset/forms.py:247 -msgid "Reduce X ticks" -msgstr "X轴自适应" - -#: superset/forms.py:249 -msgid "" -"Reduces the number of X axis ticks to be rendered. If true, the x axis " -"wont overflow and labels may be missing. If false, a minimum width will " -"be applied to columns and the width may overflow into an horizontal " -"scroll." -msgstr "当X轴显示不下时,自动调整X轴步长" - -#: superset/forms.py:257 -msgid "Include Series" -msgstr "显示项目" - -#: superset/forms.py:259 -msgid "Include series name as an axis" -msgstr "坐标上显示项目名称" - -#: superset/forms.py:262 -msgid "Color Metric" -msgstr "颜色度量" - -#: superset/forms.py:265 -msgid "A metric to use for color" -msgstr "颜色度量项目" - -#: superset/forms.py:268 -msgid "Country Field Type" -msgstr "国家名称编码方式" - -#: superset/forms.py:271 -msgid "Full name" -msgstr "全名" - -#: superset/forms.py:272 -msgid "code International Olympic Committee (cioc)" -msgstr "国际奥委会编码(cioc)" - -#: superset/forms.py:273 -msgid "code ISO 3166-1 alpha-2 (cca2)" -msgstr "ISO 3166-1 alpha-2编码(cca2)" - -#: superset/forms.py:274 -msgid "code ISO 3166-1 alpha-3 (cca3)" -msgstr "ISO 3166-1 alpha-3编码(cca3)" - -#: superset/forms.py:276 -msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" -msgstr "数据库中国家名称类型" - -#: superset/forms.py:281 -msgid "Group by" -msgstr "分组" - -#: superset/forms.py:283 -msgid "One or many fields to group by" -msgstr "根据一个或多个字段分组" - -#: superset/forms.py:286 superset/forms.py:291 -msgid "Columns" -msgstr "列" - -#: superset/forms.py:288 -msgid "One or many fields to pivot as columns" -msgstr "将一个或多个字段做为列" - -#: superset/forms.py:293 superset/forms.py:298 superset/forms.py:303 -msgid "Columns to display" -msgstr "显示列" - -#: superset/forms.py:296 -msgid "X" -msgstr "" - -#: superset/forms.py:301 -msgid "Y" -msgstr "" - -#: superset/forms.py:306 -msgid "Origin" -msgstr "起点" - -#: superset/forms.py:308 -msgid "default" -msgstr "默认" - -#: superset/forms.py:309 superset/forms.py:467 -msgid "now" -msgstr "现在" - -#: superset/forms.py:312 -msgid "" -"Defines the origin where time buckets start, accepts natural dates as in " -"'now', 'sunday' or '1970-01-01'" -msgstr "定义时间起点,支持'now', 'sunday' or '1970-01-01'等" - -#: superset/forms.py:317 -msgid "Bottom Margin" -msgstr "底部留白" - -#: superset/forms.py:320 -msgid "Bottom marging, in pixels, allowing for more room for axis labels" -msgstr "底部留白的像素大小" - -#: superset/forms.py:325 -msgid "Time Granularity" -msgstr "时间粒度" - -#: superset/forms.py:328 -msgid "all" -msgstr "全部" - -#: superset/forms.py:329 -msgid "5 seconds" -msgstr "5秒" - -#: superset/forms.py:330 -msgid "30 seconds" -msgstr "30秒" - -#: superset/forms.py:331 -msgid "1 minute" -msgstr "1分钟" - -#: superset/forms.py:332 -msgid "5 minutes" -msgstr "5分钟" - -#: superset/forms.py:333 -msgid "1 hour" -msgstr "1小时" - -#: superset/forms.py:334 -msgid "6 hour" -msgstr "6小时" - -#: superset/forms.py:335 -msgid "1 day" -msgstr "1天" - -#: superset/forms.py:336 -msgid "7 days" -msgstr "1周" +#: superset/db_engine_specs.py:194 superset/db_engine_specs.py:225 +#: superset/db_engine_specs.py:269 superset/db_engine_specs.py:317 +#: superset/db_engine_specs.py:362 superset/db_engine_specs.py:770 +#: superset/db_engine_specs.py:806 superset/db_engine_specs.py:838 +#: superset/db_engine_specs.py:884 +msgid "Time Column" +msgstr "时间字段" -#: superset/forms.py:338 -msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in '10 seconds', '1 day' or '56 weeks'" -msgstr "图表时间粒度。可以使用'10 seconds', '1 day', '56 weeks'等" +#: superset/db_engine_specs.py:195 superset/db_engine_specs.py:226 +#: superset/db_engine_specs.py:318 superset/db_engine_specs.py:363 +#: superset/db_engine_specs.py:771 superset/db_engine_specs.py:839 +msgid "second" +msgstr "秒" -#: superset/forms.py:344 -msgid "Domain" -msgstr "区域" +#: superset/db_engine_specs.py:196 superset/db_engine_specs.py:229 +#: superset/db_engine_specs.py:321 superset/db_engine_specs.py:365 +#: superset/db_engine_specs.py:773 superset/db_engine_specs.py:807 +#: superset/db_engine_specs.py:841 superset/db_engine_specs.py:885 +msgid "minute" +msgstr "分" -#: superset/forms.py:347 superset/forms.py:361 superset/models.py:417 -#: superset/models.py:435 +#: superset/db_engine_specs.py:197 superset/db_engine_specs.py:233 +#: superset/db_engine_specs.py:323 superset/db_engine_specs.py:367 +#: superset/db_engine_specs.py:779 superset/db_engine_specs.py:809 +#: superset/db_engine_specs.py:843 superset/db_engine_specs.py:891 msgid "hour" msgstr "小时" -#: superset/forms.py:348 superset/forms.py:362 superset/models.py:419 -#: superset/models.py:427 superset/models.py:436 +#: superset/db_engine_specs.py:198 superset/db_engine_specs.py:238 +#: superset/db_engine_specs.py:270 superset/db_engine_specs.py:325 +#: superset/db_engine_specs.py:369 superset/db_engine_specs.py:781 +#: superset/db_engine_specs.py:811 superset/db_engine_specs.py:845 +#: superset/db_engine_specs.py:893 msgid "day" msgstr "天" -#: superset/forms.py:349 superset/forms.py:363 superset/models.py:407 -#: superset/models.py:420 superset/models.py:428 superset/models.py:437 +#: superset/db_engine_specs.py:199 superset/db_engine_specs.py:244 +#: superset/db_engine_specs.py:271 superset/db_engine_specs.py:326 +#: superset/db_engine_specs.py:371 superset/db_engine_specs.py:783 +#: superset/db_engine_specs.py:813 superset/db_engine_specs.py:847 msgid "week" msgstr "周" -#: superset/forms.py:350 superset/forms.py:364 superset/models.py:408 -#: superset/models.py:422 superset/models.py:429 superset/models.py:438 +#: superset/db_engine_specs.py:200 superset/db_engine_specs.py:246 +#: superset/db_engine_specs.py:273 superset/db_engine_specs.py:328 +#: superset/db_engine_specs.py:373 superset/db_engine_specs.py:785 +#: superset/db_engine_specs.py:815 superset/db_engine_specs.py:849 +#: superset/db_engine_specs.py:895 msgid "month" msgstr "月" -#: superset/forms.py:351 superset/models.py:439 +#: superset/db_engine_specs.py:201 superset/db_engine_specs.py:248 +#: superset/db_engine_specs.py:330 superset/db_engine_specs.py:375 +#: superset/db_engine_specs.py:787 superset/db_engine_specs.py:817 +#: superset/db_engine_specs.py:851 superset/db_engine_specs.py:897 +msgid "quarter" +msgstr "季度" + +#: superset/db_engine_specs.py:202 superset/db_engine_specs.py:252 +#: superset/db_engine_specs.py:332 superset/db_engine_specs.py:789 +#: superset/db_engine_specs.py:819 superset/db_engine_specs.py:899 msgid "year" msgstr "年" -#: superset/forms.py:353 -msgid "The time unit used for the grouping of blocks" -msgstr "每个区域表示的时间段" - -#: superset/forms.py:357 -msgid "Subdomain" -msgstr "方块" - -#: superset/forms.py:360 superset/forms.py:701 -msgid "min" -msgstr "分钟" - -#: superset/forms.py:366 -msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" -msgstr "每个区域内方块表示的时间段。必须比区域时间段小,比时间粒度大。" - -#: superset/forms.py:371 -msgid "Link Length" -msgstr "链接长度" - -#: superset/forms.py:383 -msgid "Link length in the force layout" -msgstr "有向图中的链接长度" - -#: superset/forms.py:386 -msgid "Charge" -msgstr "缩放" - -#: superset/forms.py:400 -msgid "Charge in the force layout" -msgstr "有向图缩放大小" - -#: superset/forms.py:403 superset/models.py:406 superset/models.py:416 -#: superset/models.py:426 superset/models.py:432 -msgid "Time Column" -msgstr "时间字段" - -#: superset/forms.py:406 -msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table editor. Also note " -"that the filter below is applied against this column or expression" -msgstr "图表中的时间字段。可以在表格编辑器中返回任意DATETIME列。" +#: superset/db_engine_specs.py:334 +msgid "week_start_monday" +msgstr "周一为一周开始" -#: superset/forms.py:414 -msgid "Resample Rule" -msgstr "重采样尺度" +#: superset/db_engine_specs.py:377 superset/db_engine_specs.py:853 +msgid "week_ending_saturday" +msgstr "周日为一周开始" -#: superset/forms.py:417 -msgid "1T" -msgstr "" +#: superset/db_engine_specs.py:380 superset/db_engine_specs.py:856 +msgid "week_start_sunday" +msgstr "周日为一周结束" -#: superset/forms.py:418 -msgid "1H" -msgstr "" +#: superset/db_engine_specs.py:775 superset/db_engine_specs.py:887 +msgid "5 minute" +msgstr "5 分钟" -#: superset/forms.py:419 -msgid "1D" -msgstr "" +#: superset/db_engine_specs.py:777 +msgid "half hour" +msgstr "半小时" -#: superset/forms.py:420 -msgid "7D" +#: superset/db_engine_specs.py:889 +msgid "10 minute" msgstr "" -#: superset/forms.py:421 -msgid "1M" -msgstr "" +#: superset/viz.py:311 +msgid "Table View" +msgstr "表视图" -#: superset/forms.py:422 -msgid "1AS" -msgstr "" +#: superset/viz.py:364 +msgid "Pivot Table" +msgstr "透视表" -#: superset/forms.py:424 -msgid "Pandas resample rule" -msgstr "重采样尺度" +#: superset/viz.py:413 +msgid "Markup" +msgstr "标记" -#: superset/forms.py:427 -msgid "Resample How" -msgstr "重采样方式" +#: superset/viz.py:432 +msgid "Separator" +msgstr "分隔符" -#: superset/forms.py:431 superset/forms.py:700 -msgid "mean" -msgstr "平均值" +#: superset/viz.py:448 +msgid "Word Cloud" +msgstr "词汇云" -#: superset/forms.py:432 superset/forms.py:699 -msgid "sum" -msgstr "求和" +#: superset/viz.py:471 +msgid "Treemap" +msgstr "树状图" -#: superset/forms.py:433 superset/forms.py:703 -msgid "median" -msgstr "中间值" +#: superset/viz.py:497 +msgid "Calendar Heatmap" +msgstr "时间热力图" -#: superset/forms.py:435 -msgid "Pandas resample how" -msgstr "重采样方式" +#: superset/viz.py:555 +msgid "Box Plot" +msgstr "箱线图" -#: superset/forms.py:438 -msgid "Resample Fill Method" -msgstr "插值方式" +#: superset/viz.py:644 +msgid "Bubble Chart" +msgstr "气泡图" -#: superset/forms.py:442 -msgid "ffill" -msgstr "" +#: superset/viz.py:693 +msgid "Bullet Chart" +msgstr "子弹图" -#: superset/forms.py:443 -msgid "bfill" -msgstr "" +#: superset/viz.py:742 +msgid "Big Number with Trendline" +msgstr "数字和趋势线" -#: superset/forms.py:445 -msgid "Pandas resample fill method" -msgstr "重采样插值方式" +#: superset/viz.py:771 +msgid "Big Number" +msgstr "数字" -#: superset/forms.py:448 -msgid "Since" -msgstr "起始时间" +#: superset/viz.py:798 +msgid "Time Series - Line Chart" +msgstr "时间序列-折线图" -#: superset/forms.py:451 -msgid "1 hour ago" -msgstr "1小时前" +#: superset/viz.py:925 +msgid "Time Series - Dual Axis Line Chart" +msgstr "时间序列-双轴线图" -#: superset/forms.py:452 -msgid "12 hours ago" -msgstr "12小时前" +#: superset/viz.py:1000 +msgid "Time Series - Bar Chart" +msgstr "时间序列-柱状图" -#: superset/forms.py:453 superset/forms.py:468 -msgid "1 day ago" -msgstr "1天前" +#: superset/viz.py:1008 +msgid "Time Series - Percent Change" +msgstr "时间序列-百分比变化" -#: superset/forms.py:454 superset/forms.py:469 -msgid "7 days ago" -msgstr "7天前" +#: superset/viz.py:1016 +msgid "Time Series - Stacked" +msgstr "时间序列-堆积图" -#: superset/forms.py:455 superset/forms.py:470 -msgid "28 days ago" -msgstr "28天前" +#: superset/viz.py:1025 +msgid "Distribution - NVD3 - Pie Chart" +msgstr "分布-饼图" -#: superset/forms.py:456 superset/forms.py:471 -msgid "90 days ago" -msgstr "90天前" +#: superset/viz.py:1043 +msgid "Histogram" +msgstr "直方图" -#: superset/forms.py:457 superset/forms.py:472 -msgid "1 year ago" -msgstr "1年前" +#: superset/viz.py:1068 +msgid "Distribution - Bar Chart" +msgstr "分布-柱状图" -#: superset/forms.py:459 -msgid "" -"Timestamp from filter. This supports free form typing and natural " -"language as in '1 day ago', '28 days' or '3 years'" -msgstr "时间范围。支持自定义,可使用自然语言,如'1 day ago', '28 days' or '3 years'" +#: superset/viz.py:1135 +msgid "Sunburst" +msgstr "环状层次图" -#: superset/forms.py:464 -msgid "Until" -msgstr "结束时间" +#: superset/viz.py:1168 +msgid "Sankey" +msgstr "蛇形图" -#: superset/forms.py:476 -msgid "Max Bubble Size" -msgstr "气泡最大尺寸" +#: superset/viz.py:1217 +msgid "Directed Force Layout" +msgstr "有向图" -#: superset/forms.py:489 -msgid "Whisker/outlier options" -msgstr "非异常值选项" +#: superset/viz.py:1238 +msgid "Country Map" +msgstr "" -#: superset/forms.py:491 -msgid "Determines how whiskers and outliers are calculated." -msgstr "计算最大/最小非异常值的方法" +#: superset/viz.py:1267 +msgid "World Map" +msgstr "世界地图" -#: superset/forms.py:494 -msgid "Tukey" -msgstr "图基法" +#: superset/viz.py:1317 +msgid "Filters" +msgstr "筛选" -#: superset/forms.py:495 -msgid "Min/max (no outliers)" -msgstr "最小/最大值(无异常值)" +#: superset/viz.py:1352 +msgid "iFrame" +msgstr "内嵌框架" -#: superset/forms.py:496 -msgid "2/98 percentiles" -msgstr "2/98百分比" +#: superset/viz.py:1369 +msgid "Parallel Coordinates" +msgstr "平行坐标" -#: superset/forms.py:497 -msgid "9/91 percentiles" -msgstr "9/91百分比" +#: superset/viz.py:1394 +msgid "Heatmap" +msgstr "热力图" -#: superset/forms.py:501 -msgid "Ratio" -msgstr "比例" +#: superset/viz.py:1445 +msgid "Horizon Charts" +msgstr "水平图" -#: superset/forms.py:503 -msgid "Target aspect ratio for treemap tiles." -msgstr "树状图中方块的比例" +#: superset/viz.py:1456 +msgid "Mapbox" +msgstr "箱图" -#: superset/forms.py:506 superset/viz.py:856 superset/viz.py:905 -msgid "Number format" -msgstr "数字格式" +#: superset/connectors/druid/models.py:934 +msgid "No data was returned." +msgstr "没有数据" -#: superset/forms.py:516 -msgid "" -"D3 format syntax for numbers https: //github.com/mbostock/\n" -"d3/wiki/Formatting" -msgstr "自定义格式请参考 https://github.com/mbostock/d3/wiki/Formatting" +#: superset/connectors/druid/views.py:37 superset/connectors/sqla/views.py:74 +msgid "Column" +msgstr "列" -#: superset/forms.py:521 -msgid "Row limit" -msgstr "行数上限" +#: superset/connectors/druid/views.py:38 superset/connectors/druid/views.py:97 +#: superset/connectors/sqla/views.py:120 +msgid "Type" +msgstr "类型" -#: superset/forms.py:527 -msgid "Series limit" -msgstr "项目上限" +#: superset/connectors/druid/views.py:39 superset/views/core.py:306 +#: superset/views/core.py:355 +msgid "Datasource" +msgstr "数据源" -#: superset/forms.py:530 -msgid "Limits the number of time series that get displayed" -msgstr "设置显示项目的数量上限" +#: superset/connectors/druid/views.py:40 superset/connectors/sqla/views.py:77 +msgid "Groupable" +msgstr "可分组" -#: superset/forms.py:534 -msgid "Rolling" -msgstr "滚动" +#: superset/connectors/druid/views.py:41 superset/connectors/sqla/views.py:78 +msgid "Filterable" +msgstr "可筛选" -#: superset/forms.py:537 -msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" -msgstr "滚动窗口聚合函数,配合[周期]使用" +#: superset/connectors/druid/views.py:42 superset/connectors/sqla/views.py:80 +msgid "Count Distinct" +msgstr "计数" -#: superset/forms.py:542 -msgid "Periods" -msgstr "周期" +#: superset/connectors/druid/views.py:43 superset/connectors/sqla/views.py:81 +msgid "Sum" +msgstr "求和" -#: superset/forms.py:544 -msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" -msgstr "滚动窗口大小,取值和时间粒度相关" +#: superset/connectors/druid/views.py:44 superset/connectors/sqla/views.py:82 +msgid "Min" +msgstr "最小值" -#: superset/forms.py:549 superset/viz.py:1192 -msgid "Series" -msgstr "项目" +#: superset/connectors/druid/views.py:45 superset/connectors/sqla/views.py:83 +msgid "Max" +msgstr "最大值" -#: superset/forms.py:552 +#: superset/connectors/druid/views.py:48 superset/connectors/sqla/views.py:43 msgid "" -"Defines the grouping of entities. Each serie is shown as a specific color" -" on the chart and has a legend toggle" -msgstr "定义分组实体。每个项目有特定的颜色和图例。" - -#: superset/forms.py:558 -msgid "Entity" -msgstr "实体" - -#: superset/forms.py:561 -msgid "This define the element to be plotted on the chart" -msgstr "在图表上绘制的元素" - -#: superset/forms.py:564 -msgid "X Axis" -msgstr "X轴" - -#: superset/forms.py:567 -msgid "Metric assigned to the [X] axis" -msgstr "X轴对应的项目" - -#: superset/forms.py:570 -msgid "Y Axis" -msgstr "Y轴" - -#: superset/forms.py:573 -msgid "Metric assigned to the [Y] axis" -msgstr "Y轴对应的项目" - -#: superset/forms.py:576 -msgid "Bubble Size" -msgstr "气泡大小" - -#: superset/forms.py:581 -msgid "URL" +"Whether this column is exposed in the `Filters` section of the explore " +"view." msgstr "" -#: superset/forms.py:582 +#: superset/connectors/druid/views.py:88 superset/connectors/sqla/views.py:102 msgid "" -"The URL, this field is templated, so you can integrate {{ width }} and/or" -" {{ height }} in your URL string." -msgstr "" - -#: superset/forms.py:589 -msgid "X Axis Label" -msgstr "X轴名称" - -#: superset/forms.py:593 -msgid "Y Axis Label" -msgstr "Y轴名称" - -#: superset/forms.py:597 -msgid "Custom WHERE clause" -msgstr "WHERE语句" - -#: superset/forms.py:599 -msgid "" -"The text in this box gets included in your query's WHERE clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." -msgstr "语句将包含到WHERE子句中,并用AND连接到其他条件。" - -#: superset/forms.py:606 -msgid "Custom HAVING clause" -msgstr "HAVING语句" - -#: superset/forms.py:608 -msgid "" -"The text in this box gets included in your query's HAVING clause, as an " -"AND to other criteria. You can include complex expression, parenthesis " -"and anything else supported by the backend it is directed towards." -msgstr "语句将包含到HAVE子句中,并用AND连接到其他条件" - -#: superset/forms.py:615 -msgid "Comparison Period Lag" -msgstr "滞后比较周期" - -#: superset/forms.py:616 -msgid "Based on granularity, number of time periods to compare against" -msgstr "比较的时间周期,基于时间粒度" - -#: superset/forms.py:621 -msgid "Comparison suffix" -msgstr "后缀文字" - -#: superset/forms.py:622 -msgid "Suffix to apply after the percentage display" -msgstr "百分比后面显示的文本" - -#: superset/forms.py:625 -msgid "Table Timestamp Format" -msgstr "时间格式" - -#: superset/forms.py:628 -msgid "Timestamp Format" -msgstr "时间格式" +"Whether the access to this metric is restricted to certain roles. Only " +"roles with the permission 'metric access on XXX (the name of this " +"metric)' are allowed to access this metric" +msgstr "是否访问受限。只有有权限的用户才能访问。" -#: superset/forms.py:631 -msgid "Series Height" -msgstr "项目高度" +#: superset/connectors/druid/views.py:94 superset/connectors/sqla/views.py:117 +msgid "Metric" +msgstr "度量" -#: superset/forms.py:634 -msgid "Pixel height of each series" -msgstr "每个项目的像素高度" +#: superset/connectors/druid/views.py:95 superset/connectors/druid/views.py:205 +#: superset/connectors/sqla/views.py:76 superset/connectors/sqla/views.py:118 +#: superset/views/core.py:356 +msgid "Description" +msgstr "描述" -#: superset/forms.py:637 -msgid "X axis format" -msgstr "X轴数值格式" +#: superset/connectors/druid/views.py:96 superset/connectors/sqla/views.py:75 +#: superset/connectors/sqla/views.py:119 +msgid "Verbose Name" +msgstr "全称" -#: superset/forms.py:640 superset/forms.py:655 -msgid "" -"D3 format syntax for y axis https: //github.com/mbostock/\n" -"d3/wiki/Formatting" -msgstr "自定义格式请参考 https://github.com/mbostock/d3/wiki/Formatting" +#: superset/connectors/druid/views.py:98 superset/views/core.py:529 +msgid "JSON" +msgstr "" -#: superset/forms.py:645 -msgid "Y axis format" -msgstr "Y轴数值格式" +#: superset/connectors/druid/views.py:99 +msgid "Druid Datasource" +msgstr "Druid数据源" -#: superset/forms.py:660 -msgid "Markup Type" -msgstr "标记类型" +#: superset/connectors/druid/views.py:124 +#: superset/connectors/druid/views.py:204 +msgid "Cluster" +msgstr "集群" -#: superset/forms.py:662 -msgid "markdown" +#: superset/connectors/druid/views.py:125 +msgid "Coordinator Host" msgstr "" -#: superset/forms.py:663 -msgid "html" +#: superset/connectors/druid/views.py:126 +msgid "Coordinator Port" msgstr "" -#: superset/forms.py:666 -msgid "Pick your favorite markup language" -msgstr "选择标记语言" - -#: superset/forms.py:669 -msgid "Rotation" -msgstr "旋转" - -#: superset/forms.py:671 -msgid "random" -msgstr "随机" - -#: superset/forms.py:672 -msgid "flat" -msgstr "水平" - -#: superset/forms.py:673 -msgid "square" -msgstr "方格" - -#: superset/forms.py:676 -msgid "Rotation to apply to words in the cloud" -msgstr "词汇云中词语的旋转方式" - -#: superset/forms.py:679 -msgid "Line Style" -msgstr "线形" - -#: superset/forms.py:681 -msgid "linear" -msgstr "折线" - -#: superset/forms.py:682 -msgid "basis" -msgstr "B样条曲线" - -#: superset/forms.py:683 -msgid "cardinal" -msgstr "基本样条曲线" - -#: superset/forms.py:684 -msgid "monotone" -msgstr "三次插值曲线" - -#: superset/forms.py:685 -msgid "step-before" -msgstr "前阶梯线" - -#: superset/forms.py:686 -msgid "step-after" -msgstr "后阶梯线" - -#: superset/forms.py:689 -msgid "Line interpolation as defined by d3.js" -msgstr "定义线形" - -#: superset/forms.py:692 -msgid "Code" -msgstr "代码" - -#: superset/forms.py:693 -msgid "Put your code here" -msgstr "输入代码" - -#: superset/forms.py:697 -msgid "Aggregation function" -msgstr "聚合函数" - -#: superset/forms.py:702 -msgid "max" -msgstr "最大值" - -#: superset/forms.py:704 -msgid "stdev" -msgstr "标准差" - -#: superset/forms.py:705 -msgid "var" -msgstr "变量值" - -#: superset/forms.py:708 -msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" -msgstr "透视时计算行和列的聚合函数" - -#: superset/forms.py:713 -msgid "Font Size From" -msgstr "最小字体" - -#: superset/forms.py:715 -msgid "Font size for the smallest value in the list" -msgstr "列表中最小值的字体大小" - -#: superset/forms.py:718 -msgid "Font Size To" -msgstr "最大字体" - -#: superset/forms.py:720 -msgid "Font size for the biggest value in the list" -msgstr "列表中最大值的字体大小" - -#: superset/forms.py:723 -msgid "Range Filter" -msgstr "区间过滤" - -#: superset/forms.py:725 -msgid "Whether to display the time range interactive selector" -msgstr "是否显示时间区间选择控件" - -#: superset/forms.py:729 -msgid "Data Table" -msgstr "明细表" - -#: superset/forms.py:731 -msgid "Whether to display the interactive data table" -msgstr "是否显示明细表" - -#: superset/forms.py:734 -msgid "Search Box" -msgstr "搜索框" - -#: superset/forms.py:736 -msgid "Whether to include a client side search box" -msgstr "是否显示搜索框" - -#: superset/forms.py:740 -msgid "Show Bubbles" -msgstr "显示气泡" - -#: superset/forms.py:742 -msgid "Whether to display bubbles on top of countries" -msgstr "是否在国家上显示气泡" - -#: superset/forms.py:746 -msgid "Legend" -msgstr "图例" - -#: superset/forms.py:748 -msgid "Whether to display the legend (toggles)" -msgstr "是否显示图例" - -#: superset/forms.py:751 -msgid "X bounds" -msgstr "X轴边界" - -#: superset/forms.py:753 -msgid "Whether to display the min and max values of the X axis" -msgstr "是否显示X轴的最大最小值" - -#: superset/forms.py:757 -msgid "Rich Tooltip" -msgstr "详细信息" - -#: superset/forms.py:759 -msgid "The rich tooltip shows a list of all series for that point in time" -msgstr "显示特定时间点的所有项目" - -#: superset/forms.py:764 -msgid "Y Axis Zero" -msgstr "Y轴从0开始" - -#: superset/forms.py:766 -msgid "Force the Y axis to start at 0 instead of the minimum value" -msgstr "Y轴不是从最小值开始" - -#: superset/forms.py:771 -msgid "Y Log" -msgstr "Y轴对数刻度" - -#: superset/forms.py:773 -msgid "Use a log scale for the Y axis" -msgstr "Y轴刻度值按照对数分布显示" - -#: superset/forms.py:776 -msgid "X Log" -msgstr "X轴对数刻度" - -#: superset/forms.py:778 -msgid "Use a log scale for the X axis" -msgstr "X轴刻度值按照对数分布显示" - -#: superset/forms.py:781 -msgid "Donut" -msgstr "环形图" - -#: superset/forms.py:783 -msgid "Do you want a donut or a pie?" -msgstr "使用环形图替代饼图" - -#: superset/forms.py:786 -msgid "Contribution" -msgstr "贡献值" - -#: superset/forms.py:788 -msgid "Compute the contribution to the total" -msgstr "在总和中的贡献值" - -#: superset/forms.py:791 -msgid "Period Ratio" -msgstr "周期比" - -#: superset/forms.py:794 -msgid "" -"[integer] Number of period to compare against, this is relative to the " -"granularity selected" -msgstr "[整数]要比较的周期数,和粒度有关" - -#: superset/forms.py:799 -msgid "Time Shift" -msgstr "时间飘移" - -#: superset/forms.py:801 -msgid "" -"Overlay a timeseries from a relative time period. Expects relative time " -"delta in natural language (example: 24 hours, 7 days, 56 weeks, 365 days" -msgstr "相关时间周期内的时间偏移。相对时间,如: 24 hours, 7 days, 56 weeks, 365 days" - -#: superset/forms.py:808 -msgid "Subheader" -msgstr "子标题" - -#: superset/forms.py:809 -msgid "Description text that shows up below your Big Number" -msgstr "在数字下显示的文本" - -#: superset/forms.py:816 -msgid "" -"'count' is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." -msgstr "对分组使用COUNT(*)。" - -#: superset/forms.py:832 -msgid "Base layer map style" +#: superset/connectors/druid/views.py:127 +msgid "Coordinator Endpoint" msgstr "" -#: superset/forms.py:835 -msgid "Clustering Radius" -msgstr "簇半径" - -#: superset/forms.py:848 -msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." -msgstr "定义簇的半径大小(单位为像素)。0表示不显示簇。大量的点会导致显示缓慢。" - -#: superset/forms.py:854 -msgid "Point Radius" -msgstr "点半径" - -#: superset/forms.py:857 -msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or 'Auto', which scales the point based on the largest" -" cluster" -msgstr "不在簇中点的半径。选择'Auto'时根据最大的簇自动调整。" - -#: superset/forms.py:863 -msgid "Point Radius Unit" -msgstr "点半径单位" - -#: superset/forms.py:870 -msgid "The unit of measure for the specified point radius" -msgstr "点半径的测量单位" - -#: superset/forms.py:873 -msgid "Opacity" +#: superset/connectors/druid/views.py:128 +msgid "Broker Host" msgstr "" -#: superset/forms.py:875 -msgid "Opacity of all clusters, points, and labels. Between 0 and 1." +#: superset/connectors/druid/views.py:129 +msgid "Broker Port" msgstr "" -#: superset/forms.py:880 -msgid "Zoom" +#: superset/connectors/druid/views.py:130 +msgid "Broker Endpoint" msgstr "" -#: superset/forms.py:883 -msgid "Zoom level of the map" +#: superset/connectors/druid/views.py:173 superset/connectors/sqla/views.py:156 +msgid "" +"The list of slices associated with this table. By altering this " +"datasource, you may change how these associated slices behave. Also note " +"that slices need to point to a datasource, so this form will fail at " +"saving if removing slices from a datasource. If you want to change the " +"datasource for a slice, overwrite the slice from the 'explore view'" msgstr "" -#: superset/forms.py:887 -msgid "Default latitude" -msgstr "默认纬度" - -#: superset/forms.py:889 -msgid "Latitude of default viewport" -msgstr "视窗默认纬度" - -#: superset/forms.py:893 -msgid "Default longitude" -msgstr "默认经度" - -#: superset/forms.py:895 -msgid "Longitude of default viewport" -msgstr "视窗默认经度" - -#: superset/forms.py:899 -msgid "Live render" -msgstr "实时更新" - -#: superset/forms.py:901 -msgid "Points and clusters will update as viewport is being changed" -msgstr "视窗发生改变时,点和簇实时更新" - -#: superset/forms.py:905 -msgid "RGB Color" -msgstr "" +#: superset/connectors/druid/views.py:181 superset/connectors/sqla/views.py:164 +msgid "Timezone offset (in hours) for this datasource" +msgstr "数据源的时差(单位:小时)" -#: superset/forms.py:915 -msgid "The color for points and clusters in RGB" +#: superset/connectors/druid/views.py:185 +msgid "" +"Time expression to use as a predicate when retrieving distinct values to " +"populate the filter component. Only applies when `Enable Filter Select` " +"is on. If you enter `7 days ago`, the distinct list of values in the " +"filter will be populated based on the distinct value over the past week" msgstr "" -#: superset/forms.py:978 -msgid "SQL" +#: superset/connectors/druid/views.py:192 superset/connectors/sqla/views.py:186 +msgid "" +"Whether to populate the filter's dropdown in the explore view's filter " +"section with a list of distinct values fetched from the backend on the " +"fly" msgstr "" -#: superset/forms.py:980 -msgid "This section exposes ways to include snippets of SQL in your query" -msgstr "用于定制SQL语句" - -#: superset/forms.py:991 -msgid "Time Grain" -msgstr "时间粒度" - -#: superset/forms.py:994 +#: superset/connectors/druid/views.py:196 superset/connectors/sqla/views.py:200 msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity.The options here are defined on a per database engine basis " -"in the Superset source code" -msgstr "图表中的时间粒度。用于替换时间字段默认的时间粒度。" - -#: superset/forms.py:1027 superset/forms.py:1031 -msgid "Filter 1" +"Redirects to this endpoint when clicking on the datasource from the " +"datasource list" msgstr "" -#: superset/forms.py:1036 -msgid "Super" +#: superset/connectors/druid/views.py:202 superset/connectors/sqla/views.py:193 +msgid "Associated Slices" msgstr "" -#: superset/forms.py:1040 -msgid "Time" -msgstr "时间" +#: superset/connectors/druid/views.py:203 +msgid "Data Source" +msgstr "数据源" -#: superset/forms.py:1045 -msgid "Time related form attributes" -msgstr "时间相关的属性" +#: superset/connectors/druid/views.py:206 +msgid "Owner" +msgstr "所有者" -#: superset/models.py:409 -msgid "quarter" -msgstr "季度" +#: superset/connectors/druid/views.py:207 +msgid "Is Hidden" +msgstr "隐藏" -#: superset/models.py:410 -msgid "week_ending_saturday" -msgstr "周日为一周开始" +#: superset/connectors/druid/views.py:208 superset/connectors/sqla/views.py:198 +msgid "Enable Filter Select" +msgstr "" -#: superset/models.py:412 -msgid "week_start_sunday" -msgstr "周日为一周结束" +#: superset/connectors/druid/views.py:209 +msgid "Default Endpoint" +msgstr "" -#: superset/models.py:433 -msgid "second" -msgstr "秒" +#: superset/connectors/druid/views.py:210 +msgid "Time Offset" +msgstr "时间偏移" -#: superset/models.py:434 -msgid "minute" -msgstr "分" +#: superset/connectors/druid/views.py:211 superset/connectors/sqla/views.py:204 +#: superset/views/core.py:242 superset/views/core.py:352 +msgid "Cache Timeout" +msgstr "缓存时间" -#: superset/models.py:620 +#: superset/connectors/sqla/models.py:388 msgid "" "Datetime column not provided as part table configuration and is required " "by this type of chart" msgstr "缺少时间字段" -#: superset/models.py:1328 -msgid "No data was returned." -msgstr "没有数据" +#: superset/connectors/sqla/models.py:393 +msgid "Metric '{}' is not valid" +msgstr "" -#: superset/views.py:203 +#: superset/connectors/sqla/views.py:39 msgid "" "Whether to make this column available as a [Time Granularity] option, " "column has to be DATETIME or DATETIME-like" msgstr "是否将此列作为[时间粒度]选项, 列中的数据类型必须是DATETIME" -#: superset/views.py:230 superset/views.py:259 -msgid "Column" -msgstr "列" - -#: superset/views.py:231 superset/views.py:296 superset/views.py:336 -msgid "Verbose Name" -msgstr "全称" - -#: superset/views.py:232 superset/views.py:295 superset/views.py:335 -#: superset/views.py:537 superset/views.py:691 -msgid "Description" -msgstr "描述" - -#: superset/views.py:233 superset/views.py:262 -msgid "Groupable" -msgstr "可分组" - -#: superset/views.py:234 superset/views.py:263 -msgid "Filterable" -msgstr "可筛选" +#: superset/connectors/sqla/views.py:46 +msgid "" +"The data type that was inferred by the database. It may be necessary to " +"input a type manually for expression-defined columns in some cases. In " +"most case users should not need to alter this." +msgstr "" -#: superset/views.py:235 superset/views.py:299 superset/views.py:433 -#: superset/views.py:543 +#: superset/connectors/sqla/views.py:79 superset/connectors/sqla/views.py:122 +#: superset/connectors/sqla/views.py:194 superset/views/core.py:362 msgid "Table" msgstr "表" -#: superset/views.py:236 superset/views.py:264 -msgid "Count Distinct" -msgstr "计数" - -#: superset/views.py:237 superset/views.py:265 -msgid "Sum" -msgstr "求和" - -#: superset/views.py:238 superset/views.py:266 -msgid "Min" -msgstr "最小值" - -#: superset/views.py:239 superset/views.py:267 -msgid "Max" -msgstr "最大值" - -#: superset/views.py:240 +#: superset/connectors/sqla/views.py:84 msgid "Expression" msgstr "表达式" -#: superset/views.py:241 +#: superset/connectors/sqla/views.py:85 msgid "Is temporal" msgstr "表示时间" -#: superset/views.py:242 +#: superset/connectors/sqla/views.py:86 msgid "Datetime Format" msgstr "时间格式" -#: superset/views.py:243 +#: superset/connectors/sqla/views.py:87 msgid "Database Expression" msgstr "数据库表达式" -#: superset/views.py:260 superset/views.py:297 superset/views.py:337 -#: superset/views.py:568 -msgid "Type" -msgstr "类型" +#: superset/connectors/sqla/views.py:121 +msgid "SQL Expression" +msgstr "SQL表达式" -#: superset/views.py:261 superset/views.py:536 -msgid "Datasource" -msgstr "数据源" +#: superset/connectors/sqla/views.py:165 +msgid "Name of the table that exists in the source database" +msgstr "" + +#: superset/connectors/sqla/views.py:167 +msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" +msgstr "" -#: superset/views.py:286 superset/views.py:328 +#: superset/connectors/sqla/views.py:173 msgid "" -"Whether the access to this metric is restricted to certain roles. Only " -"roles with the permission 'metric access on XXX (the name of this " -"metric)' are allowed to access this metric" -msgstr "是否访问受限。只有有权限的用户才能访问。" +"This fields acts a Superset view, meaning that Superset will run a query " +"against this string as a subquery." +msgstr "" -#: superset/views.py:298 -msgid "SQL Expression" -msgstr "SQL表达式" +#: superset/connectors/sqla/views.py:177 +msgid "" +"Predicate applied when fetching distinct value to populate the filter " +"control component. Supports jinja template syntax. Applies only when " +"`Enable Filter Select` is on." +msgstr "" -#: superset/views.py:338 superset/views.py:656 -msgid "JSON" +#: superset/connectors/sqla/views.py:183 +msgid "Redirects to this endpoint when clicking on the table from the table list" msgstr "" -#: superset/views.py:339 -msgid "Druid Datasource" -msgstr "Druid数据源" +#: superset/connectors/sqla/views.py:195 +msgid "Changed By" +msgstr "修改人" -#: superset/views.py:378 superset/views.py:435 +#: superset/connectors/sqla/views.py:196 superset/views/core.py:238 msgid "Database" msgstr "数据库" -#: superset/views.py:379 -msgid "SQL link" -msgstr "SQL查询" +#: superset/connectors/sqla/views.py:197 superset/views/core.py:240 +msgid "Last Changed" +msgstr "更新时间" + +#: superset/connectors/sqla/views.py:199 +msgid "Schema" +msgstr "模式" + +#: superset/connectors/sqla/views.py:203 +msgid "Offset" +msgstr "偏移" + +#: superset/connectors/sqla/views.py:236 +msgid "" +"The table was created. As part of this two phase configuration process, " +"you should now click the edit button by the new table to configure it." +msgstr "" + +#: superset/templates/appbuilder/navbar_right.html:41 +msgid "Profile" +msgstr "策略" + +#: superset/templates/appbuilder/navbar_right.html:42 +msgid "Logout" +msgstr "退出" -#: superset/views.py:380 superset/views.py:534 superset/views.py:610 -msgid "Creator" -msgstr "作者" +#: superset/templates/appbuilder/navbar_right.html:47 +msgid "Login" +msgstr "登录" -#: superset/views.py:381 superset/views.py:436 -msgid "Last Changed" -msgstr "更新时间" +#: superset/templates/superset/request_access.html:2 +msgid "No Access!" +msgstr "" -#: superset/views.py:382 -msgid "SQLAlchemy URI" +#: superset/templates/superset/request_access.html:7 +#, python-format +msgid "You do not have permissions to access the datasource(s): %(name)s." msgstr "" -#: superset/views.py:383 superset/views.py:442 superset/views.py:533 -#: superset/views.py:697 -msgid "Cache Timeout" -msgstr "缓存时间" +#: superset/templates/superset/request_access.html:13 +msgid "Request Permissions" +msgstr "" -#: superset/views.py:384 -msgid "Extra" -msgstr "扩展" +#: superset/templates/superset/request_access.html:16 +msgid "Cancel" +msgstr "取消" -#: superset/views.py:434 -msgid "Changed By" -msgstr "修改人" +#: superset/templates/superset/models/database/macros.html:4 +msgid "Test Connection" +msgstr "测试连接" -#: superset/views.py:437 -msgid "SQL Editor" -msgstr "SQL查询" +#: superset/views/core.py:206 +msgid "Expose this DB in SQL Lab" +msgstr "" -#: superset/views.py:438 superset/views.py:693 -msgid "Is Featured" -msgstr "是否突出" +#: superset/views/core.py:207 +msgid "" +"Allow users to run synchronous queries, this is the default and should " +"work well for queries that can be executed within a web request scope " +"(<~1 minute)" +msgstr "" -#: superset/views.py:439 -msgid "Schema" -msgstr "模式" +#: superset/views/core.py:211 +msgid "" +"Allow users to run queries, against an async backend. This assumes that " +"you have a Celery worker setup as well as a results backend." +msgstr "" -#: superset/views.py:440 superset/views.py:695 -msgid "Default Endpoint" +#: superset/views/core.py:215 +msgid "Allow CREATE TABLE AS option in SQL Lab" msgstr "" -#: superset/views.py:441 -msgid "Offset" -msgstr "偏移" +#: superset/views/core.py:216 +msgid "" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" +" SQL Lab" +msgstr "" -#: superset/views.py:482 superset/views.py:690 -msgid "Cluster" -msgstr "集群" +#: superset/views/core.py:220 +msgid "" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " +"table to be created in this schema" +msgstr "" -#: superset/views.py:483 -msgid "Coordinator Host" +#: superset/views/core.py:234 +msgid "Expose in SQL Lab" msgstr "" -#: superset/views.py:484 -msgid "Coordinator Port" +#: superset/views/core.py:235 +msgid "Allow CREATE TABLE AS" msgstr "" -#: superset/views.py:485 -msgid "Coordinator Endpoint" +#: superset/views/core.py:236 +msgid "Allow DML" msgstr "" -#: superset/views.py:486 -msgid "Broker Host" +#: superset/views/core.py:237 +msgid "CTAS Schema" msgstr "" -#: superset/views.py:487 -msgid "Broker Port" +#: superset/views/core.py:239 superset/views/core.py:353 +#: superset/views/core.py:449 superset/views/core.py:513 +msgid "Creator" +msgstr "作者" + +#: superset/views/core.py:241 +msgid "SQLAlchemy URI" msgstr "" -#: superset/views.py:488 -msgid "Broker Endpoint" +#: superset/views/core.py:243 +msgid "Extra" +msgstr "扩展" + +#: superset/views/core.py:303 superset/views/core.py:526 +msgid "User" +msgstr "用户" + +#: superset/views/core.py:304 +msgid "User Roles" +msgstr "用户角色" + +#: superset/views/core.py:305 +msgid "Database URL" +msgstr "数据库URL" + +#: superset/views/core.py:307 +msgid "Roles to grant" msgstr "" -#: superset/views.py:522 +#: superset/views/core.py:308 +msgid "Created On" +msgstr "创建日期" + +#: superset/views/core.py:341 msgid "" "These parameters are generated dynamically when clicking the save or " "overwrite button in the explore view. This JSON object is exposed here " @@ -1286,555 +626,214 @@ msgid "" "parameters." msgstr "当单击“保存”或“覆盖”按钮时,这些参数会在视图中动态生成。高级用户可以在这里改变特定的参数。" -#: superset/views.py:527 +#: superset/views/core.py:346 msgid "Duration (in seconds) of the caching timeout for this slice." msgstr "切片数据过期时间(秒)" -#: superset/templates/superset/welcome.html:26 superset/views.py:535 +#: superset/views/core.py:354 msgid "Dashboards" msgstr "看板" -#: superset/views.py:538 +#: superset/views/core.py:357 msgid "Last Modified" msgstr "最后修改" -#: superset/views.py:539 superset/views.py:609 +#: superset/views/core.py:358 superset/views/core.py:448 msgid "Owners" msgstr "所有者" -#: superset/views.py:540 +#: superset/views/core.py:359 msgid "Parameters" msgstr "参数" -#: superset/views.py:541 superset/views.py:569 +#: superset/views/core.py:360 superset/views/core.py:396 msgid "Slice" msgstr "切片" -#: superset/views.py:542 +#: superset/views/core.py:361 msgid "Name" msgstr "名字" -#: superset/views.py:544 superset/views.py:570 +#: superset/views/core.py:363 msgid "Visualization Type" msgstr "图表类型" -#: superset/views.py:586 +#: superset/views/core.py:421 msgid "" "This json object describes the positioning of the widgets in the " "dashboard. It is dynamically generated when adjusting the widgets size " "and positions by using drag & drop in the dashboard view" msgstr "这个JSON对象描述了部件在看板中的位置。它是动态生成的,可以通过拖放,在看板中调整整部件的大小和位置。" -#: superset/views.py:591 +#: superset/views/core.py:426 msgid "" "The css for individual dashboards can be altered here, or in the " "dashboard view where changes are immediately visible" msgstr "可以在这里或者在看板视图修改单个看板的CSS样式" -#: superset/views.py:595 +#: superset/views/core.py:430 msgid "To get a readable URL for your dashboard" msgstr "为看板生成一个可读的URL" -#: superset/views.py:596 +#: superset/views/core.py:431 msgid "" "This JSON object is generated dynamically when clicking the save or " "overwrite button in the dashboard view. It is exposed here for reference " "and for power users who may want to alter specific parameters." msgstr "当在看板视图中单击“保存”或“覆盖”按钮时,这些参数会在视图中动态生成。高级用户可以在这里改变特定的参数。" -#: superset/views.py:601 +#: superset/views/core.py:436 msgid "Owners is a list of users who can alter the dashboard." msgstr "“所有者”是一组可以修改看板的用户列表" -#: superset/views.py:605 +#: superset/views/core.py:444 superset/views/core.py:511 msgid "Dashboard" msgstr "看板" -#: superset/views.py:606 +#: superset/views/core.py:445 superset/views/core.py:512 msgid "Title" msgstr "标题" -#: superset/views.py:607 +#: superset/views/core.py:446 msgid "Slug" msgstr "" -#: superset/views.py:608 +#: superset/views/core.py:447 msgid "Slices" msgstr "切片" -#: superset/views.py:611 +#: superset/views/core.py:450 superset/views/core.py:514 msgid "Modified" msgstr "已修改" -#: superset/views.py:612 +#: superset/views/core.py:451 msgid "Position JSON" msgstr "位置参数" -#: superset/views.py:613 +#: superset/views/core.py:452 msgid "CSS" msgstr "" -#: superset/views.py:614 +#: superset/views/core.py:453 msgid "JSON Metadata" msgstr "JSON模板" -#: superset/views.py:615 +#: superset/views/core.py:454 msgid "Underlying Tables" msgstr "底层表" -#: superset/views.py:653 -msgid "User" -msgstr "用户" - -#: superset/views.py:654 +#: superset/views/core.py:527 msgid "Action" msgstr "操作" -#: superset/views.py:655 +#: superset/views/core.py:528 msgid "dttm" msgstr "DTTM" -#: superset/views.py:683 -msgid "Timezone offset (in hours) for this datasource" -msgstr "数据源的时差(单位:小时)" - -#: superset/views.py:689 -msgid "Data Source" -msgstr "数据源" - -#: superset/views.py:692 -msgid "Owner" -msgstr "所有者" - -#: superset/views.py:694 -msgid "Is Hidden" -msgstr "隐藏" - -#: superset/views.py:696 -msgid "Time Offset" -msgstr "时间偏移" - -#: superset/views.py:1176 -msgid "This view requires the `all_datasource_access` permission" -msgstr "本视图需要`访问所有数据`的权限" - -#: superset/views.py:1249 -msgid "Refresh Druid Metadata" -msgstr "刷新Druid元数据" - -#: superset/viz.py:367 -msgid "Table View" -msgstr "表视图" - -#: superset/viz.py:370 -msgid "GROUP BY" -msgstr "分组" - -#: superset/viz.py:371 -msgid "Use this section if you want a query that aggregates" -msgstr "进行聚合查询" - -#: superset/viz.py:374 -msgid "NOT GROUPED BY" -msgstr "不分组" - -#: superset/viz.py:375 -msgid "Use this section if you want to query atomic rows" -msgstr "进行非聚合查询" - -#: superset/viz.py:378 -msgid "Options" -msgstr "选项" - -#: superset/viz.py:429 -msgid "Pivot Table" -msgstr "透视表" - -#: superset/viz.py:491 -msgid "Markup" -msgstr "标记" - -#: superset/viz.py:519 -msgid "Word Cloud" -msgstr "词汇云" - -#: superset/viz.py:551 -msgid "Treemap" -msgstr "树状图" - -#: superset/viz.py:561 superset/viz.py:676 superset/viz.py:783 superset/viz.py:948 -#: superset/viz.py:1093 superset/viz.py:1122 superset/viz.py:1177 -#: superset/viz.py:1682 -msgid "Chart Options" -msgstr "图表选项" - -#: superset/viz.py:595 -msgid "Calendar Heatmap" -msgstr "时间热力图" - -#: superset/viz.py:666 -msgid "Box Plot" -msgstr "箱线图" - -#: superset/viz.py:773 -msgid "Bubble Chart" -msgstr "气泡图" - -#: superset/viz.py:842 -msgid "Big Number with Trendline" -msgstr "数字和趋势线" - -#: superset/viz.py:892 -msgid "Big Number" -msgstr "数字" - -#: superset/viz.py:938 -msgid "Time Series - Line Chart" -msgstr "时间序列-折线图" - -#: superset/viz.py:958 -msgid "Advanced Analytics" -msgstr "高级分析" - -#: superset/viz.py:959 -msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" -msgstr "使用高级分析选项" - -#: superset/viz.py:1091 -msgid "Time Series - Bar Chart" -msgstr "时间序列-柱状图" - -#: superset/viz.py:1111 -msgid "Time Series - Percent Change" -msgstr "时间序列-百分比变化" - -#: superset/viz.py:1119 -msgid "Time Series - Stacked" -msgstr "时间序列-堆积图" - -#: superset/viz.py:1138 -msgid "Distribution - NVD3 - Pie Chart" -msgstr "分布-饼图" - -#: superset/viz.py:1174 -msgid "Distribution - Bar Chart" -msgstr "分布-柱状图" - -#: superset/viz.py:1195 -msgid "Breakdowns" -msgstr "拆分" - -#: superset/viz.py:1196 -msgid "Defines how each series is broken down" -msgstr "项目的拆分方式" - -#: superset/viz.py:1261 -msgid "Sunburst" -msgstr "环状层次图" - -#: superset/viz.py:1276 -msgid "Primary Metric" -msgstr "主指标" - -#: superset/viz.py:1277 -msgid "The primary metric is used to define the arc segment sizes" -msgstr "主要指标用来定义的弧段尺寸" - -#: superset/viz.py:1282 -msgid "Secondary Metric" -msgstr "次指标" - -#: superset/viz.py:1283 -msgid "" -"This secondary metric is used to define the color as a ratio against the " -"primary metric. If the two metrics match, color is mapped level groups" -msgstr "次指标用于定义相对主指标的颜色" - -#: superset/viz.py:1289 -msgid "Hierarchy" -msgstr "层次" - -#: superset/viz.py:1290 -msgid "This defines the level of the hierarchy" -msgstr "定义层次" - -#: superset/viz.py:1327 -msgid "Sankey" -msgstr "蛇形图" - -#: superset/viz.py:1340 superset/viz.py:1410 -msgid "Source / Target" -msgstr "源/目标" - -#: superset/viz.py:1341 superset/viz.py:1411 -msgid "Choose a source and a target" -msgstr "选择源和目标" - -#: superset/viz.py:1391 -msgid "Directed Force Layout" -msgstr "有向图" - -#: superset/viz.py:1402 -msgid "Force Layout" -msgstr "有向图" - -#: superset/viz.py:1433 -msgid "World Map" -msgstr "世界地图" - -#: superset/viz.py:1444 -msgid "Bubbles" -msgstr "气泡" - -#: superset/viz.py:1453 -msgid "Country Field" -msgstr "国家" - -#: superset/viz.py:1454 -msgid "3 letter code of the country" -msgstr "3位国家码" - -#: superset/viz.py:1457 -msgid "Metric for color" -msgstr "色彩度量项" - -#: superset/viz.py:1458 -msgid "Metric that defines the color of the country" -msgstr "国家颜色表示的统计项" - -#: superset/viz.py:1461 -msgid "Bubble size" -msgstr "气泡大小" - -#: superset/viz.py:1462 -msgid "Metric that defines the size of the bubble" -msgstr "气泡大小表示的度量项" - -#: superset/templates/superset/explore.html:147 superset/viz.py:1507 -msgid "Filters" -msgstr "筛选" - -#: superset/viz.py:1519 -msgid "Filter fields" -msgstr "筛选条件" - -#: superset/viz.py:1520 -msgid "The fields you want to filter on" -msgstr "筛选字段" - -#: superset/viz.py:1555 -msgid "iFrame" -msgstr "" - -#: superset/viz.py:1573 -msgid "Parallel Coordinates" -msgstr "平行坐标" - -#: superset/viz.py:1609 -msgid "Heatmap" -msgstr "热力图" - -#: superset/viz.py:1622 -msgid "Heatmap Options" -msgstr "热力图选项" - -#: superset/viz.py:1677 -msgid "Horizon Charts" -msgstr "水平图" - -#: superset/viz.py:1693 -msgid "Mapbox" -msgstr "箱图" - -#: superset/viz.py:1707 -msgid "Points" -msgstr "点" - -#: superset/viz.py:1713 -msgid "Labelling" -msgstr "标记" - -#: superset/viz.py:1719 -msgid "Visual Tweaks" -msgstr "" - -#: superset/viz.py:1726 -msgid "Viewport" -msgstr "" - -#: superset/viz.py:1736 -msgid "Longitude" -msgstr "经度" - -#: superset/viz.py:1737 -msgid "Column containing longitude data" -msgstr "表示经度的列" - -#: superset/viz.py:1740 -msgid "Latitude" -msgstr "纬度" - -#: superset/viz.py:1741 -msgid "Column containing latitude data" -msgstr "表示纬度的列" - -#: superset/viz.py:1744 -msgid "Cluster label aggregator" -msgstr "" - -#: superset/viz.py:1745 -msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." -msgstr "聚合函数用于集群标签" - -#: superset/viz.py:1750 -msgid "Tooltip" -msgstr "提示" - -#: superset/viz.py:1751 -msgid "Show a tooltip when hovering over points and clusters describing the label" -msgstr "鼠标放在集群上时显示的提示信息" - -#: superset/viz.py:1756 -msgid "" -"One or many fields to group by. If grouping, latitude and longitude " -"columns must be present." -msgstr "按照一个或多个字段分组。必须指定经度和纬度。" - -#: superset/templates/appbuilder/navbar_right.html:36 -msgid "Profile" -msgstr "策略" - -#: superset/templates/appbuilder/navbar_right.html:37 -msgid "Logout" -msgstr "退出" - -#: superset/templates/appbuilder/navbar_right.html:42 -msgid "Login" -msgstr "登录" - -#: superset/templates/superset/explore.html:34 -#: superset/templates/superset/explore.html:241 -msgid "Query" -msgstr "查询" +#: superset/views/core.py:2279 +msgid "SQL Editor" +msgstr "SQL编辑器" -#: superset/templates/superset/explore.html:43 -#: superset/templates/superset/explore.html:306 -msgid "Save" -msgstr "" +#: superset/views/core.py:2288 +msgid "Query Search" +msgstr "查询搜索" -#: superset/templates/superset/explore.html:72 -msgid "Force refresh" -msgstr "强制刷新" +#~ msgid "[Superset] Access to the datasource %(name)s was granted" +#~ msgstr "" -#: superset/templates/superset/explore.html:77 -msgid "Short URL" -msgstr "短链接" +#~ msgid "Druid Clusters" +#~ msgstr "Druid集群" -#: superset/templates/superset/explore.html:79 -msgid "Generate an embeddable iframe" -msgstr "生成内嵌iframe" +#~ msgid "Sources" +#~ msgstr "数据源" -#: superset/templates/superset/explore.html:82 -msgid "Export to .json" -msgstr "导出为JSON" +#~ msgid "Druid Datasources" +#~ msgstr "Druid数据源" -#: superset/templates/superset/explore.html:86 -msgid "Export to .csv format" -msgstr "导出为CVS" +#~ msgid "Refresh Druid Metadata" +#~ msgstr "刷新Druid元数据" -#: superset/templates/superset/explore.html:92 -msgid "Query timer" -msgstr "查询时间" +#~ msgid "Tables" +#~ msgstr "数据表" -#: superset/templates/superset/explore.html:94 -msgid "0 sec" -msgstr "0秒" +#~ msgid "Datasource %(name)s already exists" +#~ msgstr "" -#: superset/templates/superset/explore.html:100 -msgid "View database query" -msgstr "查询语句" +#~ msgid "This endpoint requires the `all_datasource_access` permission" +#~ msgstr "" -#: superset/templates/superset/explore.html:101 -msgid "query" -msgstr "查询" +#~ msgid "The datasource seems to have been deleted" +#~ msgstr "" -#: superset/templates/superset/explore.html:150 -msgid "Filters are defined using comma delimited strings as in 'US,FR,Other'" -msgstr "使用逗号分隔多个过滤条件,如'US,FR,Other'" +#~ msgid "The access requests seem to have been deleted" +#~ msgstr "" -#: superset/templates/superset/explore.html:168 -msgid "Add filter" -msgstr "增加过滤条件" +#~ msgid "The user seems to have been deleted" +#~ msgstr "" -#: superset/templates/superset/explore.html:247 -#: superset/templates/superset/explore.html:265 -msgid "Close" -msgstr "关闭" +#~ msgid "You don't have access to this datasource" +#~ msgstr "" -#: superset/templates/superset/explore.html:259 -msgid "Datasource Description" -msgstr "数据源描述" +#~ msgid "" +#~ msgstr "" -#: superset/templates/superset/explore.html:277 -msgid "Save a Slice" -msgstr "" +#~ msgid "Import Dashboards" +#~ msgstr "导入仪表盘" -#: superset/templates/superset/explore.html:309 -msgid "Save & go to dashboard" -msgstr "" +#~ msgid "Manage" +#~ msgstr "管理" -#: superset/templates/superset/explore.html:312 -msgid "Cancel" -msgstr "" +#~ msgid "Databases" +#~ msgstr "数据库" -#: superset/templates/superset/sql.html:12 -msgid "Run!" -msgstr "执行" +#~ msgid "Access requests" +#~ msgstr "访问请求" -#: superset/templates/superset/sql.html:13 -msgid "Create View" -msgstr "创建视图" +#~ msgid "Security" +#~ msgstr "安全" -#: superset/templates/superset/welcome.html:8 -#: superset/templates/superset/welcome.html:14 -msgid "Welcome!" -msgstr "欢迎!" +#~ msgid "Click on a {} link to create a Slice" +#~ msgstr "" -#: superset/templates/superset/models/database/macros.html:4 -msgid "Test Connection" -msgstr "测试连接" +#~ msgid "Action Log" +#~ msgstr "操作日志" -#~ msgid "Databases" +#~ msgid "Access was requested" #~ msgstr "" -#~ msgid "Sources" +#~ msgid "Role %(r)s was extended to provide the access to the datasource %(ds)s" #~ msgstr "" -#~ msgid "Tables" +#~ msgid "You have no permission to approve this request" #~ msgstr "" -#~ msgid "Druid Clusters" +#~ msgid "Slice %(id)s not found" #~ msgstr "" -#~ msgid "Action Log" +#~ msgid "Table %(t)s wasn't found in the database %(d)s" #~ msgstr "" -#~ msgid "Security" +#~ msgid "Can't find User '%(name)s', please ask your admin to create one." #~ msgstr "" -#~ msgid "Druid Datasources" +#~ msgid "Can't find DruidCluster with cluster_name = '%(name)s'" #~ msgstr "" #~ msgid "CSS Templates" -#~ msgstr "" +#~ msgstr "CSS模板" -#~ msgid "Documentation" -#~ msgstr "" +#~ msgid "SQL Lab" +#~ msgstr "SQL工具箱" -#~ msgid "Standalone version, use to embed anywhere" -#~ msgstr "" +#~ msgid "Queries" +#~ msgstr "查询" + +#~ msgid "Saved Queries" +#~ msgstr "已保存查询" + +#~ msgid "Import" +#~ msgstr "导入" + +#~ msgid "Welcome!" +#~ msgstr "欢迎!" diff --git a/superset/utils.py b/superset/utils.py index d6f0e484210e6..655ccad20c798 100644 --- a/superset/utils.py +++ b/superset/utils.py @@ -8,7 +8,6 @@ import functools import json import logging -import markdown as md import numpy import os import parsedatetime @@ -17,6 +16,8 @@ import sqlalchemy as sa import signal import uuid +import sys +import zlib from builtins import object from datetime import date, datetime, time @@ -31,8 +32,10 @@ FLAMSG_ERR_SEC_ACCESS_DENIED, PERMISSION_PREFIX ) +from flask_cache import Cache from flask_appbuilder._compat import as_unicode from flask_babel import gettext as __ +import markdown as md from past.builtins import basestring from pydruid.utils.having import Having from sqlalchemy import event, exc @@ -40,7 +43,7 @@ logging.getLogger('MARKDOWN').setLevel(logging.INFO) - +PY3K = sys.version_info >= (3, 0) EPOCH = datetime(1970, 1, 1) DTTM_ALIAS = '__timestamp' @@ -71,11 +74,10 @@ class SupersetTemplateException(SupersetException): def can_access(sm, permission_name, view_name, user): """Protecting from has_access failing from missing perms/view""" - return ( - sm.is_item_public(permission_name, view_name) or - (not user.is_anonymous() and - sm._has_view_access(user, permission_name, view_name)) - ) + if user.is_anonymous(): + return sm.is_item_public(permission_name, view_name) + else: + return sm._has_view_access(user, permission_name, view_name) def flasher(msg, severity=None): @@ -122,6 +124,36 @@ def __get__(self, obj, objtype): return functools.partial(self.__call__, obj) +def js_string_to_python(item): + return None if item in ('null', 'undefined') else item + + +def string_to_num(s): + """Converts a string to an int/float + + Returns ``None`` if it can't be converted + + >>> string_to_num('5') + 5 + >>> string_to_num('5.2') + 5.2 + >>> string_to_num(10) + 10 + >>> string_to_num(10.1) + 10.1 + >>> string_to_num('this is not a string') is None + True + """ + if isinstance(s, (int, float)): + return s + if s.isdigit(): + return int(s) + try: + return float(s) + except ValueError: + return None + + class DimSelector(Having): def __init__(self, **args): # Just a hack to prevent any exceptions @@ -402,14 +434,6 @@ def __exit__(self, type, value, traceback): logging.warning("timeout can't be used in the current context") logging.exception(e) - -def wrap_clause_in_parens(sql): - """Wrap where/having clause with parenthesis if necessary""" - if sql.strip(): - sql = '({})'.format(sql) - return sa.text(sql) - - def pessimistic_connection_handling(target): @event.listens_for(target, "checkout") def ping_connection(dbapi_connection, connection_record, connection_proxy): @@ -425,11 +449,11 @@ def ping_connection(dbapi_connection, connection_record, connection_proxy): cursor.close() -class QueryStatus: +class QueryStatus(object): """Enum-type class for query statuses""" - CANCELLED = 'cancelled' + STOPPED = 'stopped' FAILED = 'failed' PENDING = 'pending' RUNNING = 'running' @@ -525,8 +549,6 @@ def get_email_address_list(address_string): return address_string -# Forked from the flask_appbuilder.security.decorators -# TODO(bkyryliuk): contribute it back to FAB def has_access(f): """ Use this decorator to enable granular security permissions to your @@ -534,6 +556,9 @@ def has_access(f): associated to users. By default the permission's name is the methods name. + + Forked from the flask_appbuilder.security.decorators + TODO(bkyryliuk): contribute it back to FAB """ if hasattr(f, '_permission_name'): permission_str = f._permission_name @@ -555,3 +580,45 @@ def wraps(self, *args, **kwargs): next=request.path)) f._permission_name = permission_str return functools.update_wrapper(wraps, f) + + +def choicify(values): + """Takes an iterable and makes an iterable of tuples with it""" + return [(v, v) for v in values] + + +def setup_cache(app, cache_config): + """Setup the flask-cache on a flask app""" + if cache_config and cache_config.get('CACHE_TYPE') != 'null': + return Cache(app, config=cache_config) + + +def zlib_compress(data): + """ + Compress things in a py2/3 safe fashion + >>> json_str = '{"test": 1}' + >>> blob = zlib_compress(json_str) + """ + if PY3K: + if isinstance(data, str): + return zlib.compress(bytes(data, "utf-8")) + return zlib.compress(data) + return zlib.compress(data) + + +def zlib_decompress_to_string(blob): + """ + Decompress things to a string in a py2/3 safe fashion + >>> json_str = '{"test": 1}' + >>> blob = zlib_compress(json_str) + >>> got_str = zlib_decompress_to_string(blob) + >>> got_str == json_str + True + """ + if PY3K: + if isinstance(blob, bytes): + decompressed = zlib.decompress(blob) + else: + decompressed = zlib.decompress(bytes(blob, "utf-8")) + return decompressed.decode("utf-8") + return zlib.decompress(blob) diff --git a/superset/views/__init__.py b/superset/views/__init__.py new file mode 100644 index 0000000000000..b964e8b14e316 --- /dev/null +++ b/superset/views/__init__.py @@ -0,0 +1,3 @@ +from . import base # noqa +from . import core # noqa +from . import sql_lab # noqa diff --git a/superset/views/base.py b/superset/views/base.py new file mode 100644 index 0000000000000..893dddaf0c31c --- /dev/null +++ b/superset/views/base.py @@ -0,0 +1,328 @@ +import functools +import json +import logging +import traceback + +from flask import g, redirect, Response, flash, abort +from flask_babel import gettext as __ + +from flask_appbuilder import BaseView +from flask_appbuilder import ModelView +from flask_appbuilder.widgets import ListWidget +from flask_appbuilder.actions import action +from flask_appbuilder.models.sqla.filters import BaseFilter +from flask_appbuilder.security.sqla import models as ab_models + +from superset import appbuilder, conf, db, utils, sm, sql_parse +from superset.connectors.connector_registry import ConnectorRegistry +from superset.connectors.sqla.models import SqlaTable + + +def get_error_msg(): + if conf.get("SHOW_STACKTRACE"): + error_msg = traceback.format_exc() + else: + error_msg = "FATAL ERROR \n" + error_msg += ( + "Stacktrace is hidden. Change the SHOW_STACKTRACE " + "configuration setting to enable it") + return error_msg + + +def json_error_response(msg, status=None, stacktrace=None): + data = {'error': str(msg)} + if stacktrace: + data['stacktrace'] = stacktrace + status = status if status else 500 + return Response( + json.dumps(data), + status=status, mimetype="application/json") + + +def api(f): + """ + A decorator to label an endpoint as an API. Catches uncaught exceptions and + return the response in the JSON format + """ + def wraps(self, *args, **kwargs): + try: + return f(self, *args, **kwargs) + except Exception as e: + logging.exception(e) + return json_error_response(get_error_msg()) + + return functools.update_wrapper(wraps, f) + + +def get_datasource_exist_error_mgs(full_name): + return __("Datasource %(name)s already exists", name=full_name) + + +def get_user_roles(): + if g.user.is_anonymous(): + public_role = conf.get('AUTH_ROLE_PUBLIC') + return [appbuilder.sm.find_role(public_role)] if public_role else [] + return g.user.roles + + +class BaseSupersetView(BaseView): + def can_access(self, permission_name, view_name, user=None): + if not user: + user = g.user + return utils.can_access( + appbuilder.sm, permission_name, view_name, user) + + def all_datasource_access(self, user=None): + return self.can_access( + "all_datasource_access", "all_datasource_access", user=user) + + def database_access(self, database, user=None): + return ( + self.can_access( + "all_database_access", "all_database_access", user=user) or + self.can_access("database_access", database.perm, user=user) + ) + + def schema_access(self, datasource, user=None): + return ( + self.database_access(datasource.database, user=user) or + self.all_datasource_access(user=user) or + self.can_access("schema_access", datasource.schema_perm, user=user) + ) + + def datasource_access(self, datasource, user=None): + return ( + self.schema_access(datasource, user=user) or + self.can_access("datasource_access", datasource.perm, user=user) + ) + + def datasource_access_by_name( + self, database, datasource_name, schema=None): + if self.database_access(database) or self.all_datasource_access(): + return True + + schema_perm = utils.get_schema_perm(database, schema) + if schema and self.can_access('schema_access', schema_perm): + return True + + datasources = ConnectorRegistry.query_datasources_by_name( + db.session, database, datasource_name, schema=schema) + for datasource in datasources: + if self.can_access("datasource_access", datasource.perm): + return True + return False + + def datasource_access_by_fullname( + self, database, full_table_name, schema): + table_name_pieces = full_table_name.split(".") + if len(table_name_pieces) == 2: + table_schema = table_name_pieces[0] + table_name = table_name_pieces[1] + else: + table_schema = schema + table_name = table_name_pieces[0] + return self.datasource_access_by_name( + database, table_name, schema=table_schema) + + def rejected_datasources(self, sql, database, schema): + superset_query = sql_parse.SupersetQuery(sql) + return [ + t for t in superset_query.tables if not + self.datasource_access_by_fullname(database, t, schema)] + + def user_datasource_perms(self): + datasource_perms = set() + for r in g.user.roles: + for perm in r.permissions: + if ( + perm.permission and + 'datasource_access' == perm.permission.name): + datasource_perms.add(perm.view_menu.name) + return datasource_perms + + def schemas_accessible_by_user(self, database, schemas): + if self.database_access(database) or self.all_datasource_access(): + return schemas + + subset = set() + for schema in schemas: + schema_perm = utils.get_schema_perm(database, schema) + if self.can_access('schema_access', schema_perm): + subset.add(schema) + + perms = self.user_datasource_perms() + if perms: + tables = ( + db.session.query(SqlaTable) + .filter( + SqlaTable.perm.in_(perms), + SqlaTable.database_id == database.id, + ) + .all() + ) + for t in tables: + if t.schema: + subset.add(t.schema) + return sorted(list(subset)) + + def accessible_by_user(self, database, datasource_names, schema=None): + if self.database_access(database) or self.all_datasource_access(): + return datasource_names + + if schema: + schema_perm = utils.get_schema_perm(database, schema) + if self.can_access('schema_access', schema_perm): + return datasource_names + + user_perms = self.user_datasource_perms() + user_datasources = ConnectorRegistry.query_datasources_by_permissions( + db.session, database, user_perms) + if schema: + names = { + d.table_name + for d in user_datasources if d.schema == schema} + return [d for d in datasource_names if d in names] + else: + full_names = {d.full_name for d in user_datasources} + return [d for d in datasource_names if d in full_names] + + +class SupersetModelView(ModelView): + page_size = 100 + + +class ListWidgetWithCheckboxes(ListWidget): + """An alternative to list view that renders Boolean fields as checkboxes + + Works in conjunction with the `checkbox` view.""" + template = 'superset/fab_overrides/list_with_checkboxes.html' + + +def validate_json(form, field): # noqa + try: + json.loads(field.data) + except Exception as e: + logging.exception(e) + raise Exception("json isn't valid") + + +class DeleteMixin(object): + def _delete(self, pk): + """ + Delete function logic, override to implement diferent logic + deletes the record with primary_key = pk + + :param pk: + record primary key to delete + """ + item = self.datamodel.get(pk, self._base_filters) + if not item: + abort(404) + try: + self.pre_delete(item) + except Exception as e: + flash(str(e), "danger") + else: + view_menu = sm.find_view_menu(item.get_perm()) + pvs = sm.get_session.query(sm.permissionview_model).filter_by( + view_menu=view_menu).all() + + schema_view_menu = None + if hasattr(item, 'schema_perm'): + schema_view_menu = sm.find_view_menu(item.schema_perm) + + pvs.extend(sm.get_session.query( + sm.permissionview_model).filter_by( + view_menu=schema_view_menu).all()) + + if self.datamodel.delete(item): + self.post_delete(item) + + for pv in pvs: + sm.get_session.delete(pv) + + if view_menu: + sm.get_session.delete(view_menu) + + if schema_view_menu: + sm.get_session.delete(schema_view_menu) + + sm.get_session.commit() + + flash(*self.datamodel.message) + self.update_redirect() + + @action( + "muldelete", + __("Delete"), + __("Delete all Really?"), + "fa-trash", + single=False + ) + def muldelete(self, items): + if not items: + abort(404) + for item in items: + try: + self.pre_delete(item) + except Exception as e: + flash(str(e), "danger") + else: + self._delete(item.id) + self.update_redirect() + return redirect(self.get_redirect()) + + +class SupersetFilter(BaseFilter): + + """Add utility function to make BaseFilter easy and fast + + These utility function exist in the SecurityManager, but would do + a database round trip at every check. Here we cache the role objects + to be able to make multiple checks but query the db only once + """ + + def get_user_roles(self): + return get_user_roles() + + def get_all_permissions(self): + """Returns a set of tuples with the perm name and view menu name""" + perms = set() + for role in self.get_user_roles(): + for perm_view in role.permissions: + t = (perm_view.permission.name, perm_view.view_menu.name) + perms.add(t) + return perms + + def has_role(self, role_name_or_list): + """Whether the user has this role name""" + if not isinstance(role_name_or_list, list): + role_name_or_list = [role_name_or_list] + return any( + [r.name in role_name_or_list for r in self.get_user_roles()]) + + def has_perm(self, permission_name, view_menu_name): + """Whether the user has this perm""" + return (permission_name, view_menu_name) in self.get_all_permissions() + + def get_view_menus(self, permission_name): + """Returns the details of view_menus for a perm name""" + vm = set() + for perm_name, vm_name in self.get_all_permissions(): + if perm_name == permission_name: + vm.add(vm_name) + return vm + + def has_all_datasource_access(self): + return ( + self.has_role(['Admin', 'Alpha']) or + self.has_perm('all_datasource_access', 'all_datasource_access')) + + +class DatasourceFilter(SupersetFilter): + def apply(self, query, func): # noqa + if self.has_all_datasource_access(): + return query + perms = self.get_view_menus('datasource_access') + # TODO(bogdan): add `schema_access` support here + return query.filter(self.model.perm.in_(perms)) diff --git a/superset/views.py b/superset/views/core.py similarity index 62% rename from superset/views.py rename to superset/views/core.py index c9b4aea096e38..e10632179db66 100755 --- a/superset/views.py +++ b/superset/views/core.py @@ -3,28 +3,25 @@ from __future__ import print_function from __future__ import unicode_literals +from collections import defaultdict from datetime import datetime, timedelta import json import logging import pandas as pd import pickle import re -import sys import time import traceback -import zlib -import functools import sqlalchemy as sqla from flask import ( - g, request, redirect, flash, Response, render_template, Markup, url_for) -from flask_appbuilder import ModelView, CompactCRUDMixin, BaseView, expose + g, request, redirect, flash, Response, render_template, Markup, + abort, url_for) +from flask_appbuilder import expose from flask_appbuilder.actions import action from flask_appbuilder.models.sqla.interface import SQLAInterface from flask_appbuilder.security.decorators import has_access_api -from flask_appbuilder.widgets import ListWidget -from flask_appbuilder.models.sqla.filters import BaseFilter from flask_appbuilder.security.sqla import models as ab_models from flask_babel import gettext as __ @@ -32,96 +29,28 @@ from sqlalchemy import create_engine from werkzeug.routing import BaseConverter -from wtforms.validators import ValidationError -import superset from superset import ( - app, appbuilder, cache, db, models, sm, sql_lab, sql_parse, - results_backend, security, viz, utils, + appbuilder, cache, db, viz, utils, app, + sm, sql_lab, results_backend, security, ) -from superset.utils import has_access -from superset.source_registry import SourceRegistry -from superset.models import DatasourceAccessRequest as DAR +from superset.legacy import cast_form_data +from superset.utils import has_access, QueryStatus +from superset.connectors.connector_registry import ConnectorRegistry +import superset.models.core as models +from superset.models.sql_lab import Query from superset.sql_parse import SupersetQuery +from .base import ( + api, SupersetModelView, BaseSupersetView, DeleteMixin, + SupersetFilter, get_user_roles, json_error_response, get_error_msg +) + config = app.config +stats_logger = config.get('STATS_LOGGER') log_this = models.Log.log_this can_access = utils.can_access -QueryStatus = models.QueryStatus - - -class BaseSupersetView(BaseView): - def can_access(self, permission_name, view_name, user=None): - if not user: - user = g.user - return utils.can_access( - appbuilder.sm, permission_name, view_name, user) - - def all_datasource_access(self, user=None): - return self.can_access( - "all_datasource_access", "all_datasource_access", user=user) - - def database_access(self, database, user=None): - return ( - self.can_access( - "all_database_access", "all_database_access", user=user) or - self.can_access("database_access", database.perm, user=user) - ) - - def schema_access(self, datasource, user=None): - return ( - self.database_access(datasource.database, user=user) or - self.all_datasource_access(user=user) or - self.can_access("schema_access", datasource.schema_perm, user=user) - ) - - def datasource_access(self, datasource, user=None): - return ( - self.schema_access(datasource, user=user) or - self.can_access("datasource_access", datasource.perm, user=user) - ) - - def datasource_access_by_name( - self, database, datasource_name, schema=None): - if (self.database_access(database) or - self.all_datasource_access()): - return True - - schema_perm = utils.get_schema_perm(database, schema) - if schema and utils.can_access(sm, 'schema_access', schema_perm, g.user): - return True - - datasources = SourceRegistry.query_datasources_by_name( - db.session, database, datasource_name, schema=schema) - for datasource in datasources: - if self.can_access("datasource_access", datasource.perm): - return True - return False - - def datasource_access_by_fullname( - self, database, full_table_name, schema): - table_name_pieces = full_table_name.split(".") - if len(table_name_pieces) == 2: - table_schema = table_name_pieces[0] - table_name = table_name_pieces[1] - else: - table_schema = schema - table_name = table_name_pieces[0] - return self.datasource_access_by_name( - database, table_name, schema=table_schema) - - def rejected_datasources(self, sql, database, schema): - superset_query = sql_parse.SupersetQuery(sql) - return [ - t for t in superset_query.tables if not - self.datasource_access_by_fullname(database, t, schema)] - - -class ListWidgetWithCheckboxes(ListWidget): - """An alternative to list view that renders Boolean fields as checkboxes - - Works in conjunction with the `checkbox` view.""" - template = 'superset/fab_overrides/list_with_checkboxes.html' +DAR = models.DatasourceAccessRequest ALL_DATASOURCE_ACCESS_ERR = __( @@ -143,47 +72,13 @@ def get_datasource_access_error_msg(datasource_name): "`all_datasource_access` permission", name=datasource_name) -def get_datasource_exist_error_mgs(full_name): - return __("Datasource %(name)s already exists", name=full_name) - - -def get_error_msg(): - if config.get("SHOW_STACKTRACE"): - error_msg = traceback.format_exc() - else: - error_msg = "FATAL ERROR \n" - error_msg += ( - "Stacktrace is hidden. Change the SHOW_STACKTRACE " - "configuration setting to enable it") - return error_msg - - -def json_error_response(msg, status=None): - data = {'error': msg} - status = status if status else 500 - return Response( - json.dumps(data), status=status, mimetype="application/json") - +def json_success(json_msg, status=200): + return Response(json_msg, status=status, mimetype="application/json") -def api(f): - """ - A decorator to label an endpoint as an API. Catches uncaught exceptions and - return the response in the JSON format - """ - def wraps(self, *args, **kwargs): - try: - return f(self, *args, **kwargs) - except Exception as e: - logging.exception(e) - resp = Response( - json.dumps({ - 'message': get_error_msg() - }), - status=500, - mimetype="application/json") - return resp - return functools.update_wrapper(wraps, f) +def is_owner(obj, user): + """ Check if user is owner of the slice """ + return obj and obj.owners and user in obj.owners def check_ownership(obj, raise_if_false=True): @@ -199,7 +94,7 @@ def check_ownership(obj, raise_if_false=True): return False security_exception = utils.SupersetSecurityException( - "You don't have the rights to alter [{}]".format(obj)) + "You don't have the rights to alter [{}]".format(obj)) if g.user.is_anonymous(): if raise_if_false: @@ -228,68 +123,6 @@ def check_ownership(obj, raise_if_false=True): return False -def get_user_roles(): - if g.user.is_anonymous(): - public_role = config.get('AUTH_ROLE_PUBLIC') - return [appbuilder.sm.find_role(public_role)] if public_role else [] - return g.user.roles - - -class SupersetFilter(BaseFilter): - - """Add utility function to make BaseFilter easy and fast - - These utility function exist in the SecurityManager, but would do - a database round trip at every check. Here we cache the role objects - to be able to make multiple checks but query the db only once - """ - - def get_user_roles(self): - return get_user_roles() - - def get_all_permissions(self): - """Returns a set of tuples with the perm name and view menu name""" - perms = set() - for role in get_user_roles(): - for perm_view in role.permissions: - t = (perm_view.permission.name, perm_view.view_menu.name) - perms.add(t) - return perms - - def has_role(self, role_name_or_list): - """Whether the user has this role name""" - if not isinstance(role_name_or_list, list): - role_name_or_list = [role_name_or_list] - return any( - [r.name in role_name_or_list for r in self.get_user_roles()]) - - def has_perm(self, permission_name, view_menu_name): - """Whether the user has this perm""" - return (permission_name, view_menu_name) in self.get_all_permissions() - - def get_view_menus(self, permission_name): - """Returns the details of view_menus for a perm name""" - vm = set() - for perm_name, vm_name in self.get_all_permissions(): - if perm_name == permission_name: - vm.add(vm_name) - return vm - - def has_all_datasource_access(self): - return ( - self.has_role(['Admin', 'Alpha']) or - self.has_perm('all_datasource_access', 'all_datasource_access')) - - -class DatasourceFilter(SupersetFilter): - def apply(self, query, func): # noqa - if self.has_all_datasource_access(): - return query - perms = self.get_view_menus('datasource_access') - # TODO(bogdan): add `schema_access` support here - return query.filter(self.model.perm.in_(perms)) - - class SliceFilter(SupersetFilter): def apply(self, query, func): # noqa if self.has_all_datasource_access(): @@ -326,14 +159,6 @@ def apply(self, query, func): # noqa return query -def validate_json(form, field): # noqa - try: - json.loads(field.data) - except Exception as e: - logging.exception(e) - raise ValidationError("json isn't valid") - - def generate_download_headers(extension): filename = datetime.now().strftime("%Y%m%d_%H%M%S") content_disp = "attachment; filename={}.{}".format(filename, extension) @@ -343,216 +168,18 @@ def generate_download_headers(extension): return headers -class DeleteMixin(object): - @action( - "muldelete", "Delete", "Delete all Really?", "fa-trash", single=False) - def muldelete(self, items): - self.datamodel.delete_all(items) - self.update_redirect() - return redirect(self.get_redirect()) - - -class SupersetModelView(ModelView): - page_size = 500 - - -class TableColumnInlineView(CompactCRUDMixin, SupersetModelView): # noqa - datamodel = SQLAInterface(models.TableColumn) - can_delete = False - list_widget = ListWidgetWithCheckboxes - edit_columns = [ - 'column_name', 'verbose_name', 'description', 'groupby', 'filterable', - 'table', 'count_distinct', 'sum', 'min', 'max', 'expression', - 'is_dttm', 'python_date_format', 'database_expression'] - add_columns = edit_columns - list_columns = [ - 'column_name', 'type', 'groupby', 'filterable', 'count_distinct', - 'sum', 'min', 'max', 'is_dttm'] - page_size = 500 - description_columns = { - 'is_dttm': (_( - "Whether to make this column available as a " - "[Time Granularity] option, column has to be DATETIME or " - "DATETIME-like")), - 'expression': utils.markdown( - "a valid SQL expression as supported by the underlying backend. " - "Example: `substr(name, 1, 1)`", True), - 'python_date_format': utils.markdown(Markup( - "The pattern of timestamp format, use " - "" - "python datetime string pattern " - "expression. If time is stored in epoch " - "format, put `epoch_s` or `epoch_ms`. Leave `Database Expression` " - "below empty if timestamp is stored in " - "String or Integer(epoch) type"), True), - 'database_expression': utils.markdown( - "The database expression to cast internal datetime " - "constants to database date/timestamp type according to the DBAPI. " - "The expression should follow the pattern of " - "%Y-%m-%d %H:%M:%S, based on different DBAPI. " - "The string should be a python string formatter \n" - "`Ex: TO_DATE('{}', 'YYYY-MM-DD HH24:MI:SS')` for Oracle" - "Superset uses default expression based on DB URI if this " - "field is blank.", True), - } - label_columns = { - 'column_name': _("Column"), - 'verbose_name': _("Verbose Name"), - 'description': _("Description"), - 'groupby': _("Groupable"), - 'filterable': _("Filterable"), - 'table': _("Table"), - 'count_distinct': _("Count Distinct"), - 'sum': _("Sum"), - 'min': _("Min"), - 'max': _("Max"), - 'expression': _("Expression"), - 'is_dttm': _("Is temporal"), - 'python_date_format': _("Datetime Format"), - 'database_expression': _("Database Expression") - } -appbuilder.add_view_no_menu(TableColumnInlineView) - - -class DruidColumnInlineView(CompactCRUDMixin, SupersetModelView): # noqa - datamodel = SQLAInterface(models.DruidColumn) - edit_columns = [ - 'column_name', 'description', 'dimension_spec_json', 'datasource', - 'groupby', 'count_distinct', 'sum', 'min', 'max'] - add_columns = edit_columns - list_columns = [ - 'column_name', 'type', 'groupby', 'filterable', 'count_distinct', - 'sum', 'min', 'max'] - can_delete = False - page_size = 500 - label_columns = { - 'column_name': _("Column"), - 'type': _("Type"), - 'datasource': _("Datasource"), - 'groupby': _("Groupable"), - 'filterable': _("Filterable"), - 'count_distinct': _("Count Distinct"), - 'sum': _("Sum"), - 'min': _("Min"), - 'max': _("Max"), - } - description_columns = { - 'dimension_spec_json': utils.markdown( - "this field can be used to specify " - "a `dimensionSpec` as documented [here]" - "(http://druid.io/docs/latest/querying/dimensionspecs.html). " - "Make sure to input valid JSON and that the " - "`outputName` matches the `column_name` defined " - "above.", - True), - } - - def post_update(self, col): - col.generate_metrics() - utils.validate_json(col.dimension_spec_json) - - def post_add(self, col): - self.post_update(col) - -appbuilder.add_view_no_menu(DruidColumnInlineView) - - -class SqlMetricInlineView(CompactCRUDMixin, SupersetModelView): # noqa - datamodel = SQLAInterface(models.SqlMetric) - list_columns = ['metric_name', 'verbose_name', 'metric_type'] - edit_columns = [ - 'metric_name', 'description', 'verbose_name', 'metric_type', - 'expression', 'table', 'd3format', 'is_restricted'] - description_columns = { - 'expression': utils.markdown( - "a valid SQL expression as supported by the underlying backend. " - "Example: `count(DISTINCT userid)`", True), - 'is_restricted': _("Whether the access to this metric is restricted " - "to certain roles. Only roles with the permission " - "'metric access on XXX (the name of this metric)' " - "are allowed to access this metric"), - 'd3format': utils.markdown( - "d3 formatting string as defined [here]" - "(https://github.com/d3/d3-format/blob/master/README.md#format). " - "For instance, this default formatting applies in the Table " - "visualization and allow for different metric to use different " - "formats", True - ), - } - add_columns = edit_columns - page_size = 500 - label_columns = { - 'metric_name': _("Metric"), - 'description': _("Description"), - 'verbose_name': _("Verbose Name"), - 'metric_type': _("Type"), - 'expression': _("SQL Expression"), - 'table': _("Table"), - } - - def post_add(self, metric): - if metric.is_restricted: - security.merge_perm(sm, 'metric_access', metric.get_perm()) - - def post_update(self, metric): - if metric.is_restricted: - security.merge_perm(sm, 'metric_access', metric.get_perm()) - -appbuilder.add_view_no_menu(SqlMetricInlineView) - - -class DruidMetricInlineView(CompactCRUDMixin, SupersetModelView): # noqa - datamodel = SQLAInterface(models.DruidMetric) - list_columns = ['metric_name', 'verbose_name', 'metric_type'] - edit_columns = [ - 'metric_name', 'description', 'verbose_name', 'metric_type', 'json', - 'datasource', 'd3format', 'is_restricted'] - add_columns = edit_columns - page_size = 500 - validators_columns = { - 'json': [validate_json], - } - description_columns = { - 'metric_type': utils.markdown( - "use `postagg` as the metric type if you are defining a " - "[Druid Post Aggregation]" - "(http://druid.io/docs/latest/querying/post-aggregations.html)", - True), - 'is_restricted': _("Whether the access to this metric is restricted " - "to certain roles. Only roles with the permission " - "'metric access on XXX (the name of this metric)' " - "are allowed to access this metric"), - } - label_columns = { - 'metric_name': _("Metric"), - 'description': _("Description"), - 'verbose_name': _("Verbose Name"), - 'metric_type': _("Type"), - 'json': _("JSON"), - 'datasource': _("Druid Datasource"), - } - - def post_add(self, metric): - utils.init_metrics_perm(superset, [metric]) - - def post_update(self, metric): - utils.init_metrics_perm(superset, [metric]) - - -appbuilder.add_view_no_menu(DruidMetricInlineView) - - class DatabaseView(SupersetModelView, DeleteMixin): # noqa datamodel = SQLAInterface(models.Database) list_columns = [ 'database_name', 'backend', 'allow_run_sync', 'allow_run_async', - 'allow_dml', 'creator', 'changed_on_'] + 'allow_dml', 'creator', 'modified'] add_columns = [ 'database_name', 'sqlalchemy_uri', 'cache_timeout', 'extra', 'expose_in_sqllab', 'allow_run_sync', 'allow_run_async', 'allow_ctas', 'allow_dml', 'force_ctas_schema'] - search_exclude_columns = ('password',) + search_exclude_columns = ( + 'password', 'tables', 'created_by', 'changed_by', 'queries', + 'saved_queries', ) edit_columns = add_columns show_columns = [ 'tables', @@ -626,6 +253,8 @@ def pre_add(self, db): def pre_update(self, db): self.pre_add(db) + def _delete(self, pk): + DeleteMixin._delete(self, pk) appbuilder.add_link( 'Import Dashboards', @@ -663,99 +292,6 @@ class DatabaseTablesAsync(DatabaseView): appbuilder.add_view_no_menu(DatabaseTablesAsync) -class TableModelView(SupersetModelView, DeleteMixin): # noqa - datamodel = SQLAInterface(models.SqlaTable) - list_columns = [ - 'link', 'database', 'is_featured', - 'changed_by_', 'changed_on_'] - order_columns = [ - 'link', 'database', 'is_featured', 'changed_on_'] - add_columns = ['database', 'schema', 'table_name'] - edit_columns = [ - 'table_name', 'sql', 'is_featured', 'filter_select_enabled', - 'database', 'schema', - 'description', 'owner', - 'main_dttm_col', 'default_endpoint', 'offset', 'cache_timeout'] - show_columns = edit_columns + ['perm'] - related_views = [TableColumnInlineView, SqlMetricInlineView] - base_order = ('changed_on', 'desc') - description_columns = { - 'offset': _("Timezone offset (in hours) for this datasource"), - 'table_name': _( - "Name of the table that exists in the source database"), - 'schema': _( - "Schema, as used only in some databases like Postgres, Redshift " - "and DB2"), - 'description': Markup( - "Supports " - "markdown"), - 'sql': _( - "This fields acts a Superset view, meaning that Superset will " - "run a query against this string as a subquery." - ), - } - base_filters = [['id', DatasourceFilter, lambda: []]] - label_columns = { - 'link': _("Table"), - 'changed_by_': _("Changed By"), - 'database': _("Database"), - 'changed_on_': _("Last Changed"), - 'is_featured': _("Is Featured"), - 'filter_select_enabled': _("Enable Filter Select"), - 'schema': _("Schema"), - 'default_endpoint': _("Default Endpoint"), - 'offset': _("Offset"), - 'cache_timeout': _("Cache Timeout"), - } - - def pre_add(self, table): - number_of_existing_tables = db.session.query( - sqla.func.count('*')).filter( - models.SqlaTable.table_name == table.table_name, - models.SqlaTable.schema == table.schema, - models.SqlaTable.database_id == table.database.id - ).scalar() - # table object is already added to the session - if number_of_existing_tables > 1: - raise Exception(get_datasource_exist_error_mgs(table.full_name)) - - # Fail before adding if the table can't be found - try: - table.get_sqla_table_object() - except Exception as e: - logging.exception(e) - raise Exception( - "Table [{}] could not be found, " - "please double check your " - "database connection, schema, and " - "table name".format(table.name)) - - def post_add(self, table): - table.fetch_metadata() - security.merge_perm(sm, 'datasource_access', table.get_perm()) - if table.schema: - security.merge_perm(sm, 'schema_access', table.schema_perm) - - flash(_( - "The table was created. As part of this two phase configuration " - "process, you should now click the edit button by " - "the new table to configure it."), - "info") - - def post_update(self, table): - self.post_add(table) - -appbuilder.add_view( - TableModelView, - "Tables", - label=__("Tables"), - category="Sources", - category_label=__("Sources"), - icon='fa-table',) - -appbuilder.add_separator("Sources") - - class AccessRequestsModelView(SupersetModelView, DeleteMixin): datamodel = SQLAInterface(DAR) list_columns = [ @@ -781,49 +317,15 @@ class AccessRequestsModelView(SupersetModelView, DeleteMixin): icon='fa-table',) -class DruidClusterModelView(SupersetModelView, DeleteMixin): # noqa - datamodel = SQLAInterface(models.DruidCluster) - add_columns = [ - 'cluster_name', - 'coordinator_host', 'coordinator_port', 'coordinator_endpoint', - 'broker_host', 'broker_port', 'broker_endpoint', 'cache_timeout', - ] - edit_columns = add_columns - list_columns = ['cluster_name', 'metadata_last_refreshed'] - label_columns = { - 'cluster_name': _("Cluster"), - 'coordinator_host': _("Coordinator Host"), - 'coordinator_port': _("Coordinator Port"), - 'coordinator_endpoint': _("Coordinator Endpoint"), - 'broker_host': _("Broker Host"), - 'broker_port': _("Broker Port"), - 'broker_endpoint': _("Broker Endpoint"), - } - - def pre_add(self, cluster): - security.merge_perm(sm, 'database_access', cluster.perm) - - def pre_update(self, cluster): - self.pre_add(cluster) - - -if config['DRUID_IS_ACTIVE']: - appbuilder.add_view( - DruidClusterModelView, - name="Druid Clusters", - label=__("Druid Clusters"), - icon="fa-cubes", - category="Sources", - category_label=__("Sources"), - category_icon='fa-database',) - - class SliceModelView(SupersetModelView, DeleteMixin): # noqa datamodel = SQLAInterface(models.Slice) can_add = False label_columns = { 'datasource_link': 'Datasource', } + search_columns = ( + 'slice_name', 'description', 'viz_type', 'owners', + ) list_columns = [ 'slice_link', 'viz_type', 'datasource_link', 'creator', 'modified'] edit_columns = [ @@ -870,20 +372,17 @@ def pre_delete(self, obj): @expose('/add', methods=['GET', 'POST']) @has_access def add(self): - widget = self._add() - if not widget: - return redirect(self.get_redirect()) - - sources = SourceRegistry.sources - for source in sources: - ds = db.session.query(SourceRegistry.sources[source]).first() - if ds is not None: - url = "/{}/list/".format(ds.baselink) - msg = _("Click on a {} link to create a Slice".format(source)) - break - - redirect_url = "/r/msg/?url={}&msg={}".format(url, msg) - return redirect(redirect_url) + datasources = ConnectorRegistry.get_all_datasources(db.session) + datasources = [ + {'value': str(d.id) + '__' + d.type, 'label': repr(d)} + for d in datasources + ] + return self.render_template( + "superset/add_slice.html", + bootstrap_data=json.dumps({ + 'datasources': sorted(datasources), + }), + ) appbuilder.add_view( SliceModelView, @@ -921,6 +420,7 @@ class DashboardModelView(SupersetModelView, DeleteMixin): # noqa 'dashboard_title', 'slug', 'slices', 'owners', 'position_json', 'css', 'json_metadata'] show_columns = edit_columns + ['table_names'] + search_columns = ('dashboard_title', 'slug', 'owners') add_columns = edit_columns base_order = ('changed_on', 'desc') description_columns = { @@ -969,6 +469,9 @@ def pre_add(self, obj): obj.owners.append(g.user) utils.validate_json(obj.json_metadata) utils.validate_json(obj.position_json) + owners = [o for o in obj.owners] + for slc in obj.slices: + slc.owners = list(set(owners) | set(slc.owners)) def pre_update(self, obj): check_ownership(obj) @@ -977,8 +480,10 @@ def pre_update(self, obj): def pre_delete(self, obj): check_ownership(obj) - @action("mulexport", "Export", "Export dashboards?", "fa-database") + @action("mulexport", __("Export"), __("Export dashboards?"), "fa-database") def mulexport(self, items): + if not isinstance(items, list): + items = [items] ids = ''.join('&id={}'.format(d.id) for d in items) return redirect( '/dashboardmodelview/export_dashboards_form?{}'.format(ids[1:])) @@ -1009,7 +514,10 @@ def download_dashboards(self): class DashboardModelViewAsync(DashboardModelView): # noqa list_columns = ['dashboard_link', 'creator', 'modified', 'dashboard_title'] label_columns = { - 'dashboard_link': 'Dashboard', + 'dashboard_link': _('Dashboard'), + 'dashboard_title': _('Title'), + 'creator': _('Creator'), + 'modified': _('Modified'), } appbuilder.add_view_no_menu(DashboardModelViewAsync) @@ -1036,87 +544,6 @@ class LogModelView(SupersetModelView): icon="fa-list-ol") -class QueryView(SupersetModelView): - datamodel = SQLAInterface(models.Query) - list_columns = ['user', 'database', 'status', 'start_time', 'end_time'] - -appbuilder.add_view( - QueryView, - "Queries", - label=__("Queries"), - category="Manage", - category_label=__("Manage"), - icon="fa-search") - - -class DruidDatasourceModelView(SupersetModelView, DeleteMixin): # noqa - datamodel = SQLAInterface(models.DruidDatasource) - list_widget = ListWidgetWithCheckboxes - list_columns = [ - 'datasource_link', 'cluster', 'changed_by_', 'changed_on_', 'offset'] - order_columns = [ - 'datasource_link', 'changed_on_', 'offset'] - related_views = [DruidColumnInlineView, DruidMetricInlineView] - edit_columns = [ - 'datasource_name', 'cluster', 'description', 'owner', - 'is_featured', 'is_hidden', 'filter_select_enabled', - 'default_endpoint', 'offset', 'cache_timeout'] - add_columns = edit_columns - show_columns = add_columns + ['perm'] - page_size = 500 - base_order = ('datasource_name', 'asc') - description_columns = { - 'offset': _("Timezone offset (in hours) for this datasource"), - 'description': Markup( - "Supports markdown"), - } - base_filters = [['id', DatasourceFilter, lambda: []]] - label_columns = { - 'datasource_link': _("Data Source"), - 'cluster': _("Cluster"), - 'description': _("Description"), - 'owner': _("Owner"), - 'is_featured': _("Is Featured"), - 'is_hidden': _("Is Hidden"), - 'filter_select_enabled': _("Enable Filter Select"), - 'default_endpoint': _("Default Endpoint"), - 'offset': _("Time Offset"), - 'cache_timeout': _("Cache Timeout"), - } - - def pre_add(self, datasource): - number_of_existing_datasources = db.session.query( - sqla.func.count('*')).filter( - models.DruidDatasource.datasource_name == - datasource.datasource_name, - models.DruidDatasource.cluster_name == datasource.cluster.id - ).scalar() - - # table object is already added to the session - if number_of_existing_datasources > 1: - raise Exception(get_datasource_exist_error_mgs( - datasource.full_name)) - - def post_add(self, datasource): - datasource.generate_metrics() - security.merge_perm(sm, 'datasource_access', datasource.get_perm()) - if datasource.schema: - security.merge_perm(sm, 'schema_access', datasource.schema_perm) - - def post_update(self, datasource): - self.post_add(datasource) - -if config['DRUID_IS_ACTIVE']: - appbuilder.add_view( - DruidDatasourceModelView, - "Druid Datasources", - label=__("Druid Datasources"), - category="Sources", - category_label=__("Sources"), - icon="fa-cube") - - @app.route('/health') def health(): return "OK" @@ -1238,12 +665,25 @@ def update_role(self): role = sm.find_role(role_name) role.user = existing_users sm.get_session.commit() - return Response(json.dumps({ + return self.json_response({ 'role': role_name, '# missing users': len(missing_users), '# granted': len(existing_users), 'created_users': created_users, - }), status=201) + }, status=201) + + def json_response(self, obj, status=200): + return Response( + json.dumps(obj, default=utils.json_int_dttm_ser), + status=status, + mimetype="application/json") + + @has_access_api + @expose("/datasources/") + def datasources(self): + datasources = ConnectorRegistry.get_all_datasources(db.session) + datasources = [(str(o.id) + '__' + o.type, repr(o)) for o in datasources] + return self.json_response(datasources) @has_access_api @expose("/override_role_permissions/", methods=['POST']) @@ -1276,7 +716,7 @@ def override_role_permissions(self): dbs['name'], ds_name, schema=schema['name']) db_ds_names.add(fullname) - existing_datasources = SourceRegistry.get_all_datasources(db.session) + existing_datasources = ConnectorRegistry.get_all_datasources(db.session) datasources = [ d for d in existing_datasources if d.full_name in db_ds_names] role = sm.find_role(role_name) @@ -1286,17 +726,17 @@ def override_role_permissions(self): granted_perms = [] for datasource in datasources: view_menu_perm = sm.find_permission_view_menu( - view_menu_name=datasource.perm, - permission_name='datasource_access') + view_menu_name=datasource.perm, + permission_name='datasource_access') # prevent creating empty permissions if view_menu_perm and view_menu_perm.view_menu: role.permissions.append(view_menu_perm) granted_perms.append(view_menu_perm.view_menu.name) db.session.commit() - return Response(json.dumps({ + return self.json_response({ 'granted': granted_perms, 'requested': list(db_ds_names) - }), status=201) + }, status=201) @log_this @has_access @@ -1314,7 +754,7 @@ def request_access(self): datasource_id = request.args.get('datasource_id') datasource_type = request.args.get('datasource_type') if datasource_id: - ds_class = SourceRegistry.sources.get(datasource_type) + ds_class = ConnectorRegistry.sources.get(datasource_type) datasource = ( db.session.query(ds_class) .filter_by(id=int(datasource_id)) @@ -1343,7 +783,7 @@ def request_access(self): def approve(self): def clean_fulfilled_requests(session): for r in session.query(DAR).all(): - datasource = SourceRegistry.get_datasource( + datasource = ConnectorRegistry.get_datasource( r.datasource_type, r.datasource_id, session) user = sm.get_user_by_id(r.created_by_fk) if not datasource or \ @@ -1358,7 +798,7 @@ def clean_fulfilled_requests(session): role_to_extend = request.args.get('role_to_extend') session = db.session - datasource = SourceRegistry.get_datasource( + datasource = ConnectorRegistry.get_datasource( datasource_type, datasource_id, session) if not datasource: @@ -1422,6 +862,23 @@ def clean_fulfilled_requests(session): session.commit() return redirect('/accessrequestsmodelview/list/') + def get_form_data(self): + # get form data from url + if request.args.get("form_data"): + form_data = request.args.get("form_data") + elif request.form.get("form_data"): + # Supporting POST as well as get + form_data = request.form.get("form_data") + else: + form_data = '{}' + + d = json.loads(form_data) + + if request.args.get("viz_type"): + # Converting old URLs + d = cast_form_data(request.args) + return d + def get_viz( self, slice_id=None, @@ -1429,21 +886,38 @@ def get_viz( datasource_type=None, datasource_id=None): if slice_id: - slc = db.session.query(models.Slice).filter_by(id=slice_id).one() + slc = ( + db.session.query(models.Slice) + .filter_by(id=slice_id) + .one() + ) return slc.get_viz() else: - viz_type = args.get('viz_type', 'table') - datasource = SourceRegistry.get_datasource( + form_data = self.get_form_data() + viz_type = form_data.get('viz_type', 'table') + datasource = ConnectorRegistry.get_datasource( datasource_type, datasource_id, db.session) viz_obj = viz.viz_types[viz_type]( - datasource, request.args if request.args else args) + datasource, + form_data=form_data, + ) return viz_obj @has_access @expose("/slice//") def slice(self, slice_id): viz_obj = self.get_viz(slice_id) - return redirect(viz_obj.get_url(**request.args)) + endpoint = ( + '/superset/explore/{}/{}?form_data={}' + .format( + viz_obj.datasource.type, + viz_obj.datasource.id, + json.dumps(viz_obj.form_data) + ) + ) + if request.args.get("standalone") == "true": + endpoint += '&standalone=true' + return redirect(endpoint) @log_this @has_access_api @@ -1456,31 +930,47 @@ def explore_json(self, datasource_type, datasource_id): args=request.args) except Exception as e: logging.exception(e) - return json_error_response(utils.error_msg_from_exception(e)) + return json_error_response( + utils.error_msg_from_exception(e), + stacktrace=traceback.format_exc()) if not self.datasource_access(viz_obj.datasource): + return json_error_response(DATASOURCE_ACCESS_ERR, status=404) + + if request.args.get("csv") == "true": return Response( - json.dumps( - {'error': DATASOURCE_ACCESS_ERR}), - status=404, + viz_obj.get_csv(), + status=200, + headers=generate_download_headers("csv"), + mimetype="application/csv") + + if request.args.get("query") == "true": + try: + query_obj = viz_obj.query_obj() + query = viz_obj.datasource.get_query_str(query_obj) + except Exception as e: + return json_error_response(e) + return Response( + json.dumps({ + 'query': query, + 'language': viz_obj.datasource.query_language, + }), + status=200, mimetype="application/json") payload = {} - status = 200 try: - payload = viz_obj.get_payload() + payload = viz_obj.get_payload( + force=request.args.get('force') == 'true') except Exception as e: logging.exception(e) - status = 500 return json_error_response(utils.error_msg_from_exception(e)) + status = 200 if payload.get('status') == QueryStatus.FAILED: - status = 500 + status = 400 - return Response( - viz_obj.json_dumps(payload), - status=status, - mimetype="application/json") + return json_success(viz_obj.json_dumps(payload), status=status) @expose("/import_dashboards", methods=['GET', 'POST']) @log_this @@ -1492,11 +982,8 @@ def import_dashboards(self): data = pickle.load(f) # TODO: import DRUID datasources for table in data['datasources']: - if table.type == 'table': - models.SqlaTable.import_obj(table, import_time=current_tt) - else: - models.DruidDatasource.import_obj( - table, import_time=current_tt) + ds_class = ConnectorRegistry.sources.get(table.type) + ds_class.import_obj(table, import_time=current_tt) db.session.commit() for dashboard in data['dashboards']: models.Dashboard.import_obj( @@ -1505,39 +992,45 @@ def import_dashboards(self): return redirect('/dashboardmodelview/list/') return self.render_template('superset/import_dashboards.html') + @log_this + @has_access + @expose("/explorev2///") + def explorev2(self, datasource_type, datasource_id): + return redirect(url_for( + 'Superset.explore', + datasource_type=datasource_type, + datasource_id=datasource_id, + **request.args)) + @log_this @has_access @expose("/explore///") def explore(self, datasource_type, datasource_id): - viz_type = request.args.get("viz_type") - slice_id = request.args.get('slice_id') - slc = None + form_data = self.get_form_data() + + datasource_id = int(datasource_id) + viz_type = form_data.get("viz_type") + slice_id = form_data.get('slice_id') user_id = g.user.get_id() if g.user else None + slc = None if slice_id: slc = db.session.query(models.Slice).filter_by(id=slice_id).first() error_redirect = '/slicemodelview/list/' - datasource_class = SourceRegistry.sources[datasource_type] - datasources = db.session.query(datasource_class).all() - datasources = sorted(datasources, key=lambda ds: ds.full_name) - - try: - viz_obj = self.get_viz( - datasource_type=datasource_type, - datasource_id=datasource_id, - args=request.args) - except Exception as e: - flash('{}'.format(e), "alert") - return redirect(error_redirect) + datasource = ( + db.session.query(ConnectorRegistry.sources[datasource_type]) + .filter_by(id=datasource_id) + .one() + ) - if not viz_obj.datasource: - flash(DATASOURCE_MISSING_ERR, "alert") + if not datasource: + flash(DATASOURCE_MISSING_ERR, "danger") return redirect(error_redirect) - if not self.datasource_access(viz_obj.datasource): + if not self.datasource_access(datasource): flash( - __(get_datasource_access_error_msg(viz_obj.datasource.name)), + __(get_datasource_access_error_msg(datasource.name)), "danger") return redirect( 'superset/request_access/?' @@ -1545,65 +1038,49 @@ def explore(self, datasource_type, datasource_id): 'datasource_id={datasource_id}&' ''.format(**locals())) - if not viz_type and viz_obj.datasource.default_endpoint: - return redirect(viz_obj.datasource.default_endpoint) + if not viz_type and datasource.default_endpoint: + return redirect(datasource.default_endpoint) # slc perms slice_add_perm = self.can_access('can_add', 'SliceModelView') - slice_edit_perm = check_ownership(slc, raise_if_false=False) + slice_overwrite_perm = is_owner(slc, g.user) slice_download_perm = self.can_access('can_download', 'SliceModelView') # handle save or overwrite action = request.args.get('action') if action in ('saveas', 'overwrite'): return self.save_or_overwrite_slice( - request.args, slc, slice_add_perm, slice_edit_perm) - - # find out if user is in explore v2 beta group - # and set flag `is_in_explore_v2_beta` - is_in_explore_v2_beta = sm.find_role('explore-v2-beta') in get_user_roles() + request.args, + slc, slice_add_perm, + slice_overwrite_perm, + datasource_id, + datasource_type) - # handle different endpoints - if request.args.get("csv") == "true": - payload = viz_obj.get_csv() - return Response( - payload, - status=200, - headers=generate_download_headers("csv"), - mimetype="application/csv") - elif request.args.get("standalone") == "true": - return self.render_template("superset/standalone.html", viz=viz_obj, standalone_mode=True) - elif request.args.get("V2") == "true" or is_in_explore_v2_beta: - # bootstrap data for explore V2 - bootstrap_data = { - "can_add": slice_add_perm, - "can_download": slice_download_perm, - "can_edit": slice_edit_perm, - # TODO: separate endpoint for fetching datasources - "datasources": [(d.id, d.full_name) for d in datasources], - "datasource_id": datasource_id, - "datasource_name": viz_obj.datasource.name, - "datasource_type": datasource_type, - "user_id": user_id, - "viz": json.loads(viz_obj.json_data), - "filter_select": viz_obj.datasource.filter_select_enabled - } - table_name = viz_obj.datasource.table_name \ - if datasource_type == 'table' \ - else viz_obj.datasource.datasource_name - return self.render_template( - "superset/explorev2.html", - bootstrap_data=json.dumps(bootstrap_data), - slice=slc, - table_name=table_name) - else: - return self.render_template( - "superset/explore.html", - viz=viz_obj, slice=slc, datasources=datasources, - can_add=slice_add_perm, can_edit=slice_edit_perm, - can_download=slice_download_perm, - userid=g.user.get_id() if g.user else '' - ) + form_data['datasource'] = str(datasource_id) + '__' + datasource_type + standalone = request.args.get("standalone") == "true" + bootstrap_data = { + "can_add": slice_add_perm, + "can_download": slice_download_perm, + "can_overwrite": slice_overwrite_perm, + "datasource": datasource.data, + # TODO: separate endpoint for fetching datasources + "form_data": form_data, + "datasource_id": datasource_id, + "datasource_type": datasource_type, + "slice": slc.data if slc else None, + "standalone": standalone, + "user_id": user_id, + "forced_height": request.args.get('height'), + } + table_name = datasource.table_name \ + if datasource_type == 'table' \ + else datasource.datasource_name + return self.render_template( + "superset/explore.html", + bootstrap_data=json.dumps(bootstrap_data), + slice=slc, + standalone_mode=standalone, + table_name=table_name) @api @has_access_api @@ -1618,79 +1095,46 @@ def filter(self, datasource_type, datasource_id, column): :return: """ # TODO: Cache endpoint by user, datasource and column - error_redirect = '/slicemodelview/list/' - datasource_class = models.SqlaTable \ - if datasource_type == "table" else models.DruidDatasource - - datasource = db.session.query( - datasource_class).filter_by(id=datasource_id).first() + datasource_class = ConnectorRegistry.sources[datasource_type] + datasource = ( + db.session.query(datasource_class) + .filter_by(id=datasource_id) + .first() + ) if not datasource: - flash(DATASOURCE_MISSING_ERR, "alert") return json_error_response(DATASOURCE_MISSING_ERR) if not self.datasource_access(datasource): - flash(get_datasource_access_error_msg(datasource.name), "danger") return json_error_response(DATASOURCE_ACCESS_ERR) - viz_type = request.args.get("viz_type") - if not viz_type and datasource.default_endpoint: - return redirect(datasource.default_endpoint) - if not viz_type: - viz_type = "table" - try: - obj = viz.viz_types[viz_type]( - datasource, - form_data=request.args, - slice_=None) - except Exception as e: - flash(str(e), "danger") - return redirect(error_redirect) - status = 200 - payload = obj.get_values_for_column(column) - return Response( - payload, - status=status, - mimetype="application/json") + payload = json.dumps( + datasource.values_for_column(column), + default=utils.json_int_dttm_ser) + return json_success(payload) def save_or_overwrite_slice( - self, args, slc, slice_add_perm, slice_edit_perm): + self, args, slc, slice_add_perm, slice_overwrite_perm, + datasource_id, datasource_type): """Save or overwrite a slice""" slice_name = args.get('slice_name') action = args.get('action') - - # TODO use form processing form wtforms - d = args.to_dict(flat=False) - del d['action'] - if 'previous_viz_type' in d: - del d['previous_viz_type'] - - as_list = ('metrics', 'groupby', 'columns', 'all_columns', - 'mapbox_label', 'order_by_cols') - for k in d: - v = d.get(k) - if k in as_list and not isinstance(v, list): - d[k] = [v] if v else [] - if k not in as_list and isinstance(v, list): - d[k] = v[0] - - datasource_type = args.get('datasource_type') - datasource_id = args.get('datasource_id') + form_data = self.get_form_data() if action in ('saveas'): - if 'slice_id' in d: - d.pop('slice_id') # don't save old slice_id + if 'slice_id' in form_data: + form_data.pop('slice_id') # don't save old slice_id slc = models.Slice(owners=[g.user] if g.user else []) - slc.params = json.dumps(d, indent=4, sort_keys=True) + slc.params = json.dumps(form_data) slc.datasource_name = args.get('datasource_name') - slc.viz_type = args.get('viz_type') + slc.viz_type = form_data['viz_type'] slc.datasource_type = datasource_type slc.datasource_id = datasource_id slc.slice_name = slice_name if action in ('saveas') and slice_add_perm: self.save_slice(slc) - elif action == 'overwrite' and slice_edit_perm: + elif action == 'overwrite' and slice_overwrite_perm: self.overwrite_slice(slc) # Adding slice to a dashboard if requested @@ -1722,13 +1166,9 @@ def save_or_overwrite_slice( db.session.commit() if request.args.get('goto_dash') == 'true': - if request.args.get('V2') == 'true': - return dash.url - return redirect(dash.url) + return dash.url else: - if request.args.get('V2') == 'true': - return slc.slice_url - return redirect(slc.slice_url) + return slc.slice_url def save_slice(self, slc): session = db.session() @@ -1738,30 +1178,27 @@ def save_slice(self, slc): flash(msg, "info") def overwrite_slice(self, slc): - can_update = check_ownership(slc, raise_if_false=False) - if not can_update: - flash("You cannot overwrite [{}]".format(slc), "danger") - else: - session = db.session() - session.merge(slc) - session.commit() - msg = "Slice [{}] has been overwritten".format(slc.slice_name) - flash(msg, "info") + session = db.session() + session.merge(slc) + session.commit() + msg = "Slice [{}] has been overwritten".format(slc.slice_name) + flash(msg, "info") @api @has_access_api @expose("/checkbox////", methods=['GET']) def checkbox(self, model_view, id_, attr, value): """endpoint for checking/unchecking any boolean in a sqla model""" - views = sys.modules[__name__] - model_view_cls = getattr(views, model_view) - model = model_view_cls.datamodel.obj - + modelview_to_model = { + 'TableColumnInlineView': + ConnectorRegistry.sources['table'].column_class, + } + model = modelview_to_model[model_view] obj = db.session.query(model).filter_by(id=id_).first() if obj: setattr(obj, attr, value == 'true') db.session.commit() - return Response("OK", mimetype="application/json") + return json_success("OK") @api @has_access_api @@ -1779,52 +1216,60 @@ def activity_per_day(self): ) payload = {str(time.mktime(dt.timetuple())): ccount for dt, ccount in qry if dt} - return Response(json.dumps(payload), mimetype="application/json") + return json_success(json.dumps(payload)) @api @has_access_api - @expose("/all_tables/") - def all_tables(self, db_id): - """Endpoint that returns all tables and views from the database""" + @expose("/schemas//") + def schemas(self, db_id): + db_id = int(db_id) database = ( db.session .query(models.Database) .filter_by(id=db_id) .one() ) - all_tables = [] - all_views = [] schemas = database.all_schema_names() - for schema in schemas: - all_tables.extend(database.all_table_names(schema=schema)) - all_views.extend(database.all_view_names(schema=schema)) - if not schemas: - all_tables.extend(database.all_table_names()) - all_views.extend(database.all_view_names()) - + schemas = self.schemas_accessible_by_user(database, schemas) return Response( - json.dumps({"tables": all_tables, "views": all_views}), + json.dumps({'schemas': schemas}), mimetype="application/json") @api @has_access_api - @expose("/tables//") - def tables(self, db_id, schema): - """endpoint to power the calendar heatmap on the welcome page""" - schema = None if schema in ('null', 'undefined') else schema - database = ( - db.session - .query(models.Database) - .filter_by(id=db_id) - .one() - ) - tables = [t for t in database.all_table_names(schema) if - self.datasource_access_by_name(database, t, schema=schema)] - views = [v for v in database.all_view_names(schema) if - self.datasource_access_by_name(database, v, schema=schema)] - payload = {'tables': tables, 'views': views} - return Response( - json.dumps(payload), mimetype="application/json") + @expose("/tables////") + def tables(self, db_id, schema, substr): + """Endpoint to fetch the list of tables for given database""" + db_id = int(db_id) + schema = utils.js_string_to_python(schema) + substr = utils.js_string_to_python(substr) + database = db.session.query(models.Database).filter_by(id=db_id).one() + table_names = self.accessible_by_user( + database, database.all_table_names(schema), schema) + view_names = self.accessible_by_user( + database, database.all_view_names(schema), schema) + + if substr: + table_names = [tn for tn in table_names if substr in tn] + view_names = [vn for vn in view_names if substr in vn] + + max_items = config.get('MAX_TABLE_NAMES') or len(table_names) + total_items = len(table_names) + len(view_names) + max_tables = len(table_names) + max_views = len(view_names) + if total_items and substr: + max_tables = max_items * len(table_names) // total_items + max_views = max_items * len(view_names) // total_items + + table_options = [{'value': tn, 'label': tn} + for tn in table_names[:max_tables]] + table_options.extend([{'value': vn, 'label': '[view] {}'.format(vn)} + for vn in view_names[:max_views]]) + payload = { + 'tableLength': len(table_names) + len(view_names), + 'options': table_options, + } + return json_success(json.dumps(payload)) @api @has_access_api @@ -1846,10 +1291,9 @@ def copy_dash(self, dashboard_id): self._set_dash_metadata(dash, data) session.add(dash) session.commit() - dash_json = dash.json_data + dash_json = json.dumps(dash.data) session.close() - return Response( - dash_json, mimetype="application/json") + return json_success(dash_json) @api @has_access_api @@ -1932,11 +1376,10 @@ def testconn(self): engine.connect() return json.dumps(engine.table_names(), indent=4) except Exception as e: - return Response(( + logging.exception(e) + return json_error_response(( "Connection failed!\n\n" - "The error message returned was:\n{}").format(e), - status=500, - mimetype="application/json") + "The error message returned was:\n{}").format(e)) @api @has_access_api @@ -1980,9 +1423,25 @@ def recent_activity(self, user_id): 'item_title': item_title, 'time': log.Log.dttm, }) + return json_success( + json.dumps(payload, default=utils.json_int_dttm_ser)) + + @api + @has_access_api + @expose("/csrf_token/", methods=['GET']) + def csrf_token(self): return Response( - json.dumps(payload, default=utils.json_int_dttm_ser), - mimetype="application/json") + self.render_template('superset/csrf_token.json'), + mimetype='text/json', + ) + + @api + @has_access_api + @expose("/fave_dashboards_by_username//", methods=['GET']) + def fave_dashboards_by_username(self, username): + """This lets us use a user's username to pull favourite dashboards""" + user = sm.find_user(username=username) + return self.fave_dashboards(user.get_id()) @api @has_access_api @@ -2020,9 +1479,8 @@ def fave_dashboards(self, user_id): d['creator_url'] = '/superset/profile/{}/'.format( user.username) payload.append(d) - return Response( - json.dumps(payload, default=utils.json_int_dttm_ser), - mimetype="application/json") + return json_success( + json.dumps(payload, default=utils.json_int_dttm_ser)) @api @has_access_api @@ -2050,9 +1508,8 @@ def created_dashboards(self, user_id): 'url': o.url, 'dttm': o.changed_on, } for o in qry.all()] - return Response( - json.dumps(payload, default=utils.json_int_dttm_ser), - mimetype="application/json") + return json_success( + json.dumps(payload, default=utils.json_int_dttm_ser)) @api @has_access_api @@ -2076,9 +1533,8 @@ def created_slices(self, user_id): 'url': o.slice_url, 'dttm': o.changed_on, } for o in qry.all()] - return Response( - json.dumps(payload, default=utils.json_int_dttm_ser), - mimetype="application/json") + return json_success( + json.dumps(payload, default=utils.json_int_dttm_ser)) @api @has_access_api @@ -2116,9 +1572,8 @@ def fave_slices(self, user_id): d['creator_url'] = '/superset/profile/{}/'.format( user.username) payload.append(d) - return Response( - json.dumps(payload, default=utils.json_int_dttm_ser), - mimetype="application/json") + return json_success( + json.dumps(payload, default=utils.json_int_dttm_ser)) @api @has_access_api @@ -2141,12 +1596,13 @@ def warm_up_cache(self): return json_error_response(__( "Slice %(id)s not found", id=slice_id), status=404) elif table_name and db_name: + SqlaTable = ConnectorRegistry.sources['table'] table = ( - session.query(models.SqlaTable) + session.query(SqlaTable) .join(models.Database) .filter( models.Database.database_name == db_name or - models.SqlaTable.table_name == table_name) + SqlaTable.table_name == table_name) ).first() if not table: return json_error_response(__( @@ -2156,18 +1612,15 @@ def warm_up_cache(self): datasource_id=table.id, datasource_type=table.type).all() - for slice in slices: + for slc in slices: try: - obj = slice.get_viz() + obj = slc.get_viz() obj.get_json(force=True) except Exception as e: return json_error_response(utils.error_msg_from_exception(e)) - return Response( - json.dumps( - [{"slice_id": session.id, "slice_name": session.slice_name} - for session in slices]), - status=200, - mimetype="application/json") + return json_success(json.dumps( + [{"slice_id": slc.id, "slice_name": slc.slice_name} + for slc in slices])) @expose("/favstar////") def favstar(self, class_name, obj_id, action): @@ -2195,9 +1648,7 @@ def favstar(self, class_name, obj_id, action): else: count = len(favs) session.commit() - return Response( - json.dumps({'count': count}), - mimetype="application/json") + return json_success(json.dumps({'count': count})) @has_access @expose("/dashboard//") @@ -2211,37 +1662,48 @@ def dashboard(self, dashboard_id): qry = qry.filter_by(slug=dashboard_id) dash = qry.one() - datasources = {slc.datasource for slc in dash.slices} + datasources = set() + for slc in dash.slices: + datasource = slc.datasource + if datasource: + datasources.add(datasource) + for datasource in datasources: - if not self.datasource_access(datasource): + if datasource and not self.datasource_access(datasource): flash( __(get_datasource_access_error_msg(datasource.name)), "danger") return redirect( 'superset/request_access/?' - 'dashboard_id={dash.id}&' - ''.format(**locals())) + 'dashboard_id={dash.id}&'.format(**locals())) # Hack to log the dashboard_id properly, even when getting a slug @log_this def dashboard(**kwargs): # noqa pass dashboard(dashboard_id=dash.id) + dash_edit_perm = check_ownership(dash, raise_if_false=False) dash_save_perm = \ dash_edit_perm and self.can_access('can_save_dash', 'Superset') - standalone = request.args.get("standalone") == "true" - context = dict( - user_id=g.user.get_id(), - dash_save_perm=dash_save_perm, - dash_edit_perm=dash_edit_perm, - standalone_mode=standalone, - ) + + dashboard_data = dash.data + dashboard_data.update({ + 'standalone_mode': request.args.get("standalone") == "true", + 'dash_save_perm': dash_save_perm, + 'dash_edit_perm': dash_edit_perm, + }) + + bootstrap_data = { + 'user_id': g.user.get_id(), + 'dashboard_data': dashboard_data, + 'datasources': {ds.uid: ds.data for ds in datasources}, + } + return self.render_template( "superset/dashboard.html", - dashboard=dash, - context=json.dumps(context), - standalone_mode=standalone, + dashboard_title=dash.dashboard_title, + bootstrap_data=json.dumps(bootstrap_data), ) @has_access @@ -2274,12 +1736,14 @@ def sync_druid_source(self): cluster_name = payload['cluster'] user = sm.find_user(username=user_name) + DruidDatasource = ConnectorRegistry.sources['druid'] + DruidCluster = DruidDatasource.cluster_class if not user: err_msg = __("Can't find User '%(name)s', please ask your admin " "to create one.", name=user_name) logging.error(err_msg) return json_error_response(err_msg) - cluster = db.session.query(models.DruidCluster).filter_by( + cluster = db.session.query(DruidCluster).filter_by( cluster_name=cluster_name).first() if not cluster: err_msg = __("Can't find DruidCluster with cluster_name = " @@ -2287,7 +1751,7 @@ def sync_druid_source(self): logging.error(err_msg) return json_error_response(err_msg) try: - models.DruidDatasource.sync_to_db_from_config( + DruidDatasource.sync_to_db_from_config( druid_config, user, cluster) except Exception as e: logging.exception(utils.error_msg_from_exception(e)) @@ -2298,16 +1762,17 @@ def sync_druid_source(self): @expose("/sqllab_viz/", methods=['POST']) @log_this def sqllab_viz(self): + SqlaTable = ConnectorRegistry.sources['table'] data = json.loads(request.form.get('data')) table_name = data.get('datasourceName') - viz_type = data.get('chartType') + SqlaTable = ConnectorRegistry.sources['table'] table = ( - db.session.query(models.SqlaTable) + db.session.query(SqlaTable) .filter_by(table_name=table_name) .first() ) if not table: - table = models.SqlaTable(table_name=table_name) + table = SqlaTable(table_name=table_name) table.database_id = data.get('dbId') q = SupersetQuery(data.get('sql')) table.sql = q.stripped() @@ -2317,11 +1782,15 @@ def sqllab_viz(self): metrics = [] for column_name, config in data.get('columns').items(): is_dim = config.get('is_dim', False) - col = models.TableColumn( + SqlaTable = ConnectorRegistry.sources['table'] + TableColumn = SqlaTable.column_class + SqlMetric = SqlaTable.metric_class + col = TableColumn( column_name=column_name, filterable=is_dim, groupby=is_dim, is_dttm=config.get('is_date', False), + type=config.get('type', False), ) cols.append(col) if is_dim: @@ -2329,40 +1798,33 @@ def sqllab_viz(self): agg = config.get('agg') if agg: if agg == 'count_distinct': - metrics.append(models.SqlMetric( + metrics.append(SqlMetric( metric_name="{agg}__{column_name}".format(**locals()), expression="COUNT(DISTINCT {column_name})" .format(**locals()), )) else: - metrics.append(models.SqlMetric( + metrics.append(SqlMetric( metric_name="{agg}__{column_name}".format(**locals()), expression="{agg}({column_name})".format(**locals()), )) if not metrics: - metrics.append(models.SqlMetric( + metrics.append(SqlMetric( metric_name="count".format(**locals()), expression="count(*)".format(**locals()), )) table.columns = cols table.metrics = metrics db.session.commit() - params = { - 'viz_type': viz_type, - 'groupby': dims[0].column_name if dims else None, - 'metrics': metrics[0].metric_name if metrics else None, - 'metric': metrics[0].metric_name if metrics else None, - 'since': '100 years ago', - 'limit': '0', - } - params = "&".join([k + '=' + v for k, v in params.items() if v]) - return '/superset/explore/table/{table.id}/?{params}'.format(**locals()) + return self.json_response(json.dumps({ + 'table_id': table.id, + })) @has_access @expose("/table////") @log_this def table(self, database_id, table_name, schema): - schema = None if schema in ('null', 'undefined') else schema + schema = utils.js_string_to_python(schema) mydb = db.session.query(models.Database).filter_by(id=database_id).one() cols = [] indexes = [] @@ -2373,9 +1835,7 @@ def table(self, database_id, table_name, schema): primary_key = mydb.get_pk_constraint(table_name, schema) foreign_keys = mydb.get_foreign_keys(table_name, schema) except Exception as e: - return Response( - json.dumps({'error': utils.error_msg_from_exception(e)}), - mimetype="application/json") + return json_error_response(utils.error_msg_from_exception(e)) keys = [] if primary_key and primary_key.get('constrained_columns'): primary_key['column_names'] = primary_key.pop('constrained_columns') @@ -2413,17 +1873,17 @@ def table(self, database_id, table_name, schema): 'foreignKeys': foreign_keys, 'indexes': keys, } - return Response(json.dumps(tbl), mimetype="application/json") + return json_success(json.dumps(tbl)) @has_access @expose("/extra_table_metadata////") @log_this def extra_table_metadata(self, database_id, table_name, schema): - schema = None if schema in ('null', 'undefined') else schema + schema = utils.js_string_to_python(schema) mydb = db.session.query(models.Database).filter_by(id=database_id).one() payload = mydb.db_engine_spec.extra_table_metadata( mydb, table_name, schema) - return Response(json.dumps(payload), mimetype="application/json") + return json_success(json.dumps(payload)) @has_access @expose("/select_star///") @@ -2431,20 +1891,9 @@ def extra_table_metadata(self, database_id, table_name, schema): def select_star(self, database_id, table_name): mydb = db.session.query( models.Database).filter_by(id=database_id).first() - quote = mydb.get_quoter() - t = mydb.get_table(table_name) - - # Prevent exposing column fields to users that cannot access DB. - if not self.datasource_access(t.perm): - flash(get_datasource_access_error_msg(t.name), 'danger') - return redirect("/tablemodelview/list/") - - fields = ", ".join( - [quote(c.name) for c in t.columns] or "*") - s = "SELECT\n{}\nFROM {}".format(fields, table_name) return self.render_template( "superset/ajah.html", - content=s + content=mydb.select_star(table_name, show_cols=True) ) @expose("/theme/") @@ -2470,35 +1919,43 @@ def results(self, key): return json_error_response("Results backend isn't configured") blob = results_backend.get(key) - if blob: + if not blob: + return json_error_response( + "Data could not be retrieved. " + "You may want to re-run the query.", + status=410 + ) + + query = db.session.query(Query).filter_by(results_key=key).one() + rejected_tables = self.rejected_datasources( + query.sql, query.database, query.schema) + if rejected_tables: + return json_error_response(get_datasource_access_error_msg( + '{}'.format(rejected_tables))) + + payload = utils.zlib_decompress_to_string(blob) + display_limit = app.config.get('DISPLAY_SQL_MAX_ROW', None) + if display_limit: + payload_json = json.loads(payload) + payload_json['data'] = payload_json['data'][:display_limit] + return json_success( + json.dumps(payload_json, default=utils.json_iso_dttm_ser)) + + @has_access_api + @expose("/stop_query/", methods=['POST']) + @log_this + def stop_query(self): + client_id = request.form.get('client_id') + try: query = ( - db.session.query(models.Query) - .filter_by(results_key=key) - .one() + db.session.query(Query) + .filter_by(client_id=client_id).one() ) - rejected_tables = self.rejected_datasources( - query.sql, query.database, query.schema) - if rejected_tables: - return json_error_response(get_datasource_access_error_msg( - '{}'.format(rejected_tables))) - payload = zlib.decompress(blob) - display_limit = app.config.get('DISPLAY_SQL_MAX_ROW', None) - if display_limit: - payload_json = json.loads(payload) - payload_json['data'] = payload_json['data'][:display_limit] - return Response( - json.dumps(payload_json, default=utils.json_iso_dttm_ser), - status=200, mimetype="application/json") - else: - return Response( - json.dumps({ - 'error': ( - "Data could not be retrieved. You may want to " - "re-run the query." - ) - }), - status=410, - mimetype="application/json") + query.status = utils.QueryStatus.STOPPED + db.session.commit() + except Exception as e: + pass + return self.json_response('OK') @has_access_api @expose("/sql_json/", methods=['POST', 'GET']) @@ -2531,7 +1988,7 @@ def sql_json(self): tmp_table_name ) - query = models.Query( + query = Query( database_id=int(database_id), limit=int(app.config.get('SQL_MAX_ROW', None)), sql=sql, @@ -2546,21 +2003,37 @@ def sql_json(self): client_id=request.form.get('client_id'), ) session.add(query) - session.commit() + session.flush() query_id = query.id + session.commit() # shouldn't be necessary + if not query_id: + raise Exception("Query record was not created as expected.") + logging.info("Triggering query_id: {}".format(query_id)) # Async request. if async: # Ignore the celery future object and the request may time out. - sql_lab.get_sql_results.delay( - query_id, return_results=False, - store_results=not query.select_as_cta) - return Response( - json.dumps({'query': query.to_dict()}, - default=utils.json_int_dttm_ser, - allow_nan=False), - status=202, # Accepted - mimetype="application/json") + try: + sql_lab.get_sql_results.delay( + query_id=query_id, return_results=False, + store_results=not query.select_as_cta) + except Exception as e: + logging.exception(e) + msg = ( + "Failed to start remote query on worker. " + "Tell your administrator to verify the availability of " + "the message queue." + ) + query.status = QueryStatus.FAILED + query.error_message = msg + session.commit() + return json_error_response("{}".format(msg)) + + resp = json_success(json.dumps( + {'query': query.to_dict()}, default=utils.json_int_dttm_ser, + allow_nan=False), status=202) + session.commit() + return resp # Sync request. try: @@ -2572,17 +2045,13 @@ def sql_json(self): "timeout. You may want to run your query as a " "`CREATE TABLE AS` to prevent timeouts." ).format(**locals())): - data = sql_lab.get_sql_results(query_id, return_results=True) + # pylint: disable=no-value-for-parameter + data = sql_lab.get_sql_results( + query_id=query_id, return_results=True) except Exception as e: logging.exception(e) - return Response( - json.dumps({'error': "{}".format(e)}), - status=500, - mimetype="application/json") - return Response( - data, - status=200, - mimetype="application/json") + return json_error_response("{}".format(e)) + return json_success(data) @has_access @expose("/csv/") @@ -2590,7 +2059,7 @@ def sql_json(self): def csv(self, client_id): """Download the query results as csv.""" query = ( - db.session.query(models.Query) + db.session.query(Query) .filter_by(client_id=client_id) .one() ) @@ -2604,9 +2073,10 @@ def csv(self, client_id): if results_backend and query.results_key: blob = results_backend.get(query.results_key) if blob: - json_payload = zlib.decompress(blob) + json_payload = utils.zlib_decompress_to_string(blob) obj = json.loads(json_payload) - df = pd.DataFrame.from_records(obj['data']) + columns = [c['name'] for c in obj['columns']] + df = pd.DataFrame.from_records(obj['data'], columns=columns) csv = df.to_csv(index=False, encoding='utf-8') else: sql = query.select_sql or query.executed_sql @@ -2622,11 +2092,12 @@ def csv(self, client_id): @expose("/fetch_datasource_metadata") @log_this def fetch_datasource_metadata(self): - datasource_type = request.args.get('datasource_type') - datasource_class = SourceRegistry.sources[datasource_type] + datasource_id, datasource_type = ( + request.args.get('datasourceKey').split('__')) + datasource_class = ConnectorRegistry.sources[datasource_type] datasource = ( db.session.query(datasource_class) - .filter_by(id=request.args.get('datasource_id')) + .filter_by(id=int(datasource_id)) .first() ) @@ -2637,21 +2108,15 @@ def fetch_datasource_metadata(self): # Check permission for datasource if not self.datasource_access(datasource): return json_error_response(DATASOURCE_ACCESS_ERR) + return json_success(json.dumps(datasource.data)) - return Response( - json.dumps(datasource.data), - mimetype="application/json" - ) - - @has_access @expose("/queries/") def queries(self, last_updated_ms): """Get the updated queries.""" + stats_logger.incr('queries') if not g.user.get_id(): - return Response( - json.dumps({'error': "Please login to access the queries."}), - status=403, - mimetype="application/json") + return json_error_response( + "Please login to access the queries.", status=403) # Unix time, milliseconds. last_updated_ms_int = int(float(last_updated_ms)) if last_updated_ms else 0 @@ -2660,25 +2125,23 @@ def queries(self, last_updated_ms): last_updated_dt = utils.EPOCH + timedelta(seconds=last_updated_ms_int / 1000) sql_queries = ( - db.session.query(models.Query) + db.session.query(Query) .filter( - models.Query.user_id == g.user.get_id(), - models.Query.changed_on >= last_updated_dt, + Query.user_id == g.user.get_id(), + Query.changed_on >= last_updated_dt, ) .all() ) dict_queries = {q.client_id: q.to_dict() for q in sql_queries} - return Response( - json.dumps(dict_queries, default=utils.json_int_dttm_ser), - status=200, - mimetype="application/json") + return json_success( + json.dumps(dict_queries, default=utils.json_int_dttm_ser)) @has_access @expose("/search_queries") @log_this def search_queries(self): """Search for queries.""" - query = db.session.query(models.Query) + query = db.session.query(Query) search_user_id = request.args.get('user_id') database_id = request.args.get('database_id') search_text = request.args.get('search_text') @@ -2689,30 +2152,30 @@ def search_queries(self): if search_user_id: # Filter on db Id - query = query.filter(models.Query.user_id == search_user_id) + query = query.filter(Query.user_id == search_user_id) if database_id: # Filter on db Id - query = query.filter(models.Query.database_id == database_id) + query = query.filter(Query.database_id == database_id) if status: # Filter on status - query = query.filter(models.Query.status == status) + query = query.filter(Query.status == status) if search_text: # Filter on search text query = query \ - .filter(models.Query.sql.like('%{}%'.format(search_text))) + .filter(Query.sql.like('%{}%'.format(search_text))) if from_time: - query = query.filter(models.Query.start_time > int(from_time)) + query = query.filter(Query.start_time > int(from_time)) if to_time: - query = query.filter(models.Query.start_time < int(to_time)) + query = query.filter(Query.start_time < int(to_time)) query_limit = config.get('QUERY_SEARCH_LIMIT', 1000) sql_queries = ( - query.order_by(models.Query.start_time.asc()) + query.order_by(Query.start_time.asc()) .limit(query_limit) .all() ) @@ -2724,30 +2187,6 @@ def search_queries(self): status=200, mimetype="application/json") - @has_access - @expose("/refresh_datasources/") - def refresh_datasources(self): - """endpoint that refreshes druid datasources metadata""" - session = db.session() - for cluster in session.query(models.DruidCluster).all(): - cluster_name = cluster.cluster_name - try: - cluster.refresh_datasources() - except Exception as e: - flash( - "Error while processing cluster '{}'\n{}".format( - cluster_name, utils.error_msg_from_exception(e)), - "danger") - logging.exception(e) - return redirect('/druidclustermodelview/list/') - cluster.metadata_last_refreshed = datetime.now() - flash( - "Refreshed metadata from cluster " - "[" + cluster.cluster_name + "]", - 'info') - session.commit() - return redirect("/druiddatasourcemodelview/list/") - @app.errorhandler(500) def show_traceback(self): return render_template( @@ -2774,7 +2213,6 @@ def profile(self, username): .one() ) roles = {} - from collections import defaultdict permissions = defaultdict(set) for role in user.roles: perms = set() @@ -2821,16 +2259,6 @@ def sqllab(self): ) appbuilder.add_view_no_menu(Superset) -if config['DRUID_IS_ACTIVE']: - appbuilder.add_link( - "Refresh Druid Metadata", - label=__("Refresh Druid Metadata"), - href='/superset/refresh_datasources/', - category='Sources', - category_label=__("Sources"), - category_icon='fa-database', - icon="fa-cog") - class CssTemplateModelView(SupersetModelView, DeleteMixin): datamodel = SQLAInterface(models.CssTemplate) @@ -2856,16 +2284,22 @@ class CssTemplateAsyncModelView(CssTemplateModelView): appbuilder.add_link( 'SQL Editor', + label=_("SQL Editor"), href='/superset/sqllab', category_icon="fa-flask", icon="fa-flask", - category='SQL Lab') + category='SQL Lab', + category_label=__("SQL Lab"), +) appbuilder.add_link( 'Query Search', + label=_("Query Search"), href='/superset/sqllab#search', icon="fa-search", category_icon="fa-flask", - category='SQL Lab') + category='SQL Lab', + category_label=__("SQL Lab"), +) @app.after_request diff --git a/superset/views/sql_lab.py b/superset/views/sql_lab.py new file mode 100644 index 0000000000000..16a8dd21c9477 --- /dev/null +++ b/superset/views/sql_lab.py @@ -0,0 +1,70 @@ +from flask import redirect, g + +from flask_appbuilder import expose +from flask_appbuilder.models.sqla.interface import SQLAInterface + +from flask_babel import gettext as __ + +from superset import appbuilder +from superset.models.sql_lab import Query, SavedQuery +from .base import SupersetModelView, BaseSupersetView, DeleteMixin + + +class QueryView(SupersetModelView): + datamodel = SQLAInterface(Query) + list_columns = ['user', 'database', 'status', 'start_time', 'end_time'] + +appbuilder.add_view( + QueryView, + "Queries", + label=__("Queries"), + category="Manage", + category_label=__("Manage"), + icon="fa-search") + + +class SavedQueryView(SupersetModelView, DeleteMixin): + datamodel = SQLAInterface(SavedQuery) + list_columns = [ + 'label', 'user', 'database', 'schema', 'description', + 'modified', 'pop_tab_link'] + show_columns = [ + 'id', 'label', 'user', 'database', + 'description', 'sql', 'pop_tab_link'] + search_columns = ('label', 'user', 'database', 'schema', 'changed_on') + add_columns = ['label', 'database', 'description', 'sql'] + edit_columns = add_columns + base_order = ('changed_on', 'desc') + + def pre_add(self, obj): + obj.user = g.user + + def pre_update(self, obj): + self.pre_add(obj) + + +class SavedQueryViewApi(SavedQueryView): + show_columns = ['label', 'db_id', 'schema', 'description', 'sql'] + add_columns = show_columns + edit_columns = add_columns + +appbuilder.add_view_no_menu(SavedQueryViewApi) +appbuilder.add_view_no_menu(SavedQueryView) + +appbuilder.add_link( + __('Saved Queries'), + href='/sqllab/my_queries/', + icon="fa-save", + category='SQL Lab') + + +class SqlLab(BaseSupersetView): + """The base views for Superset!""" + @expose("/my_queries/") + def my_queries(self): + """Assigns a list of found users to the given role.""" + return redirect( + '/savedqueryview/list/?_flt_0_user={}'.format(g.user.id)) + + +appbuilder.add_view_no_menu(SqlLab) diff --git a/superset/viz.py b/superset/viz.py index eaf5a63740883..5dec4a172b156 100755 --- a/superset/viz.py +++ b/superset/viz.py @@ -11,6 +11,7 @@ import copy import hashlib import logging +import traceback import uuid import zlib @@ -24,15 +25,13 @@ from markdown import markdown import simplejson as json from six import string_types, PY3 -from werkzeug.datastructures import ImmutableMultiDict, MultiDict -from werkzeug.urls import Href from dateutil import relativedelta as rdelta from superset import app, utils, cache -from superset.forms import FormFactory -from superset.utils import flasher, DTTM_ALIAS +from superset.utils import DTTM_ALIAS config = app.config +stats_logger = config.get('STATS_LOGGER') class BaseViz(object): @@ -43,145 +42,24 @@ class BaseViz(object): verbose_name = "Base Viz" credits = "" is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'metrics', 'groupby', - ) - },) - form_overrides = {} - def __init__(self, datasource, form_data, slice_=None): - self.orig_form_data = form_data + def __init__(self, datasource, form_data): if not datasource: raise Exception("Viz is missing a datasource") self.datasource = datasource self.request = request self.viz_type = form_data.get("viz_type") - self.slice = slice_ - - # TODO refactor all form related logic out of here and into forms.py - ff = FormFactory(self) - form_class = ff.get_form() - defaults = form_class().data.copy() - previous_viz_type = form_data.get('previous_viz_type') - if isinstance(form_data, (MultiDict, ImmutableMultiDict)): - form = form_class(form_data) - else: - form = form_class(**form_data) - data = form.data.copy() - - if not form.validate(): - for k, v in form.errors.items(): - if not data.get('json') and not data.get('async'): - flasher("{}: {}".format(k, " ".join(v)), 'danger') - if previous_viz_type != self.viz_type: - data = { - k: form.data[k] - for k in form_data.keys() - if k in form.data} - defaults.update(data) - self.form_data = defaults + self.form_data = form_data + self.query = "" - self.form_data['previous_viz_type'] = self.viz_type self.token = self.form_data.get( 'token', 'token_' + uuid.uuid4().hex[:8]) self.metrics = self.form_data.get('metrics') or [] self.groupby = self.form_data.get('groupby') or [] - self.reassignments() self.status = None self.error_message = None - @classmethod - def flat_form_fields(cls): - l = set() - for d in cls.fieldsets: - for obj in d['fields']: - if obj and isinstance(obj, (tuple, list)): - l |= {a for a in obj if a} - elif obj: - l.add(obj) - return tuple(l) - - def reassignments(self): - pass - - def get_url(self, for_cache_key=False, json_endpoint=False, **kwargs): - """Returns the URL for the viz - - :param for_cache_key: when getting the url as the identifier to hash - for the cache key - :type for_cache_key: boolean - """ - d = self.orig_form_data.copy() - if 'json' in d: - del d['json'] - if 'action' in d: - del d['action'] - if 'slice_id' in d: - del d['slice_id'] - d.update(kwargs) - # Remove unchecked checkboxes because HTML is weird like that - od = MultiDict() - for key in sorted(d.keys()): - # if MultiDict is initialized with MD({key:[emptyarray]}), - # key is included in d.keys() but accessing it throws - try: - if d[key] is False: - del d[key] - continue - except IndexError: - pass - - if isinstance(d, (MultiDict, ImmutableMultiDict)): - v = d.getlist(key) - else: - v = d.get(key) - if not isinstance(v, list): - v = [v] - for item in v: - od.add(key, item) - - base_endpoint = '/superset/explore' - if json_endpoint: - base_endpoint = '/superset/explore_json' - - href = Href( - '{base_endpoint}/{self.datasource.type}/' - '{self.datasource.id}/'.format(**locals())) - if for_cache_key and 'force' in od: - del od['force'] - return href(od) - - def get_filter_url(self): - """Returns the URL to retrieve column values used in the filter""" - data = self.orig_form_data.copy() - # Remove unchecked checkboxes because HTML is weird like that - ordered_data = MultiDict() - for key in sorted(data.keys()): - # if MultiDict is initialized with MD({key:[emptyarray]}), - # key is included in d.keys() but accessing it throws - try: - if data[key] is False: - del data[key] - continue - except IndexError: - pass - - if isinstance(data, (MultiDict, ImmutableMultiDict)): - v = data.getlist(key) - else: - v = data.get(key) - if not isinstance(v, list): - v = [v] - for item in v: - ordered_data.add(key, item) - href = Href( - '/superset/filter/{self.datasource.type}/' - '{self.datasource.id}/'.format(**locals())) - return href(ordered_data) - def get_df(self, query_obj=None): """Returns a pandas dataframe based on the query object""" if not query_obj: @@ -197,10 +75,10 @@ def get_df(self, query_obj=None): timestamp_format = dttm_col.python_date_format # The datasource here can be different backend but the interface is common - self.results = self.datasource.query(**query_obj) + self.results = self.datasource.query(query_obj) + self.query = self.results.query self.status = self.results.status self.error_message = self.results.error_message - self.query = self.results.query df = self.results.df # Transform the timestamp we received from database to pandas supported @@ -210,7 +88,8 @@ def get_df(self, query_obj=None): # parsing logic. if df is None or df.empty: self.status = utils.QueryStatus.FAILED - self.error_message = "No data." + if not self.error_message: + self.error_message = "No data." return pd.DataFrame() else: if DTTM_ALIAS in df.columns: @@ -225,81 +104,70 @@ def get_df(self, query_obj=None): df = df.fillna(0) return df - @property - def form(self): - return self.form_class(**self.form_data) - - @property - def form_class(self): - return FormFactory(self).get_form() - def get_extra_filters(self): - extra_filters = self.form_data.get('extra_filters') - if not extra_filters: - return {} - return json.loads(extra_filters) - - def query_filters(self, is_having_filter=False): - """Processes the filters for the query""" - form_data = self.form_data - # Building filters - filters = [] - field_prefix = 'flt' if not is_having_filter else 'having' - for i in range(1, 10): - col = form_data.get(field_prefix + "_col_" + str(i)) - op = form_data.get(field_prefix + "_op_" + str(i)) - eq = form_data.get(field_prefix + "_eq_" + str(i)) - if col and op and eq is not None: - filters.append((col, op, eq)) - - if is_having_filter: - return filters - - # Extra filters (coming from dashboard) - for col, vals in self.get_extra_filters().items(): - if not (col and vals): - continue - elif col in self.datasource.filterable_column_names: - # Quote values with comma to avoid conflict - vals = ["'{}'".format(x) if "," in x else x for x in vals] - filters += [(col, 'in', ",".join(vals))] - return filters + extra_filters = self.form_data.get('extra_filters', []) + return {f['col']: f['val'] for f in extra_filters} def query_obj(self): """Building a query object""" form_data = self.form_data groupby = form_data.get("groupby") or [] - metrics = form_data.get("metrics") or ['count'] + metrics = form_data.get("metrics") or [] + + # extra_filters are temporary/contextual filters that are external + # to the slice definition. We use those for dynamic interactive + # filters like the ones emitted by the "Filter Box" visualization extra_filters = self.get_extra_filters() granularity = ( form_data.get("granularity") or form_data.get("granularity_sqla") ) - limit = int(form_data.get("limit", 0)) + limit = int(form_data.get("limit") or 0) timeseries_limit_metric = form_data.get("timeseries_limit_metric") row_limit = int( - form_data.get("row_limit", config.get("ROW_LIMIT"))) + form_data.get("row_limit") or config.get("ROW_LIMIT")) + + # __form and __to are special extra_filters that target time + # boundaries. The rest of extra_filters are simple + # [column_name in list_of_values]. `__` prefix is there to avoid + # potential conflicts with column that would be named `from` or `to` since = ( - extra_filters.get('__from') or form_data.get("since", "1 year ago") + extra_filters.get('__from') or + form_data.get("since") or + config.get("SUPERSET_DEFAULT_SINCE", "1 year ago") ) + from_dttm = utils.parse_human_datetime(since) now = datetime.now() if from_dttm > now: from_dttm = now - (from_dttm - now) + until = extra_filters.get('__to') or form_data.get("until", "now") to_dttm = utils.parse_human_datetime(until) if from_dttm > to_dttm: - flasher("The date range doesn't seem right.", "danger") - from_dttm = to_dttm # Making them identical to not raise + raise Exception("From date cannot be larger than to date") # extras are used to query elements specific to a datasource type # for instance the extra where clause that applies only to Tables extras = { 'where': form_data.get("where", ''), 'having': form_data.get("having", ''), - 'having_druid': self.query_filters(is_having_filter=True), + 'having_druid': form_data.get('having_filters') \ + if 'having_filters' in form_data else [], 'time_grain_sqla': form_data.get("time_grain_sqla", ''), 'druid_time_origin': form_data.get("druid_time_origin", ''), } + filters = form_data['filters'] if 'filters' in form_data \ + else [] + for col, vals in self.get_extra_filters().items(): + if not (col and vals) or col.startswith('__'): + continue + elif col in self.datasource.filterable_column_names: + # Quote values with comma to avoid conflict + filters += [{ + 'col': col, + 'op': 'in', + 'val': vals, + }] d = { 'granularity': granularity, 'from_dttm': from_dttm, @@ -308,18 +176,18 @@ def query_obj(self): 'groupby': groupby, 'metrics': metrics, 'row_limit': row_limit, - 'filter': self.query_filters(), + 'filter': filters, 'timeseries_limit': limit, 'extras': extras, 'timeseries_limit_metric': timeseries_limit_metric, + 'form_data': form_data, } return d @property def cache_timeout(self): - - if self.slice and self.slice.cache_timeout: - return self.slice.cache_timeout + if self.form_data.get('cache_timeout'): + return int(self.form_data.get('cache_timeout')) if self.datasource.cache_timeout: return self.datasource.cache_timeout if ( @@ -333,15 +201,21 @@ def get_json(self, force=False): self.get_payload(force), default=utils.json_int_dttm_ser, ignore_nan=True) + @property + def cache_key(self): + s = str([(k, self.form_data[k]) for k in sorted(self.form_data.keys())]) + return hashlib.md5(s.encode('utf-8')).hexdigest() + def get_payload(self, force=False): """Handles caching around the json payload retrieval""" cache_key = self.cache_key payload = None force = force if force else self.form_data.get('force') == 'true' - if not force: + if not force and cache: payload = cache.get(cache_key) if payload: + stats_logger.incr('loaded_from_source') is_cached = True try: cached_data = zlib.decompress(payload) @@ -355,47 +229,50 @@ def get_payload(self, force=False): logging.info("Serving from cache") if not payload: + stats_logger.incr('loaded_from_cache') + data = None is_cached = False cache_timeout = self.cache_timeout + stacktrace = None try: - data = self.get_data() + df = self.get_df() + if not self.error_message: + data = self.get_data(df) except Exception as e: logging.exception(e) if not self.error_message: self.error_message = str(e) self.status = utils.QueryStatus.FAILED data = None + stacktrace = traceback.format_exc() payload = { 'cache_key': cache_key, 'cache_timeout': cache_timeout, - 'column_formats': self.data['column_formats'], - 'csv_endpoint': self.csv_endpoint, 'data': data, 'error': self.error_message, - 'filter_endpoint': self.filter_endpoint, 'form_data': self.form_data, - 'json_endpoint': self.json_endpoint, 'query': self.query, - 'standalone_endpoint': self.standalone_endpoint, 'status': self.status, + 'stacktrace': stacktrace, } - payload['cached_dttm'] = datetime.now().isoformat().split('.')[0] + payload['cached_dttm'] = datetime.utcnow().isoformat().split('.')[0] logging.info("Caching for the next {} seconds".format( cache_timeout)) data = self.json_dumps(payload) if PY3: data = bytes(data, 'utf-8') - try: - cache.set( - cache_key, - zlib.compress(data), - timeout=cache_timeout) - except Exception as e: - # cache.set call can fail if the backend is down or if - # the key is too large or whatever other reasons - logging.warning("Could not cache key {}".format(cache_key)) - logging.exception(e) - cache.delete(cache_key) + if cache and self.status != utils.QueryStatus.FAILED: + try: + cache.set( + cache_key, + zlib.compress(data), + timeout=cache_timeout) + except Exception as e: + # cache.set call can fail if the backend is down or if + # the key is too large or whatever other reasons + logging.warning("Could not cache key {}".format(cache_key)) + logging.exception(e) + cache.delete(cache_key) payload['is_cached'] = is_cached return payload @@ -406,19 +283,10 @@ def json_dumps(self, obj): def data(self): """This is the data object serialized to the js layer""" content = { - 'csv_endpoint': self.csv_endpoint, 'form_data': self.form_data, - 'json_endpoint': self.json_endpoint, - 'filter_endpoint': self.filter_endpoint, - 'standalone_endpoint': self.standalone_endpoint, 'token': self.token, 'viz_name': self.viz_type, 'filter_select_enabled': self.datasource.filter_select_enabled, - 'column_formats': { - m.metric_name: m.d3format - for m in self.datasource.metrics - if m.d3format - }, } return content @@ -427,58 +295,9 @@ def get_csv(self): include_index = not isinstance(df.index, pd.RangeIndex) return df.to_csv(index=include_index, encoding="utf-8") - def get_values_for_column(self, column): - """ - Retrieves values for a column to be used by the filter dropdown. - - :param column: column name - :return: JSON containing the some values for a column - """ - form_data = self.form_data - - since = form_data.get("since", "1 year ago") - from_dttm = utils.parse_human_datetime(since) - now = datetime.now() - if from_dttm > now: - from_dttm = now - (from_dttm - now) - until = form_data.get("until", "now") - to_dttm = utils.parse_human_datetime(until) - if from_dttm > to_dttm: - flasher("The date range doesn't seem right.", "danger") - from_dttm = to_dttm # Making them identical to not raise - - kwargs = dict( - column_name=column, - from_dttm=from_dttm, - to_dttm=to_dttm, - ) - df = self.datasource.values_for_column(**kwargs) - return df[column].to_json() - - def get_data(self): + def get_data(self, df): return [] - @property - def json_endpoint(self): - return self.get_url(json_endpoint=True) - - @property - def filter_endpoint(self): - return self.get_filter_url() - - @property - def cache_key(self): - url = self.get_url(for_cache_key=True, json="true", force="false") - return hashlib.md5(url.encode('utf-8')).hexdigest() - - @property - def csv_endpoint(self): - return self.get_url(csv="true") - - @property - def standalone_endpoint(self): - return self.get_url(standalone="true") - @property def json_data(self): return json.dumps(self.data) @@ -491,49 +310,41 @@ class TableViz(BaseViz): viz_type = "table" verbose_name = _("Table View") credits = 'a Superset original' - fieldsets = ({ - 'label': _("GROUP BY"), - 'description': _('Use this section if you want a query that aggregates'), - 'fields': ('groupby', 'metrics') - }, { - 'label': _("NOT GROUPED BY"), - 'description': _('Use this section if you want to query atomic rows'), - 'fields': ('all_columns', 'order_by_cols'), - }, { - 'label': _("Options"), - 'fields': ( - 'table_timestamp_format', - 'row_limit', - 'page_length', - ('include_search', 'table_filter'), - ) - }) - form_overrides = ({ - 'metrics': { - 'default': [], - }, - }) is_timeseries = False + def should_be_timeseries(self): + fd = self.form_data + # TODO handle datasource-type-specific code in datasource + conditions_met = ( + (fd.get('granularity') and fd.get('granularity') != 'all') or + (fd.get('granularity_sqla') and fd.get('time_grain_sqla')) + ) + if fd.get('include_time') and not conditions_met: + raise Exception( + "Pick a granularity in the Time section or " + "uncheck 'Include Time'") + return fd.get('include_time') + def query_obj(self): d = super(TableViz, self).query_obj() fd = self.form_data + if fd.get('all_columns') and (fd.get('groupby') or fd.get('metrics')): raise Exception( "Choose either fields to [Group By] and [Metrics] or " "[Columns], not both") + if fd.get('all_columns'): d['columns'] = fd.get('all_columns') d['groupby'] = [] order_by_cols = fd.get('order_by_cols') or [] d['orderby'] = [json.loads(t) for t in order_by_cols] + + d['is_timeseries'] = self.should_be_timeseries() return d - def get_data(self): - df = self.get_df() - if ( - self.form_data.get("granularity") == "all" and - DTTM_ALIAS in df): + def get_data(self, df): + if not self.should_be_timeseries() and DTTM_ALIAS in df: del df[DTTM_ALIAS] return dict( @@ -553,15 +364,6 @@ class PivotTableViz(BaseViz): verbose_name = _("Pivot Table") credits = 'a Superset original' is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'groupby', - 'columns', - 'metrics', - 'pandas_aggfunc', - ) - },) def query_obj(self): d = super(PivotTableViz, self).query_obj() @@ -584,8 +386,7 @@ def query_obj(self): d['groupby'] = list(set(groupby) | set(columns)) return d - def get_data(self): - df = self.get_df() + def get_data(self, df): if ( self.form_data.get("granularity") == "all" and DTTM_ALIAS in df): @@ -610,13 +411,12 @@ class MarkupViz(BaseViz): viz_type = "markup" verbose_name = _("Markup") - fieldsets = ({ - 'label': None, - 'fields': ('markup_type', 'code') - },) is_timeseries = False - def get_data(self): + def get_df(self): + return True + + def get_data(self, df): markup_type = self.form_data.get("markup_type") code = self.form_data.get("code", '') if markup_type == "markdown": @@ -630,17 +430,10 @@ class SeparatorViz(MarkupViz): viz_type = "separator" verbose_name = _("Separator") - form_overrides = { - 'code': { - 'default': ( - "####Section Title\n" - "A paragraph describing the section" - "of the dashboard, right before the separator line " - "\n\n" - "---------------" - ), - } - } + + def get_data(self, df): + code = markdown(self.form_data.get("code", '')) + return dict(html=code) class WordCloudViz(BaseViz): @@ -654,14 +447,6 @@ class WordCloudViz(BaseViz): viz_type = "word_cloud" verbose_name = _("Word Cloud") is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'series', 'metric', 'limit', - ('size_from', 'size_to'), - 'rotation', - ) - },) def query_obj(self): d = super(WordCloudViz, self).query_obj() @@ -670,8 +455,7 @@ def query_obj(self): d['groupby'] = [self.form_data.get('series')] return d - def get_data(self): - df = self.get_df() + def get_data(self, df): # Ordering the columns df = df[[self.form_data.get('series'), self.form_data.get('metric')]] # Labeling the columns for uniform json schema @@ -687,19 +471,6 @@ class TreemapViz(BaseViz): verbose_name = _("Treemap") credits = 'd3.js' is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'metrics', - 'groupby', - ), - }, { - 'label': _('Chart Options'), - 'fields': ( - 'treemap_ratio', - 'number_format', - ) - },) def _nest(self, metric, df): nlevels = df.index.nlevels @@ -711,8 +482,7 @@ def _nest(self, metric, df): for l in df.index.levels[0]] return result - def get_data(self): - df = self.get_df() + def get_data(self, df): df = df.set_index(self.form_data.get("groupby")) chart_data = [{"name": metric, "children": self._nest(metric, df)} for metric in df.columns] @@ -728,17 +498,8 @@ class CalHeatmapViz(BaseViz): credits = ( 'cal-heatmap') is_timeseries = True - fieldsets = ({ - 'label': None, - 'fields': ( - 'metric', - 'domain_granularity', - 'subdomain_granularity', - ), - },) - - def get_data(self): - df = self.get_df() + + def get_data(self, df): form_data = self.form_data df.columns = ["timestamp", "metric"] @@ -794,23 +555,32 @@ class BoxPlotViz(NVD3Viz): verbose_name = _("Box Plot") sort_series = False is_timeseries = True - fieldsets = ({ - 'label': None, - 'fields': ( - 'metrics', - 'groupby', 'limit', - ), - }, { - 'label': _('Chart Options'), - 'fields': ( - 'whisker_options', - ) - },) - def get_df(self, query_obj=None): - form_data = self.form_data - df = super(BoxPlotViz, self).get_df(query_obj) + def to_series(self, df, classed='', title_suffix=''): + label_sep = " - " + chart_data = [] + for index_value, row in zip(df.index, df.to_dict(orient="records")): + if isinstance(index_value, tuple): + index_value = label_sep.join(index_value) + boxes = defaultdict(dict) + for (label, key), value in row.items(): + if key == "median": + key = "Q2" + boxes[label][key] = value + for label, box in boxes.items(): + if len(self.form_data.get("metrics")) > 1: + # need to render data labels with metrics + chart_label = label_sep.join([index_value, label]) + else: + chart_label = index_value + chart_data.append({ + "label": chart_label, + "values": box, + }) + return chart_data + def get_data(self, df): + form_data = self.form_data df = df.fillna(0) # conform to NVD3 names @@ -862,33 +632,6 @@ def outliers(series): aggregate = [Q1, np.median, Q3, whisker_high, whisker_low, outliers] df = df.groupby(form_data.get('groupby')).agg(aggregate) - return df - - def to_series(self, df, classed='', title_suffix=''): - label_sep = " - " - chart_data = [] - for index_value, row in zip(df.index, df.to_dict(orient="records")): - if isinstance(index_value, tuple): - index_value = label_sep.join(index_value) - boxes = defaultdict(dict) - for (label, key), value in row.items(): - if key == "median": - key = "Q2" - boxes[label][key] = value - for label, box in boxes.items(): - if len(self.form_data.get("metrics")) > 1: - # need to render data labels with metrics - chart_label = label_sep.join([index_value, label]) - else: - chart_label = index_value - chart_data.append({ - "label": chart_label, - "values": box, - }) - return chart_data - - def get_data(self): - df = self.get_df() chart_data = self.to_series(df) return chart_data @@ -900,22 +643,6 @@ class BubbleViz(NVD3Viz): viz_type = "bubble" verbose_name = _("Bubble Chart") is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'series', 'entity', - 'x', 'y', - 'size', 'limit', - ) - }, { - 'label': _('Chart Options'), - 'fields': ( - ('x_log_scale', 'y_log_scale'), - ('show_legend', None), - 'max_bubble_size', - ('x_axis_label', 'y_axis_label'), - ) - },) def query_obj(self): form_data = self.form_data @@ -929,6 +656,7 @@ def query_obj(self): self.z_metric = form_data.get('size') self.entity = form_data.get('entity') self.series = form_data.get('series') + d['row_limit'] = form_data.get('limit') d['metrics'] = [ self.z_metric, @@ -939,18 +667,13 @@ def query_obj(self): raise Exception("Pick a metric for x, y and size") return d - def get_df(self, query_obj=None): - df = super(BubbleViz, self).get_df(query_obj) - df = df.fillna(0) + def get_data(self, df): df['x'] = df[[self.x_metric]] df['y'] = df[[self.y_metric]] df['size'] = df[[self.z_metric]] df['shape'] = 'circle' df['group'] = df[[self.series]] - return df - def get_data(self): - df = self.get_df() series = defaultdict(list) for row in df.to_dict(orient='records'): series[row['group']].append(row) @@ -969,15 +692,6 @@ class BulletViz(NVD3Viz): viz_type = "bullet" verbose_name = _("Bullet Chart") is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'metric', - 'ranges', 'range_labels', - 'markers', 'marker_labels', - 'marker_lines', 'marker_line_labels', - ) - },) def query_obj(self): form_data = self.form_data @@ -1005,14 +719,9 @@ def as_floats(field): raise Exception("Pick a metric to display") return d - def get_df(self, query_obj=None): - df = super(BulletViz, self).get_df(query_obj) + def get_data(self, df): df = df.fillna(0) df['metric'] = df[[self.metric]] - return df - - def get_data(self): - df = self.get_df() values = df['metric'].values return { 'measures': values.tolist(), @@ -1033,25 +742,6 @@ class BigNumberViz(BaseViz): verbose_name = _("Big Number with Trendline") credits = 'a Superset original' is_timeseries = True - fieldsets = ({ - 'label': None, - 'fields': ( - 'metric', - 'compare_lag', - 'compare_suffix', - 'y_axis_format', - ) - },) - form_overrides = { - 'y_axis_format': { - 'label': _('Number format'), - } - } - - def reassignments(self): - metric = self.form_data.get('metric') - if not metric: - self.form_data['metric'] = self.orig_form_data.get('metrics') def query_obj(self): d = super(BigNumberViz, self).query_obj() @@ -1062,12 +752,10 @@ def query_obj(self): self.form_data['metric'] = metric return d - def get_data(self): + def get_data(self, df): form_data = self.form_data - df = self.get_df() df.sort_values(by=df.columns[0], inplace=True) - compare_lag = form_data.get("compare_lag", "") - compare_lag = int(compare_lag) if compare_lag and compare_lag.isdigit() else 0 + compare_lag = form_data.get("compare_lag") return { 'data': df.values.tolist(), 'compare_lag': compare_lag, @@ -1083,24 +771,6 @@ class BigNumberTotalViz(BaseViz): verbose_name = _("Big Number") credits = 'a Superset original' is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'metric', - 'subheader', - 'y_axis_format', - ) - },) - form_overrides = { - 'y_axis_format': { - 'label': _('Number format'), - } - } - - def reassignments(self): - metric = self.form_data.get('metric') - if not metric: - self.form_data['metric'] = self.orig_form_data.get('metrics') def query_obj(self): d = super(BigNumberTotalViz, self).query_obj() @@ -1111,9 +781,8 @@ def query_obj(self): self.form_data['metric'] = metric return d - def get_data(self): + def get_data(self, df): form_data = self.form_data - df = self.get_df() df.sort_values(by=df.columns[0], inplace=True) return { 'data': df.values.tolist(), @@ -1129,56 +798,62 @@ class NVD3TimeSeriesViz(NVD3Viz): verbose_name = _("Time Series - Line Chart") sort_series = False is_timeseries = True - fieldsets = ({ - 'label': None, - 'fields': ( - 'metrics', - 'groupby', - ('limit', 'timeseries_limit_metric'), - ), - }, { - 'label': _('Chart Options'), - 'fields': ( - ('show_brush', 'show_legend'), - ('rich_tooltip', 'y_axis_zero'), - ('y_log_scale', 'contribution'), - ('show_markers', 'x_axis_showminmax'), - ('line_interpolation', None), - ('x_axis_format', 'y_axis_format'), - ('x_axis_label', 'y_axis_label'), - ), - }, { - 'label': _('Advanced Analytics'), - 'description': _( - "This section contains options " - "that allow for advanced analytical post processing " - "of query results"), - 'fields': ( - ('rolling_type', 'rolling_periods'), - 'time_compare', - ('num_period_compare', 'period_ratio_type'), - None, - ('resample_how', 'resample_rule',), 'resample_fillmethod' - ), - },) - def get_df(self, query_obj=None): - form_data = self.form_data - df = super(NVD3TimeSeriesViz, self).get_df(query_obj) + def to_series(self, df, classed='', title_suffix=''): + cols = [] + for col in df.columns: + if col == '': + cols.append('N/A') + elif col is None: + cols.append('NULL') + else: + cols.append(col) + df.columns = cols + series = df.to_dict('series') + + chart_data = [] + for name in df.T.index.tolist(): + ys = series[name] + if df[name].dtype.kind not in "biufc": + continue + if isinstance(name, string_types): + series_title = name + else: + name = ["{}".format(s) for s in name] + if len(self.form_data.get('metrics')) > 1: + series_title = ", ".join(name) + else: + series_title = ", ".join(name[1:]) + if title_suffix: + series_title += title_suffix + + d = { + "key": series_title, + "classed": classed, + "values": [ + {'x': ds, 'y': ys[ds] if ds in ys else None} + for ds in df.index + ], + } + chart_data.append(d) + return chart_data + + def get_data(self, df): + fd = self.form_data df = df.fillna(0) - if form_data.get("granularity") == "all": + if fd.get("granularity") == "all": raise Exception("Pick a time granularity for your time series") df = df.pivot_table( index=DTTM_ALIAS, - columns=form_data.get('groupby'), - values=form_data.get('metrics')) + columns=fd.get('groupby'), + values=fd.get('metrics')) - fm = form_data.get("resample_fillmethod") + fm = fd.get("resample_fillmethod") if not fm: fm = None - how = form_data.get("resample_how") - rule = form_data.get("resample_rule") + how = fd.get("resample_how") + rule = fd.get("resample_rule") if how and rule: df = df.resample(rule, how=how, fill_method=fm) if not fm: @@ -1189,12 +864,12 @@ def get_df(self, query_obj=None): dfs.sort_values(ascending=False, inplace=True) df = df[dfs.index] - if form_data.get("contribution"): + if fd.get("contribution"): dft = df.T df = (dft / dft.sum()).T - rolling_periods = form_data.get("rolling_periods") - rolling_type = form_data.get("rolling_type") + rolling_periods = fd.get("rolling_periods") + rolling_type = fd.get("rolling_type") if rolling_type in ('mean', 'std', 'sum') and rolling_periods: if rolling_type == 'mean': @@ -1206,10 +881,10 @@ def get_df(self, query_obj=None): elif rolling_type == 'cumsum': df = df.cumsum() - num_period_compare = form_data.get("num_period_compare") + num_period_compare = fd.get("num_period_compare") if num_period_compare: num_period_compare = int(num_period_compare) - prt = form_data.get('period_ratio_type') + prt = fd.get('period_ratio_type') if prt and prt == 'growth': df = (df / df.shift(num_period_compare)) - 1 elif prt and prt == 'value': @@ -1218,53 +893,10 @@ def get_df(self, query_obj=None): df = df / df.shift(num_period_compare) df = df[num_period_compare:] - return df - - def to_series(self, df, classed='', title_suffix=''): - cols = [] - for col in df.columns: - if col == '': - cols.append('N/A') - elif col is None: - cols.append('NULL') - else: - cols.append(col) - df.columns = cols - series = df.to_dict('series') - chart_data = [] - for name in df.T.index.tolist(): - ys = series[name] - if df[name].dtype.kind not in "biufc": - continue - df[DTTM_ALIAS] = pd.to_datetime(df.index, utc=False) - if isinstance(name, string_types): - series_title = name - else: - name = ["{}".format(s) for s in name] - if len(self.form_data.get('metrics')) > 1: - series_title = ", ".join(name) - else: - series_title = ", ".join(name[1:]) - if title_suffix: - series_title += title_suffix - - d = { - "key": series_title, - "classed": classed, - "values": [ - {'x': ds, 'y': ys[ds] if ds in ys else None} - for ds in df[DTTM_ALIAS] - ], - } - chart_data.append(d) - return chart_data - - def get_data(self): - df = self.get_df() chart_data = self.to_series(df) - time_compare = self.form_data.get('time_compare') + time_compare = fd.get('time_compare') if time_compare: query_object = self.query_obj() delta = utils.parse_human_timedelta(time_compare) @@ -1274,7 +906,11 @@ def get_data(self): query_object['to_dttm'] -= delta df2 = self.get_df(query_object) - df2.index += delta + df2[DTTM_ALIAS] += delta + df2 = df2.pivot_table( + index=DTTM_ALIAS, + columns=fd.get('groupby'), + values=fd.get('metrics')) chart_data += self.to_series( df2, classed='superset', title_suffix="---") chart_data = sorted(chart_data, key=lambda x: x['key']) @@ -1289,54 +925,17 @@ class NVD3DualLineViz(NVD3Viz): verbose_name = _("Time Series - Dual Axis Line Chart") sort_series = False is_timeseries = True - fieldsets = ({ - 'label': _('Chart Options'), - 'fields': ('x_axis_format',), - }, { - 'label': _('Y Axis 1'), - 'fields': ( - 'metric', - 'y_axis_format' - ), - }, { - 'label': _('Y Axis 2'), - 'fields': ( - 'metric_2', - 'y_axis_2_format' - ), - },) - form_overrides = { - 'y_axis_format': { - 'label': _('Left Axis Format'), - 'description': _("Select the numeric column to draw the histogram"), - }, - 'metric': { - 'label': _("Left Axis Metric"), - } - } - - def get_df(self, query_obj=None): - if not query_obj: - query_obj = super(NVD3DualLineViz, self).query_obj() - metrics = [ - self.form_data.get('metric'), - self.form_data.get('metric_2') - ] - query_obj['metrics'] = metrics - df = super(NVD3DualLineViz, self).get_df(query_obj) - df = df.fillna(0) - if self.form_data.get("granularity") == "all": - raise Exception("Pick a time granularity for your time series") - - df = df.pivot_table( - index=DTTM_ALIAS, - values=metrics) - - return df def query_obj(self): d = super(NVD3DualLineViz, self).query_obj() - if self.form_data.get('metric') == self.form_data.get('metric_2'): + m1 = self.form_data.get('metric') + m2 = self.form_data.get('metric_2') + d['metrics'] = [m1, m2] + if not m1: + raise Exception("Pick a metric for left axis!") + if not m2: + raise Exception("Pick a metric for right axis!") + if m1 == m2: raise Exception("Please choose different metrics" " on left and right axis") return d @@ -1353,25 +952,21 @@ def to_series(self, df, classed=''): df.columns = cols series = df.to_dict('series') chart_data = [] - index_list = df.T.index.tolist() - for i in range(0, len(index_list)): - name = index_list[i] - ys = series[name] - if df[name].dtype.kind not in "biufc": + metrics = [ + self.form_data.get('metric'), + self.form_data.get('metric_2') + ] + for i, m in enumerate(metrics): + ys = series[m] + if df[m].dtype.kind not in "biufc": continue - df[DTTM_ALIAS] = pd.to_datetime(df.index, utc=False) - if isinstance(name, string_types): - series_title = name - else: - name = ["{}".format(s) for s in name] - series_title = ", ".join(name[1:]) - + series_title = m d = { "key": series_title, "classed": classed, "values": [ {'x': ds, 'y': ys[ds] if ds in ys else None} - for ds in df[DTTM_ALIAS] + for ds in df.index ], "yAxis": i+1, "type": "line" @@ -1379,16 +974,19 @@ def to_series(self, df, classed=''): chart_data.append(d) return chart_data - def get_data(self): - form_data = self.form_data - metric = form_data.get('metric') - metric_2 = form_data.get('metric_2') - if not metric: - raise Exception("Pick a metric for left axis!") - if not metric_2: - raise Exception("Pick a metric for right axis!") + def get_data(self, df): + fd = self.form_data + df = df.fillna(0) + + if self.form_data.get("granularity") == "all": + raise Exception("Pick a time granularity for your time series") + + metric = fd.get('metric') + metric_2 = fd.get('metric_2') + df = df.pivot_table( + index=DTTM_ALIAS, + values=[metric, metric_2]) - df = self.get_df() chart_data = self.to_series(df) return chart_data @@ -1400,18 +998,6 @@ class NVD3TimeSeriesBarViz(NVD3TimeSeriesViz): viz_type = "bar" sort_series = True verbose_name = _("Time Series - Bar Chart") - fieldsets = [NVD3TimeSeriesViz.fieldsets[0]] + [{ - 'label': _('Chart Options'), - 'fields': ( - ('show_brush', 'show_legend', 'show_bar_value'), - ('rich_tooltip', 'y_axis_zero'), - ('y_log_scale', 'contribution'), - ('x_axis_format', 'y_axis_format'), - ('line_interpolation', 'bar_stacked'), - ('x_axis_showminmax', 'bottom_margin'), - ('x_axis_label', 'y_axis_label'), - ('reduce_x_ticks', 'show_controls'), - ), }] + [NVD3TimeSeriesViz.fieldsets[2]] class NVD3CompareTimeSeriesViz(NVD3TimeSeriesViz): @@ -1429,16 +1015,6 @@ class NVD3TimeSeriesStackedViz(NVD3TimeSeriesViz): viz_type = "area" verbose_name = _("Time Series - Stacked") sort_series = True - fieldsets = [NVD3TimeSeriesViz.fieldsets[0]] + [{ - 'label': _('Chart Options'), - 'fields': ( - ('show_brush', 'show_legend'), - ('rich_tooltip', 'y_axis_zero'), - ('y_log_scale', 'contribution'), - ('x_axis_format', 'y_axis_format'), - ('x_axis_showminmax', 'show_controls'), - ('line_interpolation', 'stacked_style'), - ), }] + [NVD3TimeSeriesViz.fieldsets[2]] class DistributionPieViz(NVD3Viz): @@ -1448,32 +1024,12 @@ class DistributionPieViz(NVD3Viz): viz_type = "pie" verbose_name = _("Distribution - NVD3 - Pie Chart") is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'metrics', 'groupby', - 'limit', - 'pie_label_type', - ('donut', 'show_legend'), - 'labels_outside', - ) - },) - - def query_obj(self): - d = super(DistributionPieViz, self).query_obj() - d['is_timeseries'] = False - return d - def get_df(self, query_obj=None): - df = super(DistributionPieViz, self).get_df(query_obj) + def get_data(self, df): df = df.pivot_table( index=self.groupby, values=[self.metrics[0]]) df.sort_values(by=self.metrics[0], ascending=False, inplace=True) - return df - - def get_data(self): - df = self.get_df() df = df.reset_index() df.columns = ['x', 'y'] return df.to_dict(orient="records") @@ -1486,30 +1042,6 @@ class HistogramViz(BaseViz): viz_type = "histogram" verbose_name = _("Histogram") is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - ('all_columns_x',), - 'row_limit', - ) - }, { - 'label': _("Histogram Options"), - 'fields': ( - 'link_length', - ) - },) - - form_overrides = { - 'all_columns_x': { - 'label': _('Numeric Column'), - 'description': _("Select the numeric column to draw the histogram"), - }, - 'link_length': { - 'label': _("No of Bins"), - 'description': _("Select number of bins for the histogram"), - 'default': 5 - } - } def query_obj(self): """Returns the query object for this visualization""" @@ -1522,9 +1054,8 @@ def query_obj(self): d['columns'] = [numeric_column] return d - def get_data(self): + def get_data(self, df): """Returns the chart data""" - df = self.get_df() chart_data = df[df.columns[0]].values.tolist() return chart_data @@ -1536,34 +1067,10 @@ class DistributionBarViz(DistributionPieViz): viz_type = "dist_bar" verbose_name = _("Distribution - Bar Chart") is_timeseries = False - fieldsets = ({ - 'label': _('Chart Options'), - 'fields': ( - 'groupby', - 'columns', - 'metrics', - 'row_limit', - ('show_legend', 'show_bar_value', 'bar_stacked'), - ('y_axis_format', 'bottom_margin'), - ('x_axis_label', 'y_axis_label'), - ('reduce_x_ticks', 'contribution'), - ('show_controls', 'order_bars'), - ) - },) - form_overrides = { - 'groupby': { - 'label': _('Series'), - }, - 'columns': { - 'label': _('Breakdowns'), - 'description': _("Defines how each series is broken down"), - }, - } def query_obj(self): - d = super(DistributionPieViz, self).query_obj() # noqa + d = super(DistributionBarViz, self).query_obj() # noqa fd = self.form_data - d['is_timeseries'] = False gb = fd.get('groupby') or [] cols = fd.get('columns') or [] d['groupby'] = set(gb + cols) @@ -1575,8 +1082,7 @@ def query_obj(self): raise Exception("Pick at least one field for [Series]") return d - def get_df(self, query_obj=None): - df = super(DistributionPieViz, self).get_df(query_obj) # noqa + def get_data(self, df): fd = self.form_data row = df.groupby(self.groupby).sum()[self.metrics[0]].copy() @@ -1591,13 +1097,9 @@ def get_df(self, query_obj=None): pt = pt.T pt = (pt / pt.sum()).T pt = pt.reindex(row.index) - return pt - - def get_data(self): - df = self.get_df() chart_data = [] - for name, ys in df.iteritems(): - if df[name].dtype.kind not in "biufc": + for name, ys in pt.iteritems(): + if pt[name].dtype.kind not in "biufc" or name in self.groupby: continue if isinstance(name, string_types): series_title = name @@ -1606,11 +1108,20 @@ def get_data(self): else: l = [str(s) for s in name[1:]] series_title = ", ".join(l) + values = [] + for i, v in ys.iteritems(): + x = i + if isinstance(x, (tuple, list)): + x = ', '.join([str(s) for s in x]) + else: + x = str(x) + values.append({ + 'x': x, + 'y': v, + }) d = { "key": series_title, - "values": [ - {'x': str(i), 'y': v} - for i, v in ys.iteritems()] + "values": values, } chart_data.append(d) return chart_data @@ -1626,36 +1137,8 @@ class SunburstViz(BaseViz): credits = ( 'Kerry Rodden ' '@bl.ocks.org') - fieldsets = ({ - 'label': None, - 'fields': ( - 'groupby', - 'metric', 'secondary_metric', - 'row_limit', - ) - },) - form_overrides = { - 'metric': { - 'label': _('Primary Metric'), - 'description': _( - "The primary metric is used to " - "define the arc segment sizes"), - }, - 'secondary_metric': { - 'label': _('Secondary Metric'), - 'description': _( - "This secondary metric is used to " - "define the color as a ratio against the primary metric. " - "If the two metrics match, color is mapped level groups"), - }, - 'groupby': { - 'label': _('Hierarchy'), - 'description': _("This defines the level of the hierarchy"), - }, - } - - def get_data(self): - df = self.get_df() + + def get_data(self, df): # if m1 == m2 duplicate the metric column cols = self.form_data.get('groupby') @@ -1685,20 +1168,6 @@ class SankeyViz(BaseViz): verbose_name = _("Sankey") is_timeseries = False credits = 'd3-sankey on npm' - fieldsets = ({ - 'label': None, - 'fields': ( - 'groupby', - 'metric', - 'row_limit', - ) - },) - form_overrides = { - 'groupby': { - 'label': _('Source / Target'), - 'description': _("Choose a source and a target"), - }, - } def query_obj(self): qry = super(SankeyViz, self).query_obj() @@ -1708,8 +1177,7 @@ def query_obj(self): self.form_data['metric']] return qry - def get_data(self): - df = self.get_df() + def get_data(self, df): df.columns = ['source', 'target', 'value'] recs = df.to_dict(orient='records') @@ -1749,26 +1217,6 @@ class DirectedForceViz(BaseViz): verbose_name = _("Directed Force Layout") credits = 'd3noob @bl.ocks.org' is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'groupby', - 'metric', - 'row_limit', - ) - }, { - 'label': _('Force Layout'), - 'fields': ( - 'link_length', - 'charge', - ) - },) - form_overrides = { - 'groupby': { - 'label': _('Source / Target'), - 'description': _("Choose a source and a target"), - }, - } def query_obj(self): qry = super(DirectedForceViz, self).query_obj() @@ -1777,12 +1225,40 @@ def query_obj(self): qry['metrics'] = [self.form_data['metric']] return qry - def get_data(self): - df = self.get_df() + def get_data(self, df): df.columns = ['source', 'target', 'value'] return df.to_dict(orient='records') +class CountryMapViz(BaseViz): + + """A country centric""" + + viz_type = "country_map" + verbose_name = _("Country Map") + is_timeseries = False + credits = 'From bl.ocks.org By john-guerra' + + def query_obj(self): + qry = super(CountryMapViz, self).query_obj() + qry['metrics'] = [ + self.form_data['metric']] + qry['groupby'] = [self.form_data['entity']] + return qry + + def get_data(self, df): + from superset.data import countries + fd = self.form_data + cols = [fd.get('entity')] + metric = fd.get('metric') + cols += [metric] + ndf = df[cols] + df = ndf + df.columns = ['country_id', 'metric'] + d = df.to_dict(orient='records') + return d + + class WorldMapViz(BaseViz): """A country centric world map""" @@ -1791,35 +1267,6 @@ class WorldMapViz(BaseViz): verbose_name = _("World Map") is_timeseries = False credits = 'datamaps on npm' - fieldsets = ({ - 'label': None, - 'fields': ( - 'entity', - 'country_fieldtype', - 'metric', - ) - }, { - 'label': _('Bubbles'), - 'fields': ( - ('show_bubbles', None), - 'secondary_metric', - 'max_bubble_size', - ) - }) - form_overrides = { - 'entity': { - 'label': _('Country Field'), - 'description': _("3 letter code of the country"), - }, - 'metric': { - 'label': _('Metric for color'), - 'description': _("Metric that defines the color of the country"), - }, - 'secondary_metric': { - 'label': _('Bubble size'), - 'description': _("Metric that defines the size of the bubble"), - }, - } def query_obj(self): qry = super(WorldMapViz, self).query_obj() @@ -1828,12 +1275,12 @@ def query_obj(self): qry['groupby'] = [self.form_data['entity']] return qry - def get_data(self): + def get_data(self, df): from superset.data import countries - df = self.get_df() - cols = [self.form_data.get('entity')] - metric = self.form_data.get('metric') - secondary_metric = self.form_data.get('secondary_metric') + fd = self.form_data + cols = [fd.get('entity')] + metric = fd.get('metric') + secondary_metric = fd.get('secondary_metric') if metric == secondary_metric: ndf = df[cols] # df[metric] will be a DataFrame @@ -1850,7 +1297,7 @@ def get_data(self): country = None if isinstance(row['country'], string_types): country = countries.get( - self.form_data.get('country_fieldtype'), row['country']) + fd.get('country_fieldtype'), row['country']) if country: row['country'] = country['cca3'] @@ -1870,21 +1317,6 @@ class FilterBoxViz(BaseViz): verbose_name = _("Filters") is_timeseries = False credits = 'a Superset original' - fieldsets = ({ - 'label': None, - 'fields': ( - ('date_filter', None), - 'groupby', - 'metric', - ) - },) - form_overrides = { - 'groupby': { - 'label': _('Filter fields'), - 'description': _("The fields you want to filter on"), - 'default': [], - }, - } def query_obj(self): qry = super(FilterBoxViz, self).query_obj() @@ -1895,7 +1327,7 @@ def query_obj(self): self.form_data['metric']] return qry - def get_data(self): + def get_data(self, df): qry = self.query_obj() filters = [g for g in self.form_data['groupby']] d = {} @@ -1920,10 +1352,9 @@ class IFrameViz(BaseViz): verbose_name = _("iFrame") credits = 'a Superset original' is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ('url',) - },) + + def get_df(self): + return None class ParallelCoordinatesViz(BaseViz): @@ -1940,16 +1371,6 @@ class ParallelCoordinatesViz(BaseViz): '' 'Syntagmatic\'s library') is_timeseries = False - fieldsets = ({ - 'label': None, - 'fields': ( - 'series', - 'metrics', - 'secondary_metric', - 'limit', - ('show_datatable', 'include_series'), - ) - },) def query_obj(self): d = super(ParallelCoordinatesViz, self).query_obj() @@ -1961,8 +1382,7 @@ def query_obj(self): d['groupby'] = [fd.get('series')] return d - def get_data(self): - df = self.get_df() + def get_data(self, df): return df.to_dict(orient="records") @@ -1976,22 +1396,6 @@ class HeatmapViz(BaseViz): credits = ( 'inspired from mbostock @' 'bl.ocks.org') - fieldsets = ({ - 'label': None, - 'fields': ( - 'all_columns_x', - 'all_columns_y', - 'metric', - ) - }, { - 'label': _('Heatmap Options'), - 'fields': ( - 'linear_color_scheme', - ('xscale_interval', 'yscale_interval'), - 'canvas_image_rendering', - 'normalize_across', - ) - },) def query_obj(self): d = super(HeatmapViz, self).query_obj() @@ -2000,8 +1404,7 @@ def query_obj(self): d['groupby'] = [fd.get('all_columns_x'), fd.get('all_columns_y')] return d - def get_data(self): - df = self.get_df() + def get_data(self, df): fd = self.form_data x = fd.get('all_columns_x') y = fd.get('all_columns_y') @@ -2043,11 +1446,6 @@ class HorizonViz(NVD3TimeSeriesViz): credits = ( '' 'd3-horizon-chart') - fieldsets = [NVD3TimeSeriesViz.fieldsets[0]] + [{ - 'label': _('Chart Options'), - 'fields': ( - ('series_height', 'horizon_color_scale'), - ), }] class MapboxViz(BaseViz): @@ -2059,70 +1457,6 @@ class MapboxViz(BaseViz): is_timeseries = False credits = ( 'Mapbox GL JS') - fieldsets = ({ - 'label': None, - 'fields': ( - ('all_columns_x', 'all_columns_y'), - 'clustering_radius', - 'row_limit', - 'groupby', - 'render_while_dragging', - ) - }, { - 'label': _('Points'), - 'fields': ( - 'point_radius', - 'point_radius_unit', - ) - }, { - 'label': _('Labelling'), - 'fields': ( - 'mapbox_label', - 'pandas_aggfunc', - ) - }, { - 'label': _('Visual Tweaks'), - 'fields': ( - 'mapbox_style', - 'global_opacity', - 'mapbox_color', - ) - }, { - 'label': _('Viewport'), - 'fields': ( - 'viewport_longitude', - 'viewport_latitude', - 'viewport_zoom', - ) - },) - - form_overrides = { - 'all_columns_x': { - 'label': _('Longitude'), - 'description': _("Column containing longitude data"), - }, - 'all_columns_y': { - 'label': _('Latitude'), - 'description': _("Column containing latitude data"), - }, - 'pandas_aggfunc': { - 'label': _('Cluster label aggregator'), - 'description': _( - "Aggregate function applied to the list of points " - "in each cluster to produce the cluster label."), - }, - 'rich_tooltip': { - 'label': _('Tooltip'), - 'description': _( - "Show a tooltip when hovering over points and clusters " - "describing the label"), - }, - 'groupby': { - 'description': _( - "One or many fields to group by. If grouping, latitude " - "and longitude columns must be present."), - }, - } def query_obj(self): d = super(MapboxViz, self).query_obj() @@ -2161,8 +1495,7 @@ def query_obj(self): "[Longitude] and [Latitude] columns must be present in [Group By]") return d - def get_data(self): - df = self.get_df() + def get_data(self, df): fd = self.form_data label_col = fd.get('mapbox_label') custom_metric = label_col and len(label_col) >= 1 @@ -2239,6 +1572,7 @@ def get_data(self): SunburstViz, DirectedForceViz, SankeyViz, + CountryMapViz, WorldMapViz, FilterBoxViz, IFrameViz, diff --git a/tests/access_tests.py b/tests/access_tests.py index 1d0b2ac1e74a0..ec1ce7483dcea 100644 --- a/tests/access_tests.py +++ b/tests/access_tests.py @@ -9,7 +9,11 @@ import unittest from superset import db, models, sm, security -from superset.source_registry import SourceRegistry + +from superset.models import core as models +from superset.connectors.connector_registry import ConnectorRegistry +from superset.connectors.sqla.models import SqlaTable +from superset.connectors.druid.models import DruidDatasource from .base_tests import SupersetTestCase @@ -58,7 +62,7 @@ def create_access_request(session, ds_type, ds_name, role_name, user_name): - ds_class = SourceRegistry.sources[ds_type] + ds_class = ConnectorRegistry.sources[ds_type] # TODO: generalize datasource names if ds_type == 'table': ds = session.query(ds_class).filter( @@ -293,7 +297,7 @@ def test_clean_requests_after_schema_grant(self): access_request2 = create_access_request( session, 'table', 'wb_health_population', TEST_ROLE_2, 'gamma2') ds_1_id = access_request1.datasource_id - ds = session.query(models.SqlaTable).filter_by( + ds = session.query(SqlaTable).filter_by( table_name='wb_health_population').first() @@ -314,7 +318,7 @@ def test_clean_requests_after_schema_grant(self): gamma_user = sm.find_user(username='gamma') gamma_user.roles.remove(sm.find_role(SCHEMA_ACCESS_ROLE)) - ds = session.query(models.SqlaTable).filter_by( + ds = session.query(SqlaTable).filter_by( table_name='wb_health_population').first() ds.schema = None @@ -441,7 +445,7 @@ def test_request_access(self): # Request table access, there are no roles have this table. - table1 = session.query(models.SqlaTable).filter_by( + table1 = session.query(SqlaTable).filter_by( table_name='random_time_series').first() table_1_id = table1.id @@ -454,7 +458,7 @@ def test_request_access(self): # Request access, roles exist that contains the table. # add table to the existing roles - table3 = session.query(models.SqlaTable).filter_by( + table3 = session.query(SqlaTable).filter_by( table_name='energy_usage').first() table_3_id = table3.id table3_perm = table3.perm @@ -479,7 +483,7 @@ def test_request_access(self): '
    • {}
    '.format(approve_link_3)) # Request druid access, there are no roles have this table. - druid_ds_4 = session.query(models.DruidDatasource).filter_by( + druid_ds_4 = session.query(DruidDatasource).filter_by( datasource_name='druid_ds_1').first() druid_ds_4_id = druid_ds_4.id @@ -493,7 +497,7 @@ def test_request_access(self): # Case 5. Roles exist that contains the druid datasource. # add druid ds to the existing roles - druid_ds_5 = session.query(models.DruidDatasource).filter_by( + druid_ds_5 = session.query(DruidDatasource).filter_by( datasource_name='druid_ds_2').first() druid_ds_5_id = druid_ds_5.id druid_ds_5_perm = druid_ds_5.perm diff --git a/tests/base_tests.py b/tests/base_tests.py index fb218b9c538db..1a0dbf8d1b9dc 100644 --- a/tests/base_tests.py +++ b/tests/base_tests.py @@ -11,8 +11,11 @@ from flask_appbuilder.security.sqla import models as ab_models -from superset import app, cli, db, models, appbuilder, security, sm +from superset import app, cli, db, appbuilder, security, sm +from superset.models import core as models from superset.security import sync_role_definitions +from superset.connectors.sqla.models import SqlaTable +from superset.connectors.druid.models import DruidCluster, DruidDatasource os.environ['SUPERSET_CONFIG'] = 'tests.superset_test_config' @@ -85,30 +88,34 @@ def __init__(self, *args, **kwargs): appbuilder.sm.find_role('Alpha'), password='general') sm.get_session.commit() - # create druid cluster and druid datasources session = db.session - cluster = session.query(models.DruidCluster).filter_by( - cluster_name="druid_test").first() + cluster = ( + session.query(DruidCluster) + .filter_by(cluster_name="druid_test") + .first() + ) if not cluster: - cluster = models.DruidCluster(cluster_name="druid_test") + cluster = DruidCluster(cluster_name="druid_test") session.add(cluster) session.commit() - druid_datasource1 = models.DruidDatasource( + druid_datasource1 = DruidDatasource( datasource_name='druid_ds_1', cluster_name='druid_test' ) session.add(druid_datasource1) - druid_datasource2 = models.DruidDatasource( + druid_datasource2 = DruidDatasource( datasource_name='druid_ds_2', cluster_name='druid_test' ) session.add(druid_datasource2) session.commit() + + def get_table(self, table_id): - return db.session.query(models.SqlaTable).filter_by( + return db.session.query(SqlaTable).filter_by( id=table_id).first() def get_or_create(self, cls, criteria, session): @@ -123,22 +130,6 @@ def login(self, username='admin', password='general'): data=dict(username=username, password=password)) self.assertIn('Welcome', resp) - def get_query_by_sql(self, sql): - session = db.create_scoped_session() - query = session.query(models.Query).filter_by(sql=sql).first() - session.close() - return query - - def get_latest_query(self, sql): - session = db.create_scoped_session() - query = ( - session.query(models.Query) - .order_by(models.Query.id.desc()) - .first() - ) - session.close() - return query - def get_slice(self, slice_name, session): slc = ( session.query(models.Slice) @@ -149,11 +140,11 @@ def get_slice(self, slice_name, session): return slc def get_table_by_name(self, name): - return db.session.query(models.SqlaTable).filter_by( + return db.session.query(SqlaTable).filter_by( table_name=name).first() def get_druid_ds_by_name(self, name): - return db.session.query(models.DruidDatasource).filter_by( + return db.session.query(DruidDatasource).filter_by( datasource_name=name).first() def get_resp( diff --git a/tests/celery_tests.py b/tests/celery_tests.py index f172e6b1fe544..a47984172787d 100644 --- a/tests/celery_tests.py +++ b/tests/celery_tests.py @@ -9,17 +9,19 @@ import subprocess import time import unittest +from past.builtins import basestring import pandas as pd -from superset import app, appbuilder, cli, db, models, dataframe +from superset import app, appbuilder, cli, db, dataframe +from superset.models import core as models +from superset.models.helpers import QueryStatus +from superset.models.sql_lab import Query from superset.security import sync_role_definitions from superset.sql_parse import SupersetQuery from .base_tests import SupersetTestCase -QueryStatus = models.QueryStatus - BASE_DIR = app.config.get('BASE_DIR') @@ -72,13 +74,13 @@ def __init__(self, *args, **kwargs): def get_query_by_name(self, sql): session = db.session - query = session.query(models.Query).filter_by(sql=sql).first() + query = session.query(Query).filter_by(sql=sql).first() session.close() return query def get_query_by_id(self, id): session = db.session - query = session.query(models.Query).filter_by(id=id).first() + query = session.query(Query).filter_by(id=id).first() session.close() return query @@ -170,20 +172,18 @@ def test_add_limit_to_the_query(self): ' '.join(updated_multi_line_query.split()) ) - def test_run_sync_query(self): + def test_run_sync_query_dont_exist(self): main_db = self.get_main_database(db.session) - eng = main_db.get_sqla_engine() - perm_name = 'can_sql_json' - db_id = main_db.id - # Case 1. - # Table doesn't exist. sql_dont_exist = 'SELECT name FROM table_dont_exist' result1 = self.run_sql(db_id, sql_dont_exist, "1", cta='true') self.assertTrue('error' in result1) - # Case 2. - # Table and DB exists, CTA call to the backend. + def test_run_sync_query_cta(self): + main_db = self.get_main_database(db.session) + db_id = main_db.id + eng = main_db.get_sqla_engine() + perm_name = 'can_sql_json' sql_where = ( "SELECT name FROM ab_permission WHERE name='{}'".format(perm_name)) result2 = self.run_sql( @@ -198,11 +198,12 @@ def test_run_sync_query(self): data2 = df2.to_dict(orient='records') self.assertEqual([{'name': perm_name}], data2) - # Case 3. - # Table and DB exists, CTA call to the backend, no data. + def test_run_sync_query_cta_no_data(self): + main_db = self.get_main_database(db.session) + db_id = main_db.id sql_empty_result = 'SELECT * FROM ab_user WHERE id=666' result3 = self.run_sql( - db_id, sql_empty_result, "3", tmp_table='tmp_table_3', cta='true',) + db_id, sql_empty_result, "3", tmp_table='tmp_table_3', cta='true') self.assertEqual(QueryStatus.SUCCESS, result3['query']['state']) self.assertEqual([], result3['data']) self.assertEqual([], result3['columns']) @@ -213,82 +214,91 @@ def test_run_sync_query(self): def test_run_async_query(self): main_db = self.get_main_database(db.session) eng = main_db.get_sqla_engine() - - # Schedule queries - - # Case 1. - # Table and DB exists, async CTA call to the backend. sql_where = "SELECT name FROM ab_role WHERE name='Admin'" - result1 = self.run_sql( + result = self.run_sql( main_db.id, sql_where, "4", async='true', tmp_table='tmp_async_1', cta='true') - assert result1['query']['state'] in ( + assert result['query']['state'] in ( QueryStatus.PENDING, QueryStatus.RUNNING, QueryStatus.SUCCESS) time.sleep(1) - # Case 1. - query1 = self.get_query_by_id(result1['query']['serverId']) - df1 = pd.read_sql_query(query1.select_sql, con=eng) - self.assertEqual(QueryStatus.SUCCESS, query1.status) - self.assertEqual([{'name': 'Admin'}], df1.to_dict(orient='records')) - self.assertEqual(QueryStatus.SUCCESS, query1.status) - self.assertTrue("FROM tmp_async_1" in query1.select_sql) - self.assertTrue("LIMIT 666" in query1.select_sql) + query = self.get_query_by_id(result['query']['serverId']) + df = pd.read_sql_query(query.select_sql, con=eng) + self.assertEqual(QueryStatus.SUCCESS, query.status) + self.assertEqual([{'name': 'Admin'}], df.to_dict(orient='records')) + self.assertEqual(QueryStatus.SUCCESS, query.status) + self.assertTrue("FROM tmp_async_1" in query.select_sql) + self.assertTrue("LIMIT 666" in query.select_sql) self.assertEqual( "CREATE TABLE tmp_async_1 AS \nSELECT name FROM ab_role " - "WHERE name='Admin'", query1.executed_sql) - self.assertEqual(sql_where, query1.sql) - if eng.name != 'sqlite': - self.assertEqual(1, query1.rows) - self.assertEqual(666, query1.limit) - self.assertEqual(False, query1.limit_used) - self.assertEqual(True, query1.select_as_cta) - self.assertEqual(True, query1.select_as_cta_used) - - def test_get_columns_dict(self): + "WHERE name='Admin'", query.executed_sql) + self.assertEqual(sql_where, query.sql) + self.assertEqual(0, query.rows) + self.assertEqual(666, query.limit) + self.assertEqual(False, query.limit_used) + self.assertEqual(True, query.select_as_cta) + self.assertEqual(True, query.select_as_cta_used) + + @staticmethod + def de_unicode_dict(d): + def str_if_basestring(o): + if isinstance(o, basestring): + return str(o) + return o + return {str_if_basestring(k): str_if_basestring(d[k]) for k in d} + + @classmethod + def dictify_list_of_dicts(cls, l, k): + return {str(o[k]): cls.de_unicode_dict(o) for o in l} + + def test_get_columns(self): main_db = self.get_main_database(db.session) df = main_db.get_df("SELECT * FROM multiformat_time_series", None) cdf = dataframe.SupersetDataFrame(df) + + # Making ordering non-deterministic + cols = self.dictify_list_of_dicts(cdf.columns, 'name') + if main_db.sqlalchemy_uri.startswith('sqlite'): - self.assertEqual( - [{'is_date': True, 'type': 'datetime_string', 'name': 'ds', - 'is_dim': False}, - {'is_date': True, 'type': 'datetime_string', 'name': 'ds2', - 'is_dim': False}, - {'agg': 'sum', 'is_date': False, 'type': 'int64', - 'name': 'epoch_ms', 'is_dim': False}, - {'agg': 'sum', 'is_date': False, 'type': 'int64', - 'name': 'epoch_s', 'is_dim': False}, - {'is_date': True, 'type': 'datetime_string', 'name': 'string0', - 'is_dim': False}, - {'is_date': False, 'type': 'object', - 'name': 'string1', 'is_dim': True}, - {'is_date': True, 'type': 'datetime_string', 'name': 'string2', - 'is_dim': False}, - {'is_date': False, 'type': 'object', - 'name': 'string3', 'is_dim': True}] - , cdf.columns_dict + self.assertEqual(self.dictify_list_of_dicts([ + {'is_date': True, 'type': 'STRING', 'name': 'ds', + 'is_dim': False}, + {'is_date': True, 'type': 'STRING', 'name': 'ds2', + 'is_dim': False}, + {'agg': 'sum', 'is_date': False, 'type': 'INT', + 'name': 'epoch_ms', 'is_dim': False}, + {'agg': 'sum', 'is_date': False, 'type': 'INT', + 'name': 'epoch_s', 'is_dim': False}, + {'is_date': True, 'type': 'STRING', 'name': 'string0', + 'is_dim': False}, + {'is_date': False, 'type': 'STRING', + 'name': 'string1', 'is_dim': True}, + {'is_date': True, 'type': 'STRING', 'name': 'string2', + 'is_dim': False}, + {'is_date': False, 'type': 'STRING', + 'name': 'string3', 'is_dim': True}], 'name') + , cols ) else: - self.assertEqual( - [{'is_date': True, 'type': 'datetime_string', 'name': 'ds', - 'is_dim': False}, - {'is_date': True, 'type': 'datetime64[ns]', - 'name': 'ds2', 'is_dim': False}, - {'agg': 'sum', 'is_date': False, 'type': 'int64', - 'name': 'epoch_ms', 'is_dim': False}, - {'agg': 'sum', 'is_date': False, 'type': 'int64', - 'name': 'epoch_s', 'is_dim': False}, - {'is_date': True, 'type': 'datetime_string', 'name': 'string0', - 'is_dim': False}, - {'is_date': False, 'type': 'object', - 'name': 'string1', 'is_dim': True}, - {'is_date': True, 'type': 'datetime_string', 'name': 'string2', - 'is_dim': False}, - {'is_date': False, 'type': 'object', - 'name': 'string3', 'is_dim': True}] - , cdf.columns_dict + self.assertEqual(self.dictify_list_of_dicts([ + {'is_date': True, 'type': 'DATETIME', 'name': 'ds', + 'is_dim': False}, + {'is_date': True, 'type': 'DATETIME', + 'name': 'ds2', 'is_dim': False}, + {'agg': 'sum', 'is_date': False, 'type': 'INT', + 'name': 'epoch_ms', 'is_dim': False}, + {'agg': 'sum', 'is_date': False, 'type': 'INT', + 'name': 'epoch_s', 'is_dim': False}, + {'is_date': True, 'type': 'STRING', 'name': 'string0', + 'is_dim': False}, + {'is_date': False, 'type': 'STRING', + 'name': 'string1', 'is_dim': True}, + {'is_date': True, 'type': 'STRING', 'name': 'string2', + 'is_dim': False}, + {'is_date': False, 'type': 'STRING', + 'name': 'string3', 'is_dim': True}], 'name') + , cols ) diff --git a/tests/core_tests.py b/tests/core_tests.py index 61b5e4c1f64be..437511d6520f5 100644 --- a/tests/core_tests.py +++ b/tests/core_tests.py @@ -7,17 +7,20 @@ import csv import doctest import json +import logging import io import random import unittest from flask import escape -from superset import db, models, utils, appbuilder, sm, jinja_context, sql_lab -from superset.views import DatabaseView +from superset import db, utils, appbuilder, sm, jinja_context, sql_lab +from superset.models import core as models +from superset.models.sql_lab import Query +from superset.views.core import DatabaseView +from superset.connectors.sqla.models import SqlaTable from .base_tests import SupersetTestCase -import logging class CoreTests(SupersetTestCase): @@ -31,16 +34,16 @@ def __init__(self, *args, **kwargs): def setUpClass(cls): cls.table_ids = {tbl.table_name: tbl.id for tbl in ( db.session - .query(models.SqlaTable) + .query(SqlaTable) .all() )} def setUp(self): - db.session.query(models.Query).delete() + db.session.query(Query).delete() db.session.query(models.DatasourceAccessRequest).delete() def tearDown(self): - db.session.query(models.Query).delete() + db.session.query(Query).delete() def test_login(self): resp = self.get_resp( @@ -78,14 +81,22 @@ def test_slice_json_endpoint(self): self.login(username='admin') slc = self.get_slice("Girls", db.session) - resp = self.get_resp(slc.viz.json_endpoint) + json_endpoint = ( + '/superset/explore_json/{}/{}?form_data={}' + .format(slc.datasource_type, slc.datasource_id, json.dumps(slc.viz.form_data)) + ) + resp = self.get_resp(json_endpoint) assert '"Jennifer"' in resp def test_slice_csv_endpoint(self): self.login(username='admin') slc = self.get_slice("Girls", db.session) - resp = self.get_resp(slc.viz.csv_endpoint) + csv_endpoint = ( + '/superset/explore_json/{}/{}?csv=true&form_data={}' + .format(slc.datasource_type, slc.datasource_id, json.dumps(slc.viz.form_data)) + ) + resp = self.get_resp(csv_endpoint) assert 'Jennifer,' in resp def test_admin_only_permissions(self): @@ -122,24 +133,55 @@ def test_save_slice(self): db.session.commit() copy_name = "Test Sankey Save" tbl_id = self.table_ids.get('energy_usage') - url = ( - "/superset/explore/table/{}/?viz_type=sankey&groupby=source&" - "groupby=target&metric=sum__value&row_limit=5000&where=&having=&" - "flt_col_0=source&flt_op_0=in&flt_eq_0=&slice_id={}&slice_name={}&" - "collapsed_fieldsets=&action={}&datasource_name=energy_usage&" - "datasource_id=1&datasource_type=table&previous_viz_type=sankey") + new_slice_name = "Test Sankey Overwirte" - # Changing name - resp = self.get_resp(url.format(tbl_id, slice_id, copy_name, 'save')) - assert copy_name in resp - - # Setting the name back to its original name - resp = self.get_resp(url.format(tbl_id, slice_id, slice_name, 'save')) - assert slice_name in resp + url = ( + "/superset/explore/table/{}/?slice_name={}&" + "action={}&datasource_name=energy_usage&form_data={}") + + form_data = { + 'viz_type': 'sankey', + 'groupby': 'source', + 'groupby': 'target', + 'metric': 'sum__value', + 'row_limit': 5000, + 'slice_id': slice_id, + } + # Changing name and save as a new slice + resp = self.get_resp( + url.format( + tbl_id, + copy_name, + 'saveas', + json.dumps(form_data) + ) + ) + slices = db.session.query(models.Slice) \ + .filter_by(slice_name=copy_name).all() + assert len(slices) == 1 + new_slice_id = slices[0].id + + form_data = { + 'viz_type': 'sankey', + 'groupby': 'source', + 'groupby': 'target', + 'metric': 'sum__value', + 'row_limit': 5000, + 'slice_id': new_slice_id, + } + # Setting the name back to its original name by overwriting new slice + resp = self.get_resp( + url.format( + tbl_id, + new_slice_name, + 'overwrite', + json.dumps(form_data) + ) + ) + slc = db.session.query(models.Slice).filter_by(id=new_slice_id).first() + assert slc.slice_name == new_slice_name + db.session.delete(slc) - # Doing a basic overwrite - assert 'Energy' in self.get_resp( - url.format(tbl_id, slice_id, copy_name, 'overwrite')) def test_filter_endpoint(self): self.login(username='admin') @@ -147,7 +189,7 @@ def test_filter_endpoint(self): slice_id = self.get_slice(slice_name, db.session).id db.session.commit() tbl_id = self.table_ids.get('energy_usage') - table = db.session.query(models.SqlaTable).filter(models.SqlaTable.id == tbl_id) + table = db.session.query(SqlaTable).filter(SqlaTable.id == tbl_id) table.filter_select_enabled = True url = ( "/superset/filter/table/{}/target/?viz_type=sankey&groupby=source" @@ -168,8 +210,6 @@ def test_slices(self): for slc in db.session.query(Slc).all(): urls += [ (slc.slice_name, 'slice_url', slc.slice_url), - (slc.slice_name, 'json_endpoint', slc.viz.json_endpoint), - (slc.slice_name, 'csv_endpoint', slc.viz.csv_endpoint), (slc.slice_name, 'slice_id_url', slc.slice_id_url), ] for name, method, url in urls: @@ -183,7 +223,7 @@ def test_add_slice(self): url = '/tablemodelview/list/' resp = self.get_resp(url) - table = db.session.query(models.SqlaTable).first() + table = db.session.query(SqlaTable).first() assert table.name in resp assert '/superset/explore/table/{}'.format(table.id) in resp @@ -356,7 +396,7 @@ def test_copy_dash(self, username='admin'): self.client.post(url, data=dict(data=json.dumps(data))) dash = db.session.query(models.Dashboard).filter_by( id=dash_id).first() - orig_json_data = json.loads(dash.json_data) + orig_json_data = dash.data # Verify that copy matches original url = '/superset/copy_dash/{}/'.format(dash_id) @@ -422,7 +462,7 @@ def test_csv_endpoint(self): def test_public_user_dashboard_access(self): table = ( db.session - .query(models.SqlaTable) + .query(SqlaTable) .filter_by(table_name='birth_names') .one() ) @@ -457,7 +497,7 @@ def test_dashboard_with_created_by_can_be_accessed_by_public_users(self): self.logout() table = ( db.session - .query(models.SqlaTable) + .query(SqlaTable) .filter_by(table_name='birth_names') .one() ) @@ -514,6 +554,20 @@ def test_process_template(self): rendered = tp.process_template(sql) self.assertEqual("SELECT '2017-01-01T00:00:00'", rendered) + def test_get_template_kwarg(self): + maindb = self.get_main_database(db.session) + s = "{{ foo }}" + tp = jinja_context.get_template_processor(database=maindb, foo='bar') + rendered = tp.process_template(s) + self.assertEqual("bar", rendered) + + def test_template_kwarg(self): + maindb = self.get_main_database(db.session) + s = "{{ foo }}" + tp = jinja_context.get_template_processor(database=maindb) + rendered = tp.process_template(s, foo='bar') + self.assertEqual("bar", rendered) + def test_templated_sql_json(self): self.login('admin') sql = "SELECT '{{ datetime(2017, 1, 1).isoformat() }}' as test" @@ -544,8 +598,7 @@ def test_fetch_datasource_metadata(self): self.login(username='admin') url = ( '/superset/fetch_datasource_metadata?' - 'datasource_type=table&' - 'datasource_id=1' + + 'datasourceKey=1__table' ) resp = self.get_json_resp(url) keys = [ @@ -556,16 +609,8 @@ def test_fetch_datasource_metadata(self): for k in keys: self.assertIn(k, resp.keys()) - def test_fetch_all_tables(self): - self.login(username='admin') - database = self.get_main_database(db.session) - url = '/superset/all_tables/{}'.format(database.id) - resp = json.loads(self.get_resp(url)) - self.assertIn('tables', resp) - self.assertIn('views', resp) - - def test_user_profile(self): - self.login(username='admin') + def test_user_profile(self, username='admin'): + self.login(username=username) slc = self.get_slice("Girls", db.session) # Setting some faves @@ -596,6 +641,8 @@ def test_user_profile(self): self.assertNotIn('message', data) data = self.get_json_resp('/superset/fave_dashboards/{}/'.format(userid)) self.assertNotIn('message', data) + data = self.get_json_resp('/superset/fave_dashboards_by_username/{}/'.format(username)) + self.assertNotIn('message', data) if __name__ == '__main__': diff --git a/tests/db_engine_specs_test.py b/tests/db_engine_specs_test.py new file mode 100644 index 0000000000000..626a97bb3f9c3 --- /dev/null +++ b/tests/db_engine_specs_test.py @@ -0,0 +1,87 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import unittest + +from superset import db_engine_specs + + +class DbEngineSpecsTestCase(unittest.TestCase): + def test_0_progress(self): + log = """ + 17/02/07 18:26:27 INFO log.PerfLogger: + 17/02/07 18:26:27 INFO log.PerfLogger: + """ + self.assertEquals(0, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_0_progress(self): + log = """ + 17/02/07 18:26:27 INFO log.PerfLogger: + 17/02/07 18:26:27 INFO log.PerfLogger: + """ + self.assertEquals(0, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_number_of_jobs_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + """ + self.assertEquals(0, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_1_launched_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + """ + self.assertEquals(0, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_1_launched_stage_1_0_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 0%, reduce = 0% + """ + self.assertEquals(0, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_1_launched_stage_1_map_40_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 0%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 40%, reduce = 0% + """ + self.assertEquals(10, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_1_launched_stage_1_map_80_reduce_40_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 0%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 40%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 80%, reduce = 40% + """ + self.assertEquals(30, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_1_launched_stage_2_stages_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 0%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 40%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 80%, reduce = 40% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-2 map = 0%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 100%, reduce = 0% + """ + self.assertEquals(12, db_engine_specs.HiveEngineSpec.progress(log)) + + def test_job_2_launched_stage_2_stages_progress(self): + log = """ + 17/02/07 19:15:55 INFO ql.Driver: Total jobs = 2 + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 1 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 100%, reduce = 0% + 17/02/07 19:15:55 INFO ql.Driver: Launching Job 2 out of 2 + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 0%, reduce = 0% + 17/02/07 19:16:09 INFO exec.Task: 2017-02-07 19:16:09,173 Stage-1 map = 40%, reduce = 0% + """ + self.assertEquals(60, db_engine_specs.HiveEngineSpec.progress(log)) diff --git a/tests/druid_tests.py b/tests/druid_tests.py index 7a1b8da59caf1..d7b93dee0638e 100644 --- a/tests/druid_tests.py +++ b/tests/druid_tests.py @@ -11,7 +11,8 @@ from mock import Mock, patch from superset import db, sm, security -from superset.models import DruidCluster, DruidDatasource +from superset.connectors.druid.models import DruidCluster, DruidDatasource +from superset.connectors.druid.models import PyDruid from .base_tests import SupersetTestCase @@ -70,7 +71,7 @@ class DruidTests(SupersetTestCase): def __init__(self, *args, **kwargs): super(DruidTests, self).__init__(*args, **kwargs) - @patch('superset.models.PyDruid') + @patch('superset.connectors.druid.models.PyDruid') def test_client(self, PyDruid): self.login(username='admin') instance = PyDruid.return_value @@ -116,30 +117,44 @@ def test_client(self, PyDruid): resp = self.get_resp('/superset/explore/druid/{}/'.format( datasource_id)) - self.assertIn("[test_cluster].[test_datasource]", resp) - + self.assertIn("test_datasource", resp) + form_data = { + 'viz_type': 'table', + 'granularity': 'one+day', + 'druid_time_origin': '', + 'since': '7+days+ago', + 'until': 'now', + 'row_limit': 5000, + 'include_search': 'false', + 'metrics': ['count'], + 'groupby': ['dim1'], + 'force': 'true', + } # One groupby url = ( - '/superset/explore_json/druid/{}/?viz_type=table&granularity=one+day&' - 'druid_time_origin=&since=7+days+ago&until=now&row_limit=5000&' - 'include_search=false&metrics=count&groupby=dim1&flt_col_0=dim1&' - 'flt_op_0=in&flt_eq_0=&slice_id=&slice_name=&collapsed_fieldsets=&' - 'action=&datasource_name=test_datasource&datasource_id={}&' - 'datasource_type=druid&previous_viz_type=table&' - 'force=true'.format(datasource_id, datasource_id)) + '/superset/explore_json/druid/{}/?form_data={}'.format( + datasource_id, json.dumps(form_data)) + ) resp = self.get_json_resp(url) self.assertEqual("Canada", resp['data']['records'][0]['dim1']) + form_data = { + 'viz_type': 'table', + 'granularity': 'one+day', + 'druid_time_origin': '', + 'since': '7+days+ago', + 'until': 'now', + 'row_limit': 5000, + 'include_search': 'false', + 'metrics': ['count'], + 'groupby': ['dim1', 'dim2d'], + 'force': 'true', + } # two groupby url = ( - '/superset/explore_json/druid/{}/?viz_type=table&granularity=one+day&' - 'druid_time_origin=&since=7+days+ago&until=now&row_limit=5000&' - 'include_search=false&metrics=count&groupby=dim1&' - 'flt_col_0=dim1&groupby=dim2d&' - 'flt_op_0=in&flt_eq_0=&slice_id=&slice_name=&collapsed_fieldsets=&' - 'action=&datasource_name=test_datasource&datasource_id={}&' - 'datasource_type=druid&previous_viz_type=table&' - 'force=true'.format(datasource_id, datasource_id)) + '/superset/explore_json/druid/{}/?form_data={}'.format( + datasource_id, json.dumps(form_data)) + ) resp = self.get_json_resp(url) self.assertEqual("Canada", resp['data']['records'][0]['dim1']) @@ -183,8 +198,12 @@ def test_druid_sync_from_config(self): } def check(): resp = self.client.post('/superset/sync_druid/', data=json.dumps(cfg)) - druid_ds = db.session.query(DruidDatasource).filter_by( - datasource_name="test_click").first() + druid_ds = ( + db.session + .query(DruidDatasource) + .filter_by(datasource_name="test_click") + .one() + ) col_names = set([c.column_name for c in druid_ds.columns]) assert {"affiliate_id", "campaign", "first_seen"} == col_names metric_names = {m.metric_name for m in druid_ds.metrics} @@ -210,7 +229,7 @@ def check(): } resp = self.client.post('/superset/sync_druid/', data=json.dumps(cfg)) druid_ds = db.session.query(DruidDatasource).filter_by( - datasource_name="test_click").first() + datasource_name="test_click").one() # columns and metrics are not deleted if config is changed as # user could define his own dimensions / metrics and want to keep them assert set([c.column_name for c in druid_ds.columns]) == set( @@ -257,6 +276,49 @@ def test_filter_druid_datasource(self): self.assertIn('datasource_for_gamma', resp) self.assertNotIn('datasource_not_for_gamma', resp) + @patch('superset.connectors.druid.models.PyDruid') + def test_sync_druid_perm(self, PyDruid): + self.login(username='admin') + instance = PyDruid.return_value + instance.time_boundary.return_value = [ + {'result': {'maxTime': '2016-01-01'}}] + instance.segment_metadata.return_value = SEGMENT_METADATA + + cluster = ( + db.session + .query(DruidCluster) + .filter_by(cluster_name='test_cluster') + .first() + ) + if cluster: + db.session.delete(cluster) + db.session.commit() + + cluster = DruidCluster( + cluster_name='test_cluster', + coordinator_host='localhost', + coordinator_port=7979, + broker_host='localhost', + broker_port=7980, + metadata_last_refreshed=datetime.now()) + + db.session.add(cluster) + cluster.get_datasources = Mock(return_value=['test_datasource']) + cluster.get_druid_version = Mock(return_value='0.9.1') + + cluster.refresh_datasources() + datasource_id = cluster.datasources[0].id + db.session.commit() + + view_menu_name = cluster.datasources[0].get_perm() + view_menu = sm.find_view_menu(view_menu_name) + permission = sm.find_permission("datasource_access") + + pv = sm.get_session.query(sm.permissionview_model).filter_by( + permission=permission, view_menu=view_menu).first() + assert pv is not None + + if __name__ == '__main__': unittest.main() diff --git a/tests/import_export_tests.py b/tests/import_export_tests.py index 2120fce9d6095..05536354cdf75 100644 --- a/tests/import_export_tests.py +++ b/tests/import_export_tests.py @@ -10,7 +10,11 @@ import pickle import unittest -from superset import db, models +from superset import db +from superset.models import core as models +from superset.connectors.druid.models import ( + DruidDatasource, DruidColumn, DruidMetric) +from superset.connectors.sqla.models import SqlaTable, TableColumn, SqlMetric from .base_tests import SupersetTestCase @@ -31,10 +35,10 @@ def delete_imports(cls): for dash in session.query(models.Dashboard): if 'remote_id' in dash.params_dict: session.delete(dash) - for table in session.query(models.SqlaTable): + for table in session.query(SqlaTable): if 'remote_id' in table.params_dict: session.delete(table) - for datasource in session.query(models.DruidDatasource): + for datasource in session.query(DruidDatasource): if 'remote_id' in datasource.params_dict: session.delete(datasource) session.commit() @@ -90,7 +94,7 @@ def create_dashboard(self, title, id=0, slcs=[]): def create_table( self, name, schema='', id=0, cols_names=[], metric_names=[]): params = {'remote_id': id, 'database_name': 'main'} - table = models.SqlaTable( + table = SqlaTable( id=id, schema=schema, table_name=name, @@ -98,15 +102,15 @@ def create_table( ) for col_name in cols_names: table.columns.append( - models.TableColumn(column_name=col_name)) + TableColumn(column_name=col_name)) for metric_name in metric_names: - table.metrics.append(models.SqlMetric(metric_name=metric_name)) + table.metrics.append(SqlMetric(metric_name=metric_name)) return table def create_druid_datasource( self, name, id=0, cols_names=[], metric_names=[]): params = {'remote_id': id, 'database_name': 'druid_test'} - datasource = models.DruidDatasource( + datasource = DruidDatasource( id=id, datasource_name=name, cluster_name='druid_test', @@ -114,9 +118,9 @@ def create_druid_datasource( ) for col_name in cols_names: datasource.columns.append( - models.DruidColumn(column_name=col_name)) + DruidColumn(column_name=col_name)) for metric_name in metric_names: - datasource.metrics.append(models.DruidMetric( + datasource.metrics.append(DruidMetric( metric_name=metric_name)) return datasource @@ -136,11 +140,11 @@ def get_dash_by_slug(self, dash_slug): slug=dash_slug).first() def get_datasource(self, datasource_id): - return db.session.query(models.DruidDatasource).filter_by( + return db.session.query(DruidDatasource).filter_by( id=datasource_id).first() def get_table_by_name(self, name): - return db.session.query(models.SqlaTable).filter_by( + return db.session.query(SqlaTable).filter_by( table_name=name).first() def assert_dash_equals(self, expected_dash, actual_dash, @@ -392,7 +396,7 @@ def test_import_override_dashboard_2_slices(self): def test_import_table_no_metadata(self): table = self.create_table('pure_table', id=10001) - imported_id = models.SqlaTable.import_obj(table, import_time=1989) + imported_id = SqlaTable.import_obj(table, import_time=1989) imported = self.get_table(imported_id) self.assert_table_equals(table, imported) @@ -400,7 +404,7 @@ def test_import_table_1_col_1_met(self): table = self.create_table( 'table_1_col_1_met', id=10002, cols_names=["col1"], metric_names=["metric1"]) - imported_id = models.SqlaTable.import_obj(table, import_time=1990) + imported_id = SqlaTable.import_obj(table, import_time=1990) imported = self.get_table(imported_id) self.assert_table_equals(table, imported) self.assertEquals( @@ -411,7 +415,7 @@ def test_import_table_2_col_2_met(self): table = self.create_table( 'table_2_col_2_met', id=10003, cols_names=['c1', 'c2'], metric_names=['m1', 'm2']) - imported_id = models.SqlaTable.import_obj(table, import_time=1991) + imported_id = SqlaTable.import_obj(table, import_time=1991) imported = self.get_table(imported_id) self.assert_table_equals(table, imported) @@ -420,12 +424,12 @@ def test_import_table_override(self): table = self.create_table( 'table_override', id=10003, cols_names=['col1'], metric_names=['m1']) - imported_id = models.SqlaTable.import_obj(table, import_time=1991) + imported_id = SqlaTable.import_obj(table, import_time=1991) table_over = self.create_table( 'table_override', id=10003, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_over_id = models.SqlaTable.import_obj( + imported_over_id = SqlaTable.import_obj( table_over, import_time=1992) imported_over = self.get_table(imported_over_id) @@ -439,12 +443,12 @@ def test_import_table_override_idential(self): table = self.create_table( 'copy_cat', id=10004, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_id = models.SqlaTable.import_obj(table, import_time=1993) + imported_id = SqlaTable.import_obj(table, import_time=1993) copy_table = self.create_table( 'copy_cat', id=10004, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_id_copy = models.SqlaTable.import_obj( + imported_id_copy = SqlaTable.import_obj( copy_table, import_time=1994) self.assertEquals(imported_id, imported_id_copy) @@ -452,7 +456,7 @@ def test_import_table_override_idential(self): def test_import_druid_no_metadata(self): datasource = self.create_druid_datasource('pure_druid', id=10001) - imported_id = models.DruidDatasource.import_obj( + imported_id = DruidDatasource.import_obj( datasource, import_time=1989) imported = self.get_datasource(imported_id) self.assert_datasource_equals(datasource, imported) @@ -461,7 +465,7 @@ def test_import_druid_1_col_1_met(self): datasource = self.create_druid_datasource( 'druid_1_col_1_met', id=10002, cols_names=["col1"], metric_names=["metric1"]) - imported_id = models.DruidDatasource.import_obj( + imported_id = DruidDatasource.import_obj( datasource, import_time=1990) imported = self.get_datasource(imported_id) self.assert_datasource_equals(datasource, imported) @@ -474,7 +478,7 @@ def test_import_druid_2_col_2_met(self): datasource = self.create_druid_datasource( 'druid_2_col_2_met', id=10003, cols_names=['c1', 'c2'], metric_names=['m1', 'm2']) - imported_id = models.DruidDatasource.import_obj( + imported_id = DruidDatasource.import_obj( datasource, import_time=1991) imported = self.get_datasource(imported_id) self.assert_datasource_equals(datasource, imported) @@ -483,14 +487,14 @@ def test_import_druid_override(self): datasource = self.create_druid_datasource( 'druid_override', id=10003, cols_names=['col1'], metric_names=['m1']) - imported_id = models.DruidDatasource.import_obj( + imported_id = DruidDatasource.import_obj( datasource, import_time=1991) table_over = self.create_druid_datasource( 'druid_override', id=10003, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_over_id = models.DruidDatasource.import_obj( + imported_over_id = DruidDatasource.import_obj( table_over, import_time=1992) imported_over = self.get_datasource(imported_over_id) @@ -504,13 +508,13 @@ def test_import_druid_override_idential(self): datasource = self.create_druid_datasource( 'copy_cat', id=10004, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_id = models.DruidDatasource.import_obj( + imported_id = DruidDatasource.import_obj( datasource, import_time=1993) copy_datasource = self.create_druid_datasource( 'copy_cat', id=10004, cols_names=['new_col1', 'col2', 'col3'], metric_names=['new_metric1']) - imported_id_copy = models.DruidDatasource.import_obj( + imported_id_copy = DruidDatasource.import_obj( copy_datasource, import_time=1994) self.assertEquals(imported_id, imported_id_copy) diff --git a/tests/model_tests.py b/tests/model_tests.py new file mode 100644 index 0000000000000..df2902b107b62 --- /dev/null +++ b/tests/model_tests.py @@ -0,0 +1,56 @@ +import unittest + +from sqlalchemy.engine.url import make_url + +from superset.models.core import Database + + +class DatabaseModelTestCase(unittest.TestCase): + + def test_database_schema_presto(self): + sqlalchemy_uri = 'presto://presto.airbnb.io:8080/hive/default' + model = Database(sqlalchemy_uri=sqlalchemy_uri) + + db = make_url(model.get_sqla_engine().url).database + self.assertEquals('hive/default', db) + + db = make_url(model.get_sqla_engine(schema='core_db').url).database + self.assertEquals('hive/core_db', db) + + sqlalchemy_uri = 'presto://presto.airbnb.io:8080/hive' + model = Database(sqlalchemy_uri=sqlalchemy_uri) + + db = make_url(model.get_sqla_engine().url).database + self.assertEquals('hive', db) + + db = make_url(model.get_sqla_engine(schema='core_db').url).database + self.assertEquals('hive/core_db', db) + + def test_database_schema_postgres(self): + sqlalchemy_uri = 'postgresql+psycopg2://postgres.airbnb.io:5439/prod' + model = Database(sqlalchemy_uri=sqlalchemy_uri) + + db = make_url(model.get_sqla_engine().url).database + self.assertEquals('prod', db) + + db = make_url(model.get_sqla_engine(schema='foo').url).database + self.assertEquals('prod', db) + + def test_database_schema_hive(self): + sqlalchemy_uri = 'hive://hive@hive.airbnb.io:10000/default?auth=NOSASL' + model = Database(sqlalchemy_uri=sqlalchemy_uri) + db = make_url(model.get_sqla_engine().url).database + self.assertEquals('default', db) + + db = make_url(model.get_sqla_engine(schema='core_db').url).database + self.assertEquals('core_db', db) + + def test_database_schema_mysql(self): + sqlalchemy_uri = 'mysql://root@localhost/superset' + model = Database(sqlalchemy_uri=sqlalchemy_uri) + + db = make_url(model.get_sqla_engine().url).database + self.assertEquals('superset', db) + + db = make_url(model.get_sqla_engine(schema='staging').url).database + self.assertEquals('staging', db) diff --git a/tests/results_backends_tests.py b/tests/results_backends_tests.py deleted file mode 100644 index 146759c5f0418..0000000000000 --- a/tests/results_backends_tests.py +++ /dev/null @@ -1,124 +0,0 @@ -try: - import cPickle as pickle -except ImportError: - import pickle - -import mock - -from superset import app, results_backends -from .base_tests import SupersetTestCase - -app.config['S3_CACHE_BUCKET'] = 'test-bucket' -app.config['S3_CACHE_KEY_PREFIX'] = 'test-prefix/' - - -class ResultsBackendsTests(SupersetTestCase): - requires_examples = False - - @mock.patch('boto3.client') - def setUp(self, mock_boto3_client): - self.mock_boto3_client = mock_boto3_client - self.mock_s3_client = mock.MagicMock() - - self.mock_boto3_client.return_value = self.mock_s3_client - - self.s3_cache = results_backends.S3Cache() - self.s3_cache._key_exists = ResultsBackendsTests._mock_key_exists - - @staticmethod - def _mock_download_fileobj(bucket, key, value_file): - value_file.write(pickle.dumps('%s:%s' % (bucket, key))) - - @staticmethod - def _mock_key_exists(key): - return key == 'test-key' - - def test_s3_cache_initilization(self): - self.mock_boto3_client.assert_called_with('s3') - - def test_s3_cache_set(self): - result = self.s3_cache.set('test-key', 'test-value') - - self.assertTrue(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - call_args = self.mock_s3_client.upload_fileobj.call_args_list[0][0] - - self.assertEquals(pickle.loads(call_args[0].getvalue()), 'test-value') - self.assertEquals(call_args[1], 'test-bucket') - self.assertEquals(call_args[2], 'test-prefix/test-key') - - def test_s3_cache_set_exception(self): - self.mock_s3_client.upload_fileobj.side_effect = Exception('Something bad happened!') - result = self.s3_cache.set('test-key', 'test-value') - - self.assertFalse(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - def test_s3_cache_get_exists(self): - self.mock_s3_client.download_fileobj.side_effect = ( - ResultsBackendsTests._mock_download_fileobj) - result = self.s3_cache.get('test-key') - - self.assertEquals(result, 'test-bucket:test-prefix/test-key') - self.mock_s3_client.download_fileobj.assert_called_once() - - def test_s3_cache_get_does_not_exist(self): - result = self.s3_cache.get('test-key2') - - self.assertEquals(result, None) - self.assertFalse(self.mock_s3_client.download_fileobj.called) - - def test_s3_cache_get_exception(self): - self.mock_s3_client.download_fileobj.side_effect = Exception('Something bad happened') - result = self.s3_cache.get('test-key') - - self.assertEquals(result, None) - self.mock_s3_client.download_fileobj.assert_called_once() - - def test_s3_cache_delete_exists(self): - result = self.s3_cache.delete('test-key') - - self.assertTrue(result) - self.mock_s3_client.delete_objects.assert_called_once_with( - Bucket='test-bucket', - Delete={'Objects': [{'Key': 'test-prefix/test-key'}]} - ) - - def test_s3_cache_delete_does_not_exist(self): - result = self.s3_cache.delete('test-key2') - - self.assertFalse(result) - self.assertFalse(self.mock_s3_client.delete_objects.called) - - def test_s3_cache_delete_exception(self): - self.mock_s3_client.delete_objects.side_effect = Exception('Something bad happened') - result = self.s3_cache.delete('test-key') - - self.assertFalse(result) - self.mock_s3_client.delete_objects.assert_called_once() - - def test_s3_cache_add_exists(self): - result = self.s3_cache.add('test-key', 'test-value') - - self.assertFalse(result) - self.assertFalse(self.mock_s3_client.upload_fileobj.called) - - def test_s3_cache_add_does_not_exist(self): - result = self.s3_cache.add('test-key2', 'test-value') - - self.assertTrue(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - call_args = self.mock_s3_client.upload_fileobj.call_args_list[0][0] - - self.assertEquals(pickle.loads(call_args[0].getvalue()), 'test-value') - self.assertEquals(call_args[1], 'test-bucket') - self.assertEquals(call_args[2], 'test-prefix/test-key2') - - def test_s3_cache_add_exception(self): - self.mock_s3_client.upload_fileobj.side_effect = Exception('Something bad happened') - result = self.s3_cache.add('test-key2', 'test-value') - - self.assertFalse(result) - self.mock_s3_client.upload_fileobj.assert_called_once() diff --git a/tests/security_tests.py b/tests/security_tests.py index bfa9d71dbb399..c107024dc0c1a 100644 --- a/tests/security_tests.py +++ b/tests/security_tests.py @@ -63,7 +63,6 @@ def assert_can_gamma(self, perm_set): self.assertIn(('can_slice', 'Superset'), perm_set) self.assertIn(('can_explore', 'Superset'), perm_set) self.assertIn(('can_explore_json', 'Superset'), perm_set) - self.assertIn(('can_queries', 'Superset'), perm_set) def assert_can_alpha(self, perm_set): self.assert_can_all('SqlMetricInlineView', perm_set) diff --git a/tests/sqllab_tests.py b/tests/sqllab_tests.py index 1ddaf85c2bcb3..9e59adc7dd952 100644 --- a/tests/sqllab_tests.py +++ b/tests/sqllab_tests.py @@ -9,7 +9,9 @@ import unittest from flask_appbuilder.security.sqla import models as ab_models -from superset import db, models, utils, appbuilder, security, sm +from superset import db, utils, appbuilder, sm +from superset.models.sql_lab import Query + from .base_tests import SupersetTestCase @@ -20,7 +22,7 @@ def __init__(self, *args, **kwargs): super(SqlLabTests, self).__init__(*args, **kwargs) def run_some_queries(self): - db.session.query(models.Query).delete() + db.session.query(Query).delete() db.session.commit() self.run_sql( "SELECT * FROM ab_user", @@ -37,7 +39,7 @@ def run_some_queries(self): self.logout() def tearDown(self): - db.session.query(models.Query).delete() + db.session.query(Query).delete() db.session.commit() self.logout() @@ -57,7 +59,9 @@ def test_sql_json_has_access(self): main_db_permission_view = ( db.session.query(ab_models.PermissionView) .join(ab_models.ViewMenu) + .join(ab_models.Permission) .filter(ab_models.ViewMenu.name == '[main].(id:1)') + .filter(ab_models.Permission.name == 'database_access') .first() ) astronaut = sm.add_role("Astronaut") @@ -75,7 +79,7 @@ def test_sql_json_has_access(self): astronaut, password='general') data = self.run_sql('SELECT * FROM ab_user', "3", user_name='gagarin') - db.session.query(models.Query).delete() + db.session.query(Query).delete() db.session.commit() self.assertLess(0, len(data['data'])) @@ -100,7 +104,7 @@ def test_queries_endpoint(self): self.assertEquals(4, len(data)) now = datetime.now() + timedelta(days=1) - query = db.session.query(models.Query).filter_by( + query = db.session.query(Query).filter_by( sql='SELECT * FROM ab_user LIMIT 1').first() query.changed_on = now db.session.commit() @@ -174,11 +178,11 @@ def test_search_query_on_time(self): self.run_some_queries() self.login('admin') first_query_time = ( - db.session.query(models.Query) + db.session.query(Query) .filter_by(sql='SELECT * FROM ab_user').one() ).start_time second_query_time = ( - db.session.query(models.Query) + db.session.query(Query) .filter_by(sql='SELECT * FROM ab_permission').one() ).start_time # Test search queries on time filter diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 231f03b84fe8a..e07d9594b3979 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -1,7 +1,7 @@ from datetime import datetime, date, timedelta, time from decimal import Decimal from superset.utils import ( - json_int_dttm_ser, json_iso_dttm_ser, base_json_conv, parse_human_timedelta + json_int_dttm_ser, json_iso_dttm_ser, base_json_conv, parse_human_timedelta, zlib_compress, zlib_decompress_to_string ) import unittest import uuid @@ -45,3 +45,10 @@ def test_base_json_conv(self): def test_parse_human_timedelta(self, mock_now): mock_now.return_value = datetime(2016, 12, 1) self.assertEquals(parse_human_timedelta('now'), timedelta(0)) + + def test_zlib_compression(self): + json_str = """{"test": 1}""" + blob = zlib_compress(json_str) + got_str = zlib_decompress_to_string(blob) + self.assertEquals(json_str, got_str) + diff --git a/tox.ini b/tox.ini index d0a0c25464026..0827ba42d52fe 100644 --- a/tox.ini +++ b/tox.ini @@ -37,6 +37,13 @@ commands = [testenv:javascript] commands = {toxinidir}/superset/assets/js_build.sh +[testenv:pylint] +commands = + pip wheel -w {homedir}/.wheelhouse -f {homedir}/.wheelhouse . + pip install --find-links={homedir}/.wheelhouse --no-index . + pip install -r dev-reqs.txt + {toxinidir}/pylint-errors.sh + [testenv:py27-mysql] basepython = python2.7 setenv =