diff --git a/frontend/data/countries.json b/frontend/data/countries.json
new file mode 100644
index 0000000..4a653d7
--- /dev/null
+++ b/frontend/data/countries.json
@@ -0,0 +1,102 @@
+[
+ {
+ "name": "Switzerland",
+ "file": "switzerland.json",
+ "hint": "Alpine country in Central Europe",
+ "cities": [
+ { "name": "Bern", "lon": 7.4474, "lat": 46.948 },
+ { "name": "Zurich", "lon": 8.5417, "lat": 47.3769 },
+ { "name": "Geneva", "lon": 6.1432, "lat": 46.2044 }
+ ]
+ },
+ {
+ "name": "Norway",
+ "file": "norway.json",
+ "hint": "Scandinavian country with long coastline",
+ "cities": [
+ { "name": "Oslo", "lon": 10.7522, "lat": 59.9139 },
+ { "name": "Bergen", "lon": 5.3221, "lat": 60.39299 },
+ { "name": "Tromso", "lon": 18.9553, "lat": 69.6492 }
+ ]
+ },
+ {
+ "name": "Italy",
+ "file": "italy.json",
+ "hint": "Boot-shaped peninsula in Southern Europe",
+ "cities": [
+ { "name": "Rome", "lon": 12.4964, "lat": 41.9028 },
+ { "name": "Milan", "lon": 9.19, "lat": 45.4642 },
+ { "name": "Naples", "lon": 14.2681, "lat": 40.8518 }
+ ]
+ },
+ {
+ "name": "Japan",
+ "file": "japan.json",
+ "hint": "Island nation in East Asia",
+ "cities": [
+ { "name": "Tokyo", "lon": 139.6503, "lat": 35.6762 },
+ { "name": "Osaka", "lon": 135.5023, "lat": 34.6937 },
+ { "name": "Sapporo", "lon": 141.3545, "lat": 43.0618 }
+ ]
+ },
+ {
+ "name": "Brazil",
+ "file": "brazil.json",
+ "hint": "Largest country in South America",
+ "cities": [
+ { "name": "Brasilia", "lon": -47.8825, "lat": -15.7942 },
+ { "name": "Sao Paulo", "lon": -46.6333, "lat": -23.5505 },
+ { "name": "Manaus", "lon": -60.0217, "lat": -3.119 }
+ ]
+ },
+ {
+ "name": "Australia",
+ "file": "australia.json",
+ "hint": "Continent and country in the Southern Hemisphere",
+ "cities": [
+ { "name": "Canberra", "lon": 149.13, "lat": -35.2809 },
+ { "name": "Sydney", "lon": 151.2093, "lat": -33.8688 },
+ { "name": "Perth", "lon": 115.8613, "lat": -31.9523 }
+ ]
+ },
+ {
+ "name": "France",
+ "file": "france.json",
+ "hint": "Western Europe, roughly hexagonal shape",
+ "cities": [
+ { "name": "Paris", "lon": 2.3522, "lat": 48.8566 },
+ { "name": "Lyon", "lon": 4.8357, "lat": 45.764 },
+ { "name": "Marseille", "lon": 5.3698, "lat": 43.2965 }
+ ]
+ },
+ {
+ "name": "India",
+ "file": "india.json",
+ "hint": "Large peninsula in South Asia",
+ "cities": [
+ { "name": "New Delhi", "lon": 77.209, "lat": 28.6139 },
+ { "name": "Mumbai", "lon": 72.8777, "lat": 19.076 },
+ { "name": "Chennai", "lon": 80.2707, "lat": 13.0827 }
+ ]
+ },
+ {
+ "name": "Canada",
+ "file": "canada.json",
+ "hint": "Second largest country in the world",
+ "cities": [
+ { "name": "Ottawa", "lon": -75.6972, "lat": 45.4215 },
+ { "name": "Vancouver", "lon": -123.1207, "lat": 49.2827 },
+ { "name": "Toronto", "lon": -79.3832, "lat": 43.6532 }
+ ]
+ },
+ {
+ "name": "Germany",
+ "file": "germany.json",
+ "hint": "Central European country",
+ "cities": [
+ { "name": "Berlin", "lon": 13.405, "lat": 52.52 },
+ { "name": "Munich", "lon": 11.582, "lat": 48.1351 },
+ { "name": "Hamburg", "lon": 9.9937, "lat": 53.5511 }
+ ]
+ }
+]
diff --git a/frontend/data/outlines/australia.json b/frontend/data/outlines/australia.json
index a93028f..070f93f 100644
--- a/frontend/data/outlines/australia.json
+++ b/frontend/data/outlines/australia.json
@@ -9,285 +9,1547 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
- "minLon": 112.91944420700008,
- "maxLon": 159.1064559250001,
- "minLat": -54.75042083099993,
- "maxLat": -9.240166924999926
+ "geoBounds": {
+ "minLon": 113.156979514,
+ "maxLon": 153.63062584700003,
+ "minLat": -43.641289971999925,
+ "maxLat": -10.687676690999922
+ },
+ "projectedBounds": {
+ "minX": 1.974962,
+ "maxX": 2.68136,
+ "minY": -0.848225,
+ "maxY": -0.187626
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 124.575596,
+ "xOffset": 6,
+ "yOffset": 8.852744
},
"rings": [
[
{
- "x": 40.31,
- "y": 49.14
- },
- {
- "x": 6.62,
- "y": 56.24
- },
- {
- "x": 4.54,
- "y": 54.98
- },
- {
- "x": 6.07,
- "y": 49.51
- },
- {
- "x": 0.51,
- "y": 37.16
- },
- {
- "x": 2.06,
- "y": 37.97
- },
- {
- "x": 1.29,
- "y": 35.75
- },
- {
- "x": 2.85,
- "y": 37.52
- },
- {
- "x": 1.02,
- "y": 33.34
- },
- {
- "x": 2.22,
- "y": 27.93
- },
- {
- "x": 17.4,
- "y": 22.84
- },
- {
- "x": 21.64,
- "y": 15.77
- },
- {
- "x": 23.06,
- "y": 18.36
- },
- {
- "x": 23.06,
- "y": 15.24
- },
- {
- "x": 25.95,
- "y": 15.74
- },
- {
- "x": 24.81,
- "y": 13.81
- },
- {
- "x": 28.36,
- "y": 10.28
- },
- {
- "x": 31.39,
- "y": 10.33
- },
- {
- "x": 32.7,
- "y": 13.75
- },
- {
- "x": 36.39,
- "y": 13.08
- },
- {
- "x": 38.23,
- "y": 6.94
- },
- {
- "x": 42.95,
- "y": 6.36
- },
- {
- "x": 41.27,
- "y": 4.15
- },
- {
- "x": 51.21,
- "y": 5.84
- },
- {
- "x": 48.82,
- "y": 12.54
- },
- {
- "x": 59.77,
- "y": 18.44
- },
- {
- "x": 64.15,
- "y": 3.18
- },
- {
- "x": 66.82,
- "y": 11.34
- },
- {
- "x": 70.21,
- "y": 12.53
- },
- {
- "x": 72.34,
- "y": 21.36
- },
- {
- "x": 77.65,
- "y": 24.17
- },
- {
- "x": 87.22,
- "y": 36.68
- },
- {
- "x": 86.91,
- "y": 47.98
- },
- {
- "x": 80.25,
- "y": 62.09
- },
- {
- "x": 72.51,
- "y": 65.71
- },
- {
- "x": 69.32,
- "y": 62.9
- },
- {
- "x": 66.29,
- "y": 65.08
- },
- {
- "x": 61.65,
- "y": 64.08
- },
- {
- "x": 58.19,
- "y": 61.59
- },
- {
- "x": 57.25,
- "y": 57.43
- },
- {
- "x": 54.53,
+ "x": 45.96,
"y": 57.97
},
{
- "x": 54.52,
- "y": 54.72
+ "x": 45.09,
+ "y": 57.64
},
{
- "x": 51.79,
- "y": 57.17
+ "x": 40.88,
+ "y": 58.1
},
{
- "x": 53.81,
- "y": 51.15
+ "x": 36.73,
+ "y": 59.68
},
{
- "x": 49.9,
- "y": 56.62
+ "x": 33.94,
+ "y": 59.68
},
{
- "x": 45.96,
- "y": 51.01
+ "x": 30.01,
+ "y": 61.66
},
{
- "x": 40.84,
- "y": 49.41
+ "x": 28.55,
+ "y": 64.01
},
{
- "x": 40.31,
- "y": 49.14
- }
- ],
- [
- {
- "x": 75.95,
- "y": 74.69
+ "x": 25.43,
+ "y": 64.22
},
{
- "x": 71.68,
- "y": 75.39
+ "x": 25.24,
+ "y": 63.7
},
{
- "x": 68.81,
- "y": 69.04
+ "x": 23.78,
+ "y": 63.68
},
{
- "x": 76.41,
- "y": 69.44
+ "x": 20.88,
+ "y": 63.97
},
{
- "x": 75.94,
- "y": 74.66
+ "x": 19.95,
+ "y": 64.54
},
{
- "x": 75.95,
- "y": 74.69
- }
- ],
- [
+ "x": 19.92,
+ "y": 65.18
+ },
{
- "x": 54.58,
- "y": 58.4
+ "x": 19.2,
+ "y": 65.57
+ },
+ {
+ "x": 18.36,
+ "y": 65.36
+ },
+ {
+ "x": 16.96,
+ "y": 66.85
+ },
+ {
+ "x": 16.17,
+ "y": 66.89
+ },
+ {
+ "x": 16.38,
+ "y": 67.13
+ },
+ {
+ "x": 13.57,
+ "y": 66.94
+ },
+ {
+ "x": 12.13,
+ "y": 66.37
+ },
+ {
+ "x": 11.34,
+ "y": 65.34
+ },
+ {
+ "x": 10.27,
+ "y": 65.12
+ },
+ {
+ "x": 9.94,
+ "y": 64.39
+ },
+ {
+ "x": 9.98,
+ "y": 62.92
+ },
+ {
+ "x": 10.81,
+ "y": 63.2
+ },
+ {
+ "x": 11.55,
+ "y": 62.26
+ },
+ {
+ "x": 11.53,
+ "y": 58.19
+ },
+ {
+ "x": 10.14,
+ "y": 55.22
+ },
+ {
+ "x": 9.66,
+ "y": 51.68
+ },
+ {
+ "x": 8.19,
+ "y": 49.2
+ },
+ {
+ "x": 7.86,
+ "y": 47.26
+ },
+ {
+ "x": 6,
+ "y": 44.42
+ },
+ {
+ "x": 6.26,
+ "y": 44.62
+ },
+ {
+ "x": 6.32,
+ "y": 44.05
+ },
+ {
+ "x": 6.49,
+ "y": 44.98
+ },
+ {
+ "x": 6.45,
+ "y": 44.09
+ },
+ {
+ "x": 6.7,
+ "y": 45.2
+ },
+ {
+ "x": 6.81,
+ "y": 44.7
+ },
+ {
+ "x": 6.89,
+ "y": 45.43
+ },
+ {
+ "x": 7.02,
+ "y": 45.12
+ },
+ {
+ "x": 7.11,
+ "y": 45.64
+ },
+ {
+ "x": 7.43,
+ "y": 45.51
+ },
+ {
+ "x": 7.58,
+ "y": 44.89
+ },
+ {
+ "x": 6.57,
+ "y": 43.4
+ },
+ {
+ "x": 6.78,
+ "y": 42.87
+ },
+ {
+ "x": 7.24,
+ "y": 44.53
+ },
+ {
+ "x": 7.52,
+ "y": 43.92
+ },
+ {
+ "x": 7.98,
+ "y": 45.11
+ },
+ {
+ "x": 8.34,
+ "y": 44.82
+ },
+ {
+ "x": 8.4,
+ "y": 43.67
+ },
+ {
+ "x": 6.51,
+ "y": 40.24
+ },
+ {
+ "x": 7.33,
+ "y": 37.99
+ },
+ {
+ "x": 7.06,
+ "y": 35.89
+ },
+ {
+ "x": 7.72,
+ "y": 34.42
+ },
+ {
+ "x": 8.21,
+ "y": 34.07
+ },
+ {
+ "x": 8.07,
+ "y": 35.66
+ },
+ {
+ "x": 8.61,
+ "y": 35.68
+ },
+ {
+ "x": 9.24,
+ "y": 34.17
+ },
+ {
+ "x": 11.05,
+ "y": 33.37
+ },
+ {
+ "x": 13.9,
+ "y": 31.11
+ },
+ {
+ "x": 14.04,
+ "y": 31.53
+ },
+ {
+ "x": 15.96,
+ "y": 31.4
+ },
+ {
+ "x": 16.82,
+ "y": 30.71
+ },
+ {
+ "x": 18.28,
+ "y": 30.53
+ },
+ {
+ "x": 18.91,
+ "y": 29.8
+ },
+ {
+ "x": 19.99,
+ "y": 30.03
+ },
+ {
+ "x": 23.33,
+ "y": 28.77
+ },
+ {
+ "x": 24.82,
+ "y": 26.33
+ },
+ {
+ "x": 26.02,
+ "y": 25.48
+ },
+ {
+ "x": 25.6,
+ "y": 25.23
+ },
+ {
+ "x": 25.6,
+ "y": 23.59
+ },
+ {
+ "x": 26.49,
+ "y": 22.5
+ },
+ {
+ "x": 27.01,
+ "y": 22.5
+ },
+ {
+ "x": 27.22,
+ "y": 21.67
+ },
+ {
+ "x": 28.64,
+ "y": 24.35
+ },
+ {
+ "x": 28.69,
+ "y": 22.96
+ },
+ {
+ "x": 29.39,
+ "y": 23.49
+ },
+ {
+ "x": 29.13,
+ "y": 23
+ },
+ {
+ "x": 29.47,
+ "y": 22.61
+ },
+ {
+ "x": 29.07,
+ "y": 22.72
+ },
+ {
+ "x": 28.33,
+ "y": 21.86
+ },
+ {
+ "x": 28.95,
+ "y": 21.7
+ },
+ {
+ "x": 28.69,
+ "y": 21.08
+ },
+ {
+ "x": 29.28,
+ "y": 21.7
+ },
+ {
+ "x": 29.38,
+ "y": 21.22
+ },
+ {
+ "x": 31.54,
+ "y": 21.64
+ },
+ {
+ "x": 30.45,
+ "y": 21.47
+ },
+ {
+ "x": 31.17,
+ "y": 20.29
+ },
+ {
+ "x": 30.63,
+ "y": 20.72
+ },
+ {
+ "x": 30.39,
+ "y": 19.66
+ },
+ {
+ "x": 31.06,
+ "y": 19.54
+ },
+ {
+ "x": 31.02,
+ "y": 19.04
+ },
+ {
+ "x": 32.15,
+ "y": 19.64
+ },
+ {
+ "x": 32.06,
+ "y": 19.18
+ },
+ {
+ "x": 31.5,
+ "y": 19.14
+ },
+ {
+ "x": 31.87,
+ "y": 18.84
+ },
+ {
+ "x": 31.41,
+ "y": 18.79
+ },
+ {
+ "x": 31.91,
+ "y": 18.4
+ },
+ {
+ "x": 32.11,
+ "y": 18.84
+ },
+ {
+ "x": 32.11,
+ "y": 18.5
+ },
+ {
+ "x": 32.69,
+ "y": 18.78
+ },
+ {
+ "x": 32.06,
+ "y": 17.86
+ },
+ {
+ "x": 32.51,
+ "y": 17.34
+ },
+ {
+ "x": 33.03,
+ "y": 17.45
+ },
+ {
+ "x": 33.09,
+ "y": 16.73
+ },
+ {
+ "x": 33.14,
+ "y": 17.65
+ },
+ {
+ "x": 33.34,
+ "y": 17.12
+ },
+ {
+ "x": 33.75,
+ "y": 17.66
+ },
+ {
+ "x": 34.11,
+ "y": 15.98
+ },
+ {
+ "x": 34.55,
+ "y": 16.74
+ },
+ {
+ "x": 35.07,
+ "y": 16.07
+ },
+ {
+ "x": 35.24,
+ "y": 16.74
+ },
+ {
+ "x": 35.8,
+ "y": 15.65
+ },
+ {
+ "x": 37.01,
+ "y": 16.1
+ },
+ {
+ "x": 38.78,
+ "y": 17.84
+ },
+ {
+ "x": 38.33,
+ "y": 19.59
+ },
+ {
+ "x": 38.54,
+ "y": 18.88
+ },
+ {
+ "x": 38.9,
+ "y": 19.38
+ },
+ {
+ "x": 38.7,
+ "y": 18.6
+ },
+ {
+ "x": 38.95,
+ "y": 18.26
+ },
+ {
+ "x": 39.24,
+ "y": 18.58
+ },
+ {
+ "x": 39.43,
+ "y": 17.92
+ },
+ {
+ "x": 40.65,
+ "y": 18.24
+ },
+ {
+ "x": 40.78,
+ "y": 18.98
+ },
+ {
+ "x": 40.94,
+ "y": 18.1
+ },
+ {
+ "x": 42.03,
+ "y": 18.91
+ },
+ {
+ "x": 41.85,
+ "y": 18.11
+ },
+ {
+ "x": 42.61,
+ "y": 17.85
+ },
+ {
+ "x": 42.11,
+ "y": 18.07
+ },
+ {
+ "x": 41.73,
+ "y": 17.6
+ },
+ {
+ "x": 42.16,
+ "y": 17.42
+ },
+ {
+ "x": 41.26,
+ "y": 16.96
+ },
+ {
+ "x": 42.05,
+ "y": 16.21
+ },
+ {
+ "x": 42.38,
+ "y": 14.97
+ },
+ {
+ "x": 43.34,
+ "y": 14.76
+ },
+ {
+ "x": 42.9,
+ "y": 13.86
+ },
+ {
+ "x": 43.72,
+ "y": 13.09
+ },
+ {
+ "x": 44.13,
+ "y": 13.32
+ },
+ {
+ "x": 43.88,
+ "y": 12.65
+ },
+ {
+ "x": 44.58,
+ "y": 13.19
+ },
+ {
+ "x": 44.41,
+ "y": 12.65
+ },
+ {
+ "x": 45.44,
+ "y": 11.86
+ },
+ {
+ "x": 45.77,
+ "y": 12.41
+ },
+ {
+ "x": 47.52,
+ "y": 12.11
+ },
+ {
+ "x": 47.81,
+ "y": 12.61
+ },
+ {
+ "x": 47.98,
+ "y": 12.07
+ },
+ {
+ "x": 48.62,
+ "y": 12.06
+ },
+ {
+ "x": 48.05,
+ "y": 10.6
+ },
+ {
+ "x": 46.46,
+ "y": 10.23
+ },
+ {
+ "x": 46.93,
+ "y": 9.83
+ },
+ {
+ "x": 47.35,
+ "y": 10.45
+ },
+ {
+ "x": 47.29,
+ "y": 9.85
+ },
+ {
+ "x": 47.59,
+ "y": 10.14
+ },
+ {
+ "x": 47.72,
+ "y": 9.81
+ },
+ {
+ "x": 48.44,
+ "y": 10.67
+ },
+ {
+ "x": 48.95,
+ "y": 10.28
+ },
+ {
+ "x": 50.3,
+ "y": 11.46
},
{
"x": 51.13,
- "y": 58.61
+ "y": 11.15
},
{
- "x": 54.54,
- "y": 58.4
+ "x": 51.74,
+ "y": 11.94
},
{
- "x": 54.58,
- "y": 58.4
+ "x": 52.99,
+ "y": 11.65
+ },
+ {
+ "x": 53.97,
+ "y": 12.43
+ },
+ {
+ "x": 55.45,
+ "y": 11.23
+ },
+ {
+ "x": 54.91,
+ "y": 12.22
+ },
+ {
+ "x": 55.78,
+ "y": 11.91
+ },
+ {
+ "x": 55.74,
+ "y": 12.8
+ },
+ {
+ "x": 56.29,
+ "y": 12.69
+ },
+ {
+ "x": 56.46,
+ "y": 12.26
+ },
+ {
+ "x": 56.06,
+ "y": 12.12
+ },
+ {
+ "x": 56.91,
+ "y": 11.53
+ },
+ {
+ "x": 57.11,
+ "y": 12.35
+ },
+ {
+ "x": 57.81,
+ "y": 12.53
+ },
+ {
+ "x": 56.69,
+ "y": 13.49
+ },
+ {
+ "x": 57.1,
+ "y": 13.98
+ },
+ {
+ "x": 56.75,
+ "y": 13.93
+ },
+ {
+ "x": 56.69,
+ "y": 14.53
+ },
+ {
+ "x": 56.37,
+ "y": 14.68
+ },
+ {
+ "x": 56.39,
+ "y": 14.09
+ },
+ {
+ "x": 55.41,
+ "y": 14.72
+ },
+ {
+ "x": 55.45,
+ "y": 15.64
+ },
+ {
+ "x": 55.84,
+ "y": 15.47
+ },
+ {
+ "x": 55.47,
+ "y": 16.66
+ },
+ {
+ "x": 54.29,
+ "y": 17.85
+ },
+ {
+ "x": 54.51,
+ "y": 18.35
+ },
+ {
+ "x": 57.22,
+ "y": 20.58
+ },
+ {
+ "x": 57.82,
+ "y": 20.42
+ },
+ {
+ "x": 60.42,
+ "y": 22.31
+ },
+ {
+ "x": 62.21,
+ "y": 22.76
+ },
+ {
+ "x": 62.79,
+ "y": 23.79
+ },
+ {
+ "x": 64.36,
+ "y": 24.6
+ },
+ {
+ "x": 65.47,
+ "y": 24.45
+ },
+ {
+ "x": 66.23,
+ "y": 23.95
+ },
+ {
+ "x": 67.48,
+ "y": 20.87
+ },
+ {
+ "x": 67.99,
+ "y": 18.5
+ },
+ {
+ "x": 67.55,
+ "y": 15.92
+ },
+ {
+ "x": 68.05,
+ "y": 14.55
+ },
+ {
+ "x": 67.81,
+ "y": 13.94
+ },
+ {
+ "x": 68.3,
+ "y": 13.25
+ },
+ {
+ "x": 68.58,
+ "y": 13.79
+ },
+ {
+ "x": 68.73,
+ "y": 13.35
+ },
+ {
+ "x": 68.16,
+ "y": 12.77
+ },
+ {
+ "x": 67.82,
+ "y": 12.97
+ },
+ {
+ "x": 68.43,
+ "y": 11.69
+ },
+ {
+ "x": 68.76,
+ "y": 11.92
+ },
+ {
+ "x": 69.04,
+ "y": 9.43
+ },
+ {
+ "x": 69.9,
+ "y": 8.85
+ },
+ {
+ "x": 70.59,
+ "y": 11.4
+ },
+ {
+ "x": 71.43,
+ "y": 11.69
+ },
+ {
+ "x": 71.05,
+ "y": 12.49
+ },
+ {
+ "x": 71.83,
+ "y": 13.13
+ },
+ {
+ "x": 71.67,
+ "y": 13.72
+ },
+ {
+ "x": 72.07,
+ "y": 13.62
+ },
+ {
+ "x": 72.04,
+ "y": 15.67
+ },
+ {
+ "x": 72.59,
+ "y": 17.13
+ },
+ {
+ "x": 73.04,
+ "y": 17.33
+ },
+ {
+ "x": 74.1,
+ "y": 16.58
+ },
+ {
+ "x": 74.53,
+ "y": 17.47
+ },
+ {
+ "x": 75.99,
+ "y": 18.34
+ },
+ {
+ "x": 76.11,
+ "y": 21.76
+ },
+ {
+ "x": 76.92,
+ "y": 22.97
+ },
+ {
+ "x": 77.32,
+ "y": 22.73
+ },
+ {
+ "x": 77.73,
+ "y": 24.44
+ },
+ {
+ "x": 77.43,
+ "y": 25.82
+ },
+ {
+ "x": 78.15,
+ "y": 26.48
+ },
+ {
+ "x": 78.13,
+ "y": 27.47
+ },
+ {
+ "x": 79.38,
+ "y": 28.27
+ },
+ {
+ "x": 79.64,
+ "y": 27.98
+ },
+ {
+ "x": 79.87,
+ "y": 28.51
+ },
+ {
+ "x": 80.5,
+ "y": 28.29
+ },
+ {
+ "x": 81.07,
+ "y": 29.48
+ },
+ {
+ "x": 81.37,
+ "y": 29.21
+ },
+ {
+ "x": 82.63,
+ "y": 30.33
+ },
+ {
+ "x": 82.98,
+ "y": 30
+ },
+ {
+ "x": 83.46,
+ "y": 30.43
+ },
+ {
+ "x": 83.79,
+ "y": 31.11
+ },
+ {
+ "x": 83.19,
+ "y": 31.2
+ },
+ {
+ "x": 85,
+ "y": 33.47
+ },
+ {
+ "x": 85.37,
+ "y": 35.69
+ },
+ {
+ "x": 85.7,
+ "y": 35.42
+ },
+ {
+ "x": 86.21,
+ "y": 36.05
+ },
+ {
+ "x": 86.22,
+ "y": 34.87
+ },
+ {
+ "x": 87.43,
+ "y": 35.97
+ },
+ {
+ "x": 87.58,
+ "y": 35.37
+ },
+ {
+ "x": 87.88,
+ "y": 38.09
+ },
+ {
+ "x": 89.48,
+ "y": 39.48
+ },
+ {
+ "x": 89.98,
+ "y": 39.31
+ },
+ {
+ "x": 91.69,
+ "y": 42.08
+ },
+ {
+ "x": 92.44,
+ "y": 42.34
+ },
+ {
+ "x": 92.68,
+ "y": 43.98
+ },
+ {
+ "x": 92.76,
+ "y": 43.62
+ },
+ {
+ "x": 93.08,
+ "y": 43.9
+ },
+ {
+ "x": 93.09,
+ "y": 46.67
+ },
+ {
+ "x": 92.71,
+ "y": 46.96
+ },
+ {
+ "x": 93.6,
+ "y": 48.42
+ },
+ {
+ "x": 94,
+ "y": 50.59
+ },
+ {
+ "x": 92.72,
+ "y": 55.15
+ },
+ {
+ "x": 92.76,
+ "y": 56.63
+ },
+ {
+ "x": 91.64,
+ "y": 59.09
+ },
+ {
+ "x": 91.63,
+ "y": 60.12
+ },
+ {
+ "x": 90.09,
+ "y": 61.21
+ },
+ {
+ "x": 89.21,
+ "y": 62.92
+ },
+ {
+ "x": 88.78,
+ "y": 62.95
+ },
+ {
+ "x": 88.89,
+ "y": 64.04
+ },
+ {
+ "x": 87.85,
+ "y": 65.61
+ },
+ {
+ "x": 87.94,
+ "y": 67.01
+ },
+ {
+ "x": 87.62,
+ "y": 66.88
+ },
+ {
+ "x": 87.76,
+ "y": 67.28
+ },
+ {
+ "x": 86.52,
+ "y": 68.74
+ },
+ {
+ "x": 85.84,
+ "y": 72.44
+ },
+ {
+ "x": 86.07,
+ "y": 73.54
+ },
+ {
+ "x": 85.49,
+ "y": 73.59
+ },
+ {
+ "x": 85,
+ "y": 74.33
+ },
+ {
+ "x": 81.23,
+ "y": 74.88
+ },
+ {
+ "x": 79.25,
+ "y": 76.82
+ },
+ {
+ "x": 77.9,
+ "y": 76.9
+ },
+ {
+ "x": 78.03,
+ "y": 77.45
+ },
+ {
+ "x": 78.45,
+ "y": 77.17
+ },
+ {
+ "x": 78.27,
+ "y": 78.11
+ },
+ {
+ "x": 77.8,
+ "y": 77.33
+ },
+ {
+ "x": 77.24,
+ "y": 77.44
+ },
+ {
+ "x": 76.99,
+ "y": 76.72
+ },
+ {
+ "x": 76.05,
+ "y": 76.41
+ },
+ {
+ "x": 76.45,
+ "y": 75.99
+ },
+ {
+ "x": 76.21,
+ "y": 75.55
+ },
+ {
+ "x": 75.11,
+ "y": 76.34
+ },
+ {
+ "x": 74.53,
+ "y": 75.84
+ },
+ {
+ "x": 75.2,
+ "y": 75.87
+ },
+ {
+ "x": 75.49,
+ "y": 75.36
+ },
+ {
+ "x": 75.09,
+ "y": 74.56
+ },
+ {
+ "x": 73.87,
+ "y": 75.25
+ },
+ {
+ "x": 74.59,
+ "y": 75.33
+ },
+ {
+ "x": 74.48,
+ "y": 75.71
+ },
+ {
+ "x": 72.05,
+ "y": 77.31
+ },
+ {
+ "x": 69.77,
+ "y": 75.95
+ },
+ {
+ "x": 68.19,
+ "y": 75.65
+ },
+ {
+ "x": 67.43,
+ "y": 76.05
+ },
+ {
+ "x": 66.83,
+ "y": 75.28
+ },
+ {
+ "x": 65.23,
+ "y": 74.7
+ },
+ {
+ "x": 63.92,
+ "y": 72.92
+ },
+ {
+ "x": 63.65,
+ "y": 72.06
+ },
+ {
+ "x": 64.05,
+ "y": 71.15
+ },
+ {
+ "x": 63.42,
+ "y": 69.68
+ },
+ {
+ "x": 62.01,
+ "y": 68.34
+ },
+ {
+ "x": 63.65,
+ "y": 70.09
+ },
+ {
+ "x": 62.28,
+ "y": 68.42
+ },
+ {
+ "x": 62.48,
+ "y": 68.13
+ },
+ {
+ "x": 62.92,
+ "y": 68.64
+ },
+ {
+ "x": 62.98,
+ "y": 67.81
+ },
+ {
+ "x": 60.25,
+ "y": 68.46
+ },
+ {
+ "x": 60.97,
+ "y": 67.72
+ },
+ {
+ "x": 61.21,
+ "y": 66.23
+ },
+ {
+ "x": 60.23,
+ "y": 64.55
+ },
+ {
+ "x": 59.47,
+ "y": 67.16
+ },
+ {
+ "x": 57.49,
+ "y": 67.49
+ },
+ {
+ "x": 57.88,
+ "y": 66.55
+ },
+ {
+ "x": 58.81,
+ "y": 66.59
+ },
+ {
+ "x": 58.82,
+ "y": 64.58
+ },
+ {
+ "x": 59.87,
+ "y": 63.13
+ },
+ {
+ "x": 59.6,
+ "y": 62.24
+ },
+ {
+ "x": 60.1,
+ "y": 61.77
+ },
+ {
+ "x": 59.52,
+ "y": 60.32
+ },
+ {
+ "x": 59.53,
+ "y": 61.52
+ },
+ {
+ "x": 58.82,
+ "y": 61.92
+ },
+ {
+ "x": 58.33,
+ "y": 63.26
+ },
+ {
+ "x": 56.95,
+ "y": 63.94
+ },
+ {
+ "x": 55.53,
+ "y": 65.57
+ },
+ {
+ "x": 55.23,
+ "y": 66.29
+ },
+ {
+ "x": 55.69,
+ "y": 66.11
+ },
+ {
+ "x": 55.59,
+ "y": 66.83
+ },
+ {
+ "x": 53.73,
+ "y": 65.74
+ },
+ {
+ "x": 53.95,
+ "y": 65.3
+ },
+ {
+ "x": 54.59,
+ "y": 65.78
+ },
+ {
+ "x": 54.06,
+ "y": 64.16
+ },
+ {
+ "x": 53.15,
+ "y": 63.2
+ },
+ {
+ "x": 52.85,
+ "y": 62.01
+ },
+ {
+ "x": 52.04,
+ "y": 62.09
+ },
+ {
+ "x": 51.47,
+ "y": 61.38
+ },
+ {
+ "x": 51.48,
+ "y": 60.82
+ },
+ {
+ "x": 51.97,
+ "y": 60.73
+ },
+ {
+ "x": 51.64,
+ "y": 60.16
+ },
+ {
+ "x": 51.02,
+ "y": 60.39
+ },
+ {
+ "x": 51.21,
+ "y": 59.98
+ },
+ {
+ "x": 50.56,
+ "y": 59.24
+ },
+ {
+ "x": 49.71,
+ "y": 59.54
+ },
+ {
+ "x": 48.66,
+ "y": 58.86
+ },
+ {
+ "x": 47.48,
+ "y": 59.07
+ },
+ {
+ "x": 46.5,
+ "y": 58.29
+ },
+ {
+ "x": 45.96,
+ "y": 57.97
}
],
[
{
- "x": 87.58,
- "y": 34.61
+ "x": 81.75,
+ "y": 89.92
},
{
- "x": 86.9,
- "y": 36.38
+ "x": 80.95,
+ "y": 89.36
},
{
- "x": 87.56,
- "y": 34.58
+ "x": 81.09,
+ "y": 89.04
},
{
- "x": 87.58,
- "y": 34.61
- }
- ],
- [
- {
- "x": 40.31,
- "y": 4.77
+ "x": 81.56,
+ "y": 89.29
},
{
- "x": 37.77,
- "y": 4.38
+ "x": 81.41,
+ "y": 88.94
},
{
- "x": 40.3,
- "y": 4.74
+ "x": 80.74,
+ "y": 88.75
},
{
- "x": 40.31,
- "y": 4.77
+ "x": 80.53,
+ "y": 89.37
+ },
+ {
+ "x": 80.2,
+ "y": 88.57
+ },
+ {
+ "x": 80.13,
+ "y": 90.03
+ },
+ {
+ "x": 79.52,
+ "y": 89.62
+ },
+ {
+ "x": 79.8,
+ "y": 90.12
+ },
+ {
+ "x": 79.42,
+ "y": 91.06
+ },
+ {
+ "x": 78.62,
+ "y": 90.63
+ },
+ {
+ "x": 77.46,
+ "y": 90.88
+ },
+ {
+ "x": 77.29,
+ "y": 90.32
+ },
+ {
+ "x": 77.91,
+ "y": 90.18
+ },
+ {
+ "x": 77.23,
+ "y": 89.81
+ },
+ {
+ "x": 77.04,
+ "y": 90.1
+ },
+ {
+ "x": 75.81,
+ "y": 88.06
+ },
+ {
+ "x": 75.65,
+ "y": 86.86
+ },
+ {
+ "x": 76.26,
+ "y": 87.79
+ },
+ {
+ "x": 76.45,
+ "y": 87.28
+ },
+ {
+ "x": 75.73,
+ "y": 86.86
+ },
+ {
+ "x": 74.69,
+ "y": 84.58
+ },
+ {
+ "x": 74.63,
+ "y": 82.35
+ },
+ {
+ "x": 78.68,
+ "y": 83.9
+ },
+ {
+ "x": 81.72,
+ "y": 82.62
+ },
+ {
+ "x": 82.21,
+ "y": 82.92
+ },
+ {
+ "x": 82.55,
+ "y": 86.88
+ },
+ {
+ "x": 82.18,
+ "y": 86.11
+ },
+ {
+ "x": 81.52,
+ "y": 87.88
+ },
+ {
+ "x": 81.75,
+ "y": 89.89
+ },
+ {
+ "x": 81.75,
+ "y": 89.92
}
]
]
diff --git a/frontend/data/outlines/brazil.json b/frontend/data/outlines/brazil.json
index b8e9310..8bb1dad 100644
--- a/frontend/data/outlines/brazil.json
+++ b/frontend/data/outlines/brazil.json
@@ -9,285 +9,1307 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
+ "geoBounds": {
"minLon": -74.01847469099994,
- "maxLon": -28.877064581999946,
+ "maxLon": -34.79360917899993,
"minLat": -33.74228037499992,
"maxLat": 5.267224833000029
},
+ "projectedBounds": {
+ "minX": -1.291866,
+ "maxX": -0.607263,
+ "minY": -0.626241,
+ "maxY": 0.09206
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 122.511339,
+ "xOffset": 8.064182,
+ "yOffset": 6
+ },
"rings": [
[
{
- "x": 36.37,
- "y": 90.9
+ "x": 43.16,
+ "y": 85.05
},
{
- "x": 45.1,
- "y": 80.82
+ "x": 46.79,
+ "y": 80.6
},
{
- "x": 40.22,
- "y": 70.64
+ "x": 47.25,
+ "y": 80.66
},
{
- "x": 35.52,
- "y": 70.09
+ "x": 47.08,
+ "y": 80.25
},
{
- "x": 36.67,
- "y": 60.2
+ "x": 49.15,
+ "y": 78.54
},
{
- "x": 34.73,
- "y": 55.26
+ "x": 51.23,
+ "y": 77.65
},
{
- "x": 30.7,
- "y": 55.2
+ "x": 51.59,
+ "y": 75.5
},
{
- "x": 30.01,
- "y": 48.87
+ "x": 51.06,
+ "y": 74
},
{
- "x": 19.98,
- "y": 44.25
+ "x": 49.58,
+ "y": 73.88
},
{
- "x": 19.1,
- "y": 38.33
+ "x": 50.34,
+ "y": 70.28
},
{
- "x": 11.97,
- "y": 41.99
+ "x": 49.5,
+ "y": 69.71
},
{
- "x": 7.48,
- "y": 41.73
+ "x": 47.83,
+ "y": 70.06
},
{
- "x": 7.74,
- "y": 37.68
+ "x": 47.4,
+ "y": 67
},
{
- "x": 4.04,
- "y": 39.15
- },
- {
- "x": 0,
- "y": 32.84
- },
- {
- "x": 2.44,
- "y": 26.66
- },
- {
- "x": 8.96,
- "y": 24.5
- },
- {
- "x": 8.78,
- "y": 11.99
- },
- {
- "x": 10.81,
- "y": 11.84
- },
- {
- "x": 9.22,
- "y": 9.12
- },
- {
- "x": 14.61,
- "y": 8.02
- },
- {
- "x": 18.88,
- "y": 11.81
- },
- {
- "x": 23.59,
- "y": 7.65
- },
- {
- "x": 20.41,
- "y": 2.55
- },
- {
- "x": 24.69,
- "y": 4.36
- },
- {
- "x": 30.58,
- "y": 0
- },
- {
- "x": 33.6,
- "y": 10.46
- },
- {
- "x": 40.02,
- "y": 8.75
- },
- {
- "x": 39.98,
- "y": 7.02
- },
- {
- "x": 46.67,
- "y": 7.92
- },
- {
- "x": 49.85,
- "y": 2.12
- },
- {
- "x": 53.46,
- "y": 10.49
- },
- {
- "x": 47.21,
- "y": 17.6
- },
- {
- "x": 51.35,
- "y": 15.84
- },
- {
- "x": 51.39,
- "y": 18.55
- },
- {
- "x": 54.49,
- "y": 18.06
- },
- {
- "x": 53.95,
- "y": 20.37
- },
- {
- "x": 57.55,
- "y": 15.2
- },
- {
- "x": 60.23,
- "y": 15.32
- },
- {
- "x": 65.32,
- "y": 18.2
- },
- {
- "x": 64.74,
- "y": 21.96
- },
- {
- "x": 67.71,
- "y": 19.5
- },
- {
- "x": 75.39,
- "y": 20.8
- },
- {
- "x": 85.31,
- "y": 26.69
- },
- {
- "x": 86.89,
- "y": 31.85
- },
- {
- "x": 85.76,
- "y": 37.07
- },
- {
- "x": 77.74,
- "y": 46.15
- },
- {
- "x": 77.27,
- "y": 58.82
- },
- {
- "x": 73.16,
- "y": 69.94
- },
- {
- "x": 55.99,
- "y": 78.49
- },
- {
- "x": 55.98,
- "y": 86.59
- },
- {
- "x": 48.61,
- "y": 95.96
- },
- {
- "x": 51.96,
- "y": 91.56
- },
- {
- "x": 50.36,
- "y": 90.43
+ "x": 46.89,
+ "y": 66.19
},
{
"x": 45.72,
- "y": 100
+ "y": 65.69
},
{
- "x": 44.88,
- "y": 95.67
+ "x": 44.76,
+ "y": 66.2
},
{
- "x": 36.4,
- "y": 90.93
+ "x": 42.34,
+ "y": 65.69
},
{
- "x": 36.37,
- "y": 90.9
- }
- ],
- [
- {
- "x": 50.58,
- "y": 15.08
+ "x": 42.71,
+ "y": 63.12
},
{
- "x": 48.97,
- "y": 17.3
+ "x": 41.98,
+ "y": 61.31
},
{
- "x": 50.54,
- "y": 15.05
+ "x": 42.62,
+ "y": 60.89
},
{
- "x": 50.58,
- "y": 15.08
- }
- ],
- [
- {
- "x": 56.61,
- "y": 14.98
+ "x": 42.05,
+ "y": 60.32
},
{
- "x": 51.87,
- "y": 18.05
+ "x": 43.46,
+ "y": 56.91
+ },
+ {
+ "x": 42.74,
+ "y": 55.37
+ },
+ {
+ "x": 41.46,
+ "y": 54.7
+ },
+ {
+ "x": 41.59,
+ "y": 52.59
+ },
+ {
+ "x": 37.7,
+ "y": 52.53
+ },
+ {
+ "x": 37.51,
+ "y": 50.78
+ },
+ {
+ "x": 36.79,
+ "y": 49.94
+ },
+ {
+ "x": 37.46,
+ "y": 49.91
+ },
+ {
+ "x": 37.03,
+ "y": 47.07
+ },
+ {
+ "x": 35.8,
+ "y": 46.34
+ },
+ {
+ "x": 34.11,
+ "y": 46.5
+ },
+ {
+ "x": 33.52,
+ "y": 45.65
+ },
+ {
+ "x": 32.07,
+ "y": 45.32
+ },
+ {
+ "x": 31.46,
+ "y": 44.56
+ },
+ {
+ "x": 28.68,
+ "y": 44.15
+ },
+ {
+ "x": 27.35,
+ "y": 43.12
+ },
+ {
+ "x": 26.52,
+ "y": 41.55
+ },
+ {
+ "x": 26.5,
+ "y": 38.09
+ },
+ {
+ "x": 23.86,
+ "y": 38.56
+ },
+ {
+ "x": 19.62,
+ "y": 41.19
+ },
+ {
+ "x": 17.95,
+ "y": 40.8
+ },
+ {
+ "x": 15.29,
+ "y": 40.97
+ },
+ {
+ "x": 15.53,
+ "y": 37.54
+ },
+ {
+ "x": 13.88,
+ "y": 38.76
+ },
+ {
+ "x": 11.96,
+ "y": 38.78
+ },
+ {
+ "x": 11.71,
+ "y": 37.76
+ },
+ {
+ "x": 9.78,
+ "y": 37.49
+ },
+ {
+ "x": 10.31,
+ "y": 36.61
+ },
+ {
+ "x": 8.06,
+ "y": 33.45
+ },
+ {
+ "x": 8.72,
+ "y": 32.94
+ },
+ {
+ "x": 8.62,
+ "y": 32.04
+ },
+ {
+ "x": 9.93,
+ "y": 31.16
+ },
+ {
+ "x": 9.74,
+ "y": 30.3
+ },
+ {
+ "x": 10.42,
+ "y": 28.27
+ },
+ {
+ "x": 14.98,
+ "y": 26.17
+ },
+ {
+ "x": 16.72,
+ "y": 26.46
+ },
+ {
+ "x": 17.94,
+ "y": 19.81
+ },
+ {
+ "x": 17.47,
+ "y": 18.4
+ },
+ {
+ "x": 16.51,
+ "y": 17.62
+ },
+ {
+ "x": 16.54,
+ "y": 16.02
+ },
+ {
+ "x": 18.5,
+ "y": 15.89
+ },
+ {
+ "x": 18.18,
+ "y": 15.06
+ },
+ {
+ "x": 16.97,
+ "y": 15.01
+ },
+ {
+ "x": 16.96,
+ "y": 13.63
+ },
+ {
+ "x": 20.58,
+ "y": 13.6
+ },
+ {
+ "x": 20.52,
+ "y": 12.97
+ },
+ {
+ "x": 21.16,
+ "y": 13.54
+ },
+ {
+ "x": 22.13,
+ "y": 12.7
+ },
+ {
+ "x": 22.82,
+ "y": 13.62
+ },
+ {
+ "x": 22.89,
+ "y": 14.76
+ },
+ {
+ "x": 23.34,
+ "y": 14.66
+ },
+ {
+ "x": 24.6,
+ "y": 15.68
+ },
+ {
+ "x": 26.05,
+ "y": 15.17
+ },
+ {
+ "x": 26.24,
+ "y": 15.89
+ },
+ {
+ "x": 27.06,
+ "y": 14.87
+ },
+ {
+ "x": 28.61,
+ "y": 14.05
+ },
+ {
+ "x": 28.73,
+ "y": 14.36
+ },
+ {
+ "x": 29.41,
+ "y": 13.16
+ },
+ {
+ "x": 30.83,
+ "y": 12.43
+ },
+ {
+ "x": 30.8,
+ "y": 12.1
+ },
+ {
+ "x": 29.38,
+ "y": 11.99
+ },
+ {
+ "x": 29.05,
+ "y": 9.59
+ },
+ {
+ "x": 27.79,
+ "y": 8.11
+ },
+ {
+ "x": 29.12,
+ "y": 8.45
+ },
+ {
+ "x": 29.41,
+ "y": 8.97
+ },
+ {
+ "x": 30.87,
+ "y": 8.81
+ },
+ {
+ "x": 31.86,
+ "y": 9.66
+ },
+ {
+ "x": 32.12,
+ "y": 8.67
+ },
+ {
+ "x": 35.88,
+ "y": 7.61
+ },
+ {
+ "x": 36.73,
+ "y": 6.79
+ },
+ {
+ "x": 36.46,
+ "y": 6.14
+ },
+ {
+ "x": 37.58,
+ "y": 6
+ },
+ {
+ "x": 38.08,
+ "y": 6.45
+ },
+ {
+ "x": 37.7,
+ "y": 7.59
+ },
+ {
+ "x": 38.7,
+ "y": 7.89
+ },
+ {
+ "x": 39.05,
+ "y": 8.85
+ },
+ {
+ "x": 38.33,
+ "y": 9.61
+ },
+ {
+ "x": 38.05,
+ "y": 11.17
+ },
+ {
+ "x": 38.55,
+ "y": 13.3
+ },
+ {
+ "x": 40.49,
+ "y": 14.74
+ },
+ {
+ "x": 43.77,
+ "y": 13.05
+ },
+ {
+ "x": 46.69,
+ "y": 13.32
+ },
+ {
+ "x": 46.28,
+ "y": 12.45
+ },
+ {
+ "x": 46.63,
+ "y": 11.87
+ },
+ {
+ "x": 47.18,
+ "y": 12.15
+ },
+ {
+ "x": 48.82,
+ "y": 11.7
+ },
+ {
+ "x": 50.55,
+ "y": 12.76
+ },
+ {
+ "x": 51.37,
+ "y": 12.21
+ },
+ {
+ "x": 53.09,
+ "y": 12.63
+ },
+ {
+ "x": 56.03,
+ "y": 8.22
+ },
+ {
+ "x": 56.35,
+ "y": 8.87
+ },
+ {
+ "x": 56.18,
+ "y": 7.77
+ },
+ {
+ "x": 56.8,
+ "y": 8.36
+ },
+ {
+ "x": 56.91,
+ "y": 9.47
+ },
+ {
+ "x": 57.11,
+ "y": 8.97
+ },
+ {
+ "x": 57.75,
+ "y": 12.85
+ },
+ {
+ "x": 59.59,
+ "y": 13.66
+ },
+ {
+ "x": 59.67,
+ "y": 14.48
+ },
+ {
+ "x": 59.1,
+ "y": 14.67
+ },
+ {
+ "x": 59.66,
+ "y": 14.79
+ },
+ {
+ "x": 57.73,
+ "y": 16.92
+ },
+ {
+ "x": 56.58,
+ "y": 17.45
+ },
+ {
+ "x": 55.28,
+ "y": 20.14
+ },
+ {
+ "x": 53.63,
+ "y": 20.7
+ },
+ {
+ "x": 54.55,
+ "y": 20.53
+ },
+ {
+ "x": 54.7,
+ "y": 20.9
+ },
+ {
+ "x": 57.63,
+ "y": 19.23
+ },
+ {
+ "x": 57.38,
+ "y": 19.69
+ },
+ {
+ "x": 58.02,
+ "y": 21
+ },
+ {
+ "x": 57.64,
+ "y": 21.48
+ },
+ {
+ "x": 58.01,
+ "y": 21.13
+ },
+ {
+ "x": 58.53,
+ "y": 21.71
+ },
+ {
+ "x": 59.47,
+ "y": 21.18
+ },
+ {
+ "x": 59.82,
+ "y": 21.79
+ },
+ {
+ "x": 59.75,
+ "y": 21.35
+ },
+ {
+ "x": 60.29,
+ "y": 21.58
+ },
+ {
+ "x": 60.66,
+ "y": 21.08
+ },
+ {
+ "x": 60.14,
+ "y": 23.01
+ },
+ {
+ "x": 61.63,
+ "y": 20.7
+ },
+ {
+ "x": 61.49,
+ "y": 21.23
+ },
+ {
+ "x": 62.29,
+ "y": 20.24
+ },
+ {
+ "x": 62.78,
+ "y": 20.83
+ },
+ {
+ "x": 62.67,
+ "y": 20.02
+ },
+ {
+ "x": 63.62,
+ "y": 18.69
+ },
+ {
+ "x": 63.78,
+ "y": 18.95
+ },
+ {
+ "x": 64.11,
+ "y": 18.49
+ },
+ {
+ "x": 64.28,
+ "y": 18.9
+ },
+ {
+ "x": 64.59,
+ "y": 18.51
+ },
+ {
+ "x": 65,
+ "y": 19.02
+ },
+ {
+ "x": 64.85,
+ "y": 18.55
+ },
+ {
+ "x": 65.21,
+ "y": 18.55
+ },
+ {
+ "x": 65.95,
+ "y": 19.21
+ },
+ {
+ "x": 66.22,
+ "y": 18.8
+ },
+ {
+ "x": 66.37,
+ "y": 19.29
+ },
+ {
+ "x": 66.69,
+ "y": 19.13
+ },
+ {
+ "x": 66.37,
+ "y": 19.46
+ },
+ {
+ "x": 67.06,
+ "y": 19.14
+ },
+ {
+ "x": 66.96,
+ "y": 19.51
+ },
+ {
+ "x": 67.44,
+ "y": 19.62
+ },
+ {
+ "x": 67.55,
+ "y": 19.22
+ },
+ {
+ "x": 67.41,
+ "y": 19.81
+ },
+ {
+ "x": 68.02,
+ "y": 19.53
+ },
+ {
+ "x": 68.09,
+ "y": 19.95
+ },
+ {
+ "x": 68.26,
+ "y": 19.55
+ },
+ {
+ "x": 68.22,
+ "y": 20.03
+ },
+ {
+ "x": 68.61,
+ "y": 19.7
+ },
+ {
+ "x": 68.67,
+ "y": 20.2
+ },
+ {
+ "x": 69.22,
+ "y": 20.03
+ },
+ {
+ "x": 69.13,
+ "y": 20.58
+ },
+ {
+ "x": 69.45,
+ "y": 20.11
+ },
+ {
+ "x": 69.42,
+ "y": 21.01
+ },
+ {
+ "x": 70.39,
+ "y": 20.32
+ },
+ {
+ "x": 70.52,
+ "y": 21.16
+ },
+ {
+ "x": 71.13,
+ "y": 21.21
+ },
+ {
+ "x": 71.18,
+ "y": 21.67
+ },
+ {
+ "x": 70.49,
+ "y": 22.15
+ },
+ {
+ "x": 70.85,
+ "y": 22.47
+ },
+ {
+ "x": 71.26,
+ "y": 21.87
+ },
+ {
+ "x": 71.48,
+ "y": 22.22
+ },
+ {
+ "x": 70.85,
+ "y": 22.83
+ },
+ {
+ "x": 70.55,
+ "y": 24.34
+ },
+ {
+ "x": 71.62,
+ "y": 22.59
+ },
+ {
+ "x": 72.18,
+ "y": 22.44
+ },
+ {
+ "x": 71.51,
+ "y": 23.29
+ },
+ {
+ "x": 71.82,
+ "y": 23.42
+ },
+ {
+ "x": 72.41,
+ "y": 22.73
+ },
+ {
+ "x": 73.42,
+ "y": 22.74
+ },
+ {
+ "x": 73.44,
+ "y": 22.28
+ },
+ {
+ "x": 78.14,
+ "y": 23.73
+ },
+ {
+ "x": 78.12,
+ "y": 23.43
+ },
+ {
+ "x": 80.83,
+ "y": 23.37
+ },
+ {
+ "x": 84.06,
+ "y": 25.19
+ },
+ {
+ "x": 86.83,
+ "y": 27.79
+ },
+ {
+ "x": 90.4,
+ "y": 28.29
+ },
+ {
+ "x": 91.94,
+ "y": 32.66
+ },
+ {
+ "x": 91.9,
+ "y": 34.29
+ },
+ {
+ "x": 90.84,
+ "y": 37.02
+ },
+ {
+ "x": 90.01,
+ "y": 38.06
+ },
+ {
+ "x": 89.44,
+ "y": 37.93
+ },
+ {
+ "x": 89.76,
+ "y": 38.22
+ },
+ {
+ "x": 88.46,
+ "y": 39.88
+ },
+ {
+ "x": 86.92,
+ "y": 41.22
+ },
+ {
+ "x": 86.63,
+ "y": 40.99
+ },
+ {
+ "x": 86.9,
+ "y": 41.35
+ },
+ {
+ "x": 86.21,
+ "y": 41.73
+ },
+ {
+ "x": 85.82,
+ "y": 43.24
+ },
+ {
+ "x": 84.35,
+ "y": 45.21
+ },
+ {
+ "x": 83.94,
+ "y": 45.35
+ },
+ {
+ "x": 83.6,
+ "y": 44.38
+ },
+ {
+ "x": 83.36,
+ "y": 44.96
+ },
+ {
+ "x": 83.1,
+ "y": 44.74
+ },
+ {
+ "x": 83.53,
+ "y": 45.04
+ },
+ {
+ "x": 82.69,
+ "y": 46.63
+ },
+ {
+ "x": 82.92,
+ "y": 46.41
+ },
+ {
+ "x": 82.98,
+ "y": 47.15
+ },
+ {
+ "x": 82.62,
+ "y": 46.94
+ },
+ {
+ "x": 82.86,
+ "y": 47.9
+ },
+ {
+ "x": 83.09,
+ "y": 47.29
+ },
+ {
+ "x": 82.8,
+ "y": 49.01
+ },
+ {
+ "x": 83.24,
+ "y": 51.62
+ },
+ {
+ "x": 82.5,
+ "y": 54.54
+ },
+ {
+ "x": 82.65,
+ "y": 55.7
+ },
+ {
+ "x": 81.53,
+ "y": 57.03
+ },
+ {
+ "x": 81.26,
+ "y": 60.03
+ },
+ {
+ "x": 78.54,
+ "y": 64.33
+ },
+ {
+ "x": 78.72,
+ "y": 65.49
+ },
+ {
+ "x": 76.6,
+ "y": 66.76
+ },
+ {
+ "x": 76.5,
+ "y": 67.79
+ },
+ {
+ "x": 74.32,
+ "y": 67.77
+ },
+ {
+ "x": 74.23,
+ "y": 67.06
+ },
+ {
+ "x": 73.81,
+ "y": 67.25
+ },
+ {
+ "x": 73.92,
+ "y": 67.82
+ },
+ {
+ "x": 70.85,
+ "y": 67.93
+ },
+ {
+ "x": 71,
+ "y": 68.66
+ },
+ {
+ "x": 70.02,
+ "y": 68.78
+ },
+ {
+ "x": 69.2,
+ "y": 69.77
+ },
+ {
+ "x": 68.07,
+ "y": 69.64
+ },
+ {
+ "x": 67.36,
+ "y": 70.22
+ },
+ {
+ "x": 67.15,
+ "y": 69.87
+ },
+ {
+ "x": 63.59,
+ "y": 72.6
+ },
+ {
+ "x": 63.94,
+ "y": 72.65
+ },
+ {
+ "x": 63.25,
+ "y": 73.6
+ },
+ {
+ "x": 63.4,
+ "y": 73.15
+ },
+ {
+ "x": 62.72,
+ "y": 73.1
+ },
+ {
+ "x": 62.69,
+ "y": 73.64
+ },
+ {
+ "x": 62.11,
+ "y": 73.35
+ },
+ {
+ "x": 62.93,
+ "y": 73.87
+ },
+ {
+ "x": 62.05,
+ "y": 74.57
+ },
+ {
+ "x": 62.49,
+ "y": 74.56
+ },
+ {
+ "x": 62.45,
+ "y": 75.3
+ },
+ {
+ "x": 61.99,
+ "y": 75.05
+ },
+ {
+ "x": 62.68,
+ "y": 77.64
+ },
+ {
+ "x": 62.07,
+ "y": 80.87
+ },
+ {
+ "x": 61.83,
+ "y": 80.52
+ },
+ {
+ "x": 62.08,
+ "y": 80.97
+ },
+ {
+ "x": 59.83,
+ "y": 83.2
+ },
+ {
+ "x": 57.88,
+ "y": 87.17
+ },
+ {
+ "x": 54.98,
+ "y": 89.99
+ },
+ {
+ "x": 54.96,
+ "y": 89.13
+ },
+ {
+ "x": 55.49,
+ "y": 89.2
+ },
+ {
+ "x": 56.76,
+ "y": 88.22
+ },
+ {
+ "x": 56.95,
+ "y": 87.22
+ },
+ {
+ "x": 57.32,
+ "y": 87.39
+ },
+ {
+ "x": 57.33,
+ "y": 86.79
+ },
+ {
+ "x": 57.94,
+ "y": 86.38
+ },
+ {
+ "x": 57.87,
+ "y": 85.47
+ },
+ {
+ "x": 58.21,
+ "y": 85.69
+ },
+ {
+ "x": 58.11,
+ "y": 85.03
+ },
+ {
+ "x": 57.42,
+ "y": 85.64
+ },
+ {
+ "x": 56.68,
+ "y": 84.59
+ },
+ {
+ "x": 56.58,
+ "y": 85.13
+ },
+ {
+ "x": 57.09,
+ "y": 85.45
+ },
+ {
+ "x": 56.71,
+ "y": 86.51
+ },
+ {
+ "x": 56.48,
+ "y": 86.17
+ },
+ {
+ "x": 56.34,
+ "y": 87.26
+ },
+ {
+ "x": 55.22,
+ "y": 87.89
+ },
+ {
+ "x": 54.68,
+ "y": 88.91
+ },
+ {
+ "x": 54.95,
+ "y": 89.98
+ },
+ {
+ "x": 53.39,
+ "y": 92.92
},
{
"x": 51.91,
- "y": 13.99
+ "y": 93.87
},
{
- "x": 56.62,
- "y": 14.82
+ "x": 51.91,
+ "y": 92.35
},
{
- "x": 56.61,
- "y": 14.98
+ "x": 52.77,
+ "y": 91.39
+ },
+ {
+ "x": 51.76,
+ "y": 90.64
+ },
+ {
+ "x": 51.39,
+ "y": 89.7
+ },
+ {
+ "x": 48.21,
+ "y": 87.67
+ },
+ {
+ "x": 47.46,
+ "y": 86.68
+ },
+ {
+ "x": 46.57,
+ "y": 87.26
+ },
+ {
+ "x": 46.57,
+ "y": 86.55
+ },
+ {
+ "x": 44.81,
+ "y": 84.83
+ },
+ {
+ "x": 44,
+ "y": 85.29
+ },
+ {
+ "x": 43.2,
+ "y": 85.08
+ },
+ {
+ "x": 43.16,
+ "y": 85.05
+ }
+ ],
+ [
+ {
+ "x": 62.71,
+ "y": 18.51
+ },
+ {
+ "x": 62.32,
+ "y": 19.6
+ },
+ {
+ "x": 61.73,
+ "y": 19.72
+ },
+ {
+ "x": 61.92,
+ "y": 20.31
+ },
+ {
+ "x": 61.58,
+ "y": 20.04
+ },
+ {
+ "x": 61.9,
+ "y": 20.38
+ },
+ {
+ "x": 61.11,
+ "y": 20.26
+ },
+ {
+ "x": 61.08,
+ "y": 20.75
+ },
+ {
+ "x": 60.42,
+ "y": 20.48
+ },
+ {
+ "x": 60.36,
+ "y": 20.97
+ },
+ {
+ "x": 59.97,
+ "y": 20.66
+ },
+ {
+ "x": 59.9,
+ "y": 21.14
+ },
+ {
+ "x": 59.09,
+ "y": 21.08
+ },
+ {
+ "x": 58.87,
+ "y": 20.45
+ },
+ {
+ "x": 58.62,
+ "y": 21.2
+ },
+ {
+ "x": 57.7,
+ "y": 20.35
+ },
+ {
+ "x": 57.73,
+ "y": 19.6
+ },
+ {
+ "x": 58.4,
+ "y": 19.5
+ },
+ {
+ "x": 57.74,
+ "y": 19.49
+ },
+ {
+ "x": 57.84,
+ "y": 18.46
+ },
+ {
+ "x": 58.25,
+ "y": 18.73
+ },
+ {
+ "x": 57.92,
+ "y": 18.07
+ },
+ {
+ "x": 58.63,
+ "y": 17.5
+ },
+ {
+ "x": 61.79,
+ "y": 17.61
+ },
+ {
+ "x": 62.86,
+ "y": 17.86
+ },
+ {
+ "x": 62.71,
+ "y": 18.38
+ },
+ {
+ "x": 62.71,
+ "y": 18.51
}
]
]
diff --git a/frontend/data/outlines/canada.json b/frontend/data/outlines/canada.json
index e9e057b..8cce662 100644
--- a/frontend/data/outlines/canada.json
+++ b/frontend/data/outlines/canada.json
@@ -9,1829 +9,6223 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
+ "geoBounds": {
"minLon": -141.00556393099993,
"maxLon": -52.61660722599993,
"minLat": 41.66908559200006,
"maxLat": 83.11652252800008
},
+ "projectedBounds": {
+ "minX": -2.461011,
+ "maxX": -0.918333,
+ "minY": 0.801416,
+ "maxY": 2.811046
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 43.789138,
+ "xOffset": 16.223724,
+ "yOffset": 6
+ },
"rings": [
[
{
- "x": 51.87,
- "y": 81.42
+ "x": 51.26,
+ "y": 85.58
},
{
- "x": 20.27,
- "y": 82.33
+ "x": 51.26,
+ "y": 86.02
},
{
- "x": 18.32,
- "y": 77.66
+ "x": 29.92,
+ "y": 86.02
},
{
- "x": 14.97,
- "y": 77.08
+ "x": 29.87,
+ "y": 85.2
},
{
- "x": 15.88,
- "y": 73.07
+ "x": 29.59,
+ "y": 85.56
},
{
- "x": 14.27,
- "y": 74.36
+ "x": 29.17,
+ "y": 85.27
},
{
- "x": 14.04,
- "y": 70.18
+ "x": 29.58,
+ "y": 85.19
},
{
- "x": 13.25,
- "y": 71.73
+ "x": 29.35,
+ "y": 84.65
},
{
- "x": 11.91,
- "y": 69.35
+ "x": 29,
+ "y": 85.14
},
{
- "x": 13.04,
- "y": 66.67
+ "x": 28.59,
+ "y": 84.79
},
{
- "x": 6.76,
- "y": 56.8
+ "x": 28.95,
+ "y": 84.23
},
{
- "x": 3.98,
- "y": 58.43
+ "x": 28.39,
+ "y": 84.45
},
{
- "x": 0.01,
- "y": 55.04
+ "x": 28.6,
+ "y": 83.72
},
{
- "x": 0,
- "y": 32.49
+ "x": 28.32,
+ "y": 84.34
},
{
- "x": 6.63,
- "y": 34.88
+ "x": 28.11,
+ "y": 83.97
},
{
- "x": 7.38,
- "y": 32.3
+ "x": 27.48,
+ "y": 84.22
},
{
- "x": 12.82,
- "y": 30.99
+ "x": 27.97,
+ "y": 83.51
},
{
- "x": 9.15,
- "y": 34.8
+ "x": 27.75,
+ "y": 84.02
},
{
- "x": 14.74,
- "y": 30.22
+ "x": 27.3,
+ "y": 83.54
},
{
- "x": 17.6,
- "y": 33.29
- },
- {
- "x": 18.78,
- "y": 31.27
- },
- {
- "x": 18.74,
- "y": 33.17
- },
- {
- "x": 29.44,
- "y": 34.38
- },
- {
- "x": 29.29,
- "y": 36.94
- },
- {
- "x": 34.99,
- "y": 36.45
- },
- {
- "x": 38.2,
- "y": 40.46
- },
- {
- "x": 37.48,
- "y": 36.25
- },
- {
- "x": 40,
- "y": 34.93
- },
- {
- "x": 36.42,
- "y": 35.8
- },
- {
- "x": 39.35,
- "y": 34.19
- },
- {
- "x": 43.88,
- "y": 37.22
- },
- {
- "x": 51.03,
- "y": 35.76
- },
- {
- "x": 51.3,
- "y": 39.7
- },
- {
- "x": 53.89,
- "y": 34.93
- },
- {
- "x": 50.32,
- "y": 31.34
- },
- {
- "x": 51.79,
- "y": 26.94
- },
- {
- "x": 56,
- "y": 31.26
- },
- {
- "x": 54.4,
- "y": 32.43
- },
- {
- "x": 57.35,
- "y": 32.96
- },
- {
- "x": 57.4,
- "y": 35.89
- },
- {
- "x": 58.49,
- "y": 33.44
- },
- {
- "x": 59.94,
- "y": 34.52
- },
- {
- "x": 60.52,
- "y": 38.6
- },
- {
- "x": 63.9,
- "y": 34
- },
- {
- "x": 62.71,
- "y": 32.01
- },
- {
- "x": 66.47,
- "y": 32.51
- },
- {
- "x": 67.32,
- "y": 38.88
- },
- {
- "x": 64.99,
- "y": 40.45
- },
- {
- "x": 63.46,
- "y": 38.73
- },
- {
- "x": 64.84,
- "y": 40.82
- },
- {
- "x": 61.39,
- "y": 40.01
- },
- {
- "x": 60.67,
- "y": 42.91
- },
- {
- "x": 56.01,
- "y": 41.43
- },
- {
- "x": 61.17,
- "y": 43.37
- },
- {
- "x": 57.46,
- "y": 47.06
- },
- {
- "x": 53.43,
- "y": 45.66
- },
- {
- "x": 57,
- "y": 48.39
- },
- {
- "x": 52.27,
- "y": 54.57
- },
- {
- "x": 54.45,
- "y": 63.22
- },
- {
- "x": 57.02,
- "y": 62.45
- },
- {
- "x": 62.89,
- "y": 67.84
- },
- {
- "x": 66.38,
- "y": 67.44
- },
- {
- "x": 66.89,
- "y": 74.61
- },
- {
- "x": 69.77,
- "y": 78.15
- },
- {
- "x": 69.28,
- "y": 68.66
- },
- {
- "x": 72.96,
- "y": 64.43
- },
- {
- "x": 70.64,
- "y": 59.1
- },
- {
- "x": 71.11,
- "y": 50.23
- },
- {
- "x": 76.18,
- "y": 49.78
- },
- {
- "x": 81.05,
- "y": 53.56
- },
- {
- "x": 79.16,
- "y": 55.61
- },
- {
- "x": 80.05,
- "y": 58.74
- },
- {
- "x": 82.19,
- "y": 58.71
- },
- {
- "x": 81.05,
- "y": 61.15
- },
- {
- "x": 84.8,
- "y": 59.8
- },
- {
- "x": 86.62,
- "y": 55.09
- },
- {
- "x": 90.87,
- "y": 67.85
- },
- {
- "x": 94.65,
- "y": 68.84
- },
- {
- "x": 90.61,
- "y": 70.94
- },
- {
- "x": 94.51,
- "y": 69.77
- },
- {
- "x": 96.53,
- "y": 74.81
- },
- {
- "x": 91.49,
- "y": 79.39
- },
- {
- "x": 84.33,
- "y": 79.25
- },
- {
- "x": 80.7,
- "y": 84.36
- },
- {
- "x": 79.12,
+ "x": 26.54,
"y": 83.65
},
{
- "x": 80.07,
- "y": 85.94
+ "x": 26.32,
+ "y": 83.35
},
{
- "x": 72.64,
- "y": 95.24
+ "x": 26.84,
+ "y": 83.2
},
{
- "x": 66.25,
- "y": 99.99
+ "x": 26.33,
+ "y": 83.23
},
{
- "x": 64.37,
- "y": 88.28
+ "x": 26.54,
+ "y": 82.89
},
{
- "x": 51.93,
- "y": 81.46
+ "x": 27.23,
+ "y": 82.76
},
{
- "x": 51.87,
- "y": 81.42
- }
- ],
- [
- {
- "x": 83.53,
- "y": 91.53
- },
- {
- "x": 81.2,
- "y": 86.03
- },
- {
- "x": 79.32,
- "y": 91.4
- },
- {
- "x": 75,
- "y": 91.97
- },
- {
- "x": 86.03,
- "y": 81.78
- },
- {
- "x": 86.75,
- "y": 83.71
- },
- {
- "x": 83.9,
- "y": 84.73
- },
- {
- "x": 90.55,
- "y": 91.31
- },
- {
- "x": 85.45,
- "y": 95.65
- },
- {
- "x": 84.65,
- "y": 93.33
- },
- {
- "x": 87.85,
- "y": 91.09
- },
- {
- "x": 86.27,
- "y": 89.33
- },
- {
- "x": 83.52,
- "y": 91.51
- },
- {
- "x": 83.53,
- "y": 91.53
- }
- ],
- [
- {
- "x": 99.99,
- "y": 85.87
- },
- {
- "x": 98.94,
- "y": 88.06
- },
- {
- "x": 98.34,
- "y": 85.03
- },
- {
- "x": 96.87,
- "y": 87.46
- },
- {
- "x": 96.44,
- "y": 84.83
- },
- {
- "x": 92.43,
- "y": 85.64
- },
- {
- "x": 96.29,
- "y": 75.97
- },
- {
- "x": 95.2,
- "y": 80.99
- },
- {
- "x": 96.04,
- "y": 79.52
- },
- {
- "x": 96.87,
- "y": 82.2
- },
- {
- "x": 99.01,
- "y": 81.62
- },
- {
- "x": 99.97,
- "y": 85.86
- },
- {
- "x": 99.99,
- "y": 85.87
- }
- ],
- [
- {
- "x": 11.19,
- "y": 74.66
- },
- {
- "x": 9.55,
- "y": 72.31
- },
- {
- "x": 11.21,
- "y": 74.67
- },
- {
- "x": 11.19,
- "y": 74.66
- }
- ],
- [
- {
- "x": 12.17,
- "y": 70.51
- },
- {
- "x": 13.17,
- "y": 72.07
- },
- {
- "x": 12.15,
- "y": 70.52
- },
- {
- "x": 12.17,
- "y": 70.51
- }
- ],
- [
- {
- "x": 9.53,
- "y": 72.16
- },
- {
- "x": 10.57,
- "y": 69.85
- },
- {
- "x": 9.55,
- "y": 72.17
- },
- {
- "x": 9.53,
- "y": 72.16
- }
- ],
- [
- {
- "x": 51.81,
- "y": 34.39
- },
- {
- "x": 46.85,
- "y": 33.96
- },
- {
- "x": 48.74,
- "y": 31.9
- },
- {
- "x": 51.8,
- "y": 34.38
- },
- {
- "x": 51.81,
- "y": 34.39
- }
- ],
- [
- {
- "x": 45.41,
- "y": 32.11
- },
- {
- "x": 42.44,
- "y": 32.38
- },
- {
- "x": 44.39,
- "y": 33.59
- },
- {
- "x": 43.09,
- "y": 34.53
- },
- {
- "x": 38.94,
- "y": 32.84
- },
- {
- "x": 31.41,
- "y": 35.38
- },
- {
- "x": 26.66,
- "y": 31.67
- },
- {
- "x": 33.36,
- "y": 30.8
- },
- {
- "x": 26.5,
- "y": 30.18
- },
- {
- "x": 29.36,
- "y": 27.97
- },
- {
- "x": 24.78,
- "y": 27.11
- },
- {
- "x": 29.89,
- "y": 23.48
- },
- {
- "x": 33.09,
- "y": 26.32
- },
- {
- "x": 35.51,
- "y": 24.61
- },
- {
- "x": 37.53,
- "y": 27.77
- },
- {
- "x": 38.67,
- "y": 23.66
- },
- {
- "x": 45.39,
- "y": 31.96
- },
- {
- "x": 45.41,
- "y": 32.11
- }
- ],
- [
- {
- "x": 77,
- "y": 39.52
- },
- {
- "x": 76.95,
- "y": 35.9
- },
- {
- "x": 72.84,
- "y": 34.83
- },
- {
- "x": 74,
- "y": 33.49
- },
- {
- "x": 70.13,
- "y": 30
- },
- {
- "x": 70.38,
- "y": 31.94
- },
- {
- "x": 67.97,
- "y": 32.33
- },
- {
- "x": 59.1,
- "y": 30.48
- },
- {
- "x": 58.21,
- "y": 29.01
- },
- {
- "x": 61.1,
- "y": 29.24
- },
- {
- "x": 57.7,
- "y": 28.13
- },
- {
- "x": 58.78,
- "y": 23.8
- },
- {
- "x": 63.55,
- "y": 22.61
- },
- {
- "x": 61.4,
- "y": 25.03
- },
- {
- "x": 63.55,
- "y": 28.54
- },
- {
- "x": 61.3,
- "y": 29.26
- },
- {
- "x": 63.64,
- "y": 29.29
- },
- {
- "x": 62.59,
- "y": 24.66
- },
- {
- "x": 64.9,
- "y": 24.44
- },
- {
- "x": 63.23,
- "y": 23.63
- },
- {
- "x": 66.7,
- "y": 22.63
- },
- {
- "x": 67.9,
- "y": 27.09
- },
- {
- "x": 69.22,
- "y": 25.6
- },
- {
- "x": 71.57,
- "y": 27.42
- },
- {
- "x": 70.36,
- "y": 26.02
- },
- {
- "x": 72.54,
- "y": 25.03
- },
- {
- "x": 74.74,
- "y": 26.2
- },
- {
- "x": 73.43,
- "y": 27.55
- },
- {
- "x": 75.61,
- "y": 26.74
- },
- {
- "x": 74.59,
- "y": 28.79
- },
- {
- "x": 76.12,
- "y": 27.36
- },
- {
- "x": 75.94,
- "y": 29.1
- },
- {
- "x": 79.07,
- "y": 28.58
- },
- {
- "x": 77.42,
- "y": 30.17
- },
- {
- "x": 79.61,
- "y": 29.04
- },
- {
- "x": 78.59,
- "y": 31.59
- },
- {
- "x": 82.27,
- "y": 30.31
- },
- {
- "x": 79.8,
- "y": 32.02
- },
- {
- "x": 82.53,
- "y": 30.86
- },
- {
- "x": 83.6,
- "y": 32.3
- },
- {
- "x": 80.31,
- "y": 32.79
- },
- {
- "x": 84.12,
- "y": 33.58
- },
- {
- "x": 81.03,
- "y": 34.5
- },
- {
- "x": 90.21,
- "y": 39.77
- },
- {
- "x": 87.65,
- "y": 43.95
- },
- {
- "x": 85.42,
- "y": 41.89
- },
- {
- "x": 86.72,
- "y": 40.45
- },
- {
- "x": 81.63,
- "y": 40.83
- },
- {
- "x": 86.37,
- "y": 46.04
- },
- {
- "x": 85.8,
- "y": 49.58
- },
- {
- "x": 81.47,
- "y": 46.7
- },
- {
- "x": 84.89,
- "y": 51.22
- },
- {
- "x": 78.39,
- "y": 48.11
- },
- {
- "x": 76.6,
- "y": 44.52
- },
- {
- "x": 71.27,
- "y": 45.09
- },
- {
- "x": 71.97,
- "y": 42.57
- },
- {
- "x": 74.25,
- "y": 44.38
- },
- {
- "x": 73.6,
- "y": 42.93
- },
- {
- "x": 76.38,
- "y": 42.62
- },
- {
- "x": 76.93,
- "y": 39.55
- },
- {
- "x": 77,
- "y": 39.52
- }
- ],
- [
- {
- "x": 29.06,
- "y": 23.18
- },
- {
- "x": 20.6,
- "y": 29.02
- },
- {
- "x": 17.12,
- "y": 26.91
- },
- {
- "x": 18.38,
- "y": 21.15
- },
- {
- "x": 29.04,
- "y": 23.14
- },
- {
- "x": 29.06,
- "y": 23.18
- }
- ],
- [
- {
- "x": 20.01,
- "y": 83.53
- },
- {
- "x": 14.25,
- "y": 78.02
- },
- {
- "x": 17.57,
- "y": 79.08
+ "x": 26.26,
+ "y": 82.81
},
{
- "x": 19.99,
- "y": 83.5
+ "x": 26.8,
+ "y": 82.01
},
{
- "x": 20.01,
- "y": 83.53
- }
- ],
- [
- {
- "x": 69.83,
- "y": 50.3
- },
- {
- "x": 69.21,
- "y": 51.98
- },
- {
- "x": 69.82,
- "y": 50.28
- },
- {
- "x": 69.83,
- "y": 50.3
- }
- ],
- [
- {
- "x": 66.54,
- "y": 48.57
- },
- {
- "x": 64.83,
- "y": 50.6
- },
- {
- "x": 66.55,
- "y": 48.57
- },
- {
- "x": 66.54,
- "y": 48.57
- }
- ],
- [
- {
- "x": 68.81,
- "y": 46.68
- },
- {
- "x": 60.96,
- "y": 47.18
+ "x": 27.18,
+ "y": 82.42
},
{
- "x": 62.3,
- "y": 41.87
+ "x": 26.95,
+ "y": 81.37
},
{
- "x": 68.83,
- "y": 46.67
- },
- {
- "x": 68.81,
- "y": 46.68
- }
- ],
- [
- {
- "x": 63.96,
- "y": 41.08
+ "x": 26.46,
+ "y": 82.04
},
{
- "x": 65.34,
- "y": 42.13
+ "x": 26.26,
+ "y": 81.68
},
{
- "x": 63.97,
- "y": 41.08
+ "x": 25.86,
+ "y": 82.04
},
{
- "x": 63.96,
- "y": 41.08
- }
- ],
- [
- {
- "x": 76.53,
- "y": 36.86
- },
- {
- "x": 74.94,
- "y": 36.35
- },
- {
- "x": 76.52,
- "y": 36.85
- },
- {
- "x": 76.53,
- "y": 36.86
- }
- ],
- [
- {
- "x": 74.64,
- "y": 36.05
- },
- {
- "x": 72.34,
- "y": 38.22
- },
- {
- "x": 74.63,
- "y": 36.05
- },
- {
- "x": 74.64,
- "y": 36.05
- }
- ],
- [
- {
- "x": 41.1,
- "y": 22.89
- },
- {
- "x": 40.41,
- "y": 24.77
- },
- {
- "x": 38.43,
- "y": 23.24
- },
- {
- "x": 40.93,
- "y": 22.87
- },
- {
- "x": 41.1,
- "y": 22.89
- }
- ],
- [
- {
- "x": 68,
- "y": 22.94
- },
- {
- "x": 73.48,
- "y": 24.65
- },
- {
- "x": 68.02,
- "y": 22.98
- },
- {
- "x": 68,
- "y": 22.94
- }
- ],
- [
- {
- "x": 50.55,
- "y": 25.69
+ "x": 26.14,
+ "y": 81.25
},
{
- "x": 47.83,
- "y": 28.58
+ "x": 25.82,
+ "y": 81.37
},
{
- "x": 43.27,
- "y": 24.86
+ "x": 25.42,
+ "y": 80.44
},
{
- "x": 48.91,
- "y": 22.19
+ "x": 26.26,
+ "y": 80.83
},
{
- "x": 48.15,
- "y": 24.72
- },
- {
- "x": 50.55,
- "y": 25.65
- },
- {
- "x": 50.55,
- "y": 25.69
- }
- ],
- [
- {
- "x": 47.24,
- "y": 22.35
- },
- {
- "x": 49.04,
- "y": 21.75
- },
- {
- "x": 47.66,
- "y": 22.34
- },
- {
- "x": 47.24,
- "y": 22.35
- }
- ],
- [
- {
- "x": 57.38,
- "y": 22.18
- },
- {
- "x": 51.85,
- "y": 26.89
- },
- {
- "x": 51.72,
- "y": 22.01
- },
- {
- "x": 57.33,
- "y": 22.16
- },
- {
- "x": 57.38,
- "y": 22.18
- }
- ],
- [
- {
- "x": 53.82,
- "y": 19.72
- },
- {
- "x": 50.22,
- "y": 19.6
- },
- {
- "x": 52.16,
- "y": 18.03
- },
- {
- "x": 53.82,
- "y": 19.66
- },
- {
- "x": 53.82,
- "y": 19.72
- }
- ],
- [
- {
- "x": 43.48,
- "y": 17.19
- },
- {
- "x": 41.89,
- "y": 17.3
- },
- {
- "x": 43.73,
- "y": 17.14
- },
- {
- "x": 43.48,
- "y": 17.19
- }
- ],
- [
- {
- "x": 26.27,
- "y": 17.42
- },
- {
- "x": 24.43,
- "y": 18.13
- },
- {
- "x": 26.3,
- "y": 17.39
- },
- {
- "x": 26.27,
- "y": 17.42
- }
- ],
- [
- {
- "x": 41.42,
- "y": 16.04
- },
- {
- "x": 42.99,
- "y": 16.15
- },
- {
- "x": 41.43,
- "y": 16.1
- },
- {
- "x": 41.42,
- "y": 16.04
- }
- ],
- [
- {
- "x": 49.31,
- "y": 18.33
- },
- {
- "x": 43.13,
- "y": 18.09
- },
- {
- "x": 48.14,
- "y": 15.52
- },
- {
- "x": 49.31,
- "y": 18.31
- },
- {
- "x": 49.31,
- "y": 18.33
- }
- ],
- [
- {
- "x": 40.29,
- "y": 17.96
- },
- {
- "x": 32.32,
- "y": 21
- },
- {
- "x": 30.05,
- "y": 20.38
- },
- {
- "x": 34.03,
- "y": 19
- },
- {
- "x": 26.38,
- "y": 18.96
- },
- {
- "x": 29.57,
- "y": 15.91
- },
- {
- "x": 36.31,
- "y": 18.43
- },
- {
- "x": 34.63,
- "y": 16.21
- },
- {
- "x": 36.44,
- "y": 15.09
- },
- {
- "x": 37.31,
- "y": 17.68
- },
- {
- "x": 40.28,
- "y": 17.91
- },
- {
- "x": 40.29,
- "y": 17.96
- }
- ],
- [
- {
- "x": 29.61,
- "y": 15.34
- },
- {
- "x": 31.17,
- "y": 15.3
- },
- {
- "x": 29.63,
- "y": 15.34
- },
- {
- "x": 29.61,
- "y": 15.34
- }
- ],
- [
- {
- "x": 69.52,
- "y": 19.6
- },
- {
- "x": 55.99,
- "y": 20.44
- },
- {
- "x": 54.24,
- "y": 16.33
- },
- {
- "x": 49.83,
- "y": 15.39
- },
- {
- "x": 69.53,
- "y": 19.59
- },
- {
- "x": 69.52,
- "y": 19.6
- }
- ],
- [
- {
- "x": 24.54,
- "y": 16.69
+ "x": 25.55,
+ "y": 80.37
},
{
- "x": 20.32,
- "y": 16.96
+ "x": 25.71,
+ "y": 79.83
},
{
- "x": 28.98,
- "y": 14.01
+ "x": 25.14,
+ "y": 80.65
},
{
"x": 24.55,
- "y": 16.72
+ "y": 79.94
},
{
- "x": 24.54,
- "y": 16.69
- }
- ],
- [
- {
- "x": 58.09,
- "y": 13.9
+ "x": 25.04,
+ "y": 79.56
},
{
- "x": 56.34,
- "y": 13.37
+ "x": 24.27,
+ "y": 79.4
},
{
- "x": 58.07,
- "y": 13.89
+ "x": 24.32,
+ "y": 79.04
},
{
- "x": 58.09,
- "y": 13.9
- }
- ],
- [
- {
- "x": 41.42,
- "y": 14.29
+ "x": 24.67,
+ "y": 79.45
},
{
- "x": 39.5,
- "y": 13
+ "x": 24.35,
+ "y": 79
},
{
- "x": 41.44,
- "y": 14.2
+ "x": 24.72,
+ "y": 79.07
},
{
- "x": 41.42,
- "y": 14.29
- }
- ],
- [
+ "x": 25.04,
+ "y": 77.91
+ },
{
- "x": 54.03,
- "y": 13.2
+ "x": 24.77,
+ "y": 77.72
+ },
+ {
+ "x": 24.55,
+ "y": 78.55
+ },
+ {
+ "x": 24.58,
+ "y": 77.09
+ },
+ {
+ "x": 23.23,
+ "y": 76.37
+ },
+ {
+ "x": 20.75,
+ "y": 72.02
+ },
+ {
+ "x": 19.78,
+ "y": 72.04
+ },
+ {
+ "x": 18.91,
+ "y": 73.08
+ },
+ {
+ "x": 17.7,
+ "y": 70.9
+ },
+ {
+ "x": 16.23,
+ "y": 70.96
+ },
+ {
+ "x": 16.22,
+ "y": 53.87
+ },
+ {
+ "x": 17.65,
+ "y": 54.18
+ },
+ {
+ "x": 20.7,
+ "y": 56
+ },
+ {
+ "x": 20.07,
+ "y": 54.81
+ },
+ {
+ "x": 20.5,
+ "y": 55.07
+ },
+ {
+ "x": 20.17,
+ "y": 54.62
+ },
+ {
+ "x": 21.21,
+ "y": 54.33
+ },
+ {
+ "x": 21.21,
+ "y": 53.71
+ },
+ {
+ "x": 21.77,
+ "y": 54.09
+ },
+ {
+ "x": 21.37,
+ "y": 54.95
+ },
+ {
+ "x": 24.88,
+ "y": 52.49
+ },
+ {
+ "x": 24.94,
+ "y": 53.12
+ },
+ {
+ "x": 22.52,
+ "y": 54.73
+ },
+ {
+ "x": 21.98,
+ "y": 55.51
+ },
+ {
+ "x": 22.4,
+ "y": 55.93
+ },
+ {
+ "x": 22.05,
+ "y": 55.61
+ },
+ {
+ "x": 22.74,
+ "y": 55.7
+ },
+ {
+ "x": 22.45,
+ "y": 55.13
+ },
+ {
+ "x": 23.68,
+ "y": 54.2
+ },
+ {
+ "x": 23.57,
+ "y": 54.63
+ },
+ {
+ "x": 23.67,
+ "y": 54.02
+ },
+ {
+ "x": 23.77,
+ "y": 54.49
+ },
+ {
+ "x": 23.75,
+ "y": 53.95
+ },
+ {
+ "x": 23.88,
+ "y": 54.99
+ },
+ {
+ "x": 24.34,
+ "y": 53.78
+ },
+ {
+ "x": 25.49,
+ "y": 53.15
+ },
+ {
+ "x": 25.46,
+ "y": 53.79
+ },
+ {
+ "x": 25.91,
+ "y": 52.81
+ },
+ {
+ "x": 26.53,
+ "y": 52.6
+ },
+ {
+ "x": 26.01,
+ "y": 52.2
+ },
+ {
+ "x": 26.18,
+ "y": 51.76
+ },
+ {
+ "x": 28.11,
+ "y": 54.6
+ },
+ {
+ "x": 28.17,
+ "y": 53.78
+ },
+ {
+ "x": 28.59,
+ "y": 53.73
+ },
+ {
+ "x": 28.24,
+ "y": 53.52
+ },
+ {
+ "x": 28.74,
+ "y": 53.13
+ },
+ {
+ "x": 28.3,
+ "y": 53.09
+ },
+ {
+ "x": 28.91,
+ "y": 52.75
+ },
+ {
+ "x": 28.9,
+ "y": 54.5
+ },
+ {
+ "x": 29.69,
+ "y": 54.39
+ },
+ {
+ "x": 30,
+ "y": 53.47
+ },
+ {
+ "x": 30.72,
+ "y": 53.5
+ },
+ {
+ "x": 34.44,
+ "y": 55.51
+ },
+ {
+ "x": 36.11,
+ "y": 55.57
+ },
+ {
+ "x": 36.94,
+ "y": 56.55
+ },
+ {
+ "x": 35.91,
+ "y": 56.99
+ },
+ {
+ "x": 36.01,
+ "y": 57.77
+ },
+ {
+ "x": 38.48,
+ "y": 58.01
+ },
+ {
+ "x": 39.86,
+ "y": 57.35
+ },
+ {
+ "x": 40.82,
+ "y": 58.66
+ },
+ {
+ "x": 40.96,
+ "y": 58.12
+ },
+ {
+ "x": 41.45,
+ "y": 58.81
+ },
+ {
+ "x": 41.54,
+ "y": 59.27
+ },
+ {
+ "x": 40.97,
+ "y": 59.07
+ },
+ {
+ "x": 42.03,
+ "y": 60.62
+ },
+ {
+ "x": 41.6,
+ "y": 59.82
+ },
+ {
+ "x": 41.73,
+ "y": 59.21
+ },
+ {
+ "x": 42.15,
+ "y": 59.7
+ },
+ {
+ "x": 41.54,
+ "y": 57.18
+ },
+ {
+ "x": 42.64,
+ "y": 57.06
+ },
+ {
+ "x": 43.25,
+ "y": 56.05
+ },
+ {
+ "x": 42.55,
+ "y": 56.31
+ },
+ {
+ "x": 42.55,
+ "y": 56.76
+ },
+ {
+ "x": 41.58,
+ "y": 56.66
+ },
+ {
+ "x": 41.74,
+ "y": 57.03
+ },
+ {
+ "x": 40.83,
+ "y": 56.8
+ },
+ {
+ "x": 41.23,
+ "y": 56.08
+ },
+ {
+ "x": 42.81,
+ "y": 55.4
+ },
+ {
+ "x": 44.14,
+ "y": 57.3
+ },
+ {
+ "x": 44.95,
+ "y": 57.02
+ },
+ {
+ "x": 45.86,
+ "y": 57.99
+ },
+ {
+ "x": 47.02,
+ "y": 57.67
+ },
+ {
+ "x": 48.38,
+ "y": 57.98
+ },
+ {
+ "x": 48.82,
+ "y": 57.77
+ },
+ {
+ "x": 48.64,
+ "y": 57.17
+ },
+ {
+ "x": 49.69,
+ "y": 58.13
+ },
+ {
+ "x": 49.66,
+ "y": 57.52
+ },
+ {
+ "x": 49.02,
+ "y": 57.7
+ },
+ {
+ "x": 48.55,
+ "y": 56.59
+ },
+ {
+ "x": 49.53,
+ "y": 56.33
+ },
+ {
+ "x": 49.79,
+ "y": 56.82
+ },
+ {
+ "x": 50.31,
+ "y": 56.72
+ },
+ {
+ "x": 50.09,
+ "y": 57.34
+ },
+ {
+ "x": 50.7,
+ "y": 56.76
+ },
+ {
+ "x": 50.26,
+ "y": 58.42
+ },
+ {
+ "x": 50.54,
+ "y": 58.93
+ },
+ {
+ "x": 50.96,
+ "y": 58.63
+ },
+ {
+ "x": 51.12,
+ "y": 59.42
+ },
+ {
+ "x": 50.27,
+ "y": 59.25
+ },
+ {
+ "x": 50.76,
+ "y": 60.16
},
{
"x": 50.55,
- "y": 13.29
+ "y": 59.51
},
{
- "x": 54.07,
- "y": 13.2
+ "x": 51.22,
+ "y": 59.42
},
{
- "x": 54.03,
- "y": 13.2
- }
- ],
- [
- {
- "x": 43.62,
- "y": 12.97
+ "x": 51.02,
+ "y": 57.24
},
{
- "x": 45.34,
- "y": 12.96
+ "x": 51.54,
+ "y": 57.29
},
{
- "x": 43.62,
- "y": 12.99
+ "x": 52.63,
+ "y": 56.05
},
{
- "x": 43.62,
- "y": 12.97
- }
- ],
- [
- {
- "x": 30.91,
- "y": 12.67
+ "x": 52.28,
+ "y": 55.14
},
{
- "x": 29.29,
- "y": 12.44
+ "x": 51.66,
+ "y": 55.8
},
{
- "x": 30.89,
- "y": 12.61
+ "x": 51.93,
+ "y": 54.59
},
{
- "x": 30.91,
- "y": 12.67
- }
- ],
- [
- {
- "x": 35.53,
- "y": 12.17
+ "x": 52.51,
+ "y": 54.33
},
{
- "x": 31.41,
- "y": 13.35
+ "x": 52.29,
+ "y": 54.91
},
{
- "x": 35.42,
- "y": 12.11
+ "x": 52.53,
+ "y": 54.17
},
{
- "x": 35.53,
- "y": 12.17
- }
- ],
- [
- {
- "x": 35.92,
- "y": 11.24
+ "x": 51.9,
+ "y": 54.31
},
{
- "x": 31.3,
- "y": 11.53
+ "x": 51.67,
+ "y": 53.79
},
{
- "x": 35.89,
- "y": 11.22
+ "x": 50.64,
+ "y": 53.58
},
{
- "x": 35.92,
- "y": 11.24
- }
- ],
- [
- {
- "x": 49.89,
- "y": 12.84
+ "x": 50.18,
+ "y": 52.57
},
{
- "x": 48.25,
- "y": 10.48
+ "x": 50.44,
+ "y": 51.81
},
{
- "x": 52.21,
- "y": 11.41
+ "x": 50.78,
+ "y": 51.88
},
{
- "x": 49.94,
- "y": 12.85
+ "x": 50.16,
+ "y": 51.3
},
{
- "x": 49.89,
- "y": 12.84
- }
- ],
- [
- {
- "x": 40.05,
- "y": 9.68
+ "x": 50.23,
+ "y": 50.15
},
{
- "x": 44.54,
- "y": 9.74
+ "x": 50.52,
+ "y": 49.83
},
{
- "x": 47.5,
- "y": 12.62
+ "x": 50.97,
+ "y": 50.11
},
{
- "x": 40.06,
- "y": 9.69
+ "x": 51.1,
+ "y": 49.6
},
{
- "x": 40.05,
- "y": 9.68
- }
- ],
- [
- {
- "x": 46.22,
- "y": 7.52
+ "x": 50.69,
+ "y": 49.36
},
{
- "x": 47.92,
- "y": 8.02
+ "x": 51.73,
+ "y": 48.4
},
{
- "x": 46.22,
- "y": 7.54
+ "x": 51.69,
+ "y": 49.03
},
{
- "x": 46.22,
- "y": 7.52
- }
- ],
- [
- {
- "x": 50.21,
- "y": 7.41
+ "x": 52.36,
+ "y": 48.98
},
{
- "x": 52.75,
- "y": 7.55
+ "x": 52.93,
+ "y": 49.99
},
{
- "x": 50.14,
- "y": 6.69
+ "x": 52.88,
+ "y": 51.13
},
{
- "x": 54.02,
- "y": 4.21
+ "x": 54.04,
+ "y": 52.69
},
{
- "x": 63.46,
- "y": 9.28
+ "x": 53.4,
+ "y": 52.57
},
{
- "x": 55.42,
- "y": 11.84
+ "x": 53.23,
+ "y": 52.92
},
{
- "x": 52.85,
- "y": 9.96
+ "x": 53.72,
+ "y": 53.05
},
{
- "x": 57.29,
- "y": 9.33
+ "x": 52.97,
+ "y": 53.82
},
{
- "x": 50.28,
- "y": 7.39
+ "x": 54.97,
+ "y": 54.3
},
{
- "x": 50.21,
- "y": 7.41
- }
- ],
- [
- {
- "x": 90.42,
- "y": 1.89
+ "x": 54.59,
+ "y": 54.73
},
{
- "x": 81.12,
- "y": 3.37
+ "x": 54.1,
+ "y": 54.53
},
{
- "x": 84.17,
- "y": 3.86
+ "x": 54.71,
+ "y": 55.12
},
{
- "x": 80.31,
- "y": 4.85
+ "x": 55.02,
+ "y": 56.89
},
{
- "x": 86.63,
- "y": 3.94
+ "x": 55.73,
+ "y": 54.74
},
{
- "x": 71.21,
- "y": 9.07
+ "x": 56.54,
+ "y": 55.43
},
{
- "x": 75.09,
- "y": 10.92
+ "x": 56.89,
+ "y": 56.71
},
{
- "x": 66.53,
- "y": 14.03
+ "x": 56.43,
+ "y": 56.77
},
{
- "x": 70.87,
- "y": 16.05
+ "x": 56.45,
+ "y": 57.42
},
{
- "x": 58.07,
- "y": 15.78
+ "x": 57.1,
+ "y": 59.13
},
{
- "x": 61.55,
- "y": 14.33
+ "x": 57.88,
+ "y": 58.62
},
{
- "x": 59.72,
- "y": 12.68
+ "x": 58.52,
+ "y": 55.86
},
{
- "x": 63.97,
- "y": 14.03
+ "x": 59.19,
+ "y": 55.84
},
{
- "x": 66.39,
- "y": 12.15
+ "x": 58.92,
+ "y": 55.39
},
{
- "x": 63.63,
- "y": 13.5
+ "x": 59.39,
+ "y": 55.23
},
{
- "x": 63.8,
- "y": 10.92
+ "x": 58.66,
+ "y": 54.69
},
{
- "x": 60.55,
- "y": 12.04
+ "x": 58.6,
+ "y": 53.42
},
{
- "x": 61.17,
- "y": 10.62
+ "x": 61.13,
+ "y": 53.9
},
{
- "x": 67.35,
- "y": 9.81
+ "x": 60.33,
+ "y": 54.12
},
{
- "x": 63.64,
- "y": 9.84
+ "x": 61.83,
+ "y": 54.88
},
{
- "x": 65.21,
- "y": 9.8
+ "x": 61.27,
+ "y": 55.54
},
{
- "x": 61.66,
- "y": 6.77
+ "x": 61.91,
+ "y": 55.76
+ },
+ {
+ "x": 60.82,
+ "y": 56.48
+ },
+ {
+ "x": 61.88,
+ "y": 58.39
+ },
+ {
+ "x": 61.7,
+ "y": 59.36
+ },
+ {
+ "x": 60.27,
+ "y": 60.62
+ },
+ {
+ "x": 59.85,
+ "y": 59.59
+ },
+ {
+ "x": 59.69,
+ "y": 59.93
+ },
+ {
+ "x": 59.51,
+ "y": 59.42
+ },
+ {
+ "x": 58.86,
+ "y": 59.52
+ },
+ {
+ "x": 59.33,
+ "y": 59.48
+ },
+ {
+ "x": 59.94,
+ "y": 60.98
+ },
+ {
+ "x": 59.38,
+ "y": 60.52
+ },
+ {
+ "x": 59.48,
+ "y": 60.97
+ },
+ {
+ "x": 58.84,
+ "y": 60.77
+ },
+ {
+ "x": 58.67,
+ "y": 60.19
+ },
+ {
+ "x": 57.66,
+ "y": 60.29
+ },
+ {
+ "x": 58.37,
+ "y": 60.98
+ },
+ {
+ "x": 57.21,
+ "y": 62.53
+ },
+ {
+ "x": 55.44,
+ "y": 61.38
+ },
+ {
+ "x": 54.06,
+ "y": 61.38
+ },
+ {
+ "x": 55.24,
+ "y": 61.67
+ },
+ {
+ "x": 55.94,
+ "y": 62.53
+ },
+ {
+ "x": 57.46,
+ "y": 62.69
+ },
+ {
+ "x": 56.75,
+ "y": 64.57
+ },
+ {
+ "x": 55.58,
+ "y": 64.99
+ },
+ {
+ "x": 55.37,
+ "y": 64.46
+ },
+ {
+ "x": 55.09,
+ "y": 65.54
+ },
+ {
+ "x": 54.51,
+ "y": 65.65
+ },
+ {
+ "x": 52.32,
+ "y": 64.57
+ },
+ {
+ "x": 52.42,
+ "y": 65.11
+ },
+ {
+ "x": 53.6,
+ "y": 65.42
+ },
+ {
+ "x": 53.32,
+ "y": 65.72
+ },
+ {
+ "x": 53.85,
+ "y": 65.4
+ },
+ {
+ "x": 54.61,
+ "y": 65.94
+ },
+ {
+ "x": 54.73,
+ "y": 66.51
+ },
+ {
+ "x": 53.33,
+ "y": 66.91
+ },
+ {
+ "x": 53.76,
+ "y": 67.3
+ },
+ {
+ "x": 53.2,
+ "y": 67.25
+ },
+ {
+ "x": 53.32,
+ "y": 68.03
+ },
+ {
+ "x": 52.72,
+ "y": 67.67
+ },
+ {
+ "x": 53.09,
+ "y": 67.91
+ },
+ {
+ "x": 52.44,
+ "y": 68.35
+ },
+ {
+ "x": 52.71,
+ "y": 68.7
+ },
+ {
+ "x": 51.54,
+ "y": 70.66
+ },
+ {
+ "x": 51.38,
+ "y": 72.85
+ },
+ {
+ "x": 51.99,
+ "y": 73.22
+ },
+ {
+ "x": 51.87,
+ "y": 74.07
+ },
+ {
+ "x": 52.01,
+ "y": 73.26
+ },
+ {
+ "x": 52.79,
+ "y": 73.31
+ },
+ {
+ "x": 53.35,
+ "y": 75.32
+ },
+ {
+ "x": 53,
+ "y": 75.94
+ },
+ {
+ "x": 54.76,
+ "y": 75.49
+ },
+ {
+ "x": 58.93,
+ "y": 78.08
+ },
+ {
+ "x": 58.71,
+ "y": 78.55
+ },
+ {
+ "x": 58.99,
+ "y": 78.16
+ },
+ {
+ "x": 61.07,
+ "y": 78.33
+ },
+ {
+ "x": 61.09,
+ "y": 81.19
+ },
+ {
+ "x": 61.72,
+ "y": 82.03
+ },
+ {
+ "x": 61.41,
+ "y": 82.17
+ },
+ {
+ "x": 62.39,
+ "y": 82.75
+ },
+ {
+ "x": 62.07,
+ "y": 83.59
+ },
+ {
+ "x": 62.77,
+ "y": 83.27
+ },
+ {
+ "x": 63.36,
+ "y": 83.97
+ },
+ {
+ "x": 63.08,
+ "y": 83.15
+ },
+ {
+ "x": 63.37,
+ "y": 82.82
+ },
+ {
+ "x": 63.73,
+ "y": 83.43
+ },
+ {
+ "x": 63.58,
+ "y": 82.69
+ },
+ {
+ "x": 64.06,
+ "y": 82.1
+ },
+ {
+ "x": 63.58,
+ "y": 79.63
+ },
+ {
+ "x": 63.03,
+ "y": 79
+ },
+ {
+ "x": 64.53,
+ "y": 78.2
+ },
+ {
+ "x": 65.51,
+ "y": 76.63
+ },
+ {
+ "x": 65.29,
+ "y": 74.86
+ },
+ {
+ "x": 63.94,
+ "y": 73.49
+ },
+ {
+ "x": 65,
+ "y": 71.33
+ },
+ {
+ "x": 64.66,
+ "y": 71.32
+ },
+ {
+ "x": 64.75,
+ "y": 70.12
+ },
+ {
+ "x": 64.23,
+ "y": 70.2
+ },
+ {
+ "x": 64.78,
+ "y": 69.01
+ },
+ {
+ "x": 64.26,
+ "y": 67.78
+ },
+ {
+ "x": 64.78,
+ "y": 67.29
+ },
+ {
+ "x": 67.01,
+ "y": 68.09
+ },
+ {
+ "x": 67.69,
+ "y": 67.48
+ },
+ {
+ "x": 68.48,
+ "y": 68.08
},
{
"x": 68.35,
- "y": 8.56
+ "y": 68.54
},
{
- "x": 65.39,
- "y": 6.74
+ "x": 68.81,
+ "y": 68.49
},
{
- "x": 73,
- "y": 5.4
+ "x": 68.73,
+ "y": 68.97
},
{
- "x": 62.1,
- "y": 6.22
+ "x": 69.28,
+ "y": 68.9
},
{
- "x": 66.35,
- "y": 4.67
+ "x": 69.29,
+ "y": 69.63
},
{
- "x": 60.3,
- "y": 5.96
+ "x": 70.97,
+ "y": 70
},
{
- "x": 58.31,
- "y": 5.31
+ "x": 70.78,
+ "y": 71.31
},
{
- "x": 63.65,
- "y": 4.39
+ "x": 69.7,
+ "y": 71.32
},
{
- "x": 55.77,
- "y": 3.33
+ "x": 70.83,
+ "y": 71.63
},
{
- "x": 63.69,
- "y": 1.53
+ "x": 70.68,
+ "y": 72.46
},
{
- "x": 69.89,
- "y": 3.13
+ "x": 71.08,
+ "y": 72.57
},
{
- "x": 65.93,
- "y": 1.7
+ "x": 70.82,
+ "y": 73.22
},
{
- "x": 74.22,
- "y": 1.2
+ "x": 70.6,
+ "y": 72.84
},
{
- "x": 72.26,
- "y": 0.19
+ "x": 70.3,
+ "y": 73.27
},
{
- "x": 90.4,
- "y": 1.82
+ "x": 71.74,
+ "y": 73.24
},
{
- "x": 90.42,
- "y": 1.89
- }
- ],
- [
- {
- "x": 91.56,
- "y": 90.05
+ "x": 71.76,
+ "y": 74.2
},
{
- "x": 90,
- "y": 90.25
+ "x": 70.97,
+ "y": 74.72
},
{
- "x": 90.98,
+ "x": 72.01,
+ "y": 73.55
+ },
+ {
+ "x": 72.25,
+ "y": 74.5
+ },
+ {
+ "x": 73.25,
+ "y": 73.15
+ },
+ {
+ "x": 73.51,
+ "y": 73.91
+ },
+ {
+ "x": 73.56,
+ "y": 73.05
+ },
+ {
+ "x": 74.07,
+ "y": 72.86
+ },
+ {
+ "x": 73.88,
+ "y": 72.2
+ },
+ {
+ "x": 74.32,
+ "y": 72.36
+ },
+ {
+ "x": 73.89,
+ "y": 71.83
+ },
+ {
+ "x": 74.32,
+ "y": 71.78
+ },
+ {
+ "x": 74.6,
+ "y": 70.89
+ },
+ {
+ "x": 74.44,
+ "y": 71.44
+ },
+ {
+ "x": 74.79,
+ "y": 71.23
+ },
+ {
+ "x": 75.03,
+ "y": 72.35
+ },
+ {
+ "x": 75.55,
+ "y": 72.52
+ },
+ {
+ "x": 75.05,
+ "y": 72.9
+ },
+ {
+ "x": 75.74,
+ "y": 72.84
+ },
+ {
+ "x": 75.96,
+ "y": 73.4
+ },
+ {
+ "x": 75.39,
+ "y": 73.95
+ },
+ {
+ "x": 76.18,
+ "y": 73.7
+ },
+ {
+ "x": 75.58,
+ "y": 74.42
+ },
+ {
+ "x": 76.25,
+ "y": 74.13
+ },
+ {
+ "x": 76.09,
+ "y": 74.49
+ },
+ {
+ "x": 76.69,
+ "y": 74.93
+ },
+ {
+ "x": 76.2,
+ "y": 75.12
+ },
+ {
+ "x": 77.09,
+ "y": 75.67
+ },
+ {
+ "x": 76.84,
+ "y": 76.35
+ },
+ {
+ "x": 76.16,
+ "y": 76.1
+ },
+ {
+ "x": 76.82,
+ "y": 76.4
+ },
+ {
+ "x": 76.49,
+ "y": 76.58
+ },
+ {
+ "x": 76.91,
+ "y": 76.81
+ },
+ {
+ "x": 76.55,
+ "y": 76.81
+ },
+ {
+ "x": 77.11,
+ "y": 76.9
+ },
+ {
+ "x": 77.61,
+ "y": 77.79
+ },
+ {
+ "x": 77.88,
+ "y": 77.5
+ },
+ {
+ "x": 77.61,
+ "y": 78.56
+ },
+ {
+ "x": 78.3,
+ "y": 78.11
+ },
+ {
+ "x": 78.16,
+ "y": 78.39
+ },
+ {
+ "x": 78.57,
+ "y": 78.36
+ },
+ {
+ "x": 78.19,
+ "y": 78.89
+ },
+ {
+ "x": 78.78,
+ "y": 78.23
+ },
+ {
+ "x": 78.61,
+ "y": 78.58
+ },
+ {
+ "x": 78.88,
+ "y": 78.33
+ },
+ {
+ "x": 78.97,
+ "y": 78.76
+ },
+ {
+ "x": 80.16,
+ "y": 79.09
+ },
+ {
+ "x": 78.45,
+ "y": 79.8
+ },
+ {
+ "x": 79.38,
+ "y": 79.57
+ },
+ {
+ "x": 78.03,
+ "y": 80.48
+ },
+ {
+ "x": 77.46,
+ "y": 80.09
+ },
+ {
+ "x": 78.1,
+ "y": 80.52
+ },
+ {
+ "x": 77.81,
+ "y": 80.81
+ },
+ {
+ "x": 79.65,
+ "y": 79.55
+ },
+ {
+ "x": 80.32,
+ "y": 79.95
+ },
+ {
+ "x": 80.14,
+ "y": 80.6
+ },
+ {
+ "x": 80.82,
+ "y": 80.14
+ },
+ {
+ "x": 81.38,
+ "y": 80.82
+ },
+ {
+ "x": 81.06,
+ "y": 81.11
+ },
+ {
+ "x": 81.38,
+ "y": 81.63
+ },
+ {
+ "x": 80.81,
+ "y": 81.66
+ },
+ {
+ "x": 81.46,
+ "y": 81.85
+ },
+ {
+ "x": 81.04,
+ "y": 81.85
+ },
+ {
+ "x": 81.48,
+ "y": 82.13
+ },
+ {
+ "x": 81.25,
+ "y": 82.49
+ },
+ {
+ "x": 79.15,
+ "y": 83.32
+ },
+ {
+ "x": 78.18,
+ "y": 84.53
+ },
+ {
+ "x": 73.2,
+ "y": 84.51
+ },
+ {
+ "x": 70.74,
+ "y": 87
+ },
+ {
+ "x": 69.67,
+ "y": 86.66
+ },
+ {
+ "x": 70.69,
"y": 87.05
},
{
- "x": 91.56,
- "y": 90.04
+ "x": 69.5,
+ "y": 88.57
},
{
- "x": 91.56,
- "y": 90.05
+ "x": 67.14,
+ "y": 89.89
+ },
+ {
+ "x": 67.46,
+ "y": 90.12
+ },
+ {
+ "x": 65.3,
+ "y": 91.95
+ },
+ {
+ "x": 63.65,
+ "y": 92.05
+ },
+ {
+ "x": 63.6,
+ "y": 92.83
+ },
+ {
+ "x": 60.97,
+ "y": 94
+ },
+ {
+ "x": 60.43,
+ "y": 93.61
+ },
+ {
+ "x": 61.21,
+ "y": 92.02
+ },
+ {
+ "x": 60.91,
+ "y": 90.18
+ },
+ {
+ "x": 59.71,
+ "y": 88.83
+ },
+ {
+ "x": 56.47,
+ "y": 86.82
+ },
+ {
+ "x": 53.99,
+ "y": 87.11
+ },
+ {
+ "x": 51.75,
+ "y": 86.36
+ },
+ {
+ "x": 51.31,
+ "y": 85.6
+ },
+ {
+ "x": 51.26,
+ "y": 85.58
}
],
[
{
- "x": 89.38,
- "y": 88.43
+ "x": 68.24,
+ "y": 59.88
},
{
- "x": 86.65,
- "y": 87.9
+ "x": 68.81,
+ "y": 58.82
},
{
- "x": 89.27,
- "y": 88.38
+ "x": 68.19,
+ "y": 56.87
},
{
- "x": 89.38,
- "y": 88.43
- }
- ],
- [
- {
- "x": 86.76,
- "y": 80.4
+ "x": 67.55,
+ "y": 56.65
},
{
- "x": 89.72,
- "y": 82.08
+ "x": 67.62,
+ "y": 55.95
},
{
- "x": 86.78,
- "y": 80.43
+ "x": 67.27,
+ "y": 56.31
},
{
- "x": 86.76,
- "y": 80.4
- }
- ],
- [
+ "x": 66.68,
+ "y": 55.68
+ },
{
- "x": 69.53,
+ "x": 66.82,
+ "y": 55.11
+ },
+ {
+ "x": 65.43,
+ "y": 55.96
+ },
+ {
+ "x": 65.43,
+ "y": 55.23
+ },
+ {
+ "x": 66.21,
+ "y": 54.78
+ },
+ {
+ "x": 65.42,
+ "y": 54.1
+ },
+ {
+ "x": 65.77,
+ "y": 53.84
+ },
+ {
+ "x": 64.99,
+ "y": 53.88
+ },
+ {
+ "x": 65.16,
+ "y": 53.23
+ },
+ {
+ "x": 64.67,
+ "y": 53.67
+ },
+ {
+ "x": 64.6,
+ "y": 52.65
+ },
+ {
+ "x": 64.06,
+ "y": 52.62
+ },
+ {
+ "x": 63.6,
+ "y": 51.55
+ },
+ {
+ "x": 63.16,
+ "y": 52.17
+ },
+ {
+ "x": 63.67,
+ "y": 52.42
+ },
+ {
+ "x": 63.77,
+ "y": 53.37
+ },
+ {
+ "x": 61.52,
+ "y": 52.8
+ },
+ {
+ "x": 62.14,
+ "y": 53.73
+ },
+ {
+ "x": 60.55,
+ "y": 52.4
+ },
+ {
+ "x": 61.52,
+ "y": 53.37
+ },
+ {
+ "x": 59.17,
+ "y": 52.83
+ },
+ {
+ "x": 58.43,
+ "y": 53.11
+ },
+ {
+ "x": 57.84,
+ "y": 52.57
+ },
+ {
+ "x": 58,
+ "y": 51.92
+ },
+ {
+ "x": 56.85,
+ "y": 52.57
+ },
+ {
+ "x": 56.04,
+ "y": 51.87
+ },
+ {
+ "x": 55.54,
+ "y": 50.59
+ },
+ {
+ "x": 57.5,
+ "y": 50.82
+ },
+ {
+ "x": 56.84,
+ "y": 50.16
+ },
+ {
+ "x": 55.35,
+ "y": 50.03
+ },
+ {
+ "x": 55.17,
+ "y": 49.39
+ },
+ {
+ "x": 55.78,
+ "y": 45.56
+ },
+ {
+ "x": 56.91,
+ "y": 43.95
+ },
+ {
+ "x": 57.84,
+ "y": 43.57
+ },
+ {
+ "x": 59.15,
+ "y": 43.87
+ },
+ {
+ "x": 57.7,
+ "y": 46.53
+ },
+ {
+ "x": 57.95,
+ "y": 48.39
+ },
+ {
+ "x": 59.15,
+ "y": 50.13
+ },
+ {
+ "x": 57.63,
+ "y": 50.83
+ },
+ {
+ "x": 59.05,
+ "y": 50.35
+ },
+ {
+ "x": 59.22,
+ "y": 50.87
+ },
+ {
+ "x": 59.32,
+ "y": 49.22
+ },
+ {
+ "x": 58.22,
+ "y": 48.37
+ },
+ {
+ "x": 58.66,
+ "y": 47.74
+ },
+ {
+ "x": 59.67,
+ "y": 48.34
+ },
+ {
+ "x": 59.07,
+ "y": 47.67
+ },
+ {
+ "x": 59.46,
+ "y": 47.45
+ },
+ {
+ "x": 58.63,
+ "y": 47.24
+ },
+ {
+ "x": 58.51,
+ "y": 46.1
+ },
+ {
+ "x": 59.83,
+ "y": 46.49
+ },
+ {
+ "x": 58.71,
+ "y": 45.49
+ },
+ {
+ "x": 60.07,
+ "y": 45.9
+ },
+ {
+ "x": 58.92,
+ "y": 45.04
+ },
+ {
+ "x": 59.53,
+ "y": 45.25
+ },
+ {
+ "x": 59.29,
+ "y": 44.81
+ },
+ {
+ "x": 59.65,
+ "y": 44.59
+ },
+ {
+ "x": 60.08,
+ "y": 45.07
+ },
+ {
+ "x": 59.8,
+ "y": 44.47
+ },
+ {
+ "x": 61.28,
+ "y": 43.89
+ },
+ {
+ "x": 61.72,
+ "y": 43.98
+ },
+ {
+ "x": 62.66,
+ "y": 46.54
+ },
+ {
+ "x": 61.79,
+ "y": 47.79
+ },
+ {
+ "x": 62.44,
+ "y": 47.11
+ },
+ {
+ "x": 62.1,
+ "y": 48.68
+ },
+ {
+ "x": 62.66,
+ "y": 47.65
+ },
+ {
+ "x": 63.1,
+ "y": 48.08
+ },
+ {
+ "x": 62.72,
+ "y": 47.59
+ },
+ {
+ "x": 62.99,
+ "y": 47.13
+ },
+ {
+ "x": 63.04,
+ "y": 47.86
+ },
+ {
+ "x": 63.36,
+ "y": 47.4
+ },
+ {
+ "x": 63.65,
+ "y": 47.7
+ },
+ {
+ "x": 63.48,
+ "y": 48.51
+ },
+ {
+ "x": 63.99,
+ "y": 48.71
+ },
+ {
+ "x": 63.74,
+ "y": 47.97
+ },
+ {
+ "x": 64.57,
+ "y": 49.01
+ },
+ {
+ "x": 63.75,
+ "y": 47.57
+ },
+ {
+ "x": 65.14,
+ "y": 48.07
+ },
+ {
+ "x": 63.95,
+ "y": 47.12
+ },
+ {
+ "x": 65.23,
+ "y": 46.53
+ },
+ {
+ "x": 65.83,
+ "y": 47.2
+ },
+ {
+ "x": 66.52,
+ "y": 47.15
+ },
+ {
+ "x": 66.71,
+ "y": 47.76
+ },
+ {
+ "x": 65.85,
+ "y": 48.21
+ },
+ {
+ "x": 65.61,
+ "y": 48.77
+ },
+ {
+ "x": 66.5,
+ "y": 48.23
+ },
+ {
+ "x": 65.83,
+ "y": 49.15
+ },
+ {
+ "x": 66.62,
+ "y": 48.08
+ },
+ {
+ "x": 67.3,
+ "y": 48.32
+ },
+ {
+ "x": 67.23,
+ "y": 48.85
+ },
+ {
+ "x": 66.38,
+ "y": 49.16
+ },
+ {
+ "x": 66.72,
+ "y": 49.23
+ },
+ {
+ "x": 66.37,
+ "y": 49.58
+ },
+ {
+ "x": 66.95,
+ "y": 49.24
+ },
+ {
+ "x": 66.61,
+ "y": 50.38
+ },
+ {
+ "x": 67.03,
+ "y": 49.23
+ },
+ {
+ "x": 67.34,
+ "y": 49.03
+ },
+ {
+ "x": 67.32,
+ "y": 49.53
+ },
+ {
+ "x": 67.65,
+ "y": 48.95
+ },
+ {
+ "x": 67.19,
+ "y": 49.83
+ },
+ {
+ "x": 67.25,
+ "y": 50.33
+ },
+ {
+ "x": 67.77,
+ "y": 49.48
+ },
+ {
+ "x": 67.52,
+ "y": 50.69
+ },
+ {
+ "x": 67.96,
+ "y": 50
+ },
+ {
+ "x": 67.91,
+ "y": 50.85
+ },
+ {
+ "x": 68.54,
+ "y": 49.22
+ },
+ {
+ "x": 69.64,
+ "y": 50.17
+ },
+ {
+ "x": 68.39,
+ "y": 51.21
+ },
+ {
+ "x": 68.84,
+ "y": 51.19
+ },
+ {
+ "x": 68.53,
+ "y": 51.71
+ },
+ {
+ "x": 70.02,
+ "y": 50.65
+ },
+ {
+ "x": 69.88,
+ "y": 51.45
+ },
+ {
+ "x": 68.99,
+ "y": 52.15
+ },
+ {
+ "x": 69.1,
+ "y": 52.44
+ },
+ {
+ "x": 69.6,
+ "y": 51.89
+ },
+ {
+ "x": 69.31,
+ "y": 53.05
+ },
+ {
+ "x": 69.74,
+ "y": 51.66
+ },
+ {
+ "x": 70.56,
+ "y": 51.09
+ },
+ {
+ "x": 70.11,
+ "y": 52.01
+ },
+ {
+ "x": 70.89,
+ "y": 51.3
+ },
+ {
+ "x": 71.8,
+ "y": 51.85
+ },
+ {
+ "x": 70.13,
+ "y": 53.45
+ },
+ {
+ "x": 71.5,
+ "y": 52.65
+ },
+ {
+ "x": 70.5,
+ "y": 53.95
+ },
+ {
+ "x": 71.96,
+ "y": 52.36
+ },
+ {
+ "x": 72.7,
+ "y": 53.7
+ },
+ {
+ "x": 70.48,
+ "y": 54.15
+ },
+ {
+ "x": 72.61,
+ "y": 54.28
+ },
+ {
+ "x": 73.05,
+ "y": 54.86
+ },
+ {
+ "x": 71.24,
+ "y": 54.51
+ },
+ {
+ "x": 71.96,
+ "y": 54.81
+ },
+ {
+ "x": 71.28,
+ "y": 54.8
+ },
+ {
+ "x": 71.63,
+ "y": 54.85
+ },
+ {
+ "x": 71.24,
+ "y": 55.35
+ },
+ {
+ "x": 71.91,
+ "y": 54.97
+ },
+ {
+ "x": 72.25,
+ "y": 55.23
+ },
+ {
+ "x": 71.64,
+ "y": 55.5
+ },
+ {
+ "x": 72.19,
+ "y": 55.74
+ },
+ {
+ "x": 70.96,
+ "y": 55.67
+ },
+ {
+ "x": 71.98,
+ "y": 55.95
+ },
+ {
+ "x": 71.33,
+ "y": 56.12
+ },
+ {
+ "x": 72.07,
+ "y": 56.21
+ },
+ {
+ "x": 72.05,
+ "y": 56.55
+ },
+ {
+ "x": 72.28,
+ "y": 56.2
+ },
+ {
+ "x": 72.32,
+ "y": 56.58
+ },
+ {
+ "x": 73.04,
+ "y": 56.46
+ },
+ {
+ "x": 72.11,
+ "y": 56.79
+ },
+ {
+ "x": 72.76,
+ "y": 56.7
+ },
+ {
+ "x": 72.32,
+ "y": 57.03
+ },
+ {
+ "x": 72.79,
+ "y": 56.77
+ },
+ {
+ "x": 72.98,
+ "y": 57.39
+ },
+ {
+ "x": 73.31,
+ "y": 57.11
+ },
+ {
+ "x": 73.25,
+ "y": 57.81
+ },
+ {
+ "x": 73.6,
+ "y": 57.03
+ },
+ {
+ "x": 73.54,
+ "y": 58.1
+ },
+ {
+ "x": 73.69,
+ "y": 57.42
+ },
+ {
+ "x": 74.06,
+ "y": 58.18
+ },
+ {
+ "x": 73.99,
+ "y": 57.54
+ },
+ {
+ "x": 74.53,
+ "y": 57.4
+ },
+ {
+ "x": 74.16,
+ "y": 58.09
+ },
+ {
+ "x": 74.69,
+ "y": 57.76
+ },
+ {
+ "x": 75.15,
+ "y": 58.76
+ },
+ {
+ "x": 74.49,
+ "y": 58.65
+ },
+ {
+ "x": 74.9,
+ "y": 58.78
+ },
+ {
+ "x": 74.49,
+ "y": 58.98
+ },
+ {
+ "x": 75.1,
+ "y": 58.82
+ },
+ {
+ "x": 74.54,
+ "y": 59.35
+ },
+ {
+ "x": 75.45,
+ "y": 58.89
+ },
+ {
+ "x": 75.25,
+ "y": 59.44
+ },
+ {
+ "x": 75.72,
+ "y": 58.7
+ },
+ {
+ "x": 75.21,
+ "y": 59.72
+ },
+ {
+ "x": 75.5,
+ "y": 59.54
+ },
+ {
+ "x": 75.52,
+ "y": 59.93
+ },
+ {
+ "x": 75.94,
+ "y": 59.43
+ },
+ {
+ "x": 75.92,
+ "y": 60.07
+ },
+ {
+ "x": 76.54,
+ "y": 59.25
+ },
+ {
+ "x": 77.16,
+ "y": 60.04
+ },
+ {
+ "x": 76.46,
+ "y": 60.08
+ },
+ {
+ "x": 76.94,
+ "y": 60.63
+ },
+ {
+ "x": 75.92,
+ "y": 60.65
+ },
+ {
+ "x": 76.64,
+ "y": 61.23
+ },
+ {
+ "x": 75.79,
+ "y": 61.05
+ },
+ {
+ "x": 76.33,
+ "y": 61.45
+ },
+ {
+ "x": 75.94,
+ "y": 61.46
+ },
+ {
+ "x": 76.1,
+ "y": 62.05
+ },
+ {
+ "x": 75.45,
+ "y": 61.4
+ },
+ {
+ "x": 75.43,
+ "y": 63.31
+ },
+ {
+ "x": 75.24,
+ "y": 62.8
+ },
+ {
+ "x": 74.86,
+ "y": 62.94
+ },
+ {
+ "x": 74.89,
+ "y": 62.34
+ },
+ {
+ "x": 74.65,
+ "y": 62.96
+ },
+ {
+ "x": 74.38,
+ "y": 62.5
+ },
+ {
+ "x": 74.76,
+ "y": 62.25
+ },
+ {
+ "x": 74.21,
+ "y": 62.35
+ },
+ {
+ "x": 74.47,
+ "y": 61.79
+ },
+ {
+ "x": 73.93,
+ "y": 61.74
+ },
+ {
+ "x": 74.81,
+ "y": 60.62
+ },
+ {
+ "x": 73.62,
+ "y": 61.37
+ },
+ {
+ "x": 73.95,
+ "y": 60.54
+ },
+ {
+ "x": 73.43,
+ "y": 61.02
+ },
+ {
+ "x": 72.74,
+ "y": 60.05
+ },
+ {
+ "x": 72.21,
+ "y": 60.2
+ },
+ {
+ "x": 72.67,
+ "y": 60.71
+ },
+ {
+ "x": 72.03,
+ "y": 60.31
+ },
+ {
+ "x": 72.64,
+ "y": 61.44
+ },
+ {
+ "x": 71.37,
+ "y": 60.92
+ },
+ {
+ "x": 72,
+ "y": 61.14
+ },
+ {
+ "x": 71.99,
+ "y": 62.24
+ },
+ {
+ "x": 72.57,
+ "y": 61.95
+ },
+ {
+ "x": 73.01,
+ "y": 63.55
+ },
+ {
+ "x": 73.03,
+ "y": 63.05
+ },
+ {
+ "x": 73.7,
+ "y": 63.78
+ },
+ {
+ "x": 73.69,
+ "y": 63.34
+ },
+ {
+ "x": 73.77,
+ "y": 64.04
+ },
+ {
+ "x": 74.26,
+ "y": 64.11
+ },
+ {
+ "x": 73.81,
+ "y": 64.37
+ },
+ {
+ "x": 74.57,
+ "y": 64.85
+ },
+ {
+ "x": 74.67,
+ "y": 66.18
+ },
+ {
+ "x": 74.08,
+ "y": 65.23
+ },
+ {
+ "x": 74.6,
+ "y": 66.76
+ },
+ {
+ "x": 74.1,
+ "y": 66.6
+ },
+ {
+ "x": 74.18,
+ "y": 67.34
+ },
+ {
+ "x": 73.06,
+ "y": 65.98
+ },
+ {
+ "x": 73.13,
+ "y": 66.62
+ },
+ {
+ "x": 72.08,
+ "y": 65.31
+ },
+ {
+ "x": 72.25,
+ "y": 65.99
+ },
+ {
+ "x": 71.26,
"y": 65.32
},
{
- "x": 69.92,
- "y": 63.77
+ "x": 73.56,
+ "y": 67.88
},
{
- "x": 69.44,
- "y": 65.57
+ "x": 73.57,
+ "y": 68.46
},
{
- "x": 69.53,
- "y": 65.32
+ "x": 71.55,
+ "y": 67.84
+ },
+ {
+ "x": 70.96,
+ "y": 67.01
+ },
+ {
+ "x": 69.18,
+ "y": 66.32
+ },
+ {
+ "x": 68.85,
+ "y": 65.85
+ },
+ {
+ "x": 69.55,
+ "y": 65.59
+ },
+ {
+ "x": 68.45,
+ "y": 65.15
+ },
+ {
+ "x": 67.97,
+ "y": 63.73
+ },
+ {
+ "x": 67.37,
+ "y": 64.32
+ },
+ {
+ "x": 66.94,
+ "y": 63.3
+ },
+ {
+ "x": 66.91,
+ "y": 64.24
+ },
+ {
+ "x": 66.06,
+ "y": 63.81
+ },
+ {
+ "x": 66.11,
+ "y": 64.25
+ },
+ {
+ "x": 65.38,
+ "y": 64.57
+ },
+ {
+ "x": 64.36,
+ "y": 64.14
+ },
+ {
+ "x": 64.15,
+ "y": 63.65
+ },
+ {
+ "x": 64.84,
+ "y": 62.26
+ },
+ {
+ "x": 66.06,
+ "y": 62.7
+ },
+ {
+ "x": 66.38,
+ "y": 63.63
+ },
+ {
+ "x": 66.52,
+ "y": 62.94
+ },
+ {
+ "x": 65.94,
+ "y": 62.54
+ },
+ {
+ "x": 67.84,
+ "y": 62.29
+ },
+ {
+ "x": 67.07,
+ "y": 61
+ },
+ {
+ "x": 68.19,
+ "y": 59.9
+ },
+ {
+ "x": 68.24,
+ "y": 59.88
+ }
+ ],
+ [
+ {
+ "x": 77.3,
+ "y": 10.74
+ },
+ {
+ "x": 76.41,
+ "y": 12.47
+ },
+ {
+ "x": 75.14,
+ "y": 13.69
+ },
+ {
+ "x": 74.83,
+ "y": 13.52
+ },
+ {
+ "x": 74.79,
+ "y": 14.09
+ },
+ {
+ "x": 74.03,
+ "y": 13.89
+ },
+ {
+ "x": 73.66,
+ "y": 14.6
+ },
+ {
+ "x": 71.86,
+ "y": 14.94
+ },
+ {
+ "x": 71.02,
+ "y": 14.1
+ },
+ {
+ "x": 71.58,
+ "y": 15.18
+ },
+ {
+ "x": 73.08,
+ "y": 15.18
+ },
+ {
+ "x": 70.36,
+ "y": 16.82
+ },
+ {
+ "x": 70.77,
+ "y": 16.89
+ },
+ {
+ "x": 70.48,
+ "y": 17.26
+ },
+ {
+ "x": 73.75,
+ "y": 15.3
+ },
+ {
+ "x": 74.66,
+ "y": 15
+ },
+ {
+ "x": 74.72,
+ "y": 15.46
+ },
+ {
+ "x": 72.35,
+ "y": 18.04
+ },
+ {
+ "x": 70.97,
+ "y": 20.63
+ },
+ {
+ "x": 70.25,
+ "y": 20.81
+ },
+ {
+ "x": 69.86,
+ "y": 19.84
+ },
+ {
+ "x": 70.37,
+ "y": 21.56
+ },
+ {
+ "x": 69.17,
+ "y": 21.89
+ },
+ {
+ "x": 68.67,
+ "y": 21.4
+ },
+ {
+ "x": 69.04,
+ "y": 21.89
+ },
+ {
+ "x": 68.7,
+ "y": 22.14
+ },
+ {
+ "x": 70.1,
+ "y": 21.95
+ },
+ {
+ "x": 69.38,
+ "y": 22.78
+ },
+ {
+ "x": 69.79,
+ "y": 22.88
+ },
+ {
+ "x": 69.62,
+ "y": 23.33
+ },
+ {
+ "x": 68.79,
+ "y": 23.87
+ },
+ {
+ "x": 67.26,
+ "y": 22.87
+ },
+ {
+ "x": 66.79,
+ "y": 23.07
+ },
+ {
+ "x": 67.91,
+ "y": 23.39
+ },
+ {
+ "x": 67.96,
+ "y": 24.52
+ },
+ {
+ "x": 67.46,
+ "y": 24.29
+ },
+ {
+ "x": 67.22,
+ "y": 24.81
+ },
+ {
+ "x": 66.67,
+ "y": 24.5
+ },
+ {
+ "x": 66.65,
+ "y": 25.09
+ },
+ {
+ "x": 65.03,
+ "y": 24.36
+ },
+ {
+ "x": 65.97,
+ "y": 25.2
+ },
+ {
+ "x": 65.24,
+ "y": 25.18
+ },
+ {
+ "x": 65.05,
+ "y": 24.69
+ },
+ {
+ "x": 65.02,
+ "y": 25.27
+ },
+ {
+ "x": 64.33,
+ "y": 25.16
+ },
+ {
+ "x": 64.76,
+ "y": 25.61
+ },
+ {
+ "x": 67.08,
+ "y": 25.69
+ },
+ {
+ "x": 67.08,
+ "y": 26.44
+ },
+ {
+ "x": 66.09,
+ "y": 26.27
+ },
+ {
+ "x": 65.84,
+ "y": 25.78
+ },
+ {
+ "x": 64.18,
+ "y": 25.92
+ },
+ {
+ "x": 65.78,
+ "y": 26.3
+ },
+ {
+ "x": 63.69,
+ "y": 26.33
+ },
+ {
+ "x": 64.56,
+ "y": 26.46
+ },
+ {
+ "x": 64.2,
+ "y": 27.51
+ },
+ {
+ "x": 64.59,
+ "y": 26.73
+ },
+ {
+ "x": 66.07,
+ "y": 26.68
+ },
+ {
+ "x": 65.55,
+ "y": 27.21
+ },
+ {
+ "x": 66.73,
+ "y": 27.19
+ },
+ {
+ "x": 66.95,
+ "y": 28.22
+ },
+ {
+ "x": 65.38,
+ "y": 28.49
+ },
+ {
+ "x": 66.65,
+ "y": 29.19
+ },
+ {
+ "x": 66.19,
+ "y": 29.7
+ },
+ {
+ "x": 65.23,
+ "y": 29.62
+ },
+ {
+ "x": 66.2,
+ "y": 29.96
+ },
+ {
+ "x": 65.96,
+ "y": 30.6
+ },
+ {
+ "x": 64.17,
+ "y": 30.49
+ },
+ {
+ "x": 64.59,
+ "y": 31.86
+ },
+ {
+ "x": 63.85,
+ "y": 32.88
+ },
+ {
+ "x": 62.25,
+ "y": 32.82
+ },
+ {
+ "x": 61.37,
+ "y": 31.59
+ },
+ {
+ "x": 61.95,
+ "y": 32.73
+ },
+ {
+ "x": 61.2,
+ "y": 32.89
+ },
+ {
+ "x": 61.43,
+ "y": 33.39
+ },
+ {
+ "x": 62.01,
+ "y": 32.99
+ },
+ {
+ "x": 62.76,
+ "y": 33.27
+ },
+ {
+ "x": 62.56,
+ "y": 33.72
+ },
+ {
+ "x": 63.28,
+ "y": 33.16
+ },
+ {
+ "x": 63.64,
+ "y": 34.51
+ },
+ {
+ "x": 64.44,
+ "y": 34.09
+ },
+ {
+ "x": 64.55,
+ "y": 35.1
+ },
+ {
+ "x": 64.1,
+ "y": 35.76
+ },
+ {
+ "x": 63.78,
+ "y": 35.39
+ },
+ {
+ "x": 63.39,
+ "y": 36.29
+ },
+ {
+ "x": 62.03,
+ "y": 36.84
+ },
+ {
+ "x": 62.26,
+ "y": 35.91
+ },
+ {
+ "x": 61.93,
+ "y": 35.44
+ },
+ {
+ "x": 61.28,
+ "y": 35.59
+ },
+ {
+ "x": 61.49,
+ "y": 35.02
+ },
+ {
+ "x": 61.11,
+ "y": 35.2
+ },
+ {
+ "x": 60.76,
+ "y": 34.58
+ },
+ {
+ "x": 61.1,
+ "y": 35.97
+ },
+ {
+ "x": 60.48,
+ "y": 35.76
+ },
+ {
+ "x": 60.25,
+ "y": 34.78
+ },
+ {
+ "x": 60.34,
+ "y": 35.95
+ },
+ {
+ "x": 59.57,
+ "y": 35.11
+ },
+ {
+ "x": 59.63,
+ "y": 35.81
+ },
+ {
+ "x": 58.98,
+ "y": 35.58
+ },
+ {
+ "x": 59.48,
+ "y": 36.27
+ },
+ {
+ "x": 58.87,
+ "y": 36.35
+ },
+ {
+ "x": 57.97,
+ "y": 35.98
+ },
+ {
+ "x": 57.82,
+ "y": 35.18
+ },
+ {
+ "x": 57.71,
+ "y": 36.14
+ },
+ {
+ "x": 57.07,
+ "y": 35.25
+ },
+ {
+ "x": 57.02,
+ "y": 36.18
+ },
+ {
+ "x": 56.4,
+ "y": 35.96
+ },
+ {
+ "x": 56.35,
+ "y": 34.57
+ },
+ {
+ "x": 56.28,
+ "y": 35.94
+ },
+ {
+ "x": 56.19,
+ "y": 35.31
+ },
+ {
+ "x": 55.81,
+ "y": 35.88
+ },
+ {
+ "x": 55.61,
+ "y": 34.38
+ },
+ {
+ "x": 56.51,
+ "y": 33.51
+ },
+ {
+ "x": 57.8,
+ "y": 33.37
+ },
+ {
+ "x": 57.33,
+ "y": 33.25
+ },
+ {
+ "x": 57.61,
+ "y": 32.72
+ },
+ {
+ "x": 56.98,
+ "y": 32.76
+ },
+ {
+ "x": 56.56,
+ "y": 30.95
+ },
+ {
+ "x": 57.92,
+ "y": 31.04
+ },
+ {
+ "x": 58.42,
+ "y": 32.51
+ },
+ {
+ "x": 59.43,
+ "y": 32.94
+ },
+ {
+ "x": 59.35,
+ "y": 32.57
+ },
+ {
+ "x": 60.2,
+ "y": 32.78
+ },
+ {
+ "x": 59.92,
+ "y": 32.39
+ },
+ {
+ "x": 61.04,
+ "y": 30.29
+ },
+ {
+ "x": 60.04,
+ "y": 32.12
+ },
+ {
+ "x": 59.19,
+ "y": 32.16
+ },
+ {
+ "x": 59.45,
+ "y": 31.38
+ },
+ {
+ "x": 59.07,
+ "y": 31.88
+ },
+ {
+ "x": 58.73,
+ "y": 31.01
+ },
+ {
+ "x": 59.55,
+ "y": 30.82
+ },
+ {
+ "x": 58.51,
+ "y": 30.68
+ },
+ {
+ "x": 59.57,
+ "y": 30.14
+ },
+ {
+ "x": 59.14,
+ "y": 30.23
+ },
+ {
+ "x": 59,
+ "y": 29.78
+ },
+ {
+ "x": 59.77,
+ "y": 29.78
+ },
+ {
+ "x": 59.05,
+ "y": 29.65
+ },
+ {
+ "x": 59.32,
+ "y": 28.22
+ },
+ {
+ "x": 58.65,
+ "y": 30.05
+ },
+ {
+ "x": 58.04,
+ "y": 30.14
+ },
+ {
+ "x": 58.37,
+ "y": 29
+ },
+ {
+ "x": 58.04,
+ "y": 29.72
+ },
+ {
+ "x": 57.13,
+ "y": 29.98
+ },
+ {
+ "x": 57.54,
+ "y": 27.74
+ },
+ {
+ "x": 59,
+ "y": 26.92
+ },
+ {
+ "x": 61.06,
+ "y": 28.3
+ },
+ {
+ "x": 61.12,
+ "y": 27.59
+ },
+ {
+ "x": 60.36,
+ "y": 27.26
+ },
+ {
+ "x": 61.51,
+ "y": 27.23
+ },
+ {
+ "x": 61.72,
+ "y": 26.41
+ },
+ {
+ "x": 60.91,
+ "y": 27.07
+ },
+ {
+ "x": 59.22,
+ "y": 26.45
+ },
+ {
+ "x": 59.44,
+ "y": 26.01
+ },
+ {
+ "x": 60.28,
+ "y": 26.39
+ },
+ {
+ "x": 59.54,
+ "y": 25.83
+ },
+ {
+ "x": 59.01,
+ "y": 24.06
+ },
+ {
+ "x": 57.9,
+ "y": 23.45
+ },
+ {
+ "x": 57.96,
+ "y": 22.57
+ },
+ {
+ "x": 58.83,
+ "y": 22.74
+ },
+ {
+ "x": 57.85,
+ "y": 22.28
+ },
+ {
+ "x": 57.88,
+ "y": 21.03
+ },
+ {
+ "x": 59.95,
+ "y": 21.29
+ },
+ {
+ "x": 61.59,
+ "y": 24.16
+ },
+ {
+ "x": 62.91,
+ "y": 23.93
+ },
+ {
+ "x": 61.68,
+ "y": 23.64
+ },
+ {
+ "x": 61.78,
+ "y": 22.68
+ },
+ {
+ "x": 60.4,
+ "y": 20.97
+ },
+ {
+ "x": 64.34,
+ "y": 19.83
+ },
+ {
+ "x": 62.88,
+ "y": 19.61
+ },
+ {
+ "x": 65.51,
+ "y": 18.48
+ },
+ {
+ "x": 63.66,
+ "y": 18.37
+ },
+ {
+ "x": 64.04,
+ "y": 16.94
+ },
+ {
+ "x": 65.34,
+ "y": 15.57
+ },
+ {
+ "x": 64.23,
+ "y": 16.26
+ },
+ {
+ "x": 63.81,
+ "y": 17.22
+ },
+ {
+ "x": 63.23,
+ "y": 16.79
+ },
+ {
+ "x": 63.46,
+ "y": 17.98
+ },
+ {
+ "x": 62.18,
+ "y": 19.39
+ },
+ {
+ "x": 60.46,
+ "y": 19.93
+ },
+ {
+ "x": 61.5,
+ "y": 18.66
+ },
+ {
+ "x": 60.17,
+ "y": 19.21
+ },
+ {
+ "x": 60.35,
+ "y": 18.52
+ },
+ {
+ "x": 59.9,
+ "y": 18.92
+ },
+ {
+ "x": 59.91,
+ "y": 19.95
+ },
+ {
+ "x": 58.93,
+ "y": 20.14
+ },
+ {
+ "x": 58.37,
+ "y": 19.96
+ },
+ {
+ "x": 58.6,
+ "y": 19.57
+ },
+ {
+ "x": 58.22,
+ "y": 19.98
+ },
+ {
+ "x": 57.69,
+ "y": 19.67
+ },
+ {
+ "x": 58.42,
+ "y": 18.04
+ },
+ {
+ "x": 61.03,
+ "y": 16.86
+ },
+ {
+ "x": 58.43,
+ "y": 17.61
+ },
+ {
+ "x": 56.96,
+ "y": 19.48
+ },
+ {
+ "x": 55.64,
+ "y": 18.13
+ },
+ {
+ "x": 57.73,
+ "y": 17.75
+ },
+ {
+ "x": 59.22,
+ "y": 16.31
+ },
+ {
+ "x": 57.2,
+ "y": 17.44
+ },
+ {
+ "x": 55.34,
+ "y": 17.71
+ },
+ {
+ "x": 54.98,
+ "y": 16.82
+ },
+ {
+ "x": 56.02,
+ "y": 16.55
+ },
+ {
+ "x": 55.26,
+ "y": 16.07
+ },
+ {
+ "x": 56.05,
+ "y": 15.26
+ },
+ {
+ "x": 57.31,
+ "y": 15.29
+ },
+ {
+ "x": 56.47,
+ "y": 14.79
+ },
+ {
+ "x": 54.83,
+ "y": 15.93
+ },
+ {
+ "x": 54.57,
+ "y": 15.45
+ },
+ {
+ "x": 55.52,
+ "y": 14.58
+ },
+ {
+ "x": 54.95,
+ "y": 14.21
+ },
+ {
+ "x": 54.08,
+ "y": 15.11
+ },
+ {
+ "x": 53.9,
+ "y": 14.04
+ },
+ {
+ "x": 55.42,
+ "y": 13.02
+ },
+ {
+ "x": 55.71,
+ "y": 13.64
+ },
+ {
+ "x": 55.67,
+ "y": 12.94
+ },
+ {
+ "x": 56.68,
+ "y": 12.01
+ },
+ {
+ "x": 57.71,
+ "y": 13.18
+ },
+ {
+ "x": 57.4,
+ "y": 12.73
+ },
+ {
+ "x": 57.78,
+ "y": 12.28
+ },
+ {
+ "x": 58.72,
+ "y": 13.38
+ },
+ {
+ "x": 58.5,
+ "y": 12.56
+ },
+ {
+ "x": 59.18,
+ "y": 13.22
+ },
+ {
+ "x": 59.13,
+ "y": 12.64
+ },
+ {
+ "x": 59.33,
+ "y": 13.18
+ },
+ {
+ "x": 57.59,
+ "y": 11.44
+ },
+ {
+ "x": 58.72,
+ "y": 11.05
+ },
+ {
+ "x": 58.34,
+ "y": 10.09
+ },
+ {
+ "x": 59.25,
+ "y": 9.87
+ },
+ {
+ "x": 59.07,
+ "y": 10.19
+ },
+ {
+ "x": 60.23,
+ "y": 10.9
+ },
+ {
+ "x": 60.46,
+ "y": 12.21
+ },
+ {
+ "x": 61.41,
+ "y": 12.36
+ },
+ {
+ "x": 60.84,
+ "y": 12.03
+ },
+ {
+ "x": 60.58,
+ "y": 10.93
+ },
+ {
+ "x": 63.44,
+ "y": 13.59
+ },
+ {
+ "x": 62.95,
+ "y": 12.45
+ },
+ {
+ "x": 60.78,
+ "y": 10.45
+ },
+ {
+ "x": 60.94,
+ "y": 9.71
+ },
+ {
+ "x": 61.72,
+ "y": 9.75
+ },
+ {
+ "x": 61.04,
+ "y": 8.9
+ },
+ {
+ "x": 62.4,
+ "y": 9.51
+ },
+ {
+ "x": 61.72,
+ "y": 7.79
+ },
+ {
+ "x": 62.61,
+ "y": 8.06
+ },
+ {
+ "x": 62.97,
+ "y": 8.92
+ },
+ {
+ "x": 62.92,
+ "y": 8.47
+ },
+ {
+ "x": 63.96,
+ "y": 8.72
+ },
+ {
+ "x": 62.54,
+ "y": 7.49
+ },
+ {
+ "x": 63.35,
+ "y": 6.89
+ },
+ {
+ "x": 63.61,
+ "y": 7.52
+ },
+ {
+ "x": 63.91,
+ "y": 7.09
+ },
+ {
+ "x": 63.98,
+ "y": 7.69
+ },
+ {
+ "x": 64.49,
+ "y": 7.2
+ },
+ {
+ "x": 65.03,
+ "y": 7.56
+ },
+ {
+ "x": 65.99,
+ "y": 9.18
+ },
+ {
+ "x": 65.74,
+ "y": 10.05
+ },
+ {
+ "x": 66.36,
+ "y": 9.06
+ },
+ {
+ "x": 64.84,
+ "y": 6.8
+ },
+ {
+ "x": 65.04,
+ "y": 6.5
+ },
+ {
+ "x": 67.28,
+ "y": 6.72
+ },
+ {
+ "x": 68.51,
+ "y": 8.57
+ },
+ {
+ "x": 67.7,
+ "y": 7.19
+ },
+ {
+ "x": 68.22,
+ "y": 6.28
+ },
+ {
+ "x": 69.25,
+ "y": 6.08
+ },
+ {
+ "x": 69.28,
+ "y": 7.06
+ },
+ {
+ "x": 69.85,
+ "y": 7.45
+ },
+ {
+ "x": 69.34,
+ "y": 6.68
+ },
+ {
+ "x": 69.63,
+ "y": 6.11
+ },
+ {
+ "x": 70.73,
+ "y": 6
+ },
+ {
+ "x": 70.78,
+ "y": 6.8
+ },
+ {
+ "x": 71.22,
+ "y": 6.45
+ },
+ {
+ "x": 71.92,
+ "y": 7.15
+ },
+ {
+ "x": 73.32,
+ "y": 7.15
+ },
+ {
+ "x": 71.55,
+ "y": 9
+ },
+ {
+ "x": 73.04,
+ "y": 8.51
+ },
+ {
+ "x": 73.66,
+ "y": 7.71
+ },
+ {
+ "x": 74.19,
+ "y": 8.16
+ },
+ {
+ "x": 74.08,
+ "y": 7.53
+ },
+ {
+ "x": 74.54,
+ "y": 7.3
+ },
+ {
+ "x": 74.74,
+ "y": 8.21
+ },
+ {
+ "x": 74.97,
+ "y": 7.75
+ },
+ {
+ "x": 75.53,
+ "y": 7.86
+ },
+ {
+ "x": 75.19,
+ "y": 8.45
+ },
+ {
+ "x": 75.9,
+ "y": 9.35
+ },
+ {
+ "x": 75.56,
+ "y": 10.11
+ },
+ {
+ "x": 76.47,
+ "y": 9.59
+ },
+ {
+ "x": 77.29,
+ "y": 10.57
+ },
+ {
+ "x": 77.3,
+ "y": 10.74
+ }
+ ],
+ [
+ {
+ "x": 46.9,
+ "y": 53.53
+ },
+ {
+ "x": 46.57,
+ "y": 53.83
+ },
+ {
+ "x": 46.46,
+ "y": 53.3
+ },
+ {
+ "x": 46.28,
+ "y": 53.88
+ },
+ {
+ "x": 45.86,
+ "y": 53.28
+ },
+ {
+ "x": 45.55,
+ "y": 54.11
+ },
+ {
+ "x": 44.9,
+ "y": 53.78
+ },
+ {
+ "x": 45.13,
+ "y": 55.04
+ },
+ {
+ "x": 45.8,
+ "y": 54.2
+ },
+ {
+ "x": 46.21,
+ "y": 54.87
+ },
+ {
+ "x": 45.3,
+ "y": 55.71
+ },
+ {
+ "x": 43.62,
+ "y": 55.49
+ },
+ {
+ "x": 43.79,
+ "y": 55.1
+ },
+ {
+ "x": 42.66,
+ "y": 54.88
+ },
+ {
+ "x": 42.53,
+ "y": 54.2
+ },
+ {
+ "x": 41.96,
+ "y": 55.23
+ },
+ {
+ "x": 40.66,
+ "y": 55.86
+ },
+ {
+ "x": 37.41,
+ "y": 56.42
+ },
+ {
+ "x": 37.24,
+ "y": 54.91
+ },
+ {
+ "x": 35.35,
+ "y": 54.64
+ },
+ {
+ "x": 34.23,
+ "y": 53.12
+ },
+ {
+ "x": 36.47,
+ "y": 52.39
+ },
+ {
+ "x": 38.78,
+ "y": 52.35
+ },
+ {
+ "x": 36.87,
+ "y": 51.47
+ },
+ {
+ "x": 34.04,
+ "y": 51.66
+ },
+ {
+ "x": 33.51,
+ "y": 50.76
+ },
+ {
+ "x": 36.06,
+ "y": 49.56
+ },
+ {
+ "x": 33.62,
+ "y": 49.88
+ },
+ {
+ "x": 34.04,
+ "y": 49.21
+ },
+ {
+ "x": 33.13,
+ "y": 49.42
+ },
+ {
+ "x": 32.94,
+ "y": 49.01
+ },
+ {
+ "x": 33.73,
+ "y": 47.78
+ },
+ {
+ "x": 33.37,
+ "y": 47.2
+ },
+ {
+ "x": 34.29,
+ "y": 46.07
+ },
+ {
+ "x": 36.42,
+ "y": 44.84
+ },
+ {
+ "x": 36.89,
+ "y": 45.45
+ },
+ {
+ "x": 36.45,
+ "y": 46.98
+ },
+ {
+ "x": 37.12,
+ "y": 46.86
+ },
+ {
+ "x": 37.74,
+ "y": 45.85
+ },
+ {
+ "x": 38.99,
+ "y": 46.58
+ },
+ {
+ "x": 38.58,
+ "y": 47.89
+ },
+ {
+ "x": 39.38,
+ "y": 46.95
+ },
+ {
+ "x": 40.09,
+ "y": 47.31
+ },
+ {
+ "x": 39.7,
+ "y": 46.7
+ },
+ {
+ "x": 40.09,
+ "y": 46.59
+ },
+ {
+ "x": 39.34,
+ "y": 45.9
+ },
+ {
+ "x": 39.86,
+ "y": 45.87
+ },
+ {
+ "x": 40.98,
+ "y": 47.02
+ },
+ {
+ "x": 41.58,
+ "y": 49.36
+ },
+ {
+ "x": 42.02,
+ "y": 48.64
+ },
+ {
+ "x": 41.22,
+ "y": 45.51
+ },
+ {
+ "x": 41.38,
+ "y": 44.92
+ },
+ {
+ "x": 42.16,
+ "y": 45.39
+ },
+ {
+ "x": 42.35,
+ "y": 45.04
+ },
+ {
+ "x": 43.46,
+ "y": 46.4
+ },
+ {
+ "x": 44.23,
+ "y": 49.44
+ },
+ {
+ "x": 44.05,
+ "y": 50.64
+ },
+ {
+ "x": 44.83,
+ "y": 51.73
+ },
+ {
+ "x": 45.33,
+ "y": 51.97
+ },
+ {
+ "x": 45.2,
+ "y": 51.56
+ },
+ {
+ "x": 46.39,
+ "y": 52.85
+ },
+ {
+ "x": 46.78,
+ "y": 52.68
+ },
+ {
+ "x": 46.88,
+ "y": 53.39
+ },
+ {
+ "x": 46.9,
+ "y": 53.53
+ }
+ ],
+ [
+ {
+ "x": 72.65,
+ "y": 90.31
+ },
+ {
+ "x": 72.17,
+ "y": 89.74
+ },
+ {
+ "x": 72.17,
+ "y": 88.21
+ },
+ {
+ "x": 71.07,
+ "y": 87.78
+ },
+ {
+ "x": 69.81,
+ "y": 90.24
+ },
+ {
+ "x": 66.89,
+ "y": 90.5
+ },
+ {
+ "x": 70.07,
+ "y": 88.3
+ },
+ {
+ "x": 71.86,
+ "y": 86.43
+ },
+ {
+ "x": 74.45,
+ "y": 85.79
+ },
+ {
+ "x": 74.82,
+ "y": 86.69
+ },
+ {
+ "x": 72.9,
+ "y": 87.17
+ },
+ {
+ "x": 73.83,
+ "y": 87.6
+ },
+ {
+ "x": 74.46,
+ "y": 87.38
+ },
+ {
+ "x": 74.03,
+ "y": 88.2
+ },
+ {
+ "x": 74.47,
+ "y": 88.21
+ },
+ {
+ "x": 74.65,
+ "y": 89.16
+ },
+ {
+ "x": 76.03,
+ "y": 89.83
+ },
+ {
+ "x": 76.67,
+ "y": 89.53
+ },
+ {
+ "x": 77.39,
+ "y": 90.2
+ },
+ {
+ "x": 74.84,
+ "y": 90.97
+ },
+ {
+ "x": 73.95,
+ "y": 92.13
+ },
+ {
+ "x": 73.45,
+ "y": 91.84
+ },
+ {
+ "x": 73.66,
+ "y": 90.94
+ },
+ {
+ "x": 73.41,
+ "y": 91.11
+ },
+ {
+ "x": 74.71,
+ "y": 90.13
+ },
+ {
+ "x": 74.96,
+ "y": 90.52
+ },
+ {
+ "x": 75.57,
+ "y": 90.11
+ },
+ {
+ "x": 74.37,
+ "y": 90.14
+ },
+ {
+ "x": 74.87,
+ "y": 89.67
+ },
+ {
+ "x": 74.49,
+ "y": 89.31
+ },
+ {
+ "x": 74.49,
+ "y": 89.83
+ },
+ {
+ "x": 72.64,
+ "y": 90.3
+ },
+ {
+ "x": 72.65,
+ "y": 90.31
+ }
+ ],
+ [
+ {
+ "x": 35.85,
+ "y": 44.51
+ },
+ {
+ "x": 32.93,
+ "y": 46.8
+ },
+ {
+ "x": 32.78,
+ "y": 47.54
+ },
+ {
+ "x": 32.08,
+ "y": 47.75
+ },
+ {
+ "x": 31.88,
+ "y": 49.52
+ },
+ {
+ "x": 30.98,
+ "y": 49.7
+ },
+ {
+ "x": 30.14,
+ "y": 50.6
+ },
+ {
+ "x": 28.49,
+ "y": 48.48
+ },
+ {
+ "x": 27.79,
+ "y": 48.49
+ },
+ {
+ "x": 29.39,
+ "y": 43.81
+ },
+ {
+ "x": 28.64,
+ "y": 42.19
+ },
+ {
+ "x": 31.07,
+ "y": 41.6
+ },
+ {
+ "x": 32.65,
+ "y": 42.52
+ },
+ {
+ "x": 32.46,
+ "y": 43.07
+ },
+ {
+ "x": 32.93,
+ "y": 42.58
+ },
+ {
+ "x": 32.9,
+ "y": 43.19
+ },
+ {
+ "x": 33.25,
+ "y": 42.55
+ },
+ {
+ "x": 34.25,
+ "y": 42.52
+ },
+ {
+ "x": 35.84,
+ "y": 44.47
+ },
+ {
+ "x": 35.85,
+ "y": 44.51
+ }
+ ],
+ [
+ {
+ "x": 50.14,
+ "y": 22.22
+ },
+ {
+ "x": 50.08,
+ "y": 21.76
+ },
+ {
+ "x": 51.86,
+ "y": 22.46
+ },
+ {
+ "x": 51.53,
+ "y": 21.98
+ },
+ {
+ "x": 52.07,
+ "y": 21.58
+ },
+ {
+ "x": 51.08,
+ "y": 21.85
+ },
+ {
+ "x": 51.18,
+ "y": 21.29
+ },
+ {
+ "x": 50.64,
+ "y": 21.52
+ },
+ {
+ "x": 50.1,
+ "y": 20.87
+ },
+ {
+ "x": 51.05,
+ "y": 20.87
+ },
+ {
+ "x": 50.6,
+ "y": 19.76
+ },
+ {
+ "x": 52.31,
+ "y": 20.02
+ },
+ {
+ "x": 51.63,
+ "y": 19.38
+ },
+ {
+ "x": 52.05,
+ "y": 19.09
+ },
+ {
+ "x": 51,
+ "y": 18.71
+ },
+ {
+ "x": 51.01,
+ "y": 18.23
+ },
+ {
+ "x": 51.46,
+ "y": 17.47
+ },
+ {
+ "x": 51.81,
+ "y": 17.94
+ },
+ {
+ "x": 52.2,
+ "y": 17.67
+ },
+ {
+ "x": 51.92,
+ "y": 17.17
+ },
+ {
+ "x": 52.79,
+ "y": 17.3
+ },
+ {
+ "x": 52.75,
+ "y": 16.72
+ },
+ {
+ "x": 51.85,
+ "y": 16.48
+ },
+ {
+ "x": 52,
+ "y": 15.95
+ },
+ {
+ "x": 52.48,
+ "y": 16.27
+ },
+ {
+ "x": 52.72,
+ "y": 15.91
+ },
+ {
+ "x": 53.83,
+ "y": 16.99
+ },
+ {
+ "x": 54.65,
+ "y": 19.85
+ },
+ {
+ "x": 55.93,
+ "y": 20.3
+ },
+ {
+ "x": 55.77,
+ "y": 21.12
+ },
+ {
+ "x": 56.32,
+ "y": 21.97
+ },
+ {
+ "x": 56.62,
+ "y": 21.95
+ },
+ {
+ "x": 56.24,
+ "y": 20.63
+ },
+ {
+ "x": 56.96,
+ "y": 20.56
+ },
+ {
+ "x": 57.07,
+ "y": 21.57
+ },
+ {
+ "x": 56.69,
+ "y": 21.86
+ },
+ {
+ "x": 57.32,
+ "y": 22.1
+ },
+ {
+ "x": 57.13,
+ "y": 23.12
+ },
+ {
+ "x": 57.53,
+ "y": 22.81
+ },
+ {
+ "x": 57.19,
+ "y": 24.49
+ },
+ {
+ "x": 58.03,
+ "y": 23.93
+ },
+ {
+ "x": 58.21,
+ "y": 24.83
+ },
+ {
+ "x": 58.49,
+ "y": 24.06
+ },
+ {
+ "x": 59.08,
+ "y": 25.36
+ },
+ {
+ "x": 57.69,
+ "y": 26.77
+ },
+ {
+ "x": 57.51,
+ "y": 26.36
+ },
+ {
+ "x": 57,
+ "y": 28.02
+ },
+ {
+ "x": 56.91,
+ "y": 26.25
+ },
+ {
+ "x": 56.6,
+ "y": 26.63
+ },
+ {
+ "x": 56.8,
+ "y": 28.37
+ },
+ {
+ "x": 56.56,
+ "y": 28.71
+ },
+ {
+ "x": 56.12,
+ "y": 28.14
+ },
+ {
+ "x": 56.11,
+ "y": 29.83
+ },
+ {
+ "x": 55.2,
+ "y": 28.13
+ },
+ {
+ "x": 55.59,
+ "y": 29.87
+ },
+ {
+ "x": 55.1,
+ "y": 29.23
+ },
+ {
+ "x": 54.67,
+ "y": 29.19
+ },
+ {
+ "x": 54.99,
+ "y": 29.83
+ },
+ {
+ "x": 54.53,
+ "y": 29.91
+ },
+ {
+ "x": 53.21,
+ "y": 29.19
+ },
+ {
+ "x": 52.96,
+ "y": 28.58
+ },
+ {
+ "x": 53.95,
+ "y": 28.32
+ },
+ {
+ "x": 52.7,
+ "y": 28.2
+ },
+ {
+ "x": 52.29,
+ "y": 27.53
+ },
+ {
+ "x": 52.88,
+ "y": 27.53
+ },
+ {
+ "x": 51.92,
+ "y": 26.66
+ },
+ {
+ "x": 52.66,
+ "y": 25.92
+ },
+ {
+ "x": 54.93,
+ "y": 25.61
+ },
+ {
+ "x": 53.2,
+ "y": 25.62
+ },
+ {
+ "x": 54.35,
+ "y": 25.01
+ },
+ {
+ "x": 53.26,
+ "y": 25.11
+ },
+ {
+ "x": 53.49,
+ "y": 24.77
+ },
+ {
+ "x": 52.85,
+ "y": 24.61
+ },
+ {
+ "x": 52.2,
+ "y": 25.56
+ },
+ {
+ "x": 52.27,
+ "y": 24.98
+ },
+ {
+ "x": 51.78,
+ "y": 24.87
+ },
+ {
+ "x": 51.22,
+ "y": 25.47
+ },
+ {
+ "x": 50.82,
+ "y": 24.38
+ },
+ {
+ "x": 51.92,
+ "y": 23.39
+ },
+ {
+ "x": 50.73,
+ "y": 23.92
+ },
+ {
+ "x": 50.19,
+ "y": 22.18
+ },
+ {
+ "x": 50.14,
+ "y": 22.22
+ }
+ ],
+ [
+ {
+ "x": 63.18,
+ "y": 40.33
+ },
+ {
+ "x": 62.92,
+ "y": 40.85
+ },
+ {
+ "x": 62.54,
+ "y": 40.56
+ },
+ {
+ "x": 62.65,
+ "y": 41.54
+ },
+ {
+ "x": 61.48,
+ "y": 41.88
+ },
+ {
+ "x": 60.59,
+ "y": 41.58
+ },
+ {
+ "x": 60.18,
+ "y": 40.57
+ },
+ {
+ "x": 60.18,
+ "y": 41.54
+ },
+ {
+ "x": 59.59,
+ "y": 41.74
+ },
+ {
+ "x": 59.09,
+ "y": 41.72
+ },
+ {
+ "x": 59.02,
+ "y": 41.17
+ },
+ {
+ "x": 58.89,
+ "y": 41.78
+ },
+ {
+ "x": 58.62,
+ "y": 41.21
+ },
+ {
+ "x": 58.57,
+ "y": 41.77
+ },
+ {
+ "x": 58.13,
+ "y": 41.41
+ },
+ {
+ "x": 57.97,
+ "y": 41.8
+ },
+ {
+ "x": 57.65,
+ "y": 41.41
+ },
+ {
+ "x": 57.8,
+ "y": 41.84
+ },
+ {
+ "x": 56.34,
+ "y": 41.76
+ },
+ {
+ "x": 56.32,
+ "y": 40.59
+ },
+ {
+ "x": 55.64,
+ "y": 41.61
+ },
+ {
+ "x": 54.42,
+ "y": 41.17
+ },
+ {
+ "x": 54.6,
+ "y": 40.63
+ },
+ {
+ "x": 54.05,
+ "y": 41.34
+ },
+ {
+ "x": 53.29,
+ "y": 39.66
+ },
+ {
+ "x": 53.67,
+ "y": 38.3
+ },
+ {
+ "x": 52.87,
+ "y": 36.14
+ },
+ {
+ "x": 51.09,
+ "y": 36.49
+ },
+ {
+ "x": 51.54,
+ "y": 36.2
+ },
+ {
+ "x": 50.64,
+ "y": 35.85
+ },
+ {
+ "x": 50.93,
+ "y": 35.29
+ },
+ {
+ "x": 49.91,
+ "y": 34.93
+ },
+ {
+ "x": 50.38,
+ "y": 34.79
+ },
+ {
+ "x": 49.99,
+ "y": 34.03
+ },
+ {
+ "x": 50.8,
+ "y": 33.72
+ },
+ {
+ "x": 52.38,
+ "y": 34.25
+ },
+ {
+ "x": 52.78,
+ "y": 34.92
+ },
+ {
+ "x": 52.48,
+ "y": 35.99
+ },
+ {
+ "x": 52.85,
+ "y": 35.23
+ },
+ {
+ "x": 54.5,
+ "y": 35.17
+ },
+ {
+ "x": 54.83,
+ "y": 35.75
+ },
+ {
+ "x": 54.13,
+ "y": 35.78
+ },
+ {
+ "x": 55.82,
+ "y": 36.46
+ },
+ {
+ "x": 54.86,
+ "y": 36.69
+ },
+ {
+ "x": 55.13,
+ "y": 36.86
+ },
+ {
+ "x": 53.97,
+ "y": 36.4
+ },
+ {
+ "x": 55.06,
+ "y": 37.04
+ },
+ {
+ "x": 54.36,
+ "y": 37.14
+ },
+ {
+ "x": 54.34,
+ "y": 37.77
+ },
+ {
+ "x": 55.23,
+ "y": 37.2
+ },
+ {
+ "x": 55.38,
+ "y": 37.9
+ },
+ {
+ "x": 55.85,
+ "y": 37.99
+ },
+ {
+ "x": 55.39,
+ "y": 38.56
+ },
+ {
+ "x": 56.03,
+ "y": 39.02
+ },
+ {
+ "x": 56.18,
+ "y": 38.23
+ },
+ {
+ "x": 56.56,
+ "y": 38.89
+ },
+ {
+ "x": 56.92,
+ "y": 38.56
+ },
+ {
+ "x": 57.14,
+ "y": 38.94
+ },
+ {
+ "x": 57.3,
+ "y": 38.43
+ },
+ {
+ "x": 57.79,
+ "y": 39.2
+ },
+ {
+ "x": 58.63,
+ "y": 39.1
+ },
+ {
+ "x": 58.15,
+ "y": 38.78
+ },
+ {
+ "x": 59.41,
+ "y": 38.39
+ },
+ {
+ "x": 59.79,
+ "y": 37.79
+ },
+ {
+ "x": 60.49,
+ "y": 38.07
+ },
+ {
+ "x": 61.07,
+ "y": 37.74
+ },
+ {
+ "x": 63.16,
+ "y": 38.93
+ },
+ {
+ "x": 63.22,
+ "y": 39.62
+ },
+ {
+ "x": 62.51,
+ "y": 40.19
+ },
+ {
+ "x": 63.19,
+ "y": 40.32
+ },
+ {
+ "x": 63.18,
+ "y": 40.33
+ }
+ ],
+ [
+ {
+ "x": 43.44,
+ "y": 38.27
+ },
+ {
+ "x": 42.97,
+ "y": 40.14
+ },
+ {
+ "x": 42.04,
+ "y": 40.54
+ },
+ {
+ "x": 41.62,
+ "y": 40.01
+ },
+ {
+ "x": 41.13,
+ "y": 40.55
+ },
+ {
+ "x": 40.82,
+ "y": 40.1
+ },
+ {
+ "x": 38.06,
+ "y": 42.01
+ },
+ {
+ "x": 37.1,
+ "y": 41.92
+ },
+ {
+ "x": 36.54,
+ "y": 41.18
+ },
+ {
+ "x": 38.71,
+ "y": 40.29
+ },
+ {
+ "x": 39.08,
+ "y": 39.49
+ },
+ {
+ "x": 38.13,
+ "y": 39.95
+ },
+ {
+ "x": 37.87,
+ "y": 39.47
+ },
+ {
+ "x": 37.74,
+ "y": 39.98
+ },
+ {
+ "x": 36.95,
+ "y": 40.13
+ },
+ {
+ "x": 37.38,
+ "y": 39.04
+ },
+ {
+ "x": 36.81,
+ "y": 38.88
+ },
+ {
+ "x": 36.05,
+ "y": 40.41
+ },
+ {
+ "x": 35.9,
+ "y": 39.76
+ },
+ {
+ "x": 35.55,
+ "y": 40.39
+ },
+ {
+ "x": 35.14,
+ "y": 39.68
+ },
+ {
+ "x": 34.75,
+ "y": 39.94
+ },
+ {
+ "x": 34.04,
+ "y": 39.53
+ },
+ {
+ "x": 34.42,
+ "y": 38.86
+ },
+ {
+ "x": 35.3,
+ "y": 38.85
+ },
+ {
+ "x": 36.1,
+ "y": 38.2
+ },
+ {
+ "x": 34.39,
+ "y": 38.55
+ },
+ {
+ "x": 34.66,
+ "y": 37.91
+ },
+ {
+ "x": 36.23,
+ "y": 37.63
+ },
+ {
+ "x": 34.77,
+ "y": 37.5
+ },
+ {
+ "x": 35.21,
+ "y": 36.6
+ },
+ {
+ "x": 36.35,
+ "y": 36.73
+ },
+ {
+ "x": 35.39,
+ "y": 36.34
+ },
+ {
+ "x": 36.2,
+ "y": 35.58
+ },
+ {
+ "x": 36.74,
+ "y": 35.78
+ },
+ {
+ "x": 36.89,
+ "y": 36.65
+ },
+ {
+ "x": 37.63,
+ "y": 36.38
+ },
+ {
+ "x": 38.07,
+ "y": 36.71
+ },
+ {
+ "x": 38.6,
+ "y": 37.51
+ },
+ {
+ "x": 38.22,
+ "y": 37.84
+ },
+ {
+ "x": 38.81,
+ "y": 37.75
+ },
+ {
+ "x": 38.96,
+ "y": 38.74
+ },
+ {
+ "x": 40.75,
+ "y": 38.87
+ },
+ {
+ "x": 40.82,
+ "y": 38.22
+ },
+ {
+ "x": 39.88,
+ "y": 37.58
+ },
+ {
+ "x": 40.44,
+ "y": 36.89
+ },
+ {
+ "x": 39.62,
+ "y": 35.96
+ },
+ {
+ "x": 40.86,
+ "y": 34.44
+ },
+ {
+ "x": 41.39,
+ "y": 36.34
+ },
+ {
+ "x": 41.07,
+ "y": 37.13
+ },
+ {
+ "x": 41.72,
+ "y": 37.24
+ },
+ {
+ "x": 41.43,
+ "y": 37.92
+ },
+ {
+ "x": 42.05,
+ "y": 37.52
+ },
+ {
+ "x": 42.3,
+ "y": 38.35
+ },
+ {
+ "x": 42.72,
+ "y": 37.06
+ },
+ {
+ "x": 43.43,
+ "y": 38.21
+ },
+ {
+ "x": 43.44,
+ "y": 38.27
+ }
+ ],
+ [
+ {
+ "x": 83.77,
+ "y": 87.7
+ },
+ {
+ "x": 83.03,
+ "y": 88.72
+ },
+ {
+ "x": 83.06,
+ "y": 88.07
+ },
+ {
+ "x": 82.57,
+ "y": 88.49
+ },
+ {
+ "x": 82.66,
+ "y": 87.31
+ },
+ {
+ "x": 81.66,
+ "y": 88.45
+ },
+ {
+ "x": 81.2,
+ "y": 88.36
+ },
+ {
+ "x": 82.19,
+ "y": 87.54
+ },
+ {
+ "x": 81.1,
+ "y": 87.77
+ },
+ {
+ "x": 81.36,
+ "y": 87.21
+ },
+ {
+ "x": 80.6,
+ "y": 87.7
+ },
+ {
+ "x": 78.66,
+ "y": 87.6
+ },
+ {
+ "x": 79.45,
+ "y": 86.57
+ },
+ {
+ "x": 78.72,
+ "y": 86.55
+ },
+ {
+ "x": 79.38,
+ "y": 85.84
+ },
+ {
+ "x": 79.75,
+ "y": 86.05
+ },
+ {
+ "x": 79.5,
+ "y": 85.53
+ },
+ {
+ "x": 79.89,
+ "y": 85.48
+ },
+ {
+ "x": 80.68,
+ "y": 83.21
+ },
+ {
+ "x": 81.65,
+ "y": 82.95
+ },
+ {
+ "x": 81.12,
+ "y": 83.18
+ },
+ {
+ "x": 81.39,
+ "y": 83.55
+ },
+ {
+ "x": 80.54,
+ "y": 85.37
+ },
+ {
+ "x": 81.1,
+ "y": 84.65
+ },
+ {
+ "x": 81.6,
+ "y": 84.9
+ },
+ {
+ "x": 81.09,
+ "y": 85.51
+ },
+ {
+ "x": 81.85,
+ "y": 85.38
+ },
+ {
+ "x": 81.66,
+ "y": 85.96
+ },
+ {
+ "x": 82.36,
+ "y": 85.37
+ },
+ {
+ "x": 82.35,
+ "y": 85.7
+ },
+ {
+ "x": 83.11,
+ "y": 85.68
+ },
+ {
+ "x": 82.59,
+ "y": 86.72
+ },
+ {
+ "x": 83.5,
+ "y": 86.49
+ },
+ {
+ "x": 82.77,
+ "y": 87.33
+ },
+ {
+ "x": 83.06,
+ "y": 87.69
+ },
+ {
+ "x": 83.54,
+ "y": 86.97
+ },
+ {
+ "x": 83.28,
+ "y": 87.67
+ },
+ {
+ "x": 83.66,
+ "y": 87.39
+ },
+ {
+ "x": 83.76,
+ "y": 87.7
+ },
+ {
+ "x": 83.77,
+ "y": 87.7
+ }
+ ],
+ [
+ {
+ "x": 50.37,
+ "y": 47.23
+ },
+ {
+ "x": 49.95,
+ "y": 47.59
+ },
+ {
+ "x": 50.17,
+ "y": 48.84
+ },
+ {
+ "x": 49.33,
+ "y": 49.34
+ },
+ {
+ "x": 48.87,
+ "y": 48.64
+ },
+ {
+ "x": 48.93,
+ "y": 49.84
+ },
+ {
+ "x": 48.16,
+ "y": 49.99
+ },
+ {
+ "x": 47.19,
+ "y": 48.08
+ },
+ {
+ "x": 46.21,
+ "y": 47.64
+ },
+ {
+ "x": 45.47,
+ "y": 46.56
+ },
+ {
+ "x": 45.82,
+ "y": 45.63
+ },
+ {
+ "x": 46.76,
+ "y": 46.66
+ },
+ {
+ "x": 47.3,
+ "y": 46.44
+ },
+ {
+ "x": 47.29,
+ "y": 45.72
+ },
+ {
+ "x": 47.51,
+ "y": 46.15
+ },
+ {
+ "x": 47.14,
+ "y": 45.25
+ },
+ {
+ "x": 47.74,
+ "y": 45.31
+ },
+ {
+ "x": 46.32,
+ "y": 44.56
+ },
+ {
+ "x": 46.88,
+ "y": 44.26
+ },
+ {
+ "x": 47.23,
+ "y": 44.78
+ },
+ {
+ "x": 46.79,
+ "y": 43.71
+ },
+ {
+ "x": 47.55,
+ "y": 43.89
+ },
+ {
+ "x": 47.56,
+ "y": 43.31
+ },
+ {
+ "x": 48.18,
+ "y": 44.02
+ },
+ {
+ "x": 49.26,
+ "y": 43.39
+ },
+ {
+ "x": 49.71,
+ "y": 43.59
+ },
+ {
+ "x": 49.88,
+ "y": 44.15
+ },
+ {
+ "x": 49.34,
+ "y": 44.58
+ },
+ {
+ "x": 49.72,
+ "y": 44.91
+ },
+ {
+ "x": 48.75,
+ "y": 46.19
+ },
+ {
+ "x": 49.35,
+ "y": 45.76
+ },
+ {
+ "x": 49.71,
+ "y": 46.85
+ },
+ {
+ "x": 50.21,
+ "y": 46.5
+ },
+ {
+ "x": 50.37,
+ "y": 47.18
+ },
+ {
+ "x": 50.37,
+ "y": 47.23
+ }
+ ],
+ [
+ {
+ "x": 62.71,
+ "y": 65.31
+ },
+ {
+ "x": 61.99,
+ "y": 65.83
+ },
+ {
+ "x": 60.95,
+ "y": 65.45
+ },
+ {
+ "x": 60.49,
+ "y": 64.57
+ },
+ {
+ "x": 58.82,
+ "y": 66.41
+ },
+ {
+ "x": 58.48,
+ "y": 65.29
+ },
+ {
+ "x": 57.4,
+ "y": 65.66
+ },
+ {
+ "x": 58.12,
+ "y": 64.72
+ },
+ {
+ "x": 58.47,
+ "y": 61.54
+ },
+ {
+ "x": 58.9,
+ "y": 61.68
+ },
+ {
+ "x": 59.09,
+ "y": 62.74
+ },
+ {
+ "x": 59.35,
+ "y": 62.23
+ },
+ {
+ "x": 61.26,
+ "y": 63.71
+ },
+ {
+ "x": 61.63,
+ "y": 64.58
+ },
+ {
+ "x": 61.34,
+ "y": 64.91
+ },
+ {
+ "x": 62.17,
+ "y": 64.69
+ },
+ {
+ "x": 62.72,
+ "y": 65.29
+ },
+ {
+ "x": 62.71,
+ "y": 65.31
+ }
+ ],
+ [
+ {
+ "x": 54.98,
+ "y": 43.38
+ },
+ {
+ "x": 53.79,
+ "y": 46.26
+ },
+ {
+ "x": 53.38,
+ "y": 46.61
+ },
+ {
+ "x": 51.93,
+ "y": 46.43
+ },
+ {
+ "x": 52.55,
+ "y": 47.3
+ },
+ {
+ "x": 52.1,
+ "y": 48.44
+ },
+ {
+ "x": 51.27,
+ "y": 48.49
+ },
+ {
+ "x": 51.54,
+ "y": 48
+ },
+ {
+ "x": 50.87,
+ "y": 46.37
+ },
+ {
+ "x": 50.83,
+ "y": 44.02
+ },
+ {
+ "x": 51.67,
+ "y": 44.11
+ },
+ {
+ "x": 51.19,
+ "y": 43.14
+ },
+ {
+ "x": 52.7,
+ "y": 42.67
+ },
+ {
+ "x": 53.42,
+ "y": 43.33
+ },
+ {
+ "x": 54.95,
+ "y": 43.36
+ },
+ {
+ "x": 54.98,
+ "y": 43.38
+ }
+ ],
+ [
+ {
+ "x": 32.8,
+ "y": 36.62
+ },
+ {
+ "x": 32.66,
+ "y": 36.09
+ },
+ {
+ "x": 32.67,
+ "y": 37.33
+ },
+ {
+ "x": 31.98,
+ "y": 37.86
+ },
+ {
+ "x": 31.62,
+ "y": 36.61
+ },
+ {
+ "x": 31.28,
+ "y": 37.53
+ },
+ {
+ "x": 30.87,
+ "y": 37.11
+ },
+ {
+ "x": 30.28,
+ "y": 37.44
+ },
+ {
+ "x": 30.29,
+ "y": 36.7
+ },
+ {
+ "x": 29.95,
+ "y": 36.97
+ },
+ {
+ "x": 32.92,
+ "y": 32.86
+ },
+ {
+ "x": 34.54,
+ "y": 32.97
+ },
+ {
+ "x": 34.84,
+ "y": 32.63
+ },
+ {
+ "x": 34.45,
+ "y": 32.39
+ },
+ {
+ "x": 35.02,
+ "y": 32.03
+ },
+ {
+ "x": 35.8,
+ "y": 32.92
+ },
+ {
+ "x": 35.03,
+ "y": 33.51
+ },
+ {
+ "x": 35.54,
+ "y": 34.15
+ },
+ {
+ "x": 35.06,
+ "y": 34.21
+ },
+ {
+ "x": 35.42,
+ "y": 34.99
+ },
+ {
+ "x": 34.56,
+ "y": 35.47
+ },
+ {
+ "x": 34.3,
+ "y": 36.43
+ },
+ {
+ "x": 33.76,
+ "y": 35.94
+ },
+ {
+ "x": 33.98,
+ "y": 34.62
+ },
+ {
+ "x": 33.55,
+ "y": 34.75
+ },
+ {
+ "x": 32.98,
+ "y": 36.97
+ },
+ {
+ "x": 32.81,
+ "y": 36.66
+ },
+ {
+ "x": 32.8,
+ "y": 36.62
+ }
+ ],
+ [
+ {
+ "x": 49.53,
+ "y": 38.75
+ },
+ {
+ "x": 49.62,
+ "y": 39.12
+ },
+ {
+ "x": 49.3,
+ "y": 38.58
+ },
+ {
+ "x": 49.06,
+ "y": 38.85
+ },
+ {
+ "x": 49.42,
+ "y": 39.86
+ },
+ {
+ "x": 49.01,
+ "y": 39.64
+ },
+ {
+ "x": 49.11,
+ "y": 40.26
+ },
+ {
+ "x": 48.04,
+ "y": 40.34
+ },
+ {
+ "x": 48.09,
+ "y": 39.92
+ },
+ {
+ "x": 48,
+ "y": 40.33
+ },
+ {
+ "x": 47.31,
+ "y": 40.27
+ },
+ {
+ "x": 47.14,
+ "y": 39.7
+ },
+ {
+ "x": 47.57,
+ "y": 39.6
+ },
+ {
+ "x": 47.01,
+ "y": 39
+ },
+ {
+ "x": 48.41,
+ "y": 38.19
+ },
+ {
+ "x": 45.52,
+ "y": 38.79
+ },
+ {
+ "x": 45.6,
+ "y": 38.11
+ },
+ {
+ "x": 46.03,
+ "y": 38.18
+ },
+ {
+ "x": 45.83,
+ "y": 37.66
+ },
+ {
+ "x": 46.86,
+ "y": 37.84
+ },
+ {
+ "x": 46.52,
+ "y": 37.94
+ },
+ {
+ "x": 46.57,
+ "y": 37.19
+ },
+ {
+ "x": 46.15,
+ "y": 37.17
+ },
+ {
+ "x": 46.5,
+ "y": 36.45
+ },
+ {
+ "x": 45.96,
+ "y": 36.55
+ },
+ {
+ "x": 46.01,
+ "y": 35.93
+ },
+ {
+ "x": 46.55,
+ "y": 35.92
+ },
+ {
+ "x": 47.6,
+ "y": 37.65
+ },
+ {
+ "x": 47.99,
+ "y": 37.34
+ },
+ {
+ "x": 47.39,
+ "y": 36.82
+ },
+ {
+ "x": 48.01,
+ "y": 36.73
+ },
+ {
+ "x": 47.2,
+ "y": 36.51
+ },
+ {
+ "x": 47.68,
+ "y": 36.34
+ },
+ {
+ "x": 46.81,
+ "y": 35.62
+ },
+ {
+ "x": 47.84,
+ "y": 35.19
+ },
+ {
+ "x": 48.27,
+ "y": 35.96
+ },
+ {
+ "x": 48.76,
+ "y": 35.06
+ },
+ {
+ "x": 49.35,
+ "y": 35.69
+ },
+ {
+ "x": 49.14,
+ "y": 38.05
+ },
+ {
+ "x": 49.53,
+ "y": 38.72
+ },
+ {
+ "x": 49.53,
+ "y": 38.75
+ }
+ ],
+ [
+ {
+ "x": 43.28,
+ "y": 26.19
+ },
+ {
+ "x": 43.39,
+ "y": 25.27
+ },
+ {
+ "x": 44.72,
+ "y": 25.13
+ },
+ {
+ "x": 45.36,
+ "y": 25.66
+ },
+ {
+ "x": 45.58,
+ "y": 27.1
+ },
+ {
+ "x": 46.3,
+ "y": 26.28
+ },
+ {
+ "x": 46.68,
+ "y": 27.4
+ },
+ {
+ "x": 47.3,
+ "y": 27.31
+ },
+ {
+ "x": 47.9,
+ "y": 28.19
+ },
+ {
+ "x": 47.71,
+ "y": 29.3
+ },
+ {
+ "x": 48.37,
+ "y": 30.19
+ },
+ {
+ "x": 48.19,
+ "y": 31.02
+ },
+ {
+ "x": 47.1,
+ "y": 30.94
+ },
+ {
+ "x": 46.75,
+ "y": 29.68
+ },
+ {
+ "x": 45.58,
+ "y": 29.54
+ },
+ {
+ "x": 45.47,
+ "y": 29.02
+ },
+ {
+ "x": 44.15,
+ "y": 29.42
+ },
+ {
+ "x": 43.73,
+ "y": 28.47
+ },
+ {
+ "x": 44.86,
+ "y": 28.57
+ },
+ {
+ "x": 44.96,
+ "y": 28.12
+ },
+ {
+ "x": 44.47,
+ "y": 28.06
+ },
+ {
+ "x": 45.02,
+ "y": 27.61
+ },
+ {
+ "x": 44.36,
+ "y": 27.49
+ },
+ {
+ "x": 44.32,
+ "y": 26.62
+ },
+ {
+ "x": 43.74,
+ "y": 27.38
+ },
+ {
+ "x": 43.96,
+ "y": 26.48
+ },
+ {
+ "x": 43.28,
+ "y": 26.21
+ },
+ {
+ "x": 43.28,
+ "y": 26.19
+ }
+ ],
+ [
+ {
+ "x": 29.74,
+ "y": 86.6
+ },
+ {
+ "x": 28.38,
+ "y": 86.33
+ },
+ {
+ "x": 28.6,
+ "y": 85.73
+ },
+ {
+ "x": 27.99,
+ "y": 86.06
+ },
+ {
+ "x": 27.76,
+ "y": 85.5
+ },
+ {
+ "x": 27.25,
+ "y": 85.53
+ },
+ {
+ "x": 27.61,
+ "y": 85.21
+ },
+ {
+ "x": 26.24,
+ "y": 84.7
+ },
+ {
+ "x": 26.61,
+ "y": 84.11
+ },
+ {
+ "x": 26.12,
+ "y": 84.3
+ },
+ {
+ "x": 25.84,
+ "y": 83.91
+ },
+ {
+ "x": 28.11,
+ "y": 84.44
+ },
+ {
+ "x": 29.73,
+ "y": 86.58
+ },
+ {
+ "x": 29.74,
+ "y": 86.6
+ }
+ ],
+ [
+ {
+ "x": 62.16,
+ "y": 44.24
+ },
+ {
+ "x": 62.51,
+ "y": 43.79
+ },
+ {
+ "x": 64.81,
+ "y": 44.37
+ },
+ {
+ "x": 65.81,
+ "y": 46.26
+ },
+ {
+ "x": 63.18,
+ "y": 46.48
+ },
+ {
+ "x": 62.17,
+ "y": 44.28
+ },
+ {
+ "x": 62.16,
+ "y": 44.24
+ }
+ ],
+ [
+ {
+ "x": 51.22,
+ "y": 55.58
+ },
+ {
+ "x": 50.22,
+ "y": 56.45
+ },
+ {
+ "x": 47.87,
+ "y": 55.2
+ },
+ {
+ "x": 48.78,
+ "y": 54.62
+ },
+ {
+ "x": 48.67,
+ "y": 54.02
+ },
+ {
+ "x": 49.07,
+ "y": 54.35
+ },
+ {
+ "x": 49.15,
+ "y": 53.33
+ },
+ {
+ "x": 50.45,
+ "y": 54.61
+ },
+ {
+ "x": 50.5,
+ "y": 55.22
+ },
+ {
+ "x": 50.58,
+ "y": 54.79
+ },
+ {
+ "x": 50.75,
+ "y": 55.55
+ },
+ {
+ "x": 51.22,
+ "y": 55.57
+ },
+ {
+ "x": 51.22,
+ "y": 55.58
+ }
+ ],
+ [
+ {
+ "x": 52.58,
+ "y": 40.47
+ },
+ {
+ "x": 52.45,
+ "y": 41.32
+ },
+ {
+ "x": 50.99,
+ "y": 41.06
+ },
+ {
+ "x": 50.57,
+ "y": 40.24
+ },
+ {
+ "x": 50.15,
+ "y": 40.33
+ },
+ {
+ "x": 50.5,
+ "y": 39.09
+ },
+ {
+ "x": 51.85,
+ "y": 38.49
+ },
+ {
+ "x": 52.58,
+ "y": 40.4
+ },
+ {
+ "x": 52.58,
+ "y": 40.47
+ }
+ ],
+ [
+ {
+ "x": 49.92,
+ "y": 31.19
+ },
+ {
+ "x": 49.26,
+ "y": 30.29
+ },
+ {
+ "x": 49.96,
+ "y": 29.94
+ },
+ {
+ "x": 49.15,
+ "y": 29.63
+ },
+ {
+ "x": 48.8,
+ "y": 28.7
+ },
+ {
+ "x": 48.98,
+ "y": 27.33
+ },
+ {
+ "x": 51.52,
+ "y": 29.09
+ },
+ {
+ "x": 51.08,
+ "y": 29.58
+ },
+ {
+ "x": 51.34,
+ "y": 30.55
+ },
+ {
+ "x": 49.96,
+ "y": 31.21
+ },
+ {
+ "x": 49.92,
+ "y": 31.19
+ }
+ ],
+ [
+ {
+ "x": 66.64,
+ "y": 57.01
+ },
+ {
+ "x": 66.51,
+ "y": 58.49
+ },
+ {
+ "x": 65.12,
+ "y": 58.86
+ },
+ {
+ "x": 64.89,
+ "y": 57.96
+ },
+ {
+ "x": 65.38,
+ "y": 56.83
+ },
+ {
+ "x": 66.63,
+ "y": 57.01
+ },
+ {
+ "x": 66.64,
+ "y": 57.01
+ }
+ ],
+ [
+ {
+ "x": 40.22,
+ "y": 30.17
+ },
+ {
+ "x": 39.23,
+ "y": 30.98
+ },
+ {
+ "x": 39.84,
+ "y": 31.26
+ },
+ {
+ "x": 39.74,
+ "y": 32.23
+ },
+ {
+ "x": 38.31,
+ "y": 32.86
+ },
+ {
+ "x": 37.5,
+ "y": 32.19
+ },
+ {
+ "x": 37.44,
+ "y": 30.79
+ },
+ {
+ "x": 40.15,
+ "y": 30.09
+ },
+ {
+ "x": 40.22,
+ "y": 30.17
+ }
+ ],
+ [
+ {
+ "x": 43.99,
+ "y": 44.18
+ },
+ {
+ "x": 43.52,
+ "y": 46.25
+ },
+ {
+ "x": 42.18,
+ "y": 44.58
+ },
+ {
+ "x": 42.52,
+ "y": 43.96
+ },
+ {
+ "x": 43.88,
+ "y": 44.16
+ },
+ {
+ "x": 43.99,
+ "y": 44.18
}
]
]
diff --git a/frontend/data/outlines/france.json b/frontend/data/outlines/france.json
index d852e55..3090140 100644
--- a/frontend/data/outlines/france.json
+++ b/frontend/data/outlines/france.json
@@ -8,68 +8,1426 @@
"subregion": "Western Europe"
},
"outline": {
- "type": "MultiPolygon",
- "bounds": {
- "minLon": -61.79784094999991,
- "maxLon": 55.854502800000034,
- "minLat": -21.37078215899993,
+ "type": "Polygon",
+ "geoBounds": {
+ "minLon": -4.784901495999918,
+ "maxLon": 8.200305216000032,
+ "minLat": 42.32566050300004,
"maxLat": 51.08754088371883
},
+ "projectedBounds": {
+ "minX": -0.083512,
+ "maxX": 0.143122,
+ "minY": 0.816835,
+ "maxY": 1.040554
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 388.290207,
+ "xOffset": 6,
+ "yOffset": 6.566187
+ },
"rings": [
[
{
- "x": 6.53,
- "y": 67.59
+ "x": 55.52,
+ "y": 6.57
},
{
- "x": 6.68,
- "y": 62.58
+ "x": 56.1,
+ "y": 7.93
},
{
- "x": 8.63,
- "y": 64.78
+ "x": 55.96,
+ "y": 9.17
},
{
- "x": 6.53,
- "y": 67.59
- }
- ],
- [
- {
- "x": 54.67,
- "y": 0
+ "x": 57.31,
+ "y": 10.48
},
{
- "x": 59.5,
- "y": 2.94
+ "x": 57.99,
+ "y": 10.77
},
{
- "x": 57.59,
- "y": 6.73
- },
- {
- "x": 58.88,
+ "x": 58.56,
"y": 10.11
},
{
- "x": 54.65,
- "y": 12.09
+ "x": 59.63,
+ "y": 9.88
},
{
- "x": 51.27,
- "y": 11.08
+ "x": 60.33,
+ "y": 10.77
},
{
- "x": 51.58,
- "y": 6.6
+ "x": 60.59,
+ "y": 12.58
},
{
- "x": 48.46,
- "y": 3.63
+ "x": 62.88,
+ "y": 13.12
},
{
- "x": 54.67,
- "y": 0
+ "x": 63.48,
+ "y": 15.01
+ },
+ {
+ "x": 63.87,
+ "y": 14.5
+ },
+ {
+ "x": 65.56,
+ "y": 14.52
+ },
+ {
+ "x": 66.87,
+ "y": 15.43
+ },
+ {
+ "x": 66.39,
+ "y": 16.81
+ },
+ {
+ "x": 66.96,
+ "y": 17.53
+ },
+ {
+ "x": 66.43,
+ "y": 18.43
+ },
+ {
+ "x": 68.48,
+ "y": 18.88
+ },
+ {
+ "x": 69.91,
+ "y": 18.33
+ },
+ {
+ "x": 70.16,
+ "y": 17.28
+ },
+ {
+ "x": 71.06,
+ "y": 16.46
+ },
+ {
+ "x": 71.44,
+ "y": 16.69
+ },
+ {
+ "x": 70.85,
+ "y": 18.6
+ },
+ {
+ "x": 71.36,
+ "y": 19.08
+ },
+ {
+ "x": 71.29,
+ "y": 20.33
+ },
+ {
+ "x": 72.12,
+ "y": 20.3
+ },
+ {
+ "x": 73.46,
+ "y": 21.45
+ },
+ {
+ "x": 74.07,
+ "y": 21.41
+ },
+ {
+ "x": 75.4,
+ "y": 23.42
+ },
+ {
+ "x": 77.37,
+ "y": 22.89
+ },
+ {
+ "x": 78.82,
+ "y": 24.02
+ },
+ {
+ "x": 80.4,
+ "y": 23.42
+ },
+ {
+ "x": 81.82,
+ "y": 23.77
+ },
+ {
+ "x": 82.56,
+ "y": 24.19
+ },
+ {
+ "x": 83.93,
+ "y": 26.96
+ },
+ {
+ "x": 84.66,
+ "y": 27.07
+ },
+ {
+ "x": 84.74,
+ "y": 26.43
+ },
+ {
+ "x": 85.36,
+ "y": 26.47
+ },
+ {
+ "x": 86.15,
+ "y": 27.49
+ },
+ {
+ "x": 86.41,
+ "y": 27.13
+ },
+ {
+ "x": 87.72,
+ "y": 27.51
+ },
+ {
+ "x": 88.65,
+ "y": 26.85
+ },
+ {
+ "x": 90.17,
+ "y": 28.21
+ },
+ {
+ "x": 92.18,
+ "y": 28.24
+ },
+ {
+ "x": 94,
+ "y": 29.03
+ },
+ {
+ "x": 93.25,
+ "y": 30.58
+ },
+ {
+ "x": 91.36,
+ "y": 32.56
+ },
+ {
+ "x": 90.95,
+ "y": 35.36
+ },
+ {
+ "x": 89.83,
+ "y": 37.51
+ },
+ {
+ "x": 90.07,
+ "y": 39.12
+ },
+ {
+ "x": 89.33,
+ "y": 41.78
+ },
+ {
+ "x": 89.84,
+ "y": 43.02
+ },
+ {
+ "x": 88.43,
+ "y": 44.56
+ },
+ {
+ "x": 87.48,
+ "y": 44.7
+ },
+ {
+ "x": 87.09,
+ "y": 43.99
+ },
+ {
+ "x": 85.68,
+ "y": 43.98
+ },
+ {
+ "x": 84.96,
+ "y": 45.33
+ },
+ {
+ "x": 86.17,
+ "y": 45.47
+ },
+ {
+ "x": 83.6,
+ "y": 48.65
+ },
+ {
+ "x": 82.09,
+ "y": 49.41
+ },
+ {
+ "x": 82,
+ "y": 51.23
+ },
+ {
+ "x": 79.89,
+ "y": 52.98
+ },
+ {
+ "x": 79.46,
+ "y": 54.6
+ },
+ {
+ "x": 80,
+ "y": 55.08
+ },
+ {
+ "x": 79.73,
+ "y": 56.23
+ },
+ {
+ "x": 78.78,
+ "y": 56.75
+ },
+ {
+ "x": 78.81,
+ "y": 57.43
+ },
+ {
+ "x": 80.04,
+ "y": 57.24
+ },
+ {
+ "x": 80.99,
+ "y": 56.36
+ },
+ {
+ "x": 80.54,
+ "y": 55.62
+ },
+ {
+ "x": 80.91,
+ "y": 55.03
+ },
+ {
+ "x": 82.36,
+ "y": 54.31
+ },
+ {
+ "x": 84.42,
+ "y": 54.65
+ },
+ {
+ "x": 84.17,
+ "y": 55.32
+ },
+ {
+ "x": 84.7,
+ "y": 56.07
+ },
+ {
+ "x": 84.28,
+ "y": 57.22
+ },
+ {
+ "x": 84.98,
+ "y": 57.61
+ },
+ {
+ "x": 84.86,
+ "y": 58.22
+ },
+ {
+ "x": 85.29,
+ "y": 58.23
+ },
+ {
+ "x": 86.02,
+ "y": 59.43
+ },
+ {
+ "x": 84.52,
+ "y": 60.4
+ },
+ {
+ "x": 84.48,
+ "y": 61.45
+ },
+ {
+ "x": 85.62,
+ "y": 62.2
+ },
+ {
+ "x": 85.75,
+ "y": 63.45
+ },
+ {
+ "x": 86.95,
+ "y": 64.54
+ },
+ {
+ "x": 86.24,
+ "y": 66.32
+ },
+ {
+ "x": 83.17,
+ "y": 67.38
+ },
+ {
+ "x": 83.99,
+ "y": 68.25
+ },
+ {
+ "x": 84.14,
+ "y": 69.26
+ },
+ {
+ "x": 85.9,
+ "y": 70.02
+ },
+ {
+ "x": 86.24,
+ "y": 71.39
+ },
+ {
+ "x": 85.59,
+ "y": 71.4
+ },
+ {
+ "x": 84.75,
+ "y": 72.82
+ },
+ {
+ "x": 85.31,
+ "y": 73.75
+ },
+ {
+ "x": 84.98,
+ "y": 74.45
+ },
+ {
+ "x": 85.69,
+ "y": 75.52
+ },
+ {
+ "x": 88.17,
+ "y": 76.71
+ },
+ {
+ "x": 90.31,
+ "y": 76.21
+ },
+ {
+ "x": 90.54,
+ "y": 77.24
+ },
+ {
+ "x": 89.1,
+ "y": 79.14
+ },
+ {
+ "x": 89.27,
+ "y": 79.83
+ },
+ {
+ "x": 88.11,
+ "y": 80.82
+ },
+ {
+ "x": 86.89,
+ "y": 81.12
+ },
+ {
+ "x": 86.81,
+ "y": 82.06
+ },
+ {
+ "x": 85.61,
+ "y": 82.19
+ },
+ {
+ "x": 85.15,
+ "y": 83.24
+ },
+ {
+ "x": 84.04,
+ "y": 83.43
+ },
+ {
+ "x": 83.09,
+ "y": 84.72
+ },
+ {
+ "x": 83.79,
+ "y": 84.68
+ },
+ {
+ "x": 83.7,
+ "y": 85.35
+ },
+ {
+ "x": 81.81,
+ "y": 85.86
+ },
+ {
+ "x": 81.63,
+ "y": 86.38
+ },
+ {
+ "x": 80.4,
+ "y": 86.21
+ },
+ {
+ "x": 80.14,
+ "y": 86.91
+ },
+ {
+ "x": 78.58,
+ "y": 85.97
+ },
+ {
+ "x": 78.27,
+ "y": 86.1
+ },
+ {
+ "x": 78.76,
+ "y": 86.48
+ },
+ {
+ "x": 77.86,
+ "y": 86.72
+ },
+ {
+ "x": 76.88,
+ "y": 85.55
+ },
+ {
+ "x": 74.66,
+ "y": 85.21
+ },
+ {
+ "x": 74.31,
+ "y": 83.92
+ },
+ {
+ "x": 72.54,
+ "y": 84.1
+ },
+ {
+ "x": 72.49,
+ "y": 83.41
+ },
+ {
+ "x": 73.85,
+ "y": 82.75
+ },
+ {
+ "x": 72.51,
+ "y": 82.02
+ },
+ {
+ "x": 72.66,
+ "y": 83.23
+ },
+ {
+ "x": 71.42,
+ "y": 83.3
+ },
+ {
+ "x": 71.33,
+ "y": 84.04
+ },
+ {
+ "x": 70.24,
+ "y": 81.83
+ },
+ {
+ "x": 71.09,
+ "y": 84
+ },
+ {
+ "x": 69.55,
+ "y": 83.87
+ },
+ {
+ "x": 69.01,
+ "y": 82.98
+ },
+ {
+ "x": 66.77,
+ "y": 82.91
+ },
+ {
+ "x": 66.25,
+ "y": 82.08
+ },
+ {
+ "x": 65.22,
+ "y": 82.19
+ },
+ {
+ "x": 62.24,
+ "y": 84.61
+ },
+ {
+ "x": 60.91,
+ "y": 84.78
+ },
+ {
+ "x": 59.53,
+ "y": 86.23
+ },
+ {
+ "x": 59.02,
+ "y": 87.75
+ },
+ {
+ "x": 59.04,
+ "y": 90.65
+ },
+ {
+ "x": 59.98,
+ "y": 92.46
+ },
+ {
+ "x": 58.31,
+ "y": 92.11
+ },
+ {
+ "x": 56.66,
+ "y": 92.7
+ },
+ {
+ "x": 56.47,
+ "y": 93.31
+ },
+ {
+ "x": 55.47,
+ "y": 93.43
+ },
+ {
+ "x": 53.86,
+ "y": 92.49
+ },
+ {
+ "x": 51.95,
+ "y": 93.22
+ },
+ {
+ "x": 51.49,
+ "y": 92.41
+ },
+ {
+ "x": 50.03,
+ "y": 91.89
+ },
+ {
+ "x": 50.39,
+ "y": 91.25
+ },
+ {
+ "x": 50.1,
+ "y": 90.82
+ },
+ {
+ "x": 48.88,
+ "y": 90.46
+ },
+ {
+ "x": 48.11,
+ "y": 90.96
+ },
+ {
+ "x": 47.53,
+ "y": 89.91
+ },
+ {
+ "x": 46.23,
+ "y": 89.93
+ },
+ {
+ "x": 45.81,
+ "y": 89.33
+ },
+ {
+ "x": 43.34,
+ "y": 88.65
+ },
+ {
+ "x": 42.87,
+ "y": 88.71
+ },
+ {
+ "x": 42.79,
+ "y": 90.14
+ },
+ {
+ "x": 40.83,
+ "y": 89.83
+ },
+ {
+ "x": 40.29,
+ "y": 90.28
+ },
+ {
+ "x": 39.57,
+ "y": 89.75
+ },
+ {
+ "x": 38.16,
+ "y": 90.13
+ },
+ {
+ "x": 37.33,
+ "y": 89.11
+ },
+ {
+ "x": 36.24,
+ "y": 88.68
+ },
+ {
+ "x": 34.57,
+ "y": 89.32
+ },
+ {
+ "x": 33.28,
+ "y": 87.71
+ },
+ {
+ "x": 30.63,
+ "y": 87.17
+ },
+ {
+ "x": 29.66,
+ "y": 86.71
+ },
+ {
+ "x": 29.71,
+ "y": 86.21
+ },
+ {
+ "x": 29.17,
+ "y": 86.91
+ },
+ {
+ "x": 28.55,
+ "y": 86.8
+ },
+ {
+ "x": 28.92,
+ "y": 84.96
+ },
+ {
+ "x": 26.59,
+ "y": 84.52
+ },
+ {
+ "x": 26.27,
+ "y": 83.63
+ },
+ {
+ "x": 27.17,
+ "y": 83.5
+ },
+ {
+ "x": 28.42,
+ "y": 81.82
+ },
+ {
+ "x": 29.91,
+ "y": 72.61
+ },
+ {
+ "x": 30.39,
+ "y": 71.57
+ },
+ {
+ "x": 31.35,
+ "y": 71.53
+ },
+ {
+ "x": 30.48,
+ "y": 70.5
+ },
+ {
+ "x": 29.89,
+ "y": 71.93
+ },
+ {
+ "x": 31.07,
+ "y": 62.89
+ },
+ {
+ "x": 33.23,
+ "y": 65.24
+ },
+ {
+ "x": 33.57,
+ "y": 67.08
+ },
+ {
+ "x": 34.8,
+ "y": 69.38
+ },
+ {
+ "x": 34.39,
+ "y": 68.14
+ },
+ {
+ "x": 35.08,
+ "y": 68.39
+ },
+ {
+ "x": 33.98,
+ "y": 67.42
+ },
+ {
+ "x": 33.04,
+ "y": 63.78
+ },
+ {
+ "x": 29.97,
+ "y": 61.53
+ },
+ {
+ "x": 30.09,
+ "y": 60.73
+ },
+ {
+ "x": 30.54,
+ "y": 60.59
+ },
+ {
+ "x": 31.74,
+ "y": 61.46
+ },
+ {
+ "x": 30.62,
+ "y": 59.99
+ },
+ {
+ "x": 31.15,
+ "y": 59.64
+ },
+ {
+ "x": 30.9,
+ "y": 58.53
+ },
+ {
+ "x": 31.32,
+ "y": 58.33
+ },
+ {
+ "x": 30.22,
+ "y": 57
+ },
+ {
+ "x": 30.9,
+ "y": 55.74
+ },
+ {
+ "x": 30.45,
+ "y": 55.51
+ },
+ {
+ "x": 30.02,
+ "y": 55.92
+ },
+ {
+ "x": 26.3,
+ "y": 53.48
+ },
+ {
+ "x": 26.26,
+ "y": 53.86
+ },
+ {
+ "x": 25.48,
+ "y": 51.91
+ },
+ {
+ "x": 24.07,
+ "y": 50.65
+ },
+ {
+ "x": 24,
+ "y": 49.92
+ },
+ {
+ "x": 24.94,
+ "y": 48.51
+ },
+ {
+ "x": 24.67,
+ "y": 47.94
+ },
+ {
+ "x": 23.24,
+ "y": 47.44
+ },
+ {
+ "x": 23.75,
+ "y": 47.19
+ },
+ {
+ "x": 23.85,
+ "y": 46.07
+ },
+ {
+ "x": 25.36,
+ "y": 46.01
+ },
+ {
+ "x": 26.72,
+ "y": 46.76
+ },
+ {
+ "x": 24.8,
+ "y": 45.67
+ },
+ {
+ "x": 22.99,
+ "y": 46.41
+ },
+ {
+ "x": 21.2,
+ "y": 45.87
+ },
+ {
+ "x": 21.92,
+ "y": 45.8
+ },
+ {
+ "x": 21.1,
+ "y": 45.04
+ },
+ {
+ "x": 22.22,
+ "y": 44.63
+ },
+ {
+ "x": 21.52,
+ "y": 43.96
+ },
+ {
+ "x": 22.41,
+ "y": 43.81
+ },
+ {
+ "x": 20.59,
+ "y": 43.67
+ },
+ {
+ "x": 20.96,
+ "y": 43.33
+ },
+ {
+ "x": 19.25,
+ "y": 43.83
+ },
+ {
+ "x": 18.71,
+ "y": 43.28
+ },
+ {
+ "x": 19.85,
+ "y": 43.35
+ },
+ {
+ "x": 20.08,
+ "y": 42.43
+ },
+ {
+ "x": 20.07,
+ "y": 42.84
+ },
+ {
+ "x": 19.53,
+ "y": 42.43
+ },
+ {
+ "x": 18.64,
+ "y": 42.91
+ },
+ {
+ "x": 18.27,
+ "y": 42.22
+ },
+ {
+ "x": 18.5,
+ "y": 43.26
+ },
+ {
+ "x": 18.02,
+ "y": 42.79
+ },
+ {
+ "x": 17.26,
+ "y": 42.88
+ },
+ {
+ "x": 17.52,
+ "y": 44.09
+ },
+ {
+ "x": 17.2,
+ "y": 44.09
+ },
+ {
+ "x": 16.74,
+ "y": 42.47
+ },
+ {
+ "x": 17.3,
+ "y": 41.53
+ },
+ {
+ "x": 16.79,
+ "y": 41.39
+ },
+ {
+ "x": 17.02,
+ "y": 41.75
+ },
+ {
+ "x": 16.58,
+ "y": 42.3
+ },
+ {
+ "x": 15.67,
+ "y": 41.88
+ },
+ {
+ "x": 16.18,
+ "y": 41.95
+ },
+ {
+ "x": 15.67,
+ "y": 41.75
+ },
+ {
+ "x": 16.18,
+ "y": 40.98
+ },
+ {
+ "x": 15.07,
+ "y": 41.81
+ },
+ {
+ "x": 14.52,
+ "y": 41.05
+ },
+ {
+ "x": 12.32,
+ "y": 40.84
+ },
+ {
+ "x": 11.58,
+ "y": 39.84
+ },
+ {
+ "x": 11.26,
+ "y": 40.33
+ },
+ {
+ "x": 10.42,
+ "y": 39.6
+ },
+ {
+ "x": 10.57,
+ "y": 40.15
+ },
+ {
+ "x": 10.06,
+ "y": 40.1
+ },
+ {
+ "x": 10.06,
+ "y": 40.71
+ },
+ {
+ "x": 8.8,
+ "y": 40.78
+ },
+ {
+ "x": 8.97,
+ "y": 40.21
+ },
+ {
+ "x": 8.37,
+ "y": 39.07
+ },
+ {
+ "x": 6.38,
+ "y": 38.42
+ },
+ {
+ "x": 9.39,
+ "y": 37.66
+ },
+ {
+ "x": 8.75,
+ "y": 36.47
+ },
+ {
+ "x": 8.03,
+ "y": 36.36
+ },
+ {
+ "x": 7.54,
+ "y": 37.03
+ },
+ {
+ "x": 7.61,
+ "y": 36.26
+ },
+ {
+ "x": 7.07,
+ "y": 35.91
+ },
+ {
+ "x": 7.61,
+ "y": 35.3
+ },
+ {
+ "x": 7.83,
+ "y": 35.82
+ },
+ {
+ "x": 10.05,
+ "y": 35.7
+ },
+ {
+ "x": 9.12,
+ "y": 35.56
+ },
+ {
+ "x": 9.49,
+ "y": 35.14
+ },
+ {
+ "x": 8.24,
+ "y": 35.42
+ },
+ {
+ "x": 9.35,
+ "y": 34.44
+ },
+ {
+ "x": 6.54,
+ "y": 35.36
+ },
+ {
+ "x": 6.11,
+ "y": 35.32
+ },
+ {
+ "x": 6,
+ "y": 34.39
+ },
+ {
+ "x": 6.43,
+ "y": 33.04
+ },
+ {
+ "x": 7.41,
+ "y": 33.04
+ },
+ {
+ "x": 7.5,
+ "y": 32.41
+ },
+ {
+ "x": 8.99,
+ "y": 31.91
+ },
+ {
+ "x": 10.01,
+ "y": 32.2
+ },
+ {
+ "x": 10.14,
+ "y": 31.78
+ },
+ {
+ "x": 11.5,
+ "y": 31.35
+ },
+ {
+ "x": 11.63,
+ "y": 32.13
+ },
+ {
+ "x": 12.05,
+ "y": 31.92
+ },
+ {
+ "x": 12.32,
+ "y": 32.41
+ },
+ {
+ "x": 12.61,
+ "y": 31.35
+ },
+ {
+ "x": 14.13,
+ "y": 31.87
+ },
+ {
+ "x": 14.6,
+ "y": 30.23
+ },
+ {
+ "x": 15.4,
+ "y": 30.59
+ },
+ {
+ "x": 16.54,
+ "y": 29.92
+ },
+ {
+ "x": 16.6,
+ "y": 30.72
+ },
+ {
+ "x": 17.48,
+ "y": 29.93
+ },
+ {
+ "x": 17.25,
+ "y": 31.07
+ },
+ {
+ "x": 18.04,
+ "y": 30.44
+ },
+ {
+ "x": 17.81,
+ "y": 30.79
+ },
+ {
+ "x": 18.55,
+ "y": 31
+ },
+ {
+ "x": 20.25,
+ "y": 33.65
+ },
+ {
+ "x": 21.57,
+ "y": 32.2
+ },
+ {
+ "x": 22.73,
+ "y": 31.7
+ },
+ {
+ "x": 22.63,
+ "y": 32.41
+ },
+ {
+ "x": 23.17,
+ "y": 32.2
+ },
+ {
+ "x": 23.42,
+ "y": 32.9
+ },
+ {
+ "x": 24.52,
+ "y": 32.2
+ },
+ {
+ "x": 25.01,
+ "y": 33.6
+ },
+ {
+ "x": 25.19,
+ "y": 32.97
+ },
+ {
+ "x": 24.68,
+ "y": 32.27
+ },
+ {
+ "x": 25.24,
+ "y": 31.7
+ },
+ {
+ "x": 25.93,
+ "y": 31.56
+ },
+ {
+ "x": 25.82,
+ "y": 32.3
+ },
+ {
+ "x": 26.26,
+ "y": 32.55
+ },
+ {
+ "x": 29.23,
+ "y": 32.27
+ },
+ {
+ "x": 27.9,
+ "y": 31.21
+ },
+ {
+ "x": 27.56,
+ "y": 30.15
+ },
+ {
+ "x": 28.21,
+ "y": 28.25
+ },
+ {
+ "x": 27.63,
+ "y": 28.3
+ },
+ {
+ "x": 27.51,
+ "y": 26.37
+ },
+ {
+ "x": 27.93,
+ "y": 26.27
+ },
+ {
+ "x": 27.42,
+ "y": 26.33
+ },
+ {
+ "x": 26.91,
+ "y": 24.91
+ },
+ {
+ "x": 26.12,
+ "y": 24.62
+ },
+ {
+ "x": 25.65,
+ "y": 23.09
+ },
+ {
+ "x": 25.96,
+ "y": 22.16
+ },
+ {
+ "x": 25.24,
+ "y": 21.55
+ },
+ {
+ "x": 25.31,
+ "y": 21.07
+ },
+ {
+ "x": 27.54,
+ "y": 21.84
+ },
+ {
+ "x": 28.87,
+ "y": 21.2
+ },
+ {
+ "x": 29.87,
+ "y": 21.36
+ },
+ {
+ "x": 30.11,
+ "y": 22.11
+ },
+ {
+ "x": 29.57,
+ "y": 22.8
+ },
+ {
+ "x": 30.82,
+ "y": 25.02
+ },
+ {
+ "x": 31.16,
+ "y": 24.48
+ },
+ {
+ "x": 32.05,
+ "y": 24.53
+ },
+ {
+ "x": 35.64,
+ "y": 25.05
+ },
+ {
+ "x": 36.94,
+ "y": 25.7
+ },
+ {
+ "x": 41.21,
+ "y": 23.91
+ },
+ {
+ "x": 41.77,
+ "y": 23.48
+ },
+ {
+ "x": 40.73,
+ "y": 23.86
+ },
+ {
+ "x": 38.96,
+ "y": 23.25
+ },
+ {
+ "x": 39.69,
+ "y": 21.28
+ },
+ {
+ "x": 42.47,
+ "y": 19.67
+ },
+ {
+ "x": 46.7,
+ "y": 18.39
+ },
+ {
+ "x": 48.73,
+ "y": 15.9
+ },
+ {
+ "x": 49.76,
+ "y": 16.13
+ },
+ {
+ "x": 48.87,
+ "y": 15.23
+ },
+ {
+ "x": 49.34,
+ "y": 14.24
+ },
+ {
+ "x": 48.97,
+ "y": 13.88
+ },
+ {
+ "x": 49.34,
+ "y": 12.35
+ },
+ {
+ "x": 49.14,
+ "y": 8.92
+ },
+ {
+ "x": 51.45,
+ "y": 7.54
+ },
+ {
+ "x": 55.52,
+ "y": 6.57
}
]
]
diff --git a/frontend/data/outlines/germany.json b/frontend/data/outlines/germany.json
index b540ba1..ff7e40d 100644
--- a/frontend/data/outlines/germany.json
+++ b/frontend/data/outlines/germany.json
@@ -9,519 +9,1445 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
+ "geoBounds": {
"minLon": 5.852489868000106,
"maxLon": 15.022059367000054,
"minLat": 47.27112091100007,
- "maxLat": 55.065334377000056
+ "maxLat": 54.90590037000008
+ },
+ "projectedBounds": {
+ "minX": 0.102145,
+ "maxX": 0.262184,
+ "minY": 0.938588,
+ "maxY": 1.151375
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 413.559313,
+ "xOffset": 16.907154,
+ "yOffset": 6
},
"rings": [
[
{
- "x": 86.84,
- "y": 80.82
+ "x": 74.39,
+ "y": 77.86
},
{
- "x": 85.76,
- "y": 83.96
+ "x": 74.29,
+ "y": 79.55
},
{
- "x": 82.91,
- "y": 83.29
+ "x": 73.67,
+ "y": 80.54
},
{
- "x": 82.37,
- "y": 85.82
+ "x": 71.78,
+ "y": 79.97
},
{
- "x": 75.1,
- "y": 89.19
+ "x": 71.43,
+ "y": 82.12
},
{
- "x": 78.73,
- "y": 95.02
+ "x": 68.73,
+ "y": 83.34
},
{
- "x": 77.97,
- "y": 97.5
+ "x": 66.61,
+ "y": 84.97
},
{
- "x": 69.66,
- "y": 94.09
+ "x": 68.43,
+ "y": 87.84
},
{
- "x": 58.72,
- "y": 98.42
+ "x": 67.72,
+ "y": 89.17
},
{
- "x": 49.91,
- "y": 96.08
+ "x": 68.64,
+ "y": 89.28
},
{
- "x": 46.97,
- "y": 100
+ "x": 69.02,
+ "y": 89.85
},
{
- "x": 44.64,
- "y": 96.54
+ "x": 68.51,
+ "y": 91.92
},
{
- "x": 29.78,
- "y": 93.21
+ "x": 66.9,
+ "y": 90.97
},
{
- "x": 27.68,
- "y": 94.6
+ "x": 67.15,
+ "y": 90.36
},
{
- "x": 29.53,
- "y": 95.92
+ "x": 66.78,
+ "y": 89.77
},
{
- "x": 18.91,
- "y": 95.98
+ "x": 64.86,
+ "y": 90.18
},
{
- "x": 18.9,
- "y": 88.98
+ "x": 64.34,
+ "y": 89.51
},
{
- "x": 25.6,
- "y": 78.35
+ "x": 63,
+ "y": 89.65
},
{
- "x": 9.39,
- "y": 75.78
+ "x": 63.01,
+ "y": 89.08
},
{
- "x": 5.37,
- "y": 71.98
+ "x": 62.55,
+ "y": 89.36
},
{
- "x": 7.09,
- "y": 67.61
+ "x": 62.53,
+ "y": 90.44
},
{
- "x": 2.66,
- "y": 64.36
+ "x": 58.54,
+ "y": 90.6
},
{
- "x": 5.69,
- "y": 60.94
+ "x": 58.04,
+ "y": 91.41
},
{
- "x": 0.06,
- "y": 51.91
+ "x": 57.04,
+ "y": 91.49
},
{
- "x": 3.88,
- "y": 47.18
+ "x": 56.83,
+ "y": 92.15
},
{
- "x": 0.82,
- "y": 41.81
+ "x": 55.77,
+ "y": 92.69
},
{
- "x": 9.72,
- "y": 40.5
+ "x": 55.46,
+ "y": 92.32
},
{
- "x": 9.02,
- "y": 38.55
+ "x": 53.91,
+ "y": 92.73
},
{
- "x": 12.8,
- "y": 36.37
+ "x": 53.04,
+ "y": 91.23
},
{
- "x": 12.22,
- "y": 33.54
+ "x": 51.06,
+ "y": 90.89
},
{
- "x": 8.93,
- "y": 32.38
+ "x": 50.63,
+ "y": 91.26
},
{
- "x": 12.72,
- "y": 31.3
+ "x": 49.94,
+ "y": 90.74
},
{
- "x": 16.51,
- "y": 22.61
+ "x": 49.94,
+ "y": 92.67
},
{
- "x": 12.77,
- "y": 21.67
+ "x": 49.05,
+ "y": 93.67
},
{
- "x": 14.98,
- "y": 17.95
+ "x": 48,
+ "y": 94
},
{
- "x": 23.76,
- "y": 17.41
+ "x": 48.35,
+ "y": 92.92
},
{
- "x": 25.66,
- "y": 21.23
+ "x": 47.37,
+ "y": 93
},
{
- "x": 26.37,
- "y": 18.64
+ "x": 47.43,
+ "y": 92.34
},
{
- "x": 29.44,
- "y": 19.52
+ "x": 46.45,
+ "y": 91.12
},
{
- "x": 28.92,
- "y": 21.9
+ "x": 45.64,
+ "y": 91.19
},
{
- "x": 29.83,
- "y": 15.33
+ "x": 45.27,
+ "y": 90.61
+ },
+ {
+ "x": 44.05,
+ "y": 91.33
+ },
+ {
+ "x": 40.95,
+ "y": 89.74
+ },
+ {
+ "x": 38.77,
+ "y": 89.89
+ },
+ {
+ "x": 38.16,
+ "y": 89.2
+ },
+ {
+ "x": 37.58,
+ "y": 89.48
+ },
+ {
+ "x": 37.56,
+ "y": 88.8
+ },
+ {
+ "x": 37.06,
+ "y": 88.44
+ },
+ {
+ "x": 36.86,
+ "y": 88.8
},
{
"x": 36.62,
- "y": 15.31
+ "y": 88.34
},
{
- "x": 43.4,
- "y": 19.52
+ "x": 35.23,
+ "y": 89.5
},
{
- "x": 33.41,
- "y": 14.47
+ "x": 35.72,
+ "y": 90.06
},
{
- "x": 33.92,
- "y": 9.59
+ "x": 36.79,
+ "y": 89.89
},
{
- "x": 29.96,
- "y": 9.33
+ "x": 36.55,
+ "y": 90.57
},
{
- "x": 34.45,
- "y": 7.17
+ "x": 36.18,
+ "y": 90.26
},
{
- "x": 30.63,
- "y": 2.17
+ "x": 34.96,
+ "y": 90.69
},
{
- "x": 44.66,
- "y": 3.67
+ "x": 34.09,
+ "y": 90.26
},
{
- "x": 45.52,
- "y": 6.48
+ "x": 32.71,
+ "y": 90.91
},
{
- "x": 43.49,
- "y": 7.57
+ "x": 31.11,
+ "y": 90.54
},
{
- "x": 46.8,
- "y": 7.36
+ "x": 30.12,
+ "y": 91.09
},
{
- "x": 46.78,
- "y": 9.51
+ "x": 29.59,
+ "y": 90.87
},
{
- "x": 57.61,
- "y": 8.72
+ "x": 29.95,
+ "y": 90.53
},
{
- "x": 53.44,
- "y": 13.03
+ "x": 29.42,
+ "y": 90.66
},
{
- "x": 54.91,
- "y": 14.13
+ "x": 28.88,
+ "y": 89.34
},
{
- "x": 61.13,
- "y": 14.87
+ "x": 29.67,
+ "y": 86.5
},
{
- "x": 63.66,
- "y": 11.68
+ "x": 29.42,
+ "y": 84.79
},
{
- "x": 68.3,
- "y": 12.41
+ "x": 30.61,
+ "y": 82.5
},
{
- "x": 72.86,
- "y": 7.4
+ "x": 31.04,
+ "y": 79.52
},
{
- "x": 77.09,
- "y": 8.11
+ "x": 33.06,
+ "y": 77.41
},
{
- "x": 71.06,
- "y": 10.21
+ "x": 33.85,
+ "y": 75.75
},
{
- "x": 78.32,
- "y": 8.1
+ "x": 31.92,
+ "y": 74.92
},
{
- "x": 83.02,
- "y": 12.41
+ "x": 29.77,
+ "y": 74.88
},
{
- "x": 86.76,
- "y": 12.33
+ "x": 28.15,
+ "y": 73.44
},
{
- "x": 86.86,
- "y": 15.56
+ "x": 27.17,
+ "y": 74.14
},
{
- "x": 91.74,
- "y": 16.86
+ "x": 25.77,
+ "y": 73.73
},
{
- "x": 93.67,
- "y": 23.27
+ "x": 25.5,
+ "y": 74.11
},
{
- "x": 90.21,
- "y": 28.41
+ "x": 25.26,
+ "y": 73.3
},
{
- "x": 95.89,
- "y": 31.93
+ "x": 24.65,
+ "y": 73.03
},
{
- "x": 94.8,
- "y": 34.43
+ "x": 23.99,
+ "y": 72.99
},
{
- "x": 97.16,
- "y": 38.34
+ "x": 23.9,
+ "y": 73.67
},
{
- "x": 95.24,
- "y": 41.84
+ "x": 23.12,
+ "y": 73.55
},
{
- "x": 99.27,
- "y": 46.57
+ "x": 21.67,
+ "y": 70.61
},
{
- "x": 98.78,
- "y": 52.25
+ "x": 20.46,
+ "y": 70.27
},
{
- "x": 96.9,
- "y": 54.59
+ "x": 20.5,
+ "y": 69.03
},
{
- "x": 91.99,
- "y": 51.69
+ "x": 21.58,
+ "y": 67.41
},
{
- "x": 92.63,
- "y": 53.7
+ "x": 21.6,
+ "y": 66.47
},
{
- "x": 72.61,
- "y": 60
+ "x": 20.16,
+ "y": 66.03
},
{
- "x": 70.32,
- "y": 62.93
+ "x": 18.67,
+ "y": 63.64
},
{
- "x": 67.87,
- "y": 60.94
+ "x": 19.03,
+ "y": 61.78
},
{
- "x": 72.76,
- "y": 66.21
+ "x": 20.68,
+ "y": 60.63
},
{
- "x": 71.23,
- "y": 68.29
+ "x": 20.4,
+ "y": 58.76
},
{
- "x": 74.06,
- "y": 72.31
+ "x": 19.2,
+ "y": 58.34
},
{
- "x": 86.63,
- "y": 80.64
+ "x": 19.77,
+ "y": 57.24
},
{
- "x": 86.84,
- "y": 80.82
- }
- ],
- [
- {
- "x": 91.14,
- "y": 14.46
+ "x": 19.12,
+ "y": 57.15
},
{
- "x": 87.11,
- "y": 15.59
+ "x": 17.92,
+ "y": 55.76
},
{
- "x": 89.41,
- "y": 13.6
+ "x": 17.75,
+ "y": 55.19
},
{
- "x": 86.16,
- "y": 11.7
+ "x": 18.43,
+ "y": 53.9
},
{
- "x": 91.14,
- "y": 14.46
- }
- ],
- [
+ "x": 18,
+ "y": 53.14
+ },
{
- "x": 13.97,
- "y": 17.41
+ "x": 17.07,
+ "y": 53.23
},
{
- "x": 16.3,
- "y": 17.22
+ "x": 16.95,
+ "y": 52.61
},
{
- "x": 14.41,
- "y": 17.5
+ "x": 19.03,
+ "y": 51.09
},
{
- "x": 13.97,
- "y": 17.41
- }
- ],
- [
+ "x": 19.11,
+ "y": 50.78
+ },
{
- "x": 19.72,
- "y": 16.72
+ "x": 18.41,
+ "y": 50.87
},
{
- "x": 21.38,
- "y": 16.45
+ "x": 18.38,
+ "y": 50.4
},
{
- "x": 19.81,
- "y": 16.77
+ "x": 19.47,
+ "y": 48.37
},
{
- "x": 19.72,
- "y": 16.72
- }
- ],
- [
+ "x": 19.37,
+ "y": 46.96
+ },
{
- "x": 58.92,
- "y": 7.53
+ "x": 18.6,
+ "y": 45.96
},
{
- "x": 56.23,
- "y": 7.84
+ "x": 18.69,
+ "y": 45.39
},
{
- "x": 58.75,
- "y": 7.31
+ "x": 17.53,
+ "y": 44.37
},
{
- "x": 58.92,
- "y": 7.53
- }
- ],
- [
+ "x": 17.45,
+ "y": 43.5
+ },
{
- "x": 79.51,
- "y": 5.99
+ "x": 19.1,
+ "y": 43.09
},
{
- "x": 78.62,
- "y": 7.66
+ "x": 18.89,
+ "y": 42.45
},
{
- "x": 79.51,
- "y": 6.26
+ "x": 20.46,
+ "y": 43.33
},
{
- "x": 79.51,
- "y": 5.99
- }
- ],
- [
+ "x": 20.7,
+ "y": 42.88
+ },
{
- "x": 85.56,
- "y": 8.64
+ "x": 23.34,
+ "y": 42.31
},
{
- "x": 82.39,
- "y": 10.74
+ "x": 23.81,
+ "y": 41.48
},
{
- "x": 79.21,
- "y": 9.33
+ "x": 22.88,
+ "y": 40.53
},
{
- "x": 80.86,
- "y": 8.72
+ "x": 25.38,
+ "y": 38.53
},
{
- "x": 79.51,
- "y": 6.7
+ "x": 25.54,
+ "y": 36.94
},
{
- "x": 83.48,
- "y": 7.4
+ "x": 25,
+ "y": 35.92
},
{
- "x": 80.71,
- "y": 6.42
+ "x": 23.13,
+ "y": 35.8
},
{
- "x": 82.21,
- "y": 4.84
+ "x": 22.82,
+ "y": 34.85
},
{
- "x": 85.34,
- "y": 8.53
+ "x": 23.34,
+ "y": 34.64
},
{
- "x": 85.56,
- "y": 8.64
- }
- ],
- [
+ "x": 23.29,
+ "y": 33.75
+ },
{
- "x": 27.35,
- "y": 1.5
+ "x": 25.32,
+ "y": 33.85
},
{
- "x": 30.56,
- "y": 2.2
+ "x": 25.64,
+ "y": 31.49
},
{
"x": 26.52,
- "y": 4.14
+ "y": 29.79
},
{
- "x": 28.47,
- "y": 0.19
+ "x": 26.59,
+ "y": 26.44
},
{
- "x": 27.25,
- "y": 1.26
+ "x": 27.03,
+ "y": 25.54
},
{
- "x": 27.35,
- "y": 1.5
+ "x": 27.84,
+ "y": 25.74
+ },
+ {
+ "x": 25.73,
+ "y": 25.32
+ },
+ {
+ "x": 25.36,
+ "y": 24.85
+ },
+ {
+ "x": 25.56,
+ "y": 23.2
+ },
+ {
+ "x": 26.21,
+ "y": 22.9
+ },
+ {
+ "x": 25.82,
+ "y": 22.3
+ },
+ {
+ "x": 26.82,
+ "y": 21.33
+ },
+ {
+ "x": 32.63,
+ "y": 20.82
+ },
+ {
+ "x": 33.62,
+ "y": 22.71
+ },
+ {
+ "x": 32.83,
+ "y": 23.33
+ },
+ {
+ "x": 32.96,
+ "y": 23.73
+ },
+ {
+ "x": 33.99,
+ "y": 24.49
+ },
+ {
+ "x": 34.68,
+ "y": 23.66
+ },
+ {
+ "x": 34.51,
+ "y": 22.99
+ },
+ {
+ "x": 34.08,
+ "y": 23.05
+ },
+ {
+ "x": 34.36,
+ "y": 21.98
+ },
+ {
+ "x": 36.39,
+ "y": 22.82
+ },
+ {
+ "x": 35.94,
+ "y": 23.52
+ },
+ {
+ "x": 36.05,
+ "y": 25.07
+ },
+ {
+ "x": 36,
+ "y": 23.66
+ },
+ {
+ "x": 36.49,
+ "y": 22.78
+ },
+ {
+ "x": 35.92,
+ "y": 20.91
+ },
+ {
+ "x": 36.65,
+ "y": 18.84
+ },
+ {
+ "x": 37.26,
+ "y": 18.58
+ },
+ {
+ "x": 38.62,
+ "y": 19.32
+ },
+ {
+ "x": 41.15,
+ "y": 18.82
+ },
+ {
+ "x": 41.67,
+ "y": 18.94
+ },
+ {
+ "x": 43.83,
+ "y": 22.24
+ },
+ {
+ "x": 45.63,
+ "y": 22.82
+ },
+ {
+ "x": 43.6,
+ "y": 21.72
+ },
+ {
+ "x": 42.48,
+ "y": 19.32
+ },
+ {
+ "x": 39.02,
+ "y": 18.02
+ },
+ {
+ "x": 38.42,
+ "y": 16.8
+ },
+ {
+ "x": 39.61,
+ "y": 16.88
+ },
+ {
+ "x": 39.76,
+ "y": 16.04
+ },
+ {
+ "x": 39.29,
+ "y": 15.4
+ },
+ {
+ "x": 38.62,
+ "y": 15.71
+ },
+ {
+ "x": 38.27,
+ "y": 15.03
+ },
+ {
+ "x": 38.47,
+ "y": 14.1
+ },
+ {
+ "x": 39.36,
+ "y": 13.33
+ },
+ {
+ "x": 37.31,
+ "y": 13.93
+ },
+ {
+ "x": 36.74,
+ "y": 13.08
+ },
+ {
+ "x": 37.43,
+ "y": 12.83
+ },
+ {
+ "x": 36.99,
+ "y": 12.74
+ },
+ {
+ "x": 37.09,
+ "y": 12.23
+ },
+ {
+ "x": 38.8,
+ "y": 12.09
+ },
+ {
+ "x": 39.71,
+ "y": 10.99
+ },
+ {
+ "x": 38.75,
+ "y": 9.74
+ },
+ {
+ "x": 38.37,
+ "y": 9.85
+ },
+ {
+ "x": 38.22,
+ "y": 8.73
+ },
+ {
+ "x": 37.38,
+ "y": 8.14
+ },
+ {
+ "x": 37.18,
+ "y": 6.12
+ },
+ {
+ "x": 38.93,
+ "y": 6.1
+ },
+ {
+ "x": 41.03,
+ "y": 6.7
+ },
+ {
+ "x": 41.39,
+ "y": 7.31
+ },
+ {
+ "x": 42.88,
+ "y": 7.2
+ },
+ {
+ "x": 43.81,
+ "y": 6.5
+ },
+ {
+ "x": 43.84,
+ "y": 6.95
+ },
+ {
+ "x": 45.57,
+ "y": 7.87
+ },
+ {
+ "x": 46.46,
+ "y": 7.58
+ },
+ {
+ "x": 46.98,
+ "y": 8.56
+ },
+ {
+ "x": 46.33,
+ "y": 8.9
+ },
+ {
+ "x": 47.13,
+ "y": 8.99
+ },
+ {
+ "x": 47.04,
+ "y": 10.32
+ },
+ {
+ "x": 45.69,
+ "y": 11.38
+ },
+ {
+ "x": 47.88,
+ "y": 11.17
+ },
+ {
+ "x": 48.32,
+ "y": 11.55
+ },
+ {
+ "x": 47.87,
+ "y": 13.25
+ },
+ {
+ "x": 49.14,
+ "y": 11.77
+ },
+ {
+ "x": 52.12,
+ "y": 13.42
+ },
+ {
+ "x": 53.59,
+ "y": 12.57
+ },
+ {
+ "x": 55.04,
+ "y": 12.49
+ },
+ {
+ "x": 54.54,
+ "y": 12.83
+ },
+ {
+ "x": 54.54,
+ "y": 14.98
+ },
+ {
+ "x": 52.28,
+ "y": 16.63
+ },
+ {
+ "x": 53.25,
+ "y": 17.69
+ },
+ {
+ "x": 55.33,
+ "y": 17.03
+ },
+ {
+ "x": 55.82,
+ "y": 17.92
+ },
+ {
+ "x": 56.47,
+ "y": 17.72
+ },
+ {
+ "x": 57.37,
+ "y": 18.4
+ },
+ {
+ "x": 57.81,
+ "y": 16.8
+ },
+ {
+ "x": 59.04,
+ "y": 15.34
+ },
+ {
+ "x": 61.92,
+ "y": 14.86
+ },
+ {
+ "x": 62.11,
+ "y": 16.04
+ },
+ {
+ "x": 62.07,
+ "y": 15
+ },
+ {
+ "x": 63.75,
+ "y": 13.5
+ },
+ {
+ "x": 65.13,
+ "y": 11.22
+ },
+ {
+ "x": 65.55,
+ "y": 11.67
+ },
+ {
+ "x": 67.93,
+ "y": 11.9
+ },
+ {
+ "x": 64.44,
+ "y": 12.47
+ },
+ {
+ "x": 63.94,
+ "y": 13.93
+ },
+ {
+ "x": 64.59,
+ "y": 14.1
+ },
+ {
+ "x": 64.24,
+ "y": 13.93
+ },
+ {
+ "x": 64.73,
+ "y": 13.16
+ },
+ {
+ "x": 66.28,
+ "y": 12.14
+ },
+ {
+ "x": 66.22,
+ "y": 12.66
+ },
+ {
+ "x": 66.96,
+ "y": 12.41
+ },
+ {
+ "x": 67.21,
+ "y": 12.86
+ },
+ {
+ "x": 68.74,
+ "y": 11.89
+ },
+ {
+ "x": 69.33,
+ "y": 13.8
+ },
+ {
+ "x": 70.58,
+ "y": 14.36
+ },
+ {
+ "x": 70.82,
+ "y": 15.2
+ },
+ {
+ "x": 71.41,
+ "y": 15.11
+ },
+ {
+ "x": 71.85,
+ "y": 16.04
+ },
+ {
+ "x": 73.64,
+ "y": 15.11
+ },
+ {
+ "x": 74.33,
+ "y": 15.96
+ },
+ {
+ "x": 73.88,
+ "y": 16.8
+ },
+ {
+ "x": 75.05,
+ "y": 18.06
+ },
+ {
+ "x": 74.4,
+ "y": 19.05
+ },
+ {
+ "x": 75.99,
+ "y": 20.24
+ },
+ {
+ "x": 77.62,
+ "y": 20.29
+ },
+ {
+ "x": 77.25,
+ "y": 20.82
+ },
+ {
+ "x": 77.62,
+ "y": 20.92
+ },
+ {
+ "x": 78.9,
+ "y": 26.35
+ },
+ {
+ "x": 78.19,
+ "y": 28.8
+ },
+ {
+ "x": 76.76,
+ "y": 29.86
+ },
+ {
+ "x": 76.61,
+ "y": 31.17
+ },
+ {
+ "x": 80.37,
+ "y": 34.43
+ },
+ {
+ "x": 79.65,
+ "y": 36.74
+ },
+ {
+ "x": 79.93,
+ "y": 37.82
+ },
+ {
+ "x": 80.86,
+ "y": 38.47
+ },
+ {
+ "x": 80.67,
+ "y": 39.82
+ },
+ {
+ "x": 81.21,
+ "y": 40.34
+ },
+ {
+ "x": 79.94,
+ "y": 43.53
+ },
+ {
+ "x": 81,
+ "y": 45.23
+ },
+ {
+ "x": 80.84,
+ "y": 46.72
+ },
+ {
+ "x": 82.61,
+ "y": 47.82
+ },
+ {
+ "x": 83.09,
+ "y": 50.11
+ },
+ {
+ "x": 82.29,
+ "y": 52.92
+ },
+ {
+ "x": 81.04,
+ "y": 55
+ },
+ {
+ "x": 80.14,
+ "y": 54.6
+ },
+ {
+ "x": 80.26,
+ "y": 53.74
+ },
+ {
+ "x": 79.69,
+ "y": 53.84
+ },
+ {
+ "x": 79.86,
+ "y": 53.12
+ },
+ {
+ "x": 79.2,
+ "y": 52.41
+ },
+ {
+ "x": 77.79,
+ "y": 52.41
+ },
+ {
+ "x": 77.44,
+ "y": 53.04
+ },
+ {
+ "x": 78.47,
+ "y": 53.74
+ },
+ {
+ "x": 78.22,
+ "y": 54.21
+ },
+ {
+ "x": 75.42,
+ "y": 55.1
+ },
+ {
+ "x": 74.52,
+ "y": 56
+ },
+ {
+ "x": 72.51,
+ "y": 56.19
+ },
+ {
+ "x": 71.73,
+ "y": 57.44
+ },
+ {
+ "x": 71.16,
+ "y": 57.08
+ },
+ {
+ "x": 70.7,
+ "y": 57.68
+ },
+ {
+ "x": 70.17,
+ "y": 57.61
+ },
+ {
+ "x": 69.65,
+ "y": 58.57
+ },
+ {
+ "x": 68.57,
+ "y": 58.62
+ },
+ {
+ "x": 68.16,
+ "y": 59.63
+ },
+ {
+ "x": 67.18,
+ "y": 59.19
+ },
+ {
+ "x": 64.96,
+ "y": 59.8
+ },
+ {
+ "x": 63.71,
+ "y": 61.27
+ },
+ {
+ "x": 63.45,
+ "y": 62.38
+ },
+ {
+ "x": 63.01,
+ "y": 61.3
+ },
+ {
+ "x": 61.83,
+ "y": 60.63
+ },
+ {
+ "x": 63.06,
+ "y": 63.68
+ },
+ {
+ "x": 64.54,
+ "y": 64.4
+ },
+ {
+ "x": 65.06,
+ "y": 65.25
+ },
+ {
+ "x": 64.05,
+ "y": 67.06
+ },
+ {
+ "x": 64.86,
+ "y": 67.88
+ },
+ {
+ "x": 65.92,
+ "y": 70.55
+ },
+ {
+ "x": 66.89,
+ "y": 71.63
+ },
+ {
+ "x": 68.5,
+ "y": 72.04
+ },
+ {
+ "x": 69.79,
+ "y": 74
+ },
+ {
+ "x": 70.66,
+ "y": 74.27
+ },
+ {
+ "x": 71.81,
+ "y": 75.9
+ },
+ {
+ "x": 72.89,
+ "y": 75.89
+ },
+ {
+ "x": 74.24,
+ "y": 77.72
+ },
+ {
+ "x": 74.39,
+ "y": 77.86
+ }
+ ],
+ [
+ {
+ "x": 73.54,
+ "y": 12.41
+ },
+ {
+ "x": 74.03,
+ "y": 12.99
+ },
+ {
+ "x": 73.72,
+ "y": 13.82
+ },
+ {
+ "x": 73.2,
+ "y": 13.59
+ },
+ {
+ "x": 73.64,
+ "y": 13.16
+ },
+ {
+ "x": 72.95,
+ "y": 13.33
+ },
+ {
+ "x": 73.29,
+ "y": 12.89
+ },
+ {
+ "x": 71.98,
+ "y": 13.08
+ },
+ {
+ "x": 71.09,
+ "y": 13.85
+ },
+ {
+ "x": 71.44,
+ "y": 14.44
+ },
+ {
+ "x": 70.75,
+ "y": 14.15
+ },
+ {
+ "x": 70.92,
+ "y": 13.75
+ },
+ {
+ "x": 70.43,
+ "y": 14.09
+ },
+ {
+ "x": 69.58,
+ "y": 13.67
+ },
+ {
+ "x": 69.57,
+ "y": 12.59
+ },
+ {
+ "x": 70.42,
+ "y": 12.49
+ },
+ {
+ "x": 69.63,
+ "y": 11.98
+ },
+ {
+ "x": 70.47,
+ "y": 11.29
+ },
+ {
+ "x": 69.53,
+ "y": 10.54
+ },
+ {
+ "x": 70.37,
+ "y": 10.4
+ },
+ {
+ "x": 70.65,
+ "y": 10.83
+ },
+ {
+ "x": 71.16,
+ "y": 10.01
+ },
+ {
+ "x": 71.02,
+ "y": 10.78
+ },
+ {
+ "x": 71.22,
+ "y": 10.27
+ },
+ {
+ "x": 71.61,
+ "y": 11.16
+ },
+ {
+ "x": 72.26,
+ "y": 10.87
+ },
+ {
+ "x": 72.26,
+ "y": 10.19
+ },
+ {
+ "x": 71.68,
+ "y": 10.36
+ },
+ {
+ "x": 71.16,
+ "y": 9.67
+ },
+ {
+ "x": 70.33,
+ "y": 10.27
+ },
+ {
+ "x": 70.62,
+ "y": 9.3
+ },
+ {
+ "x": 70.16,
+ "y": 9.16
+ },
+ {
+ "x": 71.52,
+ "y": 8.72
+ },
+ {
+ "x": 71.56,
+ "y": 10.01
+ },
+ {
+ "x": 73.12,
+ "y": 10
+ },
+ {
+ "x": 73.39,
+ "y": 10.57
+ },
+ {
+ "x": 72.65,
+ "y": 11.42
+ },
+ {
+ "x": 73.39,
+ "y": 12.3
+ },
+ {
+ "x": 73.54,
+ "y": 12.41
+ }
+ ],
+ [
+ {
+ "x": 77.23,
+ "y": 18
+ },
+ {
+ "x": 77.17,
+ "y": 18.74
+ },
+ {
+ "x": 74.56,
+ "y": 19.08
+ },
+ {
+ "x": 75.22,
+ "y": 18.48
+ },
+ {
+ "x": 75.03,
+ "y": 17.3
+ },
+ {
+ "x": 75.52,
+ "y": 17.38
+ },
+ {
+ "x": 75.42,
+ "y": 17.97
+ },
+ {
+ "x": 76.06,
+ "y": 17.97
+ },
+ {
+ "x": 76.09,
+ "y": 17.19
+ },
+ {
+ "x": 75.33,
+ "y": 16.43
+ },
+ {
+ "x": 74.93,
+ "y": 17.12
+ },
+ {
+ "x": 74.73,
+ "y": 16.63
+ },
+ {
+ "x": 74.09,
+ "y": 16.97
+ },
+ {
+ "x": 74.38,
+ "y": 16
+ },
+ {
+ "x": 74,
+ "y": 15.22
+ },
+ {
+ "x": 74.38,
+ "y": 15.11
+ },
+ {
+ "x": 77.23,
+ "y": 18
}
]
]
diff --git a/frontend/data/outlines/india.json b/frontend/data/outlines/india.json
index a5cacc3..c468336 100644
--- a/frontend/data/outlines/india.json
+++ b/frontend/data/outlines/india.json
@@ -9,311 +9,1351 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
+ "geoBounds": {
"minLon": 68.14340254000007,
"maxLon": 97.36225305200003,
- "minLat": 6.74555084800005,
+ "minLat": 8.075995184000078,
"maxLat": 35.49540557900012
},
+ "projectedBounds": {
+ "minX": 1.189327,
+ "maxX": 1.699292,
+ "minY": 0.141422,
+ "maxY": 0.663424
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 168.5816,
+ "xOffset": 7.01463,
+ "yOffset": 6
+ },
"rings": [
[
{
- "x": 33.05,
- "y": 0
+ "x": 35.43,
+ "y": 6
},
{
- "x": 39.26,
- "y": 9.5
+ "x": 36.15,
+ "y": 6.01
},
{
- "x": 35.05,
- "y": 10.25
+ "x": 36.02,
+ "y": 6.82
},
{
- "x": 36.28,
- "y": 14.56
+ "x": 36.89,
+ "y": 9.13
},
{
- "x": 44.01,
- "y": 18.37
+ "x": 38.81,
+ "y": 10.11
},
{
- "x": 40.7,
- "y": 23.16
+ "x": 38.89,
+ "y": 10.58
+ },
+ {
+ "x": 38.16,
+ "y": 11.07
+ },
+ {
+ "x": 38.37,
+ "y": 13.14
+ },
+ {
+ "x": 39.18,
+ "y": 13.84
+ },
+ {
+ "x": 40.3,
+ "y": 14
+ },
+ {
+ "x": 39.94,
+ "y": 14.9
+ },
+ {
+ "x": 40.76,
+ "y": 15.71
+ },
+ {
+ "x": 40.26,
+ "y": 16.51
+ },
+ {
+ "x": 39.9,
+ "y": 16.31
+ },
+ {
+ "x": 38.79,
+ "y": 17.17
+ },
+ {
+ "x": 38.11,
+ "y": 16.15
+ },
+ {
+ "x": 37.15,
+ "y": 16.47
+ },
+ {
+ "x": 37.36,
+ "y": 17.57
+ },
+ {
+ "x": 38.21,
+ "y": 18.5
+ },
+ {
+ "x": 38.21,
+ "y": 20.76
+ },
+ {
+ "x": 38.73,
+ "y": 20.9
+ },
+ {
+ "x": 39.34,
+ "y": 20.31
+ },
+ {
+ "x": 40.14,
+ "y": 21.74
+ },
+ {
+ "x": 41.46,
+ "y": 21.98
+ },
+ {
+ "x": 42.56,
+ "y": 22.73
+ },
+ {
+ "x": 42.43,
+ "y": 23.33
+ },
+ {
+ "x": 44.77,
+ "y": 24.37
+ },
+ {
+ "x": 42.99,
+ "y": 26.06
+ },
+ {
+ "x": 42.01,
+ "y": 29.17
+ },
+ {
+ "x": 45.34,
+ "y": 30.76
+ },
+ {
+ "x": 45.71,
+ "y": 31.54
+ },
+ {
+ "x": 47.36,
+ "y": 32.46
+ },
+ {
+ "x": 47.87,
+ "y": 32.26
+ },
+ {
+ "x": 48.97,
+ "y": 33.04
+ },
+ {
+ "x": 49.78,
+ "y": 32.98
},
{
"x": 50,
- "y": 27.83
+ "y": 33.65
},
{
- "x": 67.98,
- "y": 31.74
+ "x": 51.56,
+ "y": 34.19
},
{
- "x": 70.05,
- "y": 25.7
+ "x": 51.87,
+ "y": 33.73
},
{
- "x": 71.71,
- "y": 30.17
+ "x": 53.24,
+ "y": 34.14
},
{
- "x": 81.23,
- "y": 30.23
+ "x": 53.96,
+ "y": 33.57
},
{
- "x": 80.16,
- "y": 26.59
+ "x": 55.45,
+ "y": 34.26
},
{
- "x": 83.62,
- "y": 26.6
+ "x": 55.52,
+ "y": 35.16
},
{
- "x": 90.65,
- "y": 21.48
+ "x": 57.19,
+ "y": 36.08
},
{
- "x": 96.54,
- "y": 21.64
+ "x": 58.37,
+ "y": 35.76
},
{
- "x": 96.37,
- "y": 24.61
+ "x": 59.05,
+ "y": 36.71
},
{
- "x": 100,
- "y": 26.09
+ "x": 60.39,
+ "y": 36.56
},
{
- "x": 99.17,
- "y": 29.25
+ "x": 61.65,
+ "y": 37.21
},
{
- "x": 92.34,
- "y": 30.9
- },
- {
- "x": 88.94,
- "y": 40.48
- },
- {
- "x": 86.13,
- "y": 39.76
- },
- {
- "x": 84.65,
- "y": 47.09
- },
- {
- "x": 82.54,
- "y": 41.01
- },
- {
- "x": 80.23,
- "y": 43.66
- },
- {
- "x": 78.69,
- "y": 41.27
- },
- {
- "x": 83.22,
+ "x": 62.62,
"y": 36.67
},
{
- "x": 74.18,
- "y": 35.51
+ "x": 63.42,
+ "y": 37.44
},
{
- "x": 73.62,
- "y": 32.25
+ "x": 65.57,
+ "y": 37.24
},
{
- "x": 69.23,
- "y": 30.9
+ "x": 65.94,
+ "y": 36.13
},
{
- "x": 68.26,
- "y": 33.62
+ "x": 65.35,
+ "y": 34.94
},
{
- "x": 71.33,
- "y": 35.51
+ "x": 65.73,
+ "y": 32.21
},
{
- "x": 68.03,
- "y": 37.74
+ "x": 67.19,
+ "y": 31.61
},
{
- "x": 70.48,
- "y": 38.99
+ "x": 67.95,
+ "y": 32.44
},
{
- "x": 71.66,
- "y": 48.27
+ "x": 67.62,
+ "y": 33.52
},
{
- "x": 70.22,
+ "x": 68.06,
+ "y": 34.24
+ },
+ {
+ "x": 67.59,
+ "y": 34.79
+ },
+ {
+ "x": 68.67,
+ "y": 35.87
+ },
+ {
+ "x": 70.79,
+ "y": 36.29
+ },
+ {
+ "x": 72.35,
+ "y": 35.63
+ },
+ {
+ "x": 73.43,
+ "y": 36.05
+ },
+ {
+ "x": 77.31,
+ "y": 35.76
+ },
+ {
+ "x": 77.28,
+ "y": 33.81
+ },
+ {
+ "x": 76.2,
+ "y": 33.7
+ },
+ {
+ "x": 75.93,
+ "y": 32.46
+ },
+ {
+ "x": 77.07,
+ "y": 32.88
+ },
+ {
+ "x": 78.9,
+ "y": 32.47
+ },
+ {
+ "x": 79.37,
+ "y": 32.01
+ },
+ {
+ "x": 79.2,
+ "y": 31.52
+ },
+ {
+ "x": 80.76,
+ "y": 30.83
+ },
+ {
+ "x": 81.08,
+ "y": 29.95
+ },
+ {
+ "x": 82.88,
+ "y": 29.68
+ },
+ {
+ "x": 84.86,
+ "y": 27.55
+ },
+ {
+ "x": 87.12,
+ "y": 28.5
+ },
+ {
+ "x": 88.23,
+ "y": 27.47
+ },
+ {
+ "x": 90.01,
+ "y": 27.7
+ },
+ {
+ "x": 89.55,
+ "y": 28.82
+ },
+ {
+ "x": 90.32,
+ "y": 28.64
+ },
+ {
+ "x": 90.74,
+ "y": 29.59
+ },
+ {
+ "x": 89.87,
+ "y": 30.56
+ },
+ {
+ "x": 92.26,
+ "y": 30.74
+ },
+ {
+ "x": 92.99,
+ "y": 31.98
+ },
+ {
+ "x": 91.51,
+ "y": 33.3
+ },
+ {
+ "x": 92.27,
+ "y": 35
+ },
+ {
+ "x": 91.05,
+ "y": 34.09
+ },
+ {
+ "x": 89.4,
+ "y": 34.43
+ },
+ {
+ "x": 86.4,
+ "y": 36.56
+ },
+ {
+ "x": 86.48,
+ "y": 38.41
+ },
+ {
+ "x": 84.88,
+ "y": 40.55
+ },
+ {
+ "x": 84.72,
+ "y": 41.17
+ },
+ {
+ "x": 85.18,
+ "y": 41.75
+ },
+ {
+ "x": 83.48,
+ "y": 45.53
+ },
+ {
+ "x": 81.06,
+ "y": 44.86
+ },
+ {
+ "x": 81.25,
+ "y": 47.86
+ },
+ {
+ "x": 80.56,
+ "y": 48.17
+ },
+ {
+ "x": 80.66,
+ "y": 50.63
+ },
+ {
+ "x": 79.79,
+ "y": 51.59
+ },
+ {
+ "x": 79.22,
+ "y": 50.97
+ },
+ {
+ "x": 78.9,
+ "y": 51.53
+ },
+ {
+ "x": 77.97,
+ "y": 46.01
+ },
+ {
+ "x": 76.98,
+ "y": 45.96
+ },
+ {
+ "x": 76.61,
+ "y": 47.99
+ },
+ {
+ "x": 75.99,
+ "y": 48.45
+ },
+ {
+ "x": 75.43,
+ "y": 47.43
+ },
+ {
+ "x": 75.19,
+ "y": 47.95
+ },
+ {
+ "x": 74.67,
+ "y": 46.26
+ },
+ {
+ "x": 75.33,
+ "y": 44.74
+ },
+ {
+ "x": 76.85,
+ "y": 44.56
+ },
+ {
+ "x": 76.91,
+ "y": 43.98
+ },
+ {
+ "x": 77.52,
+ "y": 43.76
+ },
+ {
+ "x": 77.86,
+ "y": 42.18
+ },
+ {
+ "x": 78.33,
+ "y": 42.36
+ },
+ {
+ "x": 78.56,
+ "y": 41.98
+ },
+ {
+ "x": 77.31,
+ "y": 41.24
+ },
+ {
+ "x": 72.5,
+ "y": 41.35
+ },
+ {
+ "x": 70.79,
+ "y": 40.91
+ },
+ {
+ "x": 70.82,
+ "y": 38.64
+ },
+ {
+ "x": 70.3,
+ "y": 37.84
+ },
+ {
+ "x": 69.97,
+ "y": 38.7
+ },
+ {
+ "x": 69.37,
+ "y": 38.58
+ },
+ {
+ "x": 68.54,
+ "y": 37.34
+ },
+ {
+ "x": 68.06,
+ "y": 37.31
+ },
+ {
+ "x": 68.44,
+ "y": 37.8
+ },
+ {
+ "x": 67.39,
+ "y": 37.71
+ },
+ {
+ "x": 66.53,
+ "y": 36.56
+ },
+ {
+ "x": 66.37,
+ "y": 37.05
+ },
+ {
+ "x": 66.9,
+ "y": 37.42
+ },
+ {
+ "x": 65.92,
+ "y": 38.11
+ },
+ {
+ "x": 65.7,
+ "y": 39.12
+ },
+ {
+ "x": 68.34,
+ "y": 40.91
+ },
+ {
+ "x": 68.16,
+ "y": 41.29
+ },
+ {
+ "x": 66.74,
+ "y": 41.22
+ },
+ {
+ "x": 66.39,
+ "y": 42.24
+ },
+ {
+ "x": 65.78,
+ "y": 42.1
+ },
+ {
+ "x": 65.5,
+ "y": 42.98
+ },
+ {
+ "x": 67.61,
+ "y": 44.14
+ },
+ {
+ "x": 67.03,
"y": 46.23
},
{
- "x": 68.81,
- "y": 48.48
+ "x": 67.7,
+ "y": 46.71
},
{
- "x": 67.64,
+ "x": 67.49,
+ "y": 47.47
+ },
+ {
+ "x": 68.26,
+ "y": 47.63
+ },
+ {
+ "x": 67.91,
+ "y": 48.35
+ },
+ {
+ "x": 68.61,
+ "y": 50.98
+ },
+ {
+ "x": 68.56,
+ "y": 51.65
+ },
+ {
+ "x": 68.1,
+ "y": 51.56
+ },
+ {
+ "x": 68.62,
+ "y": 52.67
+ },
+ {
+ "x": 67.97,
+ "y": 52.2
+ },
+ {
+ "x": 67.52,
+ "y": 52.79
+ },
+ {
+ "x": 67.38,
+ "y": 50.81
+ },
+ {
+ "x": 67.12,
+ "y": 52.86
+ },
+ {
+ "x": 66.9,
+ "y": 51.61
+ },
+ {
+ "x": 66.82,
+ "y": 52.59
+ },
+ {
+ "x": 66.41,
+ "y": 52.35
+ },
+ {
+ "x": 66.35,
+ "y": 52.69
+ },
+ {
+ "x": 66.21,
+ "y": 52.1
+ },
+ {
+ "x": 66.17,
+ "y": 52.86
+ },
+ {
+ "x": 66.04,
+ "y": 50.98
+ },
+ {
+ "x": 65.16,
+ "y": 50.11
+ },
+ {
+ "x": 65.92,
+ "y": 51.17
+ },
+ {
+ "x": 64.95,
+ "y": 52.32
+ },
+ {
+ "x": 62.25,
+ "y": 53.59
+ },
+ {
+ "x": 62.14,
+ "y": 55.31
+ },
+ {
+ "x": 62.62,
+ "y": 55.57
+ },
+ {
+ "x": 60.81,
+ "y": 57.76
+ },
+ {
+ "x": 60,
+ "y": 57.31
+ },
+ {
+ "x": 60.65,
+ "y": 57.87
+ },
+ {
+ "x": 58.03,
+ "y": 58.81
+ },
+ {
+ "x": 58.29,
+ "y": 58.15
+ },
+ {
+ "x": 57.4,
+ "y": 58.45
+ },
+ {
+ "x": 56.98,
+ "y": 59.39
+ },
+ {
+ "x": 57.34,
+ "y": 58.84
+ },
+ {
+ "x": 58.31,
+ "y": 58.73
+ },
+ {
+ "x": 55.84,
+ "y": 60.42
+ },
+ {
+ "x": 53.9,
+ "y": 63.15
+ },
+ {
+ "x": 48.87,
+ "y": 66.73
+ },
+ {
+ "x": 48.69,
+ "y": 68.36
+ },
+ {
+ "x": 47.09,
+ "y": 69.15
+ },
+ {
+ "x": 45.78,
+ "y": 69.01
+ },
+ {
+ "x": 44.88,
+ "y": 70.82
+ },
+ {
+ "x": 44.54,
+ "y": 70.05
+ },
+ {
+ "x": 44.28,
+ "y": 71.01
+ },
+ {
+ "x": 43.87,
+ "y": 70.42
+ },
+ {
+ "x": 42.72,
+ "y": 71.06
+ },
+ {
+ "x": 42.06,
+ "y": 72.91
+ },
+ {
+ "x": 42.48,
+ "y": 74.54
+ },
+ {
+ "x": 42.04,
+ "y": 75.61
+ },
+ {
+ "x": 42.82,
+ "y": 77.93
+ },
+ {
+ "x": 42.32,
+ "y": 77.05
+ },
+ {
+ "x": 42.06,
+ "y": 77.39
+ },
+ {
+ "x": 42.86,
+ "y": 77.96
+ },
+ {
+ "x": 42.88,
+ "y": 78.66
+ },
+ {
+ "x": 41.27,
+ "y": 82.97
+ },
+ {
+ "x": 41.37,
+ "y": 84.13
+ },
+ {
+ "x": 40.95,
+ "y": 84.39
+ },
+ {
+ "x": 41.41,
+ "y": 84.25
+ },
+ {
+ "x": 41.48,
+ "y": 87.39
+ },
+ {
+ "x": 39.8,
+ "y": 87.51
+ },
+ {
+ "x": 38.7,
+ "y": 89.84
+ },
+ {
+ "x": 40.29,
+ "y": 90.78
+ },
+ {
+ "x": 38.93,
+ "y": 90.42
+ },
+ {
+ "x": 37.23,
+ "y": 90.95
+ },
+ {
+ "x": 36.55,
+ "y": 91.62
+ },
+ {
+ "x": 36.2,
+ "y": 93.12
+ },
+ {
+ "x": 34.58,
+ "y": 94
+ },
+ {
+ "x": 32.96,
+ "y": 93.02
+ },
+ {
+ "x": 31.73,
+ "y": 91.51
+ },
+ {
+ "x": 32.1,
+ "y": 91.23
+ },
+ {
+ "x": 31.68,
+ "y": 91.41
+ },
+ {
+ "x": 30.87,
+ "y": 88.38
+ },
+ {
+ "x": 31.18,
+ "y": 89.7
+ },
+ {
+ "x": 31.61,
+ "y": 89.66
+ },
+ {
+ "x": 30.84,
+ "y": 87.55
+ },
+ {
+ "x": 26.68,
+ "y": 79.79
+ },
+ {
+ "x": 27.02,
+ "y": 79.63
+ },
+ {
+ "x": 26.65,
+ "y": 79.68
+ },
+ {
+ "x": 26.41,
+ "y": 77.28
+ },
+ {
+ "x": 25.51,
+ "y": 74.79
+ },
+ {
+ "x": 24.53,
+ "y": 73.82
+ },
+ {
+ "x": 24.94,
+ "y": 73.57
+ },
+ {
+ "x": 23.99,
+ "y": 72.95
+ },
+ {
+ "x": 23.61,
+ "y": 71.95
+ },
+ {
+ "x": 24.15,
+ "y": 72.05
+ },
+ {
+ "x": 23.47,
+ "y": 71.45
+ },
+ {
+ "x": 23.77,
+ "y": 71.18
+ },
+ {
+ "x": 23.42,
+ "y": 71.28
+ },
+ {
+ "x": 22.62,
+ "y": 69.93
+ },
+ {
+ "x": 21.89,
+ "y": 65.26
+ },
+ {
+ "x": 21.09,
+ "y": 63.29
+ },
+ {
+ "x": 21.51,
+ "y": 63.14
+ },
+ {
+ "x": 20.98,
+ "y": 62.66
+ },
+ {
+ "x": 21.35,
+ "y": 62.53
+ },
+ {
+ "x": 20.87,
+ "y": 61.76
+ },
+ {
+ "x": 21.09,
+ "y": 61.42
+ },
+ {
+ "x": 21.29,
+ "y": 61.72
+ },
+ {
+ "x": 21.23,
+ "y": 60.38
+ },
+ {
+ "x": 20.63,
+ "y": 61.04
+ },
+ {
+ "x": 20.67,
+ "y": 59.91
+ },
+ {
+ "x": 21.45,
+ "y": 60.21
+ },
+ {
+ "x": 20.61,
+ "y": 59.7
+ },
+ {
+ "x": 20.95,
+ "y": 59.22
+ },
+ {
+ "x": 20.49,
+ "y": 59.21
+ },
+ {
+ "x": 20.27,
+ "y": 58.26
+ },
+ {
+ "x": 21.15,
+ "y": 55.38
+ },
+ {
+ "x": 20.74,
+ "y": 54.21
+ },
+ {
+ "x": 20.17,
+ "y": 54.29
+ },
+ {
+ "x": 20.52,
+ "y": 53.99
+ },
+ {
+ "x": 20.02,
+ "y": 53.4
+ },
+ {
+ "x": 21.69,
+ "y": 52.23
+ },
+ {
+ "x": 19.98,
+ "y": 52.52
+ },
+ {
+ "x": 20.52,
+ "y": 51.48
+ },
+ {
+ "x": 19.84,
+ "y": 51.53
+ },
+ {
+ "x": 20.06,
+ "y": 50.84
+ },
+ {
+ "x": 21.06,
+ "y": 50.6
+ },
+ {
+ "x": 18.8,
+ "y": 50.58
+ },
+ {
+ "x": 19.27,
+ "y": 51.21
+ },
+ {
+ "x": 18.34,
+ "y": 52.05
+ },
+ {
+ "x": 19.24,
+ "y": 52.64
+ },
+ {
+ "x": 18.63,
+ "y": 54.02
+ },
+ {
+ "x": 14.66,
+ "y": 55.51
+ },
+ {
+ "x": 12.64,
+ "y": 54.14
+ },
+ {
+ "x": 9.37,
+ "y": 50.52
+ },
+ {
+ "x": 9.75,
+ "y": 49.93
+ },
+ {
+ "x": 10.16,
+ "y": 50.59
+ },
+ {
+ "x": 13,
+ "y": 49.67
+ },
+ {
+ "x": 13.96,
+ "y": 47.94
+ },
+ {
+ "x": 13.61,
+ "y": 48.47
+ },
+ {
+ "x": 12.86,
+ "y": 48.29
+ },
+ {
+ "x": 11.26,
+ "y": 49.04
+ },
+ {
+ "x": 9.14,
+ "y": 48.21
+ },
+ {
+ "x": 7.84,
+ "y": 46.85
+ },
+ {
+ "x": 7.8,
+ "y": 46.28
+ },
+ {
+ "x": 9.01,
"y": 45.46
},
{
- "x": 62.57,
- "y": 53.9
+ "x": 7.01,
+ "y": 46.31
},
{
- "x": 58.61,
- "y": 54.66
+ "x": 7.4,
+ "y": 46.14
},
{
- "x": 48.48,
- "y": 65.79
+ "x": 7.07,
+ "y": 45.84
},
{
- "x": 41.54,
- "y": 68.85
+ "x": 7.37,
+ "y": 45.27
},
{
- "x": 40.09,
- "y": 87.66
+ "x": 8.72,
+ "y": 45.18
},
{
- "x": 36.86,
- "y": 90.51
+ "x": 8.79,
+ "y": 44
},
{
- "x": 38.71,
- "y": 91.61
+ "x": 12.4,
+ "y": 44.53
},
{
- "x": 35.14,
- "y": 91.81
+ "x": 14.01,
+ "y": 43.69
},
{
- "x": 32.06,
- "y": 95.37
+ "x": 14.7,
+ "y": 44.32
},
{
- "x": 28.75,
- "y": 92.46
+ "x": 15.66,
+ "y": 43.74
},
{
- "x": 18.16,
- "y": 67.61
+ "x": 14.4,
+ "y": 39.64
},
{
- "x": 15.42,
- "y": 54.45
+ "x": 13.21,
+ "y": 39.53
},
{
- "x": 16.34,
- "y": 46
+ "x": 12.67,
+ "y": 38.64
},
{
- "x": 13.71,
- "y": 45.97
+ "x": 12.94,
+ "y": 36.83
},
{
- "x": 13.56,
- "y": 49.71
+ "x": 11.02,
+ "y": 36.16
},
{
- "x": 8.89,
- "y": 51.4
+ "x": 11.11,
+ "y": 34.87
},
{
- "x": 2.74,
- "y": 45.91
+ "x": 13.48,
+ "y": 31.93
},
{
- "x": 8.08,
- "y": 43.1
+ "x": 14.05,
+ "y": 31.91
},
{
- "x": 4.94,
- "y": 44.29
+ "x": 14.92,
+ "y": 32.96
},
{
- "x": 0.98,
- "y": 41.94
+ "x": 17.99,
+ "y": 32.1
},
{
- "x": 2.32,
- "y": 40.41
+ "x": 19.41,
+ "y": 29.4
},
{
- "x": 0,
- "y": 41.33
+ "x": 21.1,
+ "y": 28.46
},
{
- "x": 2.07,
- "y": 38.83
+ "x": 22.39,
+ "y": 25.49
},
{
- "x": 10.03,
- "y": 38.59
+ "x": 24.08,
+ "y": 24.6
},
{
- "x": 4.76,
- "y": 29.11
+ "x": 23.81,
+ "y": 23.97
},
{
- "x": 7.52,
- "y": 26.03
+ "x": 26.19,
+ "y": 21.54
},
{
- "x": 12.77,
- "y": 26.21
+ "x": 25.74,
+ "y": 21.22
},
{
- "x": 24.7,
- "y": 11.25
+ "x": 25.87,
+ "y": 18.97
},
{
- "x": 20.05,
- "y": 8.06
+ "x": 28.25,
+ "y": 17.46
},
{
- "x": 19.77,
- "y": 2.97
+ "x": 27.26,
+ "y": 16.75
},
{
- "x": 26.13,
- "y": 3.45
+ "x": 26.27,
+ "y": 16.73
},
{
- "x": 31.76,
- "y": 0.67
+ "x": 26.26,
+ "y": 15.48
},
{
- "x": 33.05,
- "y": 0
+ "x": 25.22,
+ "y": 15.67
+ },
+ {
+ "x": 25.16,
+ "y": 14.9
+ },
+ {
+ "x": 24.25,
+ "y": 14.26
+ },
+ {
+ "x": 24.71,
+ "y": 13.14
+ },
+ {
+ "x": 24.16,
+ "y": 12.25
+ },
+ {
+ "x": 25.05,
+ "y": 11.49
+ },
+ {
+ "x": 23.93,
+ "y": 11.16
+ },
+ {
+ "x": 24.22,
+ "y": 10.58
+ },
+ {
+ "x": 23.58,
+ "y": 10.04
+ },
+ {
+ "x": 24.01,
+ "y": 9.07
+ },
+ {
+ "x": 25.27,
+ "y": 8.6
+ },
+ {
+ "x": 29.53,
+ "y": 9.55
+ },
+ {
+ "x": 30.2,
+ "y": 8.94
+ },
+ {
+ "x": 32.05,
+ "y": 8.69
+ },
+ {
+ "x": 34.32,
+ "y": 6.69
+ },
+ {
+ "x": 35.43,
+ "y": 6
}
],
[
{
- "x": 85.25,
- "y": 77.26
+ "x": 80.31,
+ "y": 78.4
},
{
- "x": 84.1,
- "y": 83.48
+ "x": 79.79,
+ "y": 79.49
},
{
- "x": 85.19,
- "y": 77.18
+ "x": 80.12,
+ "y": 80.71
},
{
- "x": 85.25,
- "y": 77.26
+ "x": 79.7,
+ "y": 80.97
+ },
+ {
+ "x": 79.32,
+ "y": 83.79
+ },
+ {
+ "x": 78.75,
+ "y": 82.7
+ },
+ {
+ "x": 79.54,
+ "y": 81.65
+ },
+ {
+ "x": 79.38,
+ "y": 79.84
+ },
+ {
+ "x": 80.18,
+ "y": 77.51
+ },
+ {
+ "x": 80.26,
+ "y": 78.33
+ },
+ {
+ "x": 80.31,
+ "y": 78.4
}
]
]
diff --git a/frontend/data/outlines/italy.json b/frontend/data/outlines/italy.json
index ee287b2..48a588e 100644
--- a/frontend/data/outlines/italy.json
+++ b/frontend/data/outlines/italy.json
@@ -9,355 +9,1149 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
+ "geoBounds": {
"minLon": 6.6027283120000675,
"maxLon": 18.517425977000073,
- "minLat": 35.48924388200004,
+ "minLat": 36.65493398600006,
"maxLat": 47.08521494500006
},
+ "projectedBounds": {
+ "minX": 0.115239,
+ "maxX": 0.32319,
+ "minY": 0.688464,
+ "maxY": 0.933814
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 358.671066,
+ "xOffset": 12.70705,
+ "yOffset": 6
+ },
"rings": [
[
{
- "x": 3.52,
- "y": 10
+ "x": 15.33,
+ "y": 16.55
},
{
- "x": 10.42,
- "y": 10.06
+ "x": 16.16,
+ "y": 16.99
},
{
- "x": 15.08,
- "y": 5.46
+ "x": 18.58,
+ "y": 16.02
},
{
- "x": 20.14,
- "y": 10.9
+ "x": 20.4,
+ "y": 16.65
},
{
- "x": 22.49,
- "y": 5.07
+ "x": 22.15,
+ "y": 14.73
},
{
- "x": 29.15,
- "y": 7.46
+ "x": 22,
+ "y": 13.42
},
{
- "x": 28.79,
- "y": 4.76
+ "x": 23.95,
+ "y": 11.79
},
{
- "x": 32.24,
- "y": 4.72
+ "x": 24.2,
+ "y": 13.75
},
{
- "x": 32.32,
- "y": 1.9
+ "x": 25.22,
+ "y": 14.77
},
{
- "x": 46.82,
- "y": 0
+ "x": 26.52,
+ "y": 15.07
},
{
- "x": 48.7,
- "y": 3.41
+ "x": 26.26,
+ "y": 16.03
},
{
- "x": 59.58,
- "y": 4.88
+ "x": 26.91,
+ "y": 16.35
},
{
- "x": 56.76,
- "y": 6.86
+ "x": 27.09,
+ "y": 17.44
},
{
- "x": 60.81,
- "y": 12.94
+ "x": 27.73,
+ "y": 17.49
},
{
- "x": 54.69,
- "y": 11.33
+ "x": 28.11,
+ "y": 16.79
},
{
- "x": 46.6,
- "y": 15.28
+ "x": 27.59,
+ "y": 16.2
},
{
- "x": 49.78,
- "y": 18.24
+ "x": 27.73,
+ "y": 15.52
},
{
- "x": 47.53,
- "y": 19.48
+ "x": 29.12,
+ "y": 13.79
},
{
- "x": 48.39,
- "y": 24.44
+ "x": 29.48,
+ "y": 11.37
},
{
- "x": 58.86,
- "y": 30.4
+ "x": 30.43,
+ "y": 11.37
},
{
- "x": 62.72,
- "y": 38.69
+ "x": 30.48,
+ "y": 12.43
},
{
- "x": 68.3,
- "y": 43.12
+ "x": 31.07,
+ "y": 13.18
},
{
- "x": 80.05,
- "y": 44.54
+ "x": 33.46,
+ "y": 12.52
},
{
- "x": 78.54,
- "y": 48.51
+ "x": 34.45,
+ "y": 13.89
},
{
- "x": 95.72,
- "y": 55.49
+ "x": 34.97,
+ "y": 13.51
},
{
- "x": 99.99,
- "y": 59.9
+ "x": 34.55,
+ "y": 12.9
},
{
- "x": 98.92,
- "y": 62.68
+ "x": 34.86,
+ "y": 12.23
},
{
- "x": 94.51,
- "y": 58.64
+ "x": 34.14,
+ "y": 11.84
},
{
- "x": 87.06,
- "y": 56.85
+ "x": 34.18,
+ "y": 11.05
},
{
- "x": 82.98,
- "y": 63.04
+ "x": 34.52,
+ "y": 10.4
},
{
- "x": 88.6,
- "y": 66.22
+ "x": 35.34,
+ "y": 10.19
},
{
- "x": 88.71,
+ "x": 35.44,
+ "y": 10.67
+ },
+ {
+ "x": 36.75,
+ "y": 11.01
+ },
+ {
+ "x": 36.85,
+ "y": 10.23
+ },
+ {
+ "x": 36.28,
+ "y": 9.78
+ },
+ {
+ "x": 36.81,
+ "y": 8.03
+ },
+ {
+ "x": 40.21,
+ "y": 8.9
+ },
+ {
+ "x": 41.33,
+ "y": 7.11
+ },
+ {
+ "x": 43.19,
+ "y": 6.72
+ },
+ {
+ "x": 44.91,
+ "y": 7.04
+ },
+ {
+ "x": 47.62,
+ "y": 6
+ },
+ {
+ "x": 47.29,
+ "y": 7.62
+ },
+ {
+ "x": 48.16,
+ "y": 7.99
+ },
+ {
+ "x": 48.18,
+ "y": 8.72
+ },
+ {
+ "x": 49.03,
+ "y": 9.62
+ },
+ {
+ "x": 57.14,
+ "y": 11.17
+ },
+ {
+ "x": 56.99,
+ "y": 11.79
+ },
+ {
+ "x": 55.04,
+ "y": 13.25
+ },
+ {
+ "x": 55.32,
+ "y": 14
+ },
+ {
+ "x": 56.74,
+ "y": 14.25
+ },
+ {
+ "x": 55.64,
+ "y": 15.82
+ },
+ {
+ "x": 56.55,
+ "y": 16.01
+ },
+ {
+ "x": 56.3,
+ "y": 17.4
+ },
+ {
+ "x": 57.63,
+ "y": 18.18
+ },
+ {
+ "x": 58.35,
+ "y": 19.17
+ },
+ {
+ "x": 58.06,
+ "y": 19.61
+ },
+ {
+ "x": 57.21,
+ "y": 19.53
+ },
+ {
+ "x": 57.81,
+ "y": 19.34
+ },
+ {
+ "x": 56.35,
+ "y": 17.77
+ },
+ {
+ "x": 55.27,
+ "y": 18.79
+ },
+ {
+ "x": 55.07,
+ "y": 18.17
+ },
+ {
+ "x": 53.5,
+ "y": 17.93
+ },
+ {
+ "x": 53.29,
+ "y": 19.09
+ },
+ {
+ "x": 49.15,
+ "y": 20.92
+ },
+ {
+ "x": 50.14,
+ "y": 19.89
+ },
+ {
+ "x": 48.98,
+ "y": 20.01
+ },
+ {
+ "x": 49.15,
+ "y": 20.38
+ },
+ {
+ "x": 48.43,
+ "y": 20.46
+ },
+ {
+ "x": 47.85,
+ "y": 22
+ },
+ {
+ "x": 47.46,
+ "y": 22.03
+ },
+ {
+ "x": 47.94,
+ "y": 23
+ },
+ {
+ "x": 48.42,
+ "y": 22.76
+ },
+ {
+ "x": 48.35,
+ "y": 24.02
+ },
+ {
+ "x": 48.8,
+ "y": 24.71
+ },
+ {
+ "x": 48.8,
+ "y": 24.23
+ },
+ {
+ "x": 49.84,
+ "y": 25.07
+ },
+ {
+ "x": 49.28,
+ "y": 26.4
+ },
+ {
+ "x": 49.04,
+ "y": 25.77
+ },
+ {
+ "x": 49.1,
+ "y": 26.55
+ },
+ {
+ "x": 48.16,
+ "y": 26.34
+ },
+ {
+ "x": 48.8,
+ "y": 31.4
+ },
+ {
+ "x": 50.82,
+ "y": 33.67
+ },
+ {
+ "x": 56.61,
+ "y": 37.4
+ },
+ {
+ "x": 59.49,
+ "y": 45.64
+ },
+ {
+ "x": 62.52,
+ "y": 48.8
+ },
+ {
+ "x": 63.45,
+ "y": 49.23
+ },
+ {
+ "x": 63.65,
+ "y": 49.99
+ },
+ {
+ "x": 66.31,
+ "y": 51.32
+ },
+ {
+ "x": 72.41,
+ "y": 51.38
+ },
+ {
+ "x": 72.69,
+ "y": 52.56
+ },
+ {
+ "x": 70.91,
+ "y": 53.94
+ },
+ {
+ "x": 71.29,
+ "y": 55.24
+ },
+ {
+ "x": 78.15,
+ "y": 58.39
+ },
+ {
+ "x": 80.77,
+ "y": 60.47
+ },
+ {
+ "x": 84.1,
+ "y": 61.96
+ },
+ {
+ "x": 84.29,
+ "y": 62.73
+ },
+ {
+ "x": 85.55,
+ "y": 63.55
+ },
+ {
+ "x": 87.28,
+ "y": 66.16
+ },
+ {
+ "x": 86.39,
+ "y": 68.93
+ },
+ {
+ "x": 84.5,
+ "y": 68.02
+ },
+ {
+ "x": 83.2,
+ "y": 64.96
+ },
+ {
+ "x": 81,
+ "y": 64.81
+ },
+ {
+ "x": 79.13,
+ "y": 63.97
+ },
+ {
+ "x": 79.22,
+ "y": 63.41
+ },
+ {
+ "x": 79.82,
+ "y": 63.21
+ },
+ {
+ "x": 77.64,
+ "y": 63.26
+ },
+ {
+ "x": 75.32,
+ "y": 66.61
+ },
+ {
+ "x": 75.49,
+ "y": 67.57
+ },
+ {
+ "x": 74.6,
+ "y": 69.13
+ },
+ {
+ "x": 74.95,
"y": 70.06
},
{
- "x": 83.79,
- "y": 71.47
+ "x": 76.43,
+ "y": 70.46
},
{
- "x": 79.52,
- "y": 78.87
+ "x": 78.79,
+ "y": 72.13
},
{
- "x": 76.22,
- "y": 78.75
+ "x": 78.51,
+ "y": 73.24
},
{
- "x": 77.5,
- "y": 72.75
+ "x": 78.87,
+ "y": 75.73
},
{
- "x": 80.72,
- "y": 70.59
+ "x": 78.45,
+ "y": 76.22
},
{
- "x": 75.72,
- "y": 60.43
+ "x": 76.78,
+ "y": 76.07
},
{
- "x": 72.67,
- "y": 60.85
+ "x": 75.2,
+ "y": 77.04
},
{
- "x": 68.65,
- "y": 55.32
+ "x": 75.1,
+ "y": 79.99
},
{
- "x": 64.96,
- "y": 56.18
+ "x": 72.59,
+ "y": 82.27
},
{
- "x": 65.95,
- "y": 54.68
+ "x": 72.02,
+ "y": 83.89
},
{
- "x": 62.49,
- "y": 54.29
+ "x": 69.56,
+ "y": 83.78
},
{
- "x": 59.75,
- "y": 50.3
+ "x": 69.24,
+ "y": 81.66
},
{
- "x": 54.07,
- "y": 50.51
+ "x": 70.36,
+ "y": 81.02
},
{
- "x": 42.43,
- "y": 41.44
+ "x": 71.02,
+ "y": 79.29
},
{
- "x": 37.8,
- "y": 40.48
+ "x": 70.51,
+ "y": 78.23
},
{
- "x": 32.71,
- "y": 35.74
+ "x": 72.49,
+ "y": 77.57
},
{
- "x": 29.27,
- "y": 26.39
+ "x": 72.92,
+ "y": 76.57
},
{
- "x": 18.13,
- "y": 22.88
+ "x": 72.05,
+ "y": 74.8
},
{
- "x": 7.55,
- "y": 28.4
+ "x": 71.51,
+ "y": 71.87
},
{
- "x": 8.84,
- "y": 25.09
+ "x": 70.7,
+ "y": 70.85
},
{
- "x": 3.11,
- "y": 24.45
+ "x": 70.12,
+ "y": 68.19
},
{
- "x": 3.38,
- "y": 19.47
+ "x": 69.18,
+ "y": 66.66
},
{
- "x": 0,
- "y": 17.09
+ "x": 67.84,
+ "y": 67.35
},
{
- "x": 4.24,
- "y": 15.75
+ "x": 66.91,
+ "y": 67.06
},
{
- "x": 1.5,
- "y": 11.28
+ "x": 66.07,
+ "y": 65.91
},
{
- "x": 3.4,
- "y": 10.04
+ "x": 64.72,
+ "y": 65.32
},
{
- "x": 3.52,
- "y": 10
+ "x": 65.26,
+ "y": 64.04
+ },
+ {
+ "x": 63.91,
+ "y": 61.8
+ },
+ {
+ "x": 61.16,
+ "y": 62.62
+ },
+ {
+ "x": 61.9,
+ "y": 61.18
+ },
+ {
+ "x": 60.86,
+ "y": 60.4
+ },
+ {
+ "x": 59.31,
+ "y": 60.81
+ },
+ {
+ "x": 59.15,
+ "y": 59.71
+ },
+ {
+ "x": 57.27,
+ "y": 56.97
+ },
+ {
+ "x": 56.16,
+ "y": 57.35
+ },
+ {
+ "x": 54.54,
+ "y": 56.61
+ },
+ {
+ "x": 53.03,
+ "y": 57.18
+ },
+ {
+ "x": 52.09,
+ "y": 55.74
+ },
+ {
+ "x": 50.47,
+ "y": 55.34
+ },
+ {
+ "x": 47.99,
+ "y": 52.92
+ },
+ {
+ "x": 46.62,
+ "y": 50.77
+ },
+ {
+ "x": 45.41,
+ "y": 50.42
+ },
+ {
+ "x": 44.35,
+ "y": 48.35
+ },
+ {
+ "x": 42.59,
+ "y": 47.27
+ },
+ {
+ "x": 40.9,
+ "y": 47.4
+ },
+ {
+ "x": 41.41,
+ "y": 46.65
+ },
+ {
+ "x": 41.23,
+ "y": 45.93
+ },
+ {
+ "x": 39.88,
+ "y": 44.41
+ },
+ {
+ "x": 38.55,
+ "y": 43.89
+ },
+ {
+ "x": 38.75,
+ "y": 42.92
+ },
+ {
+ "x": 37.1,
+ "y": 42.73
+ },
+ {
+ "x": 37.28,
+ "y": 40.1
+ },
+ {
+ "x": 35.96,
+ "y": 37.98
+ },
+ {
+ "x": 35.55,
+ "y": 34.92
+ },
+ {
+ "x": 34.54,
+ "y": 33.37
+ },
+ {
+ "x": 33,
+ "y": 32.64
+ },
+ {
+ "x": 32.92,
+ "y": 33.22
+ },
+ {
+ "x": 29.16,
+ "y": 30.5
+ },
+ {
+ "x": 29.03,
+ "y": 30.92
+ },
+ {
+ "x": 28.35,
+ "y": 30.32
+ },
+ {
+ "x": 26.23,
+ "y": 29.81
+ },
+ {
+ "x": 24.37,
+ "y": 30.93
+ },
+ {
+ "x": 21.88,
+ "y": 34.48
+ },
+ {
+ "x": 19.8,
+ "y": 35.34
+ },
+ {
+ "x": 18.34,
+ "y": 35.39
+ },
+ {
+ "x": 18.19,
+ "y": 34.75
+ },
+ {
+ "x": 19.51,
+ "y": 33
+ },
+ {
+ "x": 19.3,
+ "y": 32.05
+ },
+ {
+ "x": 17.33,
+ "y": 32.51
+ },
+ {
+ "x": 15.03,
+ "y": 31.41
+ },
+ {
+ "x": 14.17,
+ "y": 28.92
+ },
+ {
+ "x": 14.94,
+ "y": 27.61
+ },
+ {
+ "x": 15.54,
+ "y": 27.59
+ },
+ {
+ "x": 15.24,
+ "y": 26.38
+ },
+ {
+ "x": 13.6,
+ "y": 25.62
+ },
+ {
+ "x": 13.46,
+ "y": 24.69
+ },
+ {
+ "x": 12.71,
+ "y": 23.89
+ },
+ {
+ "x": 13.54,
+ "y": 23.41
+ },
+ {
+ "x": 14.22,
+ "y": 23.66
+ },
+ {
+ "x": 15.87,
+ "y": 22.51
+ },
+ {
+ "x": 16.2,
+ "y": 21.16
+ },
+ {
+ "x": 15.09,
+ "y": 20.26
+ },
+ {
+ "x": 14.96,
+ "y": 19.1
+ },
+ {
+ "x": 14.04,
+ "y": 18.6
+ },
+ {
+ "x": 13.83,
+ "y": 17.88
+ },
+ {
+ "x": 15.24,
+ "y": 16.59
+ },
+ {
+ "x": 15.33,
+ "y": 16.55
}
],
[
{
- "x": 74.92,
- "y": 75.74
+ "x": 68.58,
+ "y": 81
},
{
- "x": 71.25,
- "y": 82.85
+ "x": 69.33,
+ "y": 81.29
},
{
- "x": 73.27,
- "y": 86.87
+ "x": 66.61,
+ "y": 85.3
},
{
- "x": 71.27,
- "y": 89.95
+ "x": 65.85,
+ "y": 87.55
},
{
- "x": 48.88,
- "y": 80.1
+ "x": 65.92,
+ "y": 88.71
},
{
- "x": 51.44,
- "y": 76.69
+ "x": 66.85,
+ "y": 89.28
},
{
- "x": 60.33,
- "y": 78.58
+ "x": 66.42,
+ "y": 89.67
},
{
- "x": 74.78,
- "y": 75.78
+ "x": 67.35,
+ "y": 91.21
},
{
- "x": 74.92,
- "y": 75.74
+ "x": 66.27,
+ "y": 91.9
+ },
+ {
+ "x": 65.86,
+ "y": 94
+ },
+ {
+ "x": 62.06,
+ "y": 92.92
+ },
+ {
+ "x": 60.76,
+ "y": 90.96
+ },
+ {
+ "x": 57.24,
+ "y": 89.96
+ },
+ {
+ "x": 53.84,
+ "y": 87.47
+ },
+ {
+ "x": 52.92,
+ "y": 87.42
+ },
+ {
+ "x": 52.39,
+ "y": 86.83
+ },
+ {
+ "x": 50.62,
+ "y": 86.86
+ },
+ {
+ "x": 49.17,
+ "y": 85.02
+ },
+ {
+ "x": 49.58,
+ "y": 83.24
+ },
+ {
+ "x": 50.9,
+ "y": 82.53
+ },
+ {
+ "x": 51.07,
+ "y": 81.88
+ },
+ {
+ "x": 52.14,
+ "y": 83.19
+ },
+ {
+ "x": 53.14,
+ "y": 82.75
+ },
+ {
+ "x": 53.39,
+ "y": 81.9
+ },
+ {
+ "x": 54.75,
+ "y": 81.66
+ },
+ {
+ "x": 55.2,
+ "y": 82.59
+ },
+ {
+ "x": 55.97,
+ "y": 82.53
+ },
+ {
+ "x": 57.7,
+ "y": 83.62
+ },
+ {
+ "x": 59.14,
+ "y": 83.02
+ },
+ {
+ "x": 62.22,
+ "y": 83.06
+ },
+ {
+ "x": 64.69,
+ "y": 81.92
+ },
+ {
+ "x": 65.82,
+ "y": 82.39
+ },
+ {
+ "x": 66.76,
+ "y": 81.3
+ },
+ {
+ "x": 67.1,
+ "y": 81.76
+ },
+ {
+ "x": 68.48,
+ "y": 81.04
+ },
+ {
+ "x": 68.58,
+ "y": 81
}
],
[
{
- "x": 26.77,
- "y": 56.3
+ "x": 32.67,
+ "y": 62.73
},
{
- "x": 24.87,
- "y": 68.44
+ "x": 32.78,
+ "y": 63.44
},
{
- "x": 20.24,
- "y": 67.45
+ "x": 31.63,
+ "y": 65.14
},
{
- "x": 20.34,
- "y": 69.76
+ "x": 32.3,
+ "y": 66.61
},
{
- "x": 17.11,
- "y": 70.89
+ "x": 31.26,
+ "y": 74.21
},
{
- "x": 14.86,
- "y": 67.81
+ "x": 30.96,
+ "y": 74.57
},
{
- "x": 16.39,
- "y": 62.37
+ "x": 29.54,
+ "y": 73.63
},
{
- "x": 13.35,
- "y": 52.79
+ "x": 28.75,
+ "y": 73.9
},
{
- "x": 16.1,
- "y": 53.97
+ "x": 27.8,
+ "y": 73.28
},
{
- "x": 22.06,
- "y": 50.21
+ "x": 28.21,
+ "y": 73.6
},
{
- "x": 26.72,
- "y": 56.21
+ "x": 27.87,
+ "y": 75.45
},
{
- "x": 26.77,
- "y": 56.3
- }
- ],
- [
- {
- "x": 32.23,
- "y": 36.56
+ "x": 26.8,
+ "y": 76.39
},
{
- "x": 29.41,
- "y": 37.32
+ "x": 25.94,
+ "y": 75.95
},
{
- "x": 32.19,
- "y": 36.48
+ "x": 25.47,
+ "y": 76.5
},
{
- "x": 32.23,
- "y": 36.56
+ "x": 24.96,
+ "y": 74.95
+ },
+ {
+ "x": 23.79,
+ "y": 73.62
+ },
+ {
+ "x": 24.16,
+ "y": 72.98
+ },
+ {
+ "x": 23.8,
+ "y": 72.35
+ },
+ {
+ "x": 24.35,
+ "y": 70.75
+ },
+ {
+ "x": 24.23,
+ "y": 69.28
+ },
+ {
+ "x": 25,
+ "y": 69.74
+ },
+ {
+ "x": 24.61,
+ "y": 69.57
+ },
+ {
+ "x": 24.93,
+ "y": 68.5
+ },
+ {
+ "x": 23.92,
+ "y": 68.01
+ },
+ {
+ "x": 23.82,
+ "y": 67.02
+ },
+ {
+ "x": 24.52,
+ "y": 66.44
+ },
+ {
+ "x": 23.83,
+ "y": 63.46
+ },
+ {
+ "x": 23.28,
+ "y": 62.41
+ },
+ {
+ "x": 22.41,
+ "y": 62.56
+ },
+ {
+ "x": 22.66,
+ "y": 59.37
+ },
+ {
+ "x": 23.4,
+ "y": 60.3
+ },
+ {
+ "x": 24.71,
+ "y": 60.5
+ },
+ {
+ "x": 26.6,
+ "y": 59.5
+ },
+ {
+ "x": 29.16,
+ "y": 56.88
+ },
+ {
+ "x": 29.46,
+ "y": 57.45
+ },
+ {
+ "x": 30.36,
+ "y": 57.56
+ },
+ {
+ "x": 30.49,
+ "y": 58.3
+ },
+ {
+ "x": 30.65,
+ "y": 57.85
+ },
+ {
+ "x": 31.22,
+ "y": 58.02
+ },
+ {
+ "x": 30.92,
+ "y": 58.93
+ },
+ {
+ "x": 31.86,
+ "y": 59.04
+ },
+ {
+ "x": 30.87,
+ "y": 59.67
+ },
+ {
+ "x": 31.73,
+ "y": 59.72
+ },
+ {
+ "x": 32.25,
+ "y": 60.35
+ },
+ {
+ "x": 31.83,
+ "y": 60.72
+ },
+ {
+ "x": 32.64,
+ "y": 62.64
+ },
+ {
+ "x": 32.67,
+ "y": 62.73
}
]
]
diff --git a/frontend/data/outlines/japan.json b/frontend/data/outlines/japan.json
index 0d7b211..0b7406d 100644
--- a/frontend/data/outlines/japan.json
+++ b/frontend/data/outlines/japan.json
@@ -9,403 +9,1471 @@
},
"outline": {
"type": "MultiPolygon",
- "bounds": {
- "minLon": 122.93816165500004,
- "maxLon": 153.98560631600003,
- "minLat": 24.212103583000044,
+ "geoBounds": {
+ "minLon": 123.66822350400003,
+ "maxLon": 145.82496178500003,
+ "minLat": 24.256984768000052,
"maxLat": 45.520412502000056
},
+ "projectedBounds": {
+ "minX": 2.158418,
+ "maxX": 2.545126,
+ "minY": 0.436609,
+ "maxY": 0.894278
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 192.278999,
+ "xOffset": 12.822083,
+ "yOffset": 6
+ },
"rings": [
[
{
- "x": 28.09,
- "y": 61.21
+ "x": 45.56,
+ "y": 54.69
},
{
- "x": 24.86,
- "y": 68.13
+ "x": 45.08,
+ "y": 55.19
},
{
- "x": 25.25,
- "y": 64.81
+ "x": 44.97,
+ "y": 54.77
},
{
- "x": 24.63,
- "y": 67.41
+ "x": 44.76,
+ "y": 55.36
},
{
- "x": 23.13,
- "y": 66.23
+ "x": 44.4,
+ "y": 55.44
},
{
- "x": 24.7,
- "y": 59.71
+ "x": 44.45,
+ "y": 54.91
},
{
- "x": 23.52,
- "y": 57.87
+ "x": 42.99,
+ "y": 55.69
},
{
- "x": 21.91,
- "y": 60.78
+ "x": 42.52,
+ "y": 55.06
},
{
- "x": 21.39,
- "y": 57.02
+ "x": 41.94,
+ "y": 55.08
},
{
- "x": 25.99,
- "y": 54.22
+ "x": 40.97,
+ "y": 57.4
},
{
- "x": 29.45,
- "y": 59.02
+ "x": 41.12,
+ "y": 57.01
},
{
- "x": 28.15,
- "y": 61.23
+ "x": 39.92,
+ "y": 56.27
},
{
- "x": 28.09,
- "y": 61.21
- }
- ],
- [
- {
- "x": 37.85,
- "y": 54.87
+ "x": 38.29,
+ "y": 56.8
},
{
- "x": 36.2,
- "y": 57.65
+ "x": 37.55,
+ "y": 56.3
},
{
- "x": 33.35,
- "y": 57.05
+ "x": 37.02,
+ "y": 56.75
},
{
- "x": 32.42,
- "y": 60.11
+ "x": 37.29,
+ "y": 54.76
},
{
- "x": 29.22,
- "y": 57.12
+ "x": 38.82,
+ "y": 54.78
},
{
- "x": 35.46,
- "y": 52.3
+ "x": 39.43,
+ "y": 53.82
},
{
- "x": 37.85,
- "y": 54.84
+ "x": 40.31,
+ "y": 53.59
},
{
- "x": 37.85,
- "y": 54.87
- }
- ],
- [
- {
- "x": 33.77,
- "y": 51.98
+ "x": 42.93,
+ "y": 51.21
},
{
- "x": 30.3,
+ "x": 42.91,
+ "y": 50.61
+ },
+ {
+ "x": 44.44,
+ "y": 49.95
+ },
+ {
+ "x": 45.48,
+ "y": 50.56
+ },
+ {
+ "x": 49.3,
+ "y": 49.66
+ },
+ {
+ "x": 50.61,
+ "y": 49.79
+ },
+ {
+ "x": 51.61,
+ "y": 49.24
+ },
+ {
+ "x": 51.88,
+ "y": 49.66
+ },
+ {
+ "x": 51.48,
+ "y": 50.18
+ },
+ {
+ "x": 51.92,
+ "y": 50.59
+ },
+ {
+ "x": 52.4,
+ "y": 49.94
+ },
+ {
+ "x": 52.63,
+ "y": 50.4
+ },
+ {
+ "x": 53.65,
+ "y": 50.23
+ },
+ {
+ "x": 53.57,
+ "y": 49.78
+ },
+ {
+ "x": 54.14,
+ "y": 49.83
+ },
+ {
+ "x": 54.27,
+ "y": 49.27
+ },
+ {
+ "x": 54.44,
+ "y": 49.7
+ },
+ {
+ "x": 54.08,
+ "y": 48.3
+ },
+ {
+ "x": 56.52,
+ "y": 45.26
+ },
+ {
+ "x": 56.47,
+ "y": 43.39
+ },
+ {
+ "x": 57.03,
+ "y": 42.44
+ },
+ {
+ "x": 58.74,
+ "y": 41.99
+ },
+ {
+ "x": 58.33,
+ "y": 42.9
+ },
+ {
+ "x": 57.33,
+ "y": 43.19
+ },
+ {
+ "x": 57.1,
+ "y": 43.8
+ },
+ {
+ "x": 57.72,
+ "y": 43.71
+ },
+ {
+ "x": 57.58,
+ "y": 44.82
+ },
+ {
+ "x": 58.56,
+ "y": 45.15
+ },
+ {
+ "x": 59.06,
+ "y": 44.41
+ },
+ {
+ "x": 62.77,
+ "y": 42.53
+ },
+ {
+ "x": 63.8,
+ "y": 40.63
+ },
+ {
+ "x": 65.7,
+ "y": 39.25
+ },
+ {
+ "x": 66.87,
+ "y": 36.4
+ },
+ {
+ "x": 67.83,
+ "y": 32.45
+ },
+ {
+ "x": 67.52,
+ "y": 31.78
+ },
+ {
+ "x": 66.82,
+ "y": 31.88
+ },
+ {
+ "x": 66.63,
+ "y": 31.23
+ },
+ {
+ "x": 67.03,
+ "y": 31.43
+ },
+ {
+ "x": 67.56,
+ "y": 30.71
+ },
+ {
+ "x": 67.71,
+ "y": 29.7
+ },
+ {
+ "x": 67.16,
+ "y": 28.58
+ },
+ {
+ "x": 68.54,
+ "y": 27.68
+ },
+ {
+ "x": 69,
+ "y": 26.73
+ },
+ {
+ "x": 68.46,
+ "y": 26.3
+ },
+ {
+ "x": 68.76,
+ "y": 25.69
+ },
+ {
+ "x": 69.75,
+ "y": 25.98
+ },
+ {
+ "x": 69.99,
+ "y": 27.5
+ },
+ {
+ "x": 70.61,
+ "y": 26.8
+ },
+ {
+ "x": 71.41,
+ "y": 27.41
+ },
+ {
+ "x": 71.92,
+ "y": 26.15
+ },
+ {
+ "x": 71.68,
+ "y": 25.67
+ },
+ {
+ "x": 70.2,
+ "y": 26.2
+ },
+ {
+ "x": 70.67,
+ "y": 24.44
+ },
+ {
+ "x": 71.91,
+ "y": 25.27
+ },
+ {
+ "x": 72.53,
+ "y": 24.93
+ },
+ {
+ "x": 72.45,
+ "y": 28.31
+ },
+ {
+ "x": 73.77,
+ "y": 30.16
+ },
+ {
+ "x": 74.58,
+ "y": 33.22
+ },
+ {
+ "x": 74.18,
+ "y": 33.61
+ },
+ {
+ "x": 74.54,
+ "y": 33.59
+ },
+ {
+ "x": 74.02,
+ "y": 34.18
+ },
+ {
+ "x": 74.05,
+ "y": 35.19
+ },
+ {
+ "x": 73.17,
+ "y": 35.62
+ },
+ {
+ "x": 73.25,
+ "y": 36.25
+ },
+ {
+ "x": 72.96,
+ "y": 36.12
+ },
+ {
+ "x": 72.54,
+ "y": 37.07
+ },
+ {
+ "x": 72.75,
+ "y": 38.75
+ },
+ {
+ "x": 72.01,
+ "y": 38.15
+ },
+ {
+ "x": 71.25,
+ "y": 38.36
+ },
+ {
+ "x": 70.87,
+ "y": 39.17
+ },
+ {
+ "x": 71.01,
+ "y": 43.56
+ },
+ {
+ "x": 69.52,
+ "y": 47.13
+ },
+ {
+ "x": 70.58,
+ "y": 49.46
+ },
+ {
+ "x": 69.25,
+ "y": 50.1
+ },
+ {
+ "x": 68.9,
+ "y": 51.7
+ },
+ {
+ "x": 68.08,
+ "y": 51.92
+ },
+ {
+ "x": 67.38,
+ "y": 52.8
+ },
+ {
+ "x": 66.81,
+ "y": 52.6
+ },
+ {
+ "x": 67.19,
"y": 52.43
},
{
- "x": 29.37,
- "y": 55.11
+ "x": 66.89,
+ "y": 51.12
},
{
- "x": 25.58,
- "y": 54.36
+ "x": 67.97,
+ "y": 50.09
},
{
- "x": 32.7,
- "y": 46.55
+ "x": 66.84,
+ "y": 49.74
},
{
- "x": 42.29,
- "y": 46.27
+ "x": 66.92,
+ "y": 50.31
},
{
- "x": 44.59,
- "y": 38.23
+ "x": 66.43,
+ "y": 50.56
},
{
- "x": 46.42,
- "y": 37.61
+ "x": 66.57,
+ "y": 51.85
},
{
- "x": 46.25,
- "y": 41.13
+ "x": 66.1,
+ "y": 51.16
},
{
- "x": 50.29,
- "y": 38.21
+ "x": 64.89,
+ "y": 51.34
},
{
- "x": 54.94,
- "y": 29.06
+ "x": 64.75,
+ "y": 52.95
},
{
- "x": 54.5,
- "y": 23.05
+ "x": 63.72,
+ "y": 54.08
},
{
- "x": 56.06,
- "y": 19.97
+ "x": 63.47,
+ "y": 52.51
},
{
- "x": 58.58,
- "y": 21.81
+ "x": 63.96,
+ "y": 52.3
},
{
- "x": 57.85,
- "y": 18.75
+ "x": 63.61,
+ "y": 51.92
},
{
- "x": 59.66,
- "y": 19.2
+ "x": 62.78,
+ "y": 52.03
},
{
- "x": 61.58,
- "y": 28.41
+ "x": 61.7,
+ "y": 54.08
},
{
- "x": 58.07,
- "y": 34.49
+ "x": 59.4,
+ "y": 53.74
},
{
- "x": 56.17,
- "y": 48.54
+ "x": 57.62,
+ "y": 54.15
},
{
- "x": 54.17,
- "y": 49.58
+ "x": 58.71,
+ "y": 53.54
},
{
- "x": 54.2,
- "y": 46.31
+ "x": 57.62,
+ "y": 53.31
},
{
- "x": 51.2,
- "y": 51.27
+ "x": 57.49,
+ "y": 52.73
},
{
- "x": 51.1,
- "y": 48.8
+ "x": 57.47,
+ "y": 53.67
},
{
- "x": 49.26,
- "y": 51.27
+ "x": 57.08,
+ "y": 53.49
},
{
- "x": 45.34,
- "y": 51.35
+ "x": 56.99,
+ "y": 52.1
},
{
- "x": 44.74,
- "y": 49
+ "x": 55.95,
+ "y": 53.73
},
{
- "x": 44.96,
- "y": 52.81
+ "x": 57.28,
+ "y": 54.73
},
{
- "x": 41.3,
- "y": 56.72
+ "x": 57.21,
+ "y": 55.41
},
{
- "x": 39.04,
- "y": 54.63
+ "x": 56.58,
+ "y": 55.14
},
{
- "x": 40.18,
- "y": 50.82
+ "x": 55.34,
+ "y": 55.75
},
{
- "x": 33.74,
- "y": 51.95
+ "x": 53.4,
+ "y": 58.78
},
{
- "x": 33.77,
- "y": 51.98
+ "x": 51.05,
+ "y": 56.98
+ },
+ {
+ "x": 51.49,
+ "y": 55.89
+ },
+ {
+ "x": 51.06,
+ "y": 55.41
+ },
+ {
+ "x": 52.1,
+ "y": 54.53
+ },
+ {
+ "x": 52.24,
+ "y": 53.68
+ },
+ {
+ "x": 51,
+ "y": 53.96
+ },
+ {
+ "x": 49.12,
+ "y": 53.3
+ },
+ {
+ "x": 47.28,
+ "y": 54.11
+ },
+ {
+ "x": 47.65,
+ "y": 54.13
+ },
+ {
+ "x": 47.28,
+ "y": 54.66
+ },
+ {
+ "x": 46.57,
+ "y": 54.35
+ },
+ {
+ "x": 45.53,
+ "y": 54.66
+ },
+ {
+ "x": 45.56,
+ "y": 54.69
}
],
[
{
- "x": 73.53,
- "y": 10.01
+ "x": 86.98,
+ "y": 16.03
},
{
- "x": 67.47,
- "y": 12.56
+ "x": 86.19,
+ "y": 17.04
},
{
- "x": 65.39,
- "y": 16.86
+ "x": 84.87,
+ "y": 17.22
},
{
- "x": 56.57,
- "y": 13.8
+ "x": 84.41,
+ "y": 17.88
},
{
- "x": 58.82,
- "y": 17.46
+ "x": 83.73,
+ "y": 17.6
},
{
- "x": 55.08,
- "y": 19.14
+ "x": 83.54,
+ "y": 18.16
},
{
- "x": 54.45,
- "y": 13.58
+ "x": 82.14,
+ "y": 17.8
},
{
- "x": 56.11,
- "y": 10.3
+ "x": 80.67,
+ "y": 18.53
},
{
- "x": 59.54,
- "y": 10.34
+ "x": 78.87,
+ "y": 20.92
},
{
- "x": 60.32,
- "y": 0.33
+ "x": 78.51,
+ "y": 22.69
},
{
- "x": 66.96,
- "y": 6.6
+ "x": 73.73,
+ "y": 19.64
},
{
- "x": 70.22,
- "y": 7.54
+ "x": 72.42,
+ "y": 19.8
},
{
- "x": 72.16,
- "y": 5.51
+ "x": 70.91,
+ "y": 21.01
},
{
- "x": 71.89,
- "y": 10.29
+ "x": 70.09,
+ "y": 19.81
},
{
- "x": 73.52,
- "y": 10.01
+ "x": 69.31,
+ "y": 19.74
},
{
- "x": 73.53,
- "y": 10.01
+ "x": 68.61,
+ "y": 21.19
+ },
+ {
+ "x": 70.23,
+ "y": 21.9
+ },
+ {
+ "x": 71.66,
+ "y": 23.27
+ },
+ {
+ "x": 71.01,
+ "y": 23.66
+ },
+ {
+ "x": 69.85,
+ "y": 23.14
+ },
+ {
+ "x": 69.08,
+ "y": 24.48
+ },
+ {
+ "x": 68.33,
+ "y": 25.06
+ },
+ {
+ "x": 67.72,
+ "y": 24.79
+ },
+ {
+ "x": 68.12,
+ "y": 22.44
+ },
+ {
+ "x": 66.88,
+ "y": 21.14
+ },
+ {
+ "x": 67.1,
+ "y": 19.52
+ },
+ {
+ "x": 68.25,
+ "y": 18.68
+ },
+ {
+ "x": 68.65,
+ "y": 18.87
+ },
+ {
+ "x": 69.38,
+ "y": 17.83
+ },
+ {
+ "x": 68.74,
+ "y": 16.66
+ },
+ {
+ "x": 69.22,
+ "y": 16.09
+ },
+ {
+ "x": 71.55,
+ "y": 17.17
+ },
+ {
+ "x": 72.41,
+ "y": 16.35
+ },
+ {
+ "x": 72.12,
+ "y": 14.52
+ },
+ {
+ "x": 73.14,
+ "y": 13.48
+ },
+ {
+ "x": 73.66,
+ "y": 10.18
+ },
+ {
+ "x": 72.92,
+ "y": 7.5
+ },
+ {
+ "x": 73.22,
+ "y": 6.34
+ },
+ {
+ "x": 73.75,
+ "y": 6.47
+ },
+ {
+ "x": 74.16,
+ "y": 6
+ },
+ {
+ "x": 77.64,
+ "y": 10.44
+ },
+ {
+ "x": 80.3,
+ "y": 12.3
+ },
+ {
+ "x": 80.14,
+ "y": 12.66
+ },
+ {
+ "x": 81.45,
+ "y": 12.58
+ },
+ {
+ "x": 81.57,
+ "y": 13.09
+ },
+ {
+ "x": 81.87,
+ "y": 12.63
+ },
+ {
+ "x": 82.38,
+ "y": 13.42
+ },
+ {
+ "x": 83.7,
+ "y": 13.55
+ },
+ {
+ "x": 85.56,
+ "y": 11.57
+ },
+ {
+ "x": 84.65,
+ "y": 14.24
+ },
+ {
+ "x": 85.73,
+ "y": 16.41
+ },
+ {
+ "x": 85.28,
+ "y": 16.31
+ },
+ {
+ "x": 86.14,
+ "y": 16.76
+ },
+ {
+ "x": 86.98,
+ "y": 16.03
}
],
[
{
- "x": 17.39,
- "y": 87.87
+ "x": 39.64,
+ "y": 62.61
},
{
- "x": 15.18,
- "y": 91.21
+ "x": 38.56,
+ "y": 66.97
},
{
- "x": 17.37,
- "y": 87.79
+ "x": 37.67,
+ "y": 66.67
},
{
- "x": 17.39,
- "y": 87.87
+ "x": 37.87,
+ "y": 67.34
+ },
+ {
+ "x": 36.28,
+ "y": 68.42
+ },
+ {
+ "x": 36.74,
+ "y": 67.08
+ },
+ {
+ "x": 36.05,
+ "y": 66.13
+ },
+ {
+ "x": 36.62,
+ "y": 66.22
+ },
+ {
+ "x": 36.68,
+ "y": 65.64
+ },
+ {
+ "x": 36.23,
+ "y": 65.63
+ },
+ {
+ "x": 35.85,
+ "y": 66.42
+ },
+ {
+ "x": 36.29,
+ "y": 67.37
+ },
+ {
+ "x": 36.04,
+ "y": 67.83
+ },
+ {
+ "x": 34.82,
+ "y": 67.47
+ },
+ {
+ "x": 34.47,
+ "y": 66.83
+ },
+ {
+ "x": 34.84,
+ "y": 66.94
+ },
+ {
+ "x": 35.19,
+ "y": 66.23
+ },
+ {
+ "x": 34.65,
+ "y": 65.33
+ },
+ {
+ "x": 34.67,
+ "y": 64.13
+ },
+ {
+ "x": 35.79,
+ "y": 63.16
+ },
+ {
+ "x": 36.31,
+ "y": 61.92
+ },
+ {
+ "x": 35.57,
+ "y": 62.03
+ },
+ {
+ "x": 36.13,
+ "y": 61.4
+ },
+ {
+ "x": 34.88,
+ "y": 59.77
+ },
+ {
+ "x": 34.42,
+ "y": 61.02
+ },
+ {
+ "x": 35.21,
+ "y": 61.09
+ },
+ {
+ "x": 35.28,
+ "y": 61.77
+ },
+ {
+ "x": 34.63,
+ "y": 62.15
+ },
+ {
+ "x": 34.77,
+ "y": 61.51
+ },
+ {
+ "x": 34.39,
+ "y": 61.34
+ },
+ {
+ "x": 33.2,
+ "y": 62.24
+ },
+ {
+ "x": 33.6,
+ "y": 61.62
+ },
+ {
+ "x": 32.86,
+ "y": 60.81
+ },
+ {
+ "x": 33,
+ "y": 60.14
+ },
+ {
+ "x": 33.38,
+ "y": 61.02
+ },
+ {
+ "x": 34.08,
+ "y": 61.14
+ },
+ {
+ "x": 33.89,
+ "y": 60.46
+ },
+ {
+ "x": 32.57,
+ "y": 59.62
+ },
+ {
+ "x": 32.66,
+ "y": 59.03
+ },
+ {
+ "x": 33.57,
+ "y": 59.4
+ },
+ {
+ "x": 33.58,
+ "y": 58.3
+ },
+ {
+ "x": 34.13,
+ "y": 58.73
+ },
+ {
+ "x": 34.77,
+ "y": 57.85
+ },
+ {
+ "x": 35.38,
+ "y": 58.09
+ },
+ {
+ "x": 35.04,
+ "y": 57.78
+ },
+ {
+ "x": 35.71,
+ "y": 57.08
+ },
+ {
+ "x": 37.45,
+ "y": 56.63
+ },
+ {
+ "x": 37.77,
+ "y": 58.01
+ },
+ {
+ "x": 39.67,
+ "y": 57.84
+ },
+ {
+ "x": 39.9,
+ "y": 58.58
+ },
+ {
+ "x": 39.14,
+ "y": 59.43
+ },
+ {
+ "x": 40.46,
+ "y": 59.45
+ },
+ {
+ "x": 40.14,
+ "y": 60.01
+ },
+ {
+ "x": 41.06,
+ "y": 60.75
+ },
+ {
+ "x": 39.71,
+ "y": 62.62
+ },
+ {
+ "x": 39.64,
+ "y": 62.61
}
],
[
{
- "x": 21.8,
- "y": 80.05
+ "x": 49.81,
+ "y": 57.19
},
{
- "x": 19.99,
- "y": 81.05
+ "x": 48.54,
+ "y": 58.22
},
{
- "x": 21.77,
- "y": 79.9
+ "x": 48.09,
+ "y": 59.57
},
{
- "x": 21.8,
- "y": 80.05
- }
- ],
- [
- {
- "x": 26.13,
- "y": 68.89
+ "x": 46.62,
+ "y": 58.36
},
{
- "x": 25.55,
- "y": 71.22
+ "x": 45.12,
+ "y": 59.06
},
{
- "x": 26.11,
- "y": 68.91
+ "x": 44.14,
+ "y": 60.57
},
{
- "x": 26.13,
- "y": 68.89
- }
- ],
- [
- {
- "x": 23.26,
- "y": 60.89
+ "x": 44.15,
+ "y": 61.67
},
{
- "x": 22.73,
- "y": 62.56
+ "x": 42.89,
+ "y": 61.51
},
{
- "x": 23.2,
+ "x": 43.16,
"y": 60.88
},
{
- "x": 23.26,
- "y": 60.89
+ "x": 42.47,
+ "y": 60.95
+ },
+ {
+ "x": 42.07,
+ "y": 60.44
+ },
+ {
+ "x": 42.43,
+ "y": 59.99
+ },
+ {
+ "x": 42.11,
+ "y": 59.7
+ },
+ {
+ "x": 42.62,
+ "y": 59.61
+ },
+ {
+ "x": 42.05,
+ "y": 59.24
+ },
+ {
+ "x": 42.2,
+ "y": 58.74
+ },
+ {
+ "x": 40.82,
+ "y": 59.12
+ },
+ {
+ "x": 43.05,
+ "y": 57.65
+ },
+ {
+ "x": 43.79,
+ "y": 56
+ },
+ {
+ "x": 44.56,
+ "y": 56.77
+ },
+ {
+ "x": 45.85,
+ "y": 56.64
+ },
+ {
+ "x": 46.29,
+ "y": 56.18
+ },
+ {
+ "x": 46.01,
+ "y": 55.44
+ },
+ {
+ "x": 47.28,
+ "y": 54.97
+ },
+ {
+ "x": 49.67,
+ "y": 55.53
+ },
+ {
+ "x": 49.81,
+ "y": 57.16
+ },
+ {
+ "x": 49.81,
+ "y": 57.19
}
],
[
{
- "x": 38.86,
- "y": 51.21
+ "x": 28.49,
+ "y": 84.55
},
{
- "x": 37.98,
- "y": 53.17
+ "x": 26.86,
+ "y": 85.89
},
{
- "x": 38.79,
- "y": 51.24
+ "x": 27.09,
+ "y": 86.38
},
{
- "x": 38.86,
- "y": 51.21
+ "x": 26.19,
+ "y": 87.22
+ },
+ {
+ "x": 26.43,
+ "y": 85.93
+ },
+ {
+ "x": 27.23,
+ "y": 85.43
+ },
+ {
+ "x": 26.95,
+ "y": 84.94
+ },
+ {
+ "x": 27.55,
+ "y": 85.12
+ },
+ {
+ "x": 28.22,
+ "y": 84.22
+ },
+ {
+ "x": 28.47,
+ "y": 84.49
+ },
+ {
+ "x": 28.49,
+ "y": 84.55
}
],
[
{
- "x": 20.98,
- "y": 51.16
+ "x": 62.46,
+ "y": 39.6
},
{
- "x": 20.63,
- "y": 52.66
+ "x": 62.85,
+ "y": 39.58
},
{
- "x": 21.01,
- "y": 51.15
+ "x": 62.6,
+ "y": 40.29
},
{
- "x": 20.98,
- "y": 51.16
+ "x": 61.67,
+ "y": 40.74
+ },
+ {
+ "x": 62.07,
+ "y": 40.04
+ },
+ {
+ "x": 61.73,
+ "y": 39.59
+ },
+ {
+ "x": 62.64,
+ "y": 38.52
+ },
+ {
+ "x": 62.43,
+ "y": 39.67
+ },
+ {
+ "x": 62.46,
+ "y": 39.6
+ }
+ ],
+ [
+ {
+ "x": 33.09,
+ "y": 78.25
+ },
+ {
+ "x": 31.98,
+ "y": 79.55
+ },
+ {
+ "x": 31.2,
+ "y": 79.05
+ },
+ {
+ "x": 33.06,
+ "y": 78.12
+ },
+ {
+ "x": 33.09,
+ "y": 78.25
+ }
+ ],
+ [
+ {
+ "x": 50.86,
+ "y": 54.02
+ },
+ {
+ "x": 50.71,
+ "y": 55.4
+ },
+ {
+ "x": 49.94,
+ "y": 55.72
+ },
+ {
+ "x": 49.7,
+ "y": 55.33
+ },
+ {
+ "x": 50.79,
+ "y": 54.05
+ },
+ {
+ "x": 50.86,
+ "y": 54.02
+ }
+ ],
+ [
+ {
+ "x": 34.61,
+ "y": 62.33
+ },
+ {
+ "x": 34.75,
+ "y": 63.16
+ },
+ {
+ "x": 34.06,
+ "y": 63.74
+ },
+ {
+ "x": 34.08,
+ "y": 62.38
+ },
+ {
+ "x": 34.54,
+ "y": 62.33
+ },
+ {
+ "x": 34.61,
+ "y": 62.33
+ }
+ ],
+ [
+ {
+ "x": 36.33,
+ "y": 70.88
+ },
+ {
+ "x": 35.54,
+ "y": 71.4
+ },
+ {
+ "x": 35.33,
+ "y": 70.8
+ },
+ {
+ "x": 36.21,
+ "y": 70.77
+ },
+ {
+ "x": 36.33,
+ "y": 70.88
+ }
+ ],
+ [
+ {
+ "x": 32.23,
+ "y": 53.98
+ },
+ {
+ "x": 31.8,
+ "y": 55.26
+ },
+ {
+ "x": 31.48,
+ "y": 55.05
+ },
+ {
+ "x": 31.8,
+ "y": 53.86
+ },
+ {
+ "x": 32.27,
+ "y": 53.65
+ },
+ {
+ "x": 32.27,
+ "y": 53.97
+ },
+ {
+ "x": 32.23,
+ "y": 53.98
+ }
+ ],
+ [
+ {
+ "x": 37.6,
+ "y": 69.06
+ },
+ {
+ "x": 36.99,
+ "y": 71
+ },
+ {
+ "x": 37.58,
+ "y": 69.07
+ },
+ {
+ "x": 37.6,
+ "y": 69.06
+ }
+ ],
+ [
+ {
+ "x": 30.31,
+ "y": 61.82
+ },
+ {
+ "x": 29.95,
+ "y": 62.23
+ },
+ {
+ "x": 29.37,
+ "y": 62.06
+ },
+ {
+ "x": 29.58,
+ "y": 61.39
+ },
+ {
+ "x": 30.07,
+ "y": 61.32
+ },
+ {
+ "x": 30.23,
+ "y": 61.76
+ },
+ {
+ "x": 30.31,
+ "y": 61.82
+ }
+ ],
+ [
+ {
+ "x": 31.76,
+ "y": 55.36
+ },
+ {
+ "x": 31.29,
+ "y": 56.06
+ },
+ {
+ "x": 31.41,
+ "y": 55.16
+ },
+ {
+ "x": 31.73,
+ "y": 55.33
+ },
+ {
+ "x": 31.76,
+ "y": 55.36
+ }
+ ],
+ [
+ {
+ "x": 45.37,
+ "y": 47.16
+ },
+ {
+ "x": 45.23,
+ "y": 47.65
+ },
+ {
+ "x": 44.79,
+ "y": 47.45
+ },
+ {
+ "x": 45.12,
+ "y": 46.88
+ },
+ {
+ "x": 45.36,
+ "y": 47.14
+ },
+ {
+ "x": 45.37,
+ "y": 47.16
+ }
+ ],
+ [
+ {
+ "x": 13.31,
+ "y": 93.5
+ },
+ {
+ "x": 13.72,
+ "y": 93.59
+ },
+ {
+ "x": 13.51,
+ "y": 94
+ },
+ {
+ "x": 12.87,
+ "y": 93.9
+ },
+ {
+ "x": 13.24,
+ "y": 93.44
+ },
+ {
+ "x": 13.31,
+ "y": 93.5
}
]
]
diff --git a/frontend/data/outlines/norway.json b/frontend/data/outlines/norway.json
index 68a7706..49f6ccc 100644
--- a/frontend/data/outlines/norway.json
+++ b/frontend/data/outlines/norway.json
@@ -8,414 +8,3150 @@
"subregion": "Northern Europe"
},
"outline": {
- "type": "MultiPolygon",
- "bounds": {
- "minLon": -9.11742102799991,
- "maxLon": 33.64039147200009,
- "minLat": -54.46249765399995,
- "maxLat": 80.77008698100008
+ "type": "Polygon",
+ "geoBounds": {
+ "minLon": 4.926768425000091,
+ "maxLon": 31.076996290000068,
+ "minLat": 57.99315013200004,
+ "maxLat": 71.12710195500006
+ },
+ "projectedBounds": {
+ "minX": 0.085988,
+ "maxX": 0.542396,
+ "minY": 1.248935,
+ "maxY": 1.794548
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 161.286536,
+ "xOffset": 13.193801,
+ "yOffset": 6
},
"rings": [
[
{
- "x": 69.56,
- "y": 8.68
+ "x": 57.38,
+ "y": 23.29
},
{
- "x": 49.79,
- "y": 12.7
+ "x": 55.91,
+ "y": 23.4
},
{
- "x": 51.47,
- "y": 14.36
+ "x": 56.63,
+ "y": 25.11
},
{
- "x": 48.48,
- "y": 16.18
+ "x": 55.52,
+ "y": 27.14
},
{
- "x": 36.8,
- "y": 16.79
+ "x": 56.32,
+ "y": 27.63
},
{
- "x": 33.44,
- "y": 15.72
+ "x": 55.54,
+ "y": 28.6
},
{
- "x": 37.94,
- "y": 14.98
+ "x": 52.92,
+ "y": 27.42
},
{
- "x": 32.85,
- "y": 14.77
+ "x": 51.81,
+ "y": 27.45
},
{
- "x": 63.79,
- "y": 8.36
+ "x": 51.22,
+ "y": 26.89
},
{
- "x": 94,
- "y": 7.75
+ "x": 50.45,
+ "y": 27.23
},
{
- "x": 69.77,
- "y": 8.63
+ "x": 50.53,
+ "y": 29.76
},
{
- "x": 69.56,
- "y": 8.68
- }
- ],
- [
- {
- "x": 42.7,
- "y": 12.72
+ "x": 49.77,
+ "y": 31.46
},
{
- "x": 40.68,
- "y": 12.8
+ "x": 48.08,
+ "y": 30.47
+ },
+ {
+ "x": 46.57,
+ "y": 32.03
+ },
+ {
+ "x": 46.02,
+ "y": 34.05
+ },
+ {
+ "x": 44.72,
+ "y": 35.54
+ },
+ {
+ "x": 45.6,
+ "y": 37.17
+ },
+ {
+ "x": 45.53,
+ "y": 38.24
+ },
+ {
+ "x": 42.75,
+ "y": 42.24
+ },
+ {
+ "x": 42.91,
+ "y": 43.76
+ },
+ {
+ "x": 41.7,
+ "y": 44.61
+ },
+ {
+ "x": 40.26,
+ "y": 44.81
+ },
+ {
+ "x": 40.56,
+ "y": 47.04
+ },
+ {
+ "x": 40.18,
+ "y": 50.33
+ },
+ {
+ "x": 37.73,
+ "y": 55.22
+ },
+ {
+ "x": 39.01,
+ "y": 55.99
+ },
+ {
+ "x": 39.15,
+ "y": 57.92
+ },
+ {
+ "x": 38.63,
+ "y": 58.94
+ },
+ {
+ "x": 35.87,
+ "y": 58.63
+ },
+ {
+ "x": 33.58,
+ "y": 61.57
+ },
+ {
+ "x": 33.72,
+ "y": 62.35
+ },
+ {
+ "x": 33.08,
+ "y": 63.51
+ },
+ {
+ "x": 33.73,
+ "y": 65.31
+ },
+ {
+ "x": 33.36,
+ "y": 67.86
+ },
+ {
+ "x": 33.99,
+ "y": 69.69
+ },
+ {
+ "x": 33.56,
+ "y": 73.05
+ },
+ {
+ "x": 35.61,
+ "y": 75.27
+ },
+ {
+ "x": 35.09,
+ "y": 77.04
+ },
+ {
+ "x": 33.82,
+ "y": 77.3
+ },
+ {
+ "x": 34.81,
+ "y": 80.65
+ },
+ {
+ "x": 34.47,
+ "y": 82.57
+ },
+ {
+ "x": 33.51,
+ "y": 83.6
+ },
+ {
+ "x": 32.68,
+ "y": 83.75
+ },
+ {
+ "x": 32.82,
+ "y": 84.63
+ },
+ {
+ "x": 32.19,
+ "y": 85.23
+ },
+ {
+ "x": 32.57,
+ "y": 87.21
+ },
+ {
+ "x": 32.16,
+ "y": 89.01
+ },
+ {
+ "x": 31.56,
+ "y": 89.14
+ },
+ {
+ "x": 30.79,
+ "y": 87.5
+ },
+ {
+ "x": 30.38,
+ "y": 87.87
+ },
+ {
+ "x": 29.55,
+ "y": 87.39
+ },
+ {
+ "x": 29.05,
+ "y": 84.56
+ },
+ {
+ "x": 29.32,
+ "y": 83.83
+ },
+ {
+ "x": 29.5,
+ "y": 84.5
+ },
+ {
+ "x": 29.41,
+ "y": 83.52
+ },
+ {
+ "x": 28.81,
+ "y": 83.87
+ },
+ {
+ "x": 29,
+ "y": 85.63
+ },
+ {
+ "x": 28.11,
+ "y": 84.58
+ },
+ {
+ "x": 28.92,
+ "y": 86.91
+ },
+ {
+ "x": 28.49,
+ "y": 87.09
+ },
+ {
+ "x": 28.34,
+ "y": 88.25
+ },
+ {
+ "x": 28.11,
+ "y": 87.95
+ },
+ {
+ "x": 28.06,
+ "y": 88.49
+ },
+ {
+ "x": 27.04,
+ "y": 88.82
+ },
+ {
+ "x": 26.18,
+ "y": 87.92
+ },
+ {
+ "x": 26.6,
+ "y": 88.81
+ },
+ {
+ "x": 25.5,
+ "y": 89.22
+ },
+ {
+ "x": 25.81,
+ "y": 89.71
+ },
+ {
+ "x": 24.86,
+ "y": 89.98
+ },
+ {
+ "x": 25.2,
+ "y": 90.4
+ },
+ {
+ "x": 24.42,
+ "y": 90.71
+ },
+ {
+ "x": 24.46,
+ "y": 91.22
+ },
+ {
+ "x": 22.41,
+ "y": 93.31
+ },
+ {
+ "x": 21.99,
+ "y": 93.36
+ },
+ {
+ "x": 21.86,
+ "y": 92.78
+ },
+ {
+ "x": 21.61,
+ "y": 93.53
+ },
+ {
+ "x": 19.05,
+ "y": 94
+ },
+ {
+ "x": 19.45,
+ "y": 93.43
+ },
+ {
+ "x": 18.75,
+ "y": 93.69
+ },
+ {
+ "x": 18.48,
+ "y": 93.43
+ },
+ {
+ "x": 19,
+ "y": 93.21
+ },
+ {
+ "x": 18.4,
+ "y": 92.99
+ },
+ {
+ "x": 18.27,
+ "y": 93.33
+ },
+ {
+ "x": 18.25,
+ "y": 92.95
+ },
+ {
+ "x": 18.42,
+ "y": 93.62
+ },
+ {
+ "x": 17.96,
+ "y": 93.6
+ },
+ {
+ "x": 17.71,
+ "y": 93.32
+ },
+ {
+ "x": 18.6,
+ "y": 92.52
+ },
+ {
+ "x": 18.13,
+ "y": 92.78
+ },
+ {
+ "x": 18.15,
+ "y": 92.22
+ },
+ {
+ "x": 17.8,
+ "y": 92.67
+ },
+ {
+ "x": 16.24,
+ "y": 91.91
+ },
+ {
+ "x": 14.75,
+ "y": 89.91
+ },
+ {
+ "x": 14.95,
+ "y": 88.36
+ },
+ {
+ "x": 15.41,
+ "y": 89.3
+ },
+ {
+ "x": 15.8,
+ "y": 88.77
+ },
+ {
+ "x": 16.86,
+ "y": 89.45
+ },
+ {
+ "x": 16.4,
+ "y": 89.2
+ },
+ {
+ "x": 16.57,
+ "y": 88.78
+ },
+ {
+ "x": 17.98,
+ "y": 88.29
+ },
+ {
+ "x": 16.31,
+ "y": 89.09
+ },
+ {
+ "x": 15.86,
+ "y": 88.21
+ },
+ {
+ "x": 17.51,
+ "y": 86.82
+ },
+ {
+ "x": 16.65,
+ "y": 87.11
+ },
+ {
+ "x": 16.88,
+ "y": 86.82
+ },
+ {
+ "x": 16.33,
+ "y": 86.47
+ },
+ {
+ "x": 17.75,
+ "y": 85.49
+ },
+ {
+ "x": 16.88,
+ "y": 85.68
+ },
+ {
+ "x": 17.02,
+ "y": 84.99
+ },
+ {
+ "x": 16,
+ "y": 86.62
+ },
+ {
+ "x": 15.89,
+ "y": 86.12
+ },
+ {
+ "x": 16.65,
+ "y": 85.95
+ },
+ {
+ "x": 15.67,
+ "y": 85.6
+ },
+ {
+ "x": 15.22,
+ "y": 86.33
+ },
+ {
+ "x": 15.82,
+ "y": 86.65
+ },
+ {
+ "x": 15.12,
+ "y": 86.97
+ },
+ {
+ "x": 15.05,
+ "y": 86.29
+ },
+ {
+ "x": 14.82,
+ "y": 87.05
+ },
+ {
+ "x": 13.91,
+ "y": 85.76
+ },
+ {
+ "x": 14.78,
+ "y": 84.5
+ },
+ {
+ "x": 14.57,
+ "y": 85.8
+ },
+ {
+ "x": 14.99,
+ "y": 84.84
+ },
+ {
+ "x": 15.52,
+ "y": 85.21
+ },
+ {
+ "x": 15.69,
+ "y": 84.55
+ },
+ {
+ "x": 17.04,
+ "y": 83.93
+ },
+ {
+ "x": 16.11,
+ "y": 84.38
+ },
+ {
+ "x": 16.13,
+ "y": 83.81
+ },
+ {
+ "x": 15.74,
+ "y": 84.31
+ },
+ {
+ "x": 15.22,
+ "y": 83.85
+ },
+ {
+ "x": 17.03,
+ "y": 82.34
+ },
+ {
+ "x": 16.51,
+ "y": 82.42
+ },
+ {
+ "x": 16.78,
+ "y": 81.33
+ },
+ {
+ "x": 18.02,
+ "y": 80.67
+ },
+ {
+ "x": 17.69,
+ "y": 82.57
+ },
+ {
+ "x": 18.06,
+ "y": 80.86
+ },
+ {
+ "x": 19.33,
+ "y": 80.16
+ },
+ {
+ "x": 18.75,
+ "y": 80.16
+ },
+ {
+ "x": 19,
+ "y": 79.68
+ },
+ {
+ "x": 18.06,
+ "y": 80.57
+ },
+ {
+ "x": 18.17,
+ "y": 80.08
+ },
+ {
+ "x": 17.05,
+ "y": 80.83
+ },
+ {
+ "x": 16.71,
+ "y": 80.36
+ },
+ {
+ "x": 16.61,
+ "y": 81.59
+ },
+ {
+ "x": 16.2,
+ "y": 81.53
+ },
+ {
+ "x": 15.48,
+ "y": 83.06
+ },
+ {
+ "x": 15.63,
+ "y": 81.84
+ },
+ {
+ "x": 14.93,
+ "y": 82.11
+ },
+ {
+ "x": 15.47,
+ "y": 80.81
+ },
+ {
+ "x": 14.55,
+ "y": 82.29
+ },
+ {
+ "x": 13.8,
+ "y": 81.04
+ },
+ {
+ "x": 14.26,
+ "y": 80.03
+ },
+ {
+ "x": 15.24,
+ "y": 80.59
+ },
+ {
+ "x": 15.51,
+ "y": 78.94
+ },
+ {
+ "x": 15.3,
+ "y": 78.71
+ },
+ {
+ "x": 14.03,
+ "y": 79.77
+ },
+ {
+ "x": 13.19,
+ "y": 78.47
+ },
+ {
+ "x": 14.62,
+ "y": 79.45
+ },
+ {
+ "x": 14.06,
+ "y": 78.61
+ },
+ {
+ "x": 14.91,
+ "y": 78.03
+ },
+ {
+ "x": 13.77,
+ "y": 78.4
+ },
+ {
+ "x": 13.42,
+ "y": 77.12
+ },
+ {
+ "x": 13.78,
+ "y": 76.87
+ },
+ {
+ "x": 14.66,
+ "y": 77.34
+ },
+ {
+ "x": 14.88,
+ "y": 76.87
+ },
+ {
+ "x": 16.49,
+ "y": 76.6
+ },
+ {
+ "x": 17.22,
+ "y": 77.25
+ },
+ {
+ "x": 17.91,
+ "y": 76.29
+ },
+ {
+ "x": 18.91,
+ "y": 76.8
+ },
+ {
+ "x": 18.67,
+ "y": 77.68
+ },
+ {
+ "x": 19.17,
+ "y": 77.52
+ },
+ {
+ "x": 19.33,
+ "y": 78.11
+ },
+ {
+ "x": 19.03,
+ "y": 76.77
+ },
+ {
+ "x": 20.26,
+ "y": 76.72
+ },
+ {
+ "x": 20.23,
+ "y": 76.23
+ },
+ {
+ "x": 20.99,
+ "y": 75.96
+ },
+ {
+ "x": 20.12,
+ "y": 76.16
+ },
+ {
+ "x": 19.91,
+ "y": 75.64
+ },
+ {
+ "x": 20.64,
+ "y": 74.47
+ },
+ {
+ "x": 19.77,
+ "y": 75
+ },
+ {
+ "x": 19.89,
+ "y": 76.36
+ },
+ {
+ "x": 18.9,
+ "y": 76.66
+ },
+ {
+ "x": 19.04,
+ "y": 76.24
+ },
+ {
+ "x": 17.79,
+ "y": 76
+ },
+ {
+ "x": 18.19,
+ "y": 74.96
+ },
+ {
+ "x": 17.44,
+ "y": 76.64
+ },
+ {
+ "x": 16.25,
+ "y": 76.44
+ },
+ {
+ "x": 16.32,
+ "y": 76.12
+ },
+ {
+ "x": 13.95,
+ "y": 76.7
+ },
+ {
+ "x": 13.52,
+ "y": 76.36
+ },
+ {
+ "x": 14.1,
+ "y": 76.24
+ },
+ {
+ "x": 13.34,
+ "y": 75.71
+ },
+ {
+ "x": 13.97,
+ "y": 75.31
+ },
+ {
+ "x": 14.3,
+ "y": 75.84
+ },
+ {
+ "x": 14.12,
+ "y": 75.28
+ },
+ {
+ "x": 15.18,
+ "y": 75.2
+ },
+ {
+ "x": 13.56,
+ "y": 75.42
+ },
+ {
+ "x": 13.71,
+ "y": 74.79
+ },
+ {
+ "x": 13.25,
+ "y": 74.88
+ },
+ {
+ "x": 15.66,
+ "y": 74.63
+ },
+ {
+ "x": 13.9,
+ "y": 74.33
+ },
+ {
+ "x": 14.41,
+ "y": 74.03
+ },
+ {
+ "x": 13.81,
+ "y": 73.82
+ },
+ {
+ "x": 14.6,
+ "y": 73.86
+ },
+ {
+ "x": 13.31,
+ "y": 73.58
+ },
+ {
+ "x": 13.37,
+ "y": 72.92
+ },
+ {
+ "x": 13.87,
+ "y": 73.05
+ },
+ {
+ "x": 13.62,
+ "y": 72.76
+ },
+ {
+ "x": 14.51,
+ "y": 71.94
+ },
+ {
+ "x": 15.35,
+ "y": 72.13
+ },
+ {
+ "x": 15.14,
+ "y": 72.52
+ },
+ {
+ "x": 16.05,
+ "y": 72.34
+ },
+ {
+ "x": 15.93,
+ "y": 72.97
+ },
+ {
+ "x": 16.19,
+ "y": 72.4
+ },
+ {
+ "x": 16.72,
+ "y": 72.81
+ },
+ {
+ "x": 16.38,
+ "y": 72.4
+ },
+ {
+ "x": 17.55,
+ "y": 72.58
+ },
+ {
+ "x": 18.52,
+ "y": 72.15
+ },
+ {
+ "x": 17.56,
+ "y": 72.46
+ },
+ {
+ "x": 15.45,
+ "y": 72.07
+ },
+ {
+ "x": 16.11,
+ "y": 71.91
+ },
+ {
+ "x": 13.84,
+ "y": 72.03
+ },
+ {
+ "x": 13.79,
+ "y": 71.58
+ },
+ {
+ "x": 14.53,
+ "y": 71.29
+ },
+ {
+ "x": 13.62,
+ "y": 70.3
+ },
+ {
+ "x": 13.91,
+ "y": 70.13
+ },
+ {
+ "x": 14.7,
+ "y": 71.37
+ },
+ {
+ "x": 15.07,
+ "y": 71
+ },
+ {
+ "x": 14.5,
+ "y": 70.67
+ },
+ {
+ "x": 14.68,
+ "y": 70.26
+ },
+ {
+ "x": 15.51,
+ "y": 70.88
+ },
+ {
+ "x": 15.28,
+ "y": 70.39
+ },
+ {
+ "x": 15.95,
+ "y": 70.26
+ },
+ {
+ "x": 15.78,
+ "y": 71.29
+ },
+ {
+ "x": 16.09,
+ "y": 70.57
+ },
+ {
+ "x": 17.25,
+ "y": 71.04
+ },
+ {
+ "x": 16.01,
+ "y": 70.05
+ },
+ {
+ "x": 16.4,
+ "y": 70.18
+ },
+ {
+ "x": 16.15,
+ "y": 69.73
+ },
+ {
+ "x": 17.09,
+ "y": 69.17
+ },
+ {
+ "x": 17.71,
+ "y": 70.76
+ },
+ {
+ "x": 17.34,
+ "y": 69.08
+ },
+ {
+ "x": 17.8,
+ "y": 69.27
+ },
+ {
+ "x": 18.21,
+ "y": 68.68
+ },
+ {
+ "x": 19,
+ "y": 69.77
+ },
+ {
+ "x": 18.91,
+ "y": 70.8
+ },
+ {
+ "x": 19.56,
+ "y": 70.8
+ },
+ {
+ "x": 18.97,
+ "y": 70.73
+ },
+ {
+ "x": 19.11,
+ "y": 69.81
+ },
+ {
+ "x": 20.08,
+ "y": 69.77
+ },
+ {
+ "x": 18.91,
+ "y": 69.45
+ },
+ {
+ "x": 18.44,
+ "y": 68.52
+ },
+ {
+ "x": 16.9,
+ "y": 68.69
+ },
+ {
+ "x": 18.11,
+ "y": 68.43
+ },
+ {
+ "x": 16.96,
+ "y": 68.22
+ },
+ {
+ "x": 16.96,
+ "y": 67.82
+ },
+ {
+ "x": 17.94,
+ "y": 68.02
+ },
+ {
+ "x": 18.34,
+ "y": 67.44
+ },
+ {
+ "x": 18.8,
+ "y": 67.93
+ },
+ {
+ "x": 18.71,
+ "y": 67.51
+ },
+ {
+ "x": 19.29,
+ "y": 67.47
+ },
+ {
+ "x": 19.39,
+ "y": 68.18
+ },
+ {
+ "x": 19.47,
+ "y": 67.6
+ },
+ {
+ "x": 20.56,
+ "y": 68.37
+ },
+ {
+ "x": 21.22,
+ "y": 67.93
+ },
+ {
+ "x": 20.27,
+ "y": 67.88
+ },
+ {
+ "x": 20.5,
+ "y": 67.32
+ },
+ {
+ "x": 22.26,
+ "y": 67.21
+ },
+ {
+ "x": 22.05,
+ "y": 66.67
+ },
+ {
+ "x": 20.04,
+ "y": 67.18
+ },
+ {
+ "x": 20.75,
+ "y": 66.57
+ },
+ {
+ "x": 18.95,
+ "y": 67.01
+ },
+ {
+ "x": 19.06,
+ "y": 66.46
+ },
+ {
+ "x": 19.64,
+ "y": 66.46
+ },
+ {
+ "x": 18.72,
+ "y": 65.8
+ },
+ {
+ "x": 19.7,
+ "y": 65.22
+ },
+ {
+ "x": 20.44,
+ "y": 65.87
+ },
+ {
+ "x": 21.77,
+ "y": 65.46
+ },
+ {
+ "x": 23.38,
+ "y": 67.43
+ },
+ {
+ "x": 22.21,
+ "y": 65.56
+ },
+ {
+ "x": 21.5,
+ "y": 65.25
+ },
+ {
+ "x": 22.09,
+ "y": 64.63
+ },
+ {
+ "x": 22.77,
+ "y": 66.05
+ },
+ {
+ "x": 23.82,
+ "y": 66.41
+ },
+ {
+ "x": 23.02,
+ "y": 65.57
+ },
+ {
+ "x": 23.73,
+ "y": 65.44
+ },
+ {
+ "x": 22.9,
+ "y": 65.48
+ },
+ {
+ "x": 23.17,
+ "y": 65.19
+ },
+ {
+ "x": 22.52,
+ "y": 65.16
+ },
+ {
+ "x": 22.31,
+ "y": 64.6
+ },
+ {
+ "x": 23.65,
+ "y": 64.63
+ },
+ {
+ "x": 23.47,
+ "y": 64.23
+ },
+ {
+ "x": 24.5,
+ "y": 63.99
+ },
+ {
+ "x": 23.57,
+ "y": 64.05
+ },
+ {
+ "x": 23.19,
+ "y": 63.48
+ },
+ {
+ "x": 24,
+ "y": 63.14
+ },
+ {
+ "x": 23.74,
+ "y": 62.68
+ },
+ {
+ "x": 24.33,
+ "y": 62.83
+ },
+ {
+ "x": 24.71,
+ "y": 62.4
+ },
+ {
+ "x": 24.92,
+ "y": 63.48
+ },
+ {
+ "x": 26,
+ "y": 62.79
+ },
+ {
+ "x": 25.27,
+ "y": 62.99
+ },
+ {
+ "x": 25.17,
+ "y": 62.6
+ },
+ {
+ "x": 26.02,
+ "y": 62.3
+ },
+ {
+ "x": 25.12,
+ "y": 62.14
+ },
+ {
+ "x": 26.27,
+ "y": 61.93
+ },
+ {
+ "x": 26.04,
+ "y": 61.62
+ },
+ {
+ "x": 26.63,
+ "y": 61.27
+ },
+ {
+ "x": 27.36,
+ "y": 62.64
+ },
+ {
+ "x": 27.01,
+ "y": 63.26
+ },
+ {
+ "x": 27.51,
+ "y": 63.06
+ },
+ {
+ "x": 28.2,
+ "y": 63.65
+ },
+ {
+ "x": 27.74,
+ "y": 62.57
+ },
+ {
+ "x": 29.72,
+ "y": 62.71
+ },
+ {
+ "x": 30.07,
+ "y": 61.54
+ },
+ {
+ "x": 29.32,
+ "y": 61.88
+ },
+ {
+ "x": 29.54,
+ "y": 61.47
+ },
+ {
+ "x": 31.58,
+ "y": 60.35
+ },
+ {
+ "x": 31.46,
+ "y": 59.97
+ },
+ {
+ "x": 30.56,
+ "y": 59.91
+ },
+ {
+ "x": 31.66,
+ "y": 58.96
+ },
+ {
+ "x": 31.01,
+ "y": 58.76
+ },
+ {
+ "x": 31.31,
+ "y": 58.25
+ },
+ {
+ "x": 29.09,
+ "y": 60.23
+ },
+ {
+ "x": 30.11,
+ "y": 59.66
+ },
+ {
+ "x": 30.5,
+ "y": 60.06
+ },
+ {
+ "x": 28.65,
+ "y": 61.69
+ },
+ {
+ "x": 27.24,
+ "y": 62.09
+ },
+ {
+ "x": 26.91,
+ "y": 60.97
+ },
+ {
+ "x": 27.56,
+ "y": 60.39
+ },
+ {
+ "x": 26.19,
+ "y": 61.14
+ },
+ {
+ "x": 26.85,
+ "y": 60.49
+ },
+ {
+ "x": 26.2,
+ "y": 60.45
+ },
+ {
+ "x": 26.89,
+ "y": 59.75
+ },
+ {
+ "x": 28.03,
+ "y": 59.4
+ },
+ {
+ "x": 27.31,
+ "y": 59.53
+ },
+ {
+ "x": 27.84,
+ "y": 59.09
+ },
+ {
+ "x": 27.3,
+ "y": 59.27
+ },
+ {
+ "x": 27.47,
+ "y": 58.3
+ },
+ {
+ "x": 28.02,
+ "y": 58.35
+ },
+ {
+ "x": 27.95,
+ "y": 57.72
+ },
+ {
+ "x": 28.53,
+ "y": 57.81
+ },
+ {
+ "x": 28.2,
+ "y": 57.42
+ },
+ {
+ "x": 29.3,
+ "y": 56.7
+ },
+ {
+ "x": 28.83,
+ "y": 56.26
+ },
+ {
+ "x": 29.83,
+ "y": 56.62
+ },
+ {
+ "x": 29.32,
+ "y": 56.08
+ },
+ {
+ "x": 30.17,
+ "y": 55.85
+ },
+ {
+ "x": 30.21,
+ "y": 55.09
+ },
+ {
+ "x": 30.75,
+ "y": 56.12
+ },
+ {
+ "x": 31.25,
+ "y": 56.21
+ },
+ {
+ "x": 30.99,
+ "y": 56.9
+ },
+ {
+ "x": 31.44,
+ "y": 56.08
+ },
+ {
+ "x": 32.14,
+ "y": 55.89
+ },
+ {
+ "x": 31.52,
+ "y": 55.99
+ },
+ {
+ "x": 31.71,
+ "y": 55.45
+ },
+ {
+ "x": 32.48,
+ "y": 55.13
+ },
+ {
+ "x": 32.01,
+ "y": 54.92
+ },
+ {
+ "x": 31.74,
+ "y": 55.29
+ },
+ {
+ "x": 31.41,
+ "y": 54.41
+ },
+ {
+ "x": 32.66,
+ "y": 53.83
+ },
+ {
+ "x": 32.1,
+ "y": 53.64
+ },
+ {
+ "x": 32.45,
+ "y": 53.2
+ },
+ {
+ "x": 33.74,
+ "y": 52.87
+ },
+ {
+ "x": 32.86,
+ "y": 52.8
+ },
+ {
+ "x": 31.02,
+ "y": 54.23
+ },
+ {
+ "x": 31.5,
+ "y": 53.69
+ },
+ {
+ "x": 31,
+ "y": 53.54
+ },
+ {
+ "x": 32.25,
+ "y": 53.05
+ },
+ {
+ "x": 31.04,
+ "y": 53.33
+ },
+ {
+ "x": 33.04,
+ "y": 52.01
+ },
+ {
+ "x": 33.65,
+ "y": 52.5
+ },
+ {
+ "x": 35.73,
+ "y": 50.37
+ },
+ {
+ "x": 34.52,
+ "y": 51.5
+ },
+ {
+ "x": 34.1,
+ "y": 50.95
+ },
+ {
+ "x": 35.11,
+ "y": 50.76
+ },
+ {
+ "x": 33.8,
+ "y": 50.9
+ },
+ {
+ "x": 34.49,
+ "y": 49.99
+ },
+ {
+ "x": 35.05,
+ "y": 50.26
+ },
+ {
+ "x": 34.45,
+ "y": 49.47
+ },
+ {
+ "x": 35.11,
+ "y": 49.98
+ },
+ {
+ "x": 34.88,
+ "y": 49.56
+ },
+ {
+ "x": 35.3,
+ "y": 49.38
+ },
+ {
+ "x": 34.82,
+ "y": 49.38
+ },
+ {
+ "x": 34.72,
+ "y": 48.49
+ },
+ {
+ "x": 34.55,
+ "y": 49.02
+ },
+ {
+ "x": 34.61,
+ "y": 48.54
+ },
+ {
+ "x": 34.34,
+ "y": 48.91
+ },
+ {
+ "x": 34.1,
+ "y": 48.39
+ },
+ {
+ "x": 34.5,
+ "y": 47.51
+ },
+ {
+ "x": 35.32,
+ "y": 48.16
+ },
+ {
+ "x": 34.67,
+ "y": 47.37
+ },
+ {
+ "x": 35.12,
+ "y": 47.13
+ },
+ {
+ "x": 34.96,
+ "y": 46.29
+ },
+ {
+ "x": 35.49,
+ "y": 45.91
+ },
+ {
+ "x": 36.42,
+ "y": 46.67
+ },
+ {
+ "x": 35.71,
+ "y": 45.72
+ },
+ {
+ "x": 36.03,
+ "y": 45.1
+ },
+ {
+ "x": 34.99,
+ "y": 45.24
+ },
+ {
+ "x": 37.4,
+ "y": 44.01
+ },
+ {
+ "x": 37.43,
+ "y": 44.91
+ },
+ {
+ "x": 38.23,
+ "y": 44.66
+ },
+ {
+ "x": 37.72,
+ "y": 44.14
+ },
+ {
+ "x": 38.7,
+ "y": 44
+ },
+ {
+ "x": 39.14,
+ "y": 43.35
+ },
+ {
+ "x": 36.03,
+ "y": 44.43
+ },
+ {
+ "x": 37.42,
+ "y": 43.52
+ },
+ {
+ "x": 36.79,
+ "y": 43.07
+ },
+ {
+ "x": 36.56,
+ "y": 43.61
+ },
+ {
+ "x": 36.02,
+ "y": 43.45
+ },
+ {
+ "x": 36.38,
+ "y": 42.41
+ },
+ {
+ "x": 35.84,
+ "y": 42.02
+ },
+ {
+ "x": 36.94,
+ "y": 42.5
+ },
+ {
+ "x": 36.65,
+ "y": 42.02
+ },
+ {
+ "x": 37.81,
+ "y": 42.07
+ },
+ {
+ "x": 37.21,
+ "y": 41.73
+ },
+ {
+ "x": 37.96,
+ "y": 41.44
+ },
+ {
+ "x": 36.59,
+ "y": 41.84
+ },
+ {
+ "x": 37.06,
+ "y": 41.3
+ },
+ {
+ "x": 36.46,
+ "y": 41
+ },
+ {
+ "x": 37.46,
+ "y": 41.2
+ },
+ {
+ "x": 36.55,
+ "y": 40.66
+ },
+ {
+ "x": 37.87,
+ "y": 40.83
+ },
+ {
+ "x": 38.43,
+ "y": 40.51
+ },
+ {
+ "x": 37.54,
+ "y": 40.66
+ },
+ {
+ "x": 38.04,
+ "y": 40.32
+ },
+ {
+ "x": 37.45,
+ "y": 40.03
+ },
+ {
+ "x": 38.72,
+ "y": 40.12
+ },
+ {
+ "x": 37.45,
+ "y": 39.18
+ },
+ {
+ "x": 38.49,
+ "y": 38.66
+ },
+ {
+ "x": 38.62,
+ "y": 39.14
+ },
+ {
+ "x": 38.9,
+ "y": 38.18
+ },
+ {
+ "x": 39.16,
+ "y": 38.82
+ },
+ {
+ "x": 39.5,
+ "y": 38.18
+ },
+ {
+ "x": 40.33,
+ "y": 38.49
+ },
+ {
+ "x": 39.49,
+ "y": 38.01
+ },
+ {
+ "x": 39.76,
+ "y": 37.46
+ },
+ {
+ "x": 39.93,
+ "y": 37.83
+ },
+ {
+ "x": 40.64,
+ "y": 37.46
+ },
+ {
+ "x": 40.83,
+ "y": 37.76
+ },
+ {
+ "x": 40.18,
+ "y": 37.31
+ },
+ {
+ "x": 40.43,
+ "y": 37.14
+ },
+ {
+ "x": 41.49,
+ "y": 37.07
+ },
+ {
+ "x": 41.53,
+ "y": 37.9
+ },
+ {
+ "x": 41.82,
+ "y": 37.07
+ },
+ {
+ "x": 42.96,
+ "y": 38.11
+ },
+ {
+ "x": 42.61,
+ "y": 37.16
+ },
+ {
+ "x": 43.63,
+ "y": 37.36
+ },
+ {
+ "x": 41.73,
+ "y": 36.82
+ },
+ {
+ "x": 42.01,
+ "y": 36.36
+ },
+ {
+ "x": 40.63,
+ "y": 37.05
+ },
+ {
+ "x": 40.65,
+ "y": 36.6
+ },
+ {
+ "x": 39.66,
+ "y": 36.87
+ },
+ {
+ "x": 40.49,
+ "y": 35.56
+ },
+ {
+ "x": 41.06,
+ "y": 35.87
+ },
+ {
+ "x": 41.69,
+ "y": 35.37
+ },
+ {
+ "x": 40.78,
+ "y": 35.06
+ },
+ {
+ "x": 41.72,
+ "y": 34.41
+ },
+ {
+ "x": 42,
+ "y": 34.71
+ },
+ {
+ "x": 41.57,
+ "y": 34.51
+ },
+ {
+ "x": 41.58,
+ "y": 35.07
+ },
+ {
+ "x": 41.07,
+ "y": 35.16
+ },
+ {
+ "x": 42.04,
+ "y": 34.82
+ },
+ {
+ "x": 41.94,
+ "y": 35.56
+ },
+ {
+ "x": 42.76,
+ "y": 35.1
+ },
+ {
+ "x": 43.4,
+ "y": 36.62
+ },
+ {
+ "x": 43.04,
+ "y": 35.22
+ },
+ {
+ "x": 44.08,
+ "y": 34.56
+ },
+ {
+ "x": 42.22,
+ "y": 34.76
+ },
+ {
+ "x": 42.33,
+ "y": 34.29
+ },
+ {
+ "x": 42.86,
+ "y": 34.41
+ },
+ {
+ "x": 42.69,
+ "y": 34.01
+ },
+ {
+ "x": 42.05,
+ "y": 34.1
+ },
+ {
+ "x": 42.4,
+ "y": 33.35
+ },
+ {
+ "x": 43.4,
+ "y": 33.64
+ },
+ {
+ "x": 42.69,
+ "y": 33.24
+ },
+ {
+ "x": 43.23,
+ "y": 33.14
+ },
+ {
+ "x": 43.9,
+ "y": 33.54
+ },
+ {
+ "x": 43.5,
+ "y": 32.78
+ },
+ {
+ "x": 42.71,
+ "y": 32.78
+ },
+ {
+ "x": 42.77,
+ "y": 32.3
+ },
+ {
+ "x": 41.09,
+ "y": 33.92
+ },
+ {
+ "x": 40.97,
+ "y": 33.28
+ },
+ {
+ "x": 41.88,
+ "y": 33.19
+ },
+ {
+ "x": 40.91,
+ "y": 32.64
+ },
+ {
+ "x": 41.84,
+ "y": 32.37
+ },
+ {
+ "x": 41.13,
+ "y": 32.42
+ },
+ {
+ "x": 41.55,
+ "y": 32.04
+ },
+ {
+ "x": 42.11,
+ "y": 32.52
+ },
+ {
+ "x": 43.06,
+ "y": 31.86
+ },
+ {
+ "x": 43.05,
+ "y": 32.36
+ },
+ {
+ "x": 43.67,
+ "y": 31.62
+ },
+ {
+ "x": 43.97,
+ "y": 32.01
+ },
+ {
+ "x": 44.54,
+ "y": 31.19
+ },
+ {
+ "x": 44.08,
+ "y": 30.76
+ },
+ {
+ "x": 43.09,
+ "y": 30.7
},
{
"x": 42.67,
- "y": 12.72
+ "y": 31.3
},
{
- "x": 42.7,
- "y": 12.72
- }
- ],
- [
- {
- "x": 59.98,
- "y": 8.91
+ "x": 42.34,
+ "y": 30.98
},
{
- "x": 56.37,
- "y": 9.24
+ "x": 43.36,
+ "y": 29.98
},
{
- "x": 59.99,
- "y": 8.9
+ "x": 43.32,
+ "y": 30.86
},
{
- "x": 59.98,
- "y": 8.91
- }
- ],
- [
- {
- "x": 54.99,
- "y": 8.95
+ "x": 43.93,
+ "y": 30.53
},
{
- "x": 57.33,
- "y": 8.9
+ "x": 44.41,
+ "y": 29.37
+ },
+ {
+ "x": 44.48,
+ "y": 31.03
+ },
+ {
+ "x": 45.73,
+ "y": 32.77
+ },
+ {
+ "x": 44.95,
+ "y": 31.24
+ },
+ {
+ "x": 45.68,
+ "y": 32.01
+ },
+ {
+ "x": 45.46,
+ "y": 30.81
+ },
+ {
+ "x": 46.3,
+ "y": 30.72
+ },
+ {
+ "x": 45.18,
+ "y": 30.57
+ },
+ {
+ "x": 45.53,
+ "y": 29.85
+ },
+ {
+ "x": 46.03,
+ "y": 30
+ },
+ {
+ "x": 45.64,
+ "y": 29.53
+ },
+ {
+ "x": 44.85,
+ "y": 29.72
+ },
+ {
+ "x": 45.37,
+ "y": 29.45
+ },
+ {
+ "x": 44.79,
+ "y": 28.89
+ },
+ {
+ "x": 46.63,
+ "y": 30.26
+ },
+ {
+ "x": 44.98,
+ "y": 28.6
+ },
+ {
+ "x": 46.32,
+ "y": 28.19
+ },
+ {
+ "x": 46.75,
+ "y": 28.81
+ },
+ {
+ "x": 47.54,
+ "y": 28.43
+ },
+ {
+ "x": 48.12,
+ "y": 30
+ },
+ {
+ "x": 48.36,
+ "y": 29.48
+ },
+ {
+ "x": 47.88,
+ "y": 28.18
+ },
+ {
+ "x": 48.8,
+ "y": 28.54
+ },
+ {
+ "x": 48.21,
+ "y": 28.12
+ },
+ {
+ "x": 49.63,
+ "y": 28.28
+ },
+ {
+ "x": 48.5,
+ "y": 27.86
+ },
+ {
+ "x": 48.72,
+ "y": 27.23
+ },
+ {
+ "x": 47.31,
+ "y": 27.97
+ },
+ {
+ "x": 47.18,
+ "y": 27.4
+ },
+ {
+ "x": 45.87,
+ "y": 27.93
+ },
+ {
+ "x": 45.67,
+ "y": 27.38
+ },
+ {
+ "x": 46.11,
+ "y": 27.2
+ },
+ {
+ "x": 46.05,
+ "y": 26.46
+ },
+ {
+ "x": 47.07,
+ "y": 25.88
+ },
+ {
+ "x": 47.54,
+ "y": 26.43
+ },
+ {
+ "x": 47.88,
+ "y": 25.73
+ },
+ {
+ "x": 49.09,
+ "y": 26.22
+ },
+ {
+ "x": 47.84,
+ "y": 25.48
+ },
+ {
+ "x": 48.48,
+ "y": 25.02
+ },
+ {
+ "x": 49.38,
+ "y": 25.54
+ },
+ {
+ "x": 48.5,
+ "y": 24.9
+ },
+ {
+ "x": 49.5,
+ "y": 24.41
+ },
+ {
+ "x": 49.21,
+ "y": 24.09
+ },
+ {
+ "x": 48.38,
+ "y": 24.36
+ },
+ {
+ "x": 49.03,
+ "y": 22.66
+ },
+ {
+ "x": 50.42,
+ "y": 22.36
+ },
+ {
+ "x": 49.96,
+ "y": 21.72
+ },
+ {
+ "x": 50.43,
+ "y": 19.94
+ },
+ {
+ "x": 50.84,
+ "y": 19.71
+ },
+ {
+ "x": 51.37,
+ "y": 20.55
+ },
+ {
+ "x": 51.41,
+ "y": 21.72
+ },
+ {
+ "x": 51.58,
+ "y": 20.69
+ },
+ {
+ "x": 51.94,
+ "y": 21.49
+ },
+ {
+ "x": 52.06,
+ "y": 21.01
+ },
+ {
+ "x": 52.85,
+ "y": 21.31
+ },
+ {
+ "x": 51.27,
+ "y": 19.97
+ },
+ {
+ "x": 51.33,
+ "y": 19.47
+ },
+ {
+ "x": 52.4,
+ "y": 19.18
+ },
+ {
+ "x": 52.85,
+ "y": 20.43
+ },
+ {
+ "x": 53.88,
+ "y": 21.03
+ },
+ {
+ "x": 53.31,
+ "y": 21.57
+ },
+ {
+ "x": 54.24,
+ "y": 21.77
+ },
+ {
+ "x": 53.8,
+ "y": 20.57
+ },
+ {
+ "x": 53.25,
+ "y": 20.59
+ },
+ {
+ "x": 52.81,
+ "y": 19.89
+ },
+ {
+ "x": 53.46,
+ "y": 19.06
+ },
+ {
+ "x": 52.86,
+ "y": 19.33
+ },
+ {
+ "x": 52.65,
+ "y": 18.67
+ },
+ {
+ "x": 53.51,
+ "y": 17.36
},
{
"x": 55.02,
- "y": 8.95
+ "y": 17.14
},
{
- "x": 54.99,
- "y": 8.95
- }
- ],
- [
- {
- "x": 63.59,
- "y": 8.38
+ "x": 54.3,
+ "y": 20.4
},
{
- "x": 60.55,
- "y": 8.64
+ "x": 54.75,
+ "y": 20.05
},
{
- "x": 63.53,
- "y": 8.38
+ "x": 54.9,
+ "y": 18.7
},
{
- "x": 63.59,
- "y": 8.38
- }
- ],
- [
- {
- "x": 65.76,
- "y": 8.09
+ "x": 55.94,
+ "y": 18.92
},
{
- "x": 63.41,
- "y": 8.27
+ "x": 55.22,
+ "y": 18.58
},
{
- "x": 65.73,
- "y": 8.09
+ "x": 55.13,
+ "y": 17.89
},
{
- "x": 65.76,
- "y": 8.09
- }
- ],
- [
- {
- "x": 67.21,
- "y": 7.95
+ "x": 56.45,
+ "y": 15.78
},
{
- "x": 65.13,
- "y": 8
+ "x": 56.82,
+ "y": 16.55
},
{
- "x": 67.18,
- "y": 7.96
+ "x": 56.7,
+ "y": 18.81
},
{
- "x": 67.21,
- "y": 7.95
- }
- ],
- [
- {
- "x": 76.65,
- "y": 7.59
+ "x": 55.48,
+ "y": 21.5
},
{
- "x": 74.77,
- "y": 7.66
+ "x": 56.98,
+ "y": 18.98
},
{
- "x": 76.6,
- "y": 7.59
+ "x": 58.03,
+ "y": 19.64
},
{
- "x": 76.65,
- "y": 7.59
- }
- ],
- [
- {
- "x": 73.76,
- "y": 7.59
+ "x": 57.01,
+ "y": 18.58
},
{
- "x": 76.25,
- "y": 7.37
+ "x": 56.98,
+ "y": 17.47
},
{
- "x": 73.78,
- "y": 7.59
+ "x": 57.83,
+ "y": 17.16
},
{
- "x": 73.76,
- "y": 7.59
- }
- ],
- [
- {
- "x": 82.45,
- "y": 7.2
+ "x": 57.85,
+ "y": 16.53
},
{
- "x": 80.48,
- "y": 7.21
+ "x": 58.7,
+ "y": 15.96
},
{
- "x": 82.4,
- "y": 7.2
+ "x": 58.14,
+ "y": 16.74
},
{
- "x": 82.45,
- "y": 7.2
- }
- ],
- [
- {
- "x": 2.7,
- "y": 7.1
+ "x": 58.5,
+ "y": 17.27
},
{
- "x": 0,
- "y": 7.32
+ "x": 58.92,
+ "y": 16.56
},
{
- "x": 2.65,
- "y": 7.09
+ "x": 58.94,
+ "y": 17.02
},
{
- "x": 2.7,
- "y": 7.1
- }
- ],
- [
- {
- "x": 78.45,
- "y": 2.18
+ "x": 59.26,
+ "y": 15.36
},
{
- "x": 70.04,
- "y": 2.39
+ "x": 60.01,
+ "y": 15.62
},
{
- "x": 78.4,
- "y": 2.15
+ "x": 61.5,
+ "y": 17.67
},
{
- "x": 78.45,
- "y": 2.18
- }
- ],
- [
- {
- "x": 70.49,
- "y": 1.89
+ "x": 61.01,
+ "y": 15.99
},
{
- "x": 68.46,
- "y": 1.7
+ "x": 61.28,
+ "y": 15.65
},
{
- "x": 73.41,
- "y": 1.85
+ "x": 61.4,
+ "y": 16.04
},
{
- "x": 70.47,
- "y": 1.89
+ "x": 61.57,
+ "y": 15.29
},
{
- "x": 70.49,
- "y": 1.89
- }
- ],
- [
- {
- "x": 49.72,
- "y": 1.87
+ "x": 60.69,
+ "y": 15.23
},
{
- "x": 45.84,
- "y": 1.39
+ "x": 61.53,
+ "y": 14.54
},
{
- "x": 49.7,
- "y": 1.86
+ "x": 60.47,
+ "y": 15.04
},
{
- "x": 49.72,
- "y": 1.87
- }
- ],
- [
- {
- "x": 90.17,
- "y": 1.38
+ "x": 59.76,
+ "y": 14.66
},
{
- "x": 86.44,
- "y": 1.42
+ "x": 59.84,
+ "y": 14.09
},
{
- "x": 89.3,
- "y": 1.38
+ "x": 59.03,
+ "y": 13.81
},
{
- "x": 90.17,
- "y": 1.38
- }
- ],
- [
- {
- "x": 68.33,
- "y": 1.22
+ "x": 59.68,
+ "y": 13.3
},
{
- "x": 70.04,
- "y": 1.27
+ "x": 59.82,
+ "y": 13.81
},
{
- "x": 68.35,
- "y": 1.22
+ "x": 60,
+ "y": 12.87
},
{
- "x": 68.33,
- "y": 1.22
- }
- ],
- [
- {
- "x": 68.59,
- "y": 1.58
+ "x": 60.9,
+ "y": 14.32
},
{
- "x": 59.49,
- "y": 3.1
+ "x": 60.71,
+ "y": 13.41
},
{
- "x": 53.86,
- "y": 2.39
+ "x": 61.28,
+ "y": 12.84
},
{
- "x": 61.37,
- "y": 2.21
+ "x": 61.58,
+ "y": 13.6
},
{
- "x": 53.11,
- "y": 2.01
+ "x": 62.12,
+ "y": 13.16
},
{
- "x": 61.78,
- "y": 1.73
+ "x": 62.03,
+ "y": 14.42
},
{
- "x": 46.29,
- "y": 0.91
+ "x": 62.83,
+ "y": 14.49
},
{
- "x": 71.73,
- "y": 1.48
+ "x": 62.17,
+ "y": 14.15
},
{
- "x": 68.61,
- "y": 1.57
+ "x": 62.38,
+ "y": 13.4
},
{
- "x": 68.59,
- "y": 1.58
- }
- ],
- [
- {
- "x": 98.73,
- "y": 0.4
+ "x": 63.98,
+ "y": 13.82
},
{
- "x": 94.94,
- "y": 0.49
+ "x": 63.68,
+ "y": 14.5
},
{
- "x": 98.68,
- "y": 0.41
+ "x": 62.06,
+ "y": 15.17
},
{
- "x": 98.73,
- "y": 0.4
- }
- ],
- [
- {
- "x": 84.87,
- "y": 0.52
+ "x": 64.12,
+ "y": 14.32
},
{
- "x": 62.91,
- "y": 0.47
+ "x": 64.34,
+ "y": 15.91
},
{
- "x": 85.03,
- "y": 0.5
+ "x": 64.95,
+ "y": 15.57
},
{
- "x": 84.87,
- "y": 0.52
+ "x": 65,
+ "y": 15.96
+ },
+ {
+ "x": 65.59,
+ "y": 15.34
+ },
+ {
+ "x": 64.56,
+ "y": 14.77
+ },
+ {
+ "x": 65.2,
+ "y": 14.38
+ },
+ {
+ "x": 64.91,
+ "y": 14.15
+ },
+ {
+ "x": 65.26,
+ "y": 13.92
+ },
+ {
+ "x": 64.76,
+ "y": 13.75
+ },
+ {
+ "x": 65.57,
+ "y": 13.52
+ },
+ {
+ "x": 64.95,
+ "y": 13.41
+ },
+ {
+ "x": 65.8,
+ "y": 13.01
+ },
+ {
+ "x": 65.37,
+ "y": 12.9
+ },
+ {
+ "x": 65.51,
+ "y": 12.5
+ },
+ {
+ "x": 66.65,
+ "y": 11.29
+ },
+ {
+ "x": 67.87,
+ "y": 11.74
+ },
+ {
+ "x": 67.17,
+ "y": 11.02
+ },
+ {
+ "x": 67.88,
+ "y": 9.75
+ },
+ {
+ "x": 68.92,
+ "y": 10.35
+ },
+ {
+ "x": 68.42,
+ "y": 9.28
+ },
+ {
+ "x": 67.57,
+ "y": 8.96
+ },
+ {
+ "x": 68,
+ "y": 8.25
+ },
+ {
+ "x": 68.67,
+ "y": 9
+ },
+ {
+ "x": 68.68,
+ "y": 7.31
+ },
+ {
+ "x": 69.19,
+ "y": 7.9
+ },
+ {
+ "x": 69.79,
+ "y": 7.35
+ },
+ {
+ "x": 69.46,
+ "y": 8.2
+ },
+ {
+ "x": 69.89,
+ "y": 8.37
+ },
+ {
+ "x": 70.13,
+ "y": 7.8
+ },
+ {
+ "x": 70.39,
+ "y": 8.9
+ },
+ {
+ "x": 70.73,
+ "y": 7.31
+ },
+ {
+ "x": 71.21,
+ "y": 7.77
+ },
+ {
+ "x": 70.94,
+ "y": 8.47
+ },
+ {
+ "x": 71.56,
+ "y": 8.01
+ },
+ {
+ "x": 72.31,
+ "y": 8.28
+ },
+ {
+ "x": 69.91,
+ "y": 11.34
+ },
+ {
+ "x": 70.39,
+ "y": 11.14
+ },
+ {
+ "x": 69.87,
+ "y": 11.46
+ },
+ {
+ "x": 70.51,
+ "y": 11.74
+ },
+ {
+ "x": 69.93,
+ "y": 12.55
+ },
+ {
+ "x": 70.27,
+ "y": 12.99
+ },
+ {
+ "x": 69.64,
+ "y": 13.64
+ },
+ {
+ "x": 69.71,
+ "y": 15.01
+ },
+ {
+ "x": 69.97,
+ "y": 14.27
+ },
+ {
+ "x": 70.02,
+ "y": 14.86
+ },
+ {
+ "x": 70.41,
+ "y": 14.7
+ },
+ {
+ "x": 71.22,
+ "y": 13.07
+ },
+ {
+ "x": 70.94,
+ "y": 12.7
+ },
+ {
+ "x": 74.24,
+ "y": 7.54
+ },
+ {
+ "x": 74.46,
+ "y": 9.37
+ },
+ {
+ "x": 73.48,
+ "y": 10.12
+ },
+ {
+ "x": 74.36,
+ "y": 10.18
+ },
+ {
+ "x": 73.94,
+ "y": 12.52
+ },
+ {
+ "x": 74.8,
+ "y": 11.54
+ },
+ {
+ "x": 75.62,
+ "y": 11.63
+ },
+ {
+ "x": 75.31,
+ "y": 10.67
+ },
+ {
+ "x": 76.08,
+ "y": 10.65
+ },
+ {
+ "x": 75.64,
+ "y": 9.43
+ },
+ {
+ "x": 76.26,
+ "y": 9.31
+ },
+ {
+ "x": 76.24,
+ "y": 8.62
+ },
+ {
+ "x": 77.1,
+ "y": 8.78
+ },
+ {
+ "x": 75.71,
+ "y": 7.53
+ },
+ {
+ "x": 76.31,
+ "y": 7.6
+ },
+ {
+ "x": 76.04,
+ "y": 6.87
+ },
+ {
+ "x": 76.89,
+ "y": 7.49
+ },
+ {
+ "x": 77.16,
+ "y": 6
+ },
+ {
+ "x": 77.36,
+ "y": 6.59
+ },
+ {
+ "x": 78.37,
+ "y": 6.75
+ },
+ {
+ "x": 78.73,
+ "y": 6.37
+ },
+ {
+ "x": 78.72,
+ "y": 7.25
+ },
+ {
+ "x": 79.69,
+ "y": 7.34
+ },
+ {
+ "x": 78.89,
+ "y": 8.87
+ },
+ {
+ "x": 77.47,
+ "y": 8.9
+ },
+ {
+ "x": 77.51,
+ "y": 9.31
+ },
+ {
+ "x": 78.51,
+ "y": 9.37
+ },
+ {
+ "x": 77.16,
+ "y": 10.47
+ },
+ {
+ "x": 78.99,
+ "y": 9.65
+ },
+ {
+ "x": 77.72,
+ "y": 11.52
+ },
+ {
+ "x": 77.82,
+ "y": 11.98
+ },
+ {
+ "x": 77.99,
+ "y": 11.46
+ },
+ {
+ "x": 78.67,
+ "y": 11.34
+ },
+ {
+ "x": 78.5,
+ "y": 11.86
+ },
+ {
+ "x": 79.09,
+ "y": 11.22
+ },
+ {
+ "x": 78.6,
+ "y": 12.36
+ },
+ {
+ "x": 78.62,
+ "y": 14.42
+ },
+ {
+ "x": 78.18,
+ "y": 14.95
+ },
+ {
+ "x": 78.76,
+ "y": 14.27
+ },
+ {
+ "x": 78.84,
+ "y": 12.09
+ },
+ {
+ "x": 79.24,
+ "y": 11.43
+ },
+ {
+ "x": 79.57,
+ "y": 11.8
+ },
+ {
+ "x": 79.28,
+ "y": 10.87
+ },
+ {
+ "x": 80.38,
+ "y": 8.2
+ },
+ {
+ "x": 81.19,
+ "y": 8.13
+ },
+ {
+ "x": 82.1,
+ "y": 8.96
+ },
+ {
+ "x": 81.82,
+ "y": 10.08
+ },
+ {
+ "x": 82.93,
+ "y": 9.3
+ },
+ {
+ "x": 82.87,
+ "y": 10.36
+ },
+ {
+ "x": 84.07,
+ "y": 9.59
+ },
+ {
+ "x": 84.05,
+ "y": 10.12
+ },
+ {
+ "x": 84.75,
+ "y": 10.56
+ },
+ {
+ "x": 83.78,
+ "y": 11.05
+ },
+ {
+ "x": 85.19,
+ "y": 10.88
+ },
+ {
+ "x": 86.77,
+ "y": 12.49
+ },
+ {
+ "x": 86.81,
+ "y": 13.18
+ },
+ {
+ "x": 85.32,
+ "y": 13.48
+ },
+ {
+ "x": 84.22,
+ "y": 14.95
+ },
+ {
+ "x": 79.88,
+ "y": 14.08
+ },
+ {
+ "x": 80.27,
+ "y": 14.15
+ },
+ {
+ "x": 79.92,
+ "y": 14.65
+ },
+ {
+ "x": 80.54,
+ "y": 14.72
+ },
+ {
+ "x": 80.21,
+ "y": 14.83
+ },
+ {
+ "x": 82.89,
+ "y": 15.79
+ },
+ {
+ "x": 81.98,
+ "y": 16.69
+ },
+ {
+ "x": 83.05,
+ "y": 16.3
+ },
+ {
+ "x": 82.33,
+ "y": 18.3
+ },
+ {
+ "x": 83.86,
+ "y": 17.37
+ },
+ {
+ "x": 83.6,
+ "y": 18.09
+ },
+ {
+ "x": 83.97,
+ "y": 17.66
+ },
+ {
+ "x": 84.3,
+ "y": 18.09
+ },
+ {
+ "x": 84.24,
+ "y": 16.53
+ },
+ {
+ "x": 84.59,
+ "y": 16.47
+ },
+ {
+ "x": 84.72,
+ "y": 18.2
+ },
+ {
+ "x": 85.13,
+ "y": 17.03
+ },
+ {
+ "x": 85.79,
+ "y": 17.42
+ },
+ {
+ "x": 86.14,
+ "y": 17.13
+ },
+ {
+ "x": 86.39,
+ "y": 18.21
+ },
+ {
+ "x": 86.3,
+ "y": 19.25
+ },
+ {
+ "x": 85.9,
+ "y": 19.43
+ },
+ {
+ "x": 84.11,
+ "y": 18.52
+ },
+ {
+ "x": 84.43,
+ "y": 19.13
+ },
+ {
+ "x": 84.12,
+ "y": 20.07
+ },
+ {
+ "x": 83.63,
+ "y": 20.68
+ },
+ {
+ "x": 82.02,
+ "y": 21.19
+ },
+ {
+ "x": 81.14,
+ "y": 23.3
+ },
+ {
+ "x": 80.47,
+ "y": 22.74
+ },
+ {
+ "x": 81.93,
+ "y": 19.89
+ },
+ {
+ "x": 81.37,
+ "y": 18.28
+ },
+ {
+ "x": 79.28,
+ "y": 17.16
+ },
+ {
+ "x": 77.77,
+ "y": 14.92
+ },
+ {
+ "x": 77.05,
+ "y": 15.03
+ },
+ {
+ "x": 75.61,
+ "y": 16.34
+ },
+ {
+ "x": 73.92,
+ "y": 16.21
+ },
+ {
+ "x": 73.07,
+ "y": 17.86
+ },
+ {
+ "x": 72.53,
+ "y": 18.08
+ },
+ {
+ "x": 71.77,
+ "y": 21.85
+ },
+ {
+ "x": 71.94,
+ "y": 23.63
+ },
+ {
+ "x": 71.47,
+ "y": 24.56
+ },
+ {
+ "x": 70.27,
+ "y": 25.04
+ },
+ {
+ "x": 70.07,
+ "y": 26.32
+ },
+ {
+ "x": 69.43,
+ "y": 27.02
+ },
+ {
+ "x": 66.68,
+ "y": 25.01
+ },
+ {
+ "x": 66.14,
+ "y": 25.8
+ },
+ {
+ "x": 64.63,
+ "y": 26.55
+ },
+ {
+ "x": 64.12,
+ "y": 26.02
+ },
+ {
+ "x": 62.41,
+ "y": 25.82
+ },
+ {
+ "x": 60.24,
+ "y": 21.43
+ },
+ {
+ "x": 59.32,
+ "y": 21.27
+ },
+ {
+ "x": 58.72,
+ "y": 21.69
+ },
+ {
+ "x": 58.64,
+ "y": 23.29
+ },
+ {
+ "x": 57.64,
+ "y": 22.8
+ },
+ {
+ "x": 57.38,
+ "y": 23.29
}
]
]
diff --git a/frontend/data/outlines/switzerland.json b/frontend/data/outlines/switzerland.json
index 09c1187..30ce588 100644
--- a/frontend/data/outlines/switzerland.json
+++ b/frontend/data/outlines/switzerland.json
@@ -9,317 +9,781 @@
},
"outline": {
"type": "Polygon",
- "bounds": {
+ "geoBounds": {
"minLon": 5.954809204000128,
"maxLon": 10.466626831000013,
"minLat": 45.82071848599999,
"maxLat": 47.801166077000076
},
+ "projectedBounds": {
+ "minX": 0.103931,
+ "maxX": 0.182677,
+ "minY": 0.901778,
+ "maxY": 0.952291
+ },
+ "projection": {
+ "padding": 6,
+ "scale": 1117.516047,
+ "xOffset": 6,
+ "yOffset": 21.775893
+ },
"rings": [
[
{
- "x": 99.72,
- "y": 47.3
+ "x": 93.75,
+ "y": 48.73
},
{
- "x": 97.84,
- "y": 57
+ "x": 93.04,
+ "y": 50.6
},
{
- "x": 99.5,
- "y": 63.8
+ "x": 93.26,
+ "y": 51.83
},
{
- "x": 96.2,
- "y": 63.12
+ "x": 92.1,
+ "y": 54.2
},
{
- "x": 93.92,
- "y": 59.3
+ "x": 92.62,
+ "y": 55.16
},
{
- "x": 90.38,
- "y": 64.04
+ "x": 93.85,
+ "y": 55.59
},
{
- "x": 90.24,
- "y": 68.41
+ "x": 93.56,
+ "y": 58.03
},
{
- "x": 92.78,
- "y": 70.6
+ "x": 90.66,
+ "y": 57.65
},
{
- "x": 92.27,
- "y": 79.28
+ "x": 89.48,
+ "y": 56.96
},
{
- "x": 90.6,
- "y": 79.81
+ "x": 89.15,
+ "y": 55.49
},
{
- "x": 87.85,
- "y": 72.21
+ "x": 86.61,
+ "y": 56.13
},
{
- "x": 83.45,
- "y": 73.23
+ "x": 85.54,
+ "y": 58.16
},
{
- "x": 82.44,
- "y": 76.21
+ "x": 85.76,
+ "y": 60.03
},
{
- "x": 79.38,
- "y": 75.87
+ "x": 85.41,
+ "y": 60.62
},
{
- "x": 77.13,
+ "x": 87.64,
+ "y": 61.84
+ },
+ {
+ "x": 86.7,
+ "y": 63.68
+ },
+ {
+ "x": 88,
+ "y": 65.81
+ },
+ {
+ "x": 87.2,
+ "y": 66.7
+ },
+ {
+ "x": 85.73,
+ "y": 67
+ },
+ {
+ "x": 85.52,
+ "y": 65.88
+ },
+ {
+ "x": 84.46,
+ "y": 64.81
+ },
+ {
+ "x": 84.2,
+ "y": 63.17
+ },
+ {
+ "x": 83.31,
+ "y": 62.74
+ },
+ {
+ "x": 80.38,
+ "y": 63.66
+ },
+ {
+ "x": 79.44,
+ "y": 63.31
+ },
+ {
+ "x": 79.21,
+ "y": 64.42
+ },
+ {
+ "x": 78.55,
+ "y": 64.98
+ },
+ {
+ "x": 75.86,
+ "y": 64.79
+ },
+ {
+ "x": 74.06,
+ "y": 62.63
+ },
+ {
+ "x": 73.87,
+ "y": 59.14
+ },
+ {
+ "x": 72.9,
+ "y": 60.05
+ },
+ {
+ "x": 71.85,
+ "y": 59.05
+ },
+ {
+ "x": 70.53,
+ "y": 59.52
+ },
+ {
+ "x": 70.04,
+ "y": 60.89
+ },
+ {
+ "x": 70.76,
+ "y": 63.87
+ },
+ {
+ "x": 69.78,
+ "y": 66.69
+ },
+ {
+ "x": 68.58,
+ "y": 68.35
+ },
+ {
+ "x": 67.16,
+ "y": 69.31
+ },
+ {
+ "x": 66.55,
+ "y": 71.46
+ },
+ {
+ "x": 65.35,
+ "y": 72.41
+ },
+ {
+ "x": 65.7,
+ "y": 73.39
+ },
+ {
+ "x": 65.01,
+ "y": 74.2
+ },
+ {
+ "x": 66.63,
+ "y": 76.03
+ },
+ {
+ "x": 65.44,
+ "y": 78.22
+ },
+ {
+ "x": 63.44,
+ "y": 78.07
+ },
+ {
+ "x": 63.68,
+ "y": 76.47
+ },
+ {
+ "x": 62.88,
+ "y": 74.68
+ },
+ {
+ "x": 60.87,
+ "y": 73.67
+ },
+ {
+ "x": 62.16,
+ "y": 71.33
+ },
+ {
+ "x": 61.67,
+ "y": 70.68
+ },
+ {
+ "x": 60.01,
+ "y": 70.12
+ },
+ {
+ "x": 59.1,
+ "y": 70.51
+ },
+ {
+ "x": 57.63,
+ "y": 69.75
+ },
+ {
+ "x": 55.84,
+ "y": 67.35
+ },
+ {
+ "x": 54.44,
+ "y": 66.58
+ },
+ {
+ "x": 54.15,
+ "y": 65.43
+ },
+ {
+ "x": 54.58,
+ "y": 61.58
+ },
+ {
+ "x": 54.24,
+ "y": 60.55
+ },
+ {
+ "x": 53.68,
+ "y": 60.45
+ },
+ {
+ "x": 52.06,
+ "y": 60.97
+ },
+ {
+ "x": 51.38,
+ "y": 62.77
+ },
+ {
+ "x": 49.65,
+ "y": 64.49
+ },
+ {
+ "x": 47.59,
+ "y": 65.55
+ },
+ {
+ "x": 47.32,
+ "y": 66.06
+ },
+ {
+ "x": 48.42,
+ "y": 67.68
+ },
+ {
+ "x": 48.05,
+ "y": 69.63
+ },
+ {
+ "x": 46.38,
+ "y": 70.64
+ },
+ {
+ "x": 45.61,
+ "y": 73.22
+ },
+ {
+ "x": 43.62,
+ "y": 73.93
+ },
+ {
+ "x": 42.6,
+ "y": 75.6
+ },
+ {
+ "x": 39.92,
+ "y": 75.2
+ },
+ {
+ "x": 38.93,
+ "y": 74.14
+ },
+ {
+ "x": 36.94,
+ "y": 73.64
+ },
+ {
+ "x": 33.44,
+ "y": 75.78
+ },
+ {
+ "x": 31.98,
+ "y": 75.63
+ },
+ {
+ "x": 29.38,
+ "y": 76.66
+ },
+ {
+ "x": 27.69,
+ "y": 76.28
+ },
+ {
+ "x": 26.68,
+ "y": 75.07
+ },
+ {
+ "x": 26.15,
+ "y": 73.39
+ },
+ {
+ "x": 24.73,
+ "y": 71.83
+ },
+ {
+ "x": 23.48,
+ "y": 71.8
+ },
+ {
+ "x": 23.84,
+ "y": 70.04
+ },
+ {
+ "x": 21.98,
+ "y": 69.41
+ },
+ {
+ "x": 21.99,
+ "y": 67.97
+ },
+ {
+ "x": 23.02,
+ "y": 65.61
+ },
+ {
+ "x": 21.52,
+ "y": 63.47
+ },
+ {
+ "x": 22.23,
+ "y": 61.53
+ },
+ {
+ "x": 18.85,
+ "y": 60.34
+ },
+ {
+ "x": 16.3,
+ "y": 60.55
+ },
+ {
+ "x": 14.64,
+ "y": 61.7
+ },
+ {
+ "x": 12.76,
+ "y": 62.08
+ },
+ {
+ "x": 11.06,
+ "y": 64.32
+ },
+ {
+ "x": 11.52,
+ "y": 65.66
+ },
+ {
+ "x": 12.27,
"y": 65.79
},
{
- "x": 73.33,
- "y": 66.45
+ "x": 12.37,
+ "y": 66.44
},
{
- "x": 72.48,
- "y": 79.27
+ "x": 8.99,
+ "y": 69.3
},
{
- "x": 67.44,
- "y": 89.54
+ "x": 7.43,
+ "y": 69.04
},
{
- "x": 67.55,
- "y": 100
+ "x": 6.08,
+ "y": 69.53
},
{
- "x": 65.28,
- "y": 99.71
+ "x": 6.55,
+ "y": 68.39
},
{
- "x": 64.63,
- "y": 93.62
+ "x": 6.07,
+ "y": 67.24
},
{
- "x": 62.35,
- "y": 91.8
+ "x": 8.63,
+ "y": 66.27
},
{
- "x": 63.26,
- "y": 86.42
+ "x": 9.54,
+ "y": 63.08
},
{
- "x": 58.67,
- "y": 84.75
+ "x": 8.99,
+ "y": 62.03
},
{
- "x": 55.04,
- "y": 79.06
+ "x": 7.94,
+ "y": 61.38
},
{
- "x": 54.18,
- "y": 68.12
+ "x": 8.13,
+ "y": 59.91
},
{
- "x": 47.27,
- "y": 77.22
+ "x": 9.72,
+ "y": 57.63
},
{
- "x": 47.78,
- "y": 84.54
+ "x": 9.19,
+ "y": 56.73
},
{
- "x": 41.59,
- "y": 95.27
+ "x": 15.25,
+ "y": 51.69
},
{
- "x": 35.16,
- "y": 91.75
+ "x": 15.51,
+ "y": 46.46
},
{
- "x": 31.18,
- "y": 95.6
+ "x": 18.56,
+ "y": 45.25
},
{
- "x": 24.65,
- "y": 96.49
+ "x": 19.86,
+ "y": 44.25
},
{
- "x": 18.16,
- "y": 84.14
+ "x": 20.33,
+ "y": 42.62
},
{
- "x": 18.45,
- "y": 70.03
+ "x": 25.53,
+ "y": 37.83
},
{
- "x": 14.6,
- "y": 67.93
+ "x": 25.58,
+ "y": 36.53
},
{
- "x": 7.69,
- "y": 71.03
+ "x": 27.1,
+ "y": 35.41
},
{
- "x": 5.75,
- "y": 75.02
+ "x": 26.46,
+ "y": 34.3
},
{
- "x": 7.23,
- "y": 78.83
+ "x": 23.78,
+ "y": 34.7
},
{
- "x": 3.39,
- "y": 83.95
+ "x": 24.94,
+ "y": 32.66
},
{
- "x": 0.09,
- "y": 84.36
+ "x": 26.21,
+ "y": 31.87
},
{
- "x": 4.02,
- "y": 72.8
+ "x": 25.86,
+ "y": 30.81
},
{
- "x": 2.2,
- "y": 69.77
+ "x": 29.91,
+ "y": 30.83
},
{
- "x": 3.63,
- "y": 61.49
+ "x": 29.67,
+ "y": 32.12
},
{
- "x": 10.51,
- "y": 52.53
+ "x": 31.03,
+ "y": 32.9
},
{
- "x": 10.81,
- "y": 43.27
+ "x": 34.31,
+ "y": 32.28
},
{
- "x": 15.75,
- "y": 39.38
+ "x": 34.76,
+ "y": 31.5
},
{
- "x": 23.98,
- "y": 23.82
+ "x": 34.47,
+ "y": 30.78
},
{
- "x": 23.25,
- "y": 21.86
+ "x": 35.84,
+ "y": 30.7
},
{
- "x": 20.21,
- "y": 22.57
+ "x": 35.69,
+ "y": 30.07
},
{
- "x": 22.57,
- "y": 15.76
+ "x": 36.24,
+ "y": 29.54
},
{
- "x": 27.17,
- "y": 15.8
+ "x": 35.8,
+ "y": 29.27
},
{
- "x": 28.44,
- "y": 19.41
+ "x": 38.81,
+ "y": 27.75
},
{
- "x": 32.17,
- "y": 18.33
+ "x": 39.25,
+ "y": 27.7
},
{
- "x": 37.28,
- "y": 10.41
+ "x": 39,
+ "y": 28.43
},
{
- "x": 38.31,
- "y": 12.97
+ "x": 38.28,
+ "y": 28.63
},
{
- "x": 41.33,
- "y": 10.39
+ "x": 39.72,
+ "y": 29.22
},
{
- "x": 46.27,
- "y": 12.15
+ "x": 41.34,
+ "y": 28.88
},
{
- "x": 50.49,
- "y": 9.05
+ "x": 42.37,
+ "y": 27.74
},
{
- "x": 57.76,
- "y": 10.69
+ "x": 43.9,
+ "y": 27.96
},
{
- "x": 58.79,
- "y": 7.32
+ "x": 44.18,
+ "y": 28.75
},
{
- "x": 54,
- "y": 6.85
+ "x": 46.71,
+ "y": 28.75
},
{
- "x": 57.7,
- "y": 0
+ "x": 50.43,
+ "y": 26.97
},
{
- "x": 61.14,
- "y": 2.21
+ "x": 51.52,
+ "y": 27.15
},
{
- "x": 61.22,
- "y": 5.38
+ "x": 51.87,
+ "y": 27.83
},
{
- "x": 63.01,
- "y": 4.1
+ "x": 52.8,
+ "y": 28.15
},
{
- "x": 65.41,
- "y": 7.54
+ "x": 54.64,
+ "y": 28.06
},
{
- "x": 71.56,
- "y": 6.6
+ "x": 54.9,
+ "y": 27.43
},
{
- "x": 79.63,
- "y": 13.46
+ "x": 56.08,
+ "y": 26.97
},
{
- "x": 81.89,
- "y": 19.77
+ "x": 56.83,
+ "y": 27.91
},
{
- "x": 78.07,
- "y": 37.23
+ "x": 57.74,
+ "y": 25.98
},
{
- "x": 86.51,
- "y": 39.67
+ "x": 56.97,
+ "y": 25.78
},
{
- "x": 86.89,
- "y": 44.12
+ "x": 54.83,
+ "y": 26.45
},
{
- "x": 92.12,
- "y": 48.17
+ "x": 53.52,
+ "y": 25.71
},
{
- "x": 97.93,
- "y": 40.64
+ "x": 53.54,
+ "y": 24.72
},
{
- "x": 99.66,
- "y": 46.22
+ "x": 54.43,
+ "y": 24.04
},
{
- "x": 99.72,
- "y": 47.3
+ "x": 54.93,
+ "y": 22.86
+ },
+ {
+ "x": 56.65,
+ "y": 22.41
+ },
+ {
+ "x": 56.78,
+ "y": 21.78
+ },
+ {
+ "x": 57.62,
+ "y": 21.97
+ },
+ {
+ "x": 57.93,
+ "y": 23.05
+ },
+ {
+ "x": 58.45,
+ "y": 22.07
+ },
+ {
+ "x": 59.19,
+ "y": 23.01
+ },
+ {
+ "x": 59.8,
+ "y": 23.05
+ },
+ {
+ "x": 59.88,
+ "y": 24.87
+ },
+ {
+ "x": 60.91,
+ "y": 24.85
+ },
+ {
+ "x": 60.92,
+ "y": 24.11
+ },
+ {
+ "x": 61.45,
+ "y": 24.13
+ },
+ {
+ "x": 63.09,
+ "y": 25.98
+ },
+ {
+ "x": 64.33,
+ "y": 26.03
+ },
+ {
+ "x": 65.72,
+ "y": 25.32
+ },
+ {
+ "x": 70.72,
+ "y": 26.16
+ },
+ {
+ "x": 76.07,
+ "y": 29.5
+ },
+ {
+ "x": 76.79,
+ "y": 31.05
+ },
+ {
+ "x": 78.08,
+ "y": 31.88
+ },
+ {
+ "x": 77.87,
+ "y": 33.54
+ },
+ {
+ "x": 74.9,
+ "y": 38.84
+ },
+ {
+ "x": 75.39,
+ "y": 41.77
+ },
+ {
+ "x": 74.7,
+ "y": 43.03
+ },
+ {
+ "x": 78.44,
+ "y": 43.25
+ },
+ {
+ "x": 82.13,
+ "y": 44.42
+ },
+ {
+ "x": 82.46,
+ "y": 46.94
+ },
+ {
+ "x": 87.07,
+ "y": 49.23
+ },
+ {
+ "x": 88.83,
+ "y": 48.67
+ },
+ {
+ "x": 89.48,
+ "y": 47.05
+ },
+ {
+ "x": 90.67,
+ "y": 47.07
+ },
+ {
+ "x": 91.02,
+ "y": 45.88
+ },
+ {
+ "x": 92.18,
+ "y": 44.97
+ },
+ {
+ "x": 93.84,
+ "y": 46.67
+ },
+ {
+ "x": 93.7,
+ "y": 48.13
+ },
+ {
+ "x": 93.75,
+ "y": 48.73
}
]
]
diff --git a/frontend/game.html b/frontend/game.html
index 90f225f..91fa79d 100644
--- a/frontend/game.html
+++ b/frontend/game.html
@@ -114,7 +114,10 @@
Clear
+
diff --git a/frontend/package.json b/frontend/package.json
index a757b0c..a0d6134 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -9,7 +9,8 @@
"scripts": {
"format": "biome format --write",
"lint": "biome lint",
- "lint:fix": "biome lint --write"
+ "lint:fix": "biome lint --write",
+ "test:scoring": "node scripts/scoring.test.mjs"
},
"devDependencies": {
"@biomejs/biome": "2.3.14"
diff --git a/frontend/scripts/countries.js b/frontend/scripts/countries.js
index 8fb9af3..9bc8a28 100644
--- a/frontend/scripts/countries.js
+++ b/frontend/scripts/countries.js
@@ -1,115 +1,127 @@
-// countries.js — country data and helpers
+// countries.js - country data and helpers
/**
+ * @typedef {{ name: string, lon: number, lat: number }} CitySource
* @typedef {{ name: string, x: number, y: number }} City
- * @typedef {{ name: string, hint: string, cities: City[] }} Country
+ * @typedef {{ minLon: number, maxLon: number, minLat: number, maxLat: number }} Bounds
+ * @typedef {{ minX: number, maxX: number, minY: number, maxY: number }} ProjectedBounds
+ * @typedef {{ padding: number, scale: number, xOffset: number, yOffset: number }} Projection
+ * @typedef {{ type: string, geoBounds?: Bounds, projectedBounds?: ProjectedBounds, bounds?: Bounds, projection?: Projection, rings: { x: number, y: number }[][] }} CountryOutline
+ * @typedef {{ name: string, hint: string, file: string, cities: CitySource[] }} CountrySource
+ * @typedef {{ name: string, hint: string, cities: City[], outline: CountryOutline }} Country
*/
-/** @type {Country[]} */
-const COUNTRIES_DATA = [
- {
- name: "Switzerland",
- hint: "Alpine country in Central Europe",
- cities: [
- { name: "Bern", x: 48, y: 58 },
- { name: "Zürich", x: 58, y: 38 },
- { name: "Geneva", x: 22, y: 72 },
- ],
- },
- {
- name: "Norway",
- hint: "Scandinavian country with long coastline",
- cities: [
- { name: "Oslo", x: 55, y: 72 },
- { name: "Bergen", x: 32, y: 60 },
- { name: "Tromsø", x: 62, y: 18 },
- ],
- },
- {
- name: "Italy",
- hint: "Boot-shaped peninsula in Southern Europe",
- cities: [
- { name: "Rome", x: 52, y: 58 },
- { name: "Milan", x: 42, y: 22 },
- { name: "Naples", x: 58, y: 72 },
- ],
- },
- {
- name: "Japan",
- hint: "Island nation in East Asia",
- cities: [
- { name: "Tokyo", x: 72, y: 48 },
- { name: "Osaka", x: 58, y: 58 },
- { name: "Sapporo", x: 70, y: 22 },
- ],
- },
- {
- name: "Brazil",
- hint: "Largest country in South America",
- cities: [
- { name: "Brasília", x: 58, y: 52 },
- { name: "São Paulo", x: 60, y: 68 },
- { name: "Manaus", x: 38, y: 38 },
- ],
- },
- {
- name: "Australia",
- hint: "Continent and country in the Southern Hemisphere",
- cities: [
- { name: "Canberra", x: 72, y: 72 },
- { name: "Sydney", x: 78, y: 68 },
- { name: "Perth", x: 22, y: 65 },
- ],
- },
- {
- name: "France",
- hint: "Western Europe, roughly hexagonal shape",
- cities: [
- { name: "Paris", x: 50, y: 32 },
- { name: "Lyon", x: 58, y: 55 },
- { name: "Marseille", x: 58, y: 72 },
- ],
- },
- {
- name: "India",
- hint: "Large peninsula in South Asia",
- cities: [
- { name: "New Delhi", x: 46, y: 28 },
- { name: "Mumbai", x: 32, y: 55 },
- { name: "Chennai", x: 52, y: 72 },
- ],
- },
- {
- name: "Canada",
- hint: "Second largest country in the world",
- cities: [
- { name: "Ottawa", x: 62, y: 52 },
- { name: "Vancouver", x: 22, y: 55 },
- { name: "Toronto", x: 60, y: 58 },
- ],
- },
- {
- name: "Germany",
- hint: "Central European country",
- cities: [
- { name: "Berlin", x: 58, y: 28 },
- { name: "Munich", x: 48, y: 68 },
- { name: "Hamburg", x: 42, y: 18 },
- ],
- },
-];
+const MAX_MERCATOR_LAT = 85.05112878;
/** @type {Country[]} */
let data = [];
/**
- * Load country data into memory. Safe to call multiple times.
- * Returns a Promise for future compatibility with a real API fetch.
+ * Load country data and outlines into memory. Safe to call multiple times.
* @returns {Promise}
*/
-export function loadCountries() {
- if (!data.length) data = COUNTRIES_DATA;
- return Promise.resolve(data);
+export async function loadCountries() {
+ if (data.length) return data;
+
+ const countries = await loadCountrySources();
+ data = await Promise.all(
+ countries.map(async (country) => {
+ const response = await fetch(
+ new URL(`../data/outlines/${country.file}`, import.meta.url),
+ );
+ if (!response.ok) {
+ throw new Error(`Could not load outline for ${country.name}.`);
+ }
+
+ const outlineData = await response.json();
+ const outline = outlineData.outline;
+ return {
+ name: country.name,
+ hint: country.hint,
+ cities: projectCities(country.cities, outline),
+ outline,
+ };
+ }),
+ );
+ return data;
+}
+
+/**
+ * Load and validate country metadata from managed JSON.
+ * @returns {Promise}
+ */
+async function loadCountrySources() {
+ const response = await fetch(new URL("../data/countries.json", import.meta.url));
+ if (!response.ok) {
+ throw new Error("Could not load country metadata.");
+ }
+
+ const countries = await response.json();
+ if (!Array.isArray(countries)) {
+ throw new Error("Country metadata must be an array.");
+ }
+
+ return countries.map(validateCountrySource);
+}
+
+/**
+ * @param {unknown} value
+ * @param {number} index
+ * @returns {CountrySource}
+ */
+function validateCountrySource(value, index) {
+ if (!value || typeof value !== "object") {
+ throw new Error(`Country metadata entry ${index + 1} must be an object.`);
+ }
+
+ const country = /** @type {Record} */ (value);
+ if (typeof country.name !== "string" || country.name.trim() === "") {
+ throw new Error(`Country metadata entry ${index + 1} is missing a name.`);
+ }
+ if (typeof country.file !== "string" || country.file.trim() === "") {
+ throw new Error(`Country metadata entry ${country.name} is missing a file.`);
+ }
+ if (!Array.isArray(country.cities)) {
+ throw new Error(`Country metadata entry ${country.name} is missing cities.`);
+ }
+
+ return {
+ name: country.name,
+ file: country.file,
+ hint: typeof country.hint === "string" ? country.hint : "",
+ cities: country.cities.map((city, cityIndex) =>
+ validateCitySource(city, country.name, cityIndex),
+ ),
+ };
+}
+
+/**
+ * @param {unknown} value
+ * @param {string} countryName
+ * @param {number} index
+ * @returns {CitySource}
+ */
+function validateCitySource(value, countryName, index) {
+ if (!value || typeof value !== "object") {
+ throw new Error(`City ${index + 1} for ${countryName} must be an object.`);
+ }
+
+ const city = /** @type {Record} */ (value);
+ if (typeof city.name !== "string" || city.name.trim() === "") {
+ throw new Error(`City ${index + 1} for ${countryName} is missing a name.`);
+ }
+ if (typeof city.lon !== "number" || !Number.isFinite(city.lon)) {
+ throw new Error(`${city.name} for ${countryName} is missing a numeric lon.`);
+ }
+ if (typeof city.lat !== "number" || !Number.isFinite(city.lat)) {
+ throw new Error(`${city.name} for ${countryName} is missing a numeric lat.`);
+ }
+
+ return {
+ name: city.name,
+ lon: city.lon,
+ lat: city.lat,
+ };
}
/**
@@ -130,3 +142,86 @@ export function getCities(countryName) {
const country = data.find((c) => c.name === countryName);
return country ? country.cities : [];
}
+
+/**
+ * @param {CitySource[]} cities
+ * @param {CountryOutline} outline
+ * @returns {City[]}
+ */
+function projectCities(cities, outline) {
+ const { bounds, geoBounds, projectedBounds, projection } = outline;
+ if (projectedBounds && projection) {
+ return cities.map((city) => {
+ const projected = mercatorProject(city.lon, city.lat);
+ return {
+ name: city.name,
+ x: clampPercent(projectProjectedX(projected.x, projectedBounds, projection)),
+ y: clampPercent(projectProjectedY(projected.y, projectedBounds, projection)),
+ };
+ });
+ }
+
+ if (!bounds && !geoBounds) return [];
+ const fallbackBounds = bounds || geoBounds;
+ if (!fallbackBounds) return [];
+ const lonSpan = fallbackBounds.maxLon - fallbackBounds.minLon;
+ const latSpan = fallbackBounds.maxLat - fallbackBounds.minLat;
+
+ return cities.map((city) => ({
+ name: city.name,
+ x: clampPercent(
+ lonSpan === 0 ? 50 : ((city.lon - fallbackBounds.minLon) / lonSpan) * 100,
+ ),
+ y: clampPercent(
+ latSpan === 0
+ ? 50
+ : (1 - (city.lat - fallbackBounds.minLat) / latSpan) * 100,
+ ),
+ }));
+}
+
+/**
+ * @param {number} lon
+ * @param {number} lat
+ * @returns {{ x: number, y: number }}
+ */
+function mercatorProject(lon, lat) {
+ const clampedLat = Math.max(
+ -MAX_MERCATOR_LAT,
+ Math.min(MAX_MERCATOR_LAT, lat),
+ );
+ const lonRad = (lon * Math.PI) / 180;
+ const latRad = (clampedLat * Math.PI) / 180;
+
+ return {
+ x: lonRad,
+ y: Math.log(Math.tan(Math.PI / 4 + latRad / 2)),
+ };
+}
+
+/**
+ * @param {number} x
+ * @param {ProjectedBounds} bounds
+ * @param {Projection} projection
+ */
+function projectProjectedX(x, bounds, projection) {
+ return projection.scale === 0
+ ? 50
+ : projection.xOffset + (x - bounds.minX) * projection.scale;
+}
+
+/**
+ * @param {number} y
+ * @param {ProjectedBounds} bounds
+ * @param {Projection} projection
+ */
+function projectProjectedY(y, bounds, projection) {
+ return projection.scale === 0
+ ? 50
+ : projection.yOffset + (bounds.maxY - y) * projection.scale;
+}
+
+/** @param {number} value */
+function clampPercent(value) {
+ return Math.max(0, Math.min(100, Math.round(value * 100) / 100));
+}
diff --git a/frontend/scripts/drawing.js b/frontend/scripts/drawing.js
index b36a810..ba0d232 100644
--- a/frontend/scripts/drawing.js
+++ b/frontend/scripts/drawing.js
@@ -7,9 +7,13 @@ let ctx;
let isDrawing = false;
/** @type {{ x: number, y: number }[]} */
-let points = [];
+let currentStroke = [];
+/** @type {{ x: number, y: number }[][]} */
+let strokes = [];
/** @type {{ name: string, x: number, y: number }[]} */
let cities = [];
+/** @type {{ rings: { x: number, y: number }[][] } | null} */
+let referenceOutline = null;
const STROKE_COLOR = "#1a7fc4";
const STROKE_WIDTH = 2.5;
@@ -57,7 +61,8 @@ function onDown(e) {
e.preventDefault();
isDrawing = true;
const p = pos(e);
- points.push(p);
+ currentStroke = [p];
+ strokes.push(currentStroke);
ctx.beginPath();
ctx.moveTo(p.x, p.y);
}
@@ -67,7 +72,7 @@ function onMove(e) {
if (!isDrawing) return;
e.preventDefault();
const p = pos(e);
- points.push(p);
+ currentStroke.push(p);
ctx.lineTo(p.x, p.y);
ctx.strokeStyle = STROKE_COLOR;
ctx.lineWidth = STROKE_WIDTH;
@@ -80,12 +85,15 @@ function onMove(e) {
function onUp(e) {
if (!isDrawing) return;
isDrawing = false;
+ currentStroke = [];
e.preventDefault();
}
/** Clear the canvas and redraw city markers. */
export function clear() {
- points = [];
+ strokes = [];
+ currentStroke = [];
+ referenceOutline = null;
if (!ctx) return;
const { width, height } = canvas.getBoundingClientRect();
ctx.clearRect(0, 0, width, height);
@@ -104,11 +112,10 @@ export function setCities(cityList) {
/** Render all city markers with labels. */
function drawCities() {
if (!ctx || !cities.length) return;
- const { width, height } = canvas.getBoundingClientRect();
+ const viewport = getCanvasViewport();
cities.forEach((city) => {
- const cx = (city.x / 100) * width;
- const cy = (city.y / 100) * height;
+ const { x: cx, y: cy } = toCanvasPoint(city, viewport);
// Dot
ctx.beginPath();
@@ -139,31 +146,138 @@ function drawCities() {
});
}
-/** Redraw the full stroke from stored points. */
+/** Redraw all stored strokes. */
function redraw() {
drawCities();
- if (!points.length) return;
- ctx.beginPath();
- ctx.strokeStyle = STROKE_COLOR;
- ctx.lineWidth = STROKE_WIDTH;
- ctx.lineJoin = "round";
- ctx.lineCap = "round";
- points.forEach((p, i) => {
- if (i === 0) {
- ctx.moveTo(p.x, p.y);
- } else {
- ctx.lineTo(p.x, p.y);
- }
- });
- ctx.stroke();
+ for (const stroke of strokes) {
+ if (!stroke.length) continue;
+ ctx.beginPath();
+ ctx.strokeStyle = STROKE_COLOR;
+ ctx.lineWidth = STROKE_WIDTH;
+ ctx.lineJoin = "round";
+ ctx.lineCap = "round";
+ stroke.forEach((p, i) => {
+ if (i === 0) {
+ ctx.moveTo(p.x, p.y);
+ } else {
+ ctx.lineTo(p.x, p.y);
+ }
+ });
+ ctx.stroke();
+ }
+ drawReferenceOutline();
}
/**
- * Return a copy of the current drawn points.
+ * Return a flattened copy of all drawn points.
* @returns {{ x: number, y: number }[]}
*/
export function getPoints() {
- return [...points];
+ return strokes.flat();
+}
+
+/**
+ * Return drawn points in the same 0-100 space used by country outlines.
+ * @returns {{ x: number, y: number }[]}
+ */
+export function getNormalizedPoints() {
+ return getNormalizedRings().flat();
+}
+
+/**
+ * Return drawn strokes in the same 0-100 space used by country outlines.
+ * @returns {{ x: number, y: number }[][]}
+ */
+export function getNormalizedRings() {
+ if (!canvas) return [];
+ const viewport = getCanvasViewport();
+ if (viewport.size === 0) return [];
+
+ return strokes
+ .map((stroke) => stroke.map((point) => toNormalizedPoint(point, viewport)))
+ .filter((stroke) => stroke.length > 1);
+}
+
+/**
+ * Show the reference outline over the player's drawing.
+ * @param {{ rings: { x: number, y: number }[][] } | null} outline
+ */
+export function showReferenceOutline(outline) {
+ referenceOutline = outline;
+ redraw();
+}
+
+/** Draw the current reference outline if one is set. */
+function drawReferenceOutline() {
+ if (!ctx || !referenceOutline?.rings?.length) return;
+ const viewport = getCanvasViewport();
+ if (viewport.size === 0) return;
+
+ ctx.save();
+ ctx.strokeStyle = "rgba(224,92,92,0.95)";
+ ctx.lineWidth = 2;
+ ctx.lineJoin = "round";
+ ctx.lineCap = "round";
+ ctx.setLineDash([8, 5]);
+
+ for (const ring of referenceOutline.rings) {
+ if (!ring.length) continue;
+ ctx.beginPath();
+ ring.forEach((point, index) => {
+ const { x, y } = toCanvasPoint(point, viewport);
+ if (index === 0) {
+ ctx.moveTo(x, y);
+ } else {
+ ctx.lineTo(x, y);
+ }
+ });
+ ctx.stroke();
+ }
+
+ ctx.restore();
+}
+
+/**
+ * Return the square drawing viewport used for normalized 0-100 country space.
+ * @returns {{ x: number, y: number, size: number }}
+ */
+function getCanvasViewport() {
+ const { width, height } = canvas.getBoundingClientRect();
+ const size = Math.min(width, height);
+ return {
+ x: (width - size) / 2,
+ y: (height - size) / 2,
+ size,
+ };
+}
+
+/**
+ * @param {{ x: number, y: number }} point
+ * @param {{ x: number, y: number, size: number }} viewport
+ * @returns {{ x: number, y: number }}
+ */
+function toCanvasPoint(point, viewport) {
+ return {
+ x: viewport.x + (point.x / 100) * viewport.size,
+ y: viewport.y + (point.y / 100) * viewport.size,
+ };
+}
+
+/**
+ * @param {{ x: number, y: number }} point
+ * @param {{ x: number, y: number, size: number }} viewport
+ * @returns {{ x: number, y: number }}
+ */
+function toNormalizedPoint(point, viewport) {
+ return {
+ x: clampPercent(((point.x - viewport.x) / viewport.size) * 100),
+ y: clampPercent(((point.y - viewport.y) / viewport.size) * 100),
+ };
+}
+
+/** @param {number} value */
+function clampPercent(value) {
+ return Math.max(0, Math.min(100, Math.round(value * 100) / 100));
}
/** Remove event listeners and clean up. */
diff --git a/frontend/scripts/game.js b/frontend/scripts/game.js
index aa418b7..b4a863c 100644
--- a/frontend/scripts/game.js
+++ b/frontend/scripts/game.js
@@ -2,7 +2,13 @@
import { submitScore } from "./api.js";
import { getRandomCountries, loadCountries } from "./countries.js";
-import { clear, getPoints, init as initDrawing, setCities } from "./drawing.js";
+import {
+ clear,
+ getNormalizedRings,
+ init as initDrawing,
+ setCities,
+ showReferenceOutline,
+} from "./drawing.js";
import { calculateScore, getGrade } from "./scoring.js";
import { getLobbyName, getPlayerName, saveGameState } from "./storage.js";
@@ -25,6 +31,8 @@ let elTimerBar;
let elTimerWrap;
let elBtnClear;
let elBtnSubmit;
+let elBtnNext;
+let roundSubmitted = false;
/** Initialise DOM refs, drawing, events, countries, and the first round. */
async function initGame() {
@@ -36,6 +44,7 @@ async function initGame() {
elTimerWrap = document.querySelector(".game-timer");
elBtnClear = document.getElementById("btn-clear");
elBtnSubmit = document.getElementById("btn-submit");
+ elBtnNext = document.getElementById("btn-next");
const canvas = document.getElementById("draw-canvas");
const wrap = document.getElementById("canvas-wrap");
@@ -48,6 +57,7 @@ async function initGame() {
elBtnClear.addEventListener("click", () => clear());
elBtnSubmit.addEventListener("click", () => submitRound(false));
+ elBtnNext.addEventListener("click", goToNextRound);
await loadCountries();
roundCountries = getRandomCountries(TOTAL_ROUNDS);
@@ -67,9 +77,11 @@ function startRound() {
updateRoundPips(currentRound + 1);
document.getElementById("canvas-wrap")?.classList.remove("has-drawing");
+ hideScoreFeedback();
setCities(country.cities || []);
clear();
+ roundSubmitted = false;
timeLeft = ROUND_DURATION;
updateTimerUI();
@@ -77,10 +89,12 @@ function startRound() {
timerInterval = setInterval(tickTimer, 1000);
elBtnSubmit.disabled = false;
- elBtnSubmit.textContent =
- currentRound < TOTAL_ROUNDS - 1
- ? "Submit & Next Round →"
- : "Submit & See Results →";
+ elBtnSubmit.hidden = false;
+ elBtnSubmit.textContent = "Submit";
+ elBtnClear.disabled = false;
+ elBtnNext.disabled = true;
+ elBtnNext.textContent =
+ currentRound < TOTAL_ROUNDS - 1 ? "Next Round →" : "See Results →";
}
/** Decrement timer by one second and auto-submit when time runs out. */
@@ -109,35 +123,51 @@ function updateTimerUI() {
}
/**
- * Submit the current round, record the score, and advance or finish.
+ * Submit the current round, record the score, and reveal the reference outline.
* @param {boolean} [auto=false] - True when triggered by timer expiry.
*/
function submitRound(auto = false) {
- clearInterval(timerInterval);
- elBtnSubmit.disabled = true;
+ if (roundSubmitted) return;
- const points = getPoints();
- const score = calculateScore(points);
+ clearInterval(timerInterval);
+ roundSubmitted = true;
+ elBtnSubmit.disabled = true;
+ elBtnClear.disabled = true;
+
+ const country = roundCountries[currentRound];
+ const rings = getNormalizedRings();
+ const score = calculateScore(rings, country.outline);
scores.push(score);
+ showReferenceOutline(country.outline);
updateScoreDisplay(currentRound, score);
showScoreFeedback(score);
- setTimeout(
- () => {
- if (currentRound < TOTAL_ROUNDS - 1) {
- currentRound++;
- startRound();
- } else {
- finishGame();
- }
- },
- auto ? 400 : 1200,
- );
+ elBtnNext.disabled = false;
+ elBtnNext.focus();
+ if (auto) {
+ elBtnNext.textContent =
+ currentRound < TOTAL_ROUNDS - 1
+ ? "Time's up - Next Round"
+ : "Time's up - See Results";
+ }
+}
+
+/** Move to the next round or finish the game after a submitted round. */
+function goToNextRound() {
+ if (!roundSubmitted) return;
+
+ elBtnNext.disabled = true;
+ if (currentRound < TOTAL_ROUNDS - 1) {
+ currentRound++;
+ startRound();
+ } else {
+ finishGame();
+ }
}
/**
- * Briefly display the score grade overlay on the canvas.
+ * Display the score grade overlay on the canvas until the next round starts.
* @param {number} score
*/
function showScoreFeedback(score) {
@@ -147,10 +177,13 @@ function showScoreFeedback(score) {
el.style.color = grade.color;
el.style.opacity = "1";
el.style.transform = "translateY(0)";
- setTimeout(() => {
- el.style.opacity = "0";
- el.style.transform = "translateY(-10px)";
- }, 900);
+}
+
+/** Hide the score grade overlay. */
+function hideScoreFeedback() {
+ const el = document.getElementById("score-feedback");
+ el.style.opacity = "0";
+ el.style.transform = "translateY(-10px)";
}
/** Persist game state, update leaderboard, and navigate to results. */
diff --git a/frontend/scripts/scoring.js b/frontend/scripts/scoring.js
index 5e7dc0f..b222952 100644
--- a/frontend/scripts/scoring.js
+++ b/frontend/scripts/scoring.js
@@ -1,31 +1,69 @@
// scoring.js - accuracy calculation
+const GRID_SIZE = 96;
+const MIN_DRAWN_POINTS = 10;
+const MIN_FILLED_CELLS = 8;
+
/**
- * Calculate a score from the drawn path points.
- * NOTE: Currently uses an effort-based approximation.
- * TODO: Replace with real polygon comparison (IoU or Hausdorff distance).
- * @param {{ x: number, y: number }[]} drawnPoints
+ * @typedef {{ x: number, y: number }} Point
+ * @typedef {{ rings: Point[][] }} CountryOutline
+ */
+
+/**
+ * Calculate a deterministic shape score from a drawn polygon and reference outline.
+ * @param {Point[] | Point[][]} drawnShape - Points or rings normalized to 0-100 canvas space.
+ * @param {CountryOutline | undefined | null} referenceOutline
* @returns {number} Score between 0 and 100.
*/
-export function calculateScore(drawnPoints) {
- if (!drawnPoints || drawnPoints.length < 10) return 0;
-
- const effort = Math.min(drawnPoints.length / 300, 1); // 0-1
- const base = 40 + Math.round(effort * 45); // 40-85
- const jitter = Math.round((Math.random() - 0.5) * 14); // +/-7
- return Math.max(0, Math.min(100, base + jitter));
+export function calculateScore(drawnShape, referenceOutline) {
+ return compareShapes(drawnShape, referenceOutline);
}
/**
- * Compare a drawn polygon against a reference polygon.
- * Stub - reserved for future IoU / Hausdorff implementation.
- * @param {{ x: number, y: number }[]} _drawnPoints
- * @param {{ x: number, y: number }[]} _referencePolygon - Normalised 0-1 coords.
+ * Compare a drawn polygon against one or more reference rings using rasterized IoU.
+ * @param {Point[] | Point[][]} drawnShape - Points or rings normalized to 0-100 canvas space.
+ * @param {CountryOutline | undefined | null} referenceOutline
* @returns {number} Score between 0 and 100.
*/
-export function compareShapes(_drawnPoints, _referencePolygon) {
- // TODO: implement real shape comparison
- return 0;
+export function compareShapes(drawnShape, referenceOutline) {
+ if (!referenceOutline?.rings?.length) return 0;
+
+ const drawnRings = normalizeDrawnRings(drawnShape);
+ const referenceRings = referenceOutline.rings.filter(isValidReferenceRing).map(closeRing);
+ if (!drawnRings.length || !referenceRings.length) return 0;
+
+ let intersection = 0;
+ let union = 0;
+ let drawnCells = 0;
+
+ for (let row = 0; row < GRID_SIZE; row++) {
+ for (let col = 0; col < GRID_SIZE; col++) {
+ const point = cellCenter(col, row);
+ const inDrawn = isInsideAnyRing(point, drawnRings);
+ const inReference = isInsideAnyRing(point, referenceRings);
+
+ if (inDrawn) drawnCells++;
+ if (inDrawn && inReference) intersection++;
+ if (inDrawn || inReference) union++;
+ }
+ }
+
+ if (drawnCells < MIN_FILLED_CELLS || union === 0) return 0;
+ return Math.round((intersection / union) * 100);
+}
+
+/**
+ * @param {Point[] | Point[][]} drawnShape
+ * @returns {Point[][]}
+ */
+function normalizeDrawnRings(drawnShape) {
+ if (!Array.isArray(drawnShape) || !drawnShape.length) return [];
+ if (isPoint(drawnShape[0])) {
+ return isValidRing(drawnShape) ? [closeRing(drawnShape)] : [];
+ }
+ return drawnShape
+ .filter(isValidRing)
+ .map(closeRing);
}
/**
@@ -40,3 +78,79 @@ export function getGrade(score) {
if (score >= 40) return { label: "C", color: "#7a9aaa" };
return { label: "D", color: "#e05c5c" };
}
+
+/**
+ * @param {number} col
+ * @param {number} row
+ * @returns {Point}
+ */
+function cellCenter(col, row) {
+ return {
+ x: ((col + 0.5) / GRID_SIZE) * 100,
+ y: ((row + 0.5) / GRID_SIZE) * 100,
+ };
+}
+
+/**
+ * @param {Point} point
+ * @param {Point[][]} rings
+ */
+function isInsideAnyRing(point, rings) {
+ return rings.some((ring) => pointInRing(point, ring));
+}
+
+/** @param {unknown} value */
+function isPoint(value) {
+ return (
+ !!value &&
+ typeof value === "object" &&
+ Number.isFinite(value.x) &&
+ Number.isFinite(value.y)
+ );
+}
+
+/**
+ * @param {Point} point
+ * @param {Point[]} ring
+ */
+function pointInRing(point, ring) {
+ let inside = false;
+
+ for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
+ const a = ring[i];
+ const b = ring[j];
+ const intersects =
+ a.y > point.y !== b.y > point.y &&
+ point.x < ((b.x - a.x) * (point.y - a.y)) / (b.y - a.y) + a.x;
+
+ if (intersects) inside = !inside;
+ }
+
+ return inside;
+}
+
+/** @param {Point[]} ring */
+function isValidRing(ring) {
+ return (
+ Array.isArray(ring) &&
+ ring.length >= MIN_DRAWN_POINTS &&
+ ring.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y))
+ );
+}
+
+/** @param {Point[]} ring */
+function isValidReferenceRing(ring) {
+ return (
+ Array.isArray(ring) &&
+ ring.length >= 4 &&
+ ring.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y))
+ );
+}
+
+/** @param {Point[]} ring */
+function closeRing(ring) {
+ const first = ring[0];
+ const last = ring[ring.length - 1];
+ if (first.x === last.x && first.y === last.y) return ring;
+ return [...ring, { ...first }];
+}
diff --git a/frontend/scripts/scoring.test.mjs b/frontend/scripts/scoring.test.mjs
new file mode 100644
index 0000000..eb0bb61
--- /dev/null
+++ b/frontend/scripts/scoring.test.mjs
@@ -0,0 +1,101 @@
+import assert from "node:assert/strict";
+import { calculateScore } from "./scoring.js";
+
+const square = [
+ { x: 20, y: 20 },
+ { x: 40, y: 20 },
+ { x: 60, y: 20 },
+ { x: 80, y: 20 },
+ { x: 80, y: 40 },
+ { x: 80, y: 60 },
+ { x: 80, y: 80 },
+ { x: 60, y: 80 },
+ { x: 40, y: 80 },
+ { x: 20, y: 80 },
+ { x: 20, y: 60 },
+ { x: 20, y: 40 },
+ { x: 20, y: 20 },
+];
+
+const shiftedSquare = square.map((point) => ({
+ x: Math.min(100, point.x + 12),
+ y: point.y,
+}));
+
+const smallSquare = square.map((point) => ({
+ x: 35 + (point.x - 20) * 0.5,
+ y: 35 + (point.y - 20) * 0.5,
+}));
+
+const secondIsland = [
+ { x: 5, y: 5 },
+ { x: 10, y: 5 },
+ { x: 15, y: 5 },
+ { x: 15, y: 10 },
+ { x: 15, y: 15 },
+ { x: 10, y: 15 },
+ { x: 5, y: 15 },
+ { x: 5, y: 10 },
+ { x: 5, y: 7 },
+ { x: 5, y: 5 },
+ { x: 7, y: 5 },
+ { x: 10, y: 5 },
+ { x: 5, y: 5 },
+];
+
+const firstIsland = [
+ { x: 5, y: 70 },
+ { x: 12, y: 70 },
+ { x: 20, y: 70 },
+ { x: 20, y: 77 },
+ { x: 20, y: 85 },
+ { x: 12, y: 85 },
+ { x: 5, y: 85 },
+ { x: 5, y: 78 },
+ { x: 5, y: 74 },
+ { x: 5, y: 70 },
+ { x: 8, y: 70 },
+ { x: 12, y: 70 },
+ { x: 5, y: 70 },
+];
+
+const tinyNoise = [
+ { x: 90, y: 90 },
+ { x: 91, y: 90 },
+ { x: 91, y: 91 },
+];
+
+assert.equal(calculateScore(square, { rings: [square] }), 100);
+assert.equal(calculateScore([], { rings: [square] }), 0);
+assert.equal(calculateScore(square.slice(0, 4), { rings: [square] }), 0);
+assert.ok(calculateScore(shiftedSquare, { rings: [square] }) < 100);
+assert.ok(calculateScore(smallSquare, { rings: [square] }) < 60);
+assert.ok(calculateScore(square, { rings: [square, secondIsland] }) >= 95);
+assert.ok(
+ calculateScore([square, secondIsland], { rings: [square, secondIsland] }) >=
+ 95,
+);
+assert.equal(
+ calculateScore([tinyNoise, square], { rings: [square] }),
+ 100,
+);
+assert.ok(
+ calculateScore([firstIsland, secondIsland], {
+ rings: [firstIsland, secondIsland],
+ }) > 90,
+);
+assert.ok(
+ calculateScore([firstIsland, secondIsland], {
+ rings: [
+ [
+ { x: 5, y: 5 },
+ { x: 20, y: 5 },
+ { x: 20, y: 85 },
+ { x: 5, y: 85 },
+ { x: 5, y: 5 },
+ ],
+ ],
+ }) < 50,
+);
+
+console.log("scoring tests passed");
diff --git a/frontend/styles/game.css b/frontend/styles/game.css
index fe07931..2e4db1a 100644
--- a/frontend/styles/game.css
+++ b/frontend/styles/game.css
@@ -141,10 +141,14 @@
grid-template-columns: 1fr 220px;
gap: 16px;
min-height: 0;
+ align-items: start;
}
.canvas-wrap {
position: relative;
+ justify-self: center;
+ width: min(100%, 68vh);
+ aspect-ratio: 1;
background: var(--white);
border: 1.5px solid var(--line);
border-radius: var(--r-xl);
@@ -284,7 +288,7 @@
}
.canvas-wrap {
- min-height: 340px;
+ width: min(100%, 72vh);
}
.game-topbar {
@@ -315,7 +319,7 @@
}
.canvas-wrap {
- min-height: 280px;
+ width: 100%;
}
.game-controls {
@@ -334,6 +338,6 @@
font-size: 1.6rem;
}
.canvas-wrap {
- min-height: 240px;
+ min-height: 0;
}
}
diff --git a/tools/convert-geojson-outlines.js b/tools/convert-geojson-outlines.js
index c0b2e2f..1075f40 100644
--- a/tools/convert-geojson-outlines.js
+++ b/tools/convert-geojson-outlines.js
@@ -4,7 +4,9 @@ import { mkdir, readdir, writeFile } from "node:fs/promises";
import path from "node:path";
import shapefile from "shapefile";
-const DEFAULT_TOLERANCE = 1.5;
+const DEFAULT_TOLERANCE = 0.3;
+const DEFAULT_PADDING = 6;
+const MAX_MERCATOR_LAT = 85.05112878;
const SHAPEFILE_BASENAME = "ne_10m_admin_0_countries";
const GAME_COUNTRIES = [
"Switzerland",
@@ -18,14 +20,22 @@ const GAME_COUNTRIES = [
"Canada",
"Germany",
];
+const COUNTRY_OPTIONS = {
+ France: { keepLargestRingOnly: true },
+ Norway: { keepLargestRingOnly: true },
+};
function usage() {
return `Usage:
node convert-geojson-outlines.js [options]
Options:
- --tolerance Douglas-Peucker tolerance in 0..100 units. Default: 1.5
+ --tolerance Douglas-Peucker tolerance in 0..100 units. Default: 0.3
+ --padding Padding on each side in 0..100 units. Default: 6
--max-points Simplify each ring until it has at most this many points.
+ --min-ring-area-ratio
+ Drop rings smaller than this ratio of the largest ring. Default: 0.001
+ --mainland-only Keep only the largest ring for every country.
--include-holes Include inner rings from Polygon/MultiPolygon geometries.
--pretty Write indented JSON instead of compact JSON.
`;
@@ -35,7 +45,10 @@ function parseArgs(argv) {
const positionals = [];
const options = {
tolerance: DEFAULT_TOLERANCE,
+ padding: DEFAULT_PADDING,
maxPoints: null,
+ minRingAreaRatio: 0.001,
+ mainlandOnly: false,
includeHoles: false,
pretty: false,
};
@@ -45,8 +58,14 @@ function parseArgs(argv) {
if (arg === "--tolerance") {
options.tolerance = Number(argv[++i]);
+ } else if (arg === "--padding") {
+ options.padding = Number(argv[++i]);
} else if (arg === "--max-points") {
options.maxPoints = Number(argv[++i]);
+ } else if (arg === "--min-ring-area-ratio") {
+ options.minRingAreaRatio = Number(argv[++i]);
+ } else if (arg === "--mainland-only") {
+ options.mainlandOnly = true;
} else if (arg === "--include-holes") {
options.includeHoles = true;
} else if (arg === "--pretty") {
@@ -65,11 +84,27 @@ function parseArgs(argv) {
if (!Number.isFinite(options.tolerance) || options.tolerance < 0) {
throw new Error("--tolerance must be a number greater than or equal to 0.");
}
+ if (
+ !Number.isFinite(options.padding) ||
+ options.padding < 0 ||
+ options.padding >= 50
+ ) {
+ throw new Error("--padding must be a number greater than or equal to 0 and less than 50.");
+ }
if (
options.maxPoints !== null &&
(!Number.isInteger(options.maxPoints) || options.maxPoints < 4)
) {
- throw new Error("--max-points must be an integer greater than or equal to 4.");
+ throw new Error(
+ "--max-points must be an integer greater than or equal to 4.",
+ );
+ }
+ if (
+ !Number.isFinite(options.minRingAreaRatio) ||
+ options.minRingAreaRatio < 0 ||
+ options.minRingAreaRatio > 1
+ ) {
+ throw new Error("--min-ring-area-ratio must be a number between 0 and 1.");
}
return {
@@ -85,7 +120,10 @@ function stripNulls(value) {
function cleanProperties(properties) {
return Object.fromEntries(
- Object.entries(properties || {}).map(([key, value]) => [key, stripNulls(value)]),
+ Object.entries(properties || {}).map(([key, value]) => [
+ key,
+ stripNulls(value),
+ ]),
);
}
@@ -137,7 +175,47 @@ function cleanRing(ring) {
return ring.filter(isValidCoordinate).map(([lon, lat]) => [lon, lat]);
}
-function getBounds(rings) {
+function mercatorProject([lon, lat]) {
+ const clampedLat = Math.max(
+ -MAX_MERCATOR_LAT,
+ Math.min(MAX_MERCATOR_LAT, lat),
+ );
+ const lonRad = (lon * Math.PI) / 180;
+ const latRad = (clampedLat * Math.PI) / 180;
+
+ return [
+ lonRad,
+ Math.log(Math.tan(Math.PI / 4 + latRad / 2)),
+ ];
+}
+
+function ringArea(ring) {
+ if (!Array.isArray(ring) || ring.length < 4) return 0;
+ let area = 0;
+ for (let i = 0; i < ring.length; i++) {
+ const [x1, y1] = ring[i];
+ const [x2, y2] = ring[(i + 1) % ring.length];
+ area += x1 * y2 - x2 * y1;
+ }
+ return Math.abs(area / 2);
+}
+
+function filterGameplayRings(rings, options) {
+ const ranked = rings
+ .map((ring) => ({ ring, area: ringArea(ring) }))
+ .filter(({ area }) => area > 0)
+ .sort((a, b) => b.area - a.area);
+
+ if (!ranked.length) return rings;
+ if (options.mainlandOnly || options.keepLargestRingOnly) {
+ return [ranked[0].ring];
+ }
+
+ const minArea = ranked[0].area * options.minRingAreaRatio;
+ return ranked.filter(({ area }) => area >= minArea).map(({ ring }) => ring);
+}
+
+function getGeoBounds(rings) {
let minLon = Infinity;
let maxLon = -Infinity;
let minLat = Infinity;
@@ -159,18 +237,64 @@ function getBounds(rings) {
return { minLon, maxLon, minLat, maxLat };
}
+function getProjectedBounds(rings) {
+ let minX = Infinity;
+ let maxX = -Infinity;
+ let minY = Infinity;
+ let maxY = -Infinity;
+
+ for (const ring of rings) {
+ for (const [x, y] of ring) {
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ }
+
+ if (![minX, maxX, minY, maxY].every(Number.isFinite)) {
+ throw new Error("Could not calculate projected bounds from geometry.");
+ }
+
+ return { minX, maxX, minY, maxY };
+}
+
function roundCoord(value) {
return Math.round(value * 100) / 100;
}
-function normalizePoint([lon, lat], bounds) {
- const lonSpan = bounds.maxLon - bounds.minLon;
- const latSpan = bounds.maxLat - bounds.minLat;
+function roundMeta(value) {
+ return Math.round(value * 1_000_000) / 1_000_000;
+}
+
+function createProjection(bounds, padding) {
+ const xSpan = bounds.maxX - bounds.minX;
+ const ySpan = bounds.maxY - bounds.minY;
+ const usableSize = 100 - padding * 2;
+ const maxSpan = Math.max(xSpan, ySpan);
+ const scale = maxSpan === 0 ? 0 : usableSize / maxSpan;
+ const width = xSpan * scale;
+ const height = ySpan * scale;
return {
- x: roundCoord(lonSpan === 0 ? 50 : ((lon - bounds.minLon) / lonSpan) * 100),
+ padding,
+ scale,
+ xOffset: (100 - width) / 2,
+ yOffset: (100 - height) / 2,
+ };
+}
+
+function normalizePoint([x, y], bounds, projection) {
+ return {
+ x: roundCoord(
+ projection.scale === 0
+ ? 50
+ : projection.xOffset + (x - bounds.minX) * projection.scale,
+ ),
y: roundCoord(
- latSpan === 0 ? 50 : (1 - (lat - bounds.minLat) / latSpan) * 100,
+ projection.scale === 0
+ ? 50
+ : projection.yOffset + (bounds.maxY - y) * projection.scale,
),
};
}
@@ -205,7 +329,8 @@ function squaredDistanceToSegment(point, start, end) {
0,
Math.min(
1,
- ((point.x - start.x) * dx + (point.y - start.y) * dy) / (dx * dx + dy * dy),
+ ((point.x - start.x) * dx + (point.y - start.y) * dy) /
+ (dx * dx + dy * dy),
),
);
const projection = {
@@ -224,7 +349,11 @@ function douglasPeucker(points, tolerance) {
const lastIndex = points.length - 1;
for (let i = 1; i < lastIndex; i++) {
- const distance = squaredDistanceToSegment(points[i], points[0], points[lastIndex]);
+ const distance = squaredDistanceToSegment(
+ points[i],
+ points[0],
+ points[lastIndex],
+ );
if (distance > maxDistance) {
maxDistance = distance;
splitIndex = i;
@@ -259,17 +388,25 @@ function normalizeGeometry(geometry, options) {
throw new Error("No Polygon or MultiPolygon geometry found.");
}
- const rings = extractRings(geometry, options.includeHoles)
- .map(cleanRing)
- .filter((ring) => ring.length >= 4);
+ const geoRings = filterGameplayRings(
+ extractRings(geometry, options.includeHoles)
+ .map(cleanRing)
+ .filter((ring) => ring.length >= 4),
+ options,
+ );
- if (!rings.length) {
+ if (!geoRings.length) {
throw new Error("No valid polygon rings found.");
}
- const bounds = getBounds(rings);
- const normalizedRings = rings
- .map((ring) => ring.map((point) => normalizePoint(point, bounds)))
+ const projectedRings = geoRings.map((ring) => ring.map(mercatorProject));
+ const geoBounds = getGeoBounds(geoRings);
+ const projectedBounds = getProjectedBounds(projectedRings);
+ const projection = createProjection(projectedBounds, options.padding);
+ const normalizedRings = projectedRings
+ .map((ring) =>
+ ring.map((point) => normalizePoint(point, projectedBounds, projection)),
+ )
.map(closeRing)
.map((ring) => simplifyRing(ring, options.tolerance, options.maxPoints))
.filter((ring) => ring.length >= 4);
@@ -279,8 +416,20 @@ function normalizeGeometry(geometry, options) {
}
return {
- type: geometry.type,
- bounds,
+ type: geoRings.length > 1 ? "MultiPolygon" : "Polygon",
+ geoBounds,
+ projectedBounds: {
+ minX: roundMeta(projectedBounds.minX),
+ maxX: roundMeta(projectedBounds.maxX),
+ minY: roundMeta(projectedBounds.minY),
+ maxY: roundMeta(projectedBounds.maxY),
+ },
+ projection: {
+ padding: roundMeta(projection.padding),
+ scale: roundMeta(projection.scale),
+ xOffset: roundMeta(projection.xOffset),
+ yOffset: roundMeta(projection.yOffset),
+ },
rings: normalizedRings,
};
}
@@ -288,7 +437,10 @@ function normalizeGeometry(geometry, options) {
async function findShapefile(inputDir) {
const entries = await readdir(inputDir, { withFileTypes: true });
const shpFiles = entries
- .filter((entry) => entry.isFile() && path.extname(entry.name).toLowerCase() === ".shp")
+ .filter(
+ (entry) =>
+ entry.isFile() && path.extname(entry.name).toLowerCase() === ".shp",
+ )
.map((entry) => entry.name)
.sort((a, b) => a.localeCompare(b));
@@ -305,7 +457,9 @@ async function findShapefile(inputDir) {
}
async function readTargetFeatures(shpPath, targets) {
- const source = await shapefile.open(shpPath, undefined, { encoding: "utf-8" });
+ const source = await shapefile.open(shpPath, undefined, {
+ encoding: "utf-8",
+ });
const features = new Map();
while (true) {
@@ -327,7 +481,17 @@ async function readTargetFeatures(shpPath, targets) {
return features;
}
-async function writeCountryOutline(outputDir, countryName, feature, sourceFile, options) {
+async function writeCountryOutline(
+ outputDir,
+ countryName,
+ feature,
+ sourceFile,
+ options,
+) {
+ const countryOptions = {
+ ...options,
+ ...(COUNTRY_OPTIONS[countryName] || {}),
+ };
const output = {
source: sourceFile,
country: {
@@ -337,7 +501,7 @@ async function writeCountryOutline(outputDir, countryName, feature, sourceFile,
continent: feature.properties.CONTINENT,
subregion: feature.properties.SUBREGION,
},
- outline: normalizeGeometry(feature.geometry, options),
+ outline: normalizeGeometry(feature.geometry, countryOptions),
};
const fileName = `${slugify(countryName)}.json`;
const json = JSON.stringify(output, null, options.pretty ? 2 : 0);
@@ -351,7 +515,9 @@ async function main() {
const sourceFile = path.basename(shpPath);
const targets = new Set(GAME_COUNTRIES);
const features = await readTargetFeatures(shpPath, targets);
- const missing = GAME_COUNTRIES.filter((countryName) => !features.has(countryName));
+ const missing = GAME_COUNTRIES.filter(
+ (countryName) => !features.has(countryName),
+ );
if (missing.length) {
throw new Error(`Missing country feature(s): ${missing.join(", ")}`);