Showing preview only (454K chars total). Download the full file or copy to clipboard to get everything.
Repository: teralytics/flowmap.gl
Branch: master
Commit: 88c0215a7a38
Files: 71
Total size: 429.7 KB
Directory structure:
gitextract_r_op4bg4/
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── NOTICE
├── README.md
├── examples/
│ ├── .storybook/
│ │ ├── config.js
│ │ ├── styles.css
│ │ └── webpack.config.js
│ ├── package.json
│ ├── public/
│ │ └── data/
│ │ ├── flows-2015.json
│ │ ├── flows-2016.json
│ │ ├── flows-diff-2015-2016.json
│ │ ├── locations.json
│ │ └── source.url
│ ├── src/
│ │ ├── components/
│ │ │ ├── ClusteringExample.tsx
│ │ │ └── Example.tsx
│ │ ├── index.tsx
│ │ ├── stories/
│ │ │ └── index.tsx
│ │ └── utils/
│ │ ├── pipe.ts
│ │ ├── withFetch.tsx
│ │ ├── withSheetsFetch.tsx
│ │ └── withStats.tsx
│ └── tsconfig.json
├── lerna.json
├── package.json
├── packages/
│ ├── cluster/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ClusterIndex.ts
│ │ │ ├── cluster.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── tsconfig.build.esm.json
│ │ ├── tsconfig.build.json
│ │ └── tsconfig.json
│ ├── core/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── AnimatedFlowLinesLayer/
│ │ │ │ ├── AnimatedFlowLinesLayer.ts
│ │ │ │ ├── AnimatedFlowLinesLayerFragment.glsl.ts
│ │ │ │ ├── AnimatedFlowLinesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowCirclesLayer/
│ │ │ │ ├── FlowCirclesLayer.ts
│ │ │ │ ├── FlowCirclesLayerFragment.glsl.ts
│ │ │ │ ├── FlowCirclesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowLinesLayer/
│ │ │ │ ├── FlowLinesLayer.ts
│ │ │ │ ├── FlowLinesLayerFragment.glsl.ts
│ │ │ │ ├── FlowLinesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowMapLayer.ts
│ │ │ ├── LayerProps.ts
│ │ │ ├── Selectors.ts
│ │ │ ├── colors.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── tsconfig.build.esm.json
│ │ ├── tsconfig.build.json
│ │ └── tsconfig.json
│ └── react/
│ ├── package.json
│ ├── src/
│ │ ├── FlowMap.tsx
│ │ ├── index.ts
│ │ ├── legend/
│ │ │ ├── DiffColorsLegend.tsx
│ │ │ ├── Disc.tsx
│ │ │ ├── LegendBox.tsx
│ │ │ └── LocationTotalsLegend.tsx
│ │ └── viewport.ts
│ ├── tsconfig.build.esm.json
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── tslint.json
└── typings/
├── deck.gl.d.ts
├── kdbush.d.ts
├── luma.gl.d.ts
└── react-map-gl.d.ts
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
node_modules
dist-*
dist
.idea
.DS_Store
.env
npm-debug.log
storybook-static/
lerna-debug.log
================================================
FILE: CHANGELOG.md
================================================
# Change log
## [7.3.4] - 2021-11-10
### Fixed
- Build error #124
## [7.3.3] - 2020-12-22
### Added
- Upgrade deps
## [7.3.2] - 2020-09-14
### Added
- Upgrade deps
## [7.3.1] - 2020-08-03
### Added
- Added locationTotalsExtent
## [7.3.0] - 2020-08-02
### Added
- Added flowMagnitudeExtent
- Added animationTailLength
## [7.2.4] - 2020-08-01
### Fixed
- Upgrade deps
## [7.2.2] - 2020-05-07
### Fixed
- Upgraded all deps to latest to prevent vulnerabilities warnings
## [7.2.1] - 2020-03-17
### Fixed
- Upgraded all deps to latest to prevent vulnerabilities warnings
## [7.2.0] - 2020-03-07
### Fixed
- Added missing DOUBLE type for the instanceSourcePositions and instanceTargetPositions
attributes in FlowLineLayer: this led to incorrect projection when zooming in beyond level 12
- Upgraded deck.gl to 8.0.17
- Upgraded all deps to latest
## [7.1.0] - 2020-02-17
### Fixed
- Flow lines didn't render correctly with non-zero bearing/pitch
### Added
- Support for Layer props (pickable, opacity etc)
- Using getSubLayerPros for updateTriggers
## [7.0.0] - 2020-01-27
### Upgraded
- Upgrading all dependencies to latest
- Making shaders work with deck.gl v8
### Fixed
- selectedLocationIds didn't accept `undefined`
## [6.1.1] - 2019-11-19
### Added
- Added maxLocationCircleSize
- Added getAnimatedFlowLineStaggering
### Fixed
- ClusterIndex.makeLocationWeightGetter didn't correctly calculate outgoing totals
## [6.1.0] - 2019-11-05
### Added
- Yarn for building
- Upgraded deck.gl
- Improved highlighted location area coloring; drawing location areas outline above arrows
- Added staggering to animated flow lines
- Added highlightedLocationAreaId for pre-hovering
- Added maxFlowThickness
- Added minPickableFlowThickness
## [6.0.0] - 2019-08-20
### Added
- Automated clustering
- Upgraded to deck.gl@7
- Color schemes support
- Improved rendering
## [5.2.0] - 2019-03-11
### Added
- Flow color overriding via `getFlowColor`
### Fixed
- Disabling depth test to prevent z-fighting causing rendering issues with non-zero pitch/bearing
- Specified selected color wasn't used for location areas
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
------ BOILERPLATE NOTICE TO ADD AS A HEADER TO SOURCE CODE FILES -------
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------ END OF THE BOILERPLATE NOTICE ---------------------
========================================================================
FLOWMAP.GL COMPONENTS:
The flowmap.gl project bundles or references the following components with
separate copyright notices and license terms in example(s) and/or as dev-
and/or peer-dependencies. Your use of the these components is subject to
the terms and conditions of the following licenses.
========================================================================
MIT licenses
========================================================================
The following components are provided under the MIT License:
reselect - http://www.npmjs.com/package/reselect
@storybook/react - http://www.npmjs.com/package/@storybook/react
@types/d3-array - http://www.npmjs.com/package/@types/d3-array
@types/d3-collection - http://www.npmjs.com/package/@types/d3-collection
@types/d3-color - http://www.npmjs.com/package/@types/d3-color
@types/d3-interpolate - http://www.npmjs.com/package/@types/d3-interpolate
@types/d3-scale - http://www.npmjs.com/package/@types/d3-scale
@types/geojson - http://www.npmjs.com/package/@types/geojson
@types/gl-matrix - http://www.npmjs.com/package/@types/gl-matrix
@types/hammerjs - http://www.npmjs.com/package/@types/hammerjs
@types/node - http://www.npmjs.com/package/@types/node
@types/react - http://www.npmjs.com/package/@types/react
@types/storybook__react - http://www.npmjs.com/package/@types/storybook__react
@types/webpack - http://www.npmjs.com/package/@types/webpack
awesome-typescript-loader - http://www.npmjs.com/package/awesome-typescript-loader
babel-core - http://www.npmjs.com/package/babel-core
deck.gl - http://www.npmjs.com/package/deck.gl
file-loader - http://www.npmjs.com/package/file-loader
husky - http://www.npmjs.com/package/husky
lint-staged - http://www.npmjs.com/package/lint-staged
luma.gl - http://www.npmjs.com/package/luma.gl
npm-run-all - http://www.npmjs.com/package/npm-run-all
prettier - http://www.npmjs.com/package/prettier
react - http://www.npmjs.com/package/react
react-dom - http://www.npmjs.com/package/react-dom
react-map-gl - http://www.npmjs.com/package/react-map-gl
tslint-config-prettier - http://www.npmjs.com/package/tslint-config-prettier
tslint-loader - http://www.npmjs.com/package/tslint-loader
tslint-plugin-prettier - http://www.npmjs.com/package/tslint-plugin-prettier
webpack - http://www.npmjs.com/package/webpack
react - http://www.npmjs.com/package/react
react-dom - http://www.npmjs.com/package/react-dom
deck.gl - http://www.npmjs.com/package/deck.gl
luma.gl - http://www.npmjs.com/package/luma.gl
========================================================================
BSD 3-Clause licenses
========================================================================
The following components are provided under the BSD 3-Clause license:
d3-array - http://www.npmjs.com/package/d3-array
d3-collection - http://www.npmjs.com/package/d3-collection
d3-color - http://www.npmjs.com/package/d3-color
d3-interpolate - http://www.npmjs.com/package/d3-interpolate
d3-scale - http://www.npmjs.com/package/d3-scale
@mapbox/geo-viewport - http://www.npmjs.com/package/@mapbox/geo-viewport
========================================================================
Apache 2.0 licenses
========================================================================
The following components are provided under the Apache 2.0 license:
tslint - http://www.npmjs.com/package/tslint
tslint-react - http://www.npmjs.com/package/tslint-react
typescript - http://www.npmjs.com/package/typescript
================================================
FILE: NOTICE
================================================
flowmap.gl
Copyright 2018 Teralytics
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Portions of this software were developed at Teralytics (http://www.teralytics.net)
================================================
FILE: README.md
================================================
# flowmap.gl
## IMPORTANT: This repository is in maintenance-only mode.
## > [The next version of the library is being developed here](https://github.com/FlowmapBlue/flowmap.gl) <
[Flow map](https://en.wikipedia.org/wiki/Flow_map) drawing layer for [deck.gl](http://uber.github.io/deck.gl). Can be used for visualizing movement of people (e.g. migration) or objects between geographic locations. The layer is rendered in WebGL and can handle large numbers of flows with a good rendering performance.
Try [flowmap.blue](https://flowmap.blue/) for an easy way of publishing a flow map backed by a Google Sheets spreadsheet (no programming skills required).
Check out the [live examples Storybook](https://teralytics.github.io/flowmap.gl/index.html) or the minimal example apps: [with React](https://github.com/ilyabo/flowmap.gl-example), [without React](https://github.com/ilyabo/flowmap.gl-purejs-example/).
<img src="./doc/swiss-cantons-relocations.jpg" width="500" />
## Features
Given an array of locations and an array of flows between these locations the layer will do the following:
- Represent the flows as lines of varying thickness depending on the flow magnitudes
- The flow lines are sorted so that the larger flows are drawn above
- GeoJSON geometries of the location areas are rendered as polygons
- Total incoming and outgoing flows for the locations are calculated and represented as circles of varying sizes.
### Location totals
Both the incoming and outgoing totals for the locations are represented.
A darker outline means that there are more incoming flows, a lighter outline means that there are more outgoing flows.
For instance, below we compare between the evening and the morning commuting behaviors of a large city:
<img src="./doc/morning-evening-peaks.gif" width="480" />
### Difference mode
The layer can be used to show the [difference between two moments in time](https://teralytics.github.io/flowmap.gl/index.html?path=/story/basic--difference-mode).
## Usage
First install the required dependencies:
```
npm install @flowmap.gl/core deck.gl react-map-gl
```
Then, you can either use as a deck.gl layer or flowmap.gl as a React component:
### Usage as a deck.gl layer
With this approach you can use flowmap.gl together with other deck.gl layers.
```jsx harmony
import { StaticMap } from 'react-map-gl';
import { DeckGL } from 'deck.gl';
import FlowMapLayer from '@flowmap.gl/core';
import * as ReactDOM from 'react-dom';
ReactDOM.render(
<DeckGL
controller={true}
initialViewState={{ longitude: 0, latitude: 0, zoom: 1 }}
layers={[
new FlowMapLayer({
id: 'my-flowmap-layer',
locations:
// either array of location areas or a GeoJSON feature collection
[{ id: 1, name: New York, lat: 40.713543, lon: -74.011219 },
{ id: 2, name: London, lat: 51.507425, lon: -0.127738 },
{ id: 3, name: Rio de Janeiro, lat: -22.906241, lon: -43.180244 }],
flows:
[{ origin: 1, dest: 2, count: 42 },
{ origin: 2, dest: 1, count: 51 },
{ origin: 3, dest: 1, count: 50 },
{ origin: 2, dest: 3, count: 40 },
{ origin: 1, dest: 3, count: 22 },
{ origin: 3, dest: 2, count: 42 }],
getFlowMagnitude: (flow) => flow.count || 0,
getFlowOriginId: (flow) => flow.origin,
getFlowDestId: (flow) => flow.dest,
getLocationId: (loc) => loc.id,
getLocationCentroid: (location) => [location.lon, location.lat],
})
]}
>
<StaticMap mapboxApiAccessToken={mapboxAccessToken} />
</DeckGL>,
document.body
)
```
### Usage as a React component
Install this additional dependency:
```
npm install @flowmap.gl/react
```
```jsx harmony
import FlowMap, { getViewStateForLocations } from '@flowmap.gl/react'
const MapVis = ({ width, height }) =>
<div style={{ width, height }}>
<FlowMap
initialViewState={getViewStateForLocations(
locations, l => l.properties.centroid, [ width, height ]
)}
mapboxAccessToken={mapboxAccessToken}
flows={flows}
locations={locations}
getLocationId={l => l.id}
getLocationCentroid={l => l.properties.centroid}
getFlowOriginId={f => f.origin}
getFlowDestId={f => f.dest}
getFlowMagnitude={f => f.count}
pickable={true}
/>
</div>
```
The full list of supported props:
```typescript
interface Props {
id: string;
locations: Locations;
flows: Flow[];
diffMode?: boolean;
animate?: boolean;
animationCurrentTime?: number;
animationTailLength?: number;
colors?: Colors | DiffColors;
getLocationId?: LocationAccessor<string>;
getLocationCentroid?: LocationAccessor<[number, number]>;
getLocationTotalIn?: LocationAccessor<number>;
getLocationTotalOut?: LocationAccessor<number>;
getLocationTotalWithin?: LocationAccessor<number>;
getFlowOriginId?: FlowAccessor<string>;
getFlowDestId?: FlowAccessor<string>;
getFlowMagnitude?: FlowAccessor<number>;
getAnimatedFlowLineStaggering?: FlowAccessor<number>;
getFlowColor?: FlowAccessor<string | undefined>;
maxFlowThickness?: number;
flowMagnitudeExtent?: [number, number];
locationTotalsExtent?: [number, number];
maxLocationCircleSize?: number;
minPickableFlowThickness?: number;
showTotals?: boolean;
showLocationAreas?: boolean;
showOnlyTopFlows?: number;
selectedLocationIds?: string[];
highlightedLocationId?: string;
highlightedLocationAreaId?: string;
highlightedFlow?: Flow;
outlineThickness?: number;
pickable?: boolean;
onClick?: PickingHandler<FlowLayerPickingInfo>;
onHover?: PickingHandler<FlowLayerPickingInfo>;
}
```
## Development
Create an `.env` file in the project root
containing one line:
MapboxAccessToken=<your-mapbox-access-token>
Then, run:
yarn install
yarn start
open http://localhost:6006
If you want to make changes to the `core` and `react` packages and have them automatically recompiled, run the following:
yarn core-dev
yarn react-dev
## Acknowledgements
Many thanks to [Philippe Voinov](https://github.com/tehwalris)
for his help with the first version of the FlowLinesLayer.
## License
flowmap.gl
Copyright 2018 Teralytics
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Portions of this software were developed at Teralytics (http://www.teralytics.net)
================================================
FILE: examples/.storybook/config.js
================================================
/*
* Copyright 2019 Teralytics
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import './styles.css';
import { configure } from '@storybook/react';
const req = require.context('../src/stories', true, /\.tsx?$/);
function loadStories() {
req.keys().forEach(req);
}
configure(loadStories, module);
================================================
FILE: examples/.storybook/styles.css
================================================
/*
* Copyright 2019 Teralytics
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
body {
font-family: sans-serif;
}
#deckgl-overlay {
/* This is temporary until mixBlendMode style prop works in <DeckGL> as before v8 */
mix-blend-mode: inherit;
}
================================================
FILE: examples/.storybook/webpack.config.js
================================================
/*
* Copyright 2018 Teralytics
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
const Dotenv = require('dotenv-webpack');
module.exports = async ({ config, mode }) => {
config.plugins.push(
new Dotenv({
path: '../.env',
})
);
config.module.rules = [
{
test: /\.tsx?$/,
loader: 'awesome-typescript-loader',
exclude: /node_modules/,
},
{
test: /\.(png|jpg|gif)$/,
loader: 'url-loader',
exclude: /node_modules/,
options: {
limit: 8192,
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
}
];
config.resolve.extensions = ['.ts', '.tsx', '.js', '.jsx', '.json'];
return config;
};
================================================
FILE: examples/package.json
================================================
{
"name": "flowmap.gl-examples",
"description": "flowmap.gl usage examples",
"author": "Teralytics AG",
"license": "Apache-2.0",
"version": "7.3.4",
"private": true,
"keywords": [
"flows",
"flow map",
"webgl",
"visualization",
"overlay",
"layer"
],
"repository": {
"type": "git",
"url": "https://github.com/teralytics/flowmap.gl.git"
},
"main": "dist/index.js",
"module": "dist-esm/index.js",
"types": "dist/index.d.ts",
"files": [
"src",
"dist",
"dist-esm"
],
"scripts": {
"start": "start-storybook -p 6006 -s ./public --ci ",
"storybook:build": "build-storybook -s ./public",
"storybook:deploy": "yarn storybook:build && gh-pages -d storybook-static",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@deck.gl/core": "^8.2.8",
"@deck.gl/layers": "^8.2.8",
"@deck.gl/react": "^8.2.8",
"@flowmap.gl/cluster": "^7.3.4",
"@flowmap.gl/core": "^7.3.4",
"@flowmap.gl/react": "^7.3.4",
"@types/d3-scale-chromatic": "^1.5.0",
"d3-color": "^2.0.0",
"d3-dsv": "^2.0.0",
"d3-geo": "^2.0.1",
"d3-scale-chromatic": "^2.0.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-map-gl": "^5.2.8",
"stats.js": "^0.17.0",
"tslint": "^6.1.2",
"tslint-plugin-prettier": "^2.3.0"
},
"devDependencies": {
"@babel/core": "^7.11.6",
"@storybook/react": "^6.0.21",
"@types/d3-color": "^1.2.2",
"@types/d3-dsv": "^1.0.36",
"@types/d3-geo": "^1.11.1",
"@types/geojson": "^7946.0.7",
"@types/node": "^14.10.1",
"@types/react": "^16.9.49",
"@types/stats.js": "^0.17.0",
"@types/storybook__react": "^5.2.1",
"awesome-typescript-loader": "^5.2.1",
"babel-loader": "^8.1.0",
"dotenv-webpack": "^2.0.0",
"file-loader": "^6.1.0",
"gh-pages": "^3.1.0",
"npm-run-all": "^4.1.5",
"style-loader": "^1.2.1",
"typescript": "^4.0.2",
"webpack": "^4.43.0"
}
}
================================================
FILE: examples/public/data/flows-2015.json
================================================
[{"year":"2015","origin":"ZH","dest":"ZH","count":63760},{"year":"2015","origin":"ZH","dest":"BE","count":1685},{"year":"2015","origin":"ZH","dest":"LU","count":1104},{"year":"2015","origin":"ZH","dest":"UR","count":55},{"year":"2015","origin":"ZH","dest":"SZ","count":1821},{"year":"2015","origin":"ZH","dest":"OW","count":93},{"year":"2015","origin":"ZH","dest":"NW","count":89},{"year":"2015","origin":"ZH","dest":"GL","count":286},{"year":"2015","origin":"ZH","dest":"ZG","count":1256},{"year":"2015","origin":"ZH","dest":"FR","count":160},{"year":"2015","origin":"ZH","dest":"SO","count":582},{"year":"2015","origin":"ZH","dest":"BS","count":503},{"year":"2015","origin":"ZH","dest":"BL","count":398},{"year":"2015","origin":"ZH","dest":"SH","count":1019},{"year":"2015","origin":"ZH","dest":"AR","count":146},{"year":"2015","origin":"ZH","dest":"AI","count":45},{"year":"2015","origin":"ZH","dest":"SG","count":2492},{"year":"2015","origin":"ZH","dest":"GR","count":876},{"year":"2015","origin":"ZH","dest":"AG","count":6041},{"year":"2015","origin":"ZH","dest":"TG","count":2663},{"year":"2015","origin":"ZH","dest":"TI","count":415},{"year":"2015","origin":"ZH","dest":"VD","count":446},{"year":"2015","origin":"ZH","dest":"VS","count":211},{"year":"2015","origin":"ZH","dest":"NE","count":64},{"year":"2015","origin":"ZH","dest":"GE","count":198},{"year":"2015","origin":"ZH","dest":"JU","count":14},{"year":"2015","origin":"BE","dest":"ZH","count":2186},{"year":"2015","origin":"BE","dest":"BE","count":50330},{"year":"2015","origin":"BE","dest":"LU","count":885},{"year":"2015","origin":"BE","dest":"UR","count":32},{"year":"2015","origin":"BE","dest":"SZ","count":175},{"year":"2015","origin":"BE","dest":"OW","count":59},{"year":"2015","origin":"BE","dest":"NW","count":76},{"year":"2015","origin":"BE","dest":"GL","count":29},{"year":"2015","origin":"BE","dest":"ZG","count":165},{"year":"2015","origin":"BE","dest":"FR","count":1391},{"year":"2015","origin":"BE","dest":"SO","count":2299},{"year":"2015","origin":"BE","dest":"BS","count":328},{"year":"2015","origin":"BE","dest":"BL","count":353},{"year":"2015","origin":"BE","dest":"SH","count":64},{"year":"2015","origin":"BE","dest":"AR","count":57},{"year":"2015","origin":"BE","dest":"AI","count":9},{"year":"2015","origin":"BE","dest":"SG","count":349},{"year":"2015","origin":"BE","dest":"GR","count":284},{"year":"2015","origin":"BE","dest":"AG","count":1070},{"year":"2015","origin":"BE","dest":"TG","count":183},{"year":"2015","origin":"BE","dest":"TI","count":127},{"year":"2015","origin":"BE","dest":"VD","count":646},{"year":"2015","origin":"BE","dest":"VS","count":495},{"year":"2015","origin":"BE","dest":"NE","count":558},{"year":"2015","origin":"BE","dest":"GE","count":137},{"year":"2015","origin":"BE","dest":"JU","count":327},{"year":"2015","origin":"LU","dest":"ZH","count":1510},{"year":"2015","origin":"LU","dest":"BE","count":928},{"year":"2015","origin":"LU","dest":"LU","count":16318},{"year":"2015","origin":"LU","dest":"UR","count":94},{"year":"2015","origin":"LU","dest":"SZ","count":522},{"year":"2015","origin":"LU","dest":"OW","count":314},{"year":"2015","origin":"LU","dest":"NW","count":557},{"year":"2015","origin":"LU","dest":"GL","count":19},{"year":"2015","origin":"LU","dest":"ZG","count":733},{"year":"2015","origin":"LU","dest":"FR","count":38},{"year":"2015","origin":"LU","dest":"SO","count":299},{"year":"2015","origin":"LU","dest":"BS","count":133},{"year":"2015","origin":"LU","dest":"BL","count":132},{"year":"2015","origin":"LU","dest":"SH","count":32},{"year":"2015","origin":"LU","dest":"AR","count":20},{"year":"2015","origin":"LU","dest":"AI","count":1},{"year":"2015","origin":"LU","dest":"SG","count":181},{"year":"2015","origin":"LU","dest":"GR","count":164},{"year":"2015","origin":"LU","dest":"AG","count":1393},{"year":"2015","origin":"LU","dest":"TG","count":80},{"year":"2015","origin":"LU","dest":"TI","count":74},{"year":"2015","origin":"LU","dest":"VD","count":52},{"year":"2015","origin":"LU","dest":"VS","count":193},{"year":"2015","origin":"LU","dest":"NE","count":9},{"year":"2015","origin":"LU","dest":"GE","count":16},{"year":"2015","origin":"LU","dest":"JU","count":6},{"year":"2015","origin":"UR","dest":"ZH","count":106},{"year":"2015","origin":"UR","dest":"BE","count":30},{"year":"2015","origin":"UR","dest":"LU","count":149},{"year":"2015","origin":"UR","dest":"UR","count":1127},{"year":"2015","origin":"UR","dest":"SZ","count":85},{"year":"2015","origin":"UR","dest":"OW","count":19},{"year":"2015","origin":"UR","dest":"NW","count":36},{"year":"2015","origin":"UR","dest":"GL","count":6},{"year":"2015","origin":"UR","dest":"ZG","count":34},{"year":"2015","origin":"UR","dest":"FR","count":2},{"year":"2015","origin":"UR","dest":"SO","count":24},{"year":"2015","origin":"UR","dest":"BS","count":6},{"year":"2015","origin":"UR","dest":"BL","count":4},{"year":"2015","origin":"UR","dest":"SH","count":3},{"year":"2015","origin":"UR","dest":"AR","count":2},{"year":"2015","origin":"UR","dest":"AI","count":0},{"year":"2015","origin":"UR","dest":"SG","count":15},{"year":"2015","origin":"UR","dest":"GR","count":41},{"year":"2015","origin":"UR","dest":"AG","count":36},{"year":"2015","origin":"UR","dest":"TG","count":10},{"year":"2015","origin":"UR","dest":"TI","count":4},{"year":"2015","origin":"UR","dest":"VD","count":0},{"year":"2015","origin":"UR","dest":"VS","count":12},{"year":"2015","origin":"UR","dest":"NE","count":2},{"year":"2015","origin":"UR","dest":"GE","count":2},{"year":"2015","origin":"UR","dest":"JU","count":0},{"year":"2015","origin":"SZ","dest":"ZH","count":1540},{"year":"2015","origin":"SZ","dest":"BE","count":157},{"year":"2015","origin":"SZ","dest":"LU","count":521},{"year":"2015","origin":"SZ","dest":"UR","count":80},{"year":"2015","origin":"SZ","dest":"SZ","count":4326},{"year":"2015","origin":"SZ","dest":"OW","count":47},{"year":"2015","origin":"SZ","dest":"NW","count":53},{"year":"2015","origin":"SZ","dest":"GL","count":158},{"year":"2015","origin":"SZ","dest":"ZG","count":396},{"year":"2015","origin":"SZ","dest":"FR","count":13},{"year":"2015","origin":"SZ","dest":"SO","count":46},{"year":"2015","origin":"SZ","dest":"BS","count":45},{"year":"2015","origin":"SZ","dest":"BL","count":33},{"year":"2015","origin":"SZ","dest":"SH","count":14},{"year":"2015","origin":"SZ","dest":"AR","count":15},{"year":"2015","origin":"SZ","dest":"AI","count":5},{"year":"2015","origin":"SZ","dest":"SG","count":526},{"year":"2015","origin":"SZ","dest":"GR","count":117},{"year":"2015","origin":"SZ","dest":"AG","count":293},{"year":"2015","origin":"SZ","dest":"TG","count":87},{"year":"2015","origin":"SZ","dest":"TI","count":47},{"year":"2015","origin":"SZ","dest":"VD","count":44},{"year":"2015","origin":"SZ","dest":"VS","count":32},{"year":"2015","origin":"SZ","dest":"NE","count":4},{"year":"2015","origin":"SZ","dest":"GE","count":20},{"year":"2015","origin":"SZ","dest":"JU","count":5},{"year":"2015","origin":"OW","dest":"ZH","count":99},{"year":"2015","origin":"OW","dest":"BE","count":86},{"year":"2015","origin":"OW","dest":"LU","count":392},{"year":"2015","origin":"OW","dest":"UR","count":20},{"year":"2015","origin":"OW","dest":"SZ","count":30},{"year":"2015","origin":"OW","dest":"OW","count":899},{"year":"2015","origin":"OW","dest":"NW","count":178},{"year":"2015","origin":"OW","dest":"GL","count":1},{"year":"2015","origin":"OW","dest":"ZG","count":18},{"year":"2015","origin":"OW","dest":"FR","count":8},{"year":"2015","origin":"OW","dest":"SO","count":16},{"year":"2015","origin":"OW","dest":"BS","count":8},{"year":"2015","origin":"OW","dest":"BL","count":17},{"year":"2015","origin":"OW","dest":"SH","count":1},{"year":"2015","origin":"OW","dest":"AR","count":7},{"year":"2015","origin":"OW","dest":"AI","count":1},{"year":"2015","origin":"OW","dest":"SG","count":17},{"year":"2015","origin":"OW","dest":"GR","count":23},{"year":"2015","origin":"OW","dest":"AG","count":55},{"year":"2015","origin":"OW","dest":"TG","count":21},{"year":"2015","origin":"OW","dest":"TI","count":7},{"year":"2015","origin":"OW","dest":"VD","count":8},{"year":"2015","origin":"OW","dest":"VS","count":10},{"year":"2015","origin":"OW","dest":"NE","count":0},{"year":"2015","origin":"OW","dest":"GE","count":1},{"year":"2015","origin":"OW","dest":"JU","count":3},{"year":"2015","origin":"NW","dest":"ZH","count":118},{"year":"2015","origin":"NW","dest":"BE","count":57},{"year":"2015","origin":"NW","dest":"LU","count":542},{"year":"2015","origin":"NW","dest":"UR","count":44},{"year":"2015","origin":"NW","dest":"SZ","count":42},{"year":"2015","origin":"NW","dest":"OW","count":207},{"year":"2015","origin":"NW","dest":"NW","count":1284},{"year":"2015","origin":"NW","dest":"GL","count":0},{"year":"2015","origin":"NW","dest":"ZG","count":47},{"year":"2015","origin":"NW","dest":"FR","count":4},{"year":"2015","origin":"NW","dest":"SO","count":17},{"year":"2015","origin":"NW","dest":"BS","count":8},{"year":"2015","origin":"NW","dest":"BL","count":9},{"year":"2015","origin":"NW","dest":"SH","count":1},{"year":"2015","origin":"NW","dest":"AR","count":2},{"year":"2015","origin":"NW","dest":"AI","count":0},{"year":"2015","origin":"NW","dest":"SG","count":17},{"year":"2015","origin":"NW","dest":"GR","count":22},{"year":"2015","origin":"NW","dest":"AG","count":60},{"year":"2015","origin":"NW","dest":"TG","count":6},{"year":"2015","origin":"NW","dest":"TI","count":6},{"year":"2015","origin":"NW","dest":"VD","count":6},{"year":"2015","origin":"NW","dest":"VS","count":12},{"year":"2015","origin":"NW","dest":"NE","count":1},{"year":"2015","origin":"NW","dest":"GE","count":4},{"year":"2015","origin":"NW","dest":"JU","count":1},{"year":"2015","origin":"GL","dest":"ZH","count":280},{"year":"2015","origin":"GL","dest":"BE","count":44},{"year":"2015","origin":"GL","dest":"LU","count":37},{"year":"2015","origin":"GL","dest":"UR","count":4},{"year":"2015","origin":"GL","dest":"SZ","count":122},{"year":"2015","origin":"GL","dest":"OW","count":8},{"year":"2015","origin":"GL","dest":"NW","count":0},{"year":"2015","origin":"GL","dest":"GL","count":917},{"year":"2015","origin":"GL","dest":"ZG","count":20},{"year":"2015","origin":"GL","dest":"FR","count":9},{"year":"2015","origin":"GL","dest":"SO","count":19},{"year":"2015","origin":"GL","dest":"BS","count":4},{"year":"2015","origin":"GL","dest":"BL","count":12},{"year":"2015","origin":"GL","dest":"SH","count":8},{"year":"2015","origin":"GL","dest":"AR","count":10},{"year":"2015","origin":"GL","dest":"AI","count":1},{"year":"2015","origin":"GL","dest":"SG","count":303},{"year":"2015","origin":"GL","dest":"GR","count":64},{"year":"2015","origin":"GL","dest":"AG","count":53},{"year":"2015","origin":"GL","dest":"TG","count":24},{"year":"2015","origin":"GL","dest":"TI","count":10},{"year":"2015","origin":"GL","dest":"VD","count":3},{"year":"2015","origin":"GL","dest":"VS","count":16},{"year":"2015","origin":"GL","dest":"NE","count":2},{"year":"2015","origin":"GL","dest":"GE","count":1},{"year":"2015","origin":"GL","dest":"JU","count":5},{"year":"2015","origin":"ZG","dest":"ZH","count":1075},{"year":"2015","origin":"ZG","dest":"BE","count":163},{"year":"2015","origin":"ZG","dest":"LU","count":761},{"year":"2015","origin":"ZG","dest":"UR","count":26},{"year":"2015","origin":"ZG","dest":"SZ","count":383},{"year":"2015","origin":"ZG","dest":"OW","count":30},{"year":"2015","origin":"ZG","dest":"NW","count":41},{"year":"2015","origin":"ZG","dest":"GL","count":5},{"year":"2015","origin":"ZG","dest":"ZG","count":4160},{"year":"2015","origin":"ZG","dest":"FR","count":12},{"year":"2015","origin":"ZG","dest":"SO","count":51},{"year":"2015","origin":"ZG","dest":"BS","count":31},{"year":"2015","origin":"ZG","dest":"BL","count":46},{"year":"2015","origin":"ZG","dest":"SH","count":21},{"year":"2015","origin":"ZG","dest":"AR","count":18},{"year":"2015","origin":"ZG","dest":"AI","count":4},{"year":"2015","origin":"ZG","dest":"SG","count":73},{"year":"2015","origin":"ZG","dest":"GR","count":41},{"year":"2015","origin":"ZG","dest":"AG","count":472},{"year":"2015","origin":"ZG","dest":"TG","count":47},{"year":"2015","origin":"ZG","dest":"TI","count":35},{"year":"2015","origin":"ZG","dest":"VD","count":63},{"year":"2015","origin":"ZG","dest":"VS","count":28},{"year":"2015","origin":"ZG","dest":"NE","count":10},{"year":"2015","origin":"ZG","dest":"GE","count":20},{"year":"2015","origin":"ZG","dest":"JU","count":1},{"year":"2015","origin":"FR","dest":"ZH","count":333},{"year":"2015","origin":"FR","dest":"BE","count":1517},{"year":"2015","origin":"FR","dest":"LU","count":81},{"year":"2015","origin":"FR","dest":"UR","count":3},{"year":"2015","origin":"FR","dest":"SZ","count":18},{"year":"2015","origin":"FR","dest":"OW","count":1},{"year":"2015","origin":"FR","dest":"NW","count":7},{"year":"2015","origin":"FR","dest":"GL","count":2},{"year":"2015","origin":"FR","dest":"ZG","count":31},{"year":"2015","origin":"FR","dest":"FR","count":14758},{"year":"2015","origin":"FR","dest":"SO","count":105},{"year":"2015","origin":"FR","dest":"BS","count":67},{"year":"2015","origin":"FR","dest":"BL","count":46},{"year":"2015","origin":"FR","dest":"SH","count":7},{"year":"2015","origin":"FR","dest":"AR","count":4},{"year":"2015","origin":"FR","dest":"AI","count":0},{"year":"2015","origin":"FR","dest":"SG","count":39},{"year":"2015","origin":"FR","dest":"GR","count":18},{"year":"2015","origin":"FR","dest":"AG","count":99},{"year":"2015","origin":"FR","dest":"TG","count":18},{"year":"2015","origin":"FR","dest":"TI","count":47},{"year":"2015","origin":"FR","dest":"VD","count":2165},{"year":"2015","origin":"FR","dest":"VS","count":351},{"year":"2015","origin":"FR","dest":"NE","count":229},{"year":"2015","origin":"FR","dest":"GE","count":194},{"year":"2015","origin":"FR","dest":"JU","count":54},{"year":"2015","origin":"SO","dest":"ZH","count":632},{"year":"2015","origin":"SO","dest":"BE","count":2207},{"year":"2015","origin":"SO","dest":"LU","count":365},{"year":"2015","origin":"SO","dest":"UR","count":2},{"year":"2015","origin":"SO","dest":"SZ","count":58},{"year":"2015","origin":"SO","dest":"OW","count":17},{"year":"2015","origin":"SO","dest":"NW","count":26},{"year":"2015","origin":"SO","dest":"GL","count":5},{"year":"2015","origin":"SO","dest":"ZG","count":54},{"year":"2015","origin":"SO","dest":"FR","count":70},{"year":"2015","origin":"SO","dest":"SO","count":10266},{"year":"2015","origin":"SO","dest":"BS","count":381},{"year":"2015","origin":"SO","dest":"BL","count":988},{"year":"2015","origin":"SO","dest":"SH","count":12},{"year":"2015","origin":"SO","dest":"AR","count":22},{"year":"2015","origin":"SO","dest":"AI","count":0},{"year":"2015","origin":"SO","dest":"SG","count":87},{"year":"2015","origin":"SO","dest":"GR","count":52},{"year":"2015","origin":"SO","dest":"AG","count":1436},{"year":"2015","origin":"SO","dest":"TG","count":85},{"year":"2015","origin":"SO","dest":"TI","count":56},{"year":"2015","origin":"SO","dest":"VD","count":39},{"year":"2015","origin":"SO","dest":"VS","count":69},{"year":"2015","origin":"SO","dest":"NE","count":16},{"year":"2015","origin":"SO","dest":"GE","count":9},{"year":"2015","origin":"SO","dest":"JU","count":19},{"year":"2015","origin":"BS","dest":"ZH","count":686},{"year":"2015","origin":"BS","dest":"BE","count":447},{"year":"2015","origin":"BS","dest":"LU","count":128},{"year":"2015","origin":"BS","dest":"UR","count":7},{"year":"2015","origin":"BS","dest":"SZ","count":34},{"year":"2015","origin":"BS","dest":"OW","count":8},{"year":"2015","origin":"BS","dest":"NW","count":19},{"year":"2015","origin":"BS","dest":"GL","count":5},{"year":"2015","origin":"BS","dest":"ZG","count":61},{"year":"2015","origin":"BS","dest":"FR","count":35},{"year":"2015","origin":"BS","dest":"SO","count":476},{"year":"2015","origin":"BS","dest":"BS","count":1267},{"year":"2015","origin":"BS","dest":"BL","count":3599},{"year":"2015","origin":"BS","dest":"SH","count":25},{"year":"2015","origin":"BS","dest":"AR","count":12},{"year":"2015","origin":"BS","dest":"AI","count":3},{"year":"2015","origin":"BS","dest":"SG","count":83},{"year":"2015","origin":"BS","dest":"GR","count":67},{"year":"2015","origin":"BS","dest":"AG","count":616},{"year":"2015","origin":"BS","dest":"TG","count":33},{"year":"2015","origin":"BS","dest":"TI","count":51},{"year":"2015","origin":"BS","dest":"VD","count":99},{"year":"2015","origin":"BS","dest":"VS","count":35},{"year":"2015","origin":"BS","dest":"NE","count":31},{"year":"2015","origin":"BS","dest":"GE","count":61},{"year":"2015","origin":"BS","dest":"JU","count":38},{"year":"2015","origin":"BL","dest":"ZH","count":498},{"year":"2015","origin":"BL","dest":"BE","count":436},{"year":"2015","origin":"BL","dest":"LU","count":150},{"year":"2015","origin":"BL","dest":"UR","count":7},{"year":"2015","origin":"BL","dest":"SZ","count":47},{"year":"2015","origin":"BL","dest":"OW","count":14},{"year":"2015","origin":"BL","dest":"NW","count":10},{"year":"2015","origin":"BL","dest":"GL","count":9},{"year":"2015","origin":"BL","dest":"ZG","count":60},{"year":"2015","origin":"BL","dest":"FR","count":27},{"year":"2015","origin":"BL","dest":"SO","count":1158},{"year":"2015","origin":"BL","dest":"BS","count":2527},{"year":"2015","origin":"BL","dest":"BL","count":9953},{"year":"2015","origin":"BL","dest":"SH","count":22},{"year":"2015","origin":"BL","dest":"AR","count":5},{"year":"2015","origin":"BL","dest":"AI","count":4},{"year":"2015","origin":"BL","dest":"SG","count":72},{"year":"2015","origin":"BL","dest":"GR","count":65},{"year":"2015","origin":"BL","dest":"AG","count":1172},{"year":"2015","origin":"BL","dest":"TG","count":44},{"year":"2015","origin":"BL","dest":"TI","count":45},{"year":"2015","origin":"BL","dest":"VD","count":47},{"year":"2015","origin":"BL","dest":"VS","count":29},{"year":"2015","origin":"BL","dest":"NE","count":11},{"year":"2015","origin":"BL","dest":"GE","count":11},{"year":"2015","origin":"BL","dest":"JU","count":46},{"year":"2015","origin":"SH","dest":"ZH","count":1000},{"year":"2015","origin":"SH","dest":"BE","count":58},{"year":"2015","origin":"SH","dest":"LU","count":36},{"year":"2015","origin":"SH","dest":"UR","count":2},{"year":"2015","origin":"SH","dest":"SZ","count":12},{"year":"2015","origin":"SH","dest":"OW","count":3},{"year":"2015","origin":"SH","dest":"NW","count":3},{"year":"2015","origin":"SH","dest":"GL","count":10},{"year":"2015","origin":"SH","dest":"ZG","count":18},{"year":"2015","origin":"SH","dest":"FR","count":6},{"year":"2015","origin":"SH","dest":"SO","count":18},{"year":"2015","origin":"SH","dest":"BS","count":26},{"year":"2015","origin":"SH","dest":"BL","count":19},{"year":"2015","origin":"SH","dest":"SH","count":2286},{"year":"2015","origin":"SH","dest":"AR","count":10},{"year":"2015","origin":"SH","dest":"AI","count":4},{"year":"2015","origin":"SH","dest":"SG","count":122},{"year":"2015","origin":"SH","dest":"GR","count":41},{"year":"2015","origin":"SH","dest":"AG","count":102},{"year":"2015","origin":"SH","dest":"TG","count":335},{"year":"2015","origin":"SH","dest":"TI","count":11},{"year":"2015","origin":"SH","dest":"VD","count":15},{"year":"2015","origin":"SH","dest":"VS","count":8},{"year":"2015","origin":"SH","dest":"NE","count":1},{"year":"2015","origin":"SH","dest":"GE","count":6},{"year":"2015","origin":"SH","dest":"JU","count":3},{"year":"2015","origin":"AR","dest":"ZH","count":209},{"year":"2015","origin":"AR","dest":"BE","count":58},{"year":"2015","origin":"AR","dest":"LU","count":21},{"year":"2015","origin":"AR","dest":"UR","count":0},{"year":"2015","origin":"AR","dest":"SZ","count":12},{"year":"2015","origin":"AR","dest":"OW","count":0},{"year":"2015","origin":"AR","dest":"NW","count":2},{"year":"2015","origin":"AR","dest":"GL","count":10},{"year":"2015","origin":"AR","dest":"ZG","count":6},{"year":"2015","origin":"AR","dest":"FR","count":6},{"year":"2015","origin":"AR","dest":"SO","count":7},{"year":"2015","origin":"AR","dest":"BS","count":11},{"year":"2015","origin":"AR","dest":"BL","count":13},{"year":"2015","origin":"AR","dest":"SH","count":6},{"year":"2015","origin":"AR","dest":"AR","count":948},{"year":"2015","origin":"AR","dest":"AI","count":138},{"year":"2015","origin":"AR","dest":"SG","count":1231},{"year":"2015","origin":"AR","dest":"GR","count":39},{"year":"2015","origin":"AR","dest":"AG","count":60},{"year":"2015","origin":"AR","dest":"TG","count":210},{"year":"2015","origin":"AR","dest":"TI","count":16},{"year":"2015","origin":"AR","dest":"VD","count":7},{"year":"2015","origin":"AR","dest":"VS","count":8},{"year":"2015","origin":"AR","dest":"NE","count":0},{"year":"2015","origin":"AR","dest":"GE","count":3},{"year":"2015","origin":"AR","dest":"JU","count":1},{"year":"2015","origin":"AI","dest":"ZH","count":50},{"year":"2015","origin":"AI","dest":"BE","count":12},{"year":"2015","origin":"AI","dest":"LU","count":6},{"year":"2015","origin":"AI","dest":"UR","count":1},{"year":"2015","origin":"AI","dest":"SZ","count":0},{"year":"2015","origin":"AI","dest":"OW","count":2},{"year":"2015","origin":"AI","dest":"NW","count":0},{"year":"2015","origin":"AI","dest":"GL","count":1},{"year":"2015","origin":"AI","dest":"ZG","count":2},{"year":"2015","origin":"AI","dest":"FR","count":0},{"year":"2015","origin":"AI","dest":"SO","count":0},{"year":"2015","origin":"AI","dest":"BS","count":0},{"year":"2015","origin":"AI","dest":"BL","count":5},{"year":"2015","origin":"AI","dest":"SH","count":1},{"year":"2015","origin":"AI","dest":"AR","count":113},{"year":"2015","origin":"AI","dest":"AI","count":358},{"year":"2015","origin":"AI","dest":"SG","count":166},{"year":"2015","origin":"AI","dest":"GR","count":8},{"year":"2015","origin":"AI","dest":"AG","count":11},{"year":"2015","origin":"AI","dest":"TG","count":25},{"year":"2015","origin":"AI","dest":"TI","count":3},{"year":"2015","origin":"AI","dest":"VD","count":2},{"year":"2015","origin":"AI","dest":"VS","count":5},{"year":"2015","origin":"AI","dest":"NE","count":2},{"year":"2015","origin":"AI","dest":"GE","count":0},{"year":"2015","origin":"AI","dest":"JU","count":0},{"year":"2015","origin":"SG","dest":"ZH","count":3226},{"year":"2015","origin":"SG","dest":"BE","count":426},{"year":"2015","origin":"SG","dest":"LU","count":284},{"year":"2015","origin":"SG","dest":"UR","count":30},{"year":"2015","origin":"SG","dest":"SZ","count":498},{"year":"2015","origin":"SG","dest":"OW","count":16},{"year":"2015","origin":"SG","dest":"NW","count":23},{"year":"2015","origin":"SG","dest":"GL","count":256},{"year":"2015","origin":"SG","dest":"ZG","count":117},{"year":"2015","origin":"SG","dest":"FR","count":39},{"year":"2015","origin":"SG","dest":"SO","count":132},{"year":"2015","origin":"SG","dest":"BS","count":113},{"year":"2015","origin":"SG","dest":"BL","count":104},{"year":"2015","origin":"SG","dest":"SH","count":81},{"year":"2015","origin":"SG","dest":"AR","count":1421},{"year":"2015","origin":"SG","dest":"AI","count":156},{"year":"2015","origin":"SG","dest":"SG","count":16989},{"year":"2015","origin":"SG","dest":"GR","count":741},{"year":"2015","origin":"SG","dest":"AG","count":465},{"year":"2015","origin":"SG","dest":"TG","count":2574},{"year":"2015","origin":"SG","dest":"TI","count":87},{"year":"2015","origin":"SG","dest":"VD","count":70},{"year":"2015","origin":"SG","dest":"VS","count":65},{"year":"2015","origin":"SG","dest":"NE","count":14},{"year":"2015","origin":"SG","dest":"GE","count":30},{"year":"2015","origin":"SG","dest":"JU","count":10},{"year":"2015","origin":"GR","dest":"ZH","count":1355},{"year":"2015","origin":"GR","dest":"BE","count":423},{"year":"2015","origin":"GR","dest":"LU","count":227},{"year":"2015","origin":"GR","dest":"UR","count":31},{"year":"2015","origin":"GR","dest":"SZ","count":109},{"year":"2015","origin":"GR","dest":"OW","count":24},{"year":"2015","origin":"GR","dest":"NW","count":32},{"year":"2015","origin":"GR","dest":"GL","count":52},{"year":"2015","origin":"GR","dest":"ZG","count":69},{"year":"2015","origin":"GR","dest":"FR","count":33},{"year":"2015","origin":"GR","dest":"SO","count":66},{"year":"2015","origin":"GR","dest":"BS","count":58},{"year":"2015","origin":"GR","dest":"BL","count":70},{"year":"2015","origin":"GR","dest":"SH","count":25},{"year":"2015","origin":"GR","dest":"AR","count":36},{"year":"2015","origin":"GR","dest":"AI","count":16},{"year":"2015","origin":"GR","dest":"SG","count":788},{"year":"2015","origin":"GR","dest":"GR","count":7254},{"year":"2015","origin":"GR","dest":"AG","count":234},{"year":"2015","origin":"GR","dest":"TG","count":139},{"year":"2015","origin":"GR","dest":"TI","count":299},{"year":"2015","origin":"GR","dest":"VD","count":38},{"year":"2015","origin":"GR","dest":"VS","count":44},{"year":"2015","origin":"GR","dest":"NE","count":3},{"year":"2015","origin":"GR","dest":"GE","count":20},{"year":"2015","origin":"GR","dest":"JU","count":1},{"year":"2015","origin":"AG","dest":"ZH","count":4711},{"year":"2015","origin":"AG","dest":"BE","count":1204},{"year":"2015","origin":"AG","dest":"LU","count":1479},{"year":"2015","origin":"AG","dest":"UR","count":16},{"year":"2015","origin":"AG","dest":"SZ","count":281},{"year":"2015","origin":"AG","dest":"OW","count":64},{"year":"2015","origin":"AG","dest":"NW","count":54},{"year":"2015","origin":"AG","dest":"GL","count":43},{"year":"2015","origin":"AG","dest":"ZG","count":421},{"year":"2015","origin":"AG","dest":"FR","count":73},{"year":"2015","origin":"AG","dest":"SO","count":1614},{"year":"2015","origin":"AG","dest":"BS","count":527},{"year":"2015","origin":"AG","dest":"BL","count":1041},{"year":"2015","origin":"AG","dest":"SH","count":114},{"year":"2015","origin":"AG","dest":"AR","count":40},{"year":"2015","origin":"AG","dest":"AI","count":10},{"year":"2015","origin":"AG","dest":"SG","count":345},{"year":"2015","origin":"AG","dest":"GR","count":231},{"year":"2015","origin":"AG","dest":"AG","count":30488},{"year":"2015","origin":"AG","dest":"TG","count":281},{"year":"2015","origin":"AG","dest":"TI","count":93},{"year":"2015","origin":"AG","dest":"VD","count":115},{"year":"2015","origin":"AG","dest":"VS","count":79},{"year":"2015","origin":"AG","dest":"NE","count":27},{"year":"2015","origin":"AG","dest":"GE","count":29},{"year":"2015","origin":"AG","dest":"JU","count":20},{"year":"2015","origin":"TG","dest":"ZH","count":2101},{"year":"2015","origin":"TG","dest":"BE","count":210},{"year":"2015","origin":"TG","dest":"LU","count":113},{"year":"2015","origin":"TG","dest":"UR","count":12},{"year":"2015","origin":"TG","dest":"SZ","count":78},{"year":"2015","origin":"TG","dest":"OW","count":10},{"year":"2015","origin":"TG","dest":"NW","count":6},{"year":"2015","origin":"TG","dest":"GL","count":14},{"year":"2015","origin":"TG","dest":"ZG","count":57},{"year":"2015","origin":"TG","dest":"FR","count":51},{"year":"2015","origin":"TG","dest":"SO","count":98},{"year":"2015","origin":"TG","dest":"BS","count":63},{"year":"2015","origin":"TG","dest":"BL","count":67},{"year":"2015","origin":"TG","dest":"SH","count":279},{"year":"2015","origin":"TG","dest":"AR","count":188},{"year":"2015","origin":"TG","dest":"AI","count":32},{"year":"2015","origin":"TG","dest":"SG","count":2146},{"year":"2015","origin":"TG","dest":"GR","count":133},{"year":"2015","origin":"TG","dest":"AG","count":264},{"year":"2015","origin":"TG","dest":"TG","count":10156},{"year":"2015","origin":"TG","dest":"TI","count":38},{"year":"2015","origin":"TG","dest":"VD","count":24},{"year":"2015","origin":"TG","dest":"VS","count":23},{"year":"2015","origin":"TG","dest":"NE","count":8},{"year":"2015","origin":"TG","dest":"GE","count":6},{"year":"2015","origin":"TG","dest":"JU","count":2},{"year":"2015","origin":"TI","dest":"ZH","count":794},{"year":"2015","origin":"TI","dest":"BE","count":220},{"year":"2015","origin":"TI","dest":"LU","count":119},{"year":"2015","origin":"TI","dest":"UR","count":18},{"year":"2015","origin":"TI","dest":"SZ","count":55},{"year":"2015","origin":"TI","dest":"OW","count":2},{"year":"2015","origin":"TI","dest":"NW","count":7},{"year":"2015","origin":"TI","dest":"GL","count":12},{"year":"2015","origin":"TI","dest":"ZG","count":59},{"year":"2015","origin":"TI","dest":"FR","count":99},{"year":"2015","origin":"TI","dest":"SO","count":51},{"year":"2015","origin":"TI","dest":"BS","count":61},{"year":"2015","origin":"TI","dest":"BL","count":37},{"year":"2015","origin":"TI","dest":"SH","count":16},{"year":"2015","origin":"TI","dest":"AR","count":5},{"year":"2015","origin":"TI","dest":"AI","count":5},{"year":"2015","origin":"TI","dest":"SG","count":110},{"year":"2015","origin":"TI","dest":"GR","count":393},{"year":"2015","origin":"TI","dest":"AG","count":164},{"year":"2015","origin":"TI","dest":"TG","count":50},{"year":"2015","origin":"TI","dest":"TI","count":16069},{"year":"2015","origin":"TI","dest":"VD","count":271},{"year":"2015","origin":"TI","dest":"VS","count":100},{"year":"2015","origin":"TI","dest":"NE","count":36},{"year":"2015","origin":"TI","dest":"GE","count":109},{"year":"2015","origin":"TI","dest":"JU","count":9},{"year":"2015","origin":"VD","dest":"ZH","count":845},{"year":"2015","origin":"VD","dest":"BE","count":712},{"year":"2015","origin":"VD","dest":"LU","count":80},{"year":"2015","origin":"VD","dest":"UR","count":3},{"year":"2015","origin":"VD","dest":"SZ","count":64},{"year":"2015","origin":"VD","dest":"OW","count":11},{"year":"2015","origin":"VD","dest":"NW","count":11},{"year":"2015","origin":"VD","dest":"GL","count":5},{"year":"2015","origin":"VD","dest":"ZG","count":152},{"year":"2015","origin":"VD","dest":"FR","count":3205},{"year":"2015","origin":"VD","dest":"SO","count":79},{"year":"2015","origin":"VD","dest":"BS","count":107},{"year":"2015","origin":"VD","dest":"BL","count":43},{"year":"2015","origin":"VD","dest":"SH","count":15},{"year":"2015","origin":"VD","dest":"AR","count":4},{"year":"2015","origin":"VD","dest":"AI","count":7},{"year":"2015","origin":"VD","dest":"SG","count":53},{"year":"2015","origin":"VD","dest":"GR","count":33},{"year":"2015","origin":"VD","dest":"AG","count":129},{"year":"2015","origin":"VD","dest":"TG","count":18},{"year":"2015","origin":"VD","dest":"TI","count":158},{"year":"2015","origin":"VD","dest":"VD","count":45028},{"year":"2015","origin":"VD","dest":"VS","count":2454},{"year":"2015","origin":"VD","dest":"NE","count":858},{"year":"2015","origin":"VD","dest":"GE","count":1787},{"year":"2015","origin":"VD","dest":"JU","count":145},{"year":"2015","origin":"VS","dest":"ZH","count":337},{"year":"2015","origin":"VS","dest":"BE","count":616},{"year":"2015","origin":"VS","dest":"LU","count":153},{"year":"2015","origin":"VS","dest":"UR","count":18},{"year":"2015","origin":"VS","dest":"SZ","count":45},{"year":"2015","origin":"VS","dest":"OW","count":12},{"year":"2015","origin":"VS","dest":"NW","count":12},{"year":"2015","origin":"VS","dest":"GL","count":7},{"year":"2015","origin":"VS","dest":"ZG","count":23},{"year":"2015","origin":"VS","dest":"FR","count":390},{"year":"2015","origin":"VS","dest":"SO","count":79},{"year":"2015","origin":"VS","dest":"BS","count":43},{"year":"2015","origin":"VS","dest":"BL","count":53},{"year":"2015","origin":"VS","dest":"SH","count":11},{"year":"2015","origin":"VS","dest":"AR","count":6},{"year":"2015","origin":"VS","dest":"AI","count":6},{"year":"2015","origin":"VS","dest":"SG","count":53},{"year":"2015","origin":"VS","dest":"GR","count":52},{"year":"2015","origin":"VS","dest":"AG","count":108},{"year":"2015","origin":"VS","dest":"TG","count":31},{"year":"2015","origin":"VS","dest":"TI","count":56},{"year":"2015","origin":"VS","dest":"VD","count":1640},{"year":"2015","origin":"VS","dest":"VS","count":14500},{"year":"2015","origin":"VS","dest":"NE","count":170},{"year":"2015","origin":"VS","dest":"GE","count":271},{"year":"2015","origin":"VS","dest":"JU","count":43},{"year":"2015","origin":"NE","dest":"ZH","count":114},{"year":"2015","origin":"NE","dest":"BE","count":918},{"year":"2015","origin":"NE","dest":"LU","count":14},{"year":"2015","origin":"NE","dest":"UR","count":0},{"year":"2015","origin":"NE","dest":"SZ","count":5},{"year":"2015","origin":"NE","dest":"OW","count":0},{"year":"2015","origin":"NE","dest":"NW","count":1},{"year":"2015","origin":"NE","dest":"GL","count":0},{"year":"2015","origin":"NE","dest":"ZG","count":20},{"year":"2015","origin":"NE","dest":"FR","count":383},{"year":"2015","origin":"NE","dest":"SO","count":28},{"year":"2015","origin":"NE","dest":"BS","count":22},{"year":"2015","origin":"NE","dest":"BL","count":7},{"year":"2015","origin":"NE","dest":"SH","count":7},{"year":"2015","origin":"NE","dest":"AR","count":1},{"year":"2015","origin":"NE","dest":"AI","count":0},{"year":"2015","origin":"NE","dest":"SG","count":11},{"year":"2015","origin":"NE","dest":"GR","count":7},{"year":"2015","origin":"NE","dest":"AG","count":23},{"year":"2015","origin":"NE","dest":"TG","count":3},{"year":"2015","origin":"NE","dest":"TI","count":42},{"year":"2015","origin":"NE","dest":"VD","count":1095},{"year":"2015","origin":"NE","dest":"VS","count":199},{"year":"2015","origin":"NE","dest":"NE","count":7369},{"year":"2015","origin":"NE","dest":"GE","count":173},{"year":"2015","origin":"NE","dest":"JU","count":170},{"year":"2015","origin":"GE","dest":"ZH","count":413},{"year":"2015","origin":"GE","dest":"BE","count":206},{"year":"2015","origin":"GE","dest":"LU","count":20},{"year":"2015","origin":"GE","dest":"UR","count":2},{"year":"2015","origin":"GE","dest":"SZ","count":29},{"year":"2015","origin":"GE","dest":"OW","count":1},{"year":"2015","origin":"GE","dest":"NW","count":3},{"year":"2015","origin":"GE","dest":"GL","count":0},{"year":"2015","origin":"GE","dest":"ZG","count":66},{"year":"2015","origin":"GE","dest":"FR","count":238},{"year":"2015","origin":"GE","dest":"SO","count":10},{"year":"2015","origin":"GE","dest":"BS","count":80},{"year":"2015","origin":"GE","dest":"BL","count":7},{"year":"2015","origin":"GE","dest":"SH","count":5},{"year":"2015","origin":"GE","dest":"AR","count":1},{"year":"2015","origin":"GE","dest":"AI","count":0},{"year":"2015","origin":"GE","dest":"SG","count":29},{"year":"2015","origin":"GE","dest":"GR","count":19},{"year":"2015","origin":"GE","dest":"AG","count":41},{"year":"2015","origin":"GE","dest":"TG","count":6},{"year":"2015","origin":"GE","dest":"TI","count":88},{"year":"2015","origin":"GE","dest":"VD","count":2809},{"year":"2015","origin":"GE","dest":"VS","count":433},{"year":"2015","origin":"GE","dest":"NE","count":172},{"year":"2015","origin":"GE","dest":"GE","count":26862},{"year":"2015","origin":"GE","dest":"JU","count":30},{"year":"2015","origin":"JU","dest":"ZH","count":34},{"year":"2015","origin":"JU","dest":"BE","count":318},{"year":"2015","origin":"JU","dest":"LU","count":7},{"year":"2015","origin":"JU","dest":"UR","count":0},{"year":"2015","origin":"JU","dest":"SZ","count":2},{"year":"2015","origin":"JU","dest":"OW","count":0},{"year":"2015","origin":"JU","dest":"NW","count":0},{"year":"2015","origin":"JU","dest":"GL","count":0},{"year":"2015","origin":"JU","dest":"ZG","count":6},{"year":"2015","origin":"JU","dest":"FR","count":79},{"year":"2015","origin":"JU","dest":"SO","count":30},{"year":"2015","origin":"JU","dest":"BS","count":22},{"year":"2015","origin":"JU","dest":"BL","count":24},{"year":"2015","origin":"JU","dest":"SH","count":2},{"year":"2015","origin":"JU","dest":"AR","count":0},{"year":"2015","origin":"JU","dest":"AI","count":0},{"year":"2015","origin":"JU","dest":"SG","count":4},{"year":"2015","origin":"JU","dest":"GR","count":2},{"year":"2015","origin":"JU","dest":"AG","count":13},{"year":"2015","origin":"JU","dest":"TG","count":1},{"year":"2015","origin":"JU","dest":"TI","count":11},{"year":"2015","origin":"JU","dest":"VD","count":205},{"year":"2015","origin":"JU","dest":"VS","count":89},{"year":"2015","origin":"JU","dest":"NE","count":195},{"year":"2015","origin":"JU","dest":"GE","count":45},{"year":"2015","origin":"JU","dest":"JU","count":2982}]
================================================
FILE: examples/public/data/flows-2016.json
================================================
[{"year":"2016","origin":"ZH","dest":"ZH","count":66855},{"year":"2016","origin":"ZH","dest":"BE","count":1673},{"year":"2016","origin":"ZH","dest":"LU","count":1017},{"year":"2016","origin":"ZH","dest":"UR","count":84},{"year":"2016","origin":"ZH","dest":"SZ","count":1704},{"year":"2016","origin":"ZH","dest":"OW","count":70},{"year":"2016","origin":"ZH","dest":"NW","count":94},{"year":"2016","origin":"ZH","dest":"GL","count":250},{"year":"2016","origin":"ZH","dest":"ZG","count":1246},{"year":"2016","origin":"ZH","dest":"FR","count":173},{"year":"2016","origin":"ZH","dest":"SO","count":547},{"year":"2016","origin":"ZH","dest":"BS","count":540},{"year":"2016","origin":"ZH","dest":"BL","count":409},{"year":"2016","origin":"ZH","dest":"SH","count":996},{"year":"2016","origin":"ZH","dest":"AR","count":167},{"year":"2016","origin":"ZH","dest":"AI","count":50},{"year":"2016","origin":"ZH","dest":"SG","count":2444},{"year":"2016","origin":"ZH","dest":"GR","count":987},{"year":"2016","origin":"ZH","dest":"AG","count":6143},{"year":"2016","origin":"ZH","dest":"TG","count":2475},{"year":"2016","origin":"ZH","dest":"TI","count":445},{"year":"2016","origin":"ZH","dest":"VD","count":511},{"year":"2016","origin":"ZH","dest":"VS","count":179},{"year":"2016","origin":"ZH","dest":"NE","count":58},{"year":"2016","origin":"ZH","dest":"GE","count":226},{"year":"2016","origin":"ZH","dest":"JU","count":27},{"year":"2016","origin":"BE","dest":"ZH","count":2097},{"year":"2016","origin":"BE","dest":"BE","count":52112},{"year":"2016","origin":"BE","dest":"LU","count":815},{"year":"2016","origin":"BE","dest":"UR","count":33},{"year":"2016","origin":"BE","dest":"SZ","count":129},{"year":"2016","origin":"BE","dest":"OW","count":85},{"year":"2016","origin":"BE","dest":"NW","count":40},{"year":"2016","origin":"BE","dest":"GL","count":27},{"year":"2016","origin":"BE","dest":"ZG","count":177},{"year":"2016","origin":"BE","dest":"FR","count":1353},{"year":"2016","origin":"BE","dest":"SO","count":2405},{"year":"2016","origin":"BE","dest":"BS","count":324},{"year":"2016","origin":"BE","dest":"BL","count":347},{"year":"2016","origin":"BE","dest":"SH","count":52},{"year":"2016","origin":"BE","dest":"AR","count":23},{"year":"2016","origin":"BE","dest":"AI","count":7},{"year":"2016","origin":"BE","dest":"SG","count":314},{"year":"2016","origin":"BE","dest":"GR","count":290},{"year":"2016","origin":"BE","dest":"AG","count":1124},{"year":"2016","origin":"BE","dest":"TG","count":198},{"year":"2016","origin":"BE","dest":"TI","count":148},{"year":"2016","origin":"BE","dest":"VD","count":658},{"year":"2016","origin":"BE","dest":"VS","count":422},{"year":"2016","origin":"BE","dest":"NE","count":561},{"year":"2016","origin":"BE","dest":"GE","count":156},{"year":"2016","origin":"BE","dest":"JU","count":447},{"year":"2016","origin":"LU","dest":"ZH","count":1530},{"year":"2016","origin":"LU","dest":"BE","count":899},{"year":"2016","origin":"LU","dest":"LU","count":17371},{"year":"2016","origin":"LU","dest":"UR","count":122},{"year":"2016","origin":"LU","dest":"SZ","count":452},{"year":"2016","origin":"LU","dest":"OW","count":282},{"year":"2016","origin":"LU","dest":"NW","count":506},{"year":"2016","origin":"LU","dest":"GL","count":30},{"year":"2016","origin":"LU","dest":"ZG","count":679},{"year":"2016","origin":"LU","dest":"FR","count":50},{"year":"2016","origin":"LU","dest":"SO","count":331},{"year":"2016","origin":"LU","dest":"BS","count":143},{"year":"2016","origin":"LU","dest":"BL","count":112},{"year":"2016","origin":"LU","dest":"SH","count":41},{"year":"2016","origin":"LU","dest":"AR","count":17},{"year":"2016","origin":"LU","dest":"AI","count":2},{"year":"2016","origin":"LU","dest":"SG","count":204},{"year":"2016","origin":"LU","dest":"GR","count":148},{"year":"2016","origin":"LU","dest":"AG","count":1512},{"year":"2016","origin":"LU","dest":"TG","count":90},{"year":"2016","origin":"LU","dest":"TI","count":88},{"year":"2016","origin":"LU","dest":"VD","count":44},{"year":"2016","origin":"LU","dest":"VS","count":156},{"year":"2016","origin":"LU","dest":"NE","count":7},{"year":"2016","origin":"LU","dest":"GE","count":24},{"year":"2016","origin":"LU","dest":"JU","count":9},{"year":"2016","origin":"UR","dest":"ZH","count":110},{"year":"2016","origin":"UR","dest":"BE","count":40},{"year":"2016","origin":"UR","dest":"LU","count":108},{"year":"2016","origin":"UR","dest":"UR","count":1346},{"year":"2016","origin":"UR","dest":"SZ","count":94},{"year":"2016","origin":"UR","dest":"OW","count":30},{"year":"2016","origin":"UR","dest":"NW","count":29},{"year":"2016","origin":"UR","dest":"GL","count":9},{"year":"2016","origin":"UR","dest":"ZG","count":29},{"year":"2016","origin":"UR","dest":"FR","count":4},{"year":"2016","origin":"UR","dest":"SO","count":11},{"year":"2016","origin":"UR","dest":"BS","count":7},{"year":"2016","origin":"UR","dest":"BL","count":14},{"year":"2016","origin":"UR","dest":"SH","count":1},{"year":"2016","origin":"UR","dest":"AR","count":0},{"year":"2016","origin":"UR","dest":"AI","count":1},{"year":"2016","origin":"UR","dest":"SG","count":26},{"year":"2016","origin":"UR","dest":"GR","count":34},{"year":"2016","origin":"UR","dest":"AG","count":31},{"year":"2016","origin":"UR","dest":"TG","count":10},{"year":"2016","origin":"UR","dest":"TI","count":6},{"year":"2016","origin":"UR","dest":"VD","count":1},{"year":"2016","origin":"UR","dest":"VS","count":16},{"year":"2016","origin":"UR","dest":"NE","count":1},{"year":"2016","origin":"UR","dest":"GE","count":1},{"year":"2016","origin":"UR","dest":"JU","count":0},{"year":"2016","origin":"SZ","dest":"ZH","count":1428},{"year":"2016","origin":"SZ","dest":"BE","count":123},{"year":"2016","origin":"SZ","dest":"LU","count":507},{"year":"2016","origin":"SZ","dest":"UR","count":102},{"year":"2016","origin":"SZ","dest":"SZ","count":4210},{"year":"2016","origin":"SZ","dest":"OW","count":29},{"year":"2016","origin":"SZ","dest":"NW","count":40},{"year":"2016","origin":"SZ","dest":"GL","count":129},{"year":"2016","origin":"SZ","dest":"ZG","count":381},{"year":"2016","origin":"SZ","dest":"FR","count":7},{"year":"2016","origin":"SZ","dest":"SO","count":56},{"year":"2016","origin":"SZ","dest":"BS","count":33},{"year":"2016","origin":"SZ","dest":"BL","count":21},{"year":"2016","origin":"SZ","dest":"SH","count":18},{"year":"2016","origin":"SZ","dest":"AR","count":14},{"year":"2016","origin":"SZ","dest":"AI","count":9},{"year":"2016","origin":"SZ","dest":"SG","count":497},{"year":"2016","origin":"SZ","dest":"GR","count":129},{"year":"2016","origin":"SZ","dest":"AG","count":330},{"year":"2016","origin":"SZ","dest":"TG","count":94},{"year":"2016","origin":"SZ","dest":"TI","count":43},{"year":"2016","origin":"SZ","dest":"VD","count":53},{"year":"2016","origin":"SZ","dest":"VS","count":23},{"year":"2016","origin":"SZ","dest":"NE","count":10},{"year":"2016","origin":"SZ","dest":"GE","count":13},{"year":"2016","origin":"SZ","dest":"JU","count":3},{"year":"2016","origin":"OW","dest":"ZH","count":107},{"year":"2016","origin":"OW","dest":"BE","count":101},{"year":"2016","origin":"OW","dest":"LU","count":344},{"year":"2016","origin":"OW","dest":"UR","count":31},{"year":"2016","origin":"OW","dest":"SZ","count":26},{"year":"2016","origin":"OW","dest":"OW","count":992},{"year":"2016","origin":"OW","dest":"NW","count":163},{"year":"2016","origin":"OW","dest":"GL","count":2},{"year":"2016","origin":"OW","dest":"ZG","count":30},{"year":"2016","origin":"OW","dest":"FR","count":6},{"year":"2016","origin":"OW","dest":"SO","count":19},{"year":"2016","origin":"OW","dest":"BS","count":7},{"year":"2016","origin":"OW","dest":"BL","count":16},{"year":"2016","origin":"OW","dest":"SH","count":1},{"year":"2016","origin":"OW","dest":"AR","count":6},{"year":"2016","origin":"OW","dest":"AI","count":1},{"year":"2016","origin":"OW","dest":"SG","count":11},{"year":"2016","origin":"OW","dest":"GR","count":18},{"year":"2016","origin":"OW","dest":"AG","count":49},{"year":"2016","origin":"OW","dest":"TG","count":5},{"year":"2016","origin":"OW","dest":"TI","count":9},{"year":"2016","origin":"OW","dest":"VD","count":3},{"year":"2016","origin":"OW","dest":"VS","count":4},{"year":"2016","origin":"OW","dest":"NE","count":0},{"year":"2016","origin":"OW","dest":"GE","count":3},{"year":"2016","origin":"OW","dest":"JU","count":0},{"year":"2016","origin":"NW","dest":"ZH","count":132},{"year":"2016","origin":"NW","dest":"BE","count":57},{"year":"2016","origin":"NW","dest":"LU","count":519},{"year":"2016","origin":"NW","dest":"UR","count":58},{"year":"2016","origin":"NW","dest":"SZ","count":45},{"year":"2016","origin":"NW","dest":"OW","count":187},{"year":"2016","origin":"NW","dest":"NW","count":1259},{"year":"2016","origin":"NW","dest":"GL","count":8},{"year":"2016","origin":"NW","dest":"ZG","count":61},{"year":"2016","origin":"NW","dest":"FR","count":10},{"year":"2016","origin":"NW","dest":"SO","count":14},{"year":"2016","origin":"NW","dest":"BS","count":13},{"year":"2016","origin":"NW","dest":"BL","count":10},{"year":"2016","origin":"NW","dest":"SH","count":4},{"year":"2016","origin":"NW","dest":"AR","count":0},{"year":"2016","origin":"NW","dest":"AI","count":0},{"year":"2016","origin":"NW","dest":"SG","count":18},{"year":"2016","origin":"NW","dest":"GR","count":23},{"year":"2016","origin":"NW","dest":"AG","count":70},{"year":"2016","origin":"NW","dest":"TG","count":13},{"year":"2016","origin":"NW","dest":"TI","count":6},{"year":"2016","origin":"NW","dest":"VD","count":7},{"year":"2016","origin":"NW","dest":"VS","count":8},{"year":"2016","origin":"NW","dest":"NE","count":0},{"year":"2016","origin":"NW","dest":"GE","count":1},{"year":"2016","origin":"NW","dest":"JU","count":2},{"year":"2016","origin":"GL","dest":"ZH","count":268},{"year":"2016","origin":"GL","dest":"BE","count":38},{"year":"2016","origin":"GL","dest":"LU","count":25},{"year":"2016","origin":"GL","dest":"UR","count":1},{"year":"2016","origin":"GL","dest":"SZ","count":141},{"year":"2016","origin":"GL","dest":"OW","count":3},{"year":"2016","origin":"GL","dest":"NW","count":1},{"year":"2016","origin":"GL","dest":"GL","count":962},{"year":"2016","origin":"GL","dest":"ZG","count":6},{"year":"2016","origin":"GL","dest":"FR","count":8},{"year":"2016","origin":"GL","dest":"SO","count":29},{"year":"2016","origin":"GL","dest":"BS","count":4},{"year":"2016","origin":"GL","dest":"BL","count":13},{"year":"2016","origin":"GL","dest":"SH","count":9},{"year":"2016","origin":"GL","dest":"AR","count":0},{"year":"2016","origin":"GL","dest":"AI","count":3},{"year":"2016","origin":"GL","dest":"SG","count":301},{"year":"2016","origin":"GL","dest":"GR","count":60},{"year":"2016","origin":"GL","dest":"AG","count":84},{"year":"2016","origin":"GL","dest":"TG","count":30},{"year":"2016","origin":"GL","dest":"TI","count":11},{"year":"2016","origin":"GL","dest":"VD","count":4},{"year":"2016","origin":"GL","dest":"VS","count":8},{"year":"2016","origin":"GL","dest":"NE","count":0},{"year":"2016","origin":"GL","dest":"GE","count":0},{"year":"2016","origin":"GL","dest":"JU","count":0},{"year":"2016","origin":"ZG","dest":"ZH","count":1218},{"year":"2016","origin":"ZG","dest":"BE","count":150},{"year":"2016","origin":"ZG","dest":"LU","count":746},{"year":"2016","origin":"ZG","dest":"UR","count":29},{"year":"2016","origin":"ZG","dest":"SZ","count":392},{"year":"2016","origin":"ZG","dest":"OW","count":31},{"year":"2016","origin":"ZG","dest":"NW","count":23},{"year":"2016","origin":"ZG","dest":"GL","count":10},{"year":"2016","origin":"ZG","dest":"ZG","count":4168},{"year":"2016","origin":"ZG","dest":"FR","count":18},{"year":"2016","origin":"ZG","dest":"SO","count":65},{"year":"2016","origin":"ZG","dest":"BS","count":51},{"year":"2016","origin":"ZG","dest":"BL","count":52},{"year":"2016","origin":"ZG","dest":"SH","count":16},{"year":"2016","origin":"ZG","dest":"AR","count":12},{"year":"2016","origin":"ZG","dest":"AI","count":2},{"year":"2016","origin":"ZG","dest":"SG","count":67},{"year":"2016","origin":"ZG","dest":"GR","count":41},{"year":"2016","origin":"ZG","dest":"AG","count":537},{"year":"2016","origin":"ZG","dest":"TG","count":31},{"year":"2016","origin":"ZG","dest":"TI","count":64},{"year":"2016","origin":"ZG","dest":"VD","count":67},{"year":"2016","origin":"ZG","dest":"VS","count":24},{"year":"2016","origin":"ZG","dest":"NE","count":3},{"year":"2016","origin":"ZG","dest":"GE","count":18},{"year":"2016","origin":"ZG","dest":"JU","count":5},{"year":"2016","origin":"FR","dest":"ZH","count":267},{"year":"2016","origin":"FR","dest":"BE","count":1522},{"year":"2016","origin":"FR","dest":"LU","count":55},{"year":"2016","origin":"FR","dest":"UR","count":1},{"year":"2016","origin":"FR","dest":"SZ","count":11},{"year":"2016","origin":"FR","dest":"OW","count":2},{"year":"2016","origin":"FR","dest":"NW","count":4},{"year":"2016","origin":"FR","dest":"GL","count":1},{"year":"2016","origin":"FR","dest":"ZG","count":30},{"year":"2016","origin":"FR","dest":"FR","count":15341},{"year":"2016","origin":"FR","dest":"SO","count":69},{"year":"2016","origin":"FR","dest":"BS","count":47},{"year":"2016","origin":"FR","dest":"BL","count":18},{"year":"2016","origin":"FR","dest":"SH","count":3},{"year":"2016","origin":"FR","dest":"AR","count":2},{"year":"2016","origin":"FR","dest":"AI","count":0},{"year":"2016","origin":"FR","dest":"SG","count":34},{"year":"2016","origin":"FR","dest":"GR","count":18},{"year":"2016","origin":"FR","dest":"AG","count":101},{"year":"2016","origin":"FR","dest":"TG","count":18},{"year":"2016","origin":"FR","dest":"TI","count":45},{"year":"2016","origin":"FR","dest":"VD","count":2178},{"year":"2016","origin":"FR","dest":"VS","count":391},{"year":"2016","origin":"FR","dest":"NE","count":231},{"year":"2016","origin":"FR","dest":"GE","count":164},{"year":"2016","origin":"FR","dest":"JU","count":52},{"year":"2016","origin":"SO","dest":"ZH","count":636},{"year":"2016","origin":"SO","dest":"BE","count":2197},{"year":"2016","origin":"SO","dest":"LU","count":321},{"year":"2016","origin":"SO","dest":"UR","count":9},{"year":"2016","origin":"SO","dest":"SZ","count":71},{"year":"2016","origin":"SO","dest":"OW","count":15},{"year":"2016","origin":"SO","dest":"NW","count":16},{"year":"2016","origin":"SO","dest":"GL","count":7},{"year":"2016","origin":"SO","dest":"ZG","count":54},{"year":"2016","origin":"SO","dest":"FR","count":78},{"year":"2016","origin":"SO","dest":"SO","count":10309},{"year":"2016","origin":"SO","dest":"BS","count":438},{"year":"2016","origin":"SO","dest":"BL","count":992},{"year":"2016","origin":"SO","dest":"SH","count":24},{"year":"2016","origin":"SO","dest":"AR","count":8},{"year":"2016","origin":"SO","dest":"AI","count":1},{"year":"2016","origin":"SO","dest":"SG","count":77},{"year":"2016","origin":"SO","dest":"GR","count":68},{"year":"2016","origin":"SO","dest":"AG","count":1470},{"year":"2016","origin":"SO","dest":"TG","count":65},{"year":"2016","origin":"SO","dest":"TI","count":35},{"year":"2016","origin":"SO","dest":"VD","count":50},{"year":"2016","origin":"SO","dest":"VS","count":63},{"year":"2016","origin":"SO","dest":"NE","count":17},{"year":"2016","origin":"SO","dest":"GE","count":13},{"year":"2016","origin":"SO","dest":"JU","count":28},{"year":"2016","origin":"BS","dest":"ZH","count":808},{"year":"2016","origin":"BS","dest":"BE","count":416},{"year":"2016","origin":"BS","dest":"LU","count":146},{"year":"2016","origin":"BS","dest":"UR","count":1},{"year":"2016","origin":"BS","dest":"SZ","count":44},{"year":"2016","origin":"BS","dest":"OW","count":10},{"year":"2016","origin":"BS","dest":"NW","count":11},{"year":"2016","origin":"BS","dest":"GL","count":6},{"year":"2016","origin":"BS","dest":"ZG","count":73},{"year":"2016","origin":"BS","dest":"FR","count":44},{"year":"2016","origin":"BS","dest":"SO","count":393},{"year":"2016","origin":"BS","dest":"BS","count":1280},{"year":"2016","origin":"BS","dest":"BL","count":3926},{"year":"2016","origin":"BS","dest":"SH","count":27},{"year":"2016","origin":"BS","dest":"AR","count":11},{"year":"2016","origin":"BS","dest":"AI","count":3},{"year":"2016","origin":"BS","dest":"SG","count":59},{"year":"2016","origin":"BS","dest":"GR","count":72},{"year":"2016","origin":"BS","dest":"AG","count":625},{"year":"2016","origin":"BS","dest":"TG","count":29},{"year":"2016","origin":"BS","dest":"TI","count":66},{"year":"2016","origin":"BS","dest":"VD","count":86},{"year":"2016","origin":"BS","dest":"VS","count":37},{"year":"2016","origin":"BS","dest":"NE","count":39},{"year":"2016","origin":"BS","dest":"GE","count":52},{"year":"2016","origin":"BS","dest":"JU","count":46},{"year":"2016","origin":"BL","dest":"ZH","count":573},{"year":"2016","origin":"BL","dest":"BE","count":443},{"year":"2016","origin":"BL","dest":"LU","count":187},{"year":"2016","origin":"BL","dest":"UR","count":2},{"year":"2016","origin":"BL","dest":"SZ","count":50},{"year":"2016","origin":"BL","dest":"OW","count":20},{"year":"2016","origin":"BL","dest":"NW","count":23},{"year":"2016","origin":"BL","dest":"GL","count":4},{"year":"2016","origin":"BL","dest":"ZG","count":57},{"year":"2016","origin":"BL","dest":"FR","count":31},{"year":"2016","origin":"BL","dest":"SO","count":1200},{"year":"2016","origin":"BL","dest":"BS","count":2447},{"year":"2016","origin":"BL","dest":"BL","count":10269},{"year":"2016","origin":"BL","dest":"SH","count":16},{"year":"2016","origin":"BL","dest":"AR","count":11},{"year":"2016","origin":"BL","dest":"AI","count":1},{"year":"2016","origin":"BL","dest":"SG","count":61},{"year":"2016","origin":"BL","dest":"GR","count":71},{"year":"2016","origin":"BL","dest":"AG","count":1160},{"year":"2016","origin":"BL","dest":"TG","count":42},{"year":"2016","origin":"BL","dest":"TI","count":34},{"year":"2016","origin":"BL","dest":"VD","count":57},{"year":"2016","origin":"BL","dest":"VS","count":39},{"year":"2016","origin":"BL","dest":"NE","count":3},{"year":"2016","origin":"BL","dest":"GE","count":10},{"year":"2016","origin":"BL","dest":"JU","count":62},{"year":"2016","origin":"SH","dest":"ZH","count":970},{"year":"2016","origin":"SH","dest":"BE","count":75},{"year":"2016","origin":"SH","dest":"LU","count":33},{"year":"2016","origin":"SH","dest":"UR","count":2},{"year":"2016","origin":"SH","dest":"SZ","count":26},{"year":"2016","origin":"SH","dest":"OW","count":1},{"year":"2016","origin":"SH","dest":"NW","count":2},{"year":"2016","origin":"SH","dest":"GL","count":6},{"year":"2016","origin":"SH","dest":"ZG","count":18},{"year":"2016","origin":"SH","dest":"FR","count":7},{"year":"2016","origin":"SH","dest":"SO","count":24},{"year":"2016","origin":"SH","dest":"BS","count":24},{"year":"2016","origin":"SH","dest":"BL","count":23},{"year":"2016","origin":"SH","dest":"SH","count":2334},{"year":"2016","origin":"SH","dest":"AR","count":28},{"year":"2016","origin":"SH","dest":"AI","count":1},{"year":"2016","origin":"SH","dest":"SG","count":66},{"year":"2016","origin":"SH","dest":"GR","count":35},{"year":"2016","origin":"SH","dest":"AG","count":103},{"year":"2016","origin":"SH","dest":"TG","count":303},{"year":"2016","origin":"SH","dest":"TI","count":6},{"year":"2016","origin":"SH","dest":"VD","count":10},{"year":"2016","origin":"SH","dest":"VS","count":5},{"year":"2016","origin":"SH","dest":"NE","count":4},{"year":"2016","origin":"SH","dest":"GE","count":7},{"year":"2016","origin":"SH","dest":"JU","count":0},{"year":"2016","origin":"AR","dest":"ZH","count":263},{"year":"2016","origin":"AR","dest":"BE","count":50},{"year":"2016","origin":"AR","dest":"LU","count":31},{"year":"2016","origin":"AR","dest":"UR","count":2},{"year":"2016","origin":"AR","dest":"SZ","count":11},{"year":"2016","origin":"AR","dest":"OW","count":5},{"year":"2016","origin":"AR","dest":"NW","count":3},{"year":"2016","origin":"AR","dest":"GL","count":2},{"year":"2016","origin":"AR","dest":"ZG","count":8},{"year":"2016","origin":"AR","dest":"FR","count":1},{"year":"2016","origin":"AR","dest":"SO","count":9},{"year":"2016","origin":"AR","dest":"BS","count":13},{"year":"2016","origin":"AR","dest":"BL","count":16},{"year":"2016","origin":"AR","dest":"SH","count":10},{"year":"2016","origin":"AR","dest":"AR","count":1005},{"year":"2016","origin":"AR","dest":"AI","count":105},{"year":"2016","origin":"AR","dest":"SG","count":1334},{"year":"2016","origin":"AR","dest":"GR","count":29},{"year":"2016","origin":"AR","dest":"AG","count":49},{"year":"2016","origin":"AR","dest":"TG","count":215},{"year":"2016","origin":"AR","dest":"TI","count":8},{"year":"2016","origin":"AR","dest":"VD","count":11},{"year":"2016","origin":"AR","dest":"VS","count":8},{"year":"2016","origin":"AR","dest":"NE","count":2},{"year":"2016","origin":"AR","dest":"GE","count":3},{"year":"2016","origin":"AR","dest":"JU","count":2},{"year":"2016","origin":"AI","dest":"ZH","count":39},{"year":"2016","origin":"AI","dest":"BE","count":12},{"year":"2016","origin":"AI","dest":"LU","count":10},{"year":"2016","origin":"AI","dest":"UR","count":0},{"year":"2016","origin":"AI","dest":"SZ","count":9},{"year":"2016","origin":"AI","dest":"OW","count":2},{"year":"2016","origin":"AI","dest":"NW","count":3},{"year":"2016","origin":"AI","dest":"GL","count":2},{"year":"2016","origin":"AI","dest":"ZG","count":2},{"year":"2016","origin":"AI","dest":"FR","count":1},{"year":"2016","origin":"AI","dest":"SO","count":1},{"year":"2016","origin":"AI","dest":"BS","count":4},{"year":"2016","origin":"AI","dest":"BL","count":1},{"year":"2016","origin":"AI","dest":"SH","count":2},{"year":"2016","origin":"AI","dest":"AR","count":115},{"year":"2016","origin":"AI","dest":"AI","count":335},{"year":"2016","origin":"AI","dest":"SG","count":164},{"year":"2016","origin":"AI","dest":"GR","count":14},{"year":"2016","origin":"AI","dest":"AG","count":9},{"year":"2016","origin":"AI","dest":"TG","count":32},{"year":"2016","origin":"AI","dest":"TI","count":5},{"year":"2016","origin":"AI","dest":"VD","count":0},{"year":"2016","origin":"AI","dest":"VS","count":2},{"year":"2016","origin":"AI","dest":"NE","count":0},{"year":"2016","origin":"AI","dest":"GE","count":0},{"year":"2016","origin":"AI","dest":"JU","count":0},{"year":"2016","origin":"SG","dest":"ZH","count":3327},{"year":"2016","origin":"SG","dest":"BE","count":443},{"year":"2016","origin":"SG","dest":"LU","count":242},{"year":"2016","origin":"SG","dest":"UR","count":9},{"year":"2016","origin":"SG","dest":"SZ","count":561},{"year":"2016","origin":"SG","dest":"OW","count":19},{"year":"2016","origin":"SG","dest":"NW","count":24},{"year":"2016","origin":"SG","dest":"GL","count":272},{"year":"2016","origin":"SG","dest":"ZG","count":130},{"year":"2016","origin":"SG","dest":"FR","count":47},{"year":"2016","origin":"SG","dest":"SO","count":142},{"year":"2016","origin":"SG","dest":"BS","count":111},{"year":"2016","origin":"SG","dest":"BL","count":96},{"year":"2016","origin":"SG","dest":"SH","count":91},{"year":"2016","origin":"SG","dest":"AR","count":1441},{"year":"2016","origin":"SG","dest":"AI","count":174},{"year":"2016","origin":"SG","dest":"SG","count":17683},{"year":"2016","origin":"SG","dest":"GR","count":775},{"year":"2016","origin":"SG","dest":"AG","count":430},{"year":"2016","origin":"SG","dest":"TG","count":2549},{"year":"2016","origin":"SG","dest":"TI","count":98},{"year":"2016","origin":"SG","dest":"VD","count":72},{"year":"2016","origin":"SG","dest":"VS","count":65},{"year":"2016","origin":"SG","dest":"NE","count":12},{"year":"2016","origin":"SG","dest":"GE","count":32},{"year":"2016","origin":"SG","dest":"JU","count":6},{"year":"2016","origin":"GR","dest":"ZH","count":1375},{"year":"2016","origin":"GR","dest":"BE","count":365},{"year":"2016","origin":"GR","dest":"LU","count":240},{"year":"2016","origin":"GR","dest":"UR","count":24},{"year":"2016","origin":"GR","dest":"SZ","count":115},{"year":"2016","origin":"GR","dest":"OW","count":30},{"year":"2016","origin":"GR","dest":"NW","count":13},{"year":"2016","origin":"GR","dest":"GL","count":47},{"year":"2016","origin":"GR","dest":"ZG","count":41},{"year":"2016","origin":"GR","dest":"FR","count":26},{"year":"2016","origin":"GR","dest":"SO","count":72},{"year":"2016","origin":"GR","dest":"BS","count":84},{"year":"2016","origin":"GR","dest":"BL","count":55},{"year":"2016","origin":"GR","dest":"SH","count":49},{"year":"2016","origin":"GR","dest":"AR","count":49},{"year":"2016","origin":"GR","dest":"AI","count":26},{"year":"2016","origin":"GR","dest":"SG","count":825},{"year":"2016","origin":"GR","dest":"GR","count":7267},{"year":"2016","origin":"GR","dest":"AG","count":277},{"year":"2016","origin":"GR","dest":"TG","count":155},{"year":"2016","origin":"GR","dest":"TI","count":321},{"year":"2016","origin":"GR","dest":"VD","count":31},{"year":"2016","origin":"GR","dest":"VS","count":42},{"year":"2016","origin":"GR","dest":"NE","count":2},{"year":"2016","origin":"GR","dest":"GE","count":12},{"year":"2016","origin":"GR","dest":"JU","count":2},{"year":"2016","origin":"AG","dest":"ZH","count":4546},{"year":"2016","origin":"AG","dest":"BE","count":1160},{"year":"2016","origin":"AG","dest":"LU","count":1372},{"year":"2016","origin":"AG","dest":"UR","count":21},{"year":"2016","origin":"AG","dest":"SZ","count":264},{"year":"2016","origin":"AG","dest":"OW","count":69},{"year":"2016","origin":"AG","dest":"NW","count":69},{"year":"2016","origin":"AG","dest":"GL","count":47},{"year":"2016","origin":"AG","dest":"ZG","count":415},{"year":"2016","origin":"AG","dest":"FR","count":62},{"year":"2016","origin":"AG","dest":"SO","count":1609},{"year":"2016","origin":"AG","dest":"BS","count":613},{"year":"2016","origin":"AG","dest":"BL","count":1021},{"year":"2016","origin":"AG","dest":"SH","count":128},{"year":"2016","origin":"AG","dest":"AR","count":37},{"year":"2016","origin":"AG","dest":"AI","count":6},{"year":"2016","origin":"AG","dest":"SG","count":405},{"year":"2016","origin":"AG","dest":"GR","count":223},{"year":"2016","origin":"AG","dest":"AG","count":31880},{"year":"2016","origin":"AG","dest":"TG","count":274},{"year":"2016","origin":"AG","dest":"TI","count":146},{"year":"2016","origin":"AG","dest":"VD","count":119},{"year":"2016","origin":"AG","dest":"VS","count":94},{"year":"2016","origin":"AG","dest":"NE","count":22},{"year":"2016","origin":"AG","dest":"GE","count":41},{"year":"2016","origin":"AG","dest":"JU","count":19},{"year":"2016","origin":"TG","dest":"ZH","count":2285},{"year":"2016","origin":"TG","dest":"BE","count":278},{"year":"2016","origin":"TG","dest":"LU","count":102},{"year":"2016","origin":"TG","dest":"UR","count":7},{"year":"2016","origin":"TG","dest":"SZ","count":99},{"year":"2016","origin":"TG","dest":"OW","count":3},{"year":"2016","origin":"TG","dest":"NW","count":6},{"year":"2016","origin":"TG","dest":"GL","count":22},{"year":"2016","origin":"TG","dest":"ZG","count":40},{"year":"2016","origin":"TG","dest":"FR","count":26},{"year":"2016","origin":"TG","dest":"SO","count":80},{"year":"2016","origin":"TG","dest":"BS","count":48},{"year":"2016","origin":"TG","dest":"BL","count":51},{"year":"2016","origin":"TG","dest":"SH","count":366},{"year":"2016","origin":"TG","dest":"AR","count":176},{"year":"2016","origin":"TG","dest":"AI","count":22},{"year":"2016","origin":"TG","dest":"SG","count":2061},{"year":"2016","origin":"TG","dest":"GR","count":132},{"year":"2016","origin":"TG","dest":"AG","count":256},{"year":"2016","origin":"TG","dest":"TG","count":9974},{"year":"2016","origin":"TG","dest":"TI","count":19},{"year":"2016","origin":"TG","dest":"VD","count":23},{"year":"2016","origin":"TG","dest":"VS","count":13},{"year":"2016","origin":"TG","dest":"NE","count":6},{"year":"2016","origin":"TG","dest":"GE","count":21},{"year":"2016","origin":"TG","dest":"JU","count":3},{"year":"2016","origin":"TI","dest":"ZH","count":877},{"year":"2016","origin":"TI","dest":"BE","count":230},{"year":"2016","origin":"TI","dest":"LU","count":130},{"year":"2016","origin":"TI","dest":"UR","count":22},{"year":"2016","origin":"TI","dest":"SZ","count":38},{"year":"2016","origin":"TI","dest":"OW","count":6},{"year":"2016","origin":"TI","dest":"NW","count":10},{"year":"2016","origin":"TI","dest":"GL","count":16},{"year":"2016","origin":"TI","dest":"ZG","count":57},{"year":"2016","origin":"TI","dest":"FR","count":84},{"year":"2016","origin":"TI","dest":"SO","count":39},{"year":"2016","origin":"TI","dest":"BS","count":58},{"year":"2016","origin":"TI","dest":"BL","count":56},{"year":"2016","origin":"TI","dest":"SH","count":12},{"year":"2016","origin":"TI","dest":"AR","count":8},{"year":"2016","origin":"TI","dest":"AI","count":4},{"year":"2016","origin":"TI","dest":"SG","count":92},{"year":"2016","origin":"TI","dest":"GR","count":333},{"year":"2016","origin":"TI","dest":"AG","count":174},{"year":"2016","origin":"TI","dest":"TG","count":46},{"year":"2016","origin":"TI","dest":"TI","count":16625},{"year":"2016","origin":"TI","dest":"VD","count":265},{"year":"2016","origin":"TI","dest":"VS","count":88},{"year":"2016","origin":"TI","dest":"NE","count":48},{"year":"2016","origin":"TI","dest":"GE","count":79},{"year":"2016","origin":"TI","dest":"JU","count":5},{"year":"2016","origin":"VD","dest":"ZH","count":820},{"year":"2016","origin":"VD","dest":"BE","count":690},{"year":"2016","origin":"VD","dest":"LU","count":80},{"year":"2016","origin":"VD","dest":"UR","count":5},{"year":"2016","origin":"VD","dest":"SZ","count":55},{"year":"2016","origin":"VD","dest":"OW","count":10},{"year":"2016","origin":"VD","dest":"NW","count":4},{"year":"2016","origin":"VD","dest":"GL","count":4},{"year":"2016","origin":"VD","dest":"ZG","count":112},{"year":"2016","origin":"VD","dest":"FR","count":3221},{"year":"2016","origin":"VD","dest":"SO","count":51},{"year":"2016","origin":"VD","dest":"BS","count":121},{"year":"2016","origin":"VD","dest":"BL","count":71},{"year":"2016","origin":"VD","dest":"SH","count":13},{"year":"2016","origin":"VD","dest":"AR","count":6},{"year":"2016","origin":"VD","dest":"AI","count":1},{"year":"2016","origin":"VD","dest":"SG","count":70},{"year":"2016","origin":"VD","dest":"GR","count":44},{"year":"2016","origin":"VD","dest":"AG","count":98},{"year":"2016","origin":"VD","dest":"TG","count":17},{"year":"2016","origin":"VD","dest":"TI","count":178},{"year":"2016","origin":"VD","dest":"VD","count":47540},{"year":"2016","origin":"VD","dest":"VS","count":2391},{"year":"2016","origin":"VD","dest":"NE","count":867},{"year":"2016","origin":"VD","dest":"GE","count":1656},{"year":"2016","origin":"VD","dest":"JU","count":151},{"year":"2016","origin":"VS","dest":"ZH","count":319},{"year":"2016","origin":"VS","dest":"BE","count":584},{"year":"2016","origin":"VS","dest":"LU","count":136},{"year":"2016","origin":"VS","dest":"UR","count":5},{"year":"2016","origin":"VS","dest":"SZ","count":38},{"year":"2016","origin":"VS","dest":"OW","count":22},{"year":"2016","origin":"VS","dest":"NW","count":18},{"year":"2016","origin":"VS","dest":"GL","count":9},{"year":"2016","origin":"VS","dest":"ZG","count":33},{"year":"2016","origin":"VS","dest":"FR","count":399},{"year":"2016","origin":"VS","dest":"SO","count":80},{"year":"2016","origin":"VS","dest":"BS","count":55},{"year":"2016","origin":"VS","dest":"BL","count":31},{"year":"2016","origin":"VS","dest":"SH","count":7},{"year":"2016","origin":"VS","dest":"AR","count":9},{"year":"2016","origin":"VS","dest":"AI","count":2},{"year":"2016","origin":"VS","dest":"SG","count":48},{"year":"2016","origin":"VS","dest":"GR","count":49},{"year":"2016","origin":"VS","dest":"AG","count":114},{"year":"2016","origin":"VS","dest":"TG","count":32},{"year":"2016","origin":"VS","dest":"TI","count":66},{"year":"2016","origin":"VS","dest":"VD","count":1652},{"year":"2016","origin":"VS","dest":"VS","count":14977},{"year":"2016","origin":"VS","dest":"NE","count":153},{"year":"2016","origin":"VS","dest":"GE","count":282},{"year":"2016","origin":"VS","dest":"JU","count":60},{"year":"2016","origin":"NE","dest":"ZH","count":115},{"year":"2016","origin":"NE","dest":"BE","count":889},{"year":"2016","origin":"NE","dest":"LU","count":16},{"year":"2016","origin":"NE","dest":"UR","count":2},{"year":"2016","origin":"NE","dest":"SZ","count":4},{"year":"2016","origin":"NE","dest":"OW","count":0},{"year":"2016","origin":"NE","dest":"NW","count":0},{"year":"2016","origin":"NE","dest":"GL","count":1},{"year":"2016","origin":"NE","dest":"ZG","count":11},{"year":"2016","origin":"NE","dest":"FR","count":461},{"year":"2016","origin":"NE","dest":"SO","count":34},{"year":"2016","origin":"NE","dest":"BS","count":30},{"year":"2016","origin":"NE","dest":"BL","count":9},{"year":"2016","origin":"NE","dest":"SH","count":0},{"year":"2016","origin":"NE","dest":"AR","count":2},{"year":"2016","origin":"NE","dest":"AI","count":0},{"year":"2016","origin":"NE","dest":"SG","count":10},{"year":"2016","origin":"NE","dest":"GR","count":3},{"year":"2016","origin":"NE","dest":"AG","count":20},{"year":"2016","origin":"NE","dest":"TG","count":1},{"year":"2016","origin":"NE","dest":"TI","count":48},{"year":"2016","origin":"NE","dest":"VD","count":1087},{"year":"2016","origin":"NE","dest":"VS","count":203},{"year":"2016","origin":"NE","dest":"NE","count":7237},{"year":"2016","origin":"NE","dest":"GE","count":148},{"year":"2016","origin":"NE","dest":"JU","count":202},{"year":"2016","origin":"GE","dest":"ZH","count":481},{"year":"2016","origin":"GE","dest":"BE","count":190},{"year":"2016","origin":"GE","dest":"LU","count":23},{"year":"2016","origin":"GE","dest":"UR","count":0},{"year":"2016","origin":"GE","dest":"SZ","count":44},{"year":"2016","origin":"GE","dest":"OW","count":2},{"year":"2016","origin":"GE","dest":"NW","count":3},{"year":"2016","origin":"GE","dest":"GL","count":1},{"year":"2016","origin":"GE","dest":"ZG","count":79},{"year":"2016","origin":"GE","dest":"FR","count":242},{"year":"2016","origin":"GE","dest":"SO","count":19},{"year":"2016","origin":"GE","dest":"BS","count":59},{"year":"2016","origin":"GE","dest":"BL","count":19},{"year":"2016","origin":"GE","dest":"SH","count":5},{"year":"2016","origin":"GE","dest":"AR","count":1},{"year":"2016","origin":"GE","dest":"AI","count":0},{"year":"2016","origin":"GE","dest":"SG","count":26},{"year":"2016","origin":"GE","dest":"GR","count":10},{"year":"2016","origin":"GE","dest":"AG","count":32},{"year":"2016","origin":"GE","dest":"TG","count":6},{"year":"2016","origin":"GE","dest":"TI","count":81},{"year":"2016","origin":"GE","dest":"VD","count":2619},{"year":"2016","origin":"GE","dest":"VS","count":511},{"year":"2016","origin":"GE","dest":"NE","count":177},{"year":"2016","origin":"GE","dest":"GE","count":29941},{"year":"2016","origin":"GE","dest":"JU","count":45},{"year":"2016","origin":"JU","dest":"ZH","count":38},{"year":"2016","origin":"JU","dest":"BE","count":353},{"year":"2016","origin":"JU","dest":"LU","count":3},{"year":"2016","origin":"JU","dest":"UR","count":0},{"year":"2016","origin":"JU","dest":"SZ","count":0},{"year":"2016","origin":"JU","dest":"OW","count":1},{"year":"2016","origin":"JU","dest":"NW","count":0},{"year":"2016","origin":"JU","dest":"GL","count":0},{"year":"2016","origin":"JU","dest":"ZG","count":1},{"year":"2016","origin":"JU","dest":"FR","count":90},{"year":"2016","origin":"JU","dest":"SO","count":22},{"year":"2016","origin":"JU","dest":"BS","count":38},{"year":"2016","origin":"JU","dest":"BL","count":58},{"year":"2016","origin":"JU","dest":"SH","count":2},{"year":"2016","origin":"JU","dest":"AR","count":1},{"year":"2016","origin":"JU","dest":"AI","count":0},{"year":"2016","origin":"JU","dest":"SG","count":5},{"year":"2016","origin":"JU","dest":"GR","count":0},{"year":"2016","origin":"JU","dest":"AG","count":19},{"year":"2016","origin":"JU","dest":"TG","count":5},{"year":"2016","origin":"JU","dest":"TI","count":3},{"year":"2016","origin":"JU","dest":"VD","count":217},{"year":"2016","origin":"JU","dest":"VS","count":61},{"year":"2016","origin":"JU","dest":"NE","count":181},{"year":"2016","origin":"JU","dest":"GE","count":42},{"year":"2016","origin":"JU","dest":"JU","count":3112}]
================================================
FILE: examples/public/data/flows-diff-2015-2016.json
================================================
[{"origin":"ZH","dest":"ZH","count":-3095},{"origin":"ZH","dest":"BE","count":12},{"origin":"ZH","dest":"LU","count":87},{"origin":"ZH","dest":"UR","count":-29},{"origin":"ZH","dest":"SZ","count":117},{"origin":"ZH","dest":"OW","count":23},{"origin":"ZH","dest":"NW","count":-5},{"origin":"ZH","dest":"GL","count":36},{"origin":"ZH","dest":"ZG","count":10},{"origin":"ZH","dest":"FR","count":-13},{"origin":"ZH","dest":"SO","count":35},{"origin":"ZH","dest":"BS","count":-37},{"origin":"ZH","dest":"BL","count":-11},{"origin":"ZH","dest":"SH","count":23},{"origin":"ZH","dest":"AR","count":-21},{"origin":"ZH","dest":"AI","count":-5},{"origin":"ZH","dest":"SG","count":48},{"origin":"ZH","dest":"GR","count":-111},{"origin":"ZH","dest":"AG","count":-102},{"origin":"ZH","dest":"TG","count":188},{"origin":"ZH","dest":"TI","count":-30},{"origin":"ZH","dest":"VD","count":-65},{"origin":"ZH","dest":"VS","count":32},{"origin":"ZH","dest":"NE","count":6},{"origin":"ZH","dest":"GE","count":-28},{"origin":"ZH","dest":"JU","count":-13},{"origin":"BE","dest":"ZH","count":89},{"origin":"BE","dest":"BE","count":-1782},{"origin":"BE","dest":"LU","count":70},{"origin":"BE","dest":"UR","count":-1},{"origin":"BE","dest":"SZ","count":46},{"origin":"BE","dest":"OW","count":-26},{"origin":"BE","dest":"NW","count":36},{"origin":"BE","dest":"GL","count":2},{"origin":"BE","dest":"ZG","count":-12},{"origin":"BE","dest":"FR","count":38},{"origin":"BE","dest":"SO","count":-106},{"origin":"BE","dest":"BS","count":4},{"origin":"BE","dest":"BL","count":6},{"origin":"BE","dest":"SH","count":12},{"origin":"BE","dest":"AR","count":34},{"origin":"BE","dest":"AI","count":2},{"origin":"BE","dest":"SG","count":35},{"origin":"BE","dest":"GR","count":-6},{"origin":"BE","dest":"AG","count":-54},{"origin":"BE","dest":"TG","count":-15},{"origin":"BE","dest":"TI","count":-21},{"origin":"BE","dest":"VD","count":-12},{"origin":"BE","dest":"VS","count":73},{"origin":"BE","dest":"NE","count":-3},{"origin":"BE","dest":"GE","count":-19},{"origin":"BE","dest":"JU","count":-120},{"origin":"LU","dest":"ZH","count":-20},{"origin":"LU","dest":"BE","count":29},{"origin":"LU","dest":"LU","count":-1053},{"origin":"LU","dest":"UR","count":-28},{"origin":"LU","dest":"SZ","count":70},{"origin":"LU","dest":"OW","count":32},{"origin":"LU","dest":"NW","count":51},{"origin":"LU","dest":"GL","count":-11},{"origin":"LU","dest":"ZG","count":54},{"origin":"LU","dest":"FR","count":-12},{"origin":"LU","dest":"SO","count":-32},{"origin":"LU","dest":"BS","count":-10},{"origin":"LU","dest":"BL","count":20},{"origin":"LU","dest":"SH","count":-9},{"origin":"LU","dest":"AR","count":3},{"origin":"LU","dest":"AI","count":-1},{"origin":"LU","dest":"SG","count":-23},{"origin":"LU","dest":"GR","count":16},{"origin":"LU","dest":"AG","count":-119},{"origin":"LU","dest":"TG","count":-10},{"origin":"LU","dest":"TI","count":-14},{"origin":"LU","dest":"VD","count":8},{"origin":"LU","dest":"VS","count":37},{"origin":"LU","dest":"NE","count":2},{"origin":"LU","dest":"GE","count":-8},{"origin":"LU","dest":"JU","count":-3},{"origin":"UR","dest":"ZH","count":-4},{"origin":"UR","dest":"BE","count":-10},{"origin":"UR","dest":"LU","count":41},{"origin":"UR","dest":"UR","count":-219},{"origin":"UR","dest":"SZ","count":-9},{"origin":"UR","dest":"OW","count":-11},{"origin":"UR","dest":"NW","count":7},{"origin":"UR","dest":"GL","count":-3},{"origin":"UR","dest":"ZG","count":5},{"origin":"UR","dest":"FR","count":-2},{"origin":"UR","dest":"SO","count":13},{"origin":"UR","dest":"BS","count":-1},{"origin":"UR","dest":"BL","count":-10},{"origin":"UR","dest":"SH","count":2},{"origin":"UR","dest":"AR","count":2},{"origin":"UR","dest":"AI","count":-1},{"origin":"UR","dest":"SG","count":-11},{"origin":"UR","dest":"GR","count":7},{"origin":"UR","dest":"AG","count":5},{"origin":"UR","dest":"TI","count":-2},{"origin":"UR","dest":"VD","count":-1},{"origin":"UR","dest":"VS","count":-4},{"origin":"UR","dest":"NE","count":1},{"origin":"UR","dest":"GE","count":1},{"origin":"SZ","dest":"ZH","count":112},{"origin":"SZ","dest":"BE","count":34},{"origin":"SZ","dest":"LU","count":14},{"origin":"SZ","dest":"UR","count":-22},{"origin":"SZ","dest":"SZ","count":116},{"origin":"SZ","dest":"OW","count":18},{"origin":"SZ","dest":"NW","count":13},{"origin":"SZ","dest":"GL","count":29},{"origin":"SZ","dest":"ZG","count":15},{"origin":"SZ","dest":"FR","count":6},{"origin":"SZ","dest":"SO","count":-10},{"origin":"SZ","dest":"BS","count":12},{"origin":"SZ","dest":"BL","count":12},{"origin":"SZ","dest":"SH","count":-4},{"origin":"SZ","dest":"AR","count":1},{"origin":"SZ","dest":"AI","count":-4},{"origin":"SZ","dest":"SG","count":29},{"origin":"SZ","dest":"GR","count":-12},{"origin":"SZ","dest":"AG","count":-37},{"origin":"SZ","dest":"TG","count":-7},{"origin":"SZ","dest":"TI","count":4},{"origin":"SZ","dest":"VD","count":-9},{"origin":"SZ","dest":"VS","count":9},{"origin":"SZ","dest":"NE","count":-6},{"origin":"SZ","dest":"GE","count":7},{"origin":"SZ","dest":"JU","count":2},{"origin":"OW","dest":"ZH","count":-8},{"origin":"OW","dest":"BE","count":-15},{"origin":"OW","dest":"LU","count":48},{"origin":"OW","dest":"UR","count":-11},{"origin":"OW","dest":"SZ","count":4},{"origin":"OW","dest":"OW","count":-93},{"origin":"OW","dest":"NW","count":15},{"origin":"OW","dest":"GL","count":-1},{"origin":"OW","dest":"ZG","count":-12},{"origin":"OW","dest":"FR","count":2},{"origin":"OW","dest":"SO","count":-3},{"origin":"OW","dest":"BS","count":1},{"origin":"OW","dest":"BL","count":1},{"origin":"OW","dest":"AR","count":1},{"origin":"OW","dest":"SG","count":6},{"origin":"OW","dest":"GR","count":5},{"origin":"OW","dest":"AG","count":6},{"origin":"OW","dest":"TG","count":16},{"origin":"OW","dest":"TI","count":-2},{"origin":"OW","dest":"VD","count":5},{"origin":"OW","dest":"VS","count":6},{"origin":"OW","dest":"GE","count":-2},{"origin":"OW","dest":"JU","count":3},{"origin":"NW","dest":"ZH","count":-14},{"origin":"NW","dest":"LU","count":23},{"origin":"NW","dest":"UR","count":-14},{"origin":"NW","dest":"SZ","count":-3},{"origin":"NW","dest":"OW","count":20},{"origin":"NW","dest":"NW","count":25},{"origin":"NW","dest":"GL","count":-8},{"origin":"NW","dest":"ZG","count":-14},{"origin":"NW","dest":"FR","count":-6},{"origin":"NW","dest":"SO","count":3},{"origin":"NW","dest":"BS","count":-5},{"origin":"NW","dest":"BL","count":-1},{"origin":"NW","dest":"SH","count":-3},{"origin":"NW","dest":"AR","count":2},{"origin":"NW","dest":"SG","count":-1},{"origin":"NW","dest":"GR","count":-1},{"origin":"NW","dest":"AG","count":-10},{"origin":"NW","dest":"TG","count":-7},{"origin":"NW","dest":"VD","count":-1},{"origin":"NW","dest":"VS","count":4},{"origin":"NW","dest":"NE","count":1},{"origin":"NW","dest":"GE","count":3},{"origin":"NW","dest":"JU","count":-1},{"origin":"GL","dest":"ZH","count":12},{"origin":"GL","dest":"BE","count":6},{"origin":"GL","dest":"LU","count":12},{"origin":"GL","dest":"UR","count":3},{"origin":"GL","dest":"SZ","count":-19},{"origin":"GL","dest":"OW","count":5},{"origin":"GL","dest":"NW","count":-1},{"origin":"GL","dest":"GL","count":-45},{"origin":"GL","dest":"ZG","count":14},{"origin":"GL","dest":"FR","count":1},{"origin":"GL","dest":"SO","count":-10},{"origin":"GL","dest":"BL","count":-1},{"origin":"GL","dest":"SH","count":-1},{"origin":"GL","dest":"AR","count":10},{"origin":"GL","dest":"AI","count":-2},{"origin":"GL","dest":"SG","count":2},{"origin":"GL","dest":"GR","count":4},{"origin":"GL","dest":"AG","count":-31},{"origin":"GL","dest":"TG","count":-6},{"origin":"GL","dest":"TI","count":-1},{"origin":"GL","dest":"VD","count":-1},{"origin":"GL","dest":"VS","count":8},{"origin":"GL","dest":"NE","count":2},{"origin":"GL","dest":"GE","count":1},{"origin":"GL","dest":"JU","count":5},{"origin":"ZG","dest":"ZH","count":-143},{"origin":"ZG","dest":"BE","count":13},{"origin":"ZG","dest":"LU","count":15},{"origin":"ZG","dest":"UR","count":-3},{"origin":"ZG","dest":"SZ","count":-9},{"origin":"ZG","dest":"OW","count":-1},{"origin":"ZG","dest":"NW","count":18},{"origin":"ZG","dest":"GL","count":-5},{"origin":"ZG","dest":"ZG","count":-8},{"origin":"ZG","dest":"FR","count":-6},{"origin":"ZG","dest":"SO","count":-14},{"origin":"ZG","dest":"BS","count":-20},{"origin":"ZG","dest":"BL","count":-6},{"origin":"ZG","dest":"SH","count":5},{"origin":"ZG","dest":"AR","count":6},{"origin":"ZG","dest":"AI","count":2},{"origin":"ZG","dest":"SG","count":6},{"origin":"ZG","dest":"AG","count":-65},{"origin":"ZG","dest":"TG","count":16},{"origin":"ZG","dest":"TI","count":-29},{"origin":"ZG","dest":"VD","count":-4},{"origin":"ZG","dest":"VS","count":4},{"origin":"ZG","dest":"NE","count":7},{"origin":"ZG","dest":"GE","count":2},{"origin":"ZG","dest":"JU","count":-4},{"origin":"FR","dest":"ZH","count":66},{"origin":"FR","dest":"BE","count":-5},{"origin":"FR","dest":"LU","count":26},{"origin":"FR","dest":"UR","count":2},{"origin":"FR","dest":"SZ","count":7},{"origin":"FR","dest":"OW","count":-1},{"origin":"FR","dest":"NW","count":3},{"origin":"FR","dest":"GL","count":1},{"origin":"FR","dest":"ZG","count":1},{"origin":"FR","dest":"FR","count":-583},{"origin":"FR","dest":"SO","count":36},{"origin":"FR","dest":"BS","count":20},{"origin":"FR","dest":"BL","count":28},{"origin":"FR","dest":"SH","count":4},{"origin":"FR","dest":"AR","count":2},{"origin":"FR","dest":"SG","count":5},{"origin":"FR","dest":"AG","count":-2},{"origin":"FR","dest":"TI","count":2},{"origin":"FR","dest":"VD","count":-13},{"origin":"FR","dest":"VS","count":-40},{"origin":"FR","dest":"NE","count":-2},{"origin":"FR","dest":"GE","count":30},{"origin":"FR","dest":"JU","count":2},{"origin":"SO","dest":"ZH","count":-4},{"origin":"SO","dest":"BE","count":10},{"origin":"SO","dest":"LU","count":44},{"origin":"SO","dest":"UR","count":-7},{"origin":"SO","dest":"SZ","count":-13},{"origin":"SO","dest":"OW","count":2},{"origin":"SO","dest":"NW","count":10},{"origin":"SO","dest":"GL","count":-2},{"origin":"SO","dest":"FR","count":-8},{"origin":"SO","dest":"SO","count":-43},{"origin":"SO","dest":"BS","count":-57},{"origin":"SO","dest":"BL","count":-4},{"origin":"SO","dest":"SH","count":-12},{"origin":"SO","dest":"AR","count":14},{"origin":"SO","dest":"AI","count":-1},{"origin":"SO","dest":"SG","count":10},{"origin":"SO","dest":"GR","count":-16},{"origin":"SO","dest":"AG","count":-34},{"origin":"SO","dest":"TG","count":20},{"origin":"SO","dest":"TI","count":21},{"origin":"SO","dest":"VD","count":-11},{"origin":"SO","dest":"VS","count":6},{"origin":"SO","dest":"NE","count":-1},{"origin":"SO","dest":"GE","count":-4},{"origin":"SO","dest":"JU","count":-9},{"origin":"BS","dest":"ZH","count":-122},{"origin":"BS","dest":"BE","count":31},{"origin":"BS","dest":"LU","count":-18},{"origin":"BS","dest":"UR","count":6},{"origin":"BS","dest":"SZ","count":-10},{"origin":"BS","dest":"OW","count":-2},{"origin":"BS","dest":"NW","count":8},{"origin":"BS","dest":"GL","count":-1},{"origin":"BS","dest":"ZG","count":-12},{"origin":"BS","dest":"FR","count":-9},{"origin":"BS","dest":"SO","count":83},{"origin":"BS","dest":"BS","count":-13},{"origin":"BS","dest":"BL","count":-327},{"origin":"BS","dest":"SH","count":-2},{"origin":"BS","dest":"AR","count":1},{"origin":"BS","dest":"SG","count":24},{"origin":"BS","dest":"GR","count":-5},{"origin":"BS","dest":"AG","count":-9},{"origin":"BS","dest":"TG","count":4},{"origin":"BS","dest":"TI","count":-15},{"origin":"BS","dest":"VD","count":13},{"origin":"BS","dest":"VS","count":-2},{"origin":"BS","dest":"NE","count":-8},{"origin":"BS","dest":"GE","count":9},{"origin":"BS","dest":"JU","count":-8},{"origin":"BL","dest":"ZH","count":-75},{"origin":"BL","dest":"BE","count":-7},{"origin":"BL","dest":"LU","count":-37},{"origin":"BL","dest":"UR","count":5},{"origin":"BL","dest":"SZ","count":-3},{"origin":"BL","dest":"OW","count":-6},{"origin":"BL","dest":"NW","count":-13},{"origin":"BL","dest":"GL","count":5},{"origin":"BL","dest":"ZG","count":3},{"origin":"BL","dest":"FR","count":-4},{"origin":"BL","dest":"SO","count":-42},{"origin":"BL","dest":"BS","count":80},{"origin":"BL","dest":"BL","count":-316},{"origin":"BL","dest":"SH","count":6},{"origin":"BL","dest":"AR","count":-6},{"origin":"BL","dest":"AI","count":3},{"origin":"BL","dest":"SG","count":11},{"origin":"BL","dest":"GR","count":-6},{"origin":"BL","dest":"AG","count":12},{"origin":"BL","dest":"TG","count":2},{"origin":"BL","dest":"TI","count":11},{"origin":"BL","dest":"VD","count":-10},{"origin":"BL","dest":"VS","count":-10},{"origin":"BL","dest":"NE","count":8},{"origin":"BL","dest":"GE","count":1},{"origin":"BL","dest":"JU","count":-16},{"origin":"SH","dest":"ZH","count":30},{"origin":"SH","dest":"BE","count":-17},{"origin":"SH","dest":"LU","count":3},{"origin":"SH","dest":"SZ","count":-14},{"origin":"SH","dest":"OW","count":2},{"origin":"SH","dest":"NW","count":1},{"origin":"SH","dest":"GL","count":4},{"origin":"SH","dest":"FR","count":-1},{"origin":"SH","dest":"SO","count":-6},{"origin":"SH","dest":"BS","count":2},{"origin":"SH","dest":"BL","count":-4},{"origin":"SH","dest":"SH","count":-48},{"origin":"SH","dest":"AR","count":-18},{"origin":"SH","dest":"AI","count":3},{"origin":"SH","dest":"SG","count":56},{"origin":"SH","dest":"GR","count":6},{"origin":"SH","dest":"AG","count":-1},{"origin":"SH","dest":"TG","count":32},{"origin":"SH","dest":"TI","count":5},{"origin":"SH","dest":"VD","count":5},{"origin":"SH","dest":"VS","count":3},{"origin":"SH","dest":"NE","count":-3},{"origin":"SH","dest":"GE","count":-1},{"origin":"SH","dest":"JU","count":3},{"origin":"AR","dest":"ZH","count":-54},{"origin":"AR","dest":"BE","count":8},{"origin":"AR","dest":"LU","count":-10},{"origin":"AR","dest":"UR","count":-2},{"origin":"AR","dest":"SZ","count":1},{"origin":"AR","dest":"OW","count":-5},{"origin":"AR","dest":"NW","count":-1},{"origin":"AR","dest":"GL","count":8},{"origin":"AR","dest":"ZG","count":-2},{"origin":"AR","dest":"FR","count":5},{"origin":"AR","dest":"SO","count":-2},{"origin":"AR","dest":"BS","count":-2},{"origin":"AR","dest":"BL","count":-3},{"origin":"AR","dest":"SH","count":-4},{"origin":"AR","dest":"AR","count":-57},{"origin":"AR","dest":"AI","count":33},{"origin":"AR","dest":"SG","count":-103},{"origin":"AR","dest":"GR","count":10},{"origin":"AR","dest":"AG","count":11},{"origin":"AR","dest":"TG","count":-5},{"origin":"AR","dest":"TI","count":8},{"origin":"AR","dest":"VD","count":-4},{"origin":"AR","dest":"NE","count":-2},{"origin":"AR","dest":"JU","count":-1},{"origin":"AI","dest":"ZH","count":11},{"origin":"AI","dest":"LU","count":-4},{"origin":"AI","dest":"UR","count":1},{"origin":"AI","dest":"SZ","count":-9},{"origin":"AI","dest":"NW","count":-3},{"origin":"AI","dest":"GL","count":-1},{"origin":"AI","dest":"FR","count":-1},{"origin":"AI","dest":"SO","count":-1},{"origin":"AI","dest":"BS","count":-4},{"origin":"AI","dest":"BL","count":4},{"origin":"AI","dest":"SH","count":-1},{"origin":"AI","dest":"AR","count":-2},{"origin":"AI","dest":"AI","count":23},{"origin":"AI","dest":"SG","count":2},{"origin":"AI","dest":"GR","count":-6},{"origin":"AI","dest":"AG","count":2},{"origin":"AI","dest":"TG","count":-7},{"origin":"AI","dest":"TI","count":-2},{"origin":"AI","dest":"VD","count":2},{"origin":"AI","dest":"VS","count":3},{"origin":"AI","dest":"NE","count":2},{"origin":"SG","dest":"ZH","count":-101},{"origin":"SG","dest":"BE","count":-17},{"origin":"SG","dest":"LU","count":42},{"origin":"SG","dest":"UR","count":21},{"origin":"SG","dest":"SZ","count":-63},{"origin":"SG","dest":"OW","count":-3},{"origin":"SG","dest":"NW","count":-1},{"origin":"SG","dest":"GL","count":-16},{"origin":"SG","dest":"ZG","count":-13},{"origin":"SG","dest":"FR","count":-8},{"origin":"SG","dest":"SO","count":-10},{"origin":"SG","dest":"BS","count":2},{"origin":"SG","dest":"BL","count":8},{"origin":"SG","dest":"SH","count":-10},{"origin":"SG","dest":"AR","count":-20},{"origin":"SG","dest":"AI","count":-18},{"origin":"SG","dest":"SG","count":-694},{"origin":"SG","dest":"GR","count":-34},{"origin":"SG","dest":"AG","count":35},{"origin":"SG","dest":"TG","count":25},{"origin":"SG","dest":"TI","count":-11},{"origin":"SG","dest":"VD","count":-2},{"origin":"SG","dest":"NE","count":2},{"origin":"SG","dest":"GE","count":-2},{"origin":"SG","dest":"JU","count":4},{"origin":"GR","dest":"ZH","count":-20},{"origin":"GR","dest":"BE","count":58},{"origin":"GR","dest":"LU","count":-13},{"origin":"GR","dest":"UR","count":7},{"origin":"GR","dest":"SZ","count":-6},{"origin":"GR","dest":"OW","count":-6},{"origin":"GR","dest":"NW","count":19},{"origin":"GR","dest":"GL","count":5},{"origin":"GR","dest":"ZG","count":28},{"origin":"GR","dest":"FR","count":7},{"origin":"GR","dest":"SO","count":-6},{"origin":"GR","dest":"BS","count":-26},{"origin":"GR","dest":"BL","count":15},{"origin":"GR","dest":"SH","count":-24},{"origin":"GR","dest":"AR","count":-13},{"origin":"GR","dest":"AI","count":-10},{"origin":"GR","dest":"SG","count":-37},{"origin":"GR","dest":"GR","count":-13},{"origin":"GR","dest":"AG","count":-43},{"origin":"GR","dest":"TG","count":-16},{"origin":"GR","dest":"TI","count":-22},{"origin":"GR","dest":"VD","count":7},{"origin":"GR","dest":"VS","count":2},{"origin":"GR","dest":"NE","count":1},{"origin":"GR","dest":"GE","count":8},{"origin":"GR","dest":"JU","count":-1},{"origin":"AG","dest":"ZH","count":165},{"origin":"AG","dest":"BE","count":44},{"origin":"AG","dest":"LU","count":107},{"origin":"AG","dest":"UR","count":-5},{"origin":"AG","dest":"SZ","count":17},{"origin":"AG","dest":"OW","count":-5},{"origin":"AG","dest":"NW","count":-15},{"origin":"AG","dest":"GL","count":-4},{"origin":"AG","dest":"ZG","count":6},{"origin":"AG","dest":"FR","count":11},{"origin":"AG","dest":"SO","count":5},{"origin":"AG","dest":"BS","count":-86},{"origin":"AG","dest":"BL","count":20},{"origin":"AG","dest":"SH","count":-14},{"origin":"AG","dest":"AR","count":3},{"origin":"AG","dest":"AI","count":4},{"origin":"AG","dest":"SG","count":-60},{"origin":"AG","dest":"GR","count":8},{"origin":"AG","dest":"AG","count":-1392},{"origin":"AG","dest":"TG","count":7},{"origin":"AG","dest":"TI","count":-53},{"origin":"AG","dest":"VD","count":-4},{"origin":"AG","dest":"VS","count":-15},{"origin":"AG","dest":"NE","count":5},{"origin":"AG","dest":"GE","count":-12},{"origin":"AG","dest":"JU","count":1},{"origin":"TG","dest":"ZH","count":-184},{"origin":"TG","dest":"BE","count":-68},{"origin":"TG","dest":"LU","count":11},{"origin":"TG","dest":"UR","count":5},{"origin":"TG","dest":"SZ","count":-21},{"origin":"TG","dest":"OW","count":7},{"origin":"TG","dest":"GL","count":-8},{"origin":"TG","dest":"ZG","count":17},{"origin":"TG","dest":"FR","count":25},{"origin":"TG","dest":"SO","count":18},{"origin":"TG","dest":"BS","count":15},{"origin":"TG","dest":"BL","count":16},{"origin":"TG","dest":"SH","count":-87},{"origin":"TG","dest":"AR","count":12},{"origin":"TG","dest":"AI","count":10},{"origin":"TG","dest":"SG","count":85},{"origin":"TG","dest":"GR","count":1},{"origin":"TG","dest":"AG","count":8},{"origin":"TG","dest":"TG","count":182},{"origin":"TG","dest":"TI","count":19},{"origin":"TG","dest":"VD","count":1},{"origin":"TG","dest":"VS","count":10},{"origin":"TG","dest":"NE","count":2},{"origin":"TG","dest":"GE","count":-15},{"origin":"TG","dest":"JU","count":-1},{"origin":"TI","dest":"ZH","count":-83},{"origin":"TI","dest":"BE","count":-10},{"origin":"TI","dest":"LU","count":-11},{"origin":"TI","dest":"UR","count":-4},{"origin":"TI","dest":"SZ","count":17},{"origin":"TI","dest":"OW","count":-4},{"origin":"TI","dest":"NW","count":-3},{"origin":"TI","dest":"GL","count":-4},{"origin":"TI","dest":"ZG","count":2},{"origin":"TI","dest":"FR","count":15},{"origin":"TI","dest":"SO","count":12},{"origin":"TI","dest":"BS","count":3},{"origin":"TI","dest":"BL","count":-19},{"origin":"TI","dest":"SH","count":4},{"origin":"TI","dest":"AR","count":-3},{"origin":"TI","dest":"AI","count":1},{"origin":"TI","dest":"SG","count":18},{"origin":"TI","dest":"GR","count":60},{"origin":"TI","dest":"AG","count":-10},{"origin":"TI","dest":"TG","count":4},{"origin":"TI","dest":"TI","count":-556},{"origin":"TI","dest":"VD","count":6},{"origin":"TI","dest":"VS","count":12},{"origin":"TI","dest":"NE","count":-12},{"origin":"TI","dest":"GE","count":30},{"origin":"TI","dest":"JU","count":4},{"origin":"VD","dest":"ZH","count":25},{"origin":"VD","dest":"BE","count":22},{"origin":"VD","dest":"UR","count":-2},{"origin":"VD","dest":"SZ","count":9},{"origin":"VD","dest":"OW","count":1},{"origin":"VD","dest":"NW","count":7},{"origin":"VD","dest":"GL","count":1},{"origin":"VD","dest":"ZG","count":40},{"origin":"VD","dest":"FR","count":-16},{"origin":"VD","dest":"SO","count":28},{"origin":"VD","dest":"BS","count":-14},{"origin":"VD","dest":"BL","count":-28},{"origin":"VD","dest":"SH","count":2},{"origin":"VD","dest":"AR","count":-2},{"origin":"VD","dest":"AI","count":6},{"origin":"VD","dest":"SG","count":-17},{"origin":"VD","dest":"GR","count":-11},{"origin":"VD","dest":"AG","count":31},{"origin":"VD","dest":"TG","count":1},{"origin":"VD","dest":"TI","count":-20},{"origin":"VD","dest":"VD","count":-2512},{"origin":"VD","dest":"VS","count":63},{"origin":"VD","dest":"NE","count":-9},{"origin":"VD","dest":"GE","count":131},{"origin":"VD","dest":"JU","count":-6},{"origin":"VS","dest":"ZH","count":18},{"origin":"VS","dest":"BE","count":32},{"origin":"VS","dest":"LU","count":17},{"origin":"VS","dest":"UR","count":13},{"origin":"VS","dest":"SZ","count":7},{"origin":"VS","dest":"OW","count":-10},{"origin":"VS","dest":"NW","count":-6},{"origin":"VS","dest":"GL","count":-2},{"origin":"VS","dest":"ZG","count":-10},{"origin":"VS","dest":"FR","count":-9},{"origin":"VS","dest":"SO","count":-1},{"origin":"VS","dest":"BS","count":-12},{"origin":"VS","dest":"BL","count":22},{"origin":"VS","dest":"SH","count":4},{"origin":"VS","dest":"AR","count":-3},{"origin":"VS","dest":"AI","count":4},{"origin":"VS","dest":"SG","count":5},{"origin":"VS","dest":"GR","count":3},{"origin":"VS","dest":"AG","count":-6},{"origin":"VS","dest":"TG","count":-1},{"origin":"VS","dest":"TI","count":-10},{"origin":"VS","dest":"VD","count":-12},{"origin":"VS","dest":"VS","count":-477},{"origin":"VS","dest":"NE","count":17},{"origin":"VS","dest":"GE","count":-11},{"origin":"VS","dest":"JU","count":-17},{"origin":"NE","dest":"ZH","count":-1},{"origin":"NE","dest":"BE","count":29},{"origin":"NE","dest":"LU","count":-2},{"origin":"NE","dest":"UR","count":-2},{"origin":"NE","dest":"SZ","count":1},{"origin":"NE","dest":"NW","count":1},{"origin":"NE","dest":"GL","count":-1},{"origin":"NE","dest":"ZG","count":9},{"origin":"NE","dest":"FR","count":-78},{"origin":"NE","dest":"SO","count":-6},{"origin":"NE","dest":"BS","count":-8},{"origin":"NE","dest":"BL","count":-2},{"origin":"NE","dest":"SH","count":7},{"origin":"NE","dest":"AR","count":-1},{"origin":"NE","dest":"SG","count":1},{"origin":"NE","dest":"GR","count":4},{"origin":"NE","dest":"AG","count":3},{"origin":"NE","dest":"TG","count":2},{"origin":"NE","dest":"TI","count":-6},{"origin":"NE","dest":"VD","count":8},{"origin":"NE","dest":"VS","count":-4},{"origin":"NE","dest":"NE","count":132},{"origin":"NE","dest":"GE","count":25},{"origin":"NE","dest":"JU","count":-32},{"origin":"GE","dest":"ZH","count":-68},{"origin":"GE","dest":"BE","count":16},{"origin":"GE","dest":"LU","count":-3},{"origin":"GE","dest":"UR","count":2},{"origin":"GE","dest":"SZ","count":-15},{"origin":"GE","dest":"OW","count":-1},{"origin":"GE","dest":"GL","count":-1},{"origin":"GE","dest":"ZG","count":-13},{"origin":"GE","dest":"FR","count":-4},{"origin":"GE","dest":"SO","count":-9},{"origin":"GE","dest":"BS","count":21},{"origin":"GE","dest":"BL","count":-12},{"origin":"GE","dest":"SG","count":3},{"origin":"GE","dest":"GR","count":9},{"origin":"GE","dest":"AG","count":9},{"origin":"GE","dest":"TI","count":7},{"origin":"GE","dest":"VD","count":190},{"origin":"GE","dest":"VS","count":-78},{"origin":"GE","dest":"NE","count":-5},{"origin":"GE","dest":"GE","count":-3079},{"origin":"GE","dest":"JU","count":-15},{"origin":"JU","dest":"ZH","count":-4},{"origin":"JU","dest":"BE","count":-35},{"origin":"JU","dest":"LU","count":4},{"origin":"JU","dest":"SZ","count":2},{"origin":"JU","dest":"OW","count":-1},{"origin":"JU","dest":"ZG","count":5},{"origin":"JU","dest":"FR","count":-11},{"origin":"JU","dest":"SO","count":8},{"origin":"JU","dest":"BS","count":-16},{"origin":"JU","dest":"BL","count":-34},{"origin":"JU","dest":"AR","count":-1},{"origin":"JU","dest":"SG","count":-1},{"origin":"JU","dest":"GR","count":2},{"origin":"JU","dest":"AG","count":-6},{"origin":"JU","dest":"TG","count":-4},{"origin":"JU","dest":"TI","count":8},{"origin":"JU","dest":"VD","count":-12},{"origin":"JU","dest":"VS","count":28},{"origin":"JU","dest":"NE","count":14},{"origin":"JU","dest":"GE","count":3},{"origin":"JU","dest":"JU","count":-130}]
================================================
FILE: examples/public/data/locations.json
================================================
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"abbr":"ZH","name":"Zürich","no":1,"centroid":[8.654789284720719,47.412606122294044]},"geometry":{"type":"Polygon","coordinates":[[[8.808068406840686,47.220891289128915],[8.793098109810982,47.223080508050806],[8.74092889288929,47.211935393539356],[8.703729972997301,47.201785378537856],[8.681047704770478,47.18387358735873],[8.691481548154815,47.163971597159716],[8.674696669666968,47.15879707970797],[8.661540954095411,47.160986298629865],[8.661087308730874,47.170937293729374],[8.626156615661568,47.171932393239324],[8.627971197119713,47.17909710971097],[8.615722772277229,47.198800080008],[8.597123312331235,47.20397459745975],[8.594855085508552,47.211935393539356],[8.581699369936995,47.212930493049306],[8.553573357335734,47.223080508050806],[8.484165616561658,47.20775597559756],[8.460576057605762,47.21392559255926],[8.440615661566158,47.22507070707071],[8.422016201620163,47.223080508050806],[8.411128712871289,47.24795799579958],[8.402963096309632,47.2537295729573],[8.40205580558056,47.2740296029603],[8.388900090009002,47.289951195119514],[8.415211521152116,47.29273747374737],[8.4274599459946,47.301096309630964],[8.431996399639965,47.31184338433843],[8.446059405940595,47.31980418041804],[8.449688568856887,47.32975517551755],[8.416118811881189,47.32398359835984],[8.416572457245724,47.33393459345935],[8.403870387038705,47.346870887088706],[8.406592259225924,47.36995719571957],[8.393890189018903,47.380704270427046],[8.392075607560757,47.39602880288029],[8.366217821782179,47.401999399939996],[8.384363636363638,47.405780778077805],[8.392075607560757,47.41991119111911],[8.387539153915393,47.42807100710071],[8.374383438343836,47.43006120612061],[8.384363636363638,47.43702690269027],[8.38663186318632,47.44876907690769],[8.366217821782179,47.470064206420645],[8.373022502250226,47.4810103010301],[8.363949594959497,47.4810103010301],[8.358052205220524,47.49693189318932],[8.360774077407742,47.50986818681868],[8.376651665166518,47.511858385838586],[8.380734473447346,47.524794679467945],[8.402963096309632,47.532954495449545],[8.417933393339336,47.56400160016002],[8.426099009900991,47.56778297829783],[8.438347434743475,47.56698689868987],[8.495053105310532,47.580918291829185],[8.488702070207022,47.587883988398836],[8.466473447344736,47.583903590359036],[8.456493249324932,47.602014401440144],[8.478721872187219,47.61276147614761],[8.50820882088209,47.61793599359936],[8.515920792079209,47.63405660566057],[8.539056705670568,47.630872287228726],[8.568997299729974,47.61694089408941],[8.562646264626464,47.59902910291029],[8.53497389738974,47.586888888888886],[8.550851485148517,47.55703590359036],[8.559470747074709,47.55285648564856],[8.56945094509451,47.57196239623963],[8.579431143114313,47.57594279427943],[8.578070207020703,47.58887908790879],[8.594855085508552,47.5968398839884],[8.595762376237625,47.60579577957796],[8.604835283528354,47.61276147614761],[8.594855085508552,47.643012501250126],[8.604835283528354,47.651968396839685],[8.613454545454546,47.64778897889789],[8.604835283528354,47.63684288428843],[8.623888388838886,47.641022302230226],[8.628878487848786,47.652963496349635],[8.606196219621964,47.66908410841084],[8.613454545454546,47.6780400040004],[8.62706390639064,47.6780400040004],[8.624795679567958,47.69197139713972],[8.64248784878488,47.69495669566957],[8.662448244824484,47.68600080008001],[8.670160216021603,47.68500570057006],[8.681047704770478,47.65674487448745],[8.689213321332135,47.64878407840784],[8.721422142214223,47.641022302230226],[8.746826282628264,47.63883308330833],[8.764518451845186,47.64878407840784],[8.7858397839784,47.654754675467544],[8.788561656165617,47.66470567056706],[8.804439243924394,47.66470567056706],[8.804439243924394,47.651968396839685],[8.826214221422143,47.646793879387936],[8.82802880288029,47.639828182818285],[8.813058505850586,47.62709090909091],[8.800810081008102,47.602014401440144],[8.788108010801082,47.60997519751975],[8.745918991899192,47.62171737173718],[8.740021602160217,47.61176637663766],[8.748187218721874,47.592063406340635],[8.764064806480649,47.593058505850586],[8.805800180018004,47.582908490849086],[8.806707470747076,47.57196239623963],[8.830750675067508,47.57395259525953],[8.838916291629165,47.56499669966997],[8.850711071107112,47.56400160016002],[8.82802880288029,47.55604080408041],[8.841184518451847,47.532954495449545],[8.8829198919892,47.528974097409744],[8.898797479747977,47.523998599859986],[8.892900090009002,47.48797599759976],[8.883827182718273,47.470064206420645],[8.89063186318632,47.4688700870087],[8.902880288028804,47.44399259925993],[8.910592259225924,47.43702690269027],[8.930552655265528,47.43185238523852],[8.907416741674169,47.43085728572857],[8.915128712871288,47.41891609160916],[8.903787578757877,47.401999399939996],[8.919665166516653,47.399810181018104],[8.944162016201622,47.38508270827083],[8.944162016201622,47.37592779277928],[8.96094689468947,47.355826782678264],[8.971834383438345,47.352045404540455],[8.978639063906392,47.337715971597156],[8.97637083708371,47.32696889688969],[8.984990099009902,47.31900810081008],[8.9750099009901,47.30706690669067],[8.956410441044106,47.30487768776877],[8.948698469846985,47.291941394139414],[8.93418181818182,47.28776197619762],[8.947337533753377,47.281990399039906],[8.944162016201622,47.26885508550855],[8.93282088208821,47.25870507050705],[8.872939693969398,47.25173937393739],[8.869764176417643,47.24477367736774],[8.837555355535555,47.24696289628963],[8.826214221422143,47.25074427442744],[8.803078307830784,47.24696289628963],[8.795366336633665,47.23900210021002],[8.808068406840686,47.220891289128915]]]}},{"type":"Feature","properties":{"abbr":"LU","name":"Luzern","no":3,"centroid":[8.110050800932683,47.06748397445195]},"geometry":{"type":"Polygon","coordinates":[[[8.04866606660666,46.78782398239824],[8.020993699369939,46.78881908190819],[7.9837947794779485,46.77508670867087],[7.9538541854185425,46.792003400340036],[7.946595859585959,46.8047406740674],[7.922099009900991,46.82006520652065],[7.876734473447345,46.83698189818982],[7.866754275427543,46.850913291329135],[7.869929792979299,46.864048604860486],[7.856320432043205,46.871014301430144],[7.859042304230424,46.88474667466747],[7.873105310531054,46.88972217221722],[7.883085508550856,46.90405160516052],[7.866754275427543,46.91400260026003],[7.872198019801981,46.923953595359535],[7.898055805580559,46.934899689968994],[7.912118811881189,46.9327104710471],[7.922099009900991,46.9470399039904],[7.932079207920793,46.95082128212821],[7.932079207920793,46.961767376737676],[7.946142214221423,46.96873307330733],[7.952039603960397,46.981072307230725],[7.947956795679569,46.99380958095809],[7.952039603960397,47.0059497949795],[7.932986498649866,47.0037605760576],[7.924367236723673,47.00973117311731],[7.902138613861387,47.0059497949795],[7.899870387038705,47.0180900090009],[7.882178217821783,47.040977297729775],[7.865846984698471,47.05271947194719],[7.874012601260127,47.06207340734073],[7.882178217821783,47.08874207420742],[7.869022502250226,47.112027402740274],[7.873105310531054,47.12476467646765],[7.885807380738075,47.12794899489949],[7.889890189018903,47.14088528852885],[7.878095409540955,47.150836283628365],[7.874466246624664,47.161981398139815],[7.883085508550856,47.17272847284728],[7.874466246624664,47.18387358735873],[7.859949594959497,47.19183438343834],[7.846340234023403,47.216711871187115],[7.836360036003601,47.224075607560756],[7.83908190819082,47.23382758275827],[7.854052205220523,47.232036403640365],[7.868115211521153,47.23681288128813],[7.909850585058507,47.24377857785778],[7.932986498649866,47.23581778177818],[7.961112511251126,47.2537295729573],[7.9488640864086415,47.27303450345035],[7.956122412241225,47.276815881588156],[7.986516651665167,47.2760198019802],[7.99513591359136,47.281990399039906],[8.016003600360037,47.25989918991899],[8.015096309630964,47.24377857785778],[8.029612961296131,47.24178837883788],[8.063182718271829,47.24696289628963],[8.055924392439245,47.25591879187919],[8.072709270927094,47.25492369236924],[8.088133213321333,47.26288448844885],[8.099020702070208,47.25989918991899],[8.10900090009001,47.24477367736774],[8.124878487848786,47.24099229922992],[8.131683168316833,47.24596779677968],[8.174779477947796,47.25273447344735],[8.174779477947796,47.23999719971997],[8.156180018001802,47.23900210021002],[8.176140414041406,47.222085408540856],[8.204720072007202,47.225866786678665],[8.207895589558957,47.24795799579958],[8.220144014401441,47.25273447344735],[8.227855985598561,47.27303450345035],[8.241465346534653,47.2720394039404],[8.25099189918992,47.285771777177715],[8.2868298829883,47.278806080608064],[8.299985598559857,47.270845284528455],[8.29590279027903,47.25870507050705],[8.314502250225024,47.23999719971997],[8.314502250225024,47.231041304130414],[8.325389738973898,47.21492069206921],[8.33809180918092,47.17909710971097],[8.358052205220524,47.156806880688066],[8.362135013501351,47.1460598059806],[8.376198019801981,47.13909410941094],[8.412036003600361,47.14088528852885],[8.417933393339336,47.12177937793779],[8.447420342034205,47.1297401740174],[8.45195679567957,47.11381858185818],[8.480536453645366,47.12595879587959],[8.49414581458146,47.11381858185818],[8.49278487848785,47.099887188718874],[8.474185418541856,47.112027402740274],[8.449688568856887,47.11381858185818],[8.423830783078309,47.104066606660666],[8.408860486048606,47.091926392639266],[8.409767776777679,47.08297049704971],[8.388900090009002,47.0708302830283],[8.391168316831685,47.06107830783078],[8.429728172817283,47.0648596859686],[8.440615661566158,47.06286948694869],[8.49641404140414,47.02883708370837],[8.513652565256526,47.02187138713872],[8.508662466246626,47.0037605760576],[8.482804680468048,46.99679487948795],[8.467380738073809,46.99679487948795],[8.468741674167418,47.00893509350935],[8.4274599459946,47.01709490949095],[8.426099009900991,46.99798899889989],[8.396158415841585,47.00097429742974],[8.384363636363638,46.99798899889989],[8.3839099909991,47.0180900090009],[8.368939693969399,47.01908510851085],[8.334462646264628,46.989033103310334],[8.318585058505851,46.99997919791979],[8.281386138613861,46.99480468046804],[8.264601260126014,46.99798899889989],[8.243733573357336,46.985848784878485],[8.22921692169217,46.992018401840184],[8.217875787578759,46.981072307230725],[8.22921692169217,46.972912491249126],[8.202905490549057,46.966742874287426],[8.18702790279028,46.971917391739176],[8.149375337533755,46.95798599859986],[8.164799279927994,46.93907910791079],[8.134858685868588,46.921963396339635],[8.11036183618362,46.89270747074708],[8.10900090009001,46.90783298329833],[8.09493789378938,46.912012401240126],[8.083143114311433,46.89987218721872],[8.069533753375339,46.89609080908091],[8.071801980198021,46.873800580058],[8.065904590459047,46.859869186918694],[8.041861386138615,46.83698189818982],[8.063636363636364,46.80792499249925],[8.04866606660666,46.78782398239824]]]}},{"type":"Feature","properties":{"abbr":"UR","name":"Uri","no":4,"centroid":[8.628549054737778,46.7719996986948]},"geometry":{"type":"Polygon","coordinates":[[[8.935089108910892,46.919973197319734],[8.952781278127814,46.89808100810081],[8.958225022502251,46.8799701970197],[8.91739693969397,46.861063306330635],[8.908324032403241,46.862058405840585],[8.892900090009002,46.84872407240724],[8.870671467146716,46.841758375837586],[8.882012601260127,46.82902110211021],[8.87656885688569,46.813099509950995],[8.847989198919894,46.797774977497745],[8.82802880288029,46.792003400340036],[8.833926192619263,46.76692689268927],[8.81759495949595,46.76175237523752],[8.809882988298831,46.744039603960395],[8.813058505850586,46.736874887488746],[8.782210621062108,46.727719971997196],[8.765879387938796,46.744835683568354],[8.748187218721874,46.73607880788079],[8.748187218721874,46.71796799679968],[8.717792979297931,46.70602680268027],[8.709173717371739,46.69906110611061],[8.70010081008101,46.70383758375837],[8.673335733573358,46.692095409540954],[8.673335733573358,46.670800280028004],[8.678779477947796,46.66403360336034],[8.654736273627364,46.64970417041704],[8.651107110711072,46.63577277727773],[8.657911791179119,46.625821782178214],[8.67696489648965,46.61885608560856],[8.681501350135015,46.58900310031003],[8.678779477947796,46.57905210521052],[8.653375337533754,46.56790699069907],[8.63477587758776,46.56372757275727],[8.61935193519352,46.57805700570057],[8.589411341134115,46.573081508150814],[8.573080108010803,46.58382858285828],[8.548129612961297,46.58183838383838],[8.539056705670568,46.58701290129013],[8.520457245724574,46.57686288628863],[8.513198919891991,46.55875207520752],[8.519549954995501,46.5388500850085],[8.482804680468048,46.53188438843884],[8.47736093609361,46.52790399039904],[8.465112511251126,46.53606380638064],[8.457400540054007,46.53287948794879],[8.42882088208821,46.542830483048306],[8.419747974797481,46.56571777177717],[8.406138613861387,46.58601780178018],[8.419747974797481,46.6160698069807],[8.422016201620163,46.64791299129913],[8.409767776777679,46.65288848884888],[8.407499549954997,46.66701890189019],[8.397972997299732,46.673984598459846],[8.399787578757877,46.693090509050904],[8.415211521152116,46.68672187218722],[8.45195679567957,46.68891109110911],[8.454225022502252,46.71080328032803],[8.448781278127814,46.71179837983798],[8.440615661566158,46.736874887488746],[8.448781278127814,46.76473767376738],[8.490970297029705,46.77289748974897],[8.47736093609361,46.78881908190819],[8.482804680468048,46.81688088808881],[8.489609360936095,46.83598679867987],[8.506394239423944,46.84494269426943],[8.497321332133215,46.85409760976098],[8.471917191719173,46.85509270927093],[8.466473447344736,46.87479567956795],[8.478721872187219,46.88275647564756],[8.474185418541856,46.89270747074708],[8.458761476147615,46.89907610761076],[8.480536453645366,46.90882808280828],[8.485980198019803,46.917783978397836],[8.502765076507652,46.91400260026003],[8.519549954995501,46.922958495849585],[8.54404680468047,46.92773497349735],[8.54404680468047,46.93907910791079],[8.559017101710172,46.94007420742074],[8.554934293429344,46.96296149614962],[8.573533753375338,46.982067406740676],[8.568997299729974,46.990028202820284],[8.581699369936995,46.993013501350134],[8.602567056705672,46.986843884388435],[8.603927992799282,46.95181638163816],[8.623888388838886,46.95281148114812],[8.670160216021603,46.94385558555855],[8.69238883888389,46.9470399039904],[8.696925292529254,46.92892909290929],[8.707812781278129,46.916788878887886],[8.736846084608462,46.9327104710471],[8.768601260126013,46.94007420742074],[8.788108010801082,46.92992419241924],[8.810790279027904,46.94106930693069],[8.82666786678668,46.935894789478944],[8.82802880288029,46.91877907790779],[8.836194419441945,46.90783298329833],[8.847989198919894,46.913007500750076],[8.847989198919894,46.89071727172717],[8.852979297929794,46.88474667466747],[8.862052205220524,46.89609080908091],[8.87384698469847,46.89489668966897],[8.901065706570659,46.90783298329833],[8.935089108910892,46.919973197319734]]]}},{"type":"Feature","properties":{"abbr":"SZ","name":"Schwyz","no":5,"centroid":[8.756141692382394,47.06179415913812]},"geometry":{"type":"Polygon","coordinates":[[[8.568997299729974,46.990028202820284],[8.54268586858686,46.979878187818784],[8.49641404140414,46.97609680968097],[8.465112511251126,46.984057605760576],[8.467380738073809,46.99679487948795],[8.482804680468048,46.99679487948795],[8.508662466246626,47.0037605760576],[8.513652565256526,47.02187138713872],[8.49641404140414,47.02883708370837],[8.440615661566158,47.06286948694869],[8.429728172817283,47.0648596859686],[8.391168316831685,47.06107830783078],[8.388900090009002,47.0708302830283],[8.409767776777679,47.08297049704971],[8.408860486048606,47.091926392639266],[8.423830783078309,47.104066606660666],[8.449688568856887,47.11381858185818],[8.474185418541856,47.112027402740274],[8.49278487848785,47.099887188718874],[8.520457245724574,47.089737173717374],[8.562646264626464,47.093916591659166],[8.567182718271829,47.08078127812781],[8.589411341134115,47.08595579557956],[8.608918091809182,47.094911691169116],[8.63341494149415,47.093916591659166],[8.671521152115211,47.11580878087808],[8.686945094509452,47.13491469146915],[8.683769576957697,47.14088528852885],[8.701008100810082,47.150836283628365],[8.691481548154815,47.163971597159716],[8.681047704770478,47.18387358735873],[8.703729972997301,47.201785378537856],[8.74092889288929,47.211935393539356],[8.793098109810982,47.223080508050806],[8.808068406840686,47.220891289128915],[8.828482448244825,47.20875107510751],[8.841184518451847,47.20775597559756],[8.940986498649867,47.217706970697066],[8.969566156615663,47.217706970697066],[8.965029702970298,47.19800400040004],[8.958225022502251,47.198800080008],[8.961854185418543,47.18009220922092],[8.981814581458147,47.18287848784878],[9.003589558955897,47.17272847284728],[9.003589558955897,47.17272847284728],[8.966390639063906,47.13690489048905],[8.965029702970298,47.12177937793779],[8.974102610261028,47.11481368136813],[8.970473447344736,47.104066606660666],[8.954142214221424,47.090732273227324],[8.9750099009901,47.08595579557956],[8.965936993699371,47.081776377637766],[8.950513051305132,47.06107830783078],[8.947337533753377,47.04893809380938],[8.921026102610263,47.037792979297926],[8.901972997299731,47.037792979297926],[8.903787578757877,47.02704590459046],[8.895168316831684,47.02087628762876],[8.909684968496851,47.01709490949095],[8.910592259225924,47.00893509350935],[8.940986498649867,46.984853685368535],[8.931913591359137,46.982067406740676],[8.945976597659767,46.966742874287426],[8.970473447344736,46.95878207820782],[8.955049504950496,46.93907910791079],[8.963215121512153,46.9267398739874],[8.935089108910892,46.919973197319734],[8.901065706570659,46.90783298329833],[8.87384698469847,46.89489668966897],[8.862052205220524,46.89609080908091],[8.852979297929794,46.88474667466747],[8.847989198919894,46.89071727172717],[8.847989198919894,46.913007500750076],[8.836194419441945,46.90783298329833],[8.82802880288029,46.91877907790779],[8.82666786678668,46.935894789478944],[8.810790279027904,46.94106930693069],[8.788108010801082,46.92992419241924],[8.768601260126013,46.94007420742074],[8.736846084608462,46.9327104710471],[8.707812781278129,46.916788878887886],[8.696925292529254,46.92892909290929],[8.69238883888389,46.9470399039904],[8.670160216021603,46.94385558555855],[8.623888388838886,46.95281148114812],[8.603927992799282,46.95181638163816],[8.602567056705672,46.986843884388435],[8.581699369936995,46.993013501350134],[8.568997299729974,46.990028202820284]]]}},{"type":"Feature","properties":{"abbr":"OW","name":"Obwalden","no":6,"centroid":[8.243185555987871,46.85245963030377]},"geometry":{"type":"MultiPolygon","coordinates":[[[[8.368939693969399,46.78782398239824],[8.35986678667867,46.782848484848486],[8.333101710171018,46.78085828582858],[8.283200720072008,46.75279647964796],[8.269137713771379,46.75379157915791],[8.259157515751577,46.76374257425743],[8.239197119711973,46.76971317131713],[8.22150495049505,46.76095629562956],[8.207895589558957,46.76891709170917],[8.190203420342035,46.76971317131713],[8.145746174617463,46.75478667866786],[8.121702970297031,46.76971317131713],[8.104918091809182,46.77289748974897],[8.089494149414943,46.78782398239824],[8.04866606660666,46.78782398239824],[8.063636363636364,46.80792499249925],[8.041861386138615,46.83698189818982],[8.065904590459047,46.859869186918694],[8.071801980198021,46.873800580058],[8.069533753375339,46.89609080908091],[8.083143114311433,46.89987218721872],[8.09493789378938,46.912012401240126],[8.10900090009001,46.90783298329833],[8.11036183618362,46.89270747074708],[8.134858685868588,46.921963396339635],[8.164799279927994,46.93907910791079],[8.149375337533755,46.95798599859986],[8.18702790279028,46.971917391739176],[8.202905490549057,46.966742874287426],[8.22921692169217,46.972912491249126],[8.25235283528353,46.979878187818784],[8.281386138613861,46.97609680968097],[8.30089288928893,46.97788798879888],[8.30996579657966,46.96873307330733],[8.30996579657966,46.95181638163816],[8.287737173717373,46.93370557055705],[8.30996579657966,46.923953595359535],[8.33809180918092,46.92892909290929],[8.34308190819082,46.91499769976998],[8.338545454545455,46.89708590859086],[8.32765796579658,46.8779799979998],[8.334462646264628,46.861063306330635],[8.32765796579658,46.84593779377938],[8.335823582358238,46.83280248024803],[8.322214221422144,46.82006520652065],[8.34444284428443,46.799964196419644],[8.368939693969399,46.78782398239824]]],[[[8.471917191719173,46.85509270927093],[8.497321332133215,46.85409760976098],[8.506394239423944,46.84494269426943],[8.489609360936095,46.83598679867987],[8.482804680468048,46.81688088808881],[8.47736093609361,46.78881908190819],[8.490970297029705,46.77289748974897],[8.448781278127814,46.76473767376738],[8.446513051305132,46.76971317131713],[8.413850585058507,46.77389258925893],[8.396158415841585,46.76473767376738],[8.39434383438344,46.77170337033703],[8.416572457245724,46.77807200720072],[8.426099009900991,46.77508670867087],[8.418387038703871,46.78881908190819],[8.39661206120612,46.794988698869886],[8.384363636363638,46.803944594459445],[8.387539153915393,46.813099509950995],[8.373929792979299,46.81588578857885],[8.378012601260128,46.82285148514851],[8.37120792079208,46.83499169916992],[8.369846984698471,46.858874087408736],[8.360774077407742,46.862058405840585],[8.373022502250226,46.87479567956795],[8.384363636363638,46.865839783978394],[8.374383438343836,46.857878987898786],[8.374383438343836,46.847728972897286],[8.398426642664267,46.864844684468444],[8.412943294329434,46.87001920192019],[8.418387038703871,46.852903490349036],[8.471917191719173,46.85509270927093]]]]}},{"type":"Feature","properties":{"abbr":"NW","name":"Nidwalden","no":7,"centroid":[8.405343061072784,46.92618107731872]},"geometry":{"type":"Polygon","coordinates":[[[8.22921692169217,46.972912491249126],[8.217875787578759,46.981072307230725],[8.22921692169217,46.992018401840184],[8.243733573357336,46.985848784878485],[8.264601260126014,46.99798899889989],[8.281386138613861,46.99480468046804],[8.318585058505851,46.99997919791979],[8.334462646264628,46.989033103310334],[8.368939693969399,47.01908510851085],[8.3839099909991,47.0180900090009],[8.384363636363638,46.99798899889989],[8.396158415841585,47.00097429742974],[8.426099009900991,46.99798899889989],[8.4274599459946,47.01709490949095],[8.468741674167418,47.00893509350935],[8.467380738073809,46.99679487948795],[8.465112511251126,46.984057605760576],[8.49641404140414,46.97609680968097],[8.54268586858686,46.979878187818784],[8.568997299729974,46.990028202820284],[8.573533753375338,46.982067406740676],[8.554934293429344,46.96296149614962],[8.559017101710172,46.94007420742074],[8.54404680468047,46.93907910791079],[8.54404680468047,46.92773497349735],[8.519549954995501,46.922958495849585],[8.502765076507652,46.91400260026003],[8.485980198019803,46.917783978397836],[8.480536453645366,46.90882808280828],[8.458761476147615,46.89907610761076],[8.474185418541856,46.89270747074708],[8.478721872187219,46.88275647564756],[8.466473447344736,46.87479567956795],[8.471917191719173,46.85509270927093],[8.418387038703871,46.852903490349036],[8.412943294329434,46.87001920192019],[8.398426642664267,46.864844684468444],[8.374383438343836,46.847728972897286],[8.374383438343836,46.857878987898786],[8.384363636363638,46.865839783978394],[8.373022502250226,46.87479567956795],[8.360774077407742,46.862058405840585],[8.369846984698471,46.858874087408736],[8.37120792079208,46.83499169916992],[8.378012601260128,46.82285148514851],[8.373929792979299,46.81588578857885],[8.387539153915393,46.813099509950995],[8.384363636363638,46.803944594459445],[8.39661206120612,46.794988698869886],[8.418387038703871,46.78881908190819],[8.426099009900991,46.77508670867087],[8.416572457245724,46.77807200720072],[8.39434383438344,46.77170337033703],[8.368939693969399,46.78782398239824],[8.34444284428443,46.799964196419644],[8.322214221422144,46.82006520652065],[8.335823582358238,46.83280248024803],[8.32765796579658,46.84593779377938],[8.334462646264628,46.861063306330635],[8.32765796579658,46.8779799979998],[8.338545454545455,46.89708590859086],[8.34308190819082,46.91499769976998],[8.33809180918092,46.92892909290929],[8.30996579657966,46.923953595359535],[8.287737173717373,46.93370557055705],[8.30996579657966,46.95181638163816],[8.30996579657966,46.96873307330733],[8.30089288928893,46.97788798879888],[8.281386138613861,46.97609680968097],[8.25235283528353,46.979878187818784],[8.22921692169217,46.972912491249126]]]}},{"type":"Feature","properties":{"abbr":"GL","name":"Glarus","no":8,"centroid":[9.065751666238693,46.98114438926425]},"geometry":{"type":"Polygon","coordinates":[[[9.249011701170119,46.915793779377935],[9.226783078307832,46.90604180418042],[9.203647164716472,46.88275647564756],[9.187769576957697,46.87579077907791],[9.152385238523854,46.8799701970197],[9.14013681368137,46.862058405840585],[9.111103510351036,46.849719171917194],[9.094772277227724,46.871014301430144],[9.061202520252026,46.873800580058],[9.045778577857787,46.866834883488345],[9.045778577857787,46.849719171917194],[9.039427542754277,46.846733873387336],[9.009033303330334,46.8109102910291],[8.952781278127814,46.8047406740674],[8.927377137713773,46.795784778477845],[8.915128712871288,46.7987700770077],[8.915128712871288,46.8109102910291],[8.87656885688569,46.813099509950995],[8.882012601260127,46.82902110211021],[8.870671467146716,46.841758375837586],[8.892900090009002,46.84872407240724],[8.908324032403241,46.862058405840585],[8.91739693969397,46.861063306330635],[8.958225022502251,46.8799701970197],[8.952781278127814,46.89808100810081],[8.935089108910892,46.919973197319734],[8.963215121512153,46.9267398739874],[8.955049504950496,46.93907910791079],[8.970473447344736,46.95878207820782],[8.945976597659767,46.966742874287426],[8.931913591359137,46.982067406740676],[8.940986498649867,46.984853685368535],[8.910592259225924,47.00893509350935],[8.909684968496851,47.01709490949095],[8.895168316831684,47.02087628762876],[8.903787578757877,47.02704590459046],[8.901972997299731,47.037792979297926],[8.921026102610263,47.037792979297926],[8.947337533753377,47.04893809380938],[8.950513051305132,47.06107830783078],[8.965936993699371,47.081776377637766],[8.9750099009901,47.08595579557956],[8.954142214221424,47.090732273227324],[8.970473447344736,47.104066606660666],[8.974102610261028,47.11481368136813],[8.965029702970298,47.12177937793779],[8.966390639063906,47.13690489048905],[9.003589558955897,47.17272847284728],[9.004950495049506,47.17272847284728],[9.009033303330334,47.171932393239324],[9.068914491449146,47.1297401740174],[9.10157695769577,47.13272547254726],[9.136054005400542,47.1317303730373],[9.19003780378038,47.12376957695769],[9.185501350135015,47.09789698969897],[9.19139873987399,47.0728204820482],[9.181418541854185,47.05809300930093],[9.137868586858687,47.03878807880788],[9.163726372637264,47.02704590459046],[9.18096489648965,47.02605080508051],[9.20137893789379,47.03500670067007],[9.221339333933393,47.03301650165017],[9.243114311431144,47.01490569056906],[9.249918991899191,46.99480468046804],[9.244475247524754,46.95599579957996],[9.235855985598562,46.94485068506851],[9.249918991899191,46.935894789478944],[9.249011701170119,46.915793779377935]]]}},{"type":"Feature","properties":{"abbr":"ZG","name":"Zug","no":9,"centroid":[8.537489988894073,47.15682372405097]},"geometry":{"type":"Polygon","coordinates":[[[8.49278487848785,47.099887188718874],[8.49414581458146,47.11381858185818],[8.480536453645366,47.12595879587959],[8.45195679567957,47.11381858185818],[8.447420342034205,47.1297401740174],[8.417933393339336,47.12177937793779],[8.412036003600361,47.14088528852885],[8.415211521152116,47.165762776277624],[8.40205580558056,47.17690789078908],[8.406138613861387,47.19501870187019],[8.39434383438344,47.225866786678665],[8.411128712871289,47.24795799579958],[8.422016201620163,47.223080508050806],[8.440615661566158,47.22507070707071],[8.460576057605762,47.21392559255926],[8.484165616561658,47.20775597559756],[8.553573357335734,47.223080508050806],[8.581699369936995,47.212930493049306],[8.594855085508552,47.211935393539356],[8.597123312331235,47.20397459745975],[8.615722772277229,47.198800080008],[8.627971197119713,47.17909710971097],[8.626156615661568,47.171932393239324],[8.661087308730874,47.170937293729374],[8.661540954095411,47.160986298629865],[8.674696669666968,47.15879707970797],[8.691481548154815,47.163971597159716],[8.701008100810082,47.150836283628365],[8.683769576957697,47.14088528852885],[8.686945094509452,47.13491469146915],[8.671521152115211,47.11580878087808],[8.63341494149415,47.093916591659166],[8.608918091809182,47.094911691169116],[8.589411341134115,47.08595579557956],[8.567182718271829,47.08078127812781],[8.562646264626464,47.093916591659166],[8.520457245724574,47.089737173717374],[8.49278487848785,47.099887188718874]]]}},{"type":"Feature","properties":{"abbr":"FR","name":"Fribourg","no":10,"centroid":[7.077054877693406,46.71817056663422]},"geometry":{"type":"MultiPolygon","coordinates":[[[[7.237094509450946,46.553975597559756],[7.223031503150316,46.547805980598056],[7.20715391539154,46.53287948794879],[7.1917299729973,46.5470099009901],[7.158613861386139,46.52690889088909],[7.145004500450046,46.52690889088909],[7.135931593159317,46.50780298029803],[7.105083708370838,46.48889608960896],[7.066070207020703,46.48889608960896],[7.027963996399641,46.46700390039004],[7.016622862286229,46.44789798979898],[6.983506750675068,46.43774797479748],[6.992126012601261,46.44889308930893],[6.979877587758777,46.45904310431043],[6.972165616561657,46.490886288628865],[6.953566156615662,46.502031403140315],[6.934966696669668,46.501036303630364],[6.924986498649866,46.50780298029803],[6.9009432943294335,46.51277847784778],[6.896406840684069,46.51894809480948],[6.881436543654366,46.51277847784778],[6.862837083708372,46.494070607060706],[6.836525652565257,46.49984218421842],[6.811121512151216,46.52491869186919],[6.825184518451846,46.542830483048306],[6.831535553555356,46.53705890589059],[6.855125112511252,46.5408402840284],[6.861022502250226,46.53088928892889],[6.870095409540955,46.54402460246025],[6.887787578757877,46.55775697569757],[6.900036003600361,46.559946194619464],[6.898221422142215,46.571091309130914],[6.885065706570658,46.561936393639364],[6.873724572457246,46.56472267226722],[6.863744374437444,46.57805700570057],[6.848320432043205,46.58283348334833],[6.835164716471648,46.57487268726872],[6.811575157515752,46.58004720472047],[6.794790279027904,46.57487268726872],[6.803409540954096,46.608706070607056],[6.801141314131414,46.63000120012001],[6.803409540954096,46.64592279227923],[6.815204320432044,46.64691789178918],[6.837886588658867,46.662839483948396],[6.853764176417642,46.65607280728073],[6.865105310531054,46.65806300630063],[6.871456345634564,46.672989498949896],[6.862837083708372,46.680950295029504],[6.890055805580559,46.69388658865886],[6.903665166516652,46.71378857885789],[6.916367236723673,46.71796799679968],[6.9358739873987405,46.73309350935094],[6.9408640864086415,46.744835683568354],[6.928615661566157,46.75379157915791],[6.919996399639965,46.75100530053005],[6.908201620162017,46.75797099709971],[6.919996399639965,46.75996119611961],[6.934966696669668,46.77070827082708],[6.942225022502251,46.78404260426043],[6.956741674167417,46.78702790279028],[6.966721872187219,46.802949494949495],[6.958102610261027,46.8109102910291],[6.9658145814581465,46.82802600260026],[6.984414041404141,46.82205540554055],[6.992126012601261,46.83081228122812],[6.988043204320433,46.84394759475948],[6.976702070207021,46.849719171917194],[6.976702070207021,46.861063306330635],[6.988496849684969,46.873004500450044],[6.973526552655266,46.88693589358936],[6.958102610261027,46.88096529652965],[6.964453645364538,46.864844684468444],[6.933152115211522,46.89171237123712],[6.929976597659767,46.89907610761076],[6.8959531953195325,46.924749674967494],[6.928615661566157,46.95281148114812],[6.964453645364538,46.923953595359535],[6.988043204320433,46.917783978397836],[6.988043204320433,46.90405160516052],[7.008457245724573,46.88892609260926],[6.99348694869487,46.87897509750975],[7.008003600360037,46.873004500450044],[7.016169216921693,46.88096529652965],[7.035222322232224,46.873004500450044],[7.029778577857787,46.865839783978394],[7.040212421242125,46.861063306330635],[7.028417641764177,46.850913291329135],[7.042934293429344,46.846733873387336],[7.071060306030604,46.873800580058],[7.061987398739875,46.88375157515752],[7.082855085508552,46.89609080908091],[7.091020702070208,46.90285748574858],[7.057904590459047,46.93907910791079],[7.056543654365437,46.95977717771777],[7.062894689468948,46.970723272327234],[7.052007200720073,46.976892889288926],[7.093742574257426,46.97609680968097],[7.153623762376238,46.985848784878485],[7.217134113411342,47.00694489448945],[7.223031503150316,46.993013501350134],[7.236187218721873,46.984853685368535],[7.20715391539154,46.96395659565957],[7.209422142214222,46.9428604860486],[7.203071107110712,46.9368898889889],[7.208061206120613,46.90882808280828],[7.188100810081009,46.89987218721872],[7.208061206120613,46.90285748574858],[7.217134113411342,46.89808100810081],[7.259323132313232,46.89808100810081],[7.282912691269128,46.88972217221722],[7.288356435643565,46.89390159015902],[7.327823582358237,46.89390159015902],[7.351413141314132,46.88793099309931],[7.358671467146715,46.862058405840585],[7.351413141314132,46.85409760976098],[7.33508190819082,46.849719171917194],[7.330999099909992,46.857878987898786],[7.316028802880289,46.863053505350535],[7.301512151215122,46.851908390839085],[7.330999099909992,46.83379757975798],[7.320111611161117,46.82583678367837],[7.32101890189019,46.8148906890689],[7.311038703870388,46.80991519151915],[7.301512151215122,46.793993599359936],[7.303780378037804,46.782848484848486],[7.290171017101711,46.77289748974897],[7.302873087308732,46.75996119611961],[7.296068406840685,46.736874887488746],[7.305141314131414,46.71796799679968],[7.348691269126913,46.71179837983798],[7.344608460846086,46.69906110611061],[7.36320792079208,46.69906110611061],[7.376363636363637,46.693090509050904],[7.378178217821783,46.68373657365736],[7.368198019801981,46.65507770777078],[7.358671467146715,46.64373357335734],[7.344608460846086,46.65507770777078],[7.32101890189019,46.65507770777078],[7.330091809180919,46.64174337433743],[7.312853285328534,46.63696689668967],[7.317843384338435,46.61885608560856],[7.315121512151216,46.5997501750175],[7.32101890189019,46.59178937893789],[7.298790279027903,46.57905210521052],[7.281551755175518,46.58482368236824],[7.259323132313232,46.562931493149314],[7.237094509450946,46.553975597559756]]],[[[6.779366336633664,46.852903490349036],[6.866012601260127,46.90882808280828],[6.8959531953195325,46.88275647564756],[6.9109234923492355,46.88096529652965],[6.9209036903690375,46.871014301430144],[6.891416741674168,46.864844684468444],[6.913191719171918,46.865839783978394],[6.9308838883888395,46.852903490349036],[6.918635463546355,46.846733873387336],[6.903211521152116,46.82802600260026],[6.9109234923492355,46.802949494949495],[6.919996399639965,46.80991519151915],[6.9308838883888395,46.803944594459445],[6.916367236723673,46.78503770377038],[6.880075607560757,46.77508670867087],[6.858754275427543,46.78782398239824],[6.825184518451846,46.77289748974897],[6.805224122412242,46.78603280328033],[6.797965796579659,46.782848484848486],[6.778459045904591,46.793993599359936],[6.778459045904591,46.800959295929594],[6.741713771377138,46.82703090309031],[6.779366336633664,46.852903490349036]]]]}},{"type":"Feature","properties":{"abbr":"SO","name":"Solothurn","no":11,"centroid":[7.638972980845362,47.30448118709367]},"geometry":{"type":"MultiPolygon","coordinates":[[[[7.557821782178219,47.32179437943795],[7.572792079207922,47.3287600760076],[7.551470747074708,47.3450797079708],[7.536500450045005,47.350055205520555],[7.540129612961297,47.36000620062006],[7.521983798379839,47.36478267826783],[7.523344734473448,47.37174837483748],[7.49113591359136,47.36995719571957],[7.458019801980199,47.37075327532753],[7.436698469846985,47.37970917091709],[7.443503150315032,47.38886408640864],[7.4407812781278135,47.401004300430046],[7.453029702970298,47.403989598959896],[7.477980198019803,47.399810181018104],[7.477980198019803,47.38985918591859],[7.492043204320433,47.38508270827083],[7.518354635463547,47.38806800680068],[7.531056705670568,47.403989598959896],[7.526066606660667,47.411950395039504],[7.579596759675969,47.41473667366736],[7.567801980198021,47.42289648964896],[7.568709270927093,47.43603180318032],[7.578689468946895,47.43006120612061],[7.615888388838885,47.43284748474847],[7.615888388838885,47.44498769876988],[7.625868586858687,47.46309850985099],[7.60500090009001,47.471059305930595],[7.605908190819083,47.48897109710971],[7.64083888388839,47.48280148014801],[7.65490189018902,47.48698089808981],[7.651726372637264,47.49593679367937],[7.665789378937895,47.49693189318932],[7.669418541854186,47.48479167916792],[7.699359135913592,47.4810103010301],[7.709339333933394,47.4688700870087],[7.684842484248426,47.44777397739774],[7.686203420342035,47.43603180318032],[7.679398739873988,47.41692589258926],[7.657170117011702,47.408965096509654],[7.63312691269127,47.409960196019604],[7.643560756075608,47.36697189718972],[7.699359135913592,47.37174837483748],[7.727938793879389,47.36896209620962],[7.733382538253826,47.35801600160016],[7.75334293429343,47.3430895089509],[7.768766876687669,47.33871107110711],[7.793717371737174,47.33871107110711],[7.801429342934294,47.36100130013001],[7.833638163816382,47.36697189718972],[7.836360036003601,47.37274347434744],[7.875827182718273,47.38508270827083],[7.869022502250226,47.39503370337034],[7.888075607560757,47.406775877587755],[7.909850585058507,47.3978199819982],[7.932986498649866,47.404785678567855],[7.934347434743475,47.411950395039504],[7.962019801980199,47.42170237023702],[7.946595859585959,47.44279847984799],[7.956576057605761,47.45493869386939],[7.967917191719173,47.46309850985099],[7.98107290729073,47.44876907690769],[7.986516651665167,47.42807100710071],[7.962927092709272,47.42170237023702],[8.00647704770477,47.406775877587755],[8.009652565256527,47.39503370337034],[8.026437443744374,47.39602880288029],[8.030520252025203,47.38289348934894],[8.026437443744374,47.36896209620962],[8.009652565256527,47.35682188218822],[8.00647704770477,47.33871107110711],[7.976082808280829,47.3227894789479],[7.947956795679569,47.31801300130013],[7.947956795679569,47.3329394939494],[7.9189234923492355,47.33393459345935],[7.906675067506751,47.342094409440946],[7.886714671467147,47.31184338433843],[7.859949594959497,47.30487768776877],[7.844072007200721,47.277810981098106],[7.824565256525654,47.26606880688069],[7.818214221422143,47.26188938893889],[7.800975697569758,47.26805900590059],[7.785098109810982,47.25591879187919],[7.77375697569757,47.26706390639064],[7.756972097209722,47.25790899089909],[7.73292889288929,47.25870507050705],[7.72521692169217,47.2698501850185],[7.711607560756076,47.2740296029603],[7.701173717371738,47.286766876687665],[7.684842484248426,47.29373257325732],[7.648550855085509,47.281990399039906],[7.613166516651666,47.280995299529955],[7.579596759675969,47.2760198019802],[7.593659765976598,47.26606880688069],[7.595927992799281,47.24596779677968],[7.625868586858687,47.225866786678665],[7.639477947794781,47.230046204620464],[7.648097209720973,47.21870207020702],[7.6471899189919,47.201785378537856],[7.661706570657066,47.2007902790279],[7.678037803780379,47.18287848784878],[7.673047704770478,47.16775297529753],[7.659438343834384,47.16775297529753],[7.644921692169218,47.14884608460846],[7.639477947794781,47.15402060206021],[7.593206120612062,47.15302550255026],[7.585947794779479,47.14785098509851],[7.581411341134114,47.15879707970797],[7.558729072907291,47.16775297529753],[7.520169216921693,47.15979217921792],[7.528788478847885,47.14884608460846],[7.510189018901891,47.12595879587959],[7.492043204320433,47.11680388038804],[7.461195319531954,47.10784798479848],[7.474351035103511,47.08695089508951],[7.468000000000001,47.07879107910791],[7.4407812781278135,47.07381558155816],[7.433069306930694,47.099887188718874],[7.395870387038705,47.092921492149216],[7.381353735373538,47.095707770777075],[7.370012601260127,47.12098329832983],[7.386343834383439,47.12595879587959],[7.403582358235824,47.11799799979998],[7.436698469846985,47.12277447744774],[7.422181818181819,47.1359097909791],[7.439873987398741,47.1440696069607],[7.449854185418543,47.15601080108011],[7.468000000000001,47.150836283628365],[7.492950495049506,47.162976497649765],[7.496579657965797,47.16994219421942],[7.481155715571558,47.171932393239324],[7.471175517551756,47.18108730873087],[7.474351035103511,47.19083928392839],[7.448039603960397,47.18904810481048],[7.446225022502251,47.18108730873087],[7.4308010801080115,47.18287848784878],[7.432162016201621,47.17571377137714],[7.410840684068408,47.161981398139815],[7.383168316831684,47.15979217921792],[7.39133393339334,47.165762776277624],[7.380900090009002,47.18387358735873],[7.365929792979299,47.19382458245825],[7.353681368136814,47.19183438343834],[7.340072007200721,47.217706970697066],[7.36320792079208,47.219896189618964],[7.42082088208821,47.24278347834783],[7.415830783078309,47.25173937393739],[7.439873987398741,47.26288448844885],[7.468000000000001,47.26507370737074],[7.484331233123313,47.283980598059806],[7.521076507650766,47.29373257325732],[7.531963996399641,47.29373257325732],[7.546480648064807,47.30587278727873],[7.557821782178219,47.32179437943795]]],[[[7.375909990999101,47.41374157415741],[7.380900090009002,47.43185238523852],[7.399953195319533,47.43483768376838],[7.42082088208821,47.44598279827983],[7.438059405940595,47.44598279827983],[7.454390639063907,47.42588178817882],[7.446678667866787,47.41473667366736],[7.413562556255626,47.410955295529554],[7.375909990999101,47.41374157415741]]],[[[7.444410441044105,47.461904390439045],[7.456205220522053,47.472054405440545],[7.422181818181819,47.48379657965796],[7.434430243024303,47.49792699269927],[7.471175517551756,47.48001520152015],[7.487960396039605,47.482005400540054],[7.511096309630964,47.50290249024903],[7.531963996399641,47.49693189318932],[7.536500450045005,47.48479167916792],[7.526520252025203,47.473845584558454],[7.531056705670568,47.460909290929095],[7.495218721872188,47.459914191419145],[7.454390639063907,47.449764176417645],[7.444410441044105,47.461904390439045]]]]}},{"type":"Feature","properties":{"abbr":"BS","name":"Basel-Stadt","no":12,"centroid":[7.615071303770259,47.56462832136231]},"geometry":{"type":"Polygon","coordinates":[[[7.633580558055806,47.56081728172817],[7.618156615661567,47.55902610261026],[7.619517551755177,47.53892509250925],[7.613620162016202,47.53892509250925],[7.593206120612062,47.519819181918194],[7.58322592259226,47.532954495449545],[7.586401440144015,47.54171137113711],[7.555099909991,47.54370157015701],[7.56281188118812,47.55803100310031],[7.555099909991,47.56499669966997],[7.565987398739875,47.576738873887386],[7.585040504050406,47.57594279427943],[7.588669666966697,47.590073207320735],[7.60500090009001,47.58509770977098],[7.60500090009001,47.577733973397336],[7.619517551755177,47.576738873887386],[7.643107110711072,47.591068306830685],[7.645828982898291,47.5968398839884],[7.674862286228624,47.592063406340635],[7.686203420342035,47.56698689868987],[7.648097209720973,47.55982218221822],[7.633580558055806,47.56081728172817]]]}},{"type":"Feature","properties":{"abbr":"BL","name":"Basel-Landschaft","no":13,"centroid":[7.702698349131468,47.4513567170881]},"geometry":{"type":"MultiPolygon","coordinates":[[[[7.436698469846985,47.37970917091709],[7.413562556255626,47.37970917091709],[7.4144698469847,47.39403860386039],[7.398592259225923,47.39682488248825],[7.375909990999101,47.41374157415741],[7.413562556255626,47.410955295529554],[7.446678667866787,47.41473667366736],[7.454390639063907,47.42588178817882],[7.438059405940595,47.44598279827983],[7.42082088208821,47.44598279827983],[7.429893789378939,47.4587200720072],[7.444410441044105,47.461904390439045],[7.454390639063907,47.449764176417645],[7.495218721872188,47.459914191419145],[7.531056705670568,47.460909290929095],[7.526520252025203,47.473845584558454],[7.536500450045005,47.48479167916792],[7.531963996399641,47.49693189318932],[7.511096309630964,47.50290249024903],[7.506106210621063,47.51404760476048],[7.523344734473448,47.51504270427043],[7.531056705670568,47.526784878487845],[7.518354635463547,47.53474567456745],[7.502023402340235,47.5277799779978],[7.498394239423943,47.5399201920192],[7.518354635463547,47.54589078907891],[7.555099909991,47.56499669966997],[7.56281188118812,47.55803100310031],[7.555099909991,47.54370157015701],[7.586401440144015,47.54171137113711],[7.58322592259226,47.532954495449545],[7.593206120612062,47.519819181918194],[7.613620162016202,47.53892509250925],[7.619517551755177,47.53892509250925],[7.618156615661567,47.55902610261026],[7.633580558055806,47.56081728172817],[7.648550855085509,47.5480800080008],[7.661706570657066,47.54489568956895],[7.676223222322233,47.532954495449545],[7.693008100810082,47.531959395939595],[7.713422142214222,47.53892509250925],[7.737011701170118,47.526784878487845],[7.762869486948696,47.524794679467945],[7.790088208820883,47.51882408240824],[7.792810081008102,47.50071327132713],[7.806419441944195,47.49693189318932],[7.8313699369937,47.51504270427043],[7.833184518451846,47.5337505750575],[7.851330333033304,47.53474567456745],[7.864032403240325,47.51882408240824],[7.874466246624664,47.51782898289829],[7.893972997299731,47.50608680868087],[7.9039531953195326,47.48698089808981],[7.932986498649866,47.4810103010301],[7.944327632763277,47.48598579857986],[7.939791179117913,47.461904390439045],[7.9488640864086415,47.46409360936094],[7.956576057605761,47.45493869386939],[7.946595859585959,47.44279847984799],[7.962019801980199,47.42170237023702],[7.934347434743475,47.411950395039504],[7.932986498649866,47.404785678567855],[7.909850585058507,47.3978199819982],[7.888075607560757,47.406775877587755],[7.869022502250226,47.39503370337034],[7.875827182718273,47.38508270827083],[7.836360036003601,47.37274347434744],[7.833638163816382,47.36697189718972],[7.801429342934294,47.36100130013001],[7.793717371737174,47.33871107110711],[7.768766876687669,47.33871107110711],[7.75334293429343,47.3430895089509],[7.733382538253826,47.35801600160016],[7.727938793879389,47.36896209620962],[7.699359135913592,47.37174837483748],[7.643560756075608,47.36697189718972],[7.63312691269127,47.409960196019604],[7.657170117011702,47.408965096509654],[7.679398739873988,47.41692589258926],[7.686203420342035,47.43603180318032],[7.684842484248426,47.44777397739774],[7.709339333933394,47.4688700870087],[7.699359135913592,47.4810103010301],[7.669418541854186,47.48479167916792],[7.665789378937895,47.49693189318932],[7.651726372637264,47.49593679367937],[7.65490189018902,47.48698089808981],[7.64083888388839,47.48280148014801],[7.605908190819083,47.48897109710971],[7.60500090009001,47.471059305930595],[7.625868586858687,47.46309850985099],[7.615888388838885,47.44498769876988],[7.615888388838885,47.43284748474847],[7.578689468946895,47.43006120612061],[7.568709270927093,47.43603180318032],[7.567801980198021,47.42289648964896],[7.579596759675969,47.41473667366736],[7.526066606660667,47.411950395039504],[7.531056705670568,47.403989598959896],[7.518354635463547,47.38806800680068],[7.492043204320433,47.38508270827083],[7.477980198019803,47.38985918591859],[7.477980198019803,47.399810181018104],[7.453029702970298,47.403989598959896],[7.4407812781278135,47.401004300430046],[7.443503150315032,47.38886408640864],[7.436698469846985,47.37970917091709]]],[[[7.375909990999101,47.41374157415741],[7.356403240324033,47.41473667366736],[7.340072007200721,47.43006120612061],[7.326009000900091,47.43185238523852],[7.326009000900091,47.43981318131813],[7.346423042304231,47.43483768376838],[7.380900090009002,47.43185238523852],[7.375909990999101,47.41374157415741]]]]}},{"type":"Feature","properties":{"abbr":"SH","name":"Schaffhausen","no":14,"centroid":[8.592669293253277,47.71360897867118]},"geometry":{"type":"MultiPolygon","coordinates":[[[[8.662448244824484,47.68600080008001],[8.64248784878488,47.69495669566957],[8.624795679567958,47.69197139713972],[8.62706390639064,47.6780400040004],[8.613454545454546,47.6780400040004],[8.606196219621964,47.66908410841084],[8.598030603060307,47.67286548654865],[8.579431143114313,47.6617203720372],[8.564007200720074,47.67007920792079],[8.526354635463548,47.65992919291929],[8.531798379837985,47.645798779877985],[8.49278487848785,47.646793879387936],[8.466473447344736,47.641022302230226],[8.466019801980199,47.65674487448745],[8.456493249324932,47.652963496349635],[8.436532853285328,47.65674487448745],[8.423830783078309,47.66709390939094],[8.412036003600361,47.665899789979],[8.406138613861387,47.67485568556856],[8.420655265526554,47.68401060106011],[8.403870387038705,47.69774297429743],[8.445152115211522,47.72281948194819],[8.455132313231324,47.722023402340234],[8.449688568856887,47.73794499449945],[8.456039603960397,47.74889108910891],[8.485980198019803,47.771977397739775],[8.509569756975699,47.77575877587759],[8.519549954995501,47.769987198719875],[8.52590099009901,47.77794799479948],[8.553119711971199,47.78471467146715],[8.565821782178219,47.77794799479948],[8.57716291629163,47.78172937293729],[8.561738973897391,47.79287448744874],[8.568090009000901,47.808],[8.574894689468948,47.7998401840184],[8.611186318631864,47.8018303830383],[8.621620162016203,47.79486468646865],[8.614815481548156,47.78272447244724],[8.622527452745276,47.77675387538754],[8.618898289828984,47.766802880288026],[8.627971197119713,47.75884208420842],[8.652921692169219,47.772972497249725],[8.644756075607562,47.78690389038904],[8.657004500450046,47.7998401840184],[8.666984698469848,47.78809800980098],[8.681047704770478,47.78690389038904],[8.682408640864088,47.770982298229825],[8.69238883888389,47.75605580558056],[8.71144194419442,47.76501170117012],[8.725958595859588,47.76302150215022],[8.740021602160217,47.75307050705071],[8.739114311431145,47.74590579057906],[8.723690369036905,47.74590579057906],[8.710988298829884,47.72998419841984],[8.717792979297931,47.722023402340234],[8.735485148514853,47.715853785378535],[8.727773177317733,47.69296649664967],[8.717792979297931,47.690777277727776],[8.701461746174619,47.714858685868585],[8.690120612061207,47.708888088808884],[8.663809180918093,47.713067506750676],[8.67696489648965,47.69774297429743],[8.660180018001801,47.690777277727776],[8.662448244824484,47.68600080008001]]],[[[8.795366336633665,47.6760498049805],[8.796727272727274,47.702917491749176],[8.768601260126013,47.706897889788976],[8.771323132313231,47.71784398439844],[8.795366336633665,47.7349596959696],[8.806707470747076,47.7369498949895],[8.804439243924394,47.72580478047805],[8.82394599459946,47.711077307730775],[8.846174617461747,47.711077307730775],[8.84844284428443,47.702917491749176],[8.870671467146716,47.704708670867085],[8.87520792079208,47.69396159615962],[8.862052205220524,47.69296649664967],[8.84980378037804,47.68082628262826],[8.863866786678669,47.67903510351035],[8.872939693969398,47.67007920792079],[8.87520792079208,47.654754675467544],[8.857515751575159,47.64878407840784],[8.844360036003602,47.652963496349635],[8.853886588658867,47.66092429242924],[8.836194419441945,47.6718703870387],[8.816687668766878,47.6780400040004],[8.795366336633665,47.6760498049805]]],[[[8.562646264626464,47.59902910291029],[8.581699369936995,47.595844784478444],[8.595762376237625,47.60579577957796],[8.594855085508552,47.5968398839884],[8.578070207020703,47.58887908790879],[8.579431143114313,47.57594279427943],[8.56945094509451,47.57196239623963],[8.559470747074709,47.55285648564856],[8.550851485148517,47.55703590359036],[8.53497389738974,47.586888888888886],[8.562646264626464,47.59902910291029]]]]}},{"type":"Feature","properties":{"abbr":"AR","name":"Appenzell Ausserrhoden","no":15,"centroid":[9.36701599748908,47.365427898323425]},"geometry":{"type":"Polygon","coordinates":[[[9.617825382538255,47.43702690269027],[9.558851485148516,47.43384258425843],[9.582441044104412,47.41991119111911],[9.582441044104412,47.409960196019604],[9.554768676867688,47.39682488248825],[9.541612961296131,47.40777097709771],[9.573368136813682,47.406775877587755],[9.576997299729975,47.41473667366736],[9.558851485148516,47.41792099209921],[9.554768676867688,47.42707590759076],[9.538891089108912,47.43185238523852],[9.5225598559856,47.42090629062906],[9.53299369936994,47.410955295529554],[9.515755175517553,47.405780778077805],[9.508950495049506,47.39503370337034],[9.498970297029704,47.36896209620962],[9.502599459945996,47.346870887088706],[9.487175517551757,47.350055205520555],[9.465854185418543,47.346870887088706],[9.43818181818182,47.355826782678264],[9.430923492349237,47.37075327532753],[9.411870387038705,47.36896209620962],[9.400529252925294,47.37791799179918],[9.371949594959498,47.38408760876088],[9.349720972097211,47.38289348934894],[9.36378397839784,47.35801600160016],[9.343823582358237,47.352045404540455],[9.328853285328535,47.330750275027505],[9.314336633663368,47.32696889688969],[9.31796579657966,47.30905710571057],[9.312975697569758,47.291941394139414],[9.332936093609362,47.2698501850185],[9.342916291629164,47.24895309530953],[9.31796579657966,47.24795799579958],[9.273962196219623,47.2698501850185],[9.255816381638166,47.26288448844885],[9.236763276327634,47.26507370737074],[9.205461746174619,47.276815881588156],[9.224061206120613,47.29273747374737],[9.209998199819983,47.32079927992799],[9.233134113411342,47.33194439443945],[9.22451485148515,47.342094409440946],[9.205461746174619,47.33871107110711],[9.19139873987399,47.36179737973797],[9.207729972997301,47.36179737973797],[9.220885688568858,47.37274347434744],[9.218617461746176,47.38508270827083],[9.23086588658866,47.38707290729073],[9.233134113411342,47.3978199819982],[9.272147614761478,47.401004300430046],[9.303902790279029,47.39503370337034],[9.325224122412243,47.401004300430046],[9.35743294329433,47.401999399939996],[9.382837083708372,47.406775877587755],[9.401890189018903,47.401004300430046],[9.425933393339335,47.406775877587755],[9.435006300630064,47.42090629062906],[9.435913591359137,47.43483768376838],[9.449522952295231,47.43085728572857],[9.531179117911792,47.45394359435944],[9.526189018901892,47.461904390439045],[9.542520252025204,47.4688700870087],[9.546149414941496,47.46309850985099],[9.583801980198022,47.461904390439045],[9.62100090009001,47.44777397739774],[9.63007380738074,47.43981318131813],[9.617825382538255,47.43702690269027]]]}},{"type":"Feature","properties":{"abbr":"SG","name":"St. Gallen","no":17,"centroid":[9.27517713240211,47.2337565774484]},"geometry":{"type":"MultiPolygon","coordinates":[[[[9.004950495049506,47.17272847284728],[9.003589558955897,47.17272847284728],[8.981814581458147,47.18287848784878],[8.961854185418543,47.18009220922092],[8.958225022502251,47.198800080008],[8.965029702970298,47.19800400040004],[8.969566156615663,47.217706970697066],[8.940986498649867,47.217706970697066],[8.841184518451847,47.20775597559756],[8.828482448244825,47.20875107510751],[8.808068406840686,47.220891289128915],[8.795366336633665,47.23900210021002],[8.803078307830784,47.24696289628963],[8.826214221422143,47.25074427442744],[8.837555355535555,47.24696289628963],[8.869764176417643,47.24477367736774],[8.872939693969398,47.25173937393739],[8.93282088208821,47.25870507050705],[8.944162016201622,47.26885508550855],[8.947337533753377,47.281990399039906],[8.93418181818182,47.28776197619762],[8.948698469846985,47.291941394139414],[8.956410441044106,47.30487768776877],[8.9750099009901,47.30706690669067],[8.984990099009902,47.31900810081008],[8.97637083708371,47.32696889688969],[8.978639063906392,47.337715971597156],[8.971834383438345,47.352045404540455],[8.96094689468947,47.355826782678264],[8.944162016201622,47.37592779277928],[8.971834383438345,47.390854285428546],[8.97637083708371,47.410955295529554],[8.98907290729073,47.410955295529554],[8.989526552655267,47.42906610661066],[9.011755175517553,47.43284748474847],[9.021735373537355,47.44180338033804],[9.028086408640865,47.43702690269027],[9.063017101710173,47.44598279827983],[9.027179117911793,47.457724972497246],[9.02491089108911,47.4688700870087],[9.010394239423944,47.472054405440545],[9.003589558955897,47.4810103010301],[9.009486948694871,47.48797599759976],[9.043056705670569,47.49494169416942],[9.056212421242126,47.48698089808981],[9.081616561656165,47.49494169416942],[9.089328532853287,47.482005400540054],[9.141497749774977,47.48379657965796],[9.1591899189919,47.48996619661966],[9.16554095409541,47.50389758975898],[9.18232583258326,47.49076227622762],[9.209998199819983,47.48897109710971],[9.21816381638164,47.48379657965796],[9.263074707470748,47.474840684068404],[9.278045004500452,47.4790201020102],[9.303902790279029,47.4790201020102],[9.319780378037805,47.49693189318932],[9.307531953195321,47.49792699269927],[9.311161116111613,47.50986818681868],[9.302995499549956,47.51603780378038],[9.28076687668767,47.50608680868087],[9.28212781278128,47.521013301330136],[9.316604860486049,47.530964296429644],[9.337926192619264,47.528974097409744],[9.342916291629164,47.519819181918194],[9.356072007200721,47.519819181918194],[9.340648064806482,47.50389758975898],[9.37421782178218,47.49971817181718],[9.37285688568857,47.48996619661966],[9.396446444644464,47.474840684068404],[9.405972997299731,47.49374757475748],[9.428655265526555,47.50290249024903],[9.502599459945996,47.54688588858886],[9.51484788478848,47.53673587358736],[9.551139513951396,47.53673587358736],[9.5661098109811,47.49175737573757],[9.58017281728173,47.48379657965796],[9.594689468946896,47.46309850985099],[9.60693789378938,47.470064206420645],[9.624630063006302,47.456729872987296],[9.643683168316834,47.455734773477346],[9.659107110711073,47.44876907690769],[9.643683168316834,47.43483768376838],[9.650941494149416,47.404785678567855],[9.674077407740775,47.390854285428546],[9.673170117011702,47.380704270427046],[9.657746174617463,47.36896209620962],[9.62372277227723,47.36577777777778],[9.601494149414943,47.34886108610861],[9.590153015301532,47.32179437943795],[9.57881188118812,47.30905710571057],[9.553407740774079,47.29373257325732],[9.547056705670569,47.279801180118014],[9.529364536453647,47.270845284528455],[9.518930693069308,47.24178837883788],[9.503960396039606,47.22507070707071],[9.489443744374439,47.19800400040004],[9.485814581458147,47.17790299029903],[9.494887488748876,47.156806880688066],[9.513033303330335,47.1317303730373],[9.519384338433845,47.103071507150716],[9.515755175517553,47.08774697469747],[9.474927092709272,47.06585478547855],[9.475834383438345,47.05192339233923],[9.508043204320433,47.01709490949095],[9.518930693069308,46.99997919791979],[9.546149414941496,46.976892889288926],[9.519384338433845,46.970723272327234],[9.518023402340235,46.95599579957996],[9.504867686768678,46.95380658065807],[9.479463546354637,46.925744774477444],[9.48808280828083,46.912012401240126],[9.467215121512153,46.89987218721872],[9.467215121512153,46.88594079407941],[9.453605760576059,46.88594079407941],[9.449069306930694,46.873004500450044],[9.43319171917192,46.88474667466747],[9.3819297929793,46.89808100810081],[9.360608460846086,46.89708590859086],[9.3383798379838,46.90186238623862],[9.27441584158416,46.90703690369037],[9.26670387038704,46.90405160516052],[9.249011701170119,46.915793779377935],[9.249918991899191,46.935894789478944],[9.235855985598562,46.94485068506851],[9.244475247524754,46.95599579957996],[9.249918991899191,46.99480468046804],[9.243114311431144,47.01490569056906],[9.221339333933393,47.03301650165017],[9.20137893789379,47.03500670067007],[9.18096489648965,47.02605080508051],[9.163726372637264,47.02704590459046],[9.137868586858687,47.03878807880788],[9.181418541854185,47.05809300930093],[9.19139873987399,47.0728204820482],[9.185501350135015,47.09789698969897],[9.19003780378038,47.12376957695769],[9.136054005400542,47.1317303730373],[9.10157695769577,47.13272547254726],[9.068914491449146,47.1297401740174],[9.009033303330334,47.171932393239324],[9.004950495049506,47.17272847284728]],[[9.342916291629164,47.24895309530953],[9.36378397839784,47.24377857785778],[9.3819297929793,47.23382758275827],[9.401890189018903,47.23800700070007],[9.41867506750675,47.24795799579958],[9.43818181818182,47.25074427442744],[9.473112511251127,47.27303450345035],[9.48808280828083,47.28776197619762],[9.488990099009902,47.302091409140914],[9.501692169216923,47.32975517551755],[9.502599459945996,47.346870887088706],[9.498970297029704,47.36896209620962],[9.508950495049506,47.39503370337034],[9.542520252025204,47.399810181018104],[9.554768676867688,47.39682488248825],[9.582441044104412,47.409960196019604],[9.604669666966698,47.41374157415741],[9.58788478847885,47.42488668866886],[9.617825382538255,47.43702690269027],[9.63007380738074,47.43981318131813],[9.62100090009001,47.44777397739774],[9.583801980198022,47.461904390439045],[9.546149414941496,47.46309850985099],[9.542520252025204,47.4688700870087],[9.526189018901892,47.461904390439045],[9.531179117911792,47.45394359435944],[9.449522952295231,47.43085728572857],[9.435913591359137,47.43483768376838],[9.435006300630064,47.42090629062906],[9.425933393339335,47.406775877587755],[9.401890189018903,47.401004300430046],[9.382837083708372,47.406775877587755],[9.35743294329433,47.401999399939996],[9.325224122412243,47.401004300430046],[9.303902790279029,47.39503370337034],[9.272147614761478,47.401004300430046],[9.233134113411342,47.3978199819982],[9.23086588658866,47.38707290729073],[9.218617461746176,47.38508270827083],[9.220885688568858,47.37274347434744],[9.207729972997301,47.36179737973797],[9.19139873987399,47.36179737973797],[9.205461746174619,47.33871107110711],[9.22451485148515,47.342094409440946],[9.233134113411342,47.33194439443945],[9.209998199819983,47.32079927992799],[9.224061206120613,47.29273747374737],[9.205461746174619,47.276815881588156],[9.236763276327634,47.26507370737074],[9.255816381638166,47.26288448844885],[9.273962196219623,47.2698501850185],[9.31796579657966,47.24795799579958],[9.342916291629164,47.24895309530953]]]]}},{"type":"Feature","properties":{"abbr":"AI","name":"Appenzell Innerrhoden","no":16,"centroid":[9.416055917697568,47.317434224349675]},"geometry":{"type":"MultiPolygon","coordinates":[[[[9.502599459945996,47.346870887088706],[9.501692169216923,47.32975517551755],[9.488990099009902,47.302091409140914],[9.48808280828083,47.28776197619762],[9.473112511251127,47.27303450345035],[9.43818181818182,47.25074427442744],[9.41867506750675,47.24795799579958],[9.401890189018903,47.23800700070007],[9.3819297929793,47.23382758275827],[9.36378397839784,47.24377857785778],[9.342916291629164,47.24895309530953],[9.332936093609362,47.2698501850185],[9.312975697569758,47.291941394139414],[9.31796579657966,47.30905710571057],[9.314336633663368,47.32696889688969],[9.328853285328535,47.330750275027505],[9.343823582358237,47.352045404540455],[9.36378397839784,47.35801600160016],[9.349720972097211,47.38289348934894],[9.371949594959498,47.38408760876088],[9.400529252925294,47.37791799179918],[9.411870387038705,47.36896209620962],[9.430923492349237,47.37075327532753],[9.43818181818182,47.355826782678264],[9.465854185418543,47.346870887088706],[9.487175517551757,47.350055205520555],[9.502599459945996,47.346870887088706]]],[[[9.554768676867688,47.39682488248825],[9.542520252025204,47.399810181018104],[9.508950495049506,47.39503370337034],[9.515755175517553,47.405780778077805],[9.53299369936994,47.410955295529554],[9.5225598559856,47.42090629062906],[9.538891089108912,47.43185238523852],[9.554768676867688,47.42707590759076],[9.558851485148516,47.41792099209921],[9.576997299729975,47.41473667366736],[9.573368136813682,47.406775877587755],[9.541612961296131,47.40777097709771],[9.554768676867688,47.39682488248825]]],[[[9.617825382538255,47.43702690269027],[9.58788478847885,47.42488668866886],[9.604669666966698,47.41374157415741],[9.582441044104412,47.409960196019604],[9.582441044104412,47.41991119111911],[9.558851485148516,47.43384258425843],[9.617825382538255,47.43702690269027]]]]}},{"type":"Feature","properties":{"abbr":"AG","name":"Aargau","no":19,"centroid":[8.156747028479444,47.40928349990171]},"geometry":{"type":"Polygon","coordinates":[[[8.411128712871289,47.24795799579958],[8.39434383438344,47.225866786678665],[8.406138613861387,47.19501870187019],[8.40205580558056,47.17690789078908],[8.415211521152116,47.165762776277624],[8.412036003600361,47.14088528852885],[8.376198019801981,47.13909410941094],[8.362135013501351,47.1460598059806],[8.358052205220524,47.156806880688066],[8.33809180918092,47.17909710971097],[8.325389738973898,47.21492069206921],[8.314502250225024,47.231041304130414],[8.314502250225024,47.23999719971997],[8.29590279027903,47.25870507050705],[8.299985598559857,47.270845284528455],[8.2868298829883,47.278806080608064],[8.25099189918992,47.285771777177715],[8.241465346534653,47.2720394039404],[8.227855985598561,47.27303450345035],[8.220144014401441,47.25273447344735],[8.207895589558957,47.24795799579958],[8.204720072007202,47.225866786678665],[8.176140414041406,47.222085408540856],[8.156180018001802,47.23900210021002],[8.174779477947796,47.23999719971997],[8.174779477947796,47.25273447344735],[8.131683168316833,47.24596779677968],[8.124878487848786,47.24099229922992],[8.10900090009001,47.24477367736774],[8.099020702070208,47.25989918991899],[8.088133213321333,47.26288448844885],[8.072709270927094,47.25492369236924],[8.055924392439245,47.25591879187919],[8.063182718271829,47.24696289628963],[8.029612961296131,47.24178837883788],[8.015096309630964,47.24377857785778],[8.016003600360037,47.25989918991899],[7.99513591359136,47.281990399039906],[7.986516651665167,47.2760198019802],[7.956122412241225,47.276815881588156],[7.9488640864086415,47.27303450345035],[7.961112511251126,47.2537295729573],[7.932986498649866,47.23581778177818],[7.909850585058507,47.24377857785778],[7.868115211521153,47.23681288128813],[7.854052205220523,47.232036403640365],[7.83908190819082,47.23382758275827],[7.825926192619263,47.24596779677968],[7.824565256525654,47.26606880688069],[7.844072007200721,47.277810981098106],[7.859949594959497,47.30487768776877],[7.886714671467147,47.31184338433843],[7.906675067506751,47.342094409440946],[7.9189234923492355,47.33393459345935],[7.947956795679569,47.3329394939494],[7.947956795679569,47.31801300130013],[7.976082808280829,47.3227894789479],[8.00647704770477,47.33871107110711],[8.009652565256527,47.35682188218822],[8.026437443744374,47.36896209620962],[8.030520252025203,47.38289348934894],[8.026437443744374,47.39602880288029],[8.009652565256527,47.39503370337034],[8.00647704770477,47.406775877587755],[7.962927092709272,47.42170237023702],[7.986516651665167,47.42807100710071],[7.98107290729073,47.44876907690769],[7.967917191719173,47.46309850985099],[7.956576057605761,47.45493869386939],[7.9488640864086415,47.46409360936094],[7.939791179117913,47.461904390439045],[7.944327632763277,47.48598579857986],[7.932986498649866,47.4810103010301],[7.9039531953195326,47.48698089808981],[7.893972997299731,47.50608680868087],[7.874466246624664,47.51782898289829],[7.864032403240325,47.51882408240824],[7.851330333033304,47.53474567456745],[7.833184518451846,47.5337505750575],[7.8313699369937,47.51504270427043],[7.806419441944195,47.49693189318932],[7.792810081008102,47.50071327132713],[7.790088208820883,47.51882408240824],[7.762869486948696,47.524794679467945],[7.737011701170118,47.526784878487845],[7.713422142214222,47.53892509250925],[7.751074707470748,47.54370157015701],[7.758786678667867,47.54907510751075],[7.783737173717372,47.55285648564856],[7.810048604860487,47.56778297829783],[7.818214221422143,47.586888888888886],[7.846340234023403,47.581913391339135],[7.86085688568857,47.587883988398836],[7.892158415841585,47.587883988398836],[7.911211521152116,47.570768276827685],[7.906675067506751,47.55902610261026],[7.918016201620163,47.54688588858886],[7.946595859585959,47.54370157015701],[7.956122412241225,47.55803100310031],[7.972907290729074,47.55484668466847],[8.00284788478848,47.55604080408041],[8.018725472547256,47.5500702070207],[8.046397839783978,47.55484668466847],[8.069080108010802,47.56499669966997],[8.083143114311433,47.55703590359036],[8.099474347434745,47.56280748074808],[8.103103510351037,47.576738873887386],[8.112630063006302,47.583903590359036],[8.13712691269127,47.583903590359036],[8.138034203420343,47.591068306830685],[8.165706570657067,47.594053605360536],[8.183398739873988,47.60380558055805],[8.201544554455445,47.62072227222722],[8.220144014401441,47.61793599359936],[8.223319531953196,47.60579577957796],[8.237836183618363,47.61276147614761],[8.26006480648065,47.61495069506951],[8.264601260126014,47.6089800980098],[8.2868298829883,47.61077127712771],[8.298171017101712,47.60480068006801],[8.29454185418542,47.593058505850586],[8.323121512151216,47.57295749574958],[8.376198019801981,47.56778297829783],[8.3839099909991,47.56499669966997],[8.39434383438344,47.576738873887386],[8.426099009900991,47.56778297829783],[8.417933393339336,47.56400160016002],[8.402963096309632,47.532954495449545],[8.380734473447346,47.524794679467945],[8.376651665166518,47.511858385838586],[8.360774077407742,47.50986818681868],[8.358052205220524,47.49693189318932],[8.363949594959497,47.4810103010301],[8.373022502250226,47.4810103010301],[8.366217821782179,47.470064206420645],[8.38663186318632,47.44876907690769],[8.384363636363638,47.43702690269027],[8.374383438343836,47.43006120612061],[8.387539153915393,47.42807100710071],[8.392075607560757,47.41991119111911],[8.384363636363638,47.405780778077805],[8.366217821782179,47.401999399939996],[8.392075607560757,47.39602880288029],[8.393890189018903,47.380704270427046],[8.406592259225924,47.36995719571957],[8.403870387038705,47.346870887088706],[8.416572457245724,47.33393459345935],[8.416118811881189,47.32398359835984],[8.449688568856887,47.32975517551755],[8.446059405940595,47.31980418041804],[8.431996399639965,47.31184338433843],[8.4274599459946,47.301096309630964],[8.415211521152116,47.29273747374737],[8.388900090009002,47.289951195119514],[8.40205580558056,47.2740296029603],[8.402963096309632,47.2537295729573],[8.411128712871289,47.24795799579958]]]}},{"type":"Feature","properties":{"abbr":"GR","name":"Graubünden/Grigioni","no":18,"centroid":[9.627882879545327,46.656113814899264]},"geometry":{"type":"Polygon","coordinates":[[[9.1591899189919,46.17006620662066],[9.131517551755177,46.18399759975998],[9.111103510351036,46.204894689468944],[9.08887488748875,46.21205940594059],[9.07617281728173,46.23773297329733],[9.077987398739875,46.260023202320234],[9.063470747074708,46.2727604760476],[9.053944194419444,46.29186638663866],[9.07481188118812,46.314952695269525],[9.063470747074708,46.326893889388934],[9.071182718271828,46.34381058105811],[9.087967596759677,46.34978117811781],[9.094772277227724,46.373066506650666],[9.087060306030605,46.38898809880988],[9.096133213321334,46.39993419341934],[9.089328532853287,46.40709890989099],[9.10157695769577,46.4108802880288],[9.08887488748875,46.431976397639765],[9.087060306030605,46.44371857185718],[9.094772277227724,46.46003820382038],[9.084792079207922,46.47496469646965],[9.073904590459048,46.47974117411741],[9.061202520252026,46.4759597959796],[9.044871287128714,46.480736273627365],[9.03262286228623,46.502031403140315],[9.0235499549955,46.50780298029803],[9.01719891989199,46.53188438843884],[9.019013501350136,46.547805980598056],[9.029447344734475,46.571091309130914],[9.043056705670569,46.58900310031003],[9.005857785778579,46.610895289528955],[8.995877587758777,46.611890389038905],[8.972741674167418,46.60293449344935],[8.961854185418543,46.60293449344935],[8.963215121512153,46.617860986098606],[8.956410441044106,46.63000120012001],[8.94189378937894,46.61885608560856],[8.922840684068408,46.623035503550355],[8.905148514851486,46.611890389038905],[8.916489648964898,46.59696389638964],[8.907416741674169,46.58701290129013],[8.876115211521153,46.57487268726872],[8.853886588658867,46.570096209620964],[8.842999099909992,46.562931493149314],[8.829843384338435,46.571091309130914],[8.800810081008102,46.562931493149314],[8.750909090909092,46.57586778677867],[8.739114311431145,46.572086408640864],[8.727773177317733,46.57686288628863],[8.717792979297931,46.571091309130914],[8.697832583258327,46.58104230423042],[8.67877947794779
gitextract_r_op4bg4/
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── NOTICE
├── README.md
├── examples/
│ ├── .storybook/
│ │ ├── config.js
│ │ ├── styles.css
│ │ └── webpack.config.js
│ ├── package.json
│ ├── public/
│ │ └── data/
│ │ ├── flows-2015.json
│ │ ├── flows-2016.json
│ │ ├── flows-diff-2015-2016.json
│ │ ├── locations.json
│ │ └── source.url
│ ├── src/
│ │ ├── components/
│ │ │ ├── ClusteringExample.tsx
│ │ │ └── Example.tsx
│ │ ├── index.tsx
│ │ ├── stories/
│ │ │ └── index.tsx
│ │ └── utils/
│ │ ├── pipe.ts
│ │ ├── withFetch.tsx
│ │ ├── withSheetsFetch.tsx
│ │ └── withStats.tsx
│ └── tsconfig.json
├── lerna.json
├── package.json
├── packages/
│ ├── cluster/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ClusterIndex.ts
│ │ │ ├── cluster.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── tsconfig.build.esm.json
│ │ ├── tsconfig.build.json
│ │ └── tsconfig.json
│ ├── core/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── AnimatedFlowLinesLayer/
│ │ │ │ ├── AnimatedFlowLinesLayer.ts
│ │ │ │ ├── AnimatedFlowLinesLayerFragment.glsl.ts
│ │ │ │ ├── AnimatedFlowLinesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowCirclesLayer/
│ │ │ │ ├── FlowCirclesLayer.ts
│ │ │ │ ├── FlowCirclesLayerFragment.glsl.ts
│ │ │ │ ├── FlowCirclesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowLinesLayer/
│ │ │ │ ├── FlowLinesLayer.ts
│ │ │ │ ├── FlowLinesLayerFragment.glsl.ts
│ │ │ │ ├── FlowLinesLayerVertex.glsl.ts
│ │ │ │ └── index.ts
│ │ │ ├── FlowMapLayer.ts
│ │ │ ├── LayerProps.ts
│ │ │ ├── Selectors.ts
│ │ │ ├── colors.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── tsconfig.build.esm.json
│ │ ├── tsconfig.build.json
│ │ └── tsconfig.json
│ └── react/
│ ├── package.json
│ ├── src/
│ │ ├── FlowMap.tsx
│ │ ├── index.ts
│ │ ├── legend/
│ │ │ ├── DiffColorsLegend.tsx
│ │ │ ├── Disc.tsx
│ │ │ ├── LegendBox.tsx
│ │ │ └── LocationTotalsLegend.tsx
│ │ └── viewport.ts
│ ├── tsconfig.build.esm.json
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── tslint.json
└── typings/
├── deck.gl.d.ts
├── kdbush.d.ts
├── luma.gl.d.ts
└── react-map-gl.d.ts
SYMBOL INDEX (195 symbols across 23 files)
FILE: examples/.storybook/config.js
function loadStories (line 24) | function loadStories() {
FILE: examples/src/components/ClusteringExample.tsx
type Props (line 24) | interface Props extends FlowAccessors, LocationAccessors {
type State (line 30) | interface State {
class ClusteringExample (line 35) | class ClusteringExample extends React.Component<Props, State> {
method constructor (line 39) | constructor(props: Props) {
method render (line 83) | render() {
FILE: examples/src/components/Example.tsx
constant SHOW_TOP_FLOWS (line 24) | const SHOW_TOP_FLOWS = 10000;
type Props (line 26) | interface Props extends FlowAccessors, LocationAccessors {
type State (line 32) | interface State {
class Example (line 51) | class Example extends React.Component<Props, State> {
method constructor (line 57) | constructor(props: Props) {
method renderTooltip (line 86) | renderTooltip() {
method render (line 108) | render() {
FILE: examples/src/stories/index.tsx
constant DARK_COLORS (line 34) | const DARK_COLORS = {
FILE: examples/src/utils/withFetch.tsx
class Fetcher (line 26) | class Fetcher extends React.Component {
method componentDidMount (line 31) | componentDidMount() {
method render (line 50) | render() {
FILE: examples/src/utils/withStats.tsx
function withStats (line 21) | function withStats<P>(Comp: React.ComponentType<P>) {
FILE: packages/cluster/src/ClusterIndex.ts
type FlowItem (line 22) | type FlowItem = Flow | AggregateFlow;
type LocationWeightGetter (line 23) | type LocationWeightGetter = (id: string) => number;
type ClusterIndex (line 28) | interface ClusterIndex {
function buildIndex (line 63) | function buildIndex(clusterLevels: ClusterLevels): ClusterIndex {
function makeLocationWeightGetter (line 203) | function makeLocationWeightGetter(
function findAppropriateZoomLevel (line 226) | function findAppropriateZoomLevel(availableZoomLevels: number[], targetZ...
FILE: packages/cluster/src/cluster.ts
type Options (line 44) | interface Options {
type BasePoint (line 64) | interface BasePoint {
type LeafPoint (line 72) | interface LeafPoint extends BasePoint {
type ClusterPoint (line 76) | interface ClusterPoint extends BasePoint {
type Point (line 81) | type Point = LeafPoint | ClusterPoint;
function isLeafPoint (line 83) | function isLeafPoint(p: Point): p is LeafPoint {
function isClusterPoint (line 88) | function isClusterPoint(p: Point): p is ClusterPoint {
type ZoomLevelKDBush (line 93) | type ZoomLevelKDBush = any;
function clusterLocations (line 95) | function clusterLocations(
function createCluster (line 185) | function createCluster(x: number, y: number, id: number, numPoints: numb...
function cluster (line 197) | function cluster(points: Point[], zoom: number, tree: ZoomLevelKDBush, o...
function xLng (line 252) | function xLng(x: number) {
function yLat (line 256) | function yLat(y: number) {
function lngX (line 262) | function lngX(lng: number) {
function latY (line 266) | function latY(lat: number) {
function getX (line 272) | function getX(p: Point) {
function getY (line 276) | function getY(p: Point) {
FILE: packages/cluster/src/types.ts
type ClusterNode (line 20) | interface ClusterNode {
type ClusterLevel (line 26) | interface ClusterLevel {
type ClusterLevels (line 31) | type ClusterLevels = ClusterLevel[];
type Cluster (line 33) | interface Cluster extends ClusterNode {
function isCluster (line 38) | function isCluster(c: ClusterNode): c is Cluster {
type AggregateFlow (line 43) | interface AggregateFlow {
function isAggregateFlow (line 50) | function isAggregateFlow(flow: Flow): flow is AggregateFlow {
type FlowCountsMapReduce (line 55) | interface FlowCountsMapReduce<T = any> {
FILE: packages/core/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.ts
type Props (line 51) | interface Props extends LayerProps {
constant DEFAULT_COLOR (line 72) | const DEFAULT_COLOR: RGBA = [0, 132, 193, 255];
class AnimatedFlowLinesLayer (line 74) | class AnimatedFlowLinesLayer extends Layer {
method constructor (line 90) | constructor(props: Props) {
method getShaders (line 94) | getShaders() {
method initializeState (line 103) | initializeState() {
method updateState (line 145) | updateState({ props, oldProps, changeFlags }: any) {
method draw (line 158) | draw({ uniforms }: any) {
method _getModel (line 170) | _getModel(gl: WebGLRenderingContext) {
FILE: packages/core/src/FlowCirclesLayer/FlowCirclesLayer.ts
type FlowCirclesDatum (line 26) | type FlowCirclesDatum = any;
type Props (line 28) | interface Props extends LayerProps {
constant DEFAULT_COLOR (line 39) | const DEFAULT_COLOR = [0, 0, 0, 255];
class FlowCirclesLayer (line 41) | class FlowCirclesLayer extends Layer {
method constructor (line 54) | constructor(props: Props) {
method getShaders (line 58) | getShaders() {
method initializeState (line 66) | initializeState() {
method updateState (line 91) | updateState({ props, oldProps, changeFlags }: any) {
method draw (line 103) | draw({ uniforms }: any) {
method _getModel (line 107) | _getModel(gl: WebGLRenderingContext) {
FILE: packages/core/src/FlowLinesLayer/FlowLinesLayer.ts
type Props (line 27) | interface Props extends LayerProps {
constant DEFAULT_COLOR (line 45) | const DEFAULT_COLOR: RGBA = [0, 132, 193, 255];
constant INNER_SIDE_OUTLINE_THICKNESS (line 46) | const INNER_SIDE_OUTLINE_THICKNESS = 1;
class FlowLinesLayer (line 48) | class FlowLinesLayer extends Layer {
method constructor (line 66) | constructor(props: Props) {
method getShaders (line 70) | getShaders() {
method initializeState (line 79) | initializeState() {
method updateState (line 119) | updateState({ props, oldProps, changeFlags }: any) {
method draw (line 132) | draw({ uniforms }: any) {
method _getModel (line 146) | _getModel(gl: WebGLRenderingContext) {
FILE: packages/core/src/FlowMapLayer.ts
type BasicProps (line 42) | interface BasicProps extends LayerProps {
type Props (line 86) | interface Props extends BasicProps {
type LayerKind (line 92) | enum LayerKind {
constant LAYER_ID_SEPARATOR (line 102) | const LAYER_ID_SEPARATOR = ':::';
function getLayerId (line 104) | function getLayerId(baseLayerId: string, layerKind: LayerKind) {
function getLayerKind (line 108) | function getLayerKind(id: string): LayerKind {
function getPickType (line 113) | function getPickType({ id }: DeckGLLayer): PickingType | undefined {
class FlowMapLayer (line 128) | class FlowMapLayer extends CompositeLayer {
method constructor (line 144) | constructor(props: Props) {
method initializeState (line 148) | initializeState() {
method updateState (line 175) | updateState(params: any) {
method getPickingInfo (line 205) | getPickingInfo(params: any): FlowLayerPickingInfo {
method renderLayers (line 252) | renderLayers() {
method getLocationAreasLayer (line 301) | private getLocationAreasLayer(id: string, outline: boolean): DeckGLLay...
method getHighlightedLocationAreasLayer (line 333) | private getHighlightedLocationAreasLayer(id: string): DeckGLLayer {
method getFlowLinesLayer (line 368) | private getFlowLinesLayer(
method getLocationCirclesLayer (line 480) | private getLocationCirclesLayer(id: string, circles: LocationCircle[],...
FILE: packages/core/src/LayerProps.ts
type LayerProps (line 2) | interface LayerProps {
FILE: packages/core/src/Selectors.ts
type InputAccessors (line 33) | type InputAccessors = LocationAccessors & FlowAccessors;
type PropsSelector (line 35) | type PropsSelector<T> = (props: Props) => T;
type LocationTotals (line 37) | interface LocationTotals {
constant CIRCLE_OUTLINE_THICKNESS (line 49) | const CIRCLE_OUTLINE_THICKNESS = 1;
type LocationByIdGetter (line 50) | type LocationByIdGetter = (id: string) => Location | undefined;
class Selectors (line 65) | class Selectors {
method constructor (line 66) | constructor(private inputAccessors: InputAccessors) {}
method getFlowLinesColorGetter (line 183) | getFlowLinesColorGetter(
method setInputAccessors (line 474) | setInputAccessors(inputAccessors: InputAccessors) {
method getInputAccessors (line 478) | getInputAccessors() {
FILE: packages/core/src/colors.ts
constant DEFAULT_FLOW_MIN_COLOR (line 24) | const DEFAULT_FLOW_MIN_COLOR = 'rgba(240,240,240,0.5)';
constant DEFAULT_FLOW_COLOR_SCHEME (line 25) | const DEFAULT_FLOW_COLOR_SCHEME = [DEFAULT_FLOW_MIN_COLOR, '#137CBD'];
constant DEFAULT_FLOW_COLOR_SCHEME_POSITIVE (line 26) | const DEFAULT_FLOW_COLOR_SCHEME_POSITIVE = [DEFAULT_FLOW_MIN_COLOR, '#f6...
constant DEFAULT_FLOW_COLOR_SCHEME_NEGATIVE (line 27) | const DEFAULT_FLOW_COLOR_SCHEME_NEGATIVE = [DEFAULT_FLOW_MIN_COLOR, '#00...
constant DEFAULT_OUTLINE_COLOR (line 28) | const DEFAULT_OUTLINE_COLOR = '#fff';
constant DEFAULT_LOCATION_AREA_COLOR (line 29) | const DEFAULT_LOCATION_AREA_COLOR = 'rgba(220,220,220,0.5)';
constant DEFAULT_DIMMED_OPACITY (line 30) | const DEFAULT_DIMMED_OPACITY = 0.4;
constant CIRCLE_DIMMED_OPACITY_MULTIPLIER (line 31) | const CIRCLE_DIMMED_OPACITY_MULTIPLIER = 0.5;
constant FALLBACK_COLOR_RGBA (line 32) | const FALLBACK_COLOR_RGBA: RGBA = [255, 255, 255, 255];
type ColorScale (line 34) | type ColorScale = (value: number) => RGBA;
type RGBA (line 35) | type RGBA = [number, number, number, number];
type FlowColors (line 37) | interface FlowColors {
type LocationCircleColors (line 42) | interface LocationCircleColors {
type LocationAreaColors (line 49) | interface LocationAreaColors {
type BaseColors (line 57) | interface BaseColors {
type Colors (line 64) | interface Colors extends BaseColors {
type FlowAndCircleColors (line 69) | interface FlowAndCircleColors {
type DiffColors (line 74) | interface DiffColors extends BaseColors {
type FlowColorsRGBA (line 82) | interface FlowColorsRGBA {
type LocationCircleColorsRGBA (line 87) | interface LocationCircleColorsRGBA {
type LocationAreaColorsRGBA (line 94) | interface LocationAreaColorsRGBA {
type BaseColorsRGBA (line 102) | interface BaseColorsRGBA {
type ColorsRGBA (line 109) | interface ColorsRGBA extends BaseColorsRGBA {
type FlowAndCircleColorsRGBA (line 114) | interface FlowAndCircleColorsRGBA {
type DiffColorsRGBA (line 119) | interface DiffColorsRGBA extends BaseColorsRGBA {
function isDiffColors (line 124) | function isDiffColors(colors: DiffColors | Colors): colors is DiffColors {
function isDiffColorsRGBA (line 128) | function isDiffColorsRGBA(colors: DiffColorsRGBA | ColorsRGBA): colors i...
function getBaseColorsRGBA (line 132) | function getBaseColorsRGBA(colors: Colors | DiffColors | undefined): Bas...
function getColorsRGBA (line 142) | function getColorsRGBA(colors: Colors | undefined): ColorsRGBA {
function getDiffColorsRGBA (line 150) | function getDiffColorsRGBA(colors: DiffColors | undefined): DiffColorsRG...
function getLocationAreaColorsRGBA (line 167) | function getLocationAreaColorsRGBA(colors: LocationAreaColors | undefine...
function getFlowAndCircleColors (line 189) | function getFlowAndCircleColors(
function colorAsRgba (line 227) | function colorAsRgba(color: string): RGBA {
function colorAsRgbaOr (line 237) | function colorAsRgbaOr(color: string | undefined, defaultColor: RGBA | s...
function rgbaAsString (line 247) | function rgbaAsString(color: RGBA): string {
function opacifyHex (line 251) | function opacifyHex(hexCode: string, opacity: number): string {
function opacityFloatToInteger (line 261) | function opacityFloatToInteger(opacity: number): number {
function getDimmedCircleOutlineColor (line 265) | function getDimmedCircleOutlineColor(outlineColor: RGBA, opacity: number...
function getDimmedCircleColor (line 270) | function getDimmedCircleColor(color: RGBA, opacity: number): RGBA {
function getDimmedColor (line 274) | function getDimmedColor(color: RGBA, opacity?: number): RGBA {
function createFlowColorScale (line 290) | function createFlowColorScale(
FILE: packages/core/src/types.ts
type Flow (line 20) | type Flow = any;
type LocationProperties (line 22) | type LocationProperties = any;
type Location (line 24) | type Location = Feature<GeometryObject, LocationProperties> | any;
type Locations (line 26) | type Locations = FeatureCollection<GeometryObject, LocationProperties> |...
function isFeatureCollection (line 28) | function isFeatureCollection(
type ViewState (line 34) | interface ViewState {
type LocationCircleType (line 42) | const enum LocationCircleType {
type LocationCircle (line 48) | interface LocationCircle {
type FlowAccessors (line 53) | interface FlowAccessors {
type LocationAccessors (line 61) | interface LocationAccessors {
type Data (line 69) | type Data = Flow | Location | LocationCircle;
type PickingType (line 71) | enum PickingType {
type DeckGLLayer (line 77) | type DeckGLLayer = any;
type PickingInfo (line 79) | interface PickingInfo<T> {
type PickingHandler (line 88) | type PickingHandler<T> = (info: T, event: { srcEvent: MouseEvent }) => v...
type LocationPickingInfo (line 90) | interface LocationPickingInfo extends PickingInfo<Data> {
type LocationAreaPickingInfo (line 99) | interface LocationAreaPickingInfo extends PickingInfo<Data> {
type FlowPickingInfo (line 104) | interface FlowPickingInfo extends PickingInfo<Data> {
type FlowLayerPickingInfo (line 111) | type FlowLayerPickingInfo = LocationPickingInfo | LocationAreaPickingInf...
type AccessorObjectInfo (line 114) | interface AccessorObjectInfo {
type FlowAccessor (line 119) | type FlowAccessor<T> = (flow: Flow, objectInfo?: AccessorObjectInfo) => T;
type LocationAccessor (line 120) | type LocationAccessor<T> = (location: Location) => T;
type LocationCircleAccessor (line 121) | type LocationCircleAccessor<T> = (locCircle: LocationCircle) => T;
type NumberScale (line 123) | type NumberScale = (value: number) => number;
FILE: packages/react/src/FlowMap.tsx
constant FLOW_MAP_LAYER_ID (line 25) | const FLOW_MAP_LAYER_ID = 'flow-map-layer';
type HighlightType (line 27) | const enum HighlightType {
type LocationHighlight (line 33) | interface LocationHighlight {
type FlowHighlight (line 38) | interface FlowHighlight {
type Highlight (line 43) | type Highlight = LocationHighlight | FlowHighlight;
type Props (line 45) | interface Props extends BasicProps {
type State (line 56) | interface State {
constant ESC_KEY (line 63) | const ESC_KEY = 'Escape';
class FlowMap (line 65) | class FlowMap extends React.Component<Props, State> {
method getDerivedStateFromProps (line 70) | static getDerivedStateFromProps(props: Props, state: State): Partial<S...
method componentDidMount (line 85) | componentDidMount() {
method componentDidUpdate (line 100) | componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<Sta...
method componentWillUnmount (line 111) | componentWillUnmount() {
method render (line 116) | render() {
method stopAnimation (line 134) | private stopAnimation() {
method getFlowMapLayer (line 152) | private getFlowMapLayer() {
method highlight (line 180) | private highlight(highlight: Highlight | undefined, info?: FlowLayerPi...
method selectLocations (line 188) | private selectLocations(selectedLocationIds: string[] | undefined) {
FILE: packages/react/src/legend/DiffColorsLegend.tsx
type Props (line 22) | interface Props {
FILE: packages/react/src/legend/Disc.tsx
type DiscProps (line 21) | interface DiscProps {
FILE: packages/react/src/legend/LegendBox.tsx
type LegendBoxProps (line 20) | interface LegendBoxProps {
FILE: packages/react/src/legend/LocationTotalsLegend.tsx
type Props (line 22) | interface Props {
FILE: packages/react/src/viewport.ts
function getViewStateForFeatures (line 24) | function getViewStateForFeatures(
function getViewStateForLocations (line 51) | function getViewStateForLocations(
Condensed preview — 71 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (479K chars).
[
{
"path": ".gitignore",
"chars": 94,
"preview": "node_modules\ndist-*\ndist\n.idea\n.DS_Store\n.env\nnpm-debug.log\nstorybook-static/\nlerna-debug.log\n"
},
{
"path": "CHANGELOG.md",
"chars": 2130,
"preview": "# Change log\n\n## [7.3.4] - 2021-11-10\n### Fixed\n- Build error #124 \n\n## [7.3.3] - 2020-12-22\n### Added\n- Upgrade deps \n\n"
},
{
"path": "LICENSE",
"chars": 15202,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NOTICE",
"chars": 223,
"preview": "flowmap.gl\nCopyright 2018 Teralytics\n\nThis product includes software developed at\nThe Apache Software Foundation (http:/"
},
{
"path": "README.md",
"chars": 6514,
"preview": "# flowmap.gl\n\n## IMPORTANT: This repository is in maintenance-only mode. \n\n## > [The next version of the library is bein"
},
{
"path": "examples/.storybook/config.js",
"chars": 817,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/.storybook/styles.css",
"chars": 765,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/.storybook/webpack.config.js",
"chars": 1219,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/package.json",
"chars": 1969,
"preview": "{\n \"name\": \"flowmap.gl-examples\",\n \"description\": \"flowmap.gl usage examples\",\n \"author\": \"Teralytics AG\",\n \"license"
},
{
"path": "examples/public/data/flows-2015.json",
"chars": 35960,
"preview": "[{\"year\":\"2015\",\"origin\":\"ZH\",\"dest\":\"ZH\",\"count\":63760},{\"year\":\"2015\",\"origin\":\"ZH\",\"dest\":\"BE\",\"count\":1685},{\"year\":"
},
{
"path": "examples/public/data/flows-2016.json",
"chars": 35951,
"preview": "[{\"year\":\"2016\",\"origin\":\"ZH\",\"dest\":\"ZH\",\"count\":66855},{\"year\":\"2016\",\"origin\":\"ZH\",\"dest\":\"BE\",\"count\":1673},{\"year\":"
},
{
"path": "examples/public/data/flows-diff-2015-2016.json",
"chars": 24881,
"preview": "[{\"origin\":\"ZH\",\"dest\":\"ZH\",\"count\":-3095},{\"origin\":\"ZH\",\"dest\":\"BE\",\"count\":12},{\"origin\":\"ZH\",\"dest\":\"LU\",\"count\":87}"
},
{
"path": "examples/public/data/locations.json",
"chars": 135245,
"preview": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"abbr\":\"ZH\",\"name\":\"Zürich\",\"no\":1,\"centroid\":[8"
},
{
"path": "examples/public/data/source.url",
"chars": 124,
"preview": "https://www.bfs.admin.ch/bfs/de/home/statistiken/bevoelkerung/migration-integration/binnenwanderung.assetdetail.3222163."
},
{
"path": "examples/src/components/ClusteringExample.tsx",
"chars": 4084,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/components/Example.tsx",
"chars": 3806,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/index.tsx",
"chars": 712,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/stories/index.tsx",
"chars": 31847,
"preview": "/*\n * Copyright 2020 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/utils/pipe.ts",
"chars": 708,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/utils/withFetch.tsx",
"chars": 2073,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/utils/withSheetsFetch.tsx",
"chars": 1333,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/src/utils/withStats.tsx",
"chars": 1661,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "examples/tsconfig.json",
"chars": 511,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es5\",\n \"module\": \"commonjs\",\n \"esModuleInterop\": true,\n \"outDir\": \"dist"
},
{
"path": "lerna.json",
"chars": 127,
"preview": "{\n \"packages\": [\n \"examples\",\n \"packages/*\"\n ],\n \"version\": \"7.3.4\",\n \"npmClient\": \"yarn\",\n \"useWorkspaces\": "
},
{
"path": "package.json",
"chars": 1877,
"preview": "{\n \"name\": \"flowmap.gl\",\n \"description\": \"Flow map drawing layer for deck.gl\",\n \"author\": \"Teralytics AG\",\n \"license"
},
{
"path": "packages/cluster/package.json",
"chars": 1285,
"preview": "{\n \"name\": \"@flowmap.gl/cluster\",\n \"version\": \"7.3.4\",\n \"description\": \"Location/flow clustering for @flowmap.gl/core"
},
{
"path": "packages/cluster/src/ClusterIndex.ts",
"chars": 7689,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/cluster/src/cluster.ts",
"chars": 8853,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/cluster/src/index.ts",
"chars": 697,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/cluster/src/types.ts",
"chars": 1548,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/cluster/tsconfig.build.esm.json",
"chars": 174,
"preview": "{\n \"extends\": \"./tsconfig.build.json\",\n \"compilerOptions\": {\n \"target\": \"es2017\",\n \"module\": \"es2015\",\n \"outD"
},
{
"path": "packages/cluster/tsconfig.build.json",
"chars": 93,
"preview": "{\n \"extends\": \"./tsconfig.json\",\n \"include\": [\n \"src/**/*\",\n \"../../typings/*\"\n ]\n}\n"
},
{
"path": "packages/cluster/tsconfig.json",
"chars": 546,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es5\",\n \"module\": \"commonjs\",\n \"esModuleInterop\": true,\n \"outDir\": \"dist"
},
{
"path": "packages/core/package.json",
"chars": 1949,
"preview": "{\n \"name\": \"@flowmap.gl/core\",\n \"version\": \"7.3.4\",\n \"description\": \"Flow map drawing layer for deck.gl\",\n \"main\": \""
},
{
"path": "packages/core/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.ts",
"chars": 6133,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.ts",
"chars": 2258,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.ts",
"chars": 4300,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/AnimatedFlowLinesLayer/index.ts",
"chars": 697,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowCirclesLayer/FlowCirclesLayer.ts",
"chars": 3495,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.ts",
"chars": 1083,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.ts",
"chars": 2460,
"preview": "// Copyright (c) 2015 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtainin"
},
{
"path": "packages/core/src/FlowCirclesLayer/index.ts",
"chars": 679,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowLinesLayer/FlowLinesLayer.ts",
"chars": 6181,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowLinesLayer/FlowLinesLayerFragment.glsl.ts",
"chars": 2082,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowLinesLayer/FlowLinesLayerVertex.glsl.ts",
"chars": 5027,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowLinesLayer/index.ts",
"chars": 673,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/FlowMapLayer.ts",
"chars": 17269,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/LayerProps.ts",
"chars": 709,
"preview": "// This is for deck.gl Layer\nexport interface LayerProps {\n id?: string;\n data?: any;\n autoHighlight?: boolean;\n opa"
},
{
"path": "packages/core/src/Selectors.ts",
"chars": 16758,
"preview": "// tslint:disable:member-ordering\n\nimport { ascending, extent, max } from 'd3-array';\nimport { nest } from 'd3-collectio"
},
{
"path": "packages/core/src/colors.ts",
"chars": 9311,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/index.ts",
"chars": 928,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/src/types.ts",
"chars": 3485,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/core/tsconfig.build.esm.json",
"chars": 174,
"preview": "{\n \"extends\": \"./tsconfig.build.json\",\n \"compilerOptions\": {\n \"target\": \"es2017\",\n \"module\": \"es2015\",\n \"outD"
},
{
"path": "packages/core/tsconfig.build.json",
"chars": 93,
"preview": "{\n \"extends\": \"./tsconfig.json\",\n \"include\": [\n \"src/**/*\",\n \"../../typings/*\"\n ]\n}\n"
},
{
"path": "packages/core/tsconfig.json",
"chars": 514,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es5\",\n \"module\": \"commonjs\",\n \"esModuleInterop\": true,\n \"outDir\": \"dist"
},
{
"path": "packages/react/package.json",
"chars": 1598,
"preview": "{\n \"name\": \"@flowmap.gl/react\",\n \"version\": \"7.3.4\",\n \"description\": \"React components for @flowmap.gl/core\",\n \"main"
},
{
"path": "packages/react/src/FlowMap.tsx",
"chars": 8335,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/index.ts",
"chars": 920,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/legend/DiffColorsLegend.tsx",
"chars": 1931,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/legend/Disc.tsx",
"chars": 1244,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/legend/LegendBox.tsx",
"chars": 1230,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/legend/LocationTotalsLegend.tsx",
"chars": 2763,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/src/viewport.ts",
"chars": 2192,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "packages/react/tsconfig.build.esm.json",
"chars": 174,
"preview": "{\n \"extends\": \"./tsconfig.build.json\",\n \"compilerOptions\": {\n \"target\": \"es2017\",\n \"module\": \"es2015\",\n \"outD"
},
{
"path": "packages/react/tsconfig.build.json",
"chars": 93,
"preview": "{\n \"extends\": \"./tsconfig.json\",\n \"include\": [\n \"src/**/*\",\n \"../../typings/*\"\n ]\n}\n"
},
{
"path": "packages/react/tsconfig.json",
"chars": 534,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es5\",\n \"module\": \"commonjs\",\n \"esModuleInterop\": true,\n \"outDir\": \"dist"
},
{
"path": "tslint.json",
"chars": 641,
"preview": "{\n \"defaultSeverity\": \"warning\",\n \"extends\": [\n \"tslint:recommended\",\n \"tslint-react\",\n \"tslint-plugin-pretti"
},
{
"path": "typings/deck.gl.d.ts",
"chars": 99,
"preview": "declare module '@deck.gl/core';\ndeclare module '@deck.gl/layers';\ndeclare module '@deck.gl/react';\n"
},
{
"path": "typings/kdbush.d.ts",
"chars": 619,
"preview": "/*\n * Copyright 2019 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "typings/luma.gl.d.ts",
"chars": 663,
"preview": "/*\n * Copyright 2018 Teralytics\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "typings/react-map-gl.d.ts",
"chars": 31,
"preview": "declare module 'react-map-gl';\n"
}
]
About this extraction
This page contains the full source code of the teralytics/flowmap.gl GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 71 files (429.7 KB), approximately 140.3k tokens, and a symbol index with 195 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.