@tekkare/auriga 0.2.227 → 0.2.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.json +1 -1
- package/dist/runtime/components/argMapsPortugal.vue +265 -0
- package/dist/runtime/components/argMapsPortugal.vue.d.ts +120 -0
- package/dist/runtime/components/argMapsPortugalRegions.vue +265 -0
- package/dist/runtime/components/argMapsPortugalRegions.vue.d.ts +120 -0
- package/dist/runtime/components/maps/interfaces.d.ts +31 -0
- package/dist/runtime/components/maps/interfaces.mjs +33 -0
- package/dist/runtime/components/maps/regionsPathPt.json +82 -0
- package/dist/runtime/components/maps/regionsPathPtNuts.json +30 -0
- package/dist/runtime/components/oneRegionPt.vue +62 -0
- package/dist/runtime/components/oneRegionPt.vue.d.ts +54 -0
- package/dist/runtime/components/oneRegionPtNuts.vue +62 -0
- package/dist/runtime/components/oneRegionPtNuts.vue.d.ts +54 -0
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="oip_table_card map_card-container"
|
|
4
|
+
:id="`container_map-${title}-${uniqueID}`"
|
|
5
|
+
>
|
|
6
|
+
<div class="p-24">
|
|
7
|
+
<slot name="customTitle" v-if="haveCustomTitle" />
|
|
8
|
+
<div v-else class="oip_subtitle">
|
|
9
|
+
{{ title ? title : "Your map title" }}
|
|
10
|
+
</div>
|
|
11
|
+
<ArgSourceContainer v-if="source !== null" @click="openSource">
|
|
12
|
+
{{ source ? source : "Your source" }}
|
|
13
|
+
</ArgSourceContainer>
|
|
14
|
+
</div>
|
|
15
|
+
<div
|
|
16
|
+
v-if="hoveredRegion !== null"
|
|
17
|
+
:id="`tooltip_map-${title}`"
|
|
18
|
+
class="tooltip_container"
|
|
19
|
+
:style="{
|
|
20
|
+
top: tooltipPosition.y + 'px',
|
|
21
|
+
left: tooltipPosition.x + 'px',
|
|
22
|
+
width: tooltipPosition.width + 'px',
|
|
23
|
+
}"
|
|
24
|
+
>
|
|
25
|
+
<div class="tooltip">
|
|
26
|
+
<p class="card_title">{{ hoveredRegion }}</p>
|
|
27
|
+
<div class="card_text">
|
|
28
|
+
<slot
|
|
29
|
+
name="Tooltip"
|
|
30
|
+
v-bind:value="{
|
|
31
|
+
name: hoveredRegion,
|
|
32
|
+
value: data.find((x) => x.name == hoveredRegion)?.value,
|
|
33
|
+
}"
|
|
34
|
+
/>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="p24">
|
|
39
|
+
<svg
|
|
40
|
+
class="map"
|
|
41
|
+
height="500"
|
|
42
|
+
:viewBox="hideIslands ? '160 0 410 800' : '0 0 570 800'"
|
|
43
|
+
preserveAspectRatio="xMidYMid meet"
|
|
44
|
+
fill="none"
|
|
45
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
46
|
+
>
|
|
47
|
+
<!-- Madeira and the Azores lie about 1000 km off the mainland: each is
|
|
48
|
+
drawn at its own scale as an inset against the west coast, the way
|
|
49
|
+
the France map places its DROM-TOM. The frames tell the reader they
|
|
50
|
+
are not to scale; `hideIslands` crops them out entirely. -->
|
|
51
|
+
<g v-if="!hideIslands" class="inset">
|
|
52
|
+
<rect x="4" y="288" width="166" height="102" rx="4" />
|
|
53
|
+
<text x="8" y="282">Azores</text>
|
|
54
|
+
<rect x="14" y="417" width="134" height="117" rx="4" />
|
|
55
|
+
<text x="18" y="411">Madeira</text>
|
|
56
|
+
</g>
|
|
57
|
+
<OneRegionPt
|
|
58
|
+
v-for="region in displayedRegions"
|
|
59
|
+
:key="region"
|
|
60
|
+
:data="{
|
|
61
|
+
color: getColor(data.find((x) => x.name == region)?.value),
|
|
62
|
+
value: data.find((x) => x.name == region)?.value,
|
|
63
|
+
}"
|
|
64
|
+
:current-region="region"
|
|
65
|
+
:title="title"
|
|
66
|
+
:hoveredRegion="hoveredRegion"
|
|
67
|
+
@hover="handleHover(region)"
|
|
68
|
+
@mouseleave="handleMouseLeave"
|
|
69
|
+
/>
|
|
70
|
+
</svg>
|
|
71
|
+
<div class="legend">
|
|
72
|
+
<div :class="reverseColors ? 'reverse_scale' : 'scale'" />
|
|
73
|
+
<div class="legend-text">
|
|
74
|
+
<template v-for="(value, index) in scale" :key="value">
|
|
75
|
+
<p v-if="index % 2 === 0">
|
|
76
|
+
{{ Math.ceil(value)?.toLocaleString("fr-FR") }}
|
|
77
|
+
</p>
|
|
78
|
+
</template>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
<slot name="Subcontent" />
|
|
83
|
+
</div>
|
|
84
|
+
</template>
|
|
85
|
+
|
|
86
|
+
<script>
|
|
87
|
+
import { computed, onMounted, ref, watch, defineComponent, nextTick } from "vue";
|
|
88
|
+
import { RegionsPt } from "./maps/interfaces";
|
|
89
|
+
import ArgSourceContainer from "./argSourceContainer.vue";
|
|
90
|
+
import OneRegionPt from "./oneRegionPt.vue";
|
|
91
|
+
export default defineComponent({
|
|
92
|
+
name: "argMapsPortugal",
|
|
93
|
+
components: { OneRegionPt, ArgSourceContainer },
|
|
94
|
+
props: {
|
|
95
|
+
data: {
|
|
96
|
+
type: Array,
|
|
97
|
+
default: null,
|
|
98
|
+
required: true
|
|
99
|
+
},
|
|
100
|
+
title: {
|
|
101
|
+
type: [String, null],
|
|
102
|
+
default: null,
|
|
103
|
+
required: false
|
|
104
|
+
},
|
|
105
|
+
source: {
|
|
106
|
+
type: [String, null],
|
|
107
|
+
default: null
|
|
108
|
+
},
|
|
109
|
+
haveCustomTitle: {
|
|
110
|
+
type: [String, null],
|
|
111
|
+
default: null,
|
|
112
|
+
required: false
|
|
113
|
+
},
|
|
114
|
+
uniqueID: {
|
|
115
|
+
type: [String, null],
|
|
116
|
+
default: null,
|
|
117
|
+
required: false
|
|
118
|
+
},
|
|
119
|
+
lang: {
|
|
120
|
+
type: String,
|
|
121
|
+
default: "en",
|
|
122
|
+
required: false
|
|
123
|
+
},
|
|
124
|
+
reverseColors: {
|
|
125
|
+
type: Boolean,
|
|
126
|
+
default: false
|
|
127
|
+
},
|
|
128
|
+
// drop Madeira and the Azores and crop to the mainland — for data that only
|
|
129
|
+
// covers continental Portugal (same idea as argMapsFrRegions' hideDromTom)
|
|
130
|
+
hideIslands: {
|
|
131
|
+
type: Boolean,
|
|
132
|
+
default: false
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
emits: ["openSource"],
|
|
136
|
+
setup(props, { emit }) {
|
|
137
|
+
const islandRegions = [RegionsPt.Azores, RegionsPt.Madeira];
|
|
138
|
+
const displayedRegions = computed(
|
|
139
|
+
() => Object.values(RegionsPt).filter(
|
|
140
|
+
(region) => !props.hideIslands || !islandRegions.includes(region)
|
|
141
|
+
)
|
|
142
|
+
);
|
|
143
|
+
const minimalValue = ref(null);
|
|
144
|
+
const maximalValue = ref(null);
|
|
145
|
+
const hoveredRegion = ref(null);
|
|
146
|
+
const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
|
|
147
|
+
const scale = ref([]);
|
|
148
|
+
function getColor(value) {
|
|
149
|
+
if (!value) return "var(--lightest)";
|
|
150
|
+
if (props.reverseColors ? value <= scale.value[0] : value >= scale.value[9]) {
|
|
151
|
+
return "#3F1151";
|
|
152
|
+
} else if (props.reverseColors ? value <= scale.value[1] : value >= scale.value[8]) {
|
|
153
|
+
return "#432974";
|
|
154
|
+
} else if (props.reverseColors ? value <= scale.value[2] : value >= scale.value[7]) {
|
|
155
|
+
return "#404A85";
|
|
156
|
+
} else if (props.reverseColors ? value <= scale.value[3] : value >= scale.value[6]) {
|
|
157
|
+
return "#3F668A";
|
|
158
|
+
} else if (props.reverseColors ? value <= scale.value[4] : value >= scale.value[5]) {
|
|
159
|
+
return "#43808C";
|
|
160
|
+
} else if (props.reverseColors ? value <= scale.value[5] : value >= scale.value[4]) {
|
|
161
|
+
return "#4C9C8A";
|
|
162
|
+
} else if (props.reverseColors ? value <= scale.value[6] : value >= scale.value[3]) {
|
|
163
|
+
return "#5FB57E";
|
|
164
|
+
} else if (props.reverseColors ? value <= scale.value[7] : value >= scale.value[2]) {
|
|
165
|
+
return "#85CB68";
|
|
166
|
+
} else if (props.reverseColors ? value <= scale.value[8] : value >= scale.value[1]) {
|
|
167
|
+
return "#BDDD51";
|
|
168
|
+
} else if (props.reverseColors ? value > scale.value[8] : value >= scale.value[0]) {
|
|
169
|
+
return "#F9E855";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function handleHover(region) {
|
|
173
|
+
hoveredRegion.value = region;
|
|
174
|
+
}
|
|
175
|
+
function handleMouseLeave() {
|
|
176
|
+
hoveredRegion.value = null;
|
|
177
|
+
}
|
|
178
|
+
function openSource() {
|
|
179
|
+
emit("openSource");
|
|
180
|
+
}
|
|
181
|
+
function setupScale() {
|
|
182
|
+
minimalValue.value = Math.floor(
|
|
183
|
+
Math.min(
|
|
184
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
185
|
+
)
|
|
186
|
+
);
|
|
187
|
+
maximalValue.value = Math.ceil(
|
|
188
|
+
Math.max(
|
|
189
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
190
|
+
)
|
|
191
|
+
);
|
|
192
|
+
const step = (maximalValue.value - minimalValue.value) / 10;
|
|
193
|
+
if (minimalValue.value !== null) {
|
|
194
|
+
scale.value = Array.from(
|
|
195
|
+
{ length: 10 },
|
|
196
|
+
(_, i) => (minimalValue.value !== null ? minimalValue.value : 0) + i * step
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
onMounted(() => {
|
|
201
|
+
setupScale();
|
|
202
|
+
});
|
|
203
|
+
watch(
|
|
204
|
+
() => props.data,
|
|
205
|
+
() => {
|
|
206
|
+
setupScale();
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
watch(
|
|
210
|
+
() => hoveredRegion.value,
|
|
211
|
+
() => {
|
|
212
|
+
if (hoveredRegion.value) {
|
|
213
|
+
const selectedRegion = document.getElementById(
|
|
214
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
215
|
+
)?.getBoundingClientRect();
|
|
216
|
+
const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
|
|
217
|
+
if (!selectedRegion || !containerPosition) return;
|
|
218
|
+
tooltipPosition.value = {
|
|
219
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
220
|
+
y: selectedRegion?.top - containerPosition?.top - 60,
|
|
221
|
+
width: selectedRegion?.width
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
);
|
|
226
|
+
watch(
|
|
227
|
+
() => hoveredRegion.value,
|
|
228
|
+
async () => {
|
|
229
|
+
if (hoveredRegion.value) {
|
|
230
|
+
await nextTick();
|
|
231
|
+
const selectedRegion = document.getElementById(
|
|
232
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
233
|
+
)?.getBoundingClientRect();
|
|
234
|
+
const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
|
|
235
|
+
const tooltipElement = document.getElementById(
|
|
236
|
+
`tooltip_map-${props.title}`
|
|
237
|
+
);
|
|
238
|
+
const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
|
|
239
|
+
if (!selectedRegion || !containerPosition) return;
|
|
240
|
+
tooltipPosition.value = {
|
|
241
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
242
|
+
y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
|
|
243
|
+
width: selectedRegion?.width
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
return {
|
|
249
|
+
getColor,
|
|
250
|
+
handleHover,
|
|
251
|
+
handleMouseLeave,
|
|
252
|
+
RegionsPt,
|
|
253
|
+
displayedRegions,
|
|
254
|
+
hoveredRegion,
|
|
255
|
+
tooltipPosition,
|
|
256
|
+
scale,
|
|
257
|
+
openSource
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
</script>
|
|
262
|
+
|
|
263
|
+
<style scoped>
|
|
264
|
+
.map{margin-top:24px;width:100%}.p24{padding:24px}.inset rect{fill:none;stroke:var(--light);stroke-width:1px;stroke-dasharray:4 3}.inset text{fill:var(--medium);font-size:13px;font-weight:600}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:0;min-width:-moz-fit-content;min-width:fit-content;position:absolute;top:0;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:70%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855)}.reverse_scale,.scale{height:10px;transform:rotate(180deg)}.reverse_scale{background:linear-gradient(45deg,#f9e855,#bddd51,#85cb68,#5fb57e,#4c9c8a,#43808c,#3f668a,#404a85,#432974,#3f1151)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
|
|
265
|
+
</style>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { PropType } from "vue";
|
|
2
|
+
import { RegionsPt } from "./maps/interfaces";
|
|
3
|
+
type dataRegion = {
|
|
4
|
+
name: RegionsPt;
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
|
+
data: {
|
|
9
|
+
type: PropType<dataRegion[]>;
|
|
10
|
+
default: null;
|
|
11
|
+
required: true;
|
|
12
|
+
};
|
|
13
|
+
title: {
|
|
14
|
+
type: PropType<string | null>;
|
|
15
|
+
default: null;
|
|
16
|
+
required: false;
|
|
17
|
+
};
|
|
18
|
+
source: {
|
|
19
|
+
type: PropType<string | null>;
|
|
20
|
+
default: null;
|
|
21
|
+
};
|
|
22
|
+
haveCustomTitle: {
|
|
23
|
+
type: PropType<string | null>;
|
|
24
|
+
default: null;
|
|
25
|
+
required: false;
|
|
26
|
+
};
|
|
27
|
+
uniqueID: {
|
|
28
|
+
type: PropType<string | null>;
|
|
29
|
+
default: null;
|
|
30
|
+
required: false;
|
|
31
|
+
};
|
|
32
|
+
lang: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
default: string;
|
|
35
|
+
required: false;
|
|
36
|
+
};
|
|
37
|
+
reverseColors: {
|
|
38
|
+
type: BooleanConstructor;
|
|
39
|
+
default: boolean;
|
|
40
|
+
};
|
|
41
|
+
hideIslands: {
|
|
42
|
+
type: BooleanConstructor;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
}>, {
|
|
46
|
+
getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
|
|
47
|
+
handleHover: (region: RegionsPt) => void;
|
|
48
|
+
handleMouseLeave: () => void;
|
|
49
|
+
RegionsPt: typeof RegionsPt;
|
|
50
|
+
displayedRegions: import("vue").ComputedRef<RegionsPt[]>;
|
|
51
|
+
hoveredRegion: import("vue").Ref<RegionsPt | null, RegionsPt | null>;
|
|
52
|
+
tooltipPosition: import("vue").Ref<{
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
width: number;
|
|
56
|
+
}, {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
} | {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
width: number;
|
|
64
|
+
}>;
|
|
65
|
+
scale: import("vue").Ref<number[], number[]>;
|
|
66
|
+
openSource: () => void;
|
|
67
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
68
|
+
data: {
|
|
69
|
+
type: PropType<dataRegion[]>;
|
|
70
|
+
default: null;
|
|
71
|
+
required: true;
|
|
72
|
+
};
|
|
73
|
+
title: {
|
|
74
|
+
type: PropType<string | null>;
|
|
75
|
+
default: null;
|
|
76
|
+
required: false;
|
|
77
|
+
};
|
|
78
|
+
source: {
|
|
79
|
+
type: PropType<string | null>;
|
|
80
|
+
default: null;
|
|
81
|
+
};
|
|
82
|
+
haveCustomTitle: {
|
|
83
|
+
type: PropType<string | null>;
|
|
84
|
+
default: null;
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
uniqueID: {
|
|
88
|
+
type: PropType<string | null>;
|
|
89
|
+
default: null;
|
|
90
|
+
required: false;
|
|
91
|
+
};
|
|
92
|
+
lang: {
|
|
93
|
+
type: StringConstructor;
|
|
94
|
+
default: string;
|
|
95
|
+
required: false;
|
|
96
|
+
};
|
|
97
|
+
reverseColors: {
|
|
98
|
+
type: BooleanConstructor;
|
|
99
|
+
default: boolean;
|
|
100
|
+
};
|
|
101
|
+
hideIslands: {
|
|
102
|
+
type: BooleanConstructor;
|
|
103
|
+
default: boolean;
|
|
104
|
+
};
|
|
105
|
+
}>> & Readonly<{
|
|
106
|
+
onOpenSource?: ((...args: any[]) => any) | undefined;
|
|
107
|
+
}>, {
|
|
108
|
+
data: dataRegion[];
|
|
109
|
+
lang: string;
|
|
110
|
+
source: string | null;
|
|
111
|
+
title: string | null;
|
|
112
|
+
haveCustomTitle: string | null;
|
|
113
|
+
uniqueID: string | null;
|
|
114
|
+
reverseColors: boolean;
|
|
115
|
+
hideIslands: boolean;
|
|
116
|
+
}, {}, {
|
|
117
|
+
OneRegionPt: any;
|
|
118
|
+
ArgSourceContainer: any;
|
|
119
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
120
|
+
export default _default;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="oip_table_card map_card-container"
|
|
4
|
+
:id="`container_map-${title}-${uniqueID}`"
|
|
5
|
+
>
|
|
6
|
+
<div class="p-24">
|
|
7
|
+
<slot name="customTitle" v-if="haveCustomTitle" />
|
|
8
|
+
<div v-else class="oip_subtitle">
|
|
9
|
+
{{ title ? title : "Your map title" }}
|
|
10
|
+
</div>
|
|
11
|
+
<ArgSourceContainer v-if="source !== null" @click="openSource">
|
|
12
|
+
{{ source ? source : "Your source" }}
|
|
13
|
+
</ArgSourceContainer>
|
|
14
|
+
</div>
|
|
15
|
+
<div
|
|
16
|
+
v-if="hoveredRegion !== null"
|
|
17
|
+
:id="`tooltip_map-${title}`"
|
|
18
|
+
class="tooltip_container"
|
|
19
|
+
:style="{
|
|
20
|
+
top: tooltipPosition.y + 'px',
|
|
21
|
+
left: tooltipPosition.x + 'px',
|
|
22
|
+
width: tooltipPosition.width + 'px',
|
|
23
|
+
}"
|
|
24
|
+
>
|
|
25
|
+
<div class="tooltip">
|
|
26
|
+
<p class="card_title">{{ hoveredRegion }}</p>
|
|
27
|
+
<div class="card_text">
|
|
28
|
+
<slot
|
|
29
|
+
name="Tooltip"
|
|
30
|
+
v-bind:value="{
|
|
31
|
+
name: hoveredRegion,
|
|
32
|
+
value: data.find((x) => x.name == hoveredRegion)?.value,
|
|
33
|
+
}"
|
|
34
|
+
/>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="p24">
|
|
39
|
+
<svg
|
|
40
|
+
class="map"
|
|
41
|
+
height="500"
|
|
42
|
+
:viewBox="hideIslands ? '160 0 410 800' : '0 0 570 800'"
|
|
43
|
+
preserveAspectRatio="xMidYMid meet"
|
|
44
|
+
fill="none"
|
|
45
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
46
|
+
>
|
|
47
|
+
<!-- Madeira and the Azores lie about 1000 km off the mainland: each is
|
|
48
|
+
drawn at its own scale as an inset against the west coast, the way
|
|
49
|
+
the France map places its DROM-TOM. The frames tell the reader they
|
|
50
|
+
are not to scale; `hideIslands` crops them out entirely. -->
|
|
51
|
+
<g v-if="!hideIslands" class="inset">
|
|
52
|
+
<rect x="4" y="288" width="166" height="102" rx="4" />
|
|
53
|
+
<text x="8" y="282">Azores</text>
|
|
54
|
+
<rect x="14" y="417" width="134" height="117" rx="4" />
|
|
55
|
+
<text x="18" y="411">Madeira</text>
|
|
56
|
+
</g>
|
|
57
|
+
<OneRegionPtNuts
|
|
58
|
+
v-for="region in displayedRegions"
|
|
59
|
+
:key="region"
|
|
60
|
+
:data="{
|
|
61
|
+
color: getColor(data.find((x) => x.name == region)?.value),
|
|
62
|
+
value: data.find((x) => x.name == region)?.value,
|
|
63
|
+
}"
|
|
64
|
+
:current-region="region"
|
|
65
|
+
:title="title"
|
|
66
|
+
:hoveredRegion="hoveredRegion"
|
|
67
|
+
@hover="handleHover(region)"
|
|
68
|
+
@mouseleave="handleMouseLeave"
|
|
69
|
+
/>
|
|
70
|
+
</svg>
|
|
71
|
+
<div class="legend">
|
|
72
|
+
<div :class="reverseColors ? 'reverse_scale' : 'scale'" />
|
|
73
|
+
<div class="legend-text">
|
|
74
|
+
<template v-for="(value, index) in scale" :key="value">
|
|
75
|
+
<p v-if="index % 2 === 0">
|
|
76
|
+
{{ Math.ceil(value)?.toLocaleString("fr-FR") }}
|
|
77
|
+
</p>
|
|
78
|
+
</template>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
<slot name="Subcontent" />
|
|
83
|
+
</div>
|
|
84
|
+
</template>
|
|
85
|
+
|
|
86
|
+
<script>
|
|
87
|
+
import { computed, onMounted, ref, watch, defineComponent, nextTick } from "vue";
|
|
88
|
+
import { RegionsPtNuts } from "./maps/interfaces";
|
|
89
|
+
import ArgSourceContainer from "./argSourceContainer.vue";
|
|
90
|
+
import OneRegionPtNuts from "./oneRegionPtNuts.vue";
|
|
91
|
+
export default defineComponent({
|
|
92
|
+
name: "argMapsPortugalRegions",
|
|
93
|
+
components: { OneRegionPtNuts, ArgSourceContainer },
|
|
94
|
+
props: {
|
|
95
|
+
data: {
|
|
96
|
+
type: Array,
|
|
97
|
+
default: null,
|
|
98
|
+
required: true
|
|
99
|
+
},
|
|
100
|
+
title: {
|
|
101
|
+
type: [String, null],
|
|
102
|
+
default: null,
|
|
103
|
+
required: false
|
|
104
|
+
},
|
|
105
|
+
source: {
|
|
106
|
+
type: [String, null],
|
|
107
|
+
default: null
|
|
108
|
+
},
|
|
109
|
+
haveCustomTitle: {
|
|
110
|
+
type: [String, null],
|
|
111
|
+
default: null,
|
|
112
|
+
required: false
|
|
113
|
+
},
|
|
114
|
+
uniqueID: {
|
|
115
|
+
type: [String, null],
|
|
116
|
+
default: null,
|
|
117
|
+
required: false
|
|
118
|
+
},
|
|
119
|
+
lang: {
|
|
120
|
+
type: String,
|
|
121
|
+
default: "en",
|
|
122
|
+
required: false
|
|
123
|
+
},
|
|
124
|
+
reverseColors: {
|
|
125
|
+
type: Boolean,
|
|
126
|
+
default: false
|
|
127
|
+
},
|
|
128
|
+
// drop Madeira and the Azores and crop to the mainland — for data that only
|
|
129
|
+
// covers continental Portugal (same idea as argMapsFrRegions' hideDromTom)
|
|
130
|
+
hideIslands: {
|
|
131
|
+
type: Boolean,
|
|
132
|
+
default: false
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
emits: ["openSource"],
|
|
136
|
+
setup(props, { emit }) {
|
|
137
|
+
const islandRegions = [RegionsPtNuts.Azores, RegionsPtNuts.Madeira];
|
|
138
|
+
const displayedRegions = computed(
|
|
139
|
+
() => Object.values(RegionsPtNuts).filter(
|
|
140
|
+
(region) => !props.hideIslands || !islandRegions.includes(region)
|
|
141
|
+
)
|
|
142
|
+
);
|
|
143
|
+
const minimalValue = ref(null);
|
|
144
|
+
const maximalValue = ref(null);
|
|
145
|
+
const hoveredRegion = ref(null);
|
|
146
|
+
const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
|
|
147
|
+
const scale = ref([]);
|
|
148
|
+
function getColor(value) {
|
|
149
|
+
if (!value) return "var(--lightest)";
|
|
150
|
+
if (props.reverseColors ? value <= scale.value[0] : value >= scale.value[9]) {
|
|
151
|
+
return "#3F1151";
|
|
152
|
+
} else if (props.reverseColors ? value <= scale.value[1] : value >= scale.value[8]) {
|
|
153
|
+
return "#432974";
|
|
154
|
+
} else if (props.reverseColors ? value <= scale.value[2] : value >= scale.value[7]) {
|
|
155
|
+
return "#404A85";
|
|
156
|
+
} else if (props.reverseColors ? value <= scale.value[3] : value >= scale.value[6]) {
|
|
157
|
+
return "#3F668A";
|
|
158
|
+
} else if (props.reverseColors ? value <= scale.value[4] : value >= scale.value[5]) {
|
|
159
|
+
return "#43808C";
|
|
160
|
+
} else if (props.reverseColors ? value <= scale.value[5] : value >= scale.value[4]) {
|
|
161
|
+
return "#4C9C8A";
|
|
162
|
+
} else if (props.reverseColors ? value <= scale.value[6] : value >= scale.value[3]) {
|
|
163
|
+
return "#5FB57E";
|
|
164
|
+
} else if (props.reverseColors ? value <= scale.value[7] : value >= scale.value[2]) {
|
|
165
|
+
return "#85CB68";
|
|
166
|
+
} else if (props.reverseColors ? value <= scale.value[8] : value >= scale.value[1]) {
|
|
167
|
+
return "#BDDD51";
|
|
168
|
+
} else if (props.reverseColors ? value > scale.value[8] : value >= scale.value[0]) {
|
|
169
|
+
return "#F9E855";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function handleHover(region) {
|
|
173
|
+
hoveredRegion.value = region;
|
|
174
|
+
}
|
|
175
|
+
function handleMouseLeave() {
|
|
176
|
+
hoveredRegion.value = null;
|
|
177
|
+
}
|
|
178
|
+
function openSource() {
|
|
179
|
+
emit("openSource");
|
|
180
|
+
}
|
|
181
|
+
function setupScale() {
|
|
182
|
+
minimalValue.value = Math.floor(
|
|
183
|
+
Math.min(
|
|
184
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
185
|
+
)
|
|
186
|
+
);
|
|
187
|
+
maximalValue.value = Math.ceil(
|
|
188
|
+
Math.max(
|
|
189
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
190
|
+
)
|
|
191
|
+
);
|
|
192
|
+
const step = (maximalValue.value - minimalValue.value) / 10;
|
|
193
|
+
if (minimalValue.value !== null) {
|
|
194
|
+
scale.value = Array.from(
|
|
195
|
+
{ length: 10 },
|
|
196
|
+
(_, i) => (minimalValue.value !== null ? minimalValue.value : 0) + i * step
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
onMounted(() => {
|
|
201
|
+
setupScale();
|
|
202
|
+
});
|
|
203
|
+
watch(
|
|
204
|
+
() => props.data,
|
|
205
|
+
() => {
|
|
206
|
+
setupScale();
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
watch(
|
|
210
|
+
() => hoveredRegion.value,
|
|
211
|
+
() => {
|
|
212
|
+
if (hoveredRegion.value) {
|
|
213
|
+
const selectedRegion = document.getElementById(
|
|
214
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
215
|
+
)?.getBoundingClientRect();
|
|
216
|
+
const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
|
|
217
|
+
if (!selectedRegion || !containerPosition) return;
|
|
218
|
+
tooltipPosition.value = {
|
|
219
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
220
|
+
y: selectedRegion?.top - containerPosition?.top - 60,
|
|
221
|
+
width: selectedRegion?.width
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
);
|
|
226
|
+
watch(
|
|
227
|
+
() => hoveredRegion.value,
|
|
228
|
+
async () => {
|
|
229
|
+
if (hoveredRegion.value) {
|
|
230
|
+
await nextTick();
|
|
231
|
+
const selectedRegion = document.getElementById(
|
|
232
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
233
|
+
)?.getBoundingClientRect();
|
|
234
|
+
const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
|
|
235
|
+
const tooltipElement = document.getElementById(
|
|
236
|
+
`tooltip_map-${props.title}`
|
|
237
|
+
);
|
|
238
|
+
const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
|
|
239
|
+
if (!selectedRegion || !containerPosition) return;
|
|
240
|
+
tooltipPosition.value = {
|
|
241
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
242
|
+
y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
|
|
243
|
+
width: selectedRegion?.width
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
return {
|
|
249
|
+
getColor,
|
|
250
|
+
handleHover,
|
|
251
|
+
handleMouseLeave,
|
|
252
|
+
RegionsPtNuts,
|
|
253
|
+
displayedRegions,
|
|
254
|
+
hoveredRegion,
|
|
255
|
+
tooltipPosition,
|
|
256
|
+
scale,
|
|
257
|
+
openSource
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
</script>
|
|
262
|
+
|
|
263
|
+
<style scoped>
|
|
264
|
+
.map{margin-top:24px;width:100%}.p24{padding:24px}.inset rect{fill:none;stroke:var(--light);stroke-width:1px;stroke-dasharray:4 3}.inset text{fill:var(--medium);font-size:13px;font-weight:600}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:0;min-width:-moz-fit-content;min-width:fit-content;position:absolute;top:0;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:70%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855)}.reverse_scale,.scale{height:10px;transform:rotate(180deg)}.reverse_scale{background:linear-gradient(45deg,#f9e855,#bddd51,#85cb68,#5fb57e,#4c9c8a,#43808c,#3f668a,#404a85,#432974,#3f1151)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
|
|
265
|
+
</style>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { PropType } from "vue";
|
|
2
|
+
import { RegionsPtNuts } from "./maps/interfaces";
|
|
3
|
+
type dataRegion = {
|
|
4
|
+
name: RegionsPtNuts;
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
|
+
data: {
|
|
9
|
+
type: PropType<dataRegion[]>;
|
|
10
|
+
default: null;
|
|
11
|
+
required: true;
|
|
12
|
+
};
|
|
13
|
+
title: {
|
|
14
|
+
type: PropType<string | null>;
|
|
15
|
+
default: null;
|
|
16
|
+
required: false;
|
|
17
|
+
};
|
|
18
|
+
source: {
|
|
19
|
+
type: PropType<string | null>;
|
|
20
|
+
default: null;
|
|
21
|
+
};
|
|
22
|
+
haveCustomTitle: {
|
|
23
|
+
type: PropType<string | null>;
|
|
24
|
+
default: null;
|
|
25
|
+
required: false;
|
|
26
|
+
};
|
|
27
|
+
uniqueID: {
|
|
28
|
+
type: PropType<string | null>;
|
|
29
|
+
default: null;
|
|
30
|
+
required: false;
|
|
31
|
+
};
|
|
32
|
+
lang: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
default: string;
|
|
35
|
+
required: false;
|
|
36
|
+
};
|
|
37
|
+
reverseColors: {
|
|
38
|
+
type: BooleanConstructor;
|
|
39
|
+
default: boolean;
|
|
40
|
+
};
|
|
41
|
+
hideIslands: {
|
|
42
|
+
type: BooleanConstructor;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
}>, {
|
|
46
|
+
getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
|
|
47
|
+
handleHover: (region: RegionsPtNuts) => void;
|
|
48
|
+
handleMouseLeave: () => void;
|
|
49
|
+
RegionsPtNuts: typeof RegionsPtNuts;
|
|
50
|
+
displayedRegions: import("vue").ComputedRef<RegionsPtNuts[]>;
|
|
51
|
+
hoveredRegion: import("vue").Ref<RegionsPtNuts | null, RegionsPtNuts | null>;
|
|
52
|
+
tooltipPosition: import("vue").Ref<{
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
width: number;
|
|
56
|
+
}, {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
} | {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
width: number;
|
|
64
|
+
}>;
|
|
65
|
+
scale: import("vue").Ref<number[], number[]>;
|
|
66
|
+
openSource: () => void;
|
|
67
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
68
|
+
data: {
|
|
69
|
+
type: PropType<dataRegion[]>;
|
|
70
|
+
default: null;
|
|
71
|
+
required: true;
|
|
72
|
+
};
|
|
73
|
+
title: {
|
|
74
|
+
type: PropType<string | null>;
|
|
75
|
+
default: null;
|
|
76
|
+
required: false;
|
|
77
|
+
};
|
|
78
|
+
source: {
|
|
79
|
+
type: PropType<string | null>;
|
|
80
|
+
default: null;
|
|
81
|
+
};
|
|
82
|
+
haveCustomTitle: {
|
|
83
|
+
type: PropType<string | null>;
|
|
84
|
+
default: null;
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
uniqueID: {
|
|
88
|
+
type: PropType<string | null>;
|
|
89
|
+
default: null;
|
|
90
|
+
required: false;
|
|
91
|
+
};
|
|
92
|
+
lang: {
|
|
93
|
+
type: StringConstructor;
|
|
94
|
+
default: string;
|
|
95
|
+
required: false;
|
|
96
|
+
};
|
|
97
|
+
reverseColors: {
|
|
98
|
+
type: BooleanConstructor;
|
|
99
|
+
default: boolean;
|
|
100
|
+
};
|
|
101
|
+
hideIslands: {
|
|
102
|
+
type: BooleanConstructor;
|
|
103
|
+
default: boolean;
|
|
104
|
+
};
|
|
105
|
+
}>> & Readonly<{
|
|
106
|
+
onOpenSource?: ((...args: any[]) => any) | undefined;
|
|
107
|
+
}>, {
|
|
108
|
+
data: dataRegion[];
|
|
109
|
+
lang: string;
|
|
110
|
+
source: string | null;
|
|
111
|
+
title: string | null;
|
|
112
|
+
haveCustomTitle: string | null;
|
|
113
|
+
uniqueID: string | null;
|
|
114
|
+
reverseColors: boolean;
|
|
115
|
+
hideIslands: boolean;
|
|
116
|
+
}, {}, {
|
|
117
|
+
OneRegionPtNuts: any;
|
|
118
|
+
ArgSourceContainer: any;
|
|
119
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
120
|
+
export default _default;
|
|
@@ -232,6 +232,37 @@ export declare enum RegionsJp {
|
|
|
232
232
|
Kagoshima = "Kagoshima",
|
|
233
233
|
Okinawa = "Okinawa"
|
|
234
234
|
}
|
|
235
|
+
export declare enum RegionsPtNuts {
|
|
236
|
+
Norte = "Norte",
|
|
237
|
+
Centro = "Centro",
|
|
238
|
+
Lisboa = "Lisboa",
|
|
239
|
+
Alentejo = "Alentejo",
|
|
240
|
+
Algarve = "Algarve",
|
|
241
|
+
Azores = "Azores",
|
|
242
|
+
Madeira = "Madeira"
|
|
243
|
+
}
|
|
244
|
+
export declare enum RegionsPt {
|
|
245
|
+
Aveiro = "Aveiro",
|
|
246
|
+
Beja = "Beja",
|
|
247
|
+
Braga = "Braga",
|
|
248
|
+
Braganca = "Bragan\u00E7a",
|
|
249
|
+
CasteloBranco = "Castelo Branco",
|
|
250
|
+
Coimbra = "Coimbra",
|
|
251
|
+
Evora = "\u00C9vora",
|
|
252
|
+
Faro = "Faro",
|
|
253
|
+
Guarda = "Guarda",
|
|
254
|
+
Leiria = "Leiria",
|
|
255
|
+
Lisboa = "Lisboa",
|
|
256
|
+
Portalegre = "Portalegre",
|
|
257
|
+
Porto = "Porto",
|
|
258
|
+
Santarem = "Santar\u00E9m",
|
|
259
|
+
Setubal = "Set\u00FAbal",
|
|
260
|
+
VianaDoCastelo = "Viana do Castelo",
|
|
261
|
+
VilaReal = "Vila Real",
|
|
262
|
+
Viseu = "Viseu",
|
|
263
|
+
Azores = "Azores",
|
|
264
|
+
Madeira = "Madeira"
|
|
265
|
+
}
|
|
235
266
|
export declare enum RegionsNz {
|
|
236
267
|
Auckland = "Auckland",
|
|
237
268
|
BayOfPlenty = "Bay of Plenty",
|
|
@@ -270,6 +270,39 @@ export var RegionsJp = /* @__PURE__ */ ((RegionsJp2) => {
|
|
|
270
270
|
RegionsJp2["Okinawa"] = "Okinawa";
|
|
271
271
|
return RegionsJp2;
|
|
272
272
|
})(RegionsJp || {});
|
|
273
|
+
export var RegionsPtNuts = /* @__PURE__ */ ((RegionsPtNuts2) => {
|
|
274
|
+
RegionsPtNuts2["Norte"] = "Norte";
|
|
275
|
+
RegionsPtNuts2["Centro"] = "Centro";
|
|
276
|
+
RegionsPtNuts2["Lisboa"] = "Lisboa";
|
|
277
|
+
RegionsPtNuts2["Alentejo"] = "Alentejo";
|
|
278
|
+
RegionsPtNuts2["Algarve"] = "Algarve";
|
|
279
|
+
RegionsPtNuts2["Azores"] = "Azores";
|
|
280
|
+
RegionsPtNuts2["Madeira"] = "Madeira";
|
|
281
|
+
return RegionsPtNuts2;
|
|
282
|
+
})(RegionsPtNuts || {});
|
|
283
|
+
export var RegionsPt = /* @__PURE__ */ ((RegionsPt2) => {
|
|
284
|
+
RegionsPt2["Aveiro"] = "Aveiro";
|
|
285
|
+
RegionsPt2["Beja"] = "Beja";
|
|
286
|
+
RegionsPt2["Braga"] = "Braga";
|
|
287
|
+
RegionsPt2["Braganca"] = "Bragan\xE7a";
|
|
288
|
+
RegionsPt2["CasteloBranco"] = "Castelo Branco";
|
|
289
|
+
RegionsPt2["Coimbra"] = "Coimbra";
|
|
290
|
+
RegionsPt2["Evora"] = "\xC9vora";
|
|
291
|
+
RegionsPt2["Faro"] = "Faro";
|
|
292
|
+
RegionsPt2["Guarda"] = "Guarda";
|
|
293
|
+
RegionsPt2["Leiria"] = "Leiria";
|
|
294
|
+
RegionsPt2["Lisboa"] = "Lisboa";
|
|
295
|
+
RegionsPt2["Portalegre"] = "Portalegre";
|
|
296
|
+
RegionsPt2["Porto"] = "Porto";
|
|
297
|
+
RegionsPt2["Santarem"] = "Santar\xE9m";
|
|
298
|
+
RegionsPt2["Setubal"] = "Set\xFAbal";
|
|
299
|
+
RegionsPt2["VianaDoCastelo"] = "Viana do Castelo";
|
|
300
|
+
RegionsPt2["VilaReal"] = "Vila Real";
|
|
301
|
+
RegionsPt2["Viseu"] = "Viseu";
|
|
302
|
+
RegionsPt2["Azores"] = "Azores";
|
|
303
|
+
RegionsPt2["Madeira"] = "Madeira";
|
|
304
|
+
return RegionsPt2;
|
|
305
|
+
})(RegionsPt || {});
|
|
273
306
|
export var RegionsNz = /* @__PURE__ */ ((RegionsNz2) => {
|
|
274
307
|
RegionsNz2["Auckland"] = "Auckland";
|
|
275
308
|
RegionsNz2["BayOfPlenty"] = "Bay of Plenty";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Aveiro": {
|
|
3
|
+
"code": "PT-01",
|
|
4
|
+
"path": "M273.25,184.75L277.75,183.28L278.26,185.89L283.33,184.81L286.63,181.03L288.16,184.81L290.5,185.62L290.86,183.79L293.74,182.59L290.74,181.18L291.49,179.17L294.85,180.73L295.81,179.05L297.94,183.79L302.62,186.97L303.31,183.7L301.33,182.29L301.54,179.23L307.45,181.0L313.54,175.0L317.02,177.16L320.08,178.42L320.83,183.04L319.66,183.37L320.38,185.41L323.86,185.65L322.87,188.11L325.0,187.48L331.99,190.45L335.95,185.14L336.85,185.83L337.09,189.1L332.08,195.1L332.62,202.69L335.5,207.43L332.44,210.16L328.09,207.52L325.45,210.58L320.8,207.76L318.04,209.11L320.11,213.73L316.0,224.11L309.16,226.72L309.85,231.04L313.21,233.77L313.51,242.56L319.15,245.38L311.92,248.41L314.62,257.08L318.61,261.31L308.77,265.09L310.84,271.87L306.58,276.73L306.43,283.03L306.22,286.0L304.21,286.93L300.79,285.31L300.28,289.54L295.81,290.5L295.15,296.29L291.25,294.31L287.2,294.55L286.48,290.77L291.64,290.83L292.06,280.24L289.36,278.05L289.36,274.72L281.59,278.02L281.32,268.3L280.27,266.17L276.73,265.15L274.78,268.15L274.39,274.12L271.21,273.79L266.74,269.14L257.29,259.9L260.98,244.51L261.22,241.81L259.63,241.3L269.02,209.92Z"
|
|
5
|
+
},
|
|
6
|
+
"Beja": {
|
|
7
|
+
"code": "PT-02",
|
|
8
|
+
"path": "M328.45,587.08L329.86,585.7L332.23,588.1L340.99,585.85L346.21,590.05L349.45,587.32L365.8,597.04L374.98,597.79L385.27,604.57L389.23,603.22L394.48,604.06L397.03,606.22L404.98,606.28L405.19,603.61L408.85,602.11L411.85,598.33L412.51,595.75L415.15,594.76L416.59,591.43L415.45,590.2L421.3,590.08L423.43,586.9L429.16,585.43L434.11,595.39L440.32,597.79L439.3,601.09L443.83,610.45L444.67,608.47L447.22,608.77L449.77,606.34L452.47,609.1L454.57,606.58L455.35,607.84L458.86,607.15L460.87,603.94L464.41,602.95L465.37,604.3L469.54,601.66L469.75,604.33L465.7,609.52L467.65,611.53L465.55,617.68L463.57,618.91L461.92,630.52L456.79,631.69L450.82,627.4L447.43,629.5L448.3,633.13L442.24,634.84L438.94,633.28L432.01,636.73L433.66,640.36L432.85,645.04L429.76,648.7L429.61,652.87L424.93,660.61L416.59,668.11L413.77,668.86L410.71,677.8L411.22,682.54L409.81,682.93L409.99,685.21L408.52,684.76L406.03,691.33L404.29,691.24L403.96,698.17L402.13,698.32L403.3,702.61L396.22,702.19L391.15,707.59L384.61,705.55L375.58,709.3L374.5,709.45L368.89,712.81L367.66,711.85L366.52,713.89L364.21,713.8L363.88,715.48L359.77,715.87L359.86,718.66L358.54,718.33L357.91,720.25L355.99,718.9L354.28,720.34L349.36,719.86L346.54,724.15L348.4,726.22L344.2,727.42L339.79,732.58L325.69,729.31L318.76,723.07L315.76,722.77L316.9,719.77L315.43,717.25L310.6,715.3L309.52,717.49L308.65,716.11L299.32,718.09L298.87,721.72L295.54,724.27L288.16,723.94L281.86,719.26L276.58,720.61L273.91,724.42L271.06,720.76L263.11,721.57L261.22,716.26L255.88,714.64L257.11,701.65L253.21,692.02L257.05,675.37L254.02,670.33L256.27,660.04L258.19,662.17L262.87,660.73L268.84,669.67L271.39,667.48L276.43,670.24L277.66,668.68L279.91,669.16L280.27,662.98L282.31,660.19L284.26,660.58L284.02,656.02L285.61,655.12L296.74,654.16L297.4,652.57L309.34,656.05L308.83,653.23L312.94,648.49L311.8,646.66L313.6,634.75L310.69,629.98L305.53,630.58L300.28,623.17L302.68,616.99L305.59,618.64L306.49,613.6L308.47,613.21L309.01,611.14L311.65,613.63L313.87,613.51L314.68,606.55L319.78,607.6L322.0,604.24L332.41,601.09L332.44,594.91Z"
|
|
9
|
+
},
|
|
10
|
+
"Braga": {
|
|
11
|
+
"code": "PT-03",
|
|
12
|
+
"path": "M341.44,61.72L340.24,70.78L337.18,78.16L333.61,81.76L343.03,79.99L348.58,82.42L347.65,94.93L360.97,97.33L364.45,93.16L369.07,99.58L367.9,102.19L365.77,102.64L366.04,105.22L362.95,107.08L363.25,109.0L359.56,108.73L358.51,112.45L354.43,114.22L354.07,121.45L349.48,126.91L351.04,127.36L350.29,129.94L348.61,134.23L343.75,138.55L339.82,134.83L337.39,136.96L333.58,134.83L330.52,132.22L331.3,129.55L329.08,129.01L328.27,126.1L322.81,124.33L321.79,127.15L319.06,127.03L315.43,130.84L314.32,135.16L310.99,133.6L309.88,129.67L302.05,131.98L303.19,129.07L301.45,128.56L297.76,131.8L295.0,129.88L289.75,130.99L287.8,134.44L277.21,135.16L275.74,128.8L279.49,126.13L277.81,124.21L272.68,123.13L270.4,119.2L266.86,119.71L261.7,115.63L258.31,115.24L254.32,93.61L260.41,93.28L267.31,89.23L271.06,88.99L272.56,90.67L273.46,87.13L277.96,90.22L281.02,88.87L282.7,91.84L285.22,90.67L284.47,85.75L287.41,83.26L287.77,76.12L289.72,74.17L291.37,73.99L291.52,75.91L294.34,75.13L298.6,71.29L304.27,69.28L307.06,70.9L312.1,70.69L313.54,67.63L316.12,69.16L324.79,62.8L328.12,63.55L328.36,61.93L336.55,63.49Z"
|
|
13
|
+
},
|
|
14
|
+
"Bragança": {
|
|
15
|
+
"code": "PT-04",
|
|
16
|
+
"path": "M470.05,182.71L465.73,181.66L463.09,183.4L462.4,181.63L457.15,180.46L455.47,177.61L450.49,174.97L450.4,171.25L452.53,168.01L447.22,166.24L448.99,164.23L448.69,159.88L443.35,167.98L433.51,165.1L427.18,165.94L421.09,164.65L417.31,157.42L412.57,155.08L414.58,149.32L417.67,149.92L417.22,143.62L420.58,140.8L419.05,139.21L421.27,136.66L426.01,135.58L420.64,131.53L421.66,129.73L420.04,123.82L420.22,119.95L427.9,116.26L427.54,112.75L429.55,108.43L435.85,107.32L432.49,101.14L432.46,96.79L438.19,78.25L442.42,73.21L442.51,69.34L439.87,67.45L438.01,62.59L439.12,52.45L442.24,46.36L440.41,42.88L440.86,38.14L445.93,35.29L452.11,37.96L453.91,41.62L461.44,41.5L464.53,37.9L467.02,38.65L468.55,42.43L474.55,43.15L482.65,42.19L483.82,35.02L488.74,36.31L490.81,42.58L493.57,43.57L505.63,43.18L509.44,38.89L513.91,42.43L511.39,51.85L517.81,53.68L514.57,68.02L511.66,73.39L513.16,74.35L514.78,83.11L519.61,86.71L524.47,85.24L525.97,82.45L542.29,85.99L547.78,90.4L549.91,94.39L553.87,96.31L555.28,99.34L549.79,107.56L547.39,108.67L548.17,110.8L546.46,111.1L546.94,112.84L544.39,114.04L541.93,118.54L542.53,121.75L538.72,124.57L540.52,128.32L536.53,129.46L534.91,127.15L532.27,128.5L531.82,130.78L533.74,132.37L529.3,134.11L526.75,140.62L521.08,142.78L522.07,145.15L520.0,146.62L516.97,145.18L511.39,150.76L509.05,148.3L508.12,150.07L502.54,149.47L497.59,155.26L495.55,160.9L488.8,166.66L490.39,171.34L484.09,181.63L477.25,183.1L471.79,181.36Z"
|
|
17
|
+
},
|
|
18
|
+
"Castelo Branco": {
|
|
19
|
+
"code": "PT-05",
|
|
20
|
+
"path": "M372.31,303.7L377.89,302.65L380.65,299.02L386.83,297.13L391.12,293.2L392.26,289.6L395.41,291.43L400.48,290.47L403.0,282.79L406.21,278.86L409.15,277.81L410.8,280.06L413.29,279.28L416.86,280.99L420.88,279.22L422.56,280.81L424.54,276.46L426.94,277.54L428.53,275.65L431.11,276.85L430.75,286.0L426.94,292.51L423.97,294.07L425.5,296.05L434.59,299.38L437.74,295.24L443.62,297.88L446.53,295.72L447.16,291.31L449.32,289.45L452.53,296.38L458.62,296.41L460.54,294.61L467.74,299.53L466.36,302.44L460.69,304.36L458.71,310.24L460.27,311.74L459.73,316.63L462.97,321.34L468.94,321.34L471.67,328.3L474.52,329.2L477.79,336.43L475.18,341.32L475.39,347.11L472.87,349.63L473.23,357.58L468.07,364.03L463.63,366.67L464.83,372.28L460.39,387.52L444.76,390.1L433.27,388.06L423.85,391.93L409.84,388.72L399.94,388.51L395.29,389.44L388.96,394.63L385.0,390.73L381.37,392.56L379.21,399.04L375.46,399.76L373.75,403.33L367.42,407.32L369.1,402.4L367.72,399.67L362.89,392.32L359.71,391.54L357.13,387.82L352.18,388.84L352.66,380.59L350.77,376.3L348.43,378.85L346.6,376.57L343.06,375.97L341.05,377.77L340.66,387.28L338.47,389.23L340.99,395.44L331.87,396.31L320.2,391.3L321.04,375.16L319.42,371.32L316.84,372.82L314.59,368.92L313.69,366.85L316.09,365.23L315.7,361.84L321.22,359.77L323.2,360.55L325.93,355.99L327.97,356.92L330.19,355.39L333.7,348.1L334.12,345.91L337.81,346.18L337.42,343.42L339.76,345.01L340.84,342.76L343.51,344.11L343.69,340.54L345.34,342.55L346.72,342.34L349.93,339.85L351.55,341.65L352.75,337.84L358.57,337.78L356.98,333.31L362.92,329.5L367.42,330.61L369.34,332.86L369.55,327.67L371.77,325.36L373.36,328.63L376.84,324.4L375.85,323.23L378.13,322.33L377.59,319.54L370.69,314.02L369.25,310.93Z"
|
|
21
|
+
},
|
|
22
|
+
"Coimbra": {
|
|
23
|
+
"code": "PT-06",
|
|
24
|
+
"path": "M257.29,259.9L266.74,269.14L271.21,273.79L274.39,274.12L274.78,268.15L276.73,265.15L280.27,266.17L281.32,268.3L281.59,278.02L289.36,274.72L289.36,278.05L292.06,280.24L291.64,290.83L286.48,290.77L287.2,294.55L291.25,294.31L295.15,296.29L295.81,290.5L300.28,289.54L300.79,285.31L304.21,286.93L306.22,286.0L306.43,283.03L307.93,282.61L309.52,284.89L312.91,284.38L318.52,289.66L325.15,286.63L326.08,288.1L327.7,286.36L331.9,288.16L342.43,280.27L350.32,277.3L360.61,267.04L367.03,263.2L367.15,265.75L370.66,269.41L369.04,272.14L364.75,273.73L365.11,275.95L367.21,277.6L370.6,277.3L369.7,285.73L375.1,288.37L374.26,290.68L369.79,292.0L367.33,298.3L372.31,303.7L369.25,310.93L370.69,314.02L377.59,319.54L378.13,322.33L375.85,323.23L376.84,324.4L373.36,328.63L371.77,325.36L369.55,327.67L369.34,332.86L367.42,330.61L362.92,329.5L356.98,333.31L358.57,337.78L352.75,337.84L351.55,341.65L349.93,339.85L346.72,342.34L345.34,342.55L343.69,340.54L343.51,344.11L340.84,342.76L339.76,345.01L337.42,343.42L337.81,346.18L334.12,345.91L333.7,348.1L332.08,347.23L334.69,342.49L329.41,334.93L330.82,327.31L326.77,324.76L323.23,330.4L319.51,328.12L315.64,331.42L313.09,336.82L316.24,339.85L315.25,344.29L311.29,339.91L304.39,349.63L300.37,348.43L303.7,344.89L298.39,334.24L297.16,335.83L298.27,338.59L294.79,335.56L290.98,340.3L287.35,340.54L285.46,345.88L282.82,334.03L279.37,334.09L276.7,339.37L273.52,339.67L273.7,336.55L269.74,333.7L259.3,332.08L255.4,336.34L250.9,333.94L247.57,334.72L244.66,331.57L248.35,317.56L242.86,310.06L250.33,288.52Z"
|
|
25
|
+
},
|
|
26
|
+
"Évora": {
|
|
27
|
+
"code": "PT-07",
|
|
28
|
+
"path": "M321.16,488.92L322.21,490.24L327.25,484.0L328.57,484.81L329.86,483.07L332.05,485.26L332.29,483.64L335.41,483.7L336.01,485.17L333.52,486.46L335.47,491.59L337.3,490.57L337.42,486.13L339.22,484.75L345.76,489.79L344.77,495.79L348.82,495.28L355.96,490.78L359.38,497.17L361.45,497.92L361.57,500.59L371.44,502.42L371.95,500.77L375.79,500.59L378.01,496.03L382.0,499.99L383.68,497.47L388.93,500.11L392.77,493.87L397.33,494.08L399.88,491.77L398.65,488.17L400.93,485.8L403.3,489.13L406.45,488.86L406.09,490.69L410.14,492.31L408.64,497.98L413.59,501.31L413.05,505.21L415.69,509.38L415.63,511.12L417.19,516.34L419.89,514.87L421.39,516.88L424.48,515.98L424.75,512.83L426.94,512.05L428.32,510.58L430.06,512.5L434.05,509.5L436.15,512.35L438.34,511.99L435.46,519.1L438.76,523.69L432.31,527.83L430.87,540.34L434.17,542.47L426.04,558.64L425.23,563.86L427.66,563.17L427.87,565.12L423.58,570.1L425.74,569.44L430.03,572.44L430.99,576.1L442.66,593.02L444.85,593.53L449.77,606.34L447.22,608.77L444.67,608.47L443.83,610.45L439.3,601.09L440.32,597.79L434.11,595.39L429.16,585.43L423.43,586.9L421.3,590.08L415.45,590.2L416.59,591.43L415.15,594.76L412.51,595.75L411.85,598.33L408.85,602.11L405.19,603.61L404.98,606.28L397.03,606.22L394.48,604.06L389.23,603.22L385.27,604.57L374.98,597.79L365.8,597.04L349.45,587.32L346.21,590.05L340.99,585.85L332.23,588.1L329.86,585.7L328.45,587.08L324.61,583.75L316.42,582.13L315.49,579.52L310.27,579.4L314.74,573.55L312.64,571.75L314.74,571.54L313.84,569.62L310.21,569.92L311.68,566.77L304.93,553.96L298.72,557.59L296.14,556.63L292.66,558.22L289.39,553.69L287.59,554.38L289.18,557.86L286.6,559.03L286.18,556.54L281.56,556.03L281.26,553.63L273.94,553.42L272.29,544.18L289.78,529.0L288.64,526.03L290.95,522.25L284.53,521.95L289.87,515.44L293.29,517.3L297.91,511.51L299.17,511.0L300.34,513.16L303.97,508.24L308.11,510.82L310.42,507.82L311.71,509.92L312.73,506.56L317.41,510.19L316.66,511.39L318.52,513.82L321.76,512.2L324.67,515.38L323.8,516.67L327.4,516.4L326.89,518.26L331.06,520.54L332.92,516.04L330.04,513.64L328.96,515.59L328.21,512.38L325.78,511.03L329.11,506.77L326.44,504.85L323.44,505.57L323.17,504.07L316.06,500.71L319.45,496.18L319.45,490.96Z"
|
|
29
|
+
},
|
|
30
|
+
"Faro": {
|
|
31
|
+
"code": "PT-08",
|
|
32
|
+
"path": "M255.88,714.64L261.22,716.26L263.11,721.57L271.06,720.76L273.91,724.42L276.58,720.61L281.86,719.26L288.16,723.94L295.54,724.27L298.87,721.72L299.32,718.09L308.65,716.11L309.52,717.49L310.6,715.3L315.43,717.25L316.9,719.77L315.76,722.77L318.76,723.07L325.69,729.31L339.79,732.58L344.2,727.42L348.4,726.22L346.54,724.15L349.36,719.86L354.28,720.34L355.99,718.9L357.91,720.25L358.54,718.33L359.86,718.66L359.77,715.87L363.88,715.48L364.21,713.8L366.52,713.89L367.66,711.85L368.89,712.81L374.5,709.45L375.58,709.3L384.61,705.55L391.15,707.59L396.22,702.19L403.3,702.61L405.64,703.18L406.57,706.66L408.91,708.25L408.31,710.95L411.01,718.06L409.03,719.56L411.58,722.17L411.37,733.69L413.74,739.09L412.36,742.51L414.67,746.08L415.36,753.82L409.42,753.01L397.78,756.7L370.99,776.38L367.27,774.61L362.23,777.61L362.26,780.67L360.61,781.24L354.13,777.13L349.3,778.03L334.6,768.46L326.32,765.52L313.09,768.16L305.35,763.93L297.16,766.27L285.85,761.59L276.55,760.84L271.0,763.18L270.67,767.2L263.86,766.09L256.81,769.51L250.84,769.84L248.08,772.54L244.6,772.45L238.45,779.47L236.65,774.91L232.84,775.33L243.58,754.72L241.87,750.25L244.45,748.81L248.53,739.78L246.49,732.28L250.33,727.81ZM368.2,775.33L369.55,776.65L363.67,778.36ZM353.95,777.64L362.2,783.79L355.93,782.95L349.78,778.45ZM367.36,777.91L369.37,778.27L362.29,783.91L363.94,780.19Z"
|
|
33
|
+
},
|
|
34
|
+
"Guarda": {
|
|
35
|
+
"code": "PT-09",
|
|
36
|
+
"path": "M427.18,165.94L433.51,165.1L443.35,167.98L448.69,159.88L448.99,164.23L447.22,166.24L452.53,168.01L450.4,171.25L450.49,174.97L455.47,177.61L457.15,180.46L462.4,181.63L463.09,183.4L465.73,181.66L470.05,182.71L471.16,186.82L478.33,194.83L479.5,201.97L484.09,205.06L484.9,208.36L484.9,210.67L482.05,211.45L483.19,218.02L481.54,224.74L485.83,238.6L479.92,253.0L485.02,255.4L485.68,261.28L479.41,270.31L481.18,276.91L487.3,283.42L485.8,288.88L478.09,293.2L476.98,298.78L467.74,299.53L460.54,294.61L458.62,296.41L452.53,296.38L449.32,289.45L447.16,291.31L446.53,295.72L443.62,297.88L437.74,295.24L434.59,299.38L425.5,296.05L423.97,294.07L426.94,292.51L430.75,286.0L431.11,276.85L428.53,275.65L426.94,277.54L424.54,276.46L422.56,280.81L420.88,279.22L416.86,280.99L413.29,279.28L410.8,280.06L409.15,277.81L406.21,278.86L403.0,282.79L400.48,290.47L395.41,291.43L392.26,289.6L391.12,293.2L386.83,297.13L380.65,299.02L377.89,302.65L372.31,303.7L367.33,298.3L369.79,292.0L374.26,290.68L375.1,288.37L369.7,285.73L370.6,277.3L367.21,277.6L365.11,275.95L364.75,273.73L369.04,272.14L370.66,269.41L367.15,265.75L367.03,263.2L385.75,253.96L395.44,251.89L394.51,250.06L397.18,241.03L399.91,238.9L398.83,236.2L400.72,234.22L394.3,230.65L393.61,228.4L396.61,225.31L390.04,220.39L394.87,209.59L397.72,206.62L403.12,207.07L410.08,215.71L415.87,205.66L418.54,207.16L419.2,200.5L423.55,197.23L424.81,191.44L418.66,188.53L418.63,185.14L423.4,185.02L422.47,180.13ZM414.16,199.09L418.66,202.18L416.41,205.39L412.75,203.26Z"
|
|
37
|
+
},
|
|
38
|
+
"Leiria": {
|
|
39
|
+
"code": "PT-10",
|
|
40
|
+
"path": "M233.11,443.11L229.45,443.62L227.95,441.1L224.86,441.16L224.2,442.72L220.03,446.17L216.1,453.1L212.05,455.74L209.23,450.37L211.0,447.25L209.47,442.27L204.31,441.91L203.14,439.99L198.4,445.09L193.3,443.83L190.51,435.34L185.47,433.75L186.88,432.13L192.64,433.18L204.76,423.94L208.12,426.73L206.32,422.38L212.77,412.75L216.67,412.21L215.74,409.66L223.75,399.82L223.93,397.66L222.52,397.36L226.66,380.08L244.66,331.57L247.57,334.72L250.9,333.94L255.4,336.34L259.3,332.08L269.74,333.7L273.7,336.55L273.52,339.67L276.7,339.37L279.37,334.09L282.82,334.03L285.46,345.88L287.35,340.54L290.98,340.3L294.79,335.56L298.27,338.59L297.16,335.83L298.39,334.24L303.7,344.89L300.37,348.43L304.39,349.63L311.29,339.91L315.25,344.29L316.24,339.85L313.09,336.82L315.64,331.42L319.51,328.12L323.23,330.4L326.77,324.76L330.82,327.31L329.41,334.93L334.69,342.49L332.08,347.23L333.7,348.1L330.19,355.39L327.97,356.92L325.93,355.99L323.2,360.55L321.22,359.77L315.7,361.84L316.09,365.23L313.69,366.85L314.59,368.92L309.13,367.75L309.52,373.84L307.69,371.98L303.7,375.34L300.94,374.08L295.36,378.46L292.54,362.44L289.21,365.86L287.65,363.91L285.16,367.9L279.28,371.59L274.42,369.67L269.65,372.07L269.17,376.09L271.06,379.36L269.32,381.76L274.51,383.98L272.74,388.96L266.68,392.32L268.51,401.14L270.25,403.45L267.46,408.1L265.27,409.81L263.08,407.5L261.58,408.61L263.56,415.87L255.19,415.42L243.58,417.97L238.72,429.1L236.08,428.62L233.53,431.23Z"
|
|
41
|
+
},
|
|
42
|
+
"Lisboa": {
|
|
43
|
+
"code": "PT-11",
|
|
44
|
+
"path": "M193.3,443.83L198.4,445.09L203.14,439.99L204.31,441.91L209.47,442.27L211.0,447.25L209.23,450.37L212.05,455.74L216.1,453.1L220.03,446.17L224.2,442.72L224.86,441.16L227.95,441.1L229.45,443.62L233.11,443.11L235.33,444.55L234.61,450.07L236.77,449.23L242.59,452.26L246.76,449.92L248.29,452.92L251.68,454.0L252.4,459.52L246.22,459.46L242.47,461.59L247.69,468.07L255.67,472.81L257.53,478.42L252.73,482.92L248.5,482.8L250.69,484.54L246.55,491.5L249.61,492.58L244.96,495.25L242.65,503.53L236.02,512.65L233.65,508.87L234.94,506.62L233.08,504.19L232.99,495.7L230.17,503.5L222.7,513.58L220.63,526.48L215.86,530.56L207.7,532.54L200.23,531.46L195.31,535.24L187.45,530.98L183.46,532.84L176.65,530.08L178.3,523.93L175.0,519.4L184.45,495.52L185.35,496.18L183.37,486.7L184.03,475.99L192.79,456.97Z"
|
|
45
|
+
},
|
|
46
|
+
"Portalegre": {
|
|
47
|
+
"code": "PT-12",
|
|
48
|
+
"path": "M438.76,523.69L435.46,519.1L438.34,511.99L436.15,512.35L434.05,509.5L430.06,512.5L428.32,510.58L426.94,512.05L424.75,512.83L424.48,515.98L421.39,516.88L419.89,514.87L417.19,516.34L415.63,511.12L415.69,509.38L413.05,505.21L413.59,501.31L408.64,497.98L410.14,492.31L406.09,490.69L406.45,488.86L403.3,489.13L400.93,485.8L398.65,488.17L399.88,491.77L397.33,494.08L392.77,493.87L388.93,500.11L383.68,497.47L382.0,499.99L378.01,496.03L375.79,500.59L371.95,500.77L371.44,502.42L361.57,500.59L361.45,497.92L359.38,497.17L355.96,490.78L348.82,495.28L344.77,495.79L345.76,489.79L339.22,484.75L337.42,486.13L337.3,490.57L335.47,491.59L333.52,486.46L336.01,485.17L335.41,483.7L332.29,483.64L332.05,485.26L329.86,483.07L328.57,484.81L327.25,484.0L322.21,490.24L321.16,488.92L321.28,486.37L318.7,486.55L316.6,479.56L313.93,478.36L313.93,475.15L308.92,473.02L307.87,470.8L313.06,462.91L319.96,460.24L325.96,454.72L329.98,450.04L329.47,447.49L331.78,444.64L338.29,445.9L344.29,436.45L343.9,433.12L350.95,430.33L354.28,426.28L348.07,420.7L346.3,416.89L352.42,403.3L364.39,411.28L367.42,407.32L373.75,403.33L375.46,399.76L379.21,399.04L381.37,392.56L385.0,390.73L388.96,394.63L395.29,389.44L399.94,388.51L400.48,388.84L404.8,399.55L409.21,402.07L412.75,407.77L417.28,408.49L418.3,414.22L420.52,415.66L422.23,414.7L428.35,419.32L425.08,430.54L426.85,437.26L435.58,445.87L433.69,449.53L434.44,456.25L438.28,459.34L446.68,461.71L445.63,470.98L450.07,472.39L458.41,469.69L464.35,474.07L466.81,478.99L465.85,481.21L467.77,483.55L456.16,500.77L458.38,504.94L457.66,507.01L454.27,508.57L451.09,514.21L446.05,515.68Z"
|
|
49
|
+
},
|
|
50
|
+
"Porto": {
|
|
51
|
+
"code": "PT-13",
|
|
52
|
+
"path": "M258.31,115.24L261.7,115.63L266.86,119.71L270.4,119.2L272.68,123.13L277.81,124.21L279.49,126.13L275.74,128.8L277.21,135.16L287.8,134.44L289.75,130.99L295.0,129.88L297.76,131.8L301.45,128.56L303.19,129.07L302.05,131.98L309.88,129.67L310.99,133.6L314.32,135.16L315.43,130.84L319.06,127.03L321.79,127.15L322.81,124.33L328.27,126.1L329.08,129.01L331.3,129.55L330.52,132.22L333.58,134.83L337.39,136.96L339.82,134.83L343.75,138.55L348.61,134.23L350.29,129.94L350.47,132.19L353.38,133.39L351.46,136.9L357.94,141.04L356.35,142.87L356.95,145.63L361.6,150.31L357.46,168.94L352.87,168.52L341.26,173.53L336.31,171.85L331.75,174.43L323.83,172.87L317.02,177.16L313.54,175.0L307.45,181.0L301.54,179.23L301.33,182.29L303.31,183.7L302.62,186.97L297.94,183.79L295.81,179.05L294.85,180.73L291.49,179.17L290.74,181.18L293.74,182.59L290.86,183.79L290.5,185.62L288.16,184.81L286.63,181.03L283.33,184.81L278.26,185.89L277.75,183.28L273.25,184.75L270.58,165.94L264.97,156.1L262.42,136.48L256.96,123.82Z"
|
|
53
|
+
},
|
|
54
|
+
"Santarém": {
|
|
55
|
+
"code": "PT-14",
|
|
56
|
+
"path": "M233.11,443.11L233.53,431.23L236.08,428.62L238.72,429.1L243.58,417.97L255.19,415.42L263.56,415.87L261.58,408.61L263.08,407.5L265.27,409.81L267.46,408.1L270.25,403.45L268.51,401.14L266.68,392.32L272.74,388.96L274.51,383.98L269.32,381.76L271.06,379.36L269.17,376.09L269.65,372.07L274.42,369.67L279.28,371.59L285.16,367.9L287.65,363.91L289.21,365.86L292.54,362.44L295.36,378.46L300.94,374.08L303.7,375.34L307.69,371.98L309.52,373.84L309.13,367.75L314.59,368.92L316.84,372.82L319.42,371.32L321.04,375.16L320.2,391.3L331.87,396.31L340.99,395.44L338.47,389.23L340.66,387.28L341.05,377.77L343.06,375.97L346.6,376.57L348.43,378.85L350.77,376.3L352.66,380.59L352.18,388.84L357.13,387.82L359.71,391.54L362.89,392.32L367.72,399.67L369.1,402.4L367.42,407.32L364.39,411.28L352.42,403.3L346.3,416.89L348.07,420.7L354.28,426.28L350.95,430.33L343.9,433.12L344.29,436.45L338.29,445.9L331.78,444.64L329.47,447.49L329.98,450.04L325.96,454.72L319.96,460.24L313.06,462.91L307.87,470.8L308.92,473.02L313.93,475.15L313.93,478.36L316.6,479.56L318.7,486.55L321.28,486.37L321.16,488.92L319.45,490.96L319.45,496.18L316.06,500.71L323.17,504.07L323.44,505.57L326.44,504.85L329.11,506.77L325.78,511.03L328.21,512.38L328.96,515.59L330.04,513.64L332.92,516.04L331.06,520.54L326.89,518.26L327.4,516.4L323.8,516.67L324.67,515.38L321.76,512.2L318.52,513.82L316.66,511.39L317.41,510.19L312.73,506.56L311.71,509.92L310.42,507.82L308.11,510.82L303.97,508.24L300.34,513.16L299.17,511.0L297.91,511.51L293.29,517.3L289.87,515.44L284.53,521.95L276.91,519.04L278.86,510.52L275.05,512.02L273.91,515.17L266.02,509.86L260.77,524.98L256.42,526.24L250.99,522.19L244.84,525.19L243.52,524.38L243.1,525.94L240.97,522.46L238.78,519.76L240.4,518.77L239.89,515.98L236.02,512.65L242.65,503.53L244.96,495.25L249.61,492.58L246.55,491.5L250.69,484.54L248.5,482.8L252.73,482.92L257.53,478.42L255.67,472.81L247.69,468.07L242.47,461.59L246.22,459.46L252.4,459.52L251.68,454.0L248.29,452.92L246.76,449.92L242.59,452.26L236.77,449.23L234.61,450.07L235.33,444.55Z"
|
|
57
|
+
},
|
|
58
|
+
"Setúbal": {
|
|
59
|
+
"code": "PT-15",
|
|
60
|
+
"path": "M240.97,522.46L243.1,525.94L243.52,524.38L244.84,525.19L250.99,522.19L256.42,526.24L260.77,524.98L266.02,509.86L273.91,515.17L275.05,512.02L278.86,510.52L276.91,519.04L284.53,521.95L290.95,522.25L288.64,526.03L289.78,529.0L272.29,544.18L273.94,553.42L281.26,553.63L281.56,556.03L286.18,556.54L286.6,559.03L289.18,557.86L287.59,554.38L289.39,553.69L292.66,558.22L296.14,556.63L298.72,557.59L304.93,553.96L311.68,566.77L310.21,569.92L313.84,569.62L314.74,571.54L312.64,571.75L314.74,573.55L310.27,579.4L315.49,579.52L316.42,582.13L324.61,583.75L328.45,587.08L332.44,594.91L332.41,601.09L322.0,604.24L319.78,607.6L314.68,606.55L313.87,613.51L311.65,613.63L309.01,611.14L308.47,613.21L306.49,613.6L305.59,618.64L302.68,616.99L300.28,623.17L305.53,630.58L310.69,629.98L313.6,634.75L311.8,646.66L312.94,648.49L308.83,653.23L309.34,656.05L297.4,652.57L296.74,654.16L285.61,655.12L284.02,656.02L284.26,660.58L282.31,660.19L280.27,662.98L279.91,669.16L277.66,668.68L276.43,670.24L271.39,667.48L268.84,669.67L262.87,660.73L258.19,662.17L256.27,660.04L254.5,644.32L249.4,643.15L247.75,640.51L245.35,640.78L251.11,630.7L256.78,612.46L258.37,598.87L257.23,584.47L252.46,572.17L243.19,561.76L252.58,568.75L255.58,576.91L254.65,569.11L257.77,572.17L270.13,572.59L266.89,569.11L264.43,569.29L264.43,558.43L262.36,557.32L262.03,551.89L259.63,556.69L256.72,554.38L257.5,558.49L254.17,559.3L260.35,559.87L260.56,562.6L257.77,564.73L255.64,565.27L256.06,562.72L244.12,557.68L240.64,559.42L240.07,562.39L234.67,563.74L229.18,568.6L225.1,570.22L220.06,569.05L217.09,571.06L213.1,570.97L209.98,573.94L206.89,573.31L211.6,559.84L215.95,557.14L211.57,558.28L208.18,545.23L202.27,536.77L215.68,532.99L215.65,536.32L217.87,538.3L220.27,542.95L220.15,539.71L222.97,539.44L226.66,545.41L224.95,538.84L221.95,537.22L227.65,534.37L228.07,536.95L230.08,535.63L233.05,538.45L231.34,533.8L236.02,531.28L228.79,531.19L226.81,532.78L227.35,528.97L236.77,522.88Z"
|
|
61
|
+
},
|
|
62
|
+
"Viana do Castelo": {
|
|
63
|
+
"code": "PT-16",
|
|
64
|
+
"path": "M328.36,61.93L328.12,63.55L324.79,62.8L316.12,69.16L313.54,67.63L312.1,70.69L307.06,70.9L304.27,69.28L298.6,71.29L294.34,75.13L291.52,75.91L291.37,73.99L289.72,74.17L287.77,76.12L287.41,83.26L284.47,85.75L285.22,90.67L282.7,91.84L281.02,88.87L277.96,90.22L273.46,87.13L272.56,90.67L271.06,88.99L267.31,89.23L260.41,93.28L254.32,93.61L252.46,84.58L250.87,82.63L250.33,84.19L246.22,72.43L246.85,65.08L248.56,63.1L246.91,61.48L247.06,53.89L253.33,47.56L260.47,44.2L261.88,39.13L271.27,33.46L271.81,29.2L274.3,26.44L284.62,25.48L287.62,21.55L296.44,21.13L298.06,22.69L303.49,22.06L305.62,19.87L309.22,20.89L310.9,17.71L317.62,15.04L318.19,12.7L321.61,13.24L324.49,10.0L325.36,11.8L326.41,23.8L333.7,21.13L336.22,22.69L337.84,29.47L336.64,32.05L332.65,32.98L328.6,36.52L322.42,47.23L324.34,53.35L327.88,52.93Z"
|
|
65
|
+
},
|
|
66
|
+
"Vila Real": {
|
|
67
|
+
"code": "PT-17",
|
|
68
|
+
"path": "M439.12,52.45L438.01,62.59L439.87,67.45L442.51,69.34L442.42,73.21L438.19,78.25L432.46,96.79L432.49,101.14L435.85,107.32L429.55,108.43L427.54,112.75L427.9,116.26L420.22,119.95L420.04,123.82L421.66,129.73L420.64,131.53L426.01,135.58L421.27,136.66L419.05,139.21L420.58,140.8L417.22,143.62L417.67,149.92L414.58,149.32L412.57,155.08L404.41,156.79L402.04,159.82L399.25,158.47L394.39,163.39L385.84,162.4L382.0,165.64L370.63,162.55L368.68,165.01L361.78,163.27L357.46,168.94L361.6,150.31L356.95,145.63L356.35,142.87L357.94,141.04L351.46,136.9L353.38,133.39L350.47,132.19L350.29,129.94L351.04,127.36L349.48,126.91L354.07,121.45L354.43,114.22L358.51,112.45L359.56,108.73L363.25,109.0L362.95,107.08L366.04,105.22L365.77,102.64L367.9,102.19L369.07,99.58L364.45,93.16L360.97,97.33L347.65,94.93L348.58,82.42L343.03,79.99L333.61,81.76L337.18,78.16L340.24,70.78L341.44,61.72L345.82,60.16L350.26,53.11L356.38,52.72L358.12,45.13L360.55,45.55L359.71,55.54L361.93,57.79L365.53,54.46L365.11,52.18L371.2,51.91L374.47,49.45L377.95,50.5L381.67,48.1L387.07,52.21L394.87,52.09L391.96,60.22L402.28,58.27L404.5,54.01L410.2,54.67L411.22,58.63L413.26,60.07L412.99,63.58L420.16,56.59L421.24,58.48L425.95,58.18Z"
|
|
69
|
+
},
|
|
70
|
+
"Viseu": {
|
|
71
|
+
"code": "PT-18",
|
|
72
|
+
"path": "M412.57,155.08L417.31,157.42L421.09,164.65L427.18,165.94L422.47,180.13L423.4,185.02L418.63,185.14L418.66,188.53L424.81,191.44L423.55,197.23L419.2,200.5L418.54,207.16L415.87,205.66L410.08,215.71L403.12,207.07L397.72,206.62L394.87,209.59L390.04,220.39L396.61,225.31L393.61,228.4L394.3,230.65L400.72,234.22L398.83,236.2L399.91,238.9L397.18,241.03L394.51,250.06L395.44,251.89L385.75,253.96L367.03,263.2L360.61,267.04L350.32,277.3L342.43,280.27L331.9,288.16L327.7,286.36L326.08,288.1L325.15,286.63L318.52,289.66L312.91,284.38L309.52,284.89L307.93,282.61L306.43,283.03L306.58,276.73L310.84,271.87L308.77,265.09L318.61,261.31L314.62,257.08L311.92,248.41L319.15,245.38L313.51,242.56L313.21,233.77L309.85,231.04L309.16,226.72L316.0,224.11L320.11,213.73L318.04,209.11L320.8,207.76L325.45,210.58L328.09,207.52L332.44,210.16L335.5,207.43L332.62,202.69L332.08,195.1L337.09,189.1L336.85,185.83L335.95,185.14L331.99,190.45L325.0,187.48L322.87,188.11L323.86,185.65L320.38,185.41L319.66,183.37L320.83,183.04L320.08,178.42L317.02,177.16L323.83,172.87L331.75,174.43L336.31,171.85L341.26,173.53L352.87,168.52L357.46,168.94L361.78,163.27L368.68,165.01L370.63,162.55L382.0,165.64L385.84,162.4L394.39,163.39L399.25,158.47L402.04,159.82L404.41,156.79ZM414.16,199.09L412.75,203.26L416.41,205.39L418.66,202.18Z"
|
|
73
|
+
},
|
|
74
|
+
"Azores": {
|
|
75
|
+
"code": "PT-20",
|
|
76
|
+
"path": "M15.82,296.0L16.29,296.21L16.43,296.59L16.3,297.23L15.72,297.74L15.37,297.02L15.32,296.73L15.65,296.06ZM13.41,302.21L13.57,302.7L14.02,303.01L14.74,303.05L14.85,303.74L15.15,304.09L15.35,304.07L15.36,304.54L14.96,304.92L15.0,305.24L14.8,305.49L14.86,305.79L14.37,306.73L13.81,306.87L13.15,306.78L12.87,306.92L12.49,306.79L12.29,306.53L12.22,306.06L12.4,305.94L12.14,305.45L12.2,304.88L12.0,304.44L12.27,304.08L12.26,303.3L12.64,302.94L12.84,302.6L12.76,302.32L13.31,302.34ZM88.84,315.31L89.23,315.44L89.81,315.82L90.23,316.49L90.25,316.73L90.57,317.03L90.77,317.71L90.24,318.0L89.36,317.65L89.35,317.52L88.7,317.57L88.43,317.24L88.19,316.6L87.85,316.09L88.27,315.72L88.35,315.36ZM107.15,324.27L108.15,324.56L108.52,324.34L108.79,324.54L109.37,324.62L109.71,324.79L110.04,324.74L110.32,324.92L110.82,324.8L111.8,325.55L111.86,326.04L112.24,326.31L111.84,326.5L111.81,326.94L112.26,327.3L112.29,327.53L111.91,327.87L111.96,328.08L111.48,328.28L111.44,329.12L110.79,329.11L110.49,328.98L109.9,329.1L109.25,328.79L108.64,328.88L108.37,328.77L108.11,329.15L107.72,329.11L107.82,328.74L107.36,328.71L106.7,328.85L106.47,328.77L105.97,328.39L104.94,327.81L104.5,327.17L104.29,326.47L104.27,325.98L104.68,324.93L105.38,324.54L106.45,324.32ZM82.02,325.7L82.7,325.82L83.31,326.03L84.02,326.47L84.13,326.45L85.35,326.99L86.11,327.21L86.75,327.61L87.31,327.73L87.68,327.97L88.72,328.3L88.97,328.25L89.43,328.61L89.74,328.69L90.09,329.1L90.47,329.31L91.24,329.59L91.5,329.95L92.25,330.17L93.82,331.05L94.81,331.5L95.41,332.03L94.92,332.4L94.72,332.34L93.6,332.45L92.85,332.08L92.66,331.85L91.66,331.38L90.89,330.76L90.6,330.74L90.23,330.53L89.97,330.63L89.32,330.39L88.95,330.4L88.43,329.93L87.98,329.63L87.05,329.47L86.0,328.93L85.54,328.62L85.01,328.4L84.77,328.0L84.26,328.02L84.34,327.69L84.08,327.37L83.14,326.91L82.56,326.35ZM72.59,329.11L72.83,329.11L73.57,329.39L74.2,329.95L74.81,330.11L75.34,330.62L75.1,331.07L75.21,331.38L75.02,331.62L75.24,332.07L74.83,332.18L74.69,332.34L74.73,332.78L74.37,332.7L74.11,332.8L73.6,332.76L73.4,332.85L72.31,332.93L71.73,332.58L71.67,332.03L71.48,331.58L70.99,331.51L70.18,331.01L69.77,330.33L70.08,330.34L70.47,330.12L71.62,330.11L71.9,329.9L72.26,329.32ZM79.7,331.61L80.29,331.71L80.8,331.92L81.39,332.28L81.73,332.38L82.02,332.73L82.29,332.87L82.56,333.29L82.85,333.26L83.14,333.5L83.77,333.49L84.03,333.86L84.78,334.21L85.0,334.61L85.23,334.6L85.48,334.79L86.1,334.81L86.41,334.97L88.19,335.2L88.22,335.35L88.72,335.66L88.86,336.15L88.27,336.26L87.96,336.45L87.31,336.51L86.73,336.32L85.33,336.22L85.1,336.3L84.86,336.65L84.61,336.68L83.85,337.04L83.47,336.81L83.45,336.38L83.07,336.13L82.33,336.18L81.19,336.03L80.81,336.13L79.98,335.72L79.69,335.66L79.42,335.85L78.98,335.89L78.51,335.51L78.15,335.43L77.27,334.92L77.17,334.53L76.98,334.38L76.72,333.88L76.68,333.18L76.85,332.44L77.2,332.11L78.22,331.64L78.9,331.8ZM150.35,353.85L150.63,353.95L151.18,353.81L151.43,353.57L151.62,353.64L152.2,353.41L152.94,353.02L153.06,352.75L153.71,352.98L154.17,352.82L155.29,353.02L156.15,352.84L156.63,352.88L157.22,353.12L157.57,354.4L157.34,354.82L157.45,355.19L157.2,355.89L156.7,356.36L156.24,356.37L156.01,356.55L155.59,356.53L155.0,356.26L154.4,356.26L153.83,356.55L153.01,356.83L152.41,356.9L152.02,357.23L151.49,357.13L150.84,357.23L150.63,357.13L150.24,357.28L149.93,357.14L149.31,357.08L148.65,357.44L148.18,357.16L147.98,356.9L147.41,356.5L147.3,356.33L146.88,356.43L146.6,356.26L146.32,356.32L146.09,356.13L145.76,356.13L145.61,356.34L144.81,356.52L144.48,356.65L143.86,356.33L143.44,356.0L143.26,355.74L142.34,355.14L142.22,354.87L141.39,354.33L141.27,354.12L140.81,353.79L140.77,353.55L140.46,352.84L140.66,352.68L140.82,352.29L141.19,352.06L141.26,351.61L141.69,351.73L142.21,351.3L142.64,351.46L143.69,352.0L144.17,352.71L144.31,353.29L144.62,353.52L145.56,353.78L145.86,353.71L146.84,354.22L147.27,354.09L147.62,354.17L148.27,353.93L148.42,353.74L149.18,353.2L149.57,353.88ZM158.65,378.04L158.81,378.21L159.52,378.2L159.43,378.76L159.54,378.96L160.1,379.35L160.39,379.73L160.3,380.07L160.44,380.3L160.3,380.62L159.09,380.63L158.57,380.03L158.07,379.95L157.4,380.34L157.25,380.13L157.02,380.31L156.66,379.97L156.62,379.46L156.35,378.98L156.45,378.61L156.71,378.41L157.29,378.31L157.54,378.47L157.69,378.28L157.96,378.42Z"
|
|
77
|
+
},
|
|
78
|
+
"Madeira": {
|
|
79
|
+
"code": "PT-30",
|
|
80
|
+
"path": "M114.16,517.66L115.43,521.22L117.26,524.35L115.34,523.42L113.67,519.12ZM136.36,426.49L137.94,429.43L136.92,430.33L137.51,431.73L135.18,431.17L133.41,431.6L127.28,436.78L125.63,435.63L127.37,432.44L128.36,428.5L129.54,428.44L130.31,427.05L132.55,426.36L134.06,425.0ZM33.9,458.88L35.8,461.86L38.68,464.65L40.97,464.77L42.46,466.39L47.42,467.35L51.64,466.39L54.77,464.28L57.87,464.8L64.97,463.22L67.32,464.77L69.74,467.53L73.03,470.35L74.64,473.05L79.88,474.54L83.81,474.82L85.86,475.41L88.12,475.34L89.27,475.87L88.74,477.2L85.55,477.33L83.69,477.76L81.86,481.64L80.44,483.96L78.08,484.74L76.87,487.9L73.58,491.06L71.35,491.65L67.94,490.38L64.69,490.19L59.91,492.11L58.89,490.88L55.2,489.54L51.57,489.39L43.36,485.54L41.16,485.73L37.1,482.19L28.32,477.45L24.45,472.34L24.7,471.16L23.74,468.31L22.0,466.45L29.87,458.85ZM111.84,506.53L113.67,510.47L113.91,514.19L111.0,507.06L108.46,505.01L108.15,500.58L110.35,503.21Z"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Norte": {
|
|
3
|
+
"code": "PT-N",
|
|
4
|
+
"path": "M470.08,181.12L465.13,180.28L464.74,182.83L462.85,187.51L461.08,188.89L456.61,190.6L450.79,189.49L447.79,193.33L446.35,197.23L441.07,195.31L442.93,190.09L441.22,187.84L440.98,185.2L443.02,184.24L441.04,180.67L438.52,179.86L436.63,180.31L434.2,184.15L432.34,182.8L426.52,183.13L423.94,182.05L422.74,183.73L418.81,183.7L419.08,186.73L423.55,188.65L424.78,190.12L423.88,195.13L421.15,196.51L419.02,199.54L417.31,199.42L415.21,197.44L413.8,198.16L412.96,202.03L415.66,204.43L412.09,212.26L410.26,213.82L408.88,211.69L407.2,210.79L405.61,207.64L403.42,206.68L402.7,205.21L397.78,204.79L395.17,207.31L394.27,211.33L392.53,209.86L389.71,204.79L383.11,207.49L380.5,202.99L382.15,199.45L382.87,194.83L375.76,194.38L374.83,191.8L375.49,189.88L371.62,188.68L368.71,191.65L367.33,191.65L364.45,188.02L361.57,186.43L358.63,186.16L361.39,181.87L356.35,182.38L353.8,183.79L351.28,189.37L344.89,190.84L341.77,187.75L339.85,188.23L337.27,187.33L332.11,193.9L333.43,197.74L332.62,201.04L334.63,203.35L335.38,205.75L334.9,207.49L331.99,208.63L328.06,205.96L325.21,208.93L323.65,208.66L321.04,206.59L318.16,207.49L320.05,212.23L316.3,218.71L311.8,218.92L310.57,217.87L308.29,219.37L304.33,215.98L302.08,216.16L301.54,218.83L297.79,220.51L297.37,219.04L290.74,219.7L289.87,222.52L287.08,221.23L288.19,219.67L284.68,217.87L284.05,214.78L286.12,213.07L284.11,208.54L286.36,206.8L287.44,202.3L286.3,202.21L284.02,204.61L282.16,204.94L280.57,202.6L280.39,199.3L277.93,193.84L278.41,191.11L277.57,189.49L272.17,190.93L273.31,182.62L271.84,177.67L270.43,164.05L268.42,161.32L267.88,158.92L265.33,158.44L266.14,156.73L263.62,148.6L264.13,146.17L262.21,138.25L262.33,134.53L260.71,133.33L259.03,127.69L256.81,122.44L258.13,112.6L256.6,109.03L256.0,100.75L252.4,86.47L252.43,83.02L250.15,82.3L246.37,71.11L246.91,63.43L247.93,61.21L246.64,57.58L247.27,53.05L250.27,50.23L252.91,45.88L257.23,44.83L260.89,41.74L262.12,37.21L270.85,31.93L271.78,27.64L274.63,24.58L278.14,23.62L284.56,23.74L286.84,22.48L287.41,19.93L296.26,19.51L298.45,21.07L301.18,19.78L303.25,20.38L305.38,18.28L309.04,19.18L310.63,16.21L312.64,15.97L315.76,13.12L317.5,13.36L318.88,10.69L321.55,11.59L323.77,10.0L325.51,11.65L326.35,21.82L329.74,20.17L334.24,19.93L336.13,21.25L337.63,24.88L337.15,29.89L332.44,31.45L328.66,35.11L327.13,39.13L324.88,41.38L322.45,46.06L322.69,47.83L324.37,50.02L324.16,51.85L327.76,51.4L328.69,54.55L328.45,60.1L332.71,61.6L340.99,60.43L343.03,58.36L345.76,58.21L346.84,55.57L349.9,51.79L353.29,52.03L356.41,50.98L358.3,43.51L360.58,44.26L359.89,53.59L361.33,55.27L364.93,53.32L366.31,50.83L371.47,50.23L375.07,47.86L377.44,48.79L381.67,46.51L386.53,50.26L395.11,50.86L393.16,52.6L391.87,58.45L396.85,58.15L401.62,56.8L403.9,55.33L403.48,53.02L405.61,52.09L406.75,53.35L410.59,53.53L410.8,56.29L413.2,58.45L413.29,61.63L416.59,58.75L417.37,56.74L420.16,55.0L421.33,56.62L426.1,56.29L433.57,52.63L435.64,52.48L437.95,50.77L439.51,50.65L441.94,44.65L440.44,41.17L441.16,39.34L440.62,36.91L441.64,35.26L444.07,35.68L445.93,33.7L451.96,36.22L453.22,39.43L456.19,40.15L457.12,39.07L461.26,39.91L462.34,37.93L464.59,36.25L467.08,37.33L468.61,40.78L474.58,41.5L477.49,40.3L481.99,40.84L484.9,33.61L488.23,34.42L490.75,40.78L493.36,41.8L497.14,42.49L505.9,41.38L508.15,40.27L509.59,37.3L513.85,40.75L514.51,42.67L511.6,49.9L517.96,52.21L516.94,53.77L514.57,66.37L513.34,70.0L513.52,75.46L514.84,78.13L513.97,80.47L519.7,84.97L524.5,83.26L526.09,80.77L533.65,82.39L536.53,82.21L541.18,83.95L547.54,88.48L550.15,92.86L553.51,94.27L555.07,97.81L552.73,100.36L549.97,105.85L547.63,107.14L548.17,109.48L544.57,112.33L544.3,114.16L541.96,116.83L542.98,119.38L541.24,121.66L538.75,122.89L540.49,124.81L540.58,126.55L536.62,127.81L534.73,125.56L532.24,126.85L531.91,129.22L533.71,130.75L532.12,132.04L529.39,132.49L528.04,134.53L525.76,139.78L523.03,139.69L520.66,142.15L522.07,143.38L518.29,145.18L517.12,143.53L514.33,146.11L513.67,148.03L510.04,148.87L509.23,146.68L504.76,148.51L502.51,147.88L502.03,149.62L497.65,153.64L496.75,157.81L488.68,165.34L488.47,166.45L490.21,170.08L486.46,176.53L484.09,178.81L484.21,179.95L478.3,181.42L472.0,179.71Z"
|
|
5
|
+
},
|
|
6
|
+
"Centro": {
|
|
7
|
+
"code": "PT-C",
|
|
8
|
+
"path": "M272.17,190.93L277.57,189.49L278.41,191.11L277.93,193.84L280.39,199.3L280.57,202.6L282.16,204.94L284.02,204.61L286.3,202.21L287.44,202.3L286.36,206.8L284.11,208.54L286.12,213.07L284.05,214.78L284.68,217.87L288.19,219.67L287.08,221.23L289.87,222.52L290.74,219.7L297.37,219.04L297.79,220.51L301.54,218.83L302.08,216.16L304.33,215.98L308.29,219.37L310.57,217.87L311.8,218.92L316.3,218.71L320.05,212.23L318.16,207.49L321.04,206.59L323.65,208.66L325.21,208.93L328.06,205.96L331.99,208.63L334.9,207.49L335.38,205.75L334.63,203.35L332.62,201.04L333.43,197.74L332.11,193.9L337.27,187.33L339.85,188.23L341.77,187.75L344.89,190.84L351.28,189.37L353.8,183.79L356.35,182.38L361.39,181.87L358.63,186.16L361.57,186.43L364.45,188.02L367.33,191.65L368.71,191.65L371.62,188.68L375.49,189.88L374.83,191.8L375.76,194.38L382.87,194.83L382.15,199.45L380.5,202.99L383.11,207.49L389.71,204.79L392.53,209.86L394.27,211.33L395.17,207.31L397.78,204.79L402.7,205.21L403.42,206.68L405.61,207.64L407.2,210.79L408.88,211.69L410.26,213.82L412.09,212.26L415.66,204.43L412.96,202.03L413.8,198.16L415.21,197.44L417.31,199.42L419.02,199.54L421.15,196.51L423.88,195.13L424.78,190.12L423.55,188.65L419.08,186.73L418.81,183.7L422.74,183.73L423.94,182.05L426.52,183.13L432.34,182.8L434.2,184.15L436.63,180.31L438.52,179.86L441.04,180.67L443.02,184.24L440.98,185.2L441.22,187.84L442.93,190.09L441.07,195.31L446.35,197.23L447.79,193.33L450.79,189.49L456.61,190.6L461.08,188.89L462.85,187.51L464.74,182.83L465.13,180.28L470.08,181.12L471.31,185.08L472.99,185.98L478.48,193.0L479.71,196.9L479.74,200.38L481.78,202.84L484.15,203.26L485.11,208.84L482.2,209.38L483.31,215.02L481.69,223.03L482.38,226.48L483.88,228.43L484.6,235.81L485.74,237.1L483.91,242.32L480.91,247.3L480.22,250.9L485.02,253.69L484.57,255.58L485.59,259.48L483.49,261.25L479.71,268.96L481.03,274.93L487.3,281.59L485.92,283.06L486.07,286.84L478.09,291.76L477.16,297.04L472.57,298.48L467.71,298.0L466.21,301.0L464.65,300.58L460.99,302.65L458.83,308.65L460.21,310.06L460.27,315.19L462.34,318.94L465.07,318.67L469.27,320.32L471.31,323.53L471.88,326.2L474.61,327.46L474.25,328.9L475.84,330.31L476.53,333.88L477.97,334.6L475.6,339.73L475.39,345.46L473.14,347.98L474.01,350.77L473.23,355.99L472.51,357.43L470.32,358.78L467.89,362.89L465.43,363.07L464.08,364.69L463.6,367.42L465.1,370.63L463.84,372.04L463.18,378.04L460.36,385.93L454.6,387.76L447.88,386.92L445.3,388.48L433.45,386.44L429.4,387.25L423.79,390.31L419.08,388.84L415.99,389.53L409.87,387.13L400.21,386.8L398.8,387.85L395.32,387.88L393.67,390.49L388.93,393.16L387.79,392.8L385.12,389.2L380.83,391.78L379.87,392.98L380.26,395.35L379.03,397.63L375.19,398.47L373.63,401.74L370.66,404.65L367.63,405.49L365.95,408.97L364.39,409.9L357.43,404.05L354.55,403.0L352.93,404.02L351.1,403.57L349.18,409.15L346.72,411.94L347.38,414.46L344.8,414.46L342.28,415.9L339.85,415.3L340.51,407.92L337.54,403.93L337.66,397.36L334.99,394.3L330.97,394.75L328.57,392.53L322.21,390.97L320.29,389.47L321.46,380.8L319.93,380.44L321.1,375.01L319.36,369.76L316.84,371.29L314.83,369.88L314.59,367.24L312.22,367.57L309.04,366.52L309.7,369.16L307.45,370.3L303.7,373.66L302.11,372.37L298.96,373.45L297.97,375.55L295.42,376.93L295.66,373.72L294.07,370.66L294.13,366.19L292.27,361.12L289.06,363.88L287.32,362.53L284.95,366.49L279.94,369.85L274.42,368.44L270.85,369.85L269.32,371.74L269.77,378.19L269.23,379.87L273.7,381.67L272.8,387.22L266.5,390.52L268.21,394.66L268.45,399.73L270.07,402.04L265.27,408.22L262.84,405.88L261.79,407.23L263.44,413.71L262.99,414.43L258.52,414.94L256.54,414.16L249.91,415.45L247.45,414.94L243.52,416.38L245.29,406.42L247.84,401.65L245.68,399.37L243.49,400.87L240.49,395.35L240.13,392.44L242.53,390.76L242.23,387.37L239.56,385.6L239.86,381.34L238.3,378.07L236.17,377.2L234.01,379.63L232.9,379.54L227.83,375.4L237.4,350.2L247.6,319.93L248.17,316.03L246.85,312.49L243.13,309.76L242.92,308.38L246.61,298.75L252.16,279.7L260.86,243.31L261.25,240.43L260.35,239.26L266.08,218.8Z"
|
|
9
|
+
},
|
|
10
|
+
"Lisboa": {
|
|
11
|
+
"code": "PT-L",
|
|
12
|
+
"path": "M227.83,375.4L232.9,379.54L234.01,379.63L236.17,377.2L238.3,378.07L239.86,381.34L239.56,385.6L242.23,387.37L242.53,390.76L240.13,392.44L240.49,395.35L243.49,400.87L245.68,399.37L247.84,401.65L245.29,406.42L243.52,416.38L247.45,414.94L249.91,415.45L256.54,414.16L258.52,414.94L262.99,414.43L263.44,413.71L261.79,407.23L262.84,405.88L265.27,408.22L270.07,402.04L268.45,399.73L268.21,394.66L266.5,390.52L272.8,387.22L273.7,381.67L269.23,379.87L269.77,378.19L269.32,371.74L270.85,369.85L274.42,368.44L279.94,369.85L284.95,366.49L287.32,362.53L289.06,363.88L292.27,361.12L294.13,366.19L294.07,370.66L295.66,373.72L295.42,376.93L297.97,375.55L298.96,373.45L302.11,372.37L303.7,373.66L307.45,370.3L309.7,369.16L309.04,366.52L312.22,367.57L314.59,367.24L314.83,369.88L316.84,371.29L319.36,369.76L321.1,375.01L319.93,380.44L321.46,380.8L320.29,389.47L322.21,390.97L328.57,392.53L330.97,394.75L334.99,394.3L337.66,397.36L337.54,403.93L340.51,407.92L339.85,415.3L342.28,415.9L344.8,414.46L347.38,414.46L346.72,411.94L349.18,409.15L351.1,403.57L352.93,404.02L354.55,403.0L357.43,404.05L364.39,409.9L361.36,414.01L363.94,416.35L366.07,416.41L366.55,418.54L368.95,418.84L369.25,420.19L372.61,422.8L376.21,424.33L374.38,427.9L374.68,428.74L358.63,436.0L351.85,431.77L350.53,429.76L348.49,428.68L347.08,431.05L343.9,431.71L344.26,434.98L342.64,436.57L341.68,439.24L339.34,441.37L338.23,444.34L334.72,444.49L333.97,442.93L331.93,443.11L329.38,445.96L329.95,448.57L320.44,458.11L317.95,458.62L312.79,461.74L309.01,468.25L307.63,469.21L308.59,471.22L313.84,473.62L313.78,476.65L316.3,477.79L317.35,483.82L319.15,485.59L321.1,484.72L322.0,486.37L319.57,489.4L320.11,491.71L319.15,494.59L315.94,499.33L321.64,502.12L326.38,503.23L328.99,505.06L326.17,507.55L325.87,509.26L328.18,510.55L333.01,514.36L330.7,518.65L328.27,518.47L326.98,517.45L327.22,514.87L325.15,515.86L324.31,513.52L321.88,510.64L320.62,511.9L318.4,511.96L316.54,510.4L316.57,508.87L313.63,506.86L311.8,507.4L310.06,506.74L308.05,509.26L303.97,506.74L303.46,508.99L300.43,511.48L298.03,509.95L296.35,513.34L293.17,515.59L289.87,513.91L286.21,517.33L284.68,520.39L290.83,520.81L289.03,523.33L288.76,525.67L286.42,530.65L281.08,533.98L279.16,537.1L277.03,537.97L272.17,543.25L273.91,552.13L269.47,552.85L266.68,556.15L263.65,557.14L262.51,556.18L261.82,552.97L259.57,555.22L256.9,553.24L256.3,555.13L257.98,555.7L258.19,557.98L260.77,559.12L257.14,560.56L258.1,563.23L255.55,563.2L254.23,560.89L246.64,556.87L244.15,556.33L241.24,557.95L240.04,560.8L234.67,562.18L233.32,564.46L229.21,567.01L227.62,566.92L224.86,568.57L219.79,567.61L219.13,568.99L212.71,569.68L209.98,572.47L206.89,571.84L210.82,562.93L211.42,554.95L207.43,542.26L202.75,535.18L205.06,533.65L211.81,532.81L215.77,531.43L215.59,534.73L220.63,537.1L221.92,535.66L226.24,533.05L227.32,527.2L230.08,524.8L235.15,522.61L236.56,521.08L239.05,521.02L241.42,519.79L240.1,514.33L237.82,510.07L236.11,510.22L233.86,507.07L234.94,505.03L233.08,502.78L233.86,498.04L233.23,495.67L230.8,498.07L230.05,502.09L227.95,505.21L225.22,506.86L222.79,511.78L221.29,523.24L218.17,528.19L207.22,531.04L204.43,530.11L200.02,530.59L196.45,532.15L195.31,533.71L187.69,529.69L185.32,529.54L183.31,531.22L179.47,530.41L176.62,528.37L178.09,524.86L178.09,522.52L175.69,519.94L175.0,517.81L180.67,506.11L184.72,493.51L184.27,487.51L183.31,485.11L184.6,478.54L184.0,474.46L191.2,460.09L193.36,452.02L193.75,443.56L191.23,437.74L190.93,435.04L189.7,433.03L187.51,433.27L185.5,432.01L186.67,430.63L188.92,430.84L191.59,432.1L193.99,430.15L196.54,429.25L206.29,420.85L209.08,415.33L212.71,411.22L214.84,409.96L215.74,408.19L217.57,407.23L223.39,398.44L223.87,396.73L222.67,394.0Z"
|
|
13
|
+
},
|
|
14
|
+
"Alentejo": {
|
|
15
|
+
"code": "PT-ALE",
|
|
16
|
+
"path": "M403.12,700.69L401.68,700.51L399.58,701.83L395.98,700.63L393.34,704.44L388.78,704.71L385.99,703.9L376.75,706.36L375.46,707.98L373.3,707.95L370.93,709.27L368.2,711.79L364.27,712.42L363.82,714.1L359.86,714.7L358.9,716.98L354.49,718.81L351.85,718.0L348.85,719.92L347.38,719.86L346.51,722.65L348.46,724.81L344.11,726.28L343.15,728.5L339.7,730.93L338.02,729.82L330.4,729.25L325.27,727.78L318.49,721.96L315.52,721.18L316.21,718.33L314.62,715.03L311.08,714.49L307.87,715.69L305.86,714.94L299.35,716.65L298.57,718.18L298.84,720.4L297.85,721.78L295.69,721.81L295.21,723.13L289.72,721.63L288.31,722.38L281.8,717.85L279.67,718.99L275.92,719.35L273.73,722.53L271.15,719.17L268.15,719.74L263.71,718.99L261.25,714.73L256.75,714.16L255.4,712.99L255.64,706.24L257.02,700.27L256.27,696.31L253.21,690.61L255.85,679.66L256.36,673.15L255.7,670.57L254.08,669.04L256.42,655.99L255.64,647.38L254.2,642.7L250.15,641.47L247.72,639.1L245.35,638.62L247.78,635.83L250.45,630.4L255.94,613.69L258.13,601.15L258.1,592.45L256.87,583.0L253.0,571.96L243.04,560.65L245.62,561.04L249.49,565.54L251.77,566.77L252.94,570.4L255.28,572.95L256.57,572.59L253.99,569.47L253.18,566.83L260.38,568.24L263.2,570.82L267.76,571.3L272.08,573.1L267.22,567.52L264.73,567.88L263.65,557.14L266.68,556.15L269.47,552.85L273.91,552.13L272.17,543.25L277.03,537.97L279.16,537.1L281.08,533.98L286.42,530.65L288.76,525.67L289.03,523.33L290.83,520.81L284.68,520.39L286.21,517.33L289.87,513.91L293.17,515.59L296.35,513.34L298.03,509.95L300.43,511.48L303.46,508.99L303.97,506.74L308.05,509.26L310.06,506.74L311.8,507.4L313.63,506.86L316.57,508.87L316.54,510.4L318.4,511.96L320.62,511.9L321.88,510.64L324.31,513.52L325.15,515.86L327.22,514.87L326.98,517.45L328.27,518.47L330.7,518.65L333.01,514.36L328.18,510.55L325.87,509.26L326.17,507.55L328.99,505.06L326.38,503.23L321.64,502.12L315.94,499.33L319.15,494.59L320.11,491.71L319.57,489.4L322.0,486.37L321.1,484.72L319.15,485.59L317.35,483.82L316.3,477.79L313.78,476.65L313.84,473.62L308.59,471.22L307.63,469.21L309.01,468.25L312.79,461.74L317.95,458.62L320.44,458.11L329.95,448.57L329.38,445.96L331.93,443.11L333.97,442.93L334.72,444.49L338.23,444.34L339.34,441.37L341.68,439.24L342.64,436.57L344.26,434.98L343.9,431.71L347.08,431.05L348.49,428.68L350.53,429.76L351.85,431.77L358.63,436.0L374.68,428.74L374.38,427.9L376.21,424.33L372.61,422.8L369.25,420.19L368.95,418.84L366.55,418.54L366.07,416.41L363.94,416.35L361.36,414.01L364.39,409.9L365.95,408.97L367.63,405.49L370.66,404.65L373.63,401.74L375.19,398.47L379.03,397.63L380.26,395.35L379.87,392.98L380.83,391.78L385.12,389.2L387.79,392.8L388.93,393.16L393.67,390.49L395.32,387.88L398.8,387.85L400.21,386.8L401.89,388.0L401.98,391.27L403.84,393.76L405.07,397.93L408.7,399.7L412.96,406.06L417.43,406.72L417.61,410.8L418.51,412.6L420.37,413.98L425.26,414.97L428.32,417.16L427.36,420.37L427.78,424.03L425.08,429.16L426.43,430.72L426.94,435.85L435.49,444.28L433.66,448.33L434.56,454.06L437.53,457.0L446.89,460.39L446.89,463.99L445.42,467.62L446.44,469.57L449.98,470.89L450.7,469.99L456.31,468.07L458.56,468.28L463.66,471.7L466.72,477.55L467.77,481.9L458.92,497.02L456.76,499.18L458.86,503.35L458.14,505.63L454.87,507.16L451.24,512.56L447.37,513.04L444.79,515.47L443.44,518.05L439.75,520.27L438.16,523.03L432.43,526.27L430.99,538.84L431.65,540.37L434.23,541.0L432.52,542.83L431.83,546.13L429.52,548.17L428.95,550.66L427.36,552.79L427.48,555.52L425.95,557.26L425.2,562.24L426.25,562.93L425.98,567.7L430.18,570.58L431.05,574.63L439.0,584.23L442.63,591.07L444.58,591.61L446.41,598.57L449.53,604.3L452.53,607.03L454.45,604.87L458.8,605.29L460.72,602.32L464.41,601.33L465.4,602.38L467.23,600.4L469.6,600.13L470.23,602.17L466.33,607.03L466.15,609.07L467.83,610.12L465.55,616.12L463.87,617.38L463.33,623.89L462.22,625.33L461.5,629.23L459.73,628.87L455.26,629.77L454.06,627.67L450.64,626.23L447.82,628.27L448.03,631.36L447.34,632.05L442.81,632.98L439.03,632.11L436.39,633.88L434.11,633.91L432.46,635.05L433.57,637.78L432.85,643.18L429.88,647.41L429.13,652.39L425.02,659.26L420.16,662.65L416.8,666.52L415.45,666.25L413.65,667.6L413.86,669.16L410.89,676.21L410.83,680.77L409.84,683.29L408.67,683.53L407.65,686.41L406.48,686.68L405.52,689.02L404.11,689.59L404.95,691.63L401.95,696.79Z"
|
|
17
|
+
},
|
|
18
|
+
"Algarve": {
|
|
19
|
+
"code": "PT-ALG",
|
|
20
|
+
"path": "M369.01,773.38L366.1,776.14L365.44,774.73L367.24,773.47ZM255.4,712.99L256.75,714.16L261.25,714.73L263.71,718.99L268.15,719.74L271.15,719.17L273.73,722.53L275.92,719.35L279.67,718.99L281.8,717.85L288.31,722.38L289.72,721.63L295.21,723.13L295.69,721.81L297.85,721.78L298.84,720.4L298.57,718.18L299.35,716.65L305.86,714.94L307.87,715.69L311.08,714.49L314.62,715.03L316.21,718.33L315.52,721.18L318.49,721.96L325.27,727.78L330.4,729.25L338.02,729.82L339.7,730.93L343.15,728.5L344.11,726.28L348.46,724.81L346.51,722.65L347.38,719.86L348.85,719.92L351.85,718.0L354.49,718.81L358.9,716.98L359.86,714.7L363.82,714.1L364.27,712.42L368.2,711.79L370.93,709.27L373.3,707.95L375.46,707.98L376.75,706.36L385.99,703.9L388.78,704.71L393.34,704.44L395.98,700.63L399.58,701.83L401.68,700.51L403.12,700.69L405.61,701.68L406.48,705.22L408.88,706.81L408.19,709.33L409.69,711.85L409.6,715.15L410.98,716.65L408.88,718.0L411.49,720.79L411.91,724.93L410.86,727.18L411.61,729.4L411.34,732.28L413.68,737.59L412.36,741.07L414.61,744.37L415.42,752.26L408.22,751.84L399.76,754.42L391.87,758.5L388.33,762.4L386.08,762.76L381.76,765.46L379.75,768.01L375.49,770.62L364.33,773.59L361.3,773.98L360.46,775.51L357.43,775.21L356.59,776.65L354.34,775.03L353.41,776.14L350.74,776.26L344.02,772.51L352.84,780.16L339.31,769.81L332.71,766.39L326.26,764.05L320.59,765.19L318.22,764.71L314.44,766.69L312.64,766.66L305.62,762.55L299.44,764.59L296.47,764.71L289.27,762.61L285.94,760.36L282.85,759.85L281.44,760.45L276.25,759.31L271.12,761.65L270.43,762.52L270.55,765.67L264.07,764.62L256.57,768.07L253.24,767.62L250.63,768.43L248.05,771.07L244.57,771.01L243.31,773.65L241.12,774.28L240.46,776.83L238.45,776.26L236.59,773.44L234.31,773.23L234.85,769.06L236.77,767.05L237.28,763.54L239.5,761.59L243.58,753.31L241.93,748.84L244.27,747.67L248.38,738.49L247.96,734.92L246.67,734.41L247.15,732.28L246.58,730.81L250.24,726.46L254.05,718.27Z"
|
|
21
|
+
},
|
|
22
|
+
"Azores": {
|
|
23
|
+
"code": "PT-AZO",
|
|
24
|
+
"path": "M15.93,296.0L16.27,296.17L16.39,296.85L16.25,297.2L15.53,297.72L15.29,296.71L15.44,296.0ZM15.44,304.3L14.97,304.87L14.85,305.78L14.37,306.69L13.83,306.83L12.45,306.69L12.24,306.07L12.41,305.85L12.13,305.4L12.19,304.81L12.0,304.43L12.25,304.07L12.21,303.27L12.8,302.62L12.73,302.29L13.39,302.16L13.72,302.79L14.41,302.96L14.85,303.69ZM88.69,315.34L89.59,315.65L90.54,317.15L90.65,317.9L90.16,318.03L89.59,317.92L89.26,317.55L88.7,317.59L88.36,317.28L87.76,316.19L88.19,315.75L88.28,315.42ZM107.22,324.28L108.11,324.28L108.53,324.43L109.97,324.69L110.13,324.86L110.75,324.72L111.71,325.47L111.83,326.0L111.75,326.57L112.21,327.43L111.88,328.0L111.43,328.2L111.36,329.03L110.88,328.9L109.84,329.03L109.22,328.74L107.98,328.78L106.86,328.67L106.65,328.81L104.89,327.77L104.47,327.19L104.27,326.54L104.22,325.94L104.63,324.9L105.35,324.53ZM159.17,378.12L159.38,378.24L159.37,378.96L160.29,379.69L160.19,379.87L160.42,380.55L160.06,380.46L159.03,380.64L158.61,380.16L158.2,380.01L157.27,380.4L156.57,380.25L156.1,379.14L156.15,378.83L157.08,378.27L157.82,378.48L158.02,378.19L158.51,378.1L158.88,378.24ZM141.88,351.39L143.42,352.04L143.92,352.77L144.06,353.31L144.47,353.58L145.33,353.81L145.6,353.64L146.66,354.24L147.25,354.2L148.07,353.92L149.14,353.07L149.48,353.9L150.14,353.95L150.96,353.87L152.6,353.16L152.9,352.73L153.46,353.07L154.28,352.87L154.8,353.11L156.45,352.96L157.16,353.23L157.4,353.98L157.43,354.49L157.2,354.91L157.32,355.56L156.58,356.47L155.61,356.69L154.66,356.41L154.07,356.59L153.0,357.15L152.29,357.1L151.82,357.4L150.5,357.26L150.12,357.4L149.14,357.2L148.43,357.47L147.12,356.4L146.73,356.47L145.7,356.15L144.96,356.58L143.93,356.59L140.58,353.84L140.25,353.1L140.43,352.44L140.84,352.2L140.97,351.68L141.38,351.76ZM82.2,325.72L83.23,326.01L87.58,327.97L88.42,328.23L88.92,328.26L90.0,329.1L90.32,329.13L91.4,329.95L92.16,330.19L93.67,331.09L94.24,331.21L95.31,332.05L94.82,332.43L93.53,332.49L90.8,330.78L88.9,330.42L87.83,329.61L87.0,329.47L84.99,328.43L84.65,328.14L84.23,328.07L84.31,327.72L84.08,327.41L82.92,326.73L81.95,325.75ZM72.68,329.02L73.75,329.43L74.11,329.83L74.73,330.03L75.28,330.58L74.99,331.5L75.19,332.0L74.64,332.28L74.48,332.65L72.69,332.86L71.62,332.72L71.66,332.16L71.38,331.41L70.94,331.41L69.78,330.59L69.74,330.2L70.77,329.95L71.6,329.99L72.23,329.18ZM79.8,331.63L80.25,331.68L81.71,332.36L82.52,333.28L83.83,333.53L84.03,333.86L84.73,334.21L84.96,334.61L88.11,335.2L88.64,335.62L88.79,336.18L87.53,336.54L85.22,336.25L84.83,336.63L83.86,337.05L83.48,336.93L83.39,336.4L83.01,336.13L80.78,336.13L79.6,335.62L79.34,335.83L78.9,335.85L77.22,334.9L76.67,333.87L76.67,332.82L76.78,332.39L77.73,331.72L78.17,331.58L78.83,331.74Z"
|
|
25
|
+
},
|
|
26
|
+
"Madeira": {
|
|
27
|
+
"code": "PT-M",
|
|
28
|
+
"path": "M134.1,425.0L135.96,426.18L137.23,425.77L137.48,431.45L133.72,431.23L126.84,436.53L125.97,433.99L127.52,431.51L127.49,429.15L130.22,426.74ZM30.68,458.42L34.0,458.79L35.61,461.61L38.77,464.25L41.03,464.28L42.58,466.01L47.17,467.07L51.57,466.01L54.86,463.97L61.37,464.4L65.21,462.82L70.45,468.43L73.18,470.07L74.85,472.74L78.79,472.93L86.85,475.72L90.42,474.63L88.87,477.02L86.73,476.4L83.94,477.51L81.77,480.09L82.23,481.2L80.75,483.56L78.73,484.09L77.18,487.53L73.93,490.81L71.51,491.25L69.24,490.16L64.75,489.88L60.35,491.87L58.74,490.47L53.19,488.7L50.89,488.8L46.03,487.0L44.88,485.79L41.31,485.51L38.0,482.5L28.39,477.3L24.42,472.06L24.23,469.08L22.0,466.29ZM108.12,500.24L112.86,507.71L113.85,513.94L110.81,506.75L108.49,504.95Z"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<path
|
|
3
|
+
:class="
|
|
4
|
+
hoveredRegion && hoveredRegion !== currentRegion && data.value
|
|
5
|
+
? 'hovered'
|
|
6
|
+
: 'hover'
|
|
7
|
+
"
|
|
8
|
+
:id="`interactiveMap-${title}-${currentRegion}`"
|
|
9
|
+
:d="regionsPathPt[currentRegion]?.path"
|
|
10
|
+
:fill="data.color"
|
|
11
|
+
:stroke="data.color"
|
|
12
|
+
stroke-width="1"
|
|
13
|
+
@mouseover="onMouseOver"
|
|
14
|
+
@mouseleave="onMouseLeave"
|
|
15
|
+
/>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
import regionsPathPt from "./maps/regionsPathPt.json";
|
|
20
|
+
import { defineComponent } from "vue";
|
|
21
|
+
export default defineComponent({
|
|
22
|
+
name: "oneRegionPt",
|
|
23
|
+
props: {
|
|
24
|
+
data: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => {
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
hoveredRegion: {
|
|
30
|
+
type: [String, null],
|
|
31
|
+
required: false,
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
title: {
|
|
35
|
+
type: [String, null],
|
|
36
|
+
required: true
|
|
37
|
+
},
|
|
38
|
+
currentRegion: {
|
|
39
|
+
type: String,
|
|
40
|
+
required: true
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
emits: ["hover", "mouseleave"],
|
|
44
|
+
setup(props, { emit }) {
|
|
45
|
+
function onMouseOver() {
|
|
46
|
+
emit("hover");
|
|
47
|
+
}
|
|
48
|
+
function onMouseLeave() {
|
|
49
|
+
emit("mouseleave");
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
regionsPathPt,
|
|
53
|
+
onMouseOver,
|
|
54
|
+
onMouseLeave
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<style scoped>
|
|
61
|
+
.hovered{opacity:.5;transition:all .2s ease-in-out}.hover{cursor:pointer}
|
|
62
|
+
</style>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RegionsPt } from "./maps/interfaces";
|
|
2
|
+
import type { PropType } from "vue";
|
|
3
|
+
type CurrentData = {
|
|
4
|
+
color?: string;
|
|
5
|
+
value?: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
|
+
data: {
|
|
9
|
+
type: PropType<CurrentData>;
|
|
10
|
+
default: () => void;
|
|
11
|
+
};
|
|
12
|
+
hoveredRegion: {
|
|
13
|
+
type: PropType<RegionsPt | null>;
|
|
14
|
+
required: false;
|
|
15
|
+
default: null;
|
|
16
|
+
};
|
|
17
|
+
title: {
|
|
18
|
+
type: PropType<string | null>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
currentRegion: {
|
|
22
|
+
type: PropType<RegionsPt>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>, {
|
|
26
|
+
regionsPathPt: any;
|
|
27
|
+
onMouseOver: () => void;
|
|
28
|
+
onMouseLeave: () => void;
|
|
29
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mouseleave" | "hover")[], "mouseleave" | "hover", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
30
|
+
data: {
|
|
31
|
+
type: PropType<CurrentData>;
|
|
32
|
+
default: () => void;
|
|
33
|
+
};
|
|
34
|
+
hoveredRegion: {
|
|
35
|
+
type: PropType<RegionsPt | null>;
|
|
36
|
+
required: false;
|
|
37
|
+
default: null;
|
|
38
|
+
};
|
|
39
|
+
title: {
|
|
40
|
+
type: PropType<string | null>;
|
|
41
|
+
required: true;
|
|
42
|
+
};
|
|
43
|
+
currentRegion: {
|
|
44
|
+
type: PropType<RegionsPt>;
|
|
45
|
+
required: true;
|
|
46
|
+
};
|
|
47
|
+
}>> & Readonly<{
|
|
48
|
+
onMouseleave?: ((...args: any[]) => any) | undefined;
|
|
49
|
+
onHover?: ((...args: any[]) => any) | undefined;
|
|
50
|
+
}>, {
|
|
51
|
+
data: CurrentData;
|
|
52
|
+
hoveredRegion: RegionsPt | null;
|
|
53
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
export default _default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<path
|
|
3
|
+
:class="
|
|
4
|
+
hoveredRegion && hoveredRegion !== currentRegion && data.value
|
|
5
|
+
? 'hovered'
|
|
6
|
+
: 'hover'
|
|
7
|
+
"
|
|
8
|
+
:id="`interactiveMap-${title}-${currentRegion}`"
|
|
9
|
+
:d="regionsPathPtNuts[currentRegion]?.path"
|
|
10
|
+
:fill="data.color"
|
|
11
|
+
:stroke="data.color"
|
|
12
|
+
stroke-width="1"
|
|
13
|
+
@mouseover="onMouseOver"
|
|
14
|
+
@mouseleave="onMouseLeave"
|
|
15
|
+
/>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
import regionsPathPtNuts from "./maps/regionsPathPtNuts.json";
|
|
20
|
+
import { defineComponent } from "vue";
|
|
21
|
+
export default defineComponent({
|
|
22
|
+
name: "oneRegionPtNuts",
|
|
23
|
+
props: {
|
|
24
|
+
data: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => {
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
hoveredRegion: {
|
|
30
|
+
type: [String, null],
|
|
31
|
+
required: false,
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
title: {
|
|
35
|
+
type: [String, null],
|
|
36
|
+
required: true
|
|
37
|
+
},
|
|
38
|
+
currentRegion: {
|
|
39
|
+
type: String,
|
|
40
|
+
required: true
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
emits: ["hover", "mouseleave"],
|
|
44
|
+
setup(props, { emit }) {
|
|
45
|
+
function onMouseOver() {
|
|
46
|
+
emit("hover");
|
|
47
|
+
}
|
|
48
|
+
function onMouseLeave() {
|
|
49
|
+
emit("mouseleave");
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
regionsPathPtNuts,
|
|
53
|
+
onMouseOver,
|
|
54
|
+
onMouseLeave
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<style scoped>
|
|
61
|
+
.hovered{opacity:.5;transition:all .2s ease-in-out}.hover{cursor:pointer}
|
|
62
|
+
</style>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RegionsPtNuts } from "./maps/interfaces";
|
|
2
|
+
import type { PropType } from "vue";
|
|
3
|
+
type CurrentData = {
|
|
4
|
+
color?: string;
|
|
5
|
+
value?: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
|
+
data: {
|
|
9
|
+
type: PropType<CurrentData>;
|
|
10
|
+
default: () => void;
|
|
11
|
+
};
|
|
12
|
+
hoveredRegion: {
|
|
13
|
+
type: PropType<RegionsPtNuts | null>;
|
|
14
|
+
required: false;
|
|
15
|
+
default: null;
|
|
16
|
+
};
|
|
17
|
+
title: {
|
|
18
|
+
type: PropType<string | null>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
currentRegion: {
|
|
22
|
+
type: PropType<RegionsPtNuts>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>, {
|
|
26
|
+
regionsPathPtNuts: any;
|
|
27
|
+
onMouseOver: () => void;
|
|
28
|
+
onMouseLeave: () => void;
|
|
29
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mouseleave" | "hover")[], "mouseleave" | "hover", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
30
|
+
data: {
|
|
31
|
+
type: PropType<CurrentData>;
|
|
32
|
+
default: () => void;
|
|
33
|
+
};
|
|
34
|
+
hoveredRegion: {
|
|
35
|
+
type: PropType<RegionsPtNuts | null>;
|
|
36
|
+
required: false;
|
|
37
|
+
default: null;
|
|
38
|
+
};
|
|
39
|
+
title: {
|
|
40
|
+
type: PropType<string | null>;
|
|
41
|
+
required: true;
|
|
42
|
+
};
|
|
43
|
+
currentRegion: {
|
|
44
|
+
type: PropType<RegionsPtNuts>;
|
|
45
|
+
required: true;
|
|
46
|
+
};
|
|
47
|
+
}>> & Readonly<{
|
|
48
|
+
onMouseleave?: ((...args: any[]) => any) | undefined;
|
|
49
|
+
onHover?: ((...args: any[]) => any) | undefined;
|
|
50
|
+
}>, {
|
|
51
|
+
data: CurrentData;
|
|
52
|
+
hoveredRegion: RegionsPtNuts | null;
|
|
53
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
export default _default;
|