From 9adb032d9e00001e4579fa017be9ec19c403eb54 Mon Sep 17 00:00:00 2001 From: Erica Fischer Date: Fri, 26 Jan 2024 16:23:59 -0800 Subject: [PATCH] Make detect-shared-borders synonym of no-simplification-of-shared-nodes --- main.cpp | 8 +- options.hpp | 1 - .../out/-z1_--detect-shared-borders.json | 32 +- tile.cpp | 580 +----------------- 4 files changed, 24 insertions(+), 597 deletions(-) diff --git a/main.cpp b/main.cpp index 5782597e..f852d12b 100644 --- a/main.cpp +++ b/main.cpp @@ -3054,7 +3054,6 @@ int main(int argc, char **argv) { {"visvalingam", no_argument, &additional[A_VISVALINGAM], 1}, {"Attempts to improve shared polygon boundaries", 0, 0, 0}, - {"detect-shared-borders", no_argument, &additional[A_DETECT_SHARED_BORDERS], 1}, {"grid-low-zooms", no_argument, &additional[A_GRID_LOW_ZOOMS], 1}, {"Controlling clipping to tile boundaries", 0, 0, 0}, @@ -3119,6 +3118,9 @@ int main(int argc, char **argv) { {"prefer-radix-sort", no_argument, &additional[A_PREFER_RADIX_SORT], 1}, {"help", no_argument, 0, 'H'}, + {"Redundant", 0, 0, 0}, + {"detect-shared-borders", no_argument, &prevent[P_SIMPLIFY_SHARED_NODES], 1}, + {0, 0, 0, 0}, }; @@ -3145,6 +3147,10 @@ int main(int argc, char **argv) { getopt_str[cout] = '\0'; for (size_t lo = 0; long_options[lo].name != NULL; lo++) { + if (strcmp(long_options[lo].name, "Redundant")) { + break; + } + if (long_options[lo].flag != NULL) { if (*long_options[lo].flag != 0) { fprintf(stderr, "Internal error: reused %s\n", long_options[lo].name); diff --git a/options.hpp b/options.hpp index 3798fce0..9ee76c6d 100644 --- a/options.hpp +++ b/options.hpp @@ -7,7 +7,6 @@ #define A_LINE_DROP ((int) 'l') #define A_DEBUG_POLYGON ((int) '@') #define A_POLYGON_DROP ((int) 'p') -#define A_DETECT_SHARED_BORDERS ((int) 'b') #define A_PREFER_RADIX_SORT ((int) 'R') #define A_CALCULATE_FEATURE_DENSITY ((int) 'g') #define A_DROP_DENSEST_AS_NEEDED ((int) 's') diff --git a/tests/border/out/-z1_--detect-shared-borders.json b/tests/border/out/-z1_--detect-shared-borders.json index 007e4a9f..81959d93 100644 --- a/tests/border/out/-z1_--detect-shared-borders.json +++ b/tests/border/out/-z1_--detect-shared-borders.json @@ -15,41 +15,41 @@ }, "features": [ { "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Slovenia", "sov_a3": "SVN", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Slovenia", "adm0_a3": "SVN", "geou_dif": 0, "geounit": "Slovenia", "gu_a3": "SVN", "su_dif": 0, "subunit": "Slovenia", "su_a3": "SVN", "brk_diff": 0, "name": "Slovenia", "name_long": "Slovenia", "brk_a3": "SVN", "brk_name": "Slovenia", "abbrev": "Slo.", "postal": "SLO", "formal_en": "Republic of Slovenia", "name_sort": "Slovenia", "mapcolor7": 2, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 12, "pop_est": 2005692, "gdp_md_est": 59340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "1. High income: OECD", "wikipedia": -99, "iso_a2": "SI", "iso_a3": "SVN", "iso_n3": "705", "un_a3": "705", "wb_a2": "SI", "wb_a3": "SVN", "woe_id": -99, "adm0_a3_is": "SVN", "adm0_a3_us": "SVN", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 8, "long_len": 8, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.347656, 46.860191 ], [ 16.347656, 46.739861 ], [ 16.523438, 46.498392 ], [ 16.259766, 46.498392 ], [ 16.259766, 46.377254 ], [ 15.644531, 46.195042 ], [ 15.732422, 45.828799 ], [ 15.292969, 45.706179 ], [ 15.380859, 45.644768 ], [ 15.292969, 45.583290 ], [ 15.380859, 45.460131 ], [ 14.853516, 45.460131 ], [ 14.589844, 45.644768 ], [ 14.326172, 45.460131 ], [ 13.623047, 45.460131 ], [ 13.623047, 45.521744 ], [ 13.798828, 45.521744 ], [ 13.798828, 45.583290 ], [ 13.886719, 45.644768 ], [ 13.623047, 45.767523 ], [ 13.623047, 45.951150 ], [ 13.447266, 46.012224 ], [ 13.710938, 46.134170 ], [ 13.447266, 46.195042 ], [ 13.447266, 46.316584 ], [ 13.710938, 46.498392 ], [ 14.589844, 46.377254 ], [ 15.029297, 46.619261 ], [ 15.996094, 46.679594 ], [ 15.996094, 46.800059 ], [ 16.347656, 46.860191 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Slovenia", "sov_a3": "SVN", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Slovenia", "adm0_a3": "SVN", "geou_dif": 0, "geounit": "Slovenia", "gu_a3": "SVN", "su_dif": 0, "subunit": "Slovenia", "su_a3": "SVN", "brk_diff": 0, "name": "Slovenia", "name_long": "Slovenia", "brk_a3": "SVN", "brk_name": "Slovenia", "abbrev": "Slo.", "postal": "SLO", "formal_en": "Republic of Slovenia", "name_sort": "Slovenia", "mapcolor7": 2, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 12, "pop_est": 2005692, "gdp_md_est": 59340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "1. High income: OECD", "wikipedia": -99, "iso_a2": "SI", "iso_a3": "SVN", "iso_n3": "705", "un_a3": "705", "wb_a2": "SI", "wb_a3": "SVN", "woe_id": -99, "adm0_a3_is": "SVN", "adm0_a3_us": "SVN", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 8, "long_len": 8, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.347656, 46.860191 ], [ 16.523438, 46.498392 ], [ 16.347656, 46.558860 ], [ 16.259766, 46.377254 ], [ 15.644531, 46.195042 ], [ 15.644531, 45.828799 ], [ 15.292969, 45.706179 ], [ 15.380859, 45.644768 ], [ 15.292969, 45.583290 ], [ 15.292969, 45.460131 ], [ 14.765625, 45.460131 ], [ 14.589844, 45.644768 ], [ 14.414062, 45.460131 ], [ 13.623047, 45.460131 ], [ 13.886719, 45.644768 ], [ 13.623047, 45.828799 ], [ 13.623047, 46.012224 ], [ 13.447266, 46.012224 ], [ 13.623047, 46.195042 ], [ 13.359375, 46.316584 ], [ 13.710938, 46.498392 ], [ 14.501953, 46.377254 ], [ 14.853516, 46.619261 ], [ 15.468750, 46.619261 ], [ 15.644531, 46.739861 ], [ 15.996094, 46.679594 ], [ 15.996094, 46.800059 ], [ 16.347656, 46.860191 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Croatia", "sov_a3": "HRV", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Croatia", "adm0_a3": "HRV", "geou_dif": 0, "geounit": "Croatia", "gu_a3": "HRV", "su_dif": 0, "subunit": "Croatia", "su_a3": "HRV", "brk_diff": 0, "name": "Croatia", "name_long": "Croatia", "brk_a3": "HRV", "brk_name": "Croatia", "abbrev": "Cro.", "postal": "HR", "formal_en": "Republic of Croatia", "name_sort": "Croatia", "mapcolor7": 5, "mapcolor8": 4, "mapcolor9": 5, "mapcolor13": 1, "pop_est": 4489409, "gdp_md_est": 82390, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "HR", "iso_a3": "HRV", "iso_n3": "191", "un_a3": "191", "wb_a2": "HR", "wb_a3": "HRV", "woe_id": -99, "adm0_a3_is": "HRV", "adm0_a3_us": "HRV", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 18.105469, 42.682435 ], [ 18.457031, 42.553080 ], [ 18.457031, 42.488302 ], [ 18.105469, 42.617791 ], [ 18.105469, 42.682435 ] ] ], [ [ [ 16.699219, 43.004647 ], [ 17.226562, 42.875964 ], [ 16.699219, 42.940339 ], [ 16.699219, 43.004647 ] ] ], [ [ [ 14.941406, 44.590467 ], [ 14.941406, 44.653024 ], [ 14.853516, 44.964798 ], [ 14.853516, 45.089036 ], [ 14.589844, 45.213004 ], [ 14.589844, 45.274886 ], [ 14.326172, 45.336702 ], [ 14.150391, 44.964798 ], [ 14.062500, 44.964798 ], [ 13.974609, 44.902578 ], [ 13.974609, 44.840291 ], [ 13.886719, 44.840291 ], [ 13.886719, 44.902578 ], [ 13.623047, 45.026950 ], [ 13.710938, 45.151053 ], [ 13.623047, 45.151053 ], [ 13.623047, 45.274886 ], [ 13.535156, 45.521744 ], [ 13.623047, 45.460131 ], [ 14.326172, 45.460131 ], [ 14.589844, 45.644768 ], [ 14.853516, 45.460131 ], [ 15.380859, 45.460131 ], [ 15.292969, 45.583290 ], [ 15.380859, 45.644768 ], [ 15.292969, 45.706179 ], [ 15.732422, 45.828799 ], [ 15.644531, 46.195042 ], [ 16.259766, 46.377254 ], [ 16.259766, 46.498392 ], [ 16.523438, 46.498392 ], [ 16.875000, 46.377254 ], [ 16.875000, 46.255847 ], [ 17.314453, 45.951150 ], [ 17.578125, 45.951150 ], [ 17.841797, 45.767523 ], [ 18.281250, 45.706179 ], [ 18.720703, 45.890008 ], [ 18.896484, 45.890008 ], [ 18.896484, 45.583290 ], [ 19.160156, 45.521744 ], [ 18.984375, 45.336702 ], [ 19.423828, 45.213004 ], [ 19.072266, 45.151053 ], [ 19.072266, 44.840291 ], [ 18.808594, 44.902578 ], [ 18.720703, 45.089036 ], [ 17.490234, 45.089036 ], [ 17.314453, 45.151053 ], [ 17.226562, 45.151053 ], [ 17.050781, 45.213004 ], [ 16.523438, 45.213004 ], [ 16.259766, 44.964798 ], [ 16.083984, 45.213004 ], [ 15.820312, 45.213004 ], [ 15.732422, 44.715514 ], [ 16.171875, 44.527843 ], [ 16.347656, 44.087585 ], [ 17.314453, 43.452919 ], [ 17.314453, 43.261206 ], [ 17.666016, 42.940339 ], [ 17.490234, 42.940339 ], [ 17.490234, 43.004647 ], [ 17.226562, 43.133061 ], [ 17.050781, 43.197167 ], [ 16.875000, 43.325178 ], [ 16.875000, 43.389082 ], [ 16.435547, 43.516689 ], [ 15.996094, 43.516689 ], [ 15.996094, 43.580391 ], [ 15.908203, 43.580391 ], [ 15.908203, 43.644026 ], [ 15.820312, 43.771094 ], [ 15.732422, 43.771094 ], [ 15.644531, 43.771094 ], [ 15.644531, 43.834527 ], [ 15.468750, 43.897892 ], [ 15.205078, 44.087585 ], [ 15.117188, 44.276671 ], [ 15.292969, 44.213710 ], [ 15.292969, 44.339565 ], [ 15.117188, 44.465151 ], [ 15.117188, 44.527843 ], [ 15.029297, 44.527843 ], [ 15.029297, 44.402392 ], [ 14.941406, 44.465151 ], [ 14.765625, 44.653024 ], [ 14.941406, 44.590467 ] ] ], [ [ [ 16.259766, 43.133061 ], [ 16.259766, 43.004647 ], [ 16.083984, 43.004647 ], [ 16.083984, 43.133061 ], [ 16.259766, 43.133061 ] ] ], [ [ [ 14.414062, 44.653024 ], [ 14.238281, 44.653024 ], [ 14.238281, 44.777936 ], [ 14.326172, 44.777936 ], [ 14.414062, 44.964798 ], [ 14.589844, 44.590467 ], [ 14.414062, 44.653024 ] ] ], [ [ [ 16.699219, 43.389082 ], [ 16.875000, 43.325178 ], [ 16.875000, 43.261206 ], [ 16.611328, 43.261206 ], [ 16.435547, 43.325178 ], [ 16.435547, 43.389082 ], [ 16.699219, 43.389082 ] ] ], [ [ [ 14.941406, 44.213710 ], [ 14.941406, 44.087585 ], [ 14.765625, 44.087585 ], [ 14.765625, 44.213710 ], [ 14.941406, 44.213710 ] ] ], [ [ [ 15.117188, 44.402392 ], [ 15.292969, 44.339565 ], [ 15.117188, 44.339565 ], [ 15.117188, 44.402392 ] ] ], [ [ [ 14.589844, 45.213004 ], [ 14.853516, 44.964798 ], [ 14.589844, 45.026950 ], [ 14.414062, 45.089036 ], [ 14.589844, 45.089036 ], [ 14.589844, 45.213004 ] ] ], [ [ [ 17.666016, 42.811522 ], [ 17.050781, 43.004647 ], [ 17.490234, 42.940339 ], [ 17.666016, 42.875964 ], [ 17.753906, 42.875964 ], [ 17.666016, 42.811522 ] ] ], [ [ [ 16.523438, 43.197167 ], [ 17.226562, 43.133061 ], [ 16.611328, 43.133061 ], [ 16.523438, 43.197167 ] ] ], [ [ [ 17.753906, 42.811522 ], [ 17.753906, 42.875964 ], [ 17.841797, 42.875964 ], [ 17.841797, 42.811522 ], [ 17.753906, 42.811522 ] ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Croatia", "sov_a3": "HRV", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Croatia", "adm0_a3": "HRV", "geou_dif": 0, "geounit": "Croatia", "gu_a3": "HRV", "su_dif": 0, "subunit": "Croatia", "su_a3": "HRV", "brk_diff": 0, "name": "Croatia", "name_long": "Croatia", "brk_a3": "HRV", "brk_name": "Croatia", "abbrev": "Cro.", "postal": "HR", "formal_en": "Republic of Croatia", "name_sort": "Croatia", "mapcolor7": 5, "mapcolor8": 4, "mapcolor9": 5, "mapcolor13": 1, "pop_est": 4489409, "gdp_md_est": 82390, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "HR", "iso_a3": "HRV", "iso_n3": "191", "un_a3": "191", "wb_a2": "HR", "wb_a3": "HRV", "woe_id": -99, "adm0_a3_is": "HRV", "adm0_a3_us": "HRV", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 17.841797, 42.940339 ], [ 18.457031, 42.553080 ], [ 18.457031, 42.423457 ], [ 17.929688, 42.811522 ], [ 17.666016, 42.875964 ], [ 17.841797, 42.940339 ] ] ], [ [ [ 16.611328, 43.004647 ], [ 17.226562, 42.940339 ], [ 16.875000, 42.875964 ], [ 16.611328, 43.004647 ] ] ], [ [ [ 13.623047, 45.151053 ], [ 13.535156, 45.521744 ], [ 13.623047, 45.460131 ], [ 14.414062, 45.460131 ], [ 14.589844, 45.644768 ], [ 14.765625, 45.460131 ], [ 15.292969, 45.460131 ], [ 15.292969, 45.583290 ], [ 15.380859, 45.644768 ], [ 15.292969, 45.706179 ], [ 15.644531, 45.828799 ], [ 15.644531, 46.195042 ], [ 16.259766, 46.377254 ], [ 16.347656, 46.558860 ], [ 16.875000, 46.377254 ], [ 17.314453, 46.012224 ], [ 17.841797, 45.767523 ], [ 18.369141, 45.767523 ], [ 18.632812, 45.890008 ], [ 18.896484, 45.951150 ], [ 18.896484, 45.583290 ], [ 19.072266, 45.521744 ], [ 18.984375, 45.398450 ], [ 19.423828, 45.151053 ], [ 19.072266, 45.151053 ], [ 19.160156, 44.964798 ], [ 18.984375, 44.840291 ], [ 18.808594, 44.902578 ], [ 18.720703, 45.089036 ], [ 18.281250, 45.151053 ], [ 17.841797, 45.089036 ], [ 17.666016, 45.151053 ], [ 17.226562, 45.151053 ], [ 16.962891, 45.274886 ], [ 16.787109, 45.151053 ], [ 16.523438, 45.213004 ], [ 16.347656, 45.026950 ], [ 15.996094, 45.213004 ], [ 15.820312, 45.213004 ], [ 15.732422, 44.777936 ], [ 15.996094, 44.653024 ], [ 16.347656, 44.087585 ], [ 17.226562, 43.452919 ], [ 17.314453, 43.325178 ], [ 17.666016, 43.068888 ], [ 17.578125, 42.940339 ], [ 17.226562, 43.133061 ], [ 16.875000, 43.389082 ], [ 16.435547, 43.580391 ], [ 15.996094, 43.516689 ], [ 15.908203, 43.707594 ], [ 15.380859, 44.024422 ], [ 15.380859, 43.961191 ], [ 15.205078, 43.961191 ], [ 15.205078, 44.087585 ], [ 15.292969, 44.087585 ], [ 15.117188, 44.213710 ], [ 15.117188, 44.276671 ], [ 15.292969, 44.276671 ], [ 15.292969, 44.339565 ], [ 15.556641, 44.276671 ], [ 15.029297, 44.590467 ], [ 14.853516, 45.089036 ], [ 14.589844, 45.274886 ], [ 14.501953, 45.336702 ], [ 14.326172, 45.336702 ], [ 14.150391, 44.964798 ], [ 14.062500, 45.026950 ], [ 13.886719, 44.777936 ], [ 13.623047, 45.089036 ], [ 13.623047, 45.151053 ] ] ], [ [ [ 16.347656, 43.133061 ], [ 16.347656, 43.004647 ], [ 16.171875, 43.004647 ], [ 16.171875, 43.133061 ], [ 16.347656, 43.133061 ] ] ], [ [ [ 14.589844, 45.274886 ], [ 14.765625, 44.964798 ], [ 14.414062, 45.089036 ], [ 14.589844, 45.274886 ] ] ], [ [ [ 16.435547, 43.389082 ], [ 16.875000, 43.325178 ], [ 16.435547, 43.325178 ], [ 16.435547, 43.389082 ] ] ], [ [ [ 14.853516, 44.465151 ], [ 14.853516, 44.339565 ], [ 14.677734, 44.339565 ], [ 14.677734, 44.465151 ], [ 14.853516, 44.465151 ] ] ], [ [ [ 14.765625, 44.715514 ], [ 15.205078, 44.339565 ], [ 14.941406, 44.465151 ], [ 14.765625, 44.715514 ] ] ], [ [ [ 14.414062, 44.964798 ], [ 14.501953, 44.590467 ], [ 14.326172, 44.902578 ], [ 14.414062, 44.964798 ] ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Montenegro", "sov_a3": "MNE", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Montenegro", "adm0_a3": "MNE", "geou_dif": 0, "geounit": "Montenegro", "gu_a3": "MNE", "su_dif": 0, "subunit": "Montenegro", "su_a3": "MNE", "brk_diff": 0, "name": "Montenegro", "name_long": "Montenegro", "brk_a3": "MNE", "brk_name": "Montenegro", "abbrev": "Mont.", "postal": "ME", "formal_en": "Montenegro", "name_sort": "Montenegro", "mapcolor7": 4, "mapcolor8": 1, "mapcolor9": 4, "mapcolor13": 5, "pop_est": 672180, "gdp_md_est": 6816, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "ME", "iso_a3": "MNE", "iso_n3": "499", "un_a3": "499", "wb_a2": "ME", "wb_a3": "MNE", "woe_id": -99, "adm0_a3_is": "MNE", "adm0_a3_us": "MNE", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 10, "long_len": 10, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 18.544922, 42.423457 ], [ 18.457031, 42.423457 ], [ 18.457031, 42.553080 ], [ 18.544922, 42.682435 ], [ 18.457031, 42.940339 ], [ 18.632812, 43.004647 ], [ 18.720703, 43.261206 ], [ 18.808594, 43.325178 ], [ 18.984375, 43.325178 ], [ 19.072266, 43.261206 ], [ 18.896484, 43.516689 ], [ 19.248047, 43.516689 ], [ 19.599609, 43.133061 ], [ 19.775391, 43.133061 ], [ 19.951172, 43.068888 ], [ 20.390625, 42.875964 ], [ 20.390625, 42.811522 ], [ 20.039062, 42.747012 ], [ 20.126953, 42.682435 ], [ 20.126953, 42.553080 ], [ 19.863281, 42.423457 ], [ 19.687500, 42.617791 ], [ 19.335938, 42.228517 ], [ 19.423828, 41.836828 ], [ 19.160156, 41.902277 ], [ 18.896484, 42.293564 ], [ 18.808594, 42.228517 ], [ 18.544922, 42.423457 ] ], [ [ 18.544922, 42.423457 ], [ 18.720703, 42.358544 ], [ 18.720703, 42.488302 ], [ 18.544922, 42.423457 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Bosnia and Herzegovina", "sov_a3": "BIH", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Bosnia and Herzegovina", "adm0_a3": "BIH", "geou_dif": 0, "geounit": "Bosnia and Herzegovina", "gu_a3": "BIH", "su_dif": 0, "subunit": "Bosnia and Herzegovina", "su_a3": "BIH", "brk_diff": 0, "name": "Bosnia and Herz.", "name_long": "Bosnia and Herzegovina", "brk_a3": "BIH", "brk_name": "Bosnia and Herz.", "abbrev": "B.H.", "postal": "BiH", "formal_en": "Bosnia and Herzegovina", "name_sort": "Bosnia and Herzegovina", "mapcolor7": 1, "mapcolor8": 1, "mapcolor9": 1, "mapcolor13": 2, "pop_est": 4613414, "gdp_md_est": 29700, "pop_year": -99, "lastcensus": 1991, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "BA", "iso_a3": "BIH", "iso_n3": "070", "un_a3": "070", "wb_a2": "BA", "wb_a3": "BIH", "woe_id": -99, "adm0_a3_is": "BIH", "adm0_a3_us": "BIH", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 16, "long_len": 22, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.962891, 45.274886 ], [ 17.226562, 45.151053 ], [ 17.666016, 45.151053 ], [ 17.841797, 45.089036 ], [ 18.281250, 45.151053 ], [ 18.720703, 45.089036 ], [ 18.808594, 44.902578 ], [ 18.984375, 44.840291 ], [ 19.335938, 44.902578 ], [ 19.072266, 44.339565 ], [ 19.599609, 44.024422 ], [ 19.248047, 44.024422 ], [ 19.511719, 43.644026 ], [ 19.511719, 43.580391 ], [ 19.160156, 43.516689 ], [ 18.896484, 43.516689 ], [ 19.072266, 43.325178 ], [ 18.808594, 43.325178 ], [ 18.632812, 43.261206 ], [ 18.632812, 43.004647 ], [ 18.457031, 43.004647 ], [ 18.457031, 42.553080 ], [ 17.841797, 42.940339 ], [ 17.666016, 42.875964 ], [ 17.578125, 42.940339 ], [ 17.666016, 43.068888 ], [ 17.314453, 43.325178 ], [ 17.226562, 43.452919 ], [ 16.347656, 44.087585 ], [ 15.996094, 44.653024 ], [ 15.732422, 44.777936 ], [ 15.820312, 45.213004 ], [ 15.996094, 45.213004 ], [ 16.347656, 45.026950 ], [ 16.523438, 45.213004 ], [ 16.787109, 45.151053 ], [ 16.962891, 45.274886 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Bosnia and Herzegovina", "sov_a3": "BIH", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Bosnia and Herzegovina", "adm0_a3": "BIH", "geou_dif": 0, "geounit": "Bosnia and Herzegovina", "gu_a3": "BIH", "su_dif": 0, "subunit": "Bosnia and Herzegovina", "su_a3": "BIH", "brk_diff": 0, "name": "Bosnia and Herz.", "name_long": "Bosnia and Herzegovina", "brk_a3": "BIH", "brk_name": "Bosnia and Herz.", "abbrev": "B.H.", "postal": "BiH", "formal_en": "Bosnia and Herzegovina", "name_sort": "Bosnia and Herzegovina", "mapcolor7": 1, "mapcolor8": 1, "mapcolor9": 1, "mapcolor13": 2, "pop_est": 4613414, "gdp_md_est": 29700, "pop_year": -99, "lastcensus": 1991, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "BA", "iso_a3": "BIH", "iso_n3": "070", "un_a3": "070", "wb_a2": "BA", "wb_a3": "BIH", "woe_id": -99, "adm0_a3_is": "BIH", "adm0_a3_us": "BIH", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 16, "long_len": 22, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 17.050781, 45.213004 ], [ 17.226562, 45.151053 ], [ 17.314453, 45.151053 ], [ 17.490234, 45.089036 ], [ 18.720703, 45.089036 ], [ 18.808594, 44.902578 ], [ 19.072266, 44.840291 ], [ 19.423828, 44.902578 ], [ 19.160156, 44.339565 ], [ 19.599609, 44.024422 ], [ 19.511719, 43.961191 ], [ 19.248047, 43.961191 ], [ 19.511719, 43.580391 ], [ 19.248047, 43.516689 ], [ 18.896484, 43.516689 ], [ 19.072266, 43.261206 ], [ 18.984375, 43.325178 ], [ 18.808594, 43.325178 ], [ 18.720703, 43.261206 ], [ 18.632812, 43.004647 ], [ 18.457031, 42.940339 ], [ 18.544922, 42.682435 ], [ 18.457031, 42.553080 ], [ 17.841797, 42.811522 ], [ 17.841797, 42.875964 ], [ 17.666016, 42.875964 ], [ 17.578125, 42.940339 ], [ 17.666016, 42.940339 ], [ 17.314453, 43.261206 ], [ 17.314453, 43.452919 ], [ 16.347656, 44.087585 ], [ 16.171875, 44.527843 ], [ 15.732422, 44.715514 ], [ 15.820312, 45.213004 ], [ 16.083984, 45.213004 ], [ 16.259766, 44.964798 ], [ 16.523438, 45.213004 ], [ 17.050781, 45.213004 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Republic of Serbia", "sov_a3": "SRB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Republic of Serbia", "adm0_a3": "SRB", "geou_dif": 0, "geounit": "Republic of Serbia", "gu_a3": "SRB", "su_dif": 0, "subunit": "Republic of Serbia", "su_a3": "SRB", "brk_diff": 0, "name": "Serbia", "name_long": "Serbia", "brk_a3": "SRB", "brk_name": "Serbia", "abbrev": "Serb.", "postal": "RS", "formal_en": "Republic of Serbia", "name_sort": "Serbia", "mapcolor7": 3, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 10, "pop_est": 7379339, "gdp_md_est": 80340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "RS", "iso_a3": "SRB", "iso_n3": "688", "un_a3": "688", "wb_a2": "YF", "wb_a3": "SRB", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "SRB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.599609, 46.195042 ], [ 20.214844, 46.134170 ], [ 20.742188, 45.767523 ], [ 20.742188, 45.460131 ], [ 21.533203, 45.151053 ], [ 21.357422, 45.026950 ], [ 21.533203, 44.902578 ], [ 21.357422, 44.840291 ], [ 21.357422, 44.777936 ], [ 21.972656, 44.653024 ], [ 22.148438, 44.527843 ], [ 22.412109, 44.715514 ], [ 22.763672, 44.590467 ], [ 22.500000, 44.527843 ], [ 22.675781, 44.213710 ], [ 22.324219, 43.834527 ], [ 22.500000, 43.452919 ], [ 23.027344, 43.197167 ], [ 22.763672, 42.875964 ], [ 22.412109, 42.811522 ], [ 22.500000, 42.488302 ], [ 22.412109, 42.293564 ], [ 22.324219, 42.293564 ], [ 21.533203, 42.228517 ], [ 21.533203, 42.358544 ], [ 21.796875, 42.617791 ], [ 21.357422, 42.747012 ], [ 21.445312, 42.875964 ], [ 20.830078, 43.261206 ], [ 20.566406, 43.197167 ], [ 20.654297, 43.068888 ], [ 20.390625, 42.875964 ], [ 19.599609, 43.197167 ], [ 19.160156, 43.516689 ], [ 19.511719, 43.580391 ], [ 19.511719, 43.644026 ], [ 19.248047, 44.024422 ], [ 19.599609, 44.024422 ], [ 19.072266, 44.339565 ], [ 19.335938, 44.902578 ], [ 18.984375, 44.840291 ], [ 19.160156, 44.964798 ], [ 19.072266, 45.151053 ], [ 19.423828, 45.151053 ], [ 18.984375, 45.398450 ], [ 19.072266, 45.521744 ], [ 18.896484, 45.583290 ], [ 18.896484, 45.951150 ], [ 19.072266, 46.012224 ], [ 19.248047, 45.951150 ], [ 19.599609, 46.195042 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Republic of Serbia", "sov_a3": "SRB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Republic of Serbia", "adm0_a3": "SRB", "geou_dif": 0, "geounit": "Republic of Serbia", "gu_a3": "SRB", "su_dif": 0, "subunit": "Republic of Serbia", "su_a3": "SRB", "brk_diff": 0, "name": "Serbia", "name_long": "Serbia", "brk_a3": "SRB", "brk_name": "Serbia", "abbrev": "Serb.", "postal": "RS", "formal_en": "Republic of Serbia", "name_sort": "Serbia", "mapcolor7": 3, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 10, "pop_est": 7379339, "gdp_md_est": 80340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "RS", "iso_a3": "SRB", "iso_n3": "688", "un_a3": "688", "wb_a2": "YF", "wb_a3": "SRB", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "SRB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.126953, 46.134170 ], [ 20.742188, 45.706179 ], [ 20.830078, 45.767523 ], [ 20.830078, 45.460131 ], [ 21.533203, 45.151053 ], [ 21.357422, 44.964798 ], [ 21.533203, 44.840291 ], [ 21.357422, 44.840291 ], [ 21.445312, 44.777936 ], [ 22.060547, 44.653024 ], [ 22.148438, 44.465151 ], [ 22.412109, 44.715514 ], [ 22.763672, 44.590467 ], [ 22.500000, 44.465151 ], [ 22.675781, 44.276671 ], [ 22.587891, 44.024422 ], [ 22.412109, 43.897892 ], [ 22.500000, 43.580391 ], [ 23.027344, 43.133061 ], [ 22.763672, 42.875964 ], [ 22.412109, 42.811522 ], [ 22.587891, 42.423457 ], [ 22.324219, 42.293564 ], [ 21.708984, 42.228517 ], [ 21.621094, 42.228517 ], [ 21.533203, 42.358544 ], [ 21.796875, 42.682435 ], [ 21.445312, 42.747012 ], [ 21.269531, 42.875964 ], [ 21.269531, 43.004647 ], [ 20.830078, 43.197167 ], [ 20.654297, 43.197167 ], [ 20.654297, 43.004647 ], [ 20.390625, 42.811522 ], [ 20.390625, 42.875964 ], [ 19.951172, 43.068888 ], [ 19.775391, 43.133061 ], [ 19.599609, 43.133061 ], [ 19.248047, 43.516689 ], [ 19.511719, 43.580391 ], [ 19.248047, 43.961191 ], [ 19.511719, 43.961191 ], [ 19.599609, 44.024422 ], [ 19.160156, 44.339565 ], [ 19.423828, 44.902578 ], [ 19.072266, 44.840291 ], [ 19.072266, 45.151053 ], [ 19.423828, 45.213004 ], [ 18.984375, 45.336702 ], [ 19.160156, 45.521744 ], [ 18.896484, 45.583290 ], [ 18.896484, 45.890008 ], [ 19.072266, 46.012224 ], [ 19.335938, 45.951150 ], [ 19.511719, 46.134170 ], [ 20.126953, 46.134170 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Montenegro", "sov_a3": "MNE", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Montenegro", "adm0_a3": "MNE", "geou_dif": 0, "geounit": "Montenegro", "gu_a3": "MNE", "su_dif": 0, "subunit": "Montenegro", "su_a3": "MNE", "brk_diff": 0, "name": "Montenegro", "name_long": "Montenegro", "brk_a3": "MNE", "brk_name": "Montenegro", "abbrev": "Mont.", "postal": "ME", "formal_en": "Montenegro", "name_sort": "Montenegro", "mapcolor7": 4, "mapcolor8": 1, "mapcolor9": 4, "mapcolor13": 5, "pop_est": 672180, "gdp_md_est": 6816, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "ME", "iso_a3": "MNE", "iso_n3": "499", "un_a3": "499", "wb_a2": "ME", "wb_a3": "MNE", "woe_id": -99, "adm0_a3_is": "MNE", "adm0_a3_us": "MNE", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 10, "long_len": 10, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.160156, 43.516689 ], [ 19.599609, 43.197167 ], [ 20.390625, 42.875964 ], [ 20.302734, 42.811522 ], [ 20.039062, 42.747012 ], [ 20.039062, 42.553080 ], [ 19.775391, 42.488302 ], [ 19.687500, 42.682435 ], [ 19.248047, 42.163403 ], [ 19.335938, 41.836828 ], [ 18.896484, 42.293564 ], [ 18.544922, 42.423457 ], [ 18.720703, 42.423457 ], [ 18.720703, 42.488302 ], [ 18.457031, 42.423457 ], [ 18.457031, 43.004647 ], [ 18.632812, 43.004647 ], [ 18.632812, 43.261206 ], [ 18.808594, 43.325178 ], [ 19.072266, 43.325178 ], [ 18.896484, 43.516689 ], [ 19.160156, 43.516689 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Kosovo", "sov_a3": "KOS", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Kosovo", "adm0_a3": "KOS", "geou_dif": 0, "geounit": "Kosovo", "gu_a3": "KOS", "su_dif": 0, "subunit": "Kosovo", "su_a3": "KOS", "brk_diff": 1, "name": "Kosovo", "name_long": "Kosovo", "brk_a3": "B57", "brk_name": "Kosovo", "abbrev": "Kos.", "postal": "KO", "formal_en": "Republic of Kosovo", "note_brk": "Self admin.; Claimed by Serbia", "name_sort": "Kosovo", "mapcolor7": 2, "mapcolor8": 2, "mapcolor9": 3, "mapcolor13": 11, "pop_est": 1804838, "gdp_md_est": 5352, "pop_year": -99, "lastcensus": 1981, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "-99", "iso_a3": "-99", "iso_n3": "-99", "un_a3": "-099", "wb_a2": "KV", "wb_a3": "KSV", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "KOS", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.830078, 43.197167 ], [ 21.269531, 43.004647 ], [ 21.269531, 42.875964 ], [ 21.445312, 42.747012 ], [ 21.796875, 42.682435 ], [ 21.533203, 42.358544 ], [ 21.621094, 42.228517 ], [ 21.445312, 42.228517 ], [ 21.357422, 42.098222 ], [ 21.093750, 42.163403 ], [ 20.830078, 42.098222 ], [ 20.742188, 41.836828 ], [ 20.566406, 41.836828 ], [ 20.654297, 41.967659 ], [ 20.478516, 42.228517 ], [ 20.214844, 42.358544 ], [ 20.214844, 42.488302 ], [ 20.126953, 42.553080 ], [ 20.126953, 42.682435 ], [ 20.039062, 42.747012 ], [ 20.390625, 42.811522 ], [ 20.654297, 43.004647 ], [ 20.654297, 43.197167 ], [ 20.830078, 43.197167 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Kosovo", "sov_a3": "KOS", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Kosovo", "adm0_a3": "KOS", "geou_dif": 0, "geounit": "Kosovo", "gu_a3": "KOS", "su_dif": 0, "subunit": "Kosovo", "su_a3": "KOS", "brk_diff": 1, "name": "Kosovo", "name_long": "Kosovo", "brk_a3": "B57", "brk_name": "Kosovo", "abbrev": "Kos.", "postal": "KO", "formal_en": "Republic of Kosovo", "note_brk": "Self admin.; Claimed by Serbia", "name_sort": "Kosovo", "mapcolor7": 2, "mapcolor8": 2, "mapcolor9": 3, "mapcolor13": 11, "pop_est": 1804838, "gdp_md_est": 5352, "pop_year": -99, "lastcensus": 1981, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "-99", "iso_a3": "-99", "iso_n3": "-99", "un_a3": "-099", "wb_a2": "KV", "wb_a3": "KSV", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "KOS", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.830078, 43.261206 ], [ 21.445312, 42.875964 ], [ 21.357422, 42.747012 ], [ 21.796875, 42.617791 ], [ 21.533203, 42.358544 ], [ 21.533203, 42.228517 ], [ 21.357422, 42.228517 ], [ 21.269531, 42.098222 ], [ 21.093750, 42.163403 ], [ 20.742188, 42.098222 ], [ 20.654297, 41.836828 ], [ 20.566406, 41.902277 ], [ 20.478516, 42.228517 ], [ 20.214844, 42.293564 ], [ 20.039062, 42.553080 ], [ 20.039062, 42.747012 ], [ 20.302734, 42.811522 ], [ 20.654297, 43.068888 ], [ 20.566406, 43.197167 ], [ 20.830078, 43.261206 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Macedonia", "sov_a3": "MKD", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Macedonia", "adm0_a3": "MKD", "geou_dif": 0, "geounit": "Macedonia", "gu_a3": "MKD", "su_dif": 0, "subunit": "Macedonia", "su_a3": "MKD", "brk_diff": 0, "name": "Macedonia", "name_long": "Macedonia", "brk_a3": "MKD", "brk_name": "Macedonia", "abbrev": "Mkd.", "postal": "MK", "formal_en": "Former Yugoslav Republic of Macedonia", "name_sort": "Macedonia, FYR", "mapcolor7": 5, "mapcolor8": 3, "mapcolor9": 7, "mapcolor13": 3, "pop_est": 2066718, "gdp_md_est": 18780, "pop_year": -99, "lastcensus": 2010, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "MK", "iso_a3": "MKD", "iso_n3": "807", "un_a3": "807", "wb_a2": "MK", "wb_a3": "MKD", "woe_id": -99, "adm0_a3_is": "MKD", "adm0_a3_us": "MKD", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 9, "long_len": 9, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 22.324219, 42.293564 ], [ 22.500000, 42.098222 ], [ 22.851562, 42.032974 ], [ 23.027344, 41.705729 ], [ 22.939453, 41.310824 ], [ 22.763672, 41.310824 ], [ 22.763672, 41.112469 ], [ 22.060547, 41.112469 ], [ 21.708984, 40.847060 ], [ 21.005859, 40.847060 ], [ 20.742188, 40.913513 ], [ 20.478516, 41.244772 ], [ 20.566406, 41.836828 ], [ 20.742188, 41.836828 ], [ 20.830078, 42.098222 ], [ 21.093750, 42.163403 ], [ 21.357422, 42.098222 ], [ 21.445312, 42.228517 ], [ 21.708984, 42.228517 ], [ 22.324219, 42.293564 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Macedonia", "sov_a3": "MKD", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Macedonia", "adm0_a3": "MKD", "geou_dif": 0, "geounit": "Macedonia", "gu_a3": "MKD", "su_dif": 0, "subunit": "Macedonia", "su_a3": "MKD", "brk_diff": 0, "name": "Macedonia", "name_long": "Macedonia", "brk_a3": "MKD", "brk_name": "Macedonia", "abbrev": "Mkd.", "postal": "MK", "formal_en": "Former Yugoslav Republic of Macedonia", "name_sort": "Macedonia, FYR", "mapcolor7": 5, "mapcolor8": 3, "mapcolor9": 7, "mapcolor13": 3, "pop_est": 2066718, "gdp_md_est": 18780, "pop_year": -99, "lastcensus": 2010, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "MK", "iso_a3": "MKD", "iso_n3": "807", "un_a3": "807", "wb_a2": "MK", "wb_a3": "MKD", "woe_id": -99, "adm0_a3_is": "MKD", "adm0_a3_us": "MKD", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 9, "long_len": 9, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 22.324219, 42.293564 ], [ 22.851562, 42.032974 ], [ 23.027344, 41.705729 ], [ 22.939453, 41.376809 ], [ 22.763672, 41.310824 ], [ 22.675781, 41.178654 ], [ 22.060547, 41.178654 ], [ 21.621094, 40.847060 ], [ 21.005859, 40.847060 ], [ 20.742188, 40.913513 ], [ 20.478516, 41.508577 ], [ 20.566406, 41.902277 ], [ 20.654297, 41.836828 ], [ 20.742188, 42.098222 ], [ 21.093750, 42.163403 ], [ 21.269531, 42.098222 ], [ 21.357422, 42.228517 ], [ 21.533203, 42.228517 ], [ 22.324219, 42.293564 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Albania", "sov_a3": "ALB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Albania", "adm0_a3": "ALB", "geou_dif": 0, "geounit": "Albania", "gu_a3": "ALB", "su_dif": 0, "subunit": "Albania", "su_a3": "ALB", "brk_diff": 0, "name": "Albania", "name_long": "Albania", "brk_a3": "ALB", "brk_name": "Albania", "abbrev": "Alb.", "postal": "AL", "formal_en": "Republic of Albania", "name_sort": "Albania", "mapcolor7": 1, "mapcolor8": 4, "mapcolor9": 1, "mapcolor13": 6, "pop_est": 3639453, "gdp_md_est": 21810, "pop_year": -99, "lastcensus": 2001, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "AL", "iso_a3": "ALB", "iso_n3": "008", "un_a3": "008", "wb_a2": "AL", "wb_a3": "ALB", "woe_id": -99, "adm0_a3_is": "ALB", "adm0_a3_us": "ALB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.687500, 42.617791 ], [ 19.863281, 42.423457 ], [ 20.126953, 42.553080 ], [ 20.214844, 42.488302 ], [ 20.214844, 42.358544 ], [ 20.478516, 42.228517 ], [ 20.654297, 41.967659 ], [ 20.566406, 41.836828 ], [ 20.478516, 41.244772 ], [ 20.742188, 40.913513 ], [ 21.005859, 40.847060 ], [ 21.093750, 40.580585 ], [ 20.830078, 40.446947 ], [ 20.654297, 40.044438 ], [ 20.302734, 39.977120 ], [ 20.390625, 39.774769 ], [ 20.302734, 39.774769 ], [ 20.214844, 39.639538 ], [ 20.039062, 39.707187 ], [ 20.039062, 39.842286 ], [ 19.951172, 39.909736 ], [ 19.863281, 40.044438 ], [ 19.423828, 40.245992 ], [ 19.423828, 40.513799 ], [ 19.511719, 40.513799 ], [ 19.335938, 40.647304 ], [ 19.423828, 40.913513 ], [ 19.423828, 40.847060 ], [ 19.511719, 40.913513 ], [ 19.511719, 41.244772 ], [ 19.423828, 41.376809 ], [ 19.511719, 41.442726 ], [ 19.423828, 41.574361 ], [ 19.599609, 41.574361 ], [ 19.599609, 41.771312 ], [ 19.423828, 41.836828 ], [ 19.335938, 42.228517 ], [ 19.687500, 42.617791 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Albania", "sov_a3": "ALB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Albania", "adm0_a3": "ALB", "geou_dif": 0, "geounit": "Albania", "gu_a3": "ALB", "su_dif": 0, "subunit": "Albania", "su_a3": "ALB", "brk_diff": 0, "name": "Albania", "name_long": "Albania", "brk_a3": "ALB", "brk_name": "Albania", "abbrev": "Alb.", "postal": "AL", "formal_en": "Republic of Albania", "name_sort": "Albania", "mapcolor7": 1, "mapcolor8": 4, "mapcolor9": 1, "mapcolor13": 6, "pop_est": 3639453, "gdp_md_est": 21810, "pop_year": -99, "lastcensus": 2001, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "AL", "iso_a3": "ALB", "iso_n3": "008", "un_a3": "008", "wb_a2": "AL", "wb_a3": "ALB", "woe_id": -99, "adm0_a3_is": "ALB", "adm0_a3_us": "ALB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.687500, 42.682435 ], [ 19.775391, 42.488302 ], [ 20.039062, 42.553080 ], [ 20.214844, 42.293564 ], [ 20.478516, 42.228517 ], [ 20.566406, 41.902277 ], [ 20.478516, 41.508577 ], [ 20.742188, 40.913513 ], [ 21.005859, 40.847060 ], [ 21.005859, 40.647304 ], [ 20.742188, 40.446947 ], [ 20.654297, 40.111689 ], [ 20.302734, 39.977120 ], [ 20.390625, 39.842286 ], [ 20.214844, 39.639538 ], [ 19.951172, 39.707187 ], [ 19.863281, 40.044438 ], [ 19.248047, 40.446947 ], [ 19.511719, 40.380028 ], [ 19.335938, 40.647304 ], [ 19.423828, 40.913513 ], [ 19.511719, 40.913513 ], [ 19.423828, 41.574361 ], [ 19.599609, 41.574361 ], [ 19.599609, 41.836828 ], [ 19.335938, 41.836828 ], [ 19.248047, 42.163403 ], [ 19.687500, 42.682435 ] ] ] } } ] } ] } , { "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Slovenia", "sov_a3": "SVN", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Slovenia", "adm0_a3": "SVN", "geou_dif": 0, "geounit": "Slovenia", "gu_a3": "SVN", "su_dif": 0, "subunit": "Slovenia", "su_a3": "SVN", "brk_diff": 0, "name": "Slovenia", "name_long": "Slovenia", "brk_a3": "SVN", "brk_name": "Slovenia", "abbrev": "Slo.", "postal": "SLO", "formal_en": "Republic of Slovenia", "name_sort": "Slovenia", "mapcolor7": 2, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 12, "pop_est": 2005692, "gdp_md_est": 59340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "1. High income: OECD", "wikipedia": -99, "iso_a2": "SI", "iso_a3": "SVN", "iso_n3": "705", "un_a3": "705", "wb_a2": "SI", "wb_a3": "SVN", "woe_id": -99, "adm0_a3_is": "SVN", "adm0_a3_us": "SVN", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 8, "long_len": 8, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.303711, 46.860191 ], [ 16.303711, 46.739861 ], [ 16.391602, 46.709736 ], [ 16.391602, 46.619261 ], [ 16.435547, 46.619261 ], [ 16.523438, 46.498392 ], [ 16.479492, 46.528635 ], [ 16.347656, 46.528635 ], [ 16.215820, 46.498392 ], [ 16.259766, 46.377254 ], [ 16.127930, 46.407564 ], [ 16.040039, 46.377254 ], [ 16.040039, 46.286224 ], [ 15.644531, 46.225453 ], [ 15.600586, 46.103709 ], [ 15.688477, 46.042736 ], [ 15.688477, 45.828799 ], [ 15.468750, 45.828799 ], [ 15.424805, 45.767523 ], [ 15.249023, 45.736860 ], [ 15.380859, 45.644768 ], [ 15.249023, 45.614037 ], [ 15.292969, 45.490946 ], [ 15.380859, 45.490946 ], [ 15.336914, 45.460131 ], [ 15.161133, 45.429299 ], [ 14.897461, 45.521744 ], [ 14.897461, 45.460131 ], [ 14.809570, 45.460131 ], [ 14.677734, 45.521744 ], [ 14.589844, 45.675482 ], [ 14.501953, 45.552525 ], [ 14.326172, 45.460131 ], [ 14.106445, 45.460131 ], [ 13.974609, 45.521744 ], [ 13.974609, 45.460131 ], [ 13.798828, 45.429299 ], [ 13.579102, 45.490946 ], [ 13.579102, 45.521744 ], [ 13.666992, 45.552525 ], [ 13.754883, 45.552525 ], [ 13.754883, 45.583290 ], [ 13.842773, 45.583290 ], [ 13.886719, 45.644768 ], [ 13.798828, 45.736860 ], [ 13.579102, 45.798170 ], [ 13.623047, 45.981695 ], [ 13.447266, 46.012224 ], [ 13.666992, 46.164614 ], [ 13.447266, 46.225453 ], [ 13.403320, 46.195042 ], [ 13.359375, 46.255847 ], [ 13.403320, 46.346928 ], [ 13.666992, 46.437857 ], [ 13.710938, 46.528635 ], [ 13.974609, 46.468133 ], [ 14.062500, 46.498392 ], [ 14.150391, 46.437857 ], [ 14.414062, 46.437857 ], [ 14.545898, 46.377254 ], [ 14.721680, 46.498392 ], [ 14.809570, 46.498392 ], [ 14.853516, 46.619261 ], [ 14.985352, 46.589069 ], [ 14.985352, 46.649436 ], [ 15.512695, 46.619261 ], [ 15.644531, 46.709736 ], [ 15.996094, 46.679594 ], [ 15.996094, 46.830134 ], [ 16.303711, 46.860191 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Slovenia", "sov_a3": "SVN", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Slovenia", "adm0_a3": "SVN", "geou_dif": 0, "geounit": "Slovenia", "gu_a3": "SVN", "su_dif": 0, "subunit": "Slovenia", "su_a3": "SVN", "brk_diff": 0, "name": "Slovenia", "name_long": "Slovenia", "brk_a3": "SVN", "brk_name": "Slovenia", "abbrev": "Slo.", "postal": "SLO", "formal_en": "Republic of Slovenia", "name_sort": "Slovenia", "mapcolor7": 2, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 12, "pop_est": 2005692, "gdp_md_est": 59340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "1. High income: OECD", "wikipedia": -99, "iso_a2": "SI", "iso_a3": "SVN", "iso_n3": "705", "un_a3": "705", "wb_a2": "SI", "wb_a3": "SVN", "woe_id": -99, "adm0_a3_is": "SVN", "adm0_a3_us": "SVN", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 8, "long_len": 8, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.083984, 46.860191 ], [ 16.303711, 46.830134 ], [ 16.303711, 46.739861 ], [ 16.391602, 46.679594 ], [ 16.347656, 46.649436 ], [ 16.523438, 46.498392 ], [ 16.347656, 46.558860 ], [ 16.215820, 46.498392 ], [ 16.259766, 46.377254 ], [ 16.040039, 46.377254 ], [ 16.040039, 46.286224 ], [ 15.644531, 46.195042 ], [ 15.600586, 46.103709 ], [ 15.688477, 46.042736 ], [ 15.688477, 45.828799 ], [ 15.468750, 45.828799 ], [ 15.249023, 45.736860 ], [ 15.380859, 45.644768 ], [ 15.249023, 45.614037 ], [ 15.380859, 45.490946 ], [ 15.336914, 45.460131 ], [ 15.161133, 45.429299 ], [ 14.941406, 45.521744 ], [ 14.809570, 45.460131 ], [ 14.677734, 45.521744 ], [ 14.589844, 45.675482 ], [ 14.370117, 45.490946 ], [ 13.974609, 45.521744 ], [ 13.886719, 45.429299 ], [ 13.579102, 45.490946 ], [ 13.579102, 45.552525 ], [ 13.754883, 45.552525 ], [ 13.710938, 45.583290 ], [ 13.842773, 45.583290 ], [ 13.886719, 45.644768 ], [ 13.798828, 45.736860 ], [ 13.579102, 45.798170 ], [ 13.623047, 45.981695 ], [ 13.491211, 45.981695 ], [ 13.447266, 46.012224 ], [ 13.623047, 46.195042 ], [ 13.403320, 46.195042 ], [ 13.359375, 46.286224 ], [ 13.666992, 46.437857 ], [ 13.710938, 46.528635 ], [ 14.414062, 46.437857 ], [ 14.545898, 46.377254 ], [ 14.809570, 46.498392 ], [ 14.853516, 46.619261 ], [ 15.073242, 46.649436 ], [ 15.512695, 46.619261 ], [ 15.644531, 46.709736 ], [ 15.864258, 46.709736 ], [ 15.996094, 46.679594 ], [ 15.996094, 46.830134 ], [ 16.083984, 46.860191 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Croatia", "sov_a3": "HRV", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Croatia", "adm0_a3": "HRV", "geou_dif": 0, "geounit": "Croatia", "gu_a3": "HRV", "su_dif": 0, "subunit": "Croatia", "su_a3": "HRV", "brk_diff": 0, "name": "Croatia", "name_long": "Croatia", "brk_a3": "HRV", "brk_name": "Croatia", "abbrev": "Cro.", "postal": "HR", "formal_en": "Republic of Croatia", "name_sort": "Croatia", "mapcolor7": 5, "mapcolor8": 4, "mapcolor9": 5, "mapcolor13": 1, "pop_est": 4489409, "gdp_md_est": 82390, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "HR", "iso_a3": "HRV", "iso_n3": "191", "un_a3": "191", "wb_a2": "HR", "wb_a3": "HRV", "woe_id": -99, "adm0_a3_is": "HRV", "adm0_a3_us": "HRV", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 17.709961, 42.875964 ], [ 17.841797, 42.908160 ], [ 17.841797, 42.811522 ], [ 17.622070, 42.811522 ], [ 17.138672, 42.972502 ], [ 17.006836, 43.036776 ], [ 17.226562, 43.036776 ], [ 17.446289, 42.972502 ], [ 17.446289, 42.908160 ], [ 17.666016, 42.875964 ], [ 17.709961, 42.875964 ] ] ], [ [ [ 17.358398, 42.779275 ], [ 17.534180, 42.779275 ], [ 17.753906, 42.682435 ], [ 17.358398, 42.779275 ] ] ], [ [ [ 14.062500, 44.964798 ], [ 13.974609, 44.902578 ], [ 13.974609, 44.809122 ], [ 13.930664, 44.840291 ], [ 13.886719, 44.840291 ], [ 13.798828, 44.871443 ], [ 13.798828, 44.933696 ], [ 13.623047, 45.058001 ], [ 13.623047, 45.120053 ], [ 13.710938, 45.151053 ], [ 13.579102, 45.151053 ], [ 13.579102, 45.274886 ], [ 13.623047, 45.305803 ], [ 13.535156, 45.336702 ], [ 13.491211, 45.521744 ], [ 13.579102, 45.490946 ], [ 13.798828, 45.429299 ], [ 13.974609, 45.460131 ], [ 13.974609, 45.521744 ], [ 14.106445, 45.460131 ], [ 14.326172, 45.460131 ], [ 14.501953, 45.552525 ], [ 14.589844, 45.675482 ], [ 14.677734, 45.521744 ], [ 14.809570, 45.460131 ], [ 14.897461, 45.460131 ], [ 14.897461, 45.521744 ], [ 15.161133, 45.429299 ], [ 15.336914, 45.460131 ], [ 15.380859, 45.490946 ], [ 15.292969, 45.490946 ], [ 15.249023, 45.614037 ], [ 15.380859, 45.644768 ], [ 15.249023, 45.736860 ], [ 15.424805, 45.767523 ], [ 15.468750, 45.828799 ], [ 15.688477, 45.828799 ], [ 15.688477, 46.042736 ], [ 15.600586, 46.103709 ], [ 15.644531, 46.225453 ], [ 16.040039, 46.286224 ], [ 16.040039, 46.377254 ], [ 16.127930, 46.407564 ], [ 16.259766, 46.377254 ], [ 16.215820, 46.498392 ], [ 16.347656, 46.528635 ], [ 16.479492, 46.528635 ], [ 16.523438, 46.498392 ], [ 16.655273, 46.468133 ], [ 16.743164, 46.377254 ], [ 16.875000, 46.377254 ], [ 16.875000, 46.286224 ], [ 17.094727, 46.134170 ], [ 17.182617, 46.134170 ], [ 17.314453, 45.981695 ], [ 17.578125, 45.951150 ], [ 17.666016, 45.828799 ], [ 17.797852, 45.828799 ], [ 17.841797, 45.767523 ], [ 18.193359, 45.798170 ], [ 18.281250, 45.736860 ], [ 18.544922, 45.798170 ], [ 18.676758, 45.920587 ], [ 18.896484, 45.920587 ], [ 18.896484, 45.890008 ], [ 18.852539, 45.798170 ], [ 18.984375, 45.675482 ], [ 18.896484, 45.583290 ], [ 19.116211, 45.521744 ], [ 18.984375, 45.460131 ], [ 18.984375, 45.367584 ], [ 19.423828, 45.213004 ], [ 19.204102, 45.151053 ], [ 19.160156, 45.213004 ], [ 19.160156, 45.151053 ], [ 19.028320, 45.151053 ], [ 19.116211, 45.026950 ], [ 19.116211, 44.933696 ], [ 18.984375, 44.902578 ], [ 19.028320, 44.871443 ], [ 18.764648, 44.902578 ], [ 18.808594, 44.995883 ], [ 18.676758, 45.089036 ], [ 18.500977, 45.058001 ], [ 18.413086, 45.120053 ], [ 18.193359, 45.151053 ], [ 18.193359, 45.089036 ], [ 18.105469, 45.089036 ], [ 17.973633, 45.151053 ], [ 17.797852, 45.058001 ], [ 17.709961, 45.151053 ], [ 17.490234, 45.120053 ], [ 17.314453, 45.182037 ], [ 17.182617, 45.151053 ], [ 17.050781, 45.213004 ], [ 16.875000, 45.274886 ], [ 16.831055, 45.182037 ], [ 16.479492, 45.213004 ], [ 16.347656, 44.995883 ], [ 16.259766, 44.995883 ], [ 16.040039, 45.213004 ], [ 15.820312, 45.213004 ], [ 15.732422, 44.746733 ], [ 15.820312, 44.684277 ], [ 15.908203, 44.715514 ], [ 16.040039, 44.621754 ], [ 15.996094, 44.527843 ], [ 16.127930, 44.527843 ], [ 16.127930, 44.370987 ], [ 16.215820, 44.370987 ], [ 16.171875, 44.276671 ], [ 16.303711, 44.087585 ], [ 16.523438, 43.992815 ], [ 16.699219, 43.771094 ], [ 17.050781, 43.516689 ], [ 17.270508, 43.452919 ], [ 17.270508, 43.293200 ], [ 17.666016, 43.004647 ], [ 17.622070, 42.940339 ], [ 17.578125, 42.940339 ], [ 17.490234, 42.972502 ], [ 17.490234, 43.036776 ], [ 17.446289, 43.036776 ], [ 17.050781, 43.229195 ], [ 17.050781, 43.293200 ], [ 16.875000, 43.421009 ], [ 16.391602, 43.516689 ], [ 16.479492, 43.548548 ], [ 16.303711, 43.548548 ], [ 16.303711, 43.516689 ], [ 16.303711, 43.484812 ], [ 16.215820, 43.484812 ], [ 16.215820, 43.516689 ], [ 16.127930, 43.516689 ], [ 16.171875, 43.484812 ], [ 15.996094, 43.516689 ], [ 15.996094, 43.548548 ], [ 15.952148, 43.548548 ], [ 15.952148, 43.580391 ], [ 15.908203, 43.580391 ], [ 15.908203, 43.644026 ], [ 15.952148, 43.644026 ], [ 15.952148, 43.675818 ], [ 15.776367, 43.771094 ], [ 15.688477, 43.771094 ], [ 15.688477, 43.802819 ], [ 15.644531, 43.802819 ], [ 15.600586, 43.834527 ], [ 15.512695, 43.929550 ], [ 15.424805, 43.929550 ], [ 15.336914, 44.056012 ], [ 15.292969, 44.056012 ], [ 15.205078, 44.119142 ], [ 15.117188, 44.276671 ], [ 15.205078, 44.245199 ], [ 15.205078, 44.308127 ], [ 15.292969, 44.245199 ], [ 15.249023, 44.339565 ], [ 15.292969, 44.339565 ], [ 15.073242, 44.496505 ], [ 15.073242, 44.527843 ], [ 14.897461, 44.684277 ], [ 14.941406, 44.964798 ], [ 14.853516, 45.120053 ], [ 14.589844, 45.243953 ], [ 14.589844, 45.305803 ], [ 14.545898, 45.274886 ], [ 14.326172, 45.336702 ], [ 14.150391, 45.089036 ], [ 14.150391, 44.964798 ], [ 14.062500, 44.964798 ] ] ], [ [ [ 14.414062, 44.653024 ], [ 14.370117, 44.653024 ], [ 14.326172, 44.715514 ], [ 14.414062, 44.684277 ], [ 14.414062, 44.746733 ], [ 14.326172, 44.809122 ], [ 14.282227, 44.933696 ], [ 14.414062, 44.902578 ], [ 14.282227, 45.089036 ], [ 14.326172, 45.182037 ], [ 14.370117, 45.026950 ], [ 14.458008, 44.995883 ], [ 14.458008, 44.715514 ], [ 14.545898, 44.621754 ], [ 14.414062, 44.653024 ] ] ], [ [ [ 16.699219, 43.004647 ], [ 17.138672, 42.972502 ], [ 17.182617, 42.908160 ], [ 16.655273, 42.940339 ], [ 16.699219, 42.972502 ], [ 16.611328, 42.972502 ], [ 16.699219, 43.004647 ] ] ], [ [ [ 16.699219, 43.389082 ], [ 16.831055, 43.325178 ], [ 16.831055, 43.261206 ], [ 16.567383, 43.261206 ], [ 16.435547, 43.325178 ], [ 16.435547, 43.389082 ], [ 16.699219, 43.389082 ] ] ], [ [ [ 16.127930, 43.100983 ], [ 16.215820, 43.068888 ], [ 16.127930, 43.004647 ], [ 16.083984, 43.004647 ], [ 16.083984, 43.036776 ], [ 16.040039, 43.068888 ], [ 16.127930, 43.100983 ] ] ], [ [ [ 16.655273, 43.229195 ], [ 16.699219, 43.165123 ], [ 17.182617, 43.133061 ], [ 16.567383, 43.133061 ], [ 16.435547, 43.197167 ], [ 16.479492, 43.229195 ], [ 16.655273, 43.229195 ] ] ], [ [ [ 14.545898, 45.243953 ], [ 14.809570, 44.964798 ], [ 14.721680, 44.933696 ], [ 14.633789, 44.964798 ], [ 14.633789, 45.058001 ], [ 14.589844, 45.026950 ], [ 14.414062, 45.089036 ], [ 14.545898, 45.120053 ], [ 14.545898, 45.243953 ] ] ], [ [ [ 16.215820, 43.421009 ], [ 16.347656, 43.389082 ], [ 16.391602, 43.325178 ], [ 16.215820, 43.421009 ] ] ], [ [ [ 18.061523, 42.714732 ], [ 18.457031, 42.553080 ], [ 18.457031, 42.455888 ], [ 18.237305, 42.553080 ], [ 18.237305, 42.617791 ], [ 18.061523, 42.650122 ], [ 18.061523, 42.714732 ] ] ], [ [ [ 14.853516, 44.590467 ], [ 14.897461, 44.621754 ], [ 14.941406, 44.559163 ], [ 14.985352, 44.527843 ], [ 15.029297, 44.433780 ], [ 14.897461, 44.496505 ], [ 14.853516, 44.590467 ] ] ], [ [ [ 15.029297, 44.024422 ], [ 15.161133, 43.961191 ], [ 15.161133, 43.929550 ], [ 15.117188, 43.929550 ], [ 15.029297, 44.024422 ] ] ], [ [ [ 15.292969, 44.056012 ], [ 15.292969, 43.992815 ], [ 15.205078, 43.992815 ], [ 15.205078, 44.056012 ], [ 15.292969, 44.056012 ] ] ], [ [ [ 15.117188, 44.182204 ], [ 15.117188, 44.119142 ], [ 15.029297, 44.119142 ], [ 15.029297, 44.182204 ], [ 15.117188, 44.182204 ] ] ], [ [ [ 14.809570, 44.465151 ], [ 14.809570, 44.402392 ], [ 14.721680, 44.402392 ], [ 14.721680, 44.465151 ], [ 14.809570, 44.465151 ] ] ], [ [ [ 17.841797, 42.811522 ], [ 18.061523, 42.714732 ], [ 18.017578, 42.682435 ], [ 17.841797, 42.811522 ] ] ], [ [ [ 15.117188, 44.402392 ], [ 15.161133, 44.370987 ], [ 15.205078, 44.370987 ], [ 15.205078, 44.339565 ], [ 15.117188, 44.339565 ], [ 15.117188, 44.402392 ] ] ], [ [ [ 14.370117, 44.653024 ], [ 14.458008, 44.559163 ], [ 14.414062, 44.559163 ], [ 14.370117, 44.653024 ] ] ], [ [ [ 14.985352, 44.087585 ], [ 15.029297, 44.087585 ], [ 15.029297, 44.024422 ], [ 14.985352, 44.087585 ] ] ], [ [ [ 14.677734, 44.777936 ], [ 14.677734, 44.809122 ], [ 14.721680, 44.809122 ], [ 14.677734, 44.777936 ] ] ], [ [ [ 15.029297, 44.433780 ], [ 15.117188, 44.402392 ], [ 15.029297, 44.402392 ], [ 15.029297, 44.433780 ] ] ], [ [ [ 18.457031, 42.455888 ], [ 18.500977, 42.455888 ], [ 18.500977, 42.423457 ], [ 18.457031, 42.455888 ] ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Croatia", "sov_a3": "HRV", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Croatia", "adm0_a3": "HRV", "geou_dif": 0, "geounit": "Croatia", "gu_a3": "HRV", "su_dif": 0, "subunit": "Croatia", "su_a3": "HRV", "brk_diff": 0, "name": "Croatia", "name_long": "Croatia", "brk_a3": "HRV", "brk_name": "Croatia", "abbrev": "Cro.", "postal": "HR", "formal_en": "Republic of Croatia", "name_sort": "Croatia", "mapcolor7": 5, "mapcolor8": 4, "mapcolor9": 5, "mapcolor13": 1, "pop_est": 4489409, "gdp_md_est": 82390, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "2. Developed region: nonG7", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "HR", "iso_a3": "HRV", "iso_n3": "191", "un_a3": "191", "wb_a2": "HR", "wb_a3": "HRV", "woe_id": -99, "adm0_a3_is": "HRV", "adm0_a3_us": "HRV", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 17.709961, 42.811522 ], [ 17.226562, 42.972502 ], [ 17.050781, 43.004647 ], [ 17.006836, 43.036776 ], [ 17.226562, 43.036776 ], [ 17.666016, 42.875964 ], [ 17.797852, 42.908160 ], [ 17.841797, 42.811522 ], [ 17.885742, 42.779275 ], [ 17.709961, 42.811522 ] ] ], [ [ [ 17.490234, 42.779275 ], [ 17.753906, 42.682435 ], [ 17.314453, 42.779275 ], [ 17.490234, 42.779275 ] ] ], [ [ [ 13.623047, 45.120053 ], [ 13.579102, 45.151053 ], [ 13.623047, 45.305803 ], [ 13.535156, 45.336702 ], [ 13.491211, 45.521744 ], [ 13.579102, 45.490946 ], [ 13.886719, 45.429299 ], [ 13.974609, 45.521744 ], [ 14.370117, 45.490946 ], [ 14.589844, 45.675482 ], [ 14.677734, 45.521744 ], [ 14.809570, 45.460131 ], [ 14.941406, 45.521744 ], [ 15.161133, 45.429299 ], [ 15.336914, 45.460131 ], [ 15.380859, 45.490946 ], [ 15.249023, 45.614037 ], [ 15.380859, 45.644768 ], [ 15.249023, 45.736860 ], [ 15.468750, 45.828799 ], [ 15.688477, 45.828799 ], [ 15.688477, 46.042736 ], [ 15.600586, 46.103709 ], [ 15.644531, 46.195042 ], [ 16.040039, 46.286224 ], [ 16.040039, 46.377254 ], [ 16.259766, 46.377254 ], [ 16.215820, 46.498392 ], [ 16.347656, 46.558860 ], [ 16.523438, 46.498392 ], [ 16.831055, 46.377254 ], [ 17.050781, 46.164614 ], [ 17.226562, 46.103709 ], [ 17.270508, 45.981695 ], [ 17.578125, 45.951150 ], [ 17.666016, 45.859412 ], [ 17.841797, 45.767523 ], [ 18.193359, 45.798170 ], [ 18.413086, 45.736860 ], [ 18.676758, 45.920587 ], [ 18.764648, 45.890008 ], [ 18.896484, 45.920587 ], [ 18.852539, 45.828799 ], [ 18.984375, 45.675482 ], [ 18.896484, 45.583290 ], [ 19.116211, 45.521744 ], [ 19.028320, 45.490946 ], [ 19.028320, 45.429299 ], [ 18.984375, 45.398450 ], [ 19.116211, 45.305803 ], [ 19.379883, 45.243953 ], [ 19.423828, 45.182037 ], [ 19.204102, 45.151053 ], [ 19.160156, 45.213004 ], [ 19.116211, 45.151053 ], [ 19.028320, 45.151053 ], [ 19.116211, 44.964798 ], [ 18.984375, 44.902578 ], [ 19.028320, 44.871443 ], [ 18.808594, 44.902578 ], [ 18.808594, 44.995883 ], [ 18.676758, 45.089036 ], [ 18.544922, 45.089036 ], [ 18.500977, 45.058001 ], [ 18.237305, 45.151053 ], [ 18.149414, 45.089036 ], [ 18.017578, 45.151053 ], [ 17.841797, 45.058001 ], [ 17.666016, 45.151053 ], [ 17.490234, 45.120053 ], [ 17.270508, 45.182037 ], [ 17.182617, 45.151053 ], [ 16.918945, 45.274886 ], [ 16.831055, 45.182037 ], [ 16.523438, 45.213004 ], [ 16.303711, 44.995883 ], [ 16.127930, 45.089036 ], [ 16.040039, 45.213004 ], [ 15.820312, 45.213004 ], [ 15.732422, 44.777936 ], [ 16.040039, 44.621754 ], [ 15.996094, 44.527843 ], [ 16.127930, 44.527843 ], [ 16.215820, 44.213710 ], [ 16.347656, 44.087585 ], [ 17.050781, 43.548548 ], [ 17.270508, 43.452919 ], [ 17.270508, 43.293200 ], [ 17.622070, 43.036776 ], [ 17.666016, 42.972502 ], [ 17.578125, 42.940339 ], [ 16.875000, 43.421009 ], [ 16.391602, 43.516689 ], [ 16.435547, 43.548548 ], [ 16.259766, 43.516689 ], [ 16.259766, 43.452919 ], [ 16.171875, 43.452919 ], [ 16.171875, 43.484812 ], [ 16.171875, 43.516689 ], [ 16.127930, 43.484812 ], [ 15.952148, 43.516689 ], [ 15.908203, 43.644026 ], [ 15.952148, 43.675818 ], [ 15.688477, 43.771094 ], [ 15.292969, 44.056012 ], [ 15.161133, 44.182204 ], [ 15.161133, 44.276671 ], [ 15.292969, 44.245199 ], [ 15.249023, 44.339565 ], [ 15.292969, 44.339565 ], [ 15.073242, 44.496505 ], [ 15.029297, 44.527843 ], [ 15.029297, 44.559163 ], [ 14.897461, 44.715514 ], [ 14.941406, 44.964798 ], [ 14.853516, 45.089036 ], [ 14.545898, 45.305803 ], [ 14.326172, 45.336702 ], [ 14.150391, 44.964798 ], [ 14.062500, 44.964798 ], [ 13.974609, 44.902578 ], [ 14.018555, 44.809122 ], [ 13.886719, 44.840291 ], [ 13.886719, 44.777936 ], [ 13.623047, 45.058001 ], [ 13.623047, 45.120053 ] ] ], [ [ [ 17.050781, 42.972502 ], [ 17.182617, 42.908160 ], [ 16.831055, 42.908160 ], [ 16.655273, 42.940339 ], [ 16.699219, 42.972502 ], [ 17.050781, 42.972502 ] ] ], [ [ [ 14.326172, 45.182037 ], [ 14.414062, 45.089036 ], [ 14.458008, 44.964798 ], [ 14.501953, 44.621754 ], [ 14.414062, 44.653024 ], [ 14.282227, 44.902578 ], [ 14.282227, 44.933696 ], [ 14.370117, 44.902578 ], [ 14.414062, 44.964798 ], [ 14.282227, 45.120053 ], [ 14.326172, 45.182037 ] ] ], [ [ [ 16.259766, 43.068888 ], [ 16.083984, 43.004647 ], [ 16.083984, 43.068888 ], [ 16.259766, 43.068888 ] ] ], [ [ [ 16.567383, 43.229195 ], [ 16.743164, 43.165123 ], [ 17.182617, 43.133061 ], [ 16.655273, 43.133061 ], [ 16.391602, 43.197167 ], [ 16.567383, 43.197167 ], [ 16.567383, 43.229195 ] ] ], [ [ [ 16.435547, 43.389082 ], [ 16.875000, 43.325178 ], [ 16.611328, 43.261206 ], [ 16.391602, 43.325178 ], [ 16.391602, 43.357138 ], [ 16.435547, 43.389082 ] ] ], [ [ [ 14.545898, 45.243953 ], [ 14.809570, 44.995883 ], [ 14.765625, 44.933696 ], [ 14.633789, 44.964798 ], [ 14.633789, 45.058001 ], [ 14.501953, 45.026950 ], [ 14.414062, 45.089036 ], [ 14.545898, 45.120053 ], [ 14.545898, 45.243953 ] ] ], [ [ [ 17.885742, 42.779275 ], [ 18.457031, 42.553080 ], [ 18.500977, 42.423457 ], [ 17.885742, 42.779275 ] ] ], [ [ [ 15.029297, 44.527843 ], [ 14.897461, 44.559163 ], [ 15.117188, 44.402392 ], [ 14.897461, 44.496505 ], [ 14.721680, 44.715514 ], [ 15.029297, 44.527843 ] ] ], [ [ [ 15.292969, 43.897892 ], [ 15.292969, 43.834527 ], [ 15.205078, 43.834527 ], [ 15.205078, 43.866218 ], [ 15.205078, 43.897892 ], [ 15.292969, 43.897892 ] ] ], [ [ [ 15.292969, 43.992815 ], [ 15.205078, 43.992815 ], [ 15.205078, 44.056012 ], [ 15.292969, 44.056012 ], [ 15.292969, 43.992815 ] ] ], [ [ [ 15.161133, 43.929550 ], [ 15.117188, 43.929550 ], [ 14.853516, 44.182204 ], [ 15.161133, 43.929550 ] ] ], [ [ [ 14.326172, 44.715514 ], [ 14.414062, 44.653024 ], [ 14.545898, 44.496505 ], [ 14.370117, 44.559163 ], [ 14.326172, 44.715514 ] ] ], [ [ [ 14.677734, 44.809122 ], [ 14.677734, 44.840291 ], [ 14.765625, 44.840291 ], [ 14.853516, 44.715514 ], [ 14.721680, 44.809122 ], [ 14.677734, 44.809122 ] ] ], [ [ [ 14.809570, 44.433780 ], [ 14.809570, 44.370987 ], [ 14.721680, 44.370987 ], [ 14.721680, 44.433780 ], [ 14.809570, 44.433780 ] ] ], [ [ [ 15.117188, 44.402392 ], [ 15.161133, 44.370987 ], [ 15.205078, 44.308127 ], [ 15.117188, 44.308127 ], [ 15.117188, 44.402392 ] ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Montenegro", "sov_a3": "MNE", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Montenegro", "adm0_a3": "MNE", "geou_dif": 0, "geounit": "Montenegro", "gu_a3": "MNE", "su_dif": 0, "subunit": "Montenegro", "su_a3": "MNE", "brk_diff": 0, "name": "Montenegro", "name_long": "Montenegro", "brk_a3": "MNE", "brk_name": "Montenegro", "abbrev": "Mont.", "postal": "ME", "formal_en": "Montenegro", "name_sort": "Montenegro", "mapcolor7": 4, "mapcolor8": 1, "mapcolor9": 4, "mapcolor13": 5, "pop_est": 672180, "gdp_md_est": 6816, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "ME", "iso_a3": "MNE", "iso_n3": "499", "un_a3": "499", "wb_a2": "ME", "wb_a3": "MNE", "woe_id": -99, "adm0_a3_is": "MNE", "adm0_a3_us": "MNE", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 10, "long_len": 10, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 18.500977, 42.455888 ], [ 18.457031, 42.455888 ], [ 18.457031, 42.553080 ], [ 18.544922, 42.682435 ], [ 18.413086, 42.940339 ], [ 18.544922, 43.036776 ], [ 18.632812, 43.004647 ], [ 18.676758, 43.261206 ], [ 18.808594, 43.325178 ], [ 18.940430, 43.357138 ], [ 18.984375, 43.261206 ], [ 19.072266, 43.293200 ], [ 19.028320, 43.421009 ], [ 18.896484, 43.516689 ], [ 19.204102, 43.548548 ], [ 19.160156, 43.484812 ], [ 19.379883, 43.389082 ], [ 19.599609, 43.165123 ], [ 19.731445, 43.165123 ], [ 19.775391, 43.100983 ], [ 19.907227, 43.100983 ], [ 20.346680, 42.908160 ], [ 20.346680, 42.811522 ], [ 20.214844, 42.811522 ], [ 20.170898, 42.747012 ], [ 20.039062, 42.779275 ], [ 20.083008, 42.682435 ], [ 20.083008, 42.553080 ], [ 19.819336, 42.455888 ], [ 19.731445, 42.488302 ], [ 19.731445, 42.650122 ], [ 19.643555, 42.650122 ], [ 19.599609, 42.520700 ], [ 19.291992, 42.228517 ], [ 19.379883, 42.098222 ], [ 19.379883, 41.836828 ], [ 19.160156, 41.934977 ], [ 19.160156, 42.032974 ], [ 18.896484, 42.228517 ], [ 18.896484, 42.293564 ], [ 18.764648, 42.261049 ], [ 18.676758, 42.391009 ], [ 18.632812, 42.358544 ], [ 18.544922, 42.423457 ], [ 18.720703, 42.391009 ], [ 18.676758, 42.488302 ], [ 18.500977, 42.455888 ] ] ], [ [ [ 18.500977, 42.423457 ], [ 18.544922, 42.391009 ], [ 18.500977, 42.391009 ], [ 18.500977, 42.423457 ] ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Bosnia and Herzegovina", "sov_a3": "BIH", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Bosnia and Herzegovina", "adm0_a3": "BIH", "geou_dif": 0, "geounit": "Bosnia and Herzegovina", "gu_a3": "BIH", "su_dif": 0, "subunit": "Bosnia and Herzegovina", "su_a3": "BIH", "brk_diff": 0, "name": "Bosnia and Herz.", "name_long": "Bosnia and Herzegovina", "brk_a3": "BIH", "brk_name": "Bosnia and Herz.", "abbrev": "B.H.", "postal": "BiH", "formal_en": "Bosnia and Herzegovina", "name_sort": "Bosnia and Herzegovina", "mapcolor7": 1, "mapcolor8": 1, "mapcolor9": 1, "mapcolor13": 2, "pop_est": 4613414, "gdp_md_est": 29700, "pop_year": -99, "lastcensus": 1991, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "BA", "iso_a3": "BIH", "iso_n3": "070", "un_a3": "070", "wb_a2": "BA", "wb_a3": "BIH", "woe_id": -99, "adm0_a3_is": "BIH", "adm0_a3_us": "BIH", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 16, "long_len": 22, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.918945, 45.274886 ], [ 17.182617, 45.151053 ], [ 17.270508, 45.182037 ], [ 17.490234, 45.120053 ], [ 17.666016, 45.151053 ], [ 17.841797, 45.058001 ], [ 18.017578, 45.151053 ], [ 18.149414, 45.089036 ], [ 18.237305, 45.151053 ], [ 18.500977, 45.058001 ], [ 18.544922, 45.089036 ], [ 18.676758, 45.089036 ], [ 18.808594, 44.995883 ], [ 18.808594, 44.902578 ], [ 19.028320, 44.871443 ], [ 19.204102, 44.933696 ], [ 19.379883, 44.902578 ], [ 19.335938, 44.715514 ], [ 19.116211, 44.527843 ], [ 19.116211, 44.370987 ], [ 19.599609, 44.024422 ], [ 19.511719, 43.992815 ], [ 19.248047, 43.992815 ], [ 19.511719, 43.644026 ], [ 19.467773, 43.548548 ], [ 19.423828, 43.548548 ], [ 19.335938, 43.612217 ], [ 19.204102, 43.548548 ], [ 19.072266, 43.516689 ], [ 18.984375, 43.548548 ], [ 18.896484, 43.484812 ], [ 19.072266, 43.293200 ], [ 18.984375, 43.261206 ], [ 18.940430, 43.357138 ], [ 18.808594, 43.357138 ], [ 18.676758, 43.229195 ], [ 18.632812, 43.004647 ], [ 18.457031, 43.004647 ], [ 18.457031, 42.811522 ], [ 18.544922, 42.682435 ], [ 18.500977, 42.553080 ], [ 18.457031, 42.553080 ], [ 17.841797, 42.811522 ], [ 17.797852, 42.908160 ], [ 17.666016, 42.875964 ], [ 17.578125, 42.940339 ], [ 17.666016, 42.972502 ], [ 17.622070, 43.036776 ], [ 17.270508, 43.293200 ], [ 17.270508, 43.452919 ], [ 17.050781, 43.548548 ], [ 16.347656, 44.087585 ], [ 16.215820, 44.213710 ], [ 16.127930, 44.527843 ], [ 15.996094, 44.527843 ], [ 16.040039, 44.621754 ], [ 15.732422, 44.777936 ], [ 15.820312, 45.213004 ], [ 16.040039, 45.213004 ], [ 16.127930, 45.089036 ], [ 16.303711, 44.995883 ], [ 16.523438, 45.213004 ], [ 16.831055, 45.182037 ], [ 16.918945, 45.274886 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Bosnia and Herzegovina", "sov_a3": "BIH", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Bosnia and Herzegovina", "adm0_a3": "BIH", "geou_dif": 0, "geounit": "Bosnia and Herzegovina", "gu_a3": "BIH", "su_dif": 0, "subunit": "Bosnia and Herzegovina", "su_a3": "BIH", "brk_diff": 0, "name": "Bosnia and Herz.", "name_long": "Bosnia and Herzegovina", "brk_a3": "BIH", "brk_name": "Bosnia and Herz.", "abbrev": "B.H.", "postal": "BiH", "formal_en": "Bosnia and Herzegovina", "name_sort": "Bosnia and Herzegovina", "mapcolor7": 1, "mapcolor8": 1, "mapcolor9": 1, "mapcolor13": 2, "pop_est": 4613414, "gdp_md_est": 29700, "pop_year": -99, "lastcensus": 1991, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "BA", "iso_a3": "BIH", "iso_n3": "070", "un_a3": "070", "wb_a2": "BA", "wb_a3": "BIH", "woe_id": -99, "adm0_a3_is": "BIH", "adm0_a3_us": "BIH", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 16, "long_len": 22, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.875000, 45.274886 ], [ 17.050781, 45.213004 ], [ 17.182617, 45.151053 ], [ 17.314453, 45.182037 ], [ 17.490234, 45.120053 ], [ 17.709961, 45.151053 ], [ 17.797852, 45.058001 ], [ 17.973633, 45.151053 ], [ 18.105469, 45.089036 ], [ 18.193359, 45.089036 ], [ 18.193359, 45.151053 ], [ 18.413086, 45.120053 ], [ 18.500977, 45.058001 ], [ 18.676758, 45.089036 ], [ 18.808594, 44.995883 ], [ 18.764648, 44.902578 ], [ 19.028320, 44.871443 ], [ 19.160156, 44.933696 ], [ 19.379883, 44.902578 ], [ 19.335938, 44.715514 ], [ 19.116211, 44.527843 ], [ 19.116211, 44.339565 ], [ 19.160156, 44.276671 ], [ 19.335938, 44.276671 ], [ 19.335938, 44.213710 ], [ 19.599609, 44.056012 ], [ 19.599609, 43.992815 ], [ 19.511719, 43.961191 ], [ 19.379883, 43.961191 ], [ 19.291992, 44.024422 ], [ 19.248047, 43.992815 ], [ 19.467773, 43.771094 ], [ 19.511719, 43.580391 ], [ 19.423828, 43.548548 ], [ 19.335938, 43.612217 ], [ 19.204102, 43.548548 ], [ 18.896484, 43.516689 ], [ 19.028320, 43.421009 ], [ 19.072266, 43.293200 ], [ 18.984375, 43.261206 ], [ 18.940430, 43.357138 ], [ 18.808594, 43.325178 ], [ 18.676758, 43.261206 ], [ 18.632812, 43.004647 ], [ 18.544922, 43.036776 ], [ 18.413086, 42.940339 ], [ 18.544922, 42.682435 ], [ 18.457031, 42.553080 ], [ 17.841797, 42.811522 ], [ 17.841797, 42.908160 ], [ 17.666016, 42.875964 ], [ 17.578125, 42.940339 ], [ 17.622070, 42.940339 ], [ 17.666016, 43.004647 ], [ 17.270508, 43.293200 ], [ 17.270508, 43.452919 ], [ 17.050781, 43.516689 ], [ 16.699219, 43.771094 ], [ 16.523438, 43.992815 ], [ 16.303711, 44.087585 ], [ 16.171875, 44.276671 ], [ 16.215820, 44.370987 ], [ 16.127930, 44.370987 ], [ 16.127930, 44.527843 ], [ 15.996094, 44.527843 ], [ 16.040039, 44.621754 ], [ 15.908203, 44.715514 ], [ 15.820312, 44.684277 ], [ 15.732422, 44.746733 ], [ 15.820312, 45.213004 ], [ 16.040039, 45.213004 ], [ 16.259766, 44.995883 ], [ 16.347656, 44.995883 ], [ 16.479492, 45.213004 ], [ 16.831055, 45.182037 ], [ 16.875000, 45.274886 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Republic of Serbia", "sov_a3": "SRB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Republic of Serbia", "adm0_a3": "SRB", "geou_dif": 0, "geounit": "Republic of Serbia", "gu_a3": "SRB", "su_dif": 0, "subunit": "Republic of Serbia", "su_a3": "SRB", "brk_diff": 0, "name": "Serbia", "name_long": "Serbia", "brk_a3": "SRB", "brk_name": "Serbia", "abbrev": "Serb.", "postal": "RS", "formal_en": "Republic of Serbia", "name_sort": "Serbia", "mapcolor7": 3, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 10, "pop_est": 7379339, "gdp_md_est": 80340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "RS", "iso_a3": "SRB", "iso_n3": "688", "un_a3": "688", "wb_a2": "YF", "wb_a3": "SRB", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "SRB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.555664, 46.164614 ], [ 20.170898, 46.134170 ], [ 20.346680, 45.981695 ], [ 20.566406, 45.890008 ], [ 20.698242, 45.736860 ], [ 20.786133, 45.767523 ], [ 20.786133, 45.490946 ], [ 20.961914, 45.336702 ], [ 21.489258, 45.151053 ], [ 21.357422, 44.995883 ], [ 21.533203, 44.902578 ], [ 21.357422, 44.871443 ], [ 21.401367, 44.777936 ], [ 21.577148, 44.777936 ], [ 21.665039, 44.684277 ], [ 21.972656, 44.653024 ], [ 22.148438, 44.496505 ], [ 22.412109, 44.746733 ], [ 22.763672, 44.590467 ], [ 22.719727, 44.527843 ], [ 22.587891, 44.559163 ], [ 22.500000, 44.496505 ], [ 22.543945, 44.370987 ], [ 22.675781, 44.308127 ], [ 22.675781, 44.213710 ], [ 22.587891, 44.182204 ], [ 22.587891, 44.056012 ], [ 22.412109, 43.992815 ], [ 22.368164, 43.802819 ], [ 22.500000, 43.484812 ], [ 22.719727, 43.389082 ], [ 22.983398, 43.165123 ], [ 22.719727, 42.875964 ], [ 22.543945, 42.875964 ], [ 22.412109, 42.811522 ], [ 22.500000, 42.747012 ], [ 22.412109, 42.585444 ], [ 22.543945, 42.488302 ], [ 22.412109, 42.326062 ], [ 22.324219, 42.326062 ], [ 22.280273, 42.358544 ], [ 22.104492, 42.293564 ], [ 21.928711, 42.326062 ], [ 21.665039, 42.228517 ], [ 21.577148, 42.261049 ], [ 21.533203, 42.326062 ], [ 21.621094, 42.391009 ], [ 21.752930, 42.650122 ], [ 21.357422, 42.747012 ], [ 21.401367, 42.843751 ], [ 21.269531, 42.875964 ], [ 21.093750, 43.100983 ], [ 20.830078, 43.165123 ], [ 20.874023, 43.229195 ], [ 20.786133, 43.261206 ], [ 20.610352, 43.197167 ], [ 20.654297, 43.036776 ], [ 20.478516, 42.940339 ], [ 20.478516, 42.843751 ], [ 20.346680, 42.811522 ], [ 20.346680, 42.875964 ], [ 19.907227, 43.100983 ], [ 19.819336, 43.100983 ], [ 19.731445, 43.165123 ], [ 19.599609, 43.165123 ], [ 19.379883, 43.389082 ], [ 19.204102, 43.452919 ], [ 19.204102, 43.548548 ], [ 19.335938, 43.612217 ], [ 19.423828, 43.548548 ], [ 19.467773, 43.548548 ], [ 19.511719, 43.644026 ], [ 19.248047, 43.992815 ], [ 19.511719, 43.992815 ], [ 19.599609, 44.024422 ], [ 19.116211, 44.370987 ], [ 19.116211, 44.527843 ], [ 19.335938, 44.715514 ], [ 19.379883, 44.902578 ], [ 19.204102, 44.933696 ], [ 19.028320, 44.871443 ], [ 18.984375, 44.902578 ], [ 19.116211, 44.964798 ], [ 19.028320, 45.151053 ], [ 19.116211, 45.151053 ], [ 19.160156, 45.213004 ], [ 19.204102, 45.151053 ], [ 19.423828, 45.182037 ], [ 19.379883, 45.243953 ], [ 19.116211, 45.305803 ], [ 18.984375, 45.398450 ], [ 19.028320, 45.429299 ], [ 19.028320, 45.490946 ], [ 19.116211, 45.521744 ], [ 18.896484, 45.583290 ], [ 18.984375, 45.675482 ], [ 18.852539, 45.828799 ], [ 18.896484, 45.920587 ], [ 18.984375, 45.920587 ], [ 19.072266, 46.012224 ], [ 19.248047, 45.981695 ], [ 19.555664, 46.164614 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 5, "sovereignt": "Republic of Serbia", "sov_a3": "SRB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Republic of Serbia", "adm0_a3": "SRB", "geou_dif": 0, "geounit": "Republic of Serbia", "gu_a3": "SRB", "su_dif": 0, "subunit": "Republic of Serbia", "su_a3": "SRB", "brk_diff": 0, "name": "Serbia", "name_long": "Serbia", "brk_a3": "SRB", "brk_name": "Serbia", "abbrev": "Serb.", "postal": "RS", "formal_en": "Republic of Serbia", "name_sort": "Serbia", "mapcolor7": 3, "mapcolor8": 3, "mapcolor9": 2, "mapcolor13": 10, "pop_est": 7379339, "gdp_md_est": 80340, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "RS", "iso_a3": "SRB", "iso_n3": "688", "un_a3": "688", "wb_a2": "YF", "wb_a3": "SRB", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "SRB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.126953, 46.164614 ], [ 20.390625, 45.951150 ], [ 20.654297, 45.828799 ], [ 20.698242, 45.736860 ], [ 20.786133, 45.767523 ], [ 20.786133, 45.490946 ], [ 20.961914, 45.336702 ], [ 21.489258, 45.151053 ], [ 21.445312, 45.026950 ], [ 21.357422, 44.995883 ], [ 21.533203, 44.933696 ], [ 21.533203, 44.871443 ], [ 21.357422, 44.871443 ], [ 21.401367, 44.777936 ], [ 21.577148, 44.777936 ], [ 21.665039, 44.684277 ], [ 22.016602, 44.653024 ], [ 22.104492, 44.496505 ], [ 22.192383, 44.496505 ], [ 22.412109, 44.746733 ], [ 22.763672, 44.590467 ], [ 22.719727, 44.527843 ], [ 22.543945, 44.559163 ], [ 22.543945, 44.496505 ], [ 22.456055, 44.465151 ], [ 22.543945, 44.339565 ], [ 22.675781, 44.308127 ], [ 22.587891, 44.056012 ], [ 22.456055, 44.024422 ], [ 22.368164, 43.929550 ], [ 22.368164, 43.739352 ], [ 22.500000, 43.580391 ], [ 22.500000, 43.484812 ], [ 22.719727, 43.389082 ], [ 22.895508, 43.197167 ], [ 22.983398, 43.197167 ], [ 22.983398, 43.133061 ], [ 22.719727, 42.875964 ], [ 22.500000, 42.875964 ], [ 22.412109, 42.811522 ], [ 22.500000, 42.747012 ], [ 22.412109, 42.585444 ], [ 22.543945, 42.520700 ], [ 22.543945, 42.455888 ], [ 22.456055, 42.326062 ], [ 21.928711, 42.326062 ], [ 21.708984, 42.228517 ], [ 21.577148, 42.228517 ], [ 21.577148, 42.261049 ], [ 21.533203, 42.358544 ], [ 21.621094, 42.391009 ], [ 21.752930, 42.682435 ], [ 21.401367, 42.747012 ], [ 21.401367, 42.843751 ], [ 21.225586, 42.908160 ], [ 21.225586, 43.004647 ], [ 21.181641, 42.972502 ], [ 21.093750, 43.100983 ], [ 20.830078, 43.165123 ], [ 20.830078, 43.229195 ], [ 20.742188, 43.261206 ], [ 20.610352, 43.197167 ], [ 20.654297, 43.036776 ], [ 20.478516, 42.972502 ], [ 20.478516, 42.843751 ], [ 20.346680, 42.811522 ], [ 20.346680, 42.908160 ], [ 19.907227, 43.100983 ], [ 19.775391, 43.100983 ], [ 19.731445, 43.165123 ], [ 19.599609, 43.165123 ], [ 19.379883, 43.389082 ], [ 19.160156, 43.484812 ], [ 19.204102, 43.548548 ], [ 19.335938, 43.612217 ], [ 19.423828, 43.548548 ], [ 19.511719, 43.580391 ], [ 19.467773, 43.771094 ], [ 19.248047, 43.992815 ], [ 19.291992, 44.024422 ], [ 19.379883, 43.961191 ], [ 19.511719, 43.961191 ], [ 19.599609, 43.992815 ], [ 19.599609, 44.056012 ], [ 19.335938, 44.213710 ], [ 19.335938, 44.276671 ], [ 19.160156, 44.276671 ], [ 19.116211, 44.339565 ], [ 19.116211, 44.527843 ], [ 19.335938, 44.715514 ], [ 19.379883, 44.902578 ], [ 19.160156, 44.933696 ], [ 19.028320, 44.871443 ], [ 18.984375, 44.902578 ], [ 19.116211, 44.933696 ], [ 19.116211, 45.026950 ], [ 19.028320, 45.151053 ], [ 19.160156, 45.151053 ], [ 19.160156, 45.213004 ], [ 19.204102, 45.151053 ], [ 19.423828, 45.213004 ], [ 18.984375, 45.367584 ], [ 18.984375, 45.460131 ], [ 19.116211, 45.521744 ], [ 18.896484, 45.583290 ], [ 18.984375, 45.675482 ], [ 18.852539, 45.798170 ], [ 18.896484, 45.890008 ], [ 18.896484, 45.920587 ], [ 18.984375, 45.920587 ], [ 19.072266, 46.012224 ], [ 19.291992, 45.981695 ], [ 19.511719, 46.103709 ], [ 19.511719, 46.164614 ], [ 20.126953, 46.164614 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Montenegro", "sov_a3": "MNE", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Montenegro", "adm0_a3": "MNE", "geou_dif": 0, "geounit": "Montenegro", "gu_a3": "MNE", "su_dif": 0, "subunit": "Montenegro", "su_a3": "MNE", "brk_diff": 0, "name": "Montenegro", "name_long": "Montenegro", "brk_a3": "MNE", "brk_name": "Montenegro", "abbrev": "Mont.", "postal": "ME", "formal_en": "Montenegro", "name_sort": "Montenegro", "mapcolor7": 4, "mapcolor8": 1, "mapcolor9": 4, "mapcolor13": 5, "pop_est": 672180, "gdp_md_est": 6816, "pop_year": -99, "lastcensus": 2011, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "ME", "iso_a3": "MNE", "iso_n3": "499", "un_a3": "499", "wb_a2": "ME", "wb_a3": "MNE", "woe_id": -99, "adm0_a3_is": "MNE", "adm0_a3_us": "MNE", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 10, "long_len": 10, "abbrev_len": 5, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.204102, 43.548548 ], [ 19.204102, 43.452919 ], [ 19.379883, 43.389082 ], [ 19.599609, 43.165123 ], [ 19.731445, 43.165123 ], [ 19.819336, 43.100983 ], [ 19.907227, 43.100983 ], [ 20.346680, 42.875964 ], [ 20.346680, 42.811522 ], [ 20.214844, 42.811522 ], [ 20.170898, 42.747012 ], [ 20.039062, 42.747012 ], [ 20.083008, 42.650122 ], [ 20.083008, 42.553080 ], [ 19.819336, 42.455888 ], [ 19.687500, 42.650122 ], [ 19.291992, 42.195969 ], [ 19.379883, 42.098222 ], [ 19.379883, 41.836828 ], [ 19.160156, 41.934977 ], [ 19.072266, 42.098222 ], [ 18.896484, 42.293564 ], [ 18.764648, 42.261049 ], [ 18.676758, 42.391009 ], [ 18.588867, 42.391009 ], [ 18.544922, 42.423457 ], [ 18.720703, 42.391009 ], [ 18.676758, 42.488302 ], [ 18.500977, 42.455888 ], [ 18.500977, 42.423457 ], [ 18.457031, 42.553080 ], [ 18.500977, 42.553080 ], [ 18.544922, 42.682435 ], [ 18.457031, 42.811522 ], [ 18.457031, 43.004647 ], [ 18.632812, 43.004647 ], [ 18.676758, 43.229195 ], [ 18.808594, 43.357138 ], [ 18.940430, 43.357138 ], [ 18.984375, 43.261206 ], [ 19.072266, 43.293200 ], [ 18.896484, 43.484812 ], [ 18.984375, 43.548548 ], [ 19.072266, 43.516689 ], [ 19.204102, 43.548548 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Kosovo", "sov_a3": "KOS", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Kosovo", "adm0_a3": "KOS", "geou_dif": 0, "geounit": "Kosovo", "gu_a3": "KOS", "su_dif": 0, "subunit": "Kosovo", "su_a3": "KOS", "brk_diff": 1, "name": "Kosovo", "name_long": "Kosovo", "brk_a3": "B57", "brk_name": "Kosovo", "abbrev": "Kos.", "postal": "KO", "formal_en": "Republic of Kosovo", "note_brk": "Self admin.; Claimed by Serbia", "name_sort": "Kosovo", "mapcolor7": 2, "mapcolor8": 2, "mapcolor9": 3, "mapcolor13": 11, "pop_est": 1804838, "gdp_md_est": 5352, "pop_year": -99, "lastcensus": 1981, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "-99", "iso_a3": "-99", "iso_n3": "-99", "un_a3": "-099", "wb_a2": "KV", "wb_a3": "KSV", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "KOS", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.742188, 43.261206 ], [ 20.830078, 43.229195 ], [ 20.830078, 43.165123 ], [ 21.093750, 43.100983 ], [ 21.181641, 42.972502 ], [ 21.225586, 43.004647 ], [ 21.225586, 42.908160 ], [ 21.401367, 42.843751 ], [ 21.401367, 42.747012 ], [ 21.752930, 42.682435 ], [ 21.621094, 42.391009 ], [ 21.533203, 42.358544 ], [ 21.577148, 42.261049 ], [ 21.533203, 42.228517 ], [ 21.445312, 42.228517 ], [ 21.445312, 42.261049 ], [ 21.401367, 42.228517 ], [ 21.313477, 42.098222 ], [ 21.225586, 42.098222 ], [ 21.093750, 42.195969 ], [ 21.005859, 42.130821 ], [ 20.786133, 42.098222 ], [ 20.742188, 41.869561 ], [ 20.566406, 41.869561 ], [ 20.610352, 42.000325 ], [ 20.478516, 42.261049 ], [ 20.214844, 42.326062 ], [ 20.214844, 42.391009 ], [ 20.170898, 42.423457 ], [ 20.170898, 42.488302 ], [ 20.083008, 42.553080 ], [ 20.083008, 42.682435 ], [ 20.039062, 42.779275 ], [ 20.170898, 42.747012 ], [ 20.214844, 42.811522 ], [ 20.346680, 42.811522 ], [ 20.478516, 42.843751 ], [ 20.478516, 42.972502 ], [ 20.654297, 43.036776 ], [ 20.610352, 43.197167 ], [ 20.742188, 43.261206 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Kosovo", "sov_a3": "KOS", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Kosovo", "adm0_a3": "KOS", "geou_dif": 0, "geounit": "Kosovo", "gu_a3": "KOS", "su_dif": 0, "subunit": "Kosovo", "su_a3": "KOS", "brk_diff": 1, "name": "Kosovo", "name_long": "Kosovo", "brk_a3": "B57", "brk_name": "Kosovo", "abbrev": "Kos.", "postal": "KO", "formal_en": "Republic of Kosovo", "note_brk": "Self admin.; Claimed by Serbia", "name_sort": "Kosovo", "mapcolor7": 2, "mapcolor8": 2, "mapcolor9": 3, "mapcolor13": 11, "pop_est": 1804838, "gdp_md_est": 5352, "pop_year": -99, "lastcensus": 1981, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "-99", "iso_a3": "-99", "iso_n3": "-99", "un_a3": "-099", "wb_a2": "KV", "wb_a3": "KSV", "woe_id": -99, "adm0_a3_is": "SRB", "adm0_a3_us": "KOS", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 6, "long_len": 6, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 20.786133, 43.261206 ], [ 20.874023, 43.229195 ], [ 20.830078, 43.165123 ], [ 21.093750, 43.100983 ], [ 21.269531, 42.875964 ], [ 21.401367, 42.843751 ], [ 21.357422, 42.747012 ], [ 21.752930, 42.650122 ], [ 21.621094, 42.391009 ], [ 21.533203, 42.326062 ], [ 21.577148, 42.261049 ], [ 21.357422, 42.228517 ], [ 21.313477, 42.098222 ], [ 21.093750, 42.195969 ], [ 20.786133, 42.098222 ], [ 20.698242, 41.836828 ], [ 20.566406, 41.869561 ], [ 20.610352, 41.967659 ], [ 20.522461, 42.195969 ], [ 20.346680, 42.326062 ], [ 20.258789, 42.326062 ], [ 20.083008, 42.553080 ], [ 20.083008, 42.650122 ], [ 20.039062, 42.747012 ], [ 20.170898, 42.747012 ], [ 20.214844, 42.811522 ], [ 20.346680, 42.811522 ], [ 20.478516, 42.843751 ], [ 20.478516, 42.940339 ], [ 20.654297, 43.036776 ], [ 20.610352, 43.197167 ], [ 20.786133, 43.261206 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Macedonia", "sov_a3": "MKD", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Macedonia", "adm0_a3": "MKD", "geou_dif": 0, "geounit": "Macedonia", "gu_a3": "MKD", "su_dif": 0, "subunit": "Macedonia", "su_a3": "MKD", "brk_diff": 0, "name": "Macedonia", "name_long": "Macedonia", "brk_a3": "MKD", "brk_name": "Macedonia", "abbrev": "Mkd.", "postal": "MK", "formal_en": "Former Yugoslav Republic of Macedonia", "name_sort": "Macedonia, FYR", "mapcolor7": 5, "mapcolor8": 3, "mapcolor9": 7, "mapcolor13": 3, "pop_est": 2066718, "gdp_md_est": 18780, "pop_year": -99, "lastcensus": 2010, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "MK", "iso_a3": "MKD", "iso_n3": "807", "un_a3": "807", "wb_a2": "MK", "wb_a3": "MKD", "woe_id": -99, "adm0_a3_is": "MKD", "adm0_a3_us": "MKD", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 9, "long_len": 9, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 22.324219, 42.326062 ], [ 22.500000, 42.195969 ], [ 22.500000, 42.130821 ], [ 22.719727, 42.032974 ], [ 22.851562, 42.032974 ], [ 22.895508, 41.836828 ], [ 23.027344, 41.738528 ], [ 22.939453, 41.640078 ], [ 22.939453, 41.343825 ], [ 22.763672, 41.343825 ], [ 22.719727, 41.145570 ], [ 22.016602, 41.145570 ], [ 21.665039, 40.880295 ], [ 21.401367, 40.913513 ], [ 21.313477, 40.847060 ], [ 20.961914, 40.847060 ], [ 20.917969, 40.913513 ], [ 20.698242, 40.913513 ], [ 20.654297, 41.079351 ], [ 20.566406, 41.079351 ], [ 20.566406, 41.178654 ], [ 20.478516, 41.244772 ], [ 20.522461, 41.442726 ], [ 20.434570, 41.541478 ], [ 20.522461, 41.574361 ], [ 20.478516, 41.738528 ], [ 20.566406, 41.869561 ], [ 20.742188, 41.869561 ], [ 20.786133, 42.098222 ], [ 21.005859, 42.130821 ], [ 21.093750, 42.195969 ], [ 21.225586, 42.098222 ], [ 21.313477, 42.098222 ], [ 21.401367, 42.228517 ], [ 21.445312, 42.261049 ], [ 21.445312, 42.228517 ], [ 21.533203, 42.228517 ], [ 21.577148, 42.261049 ], [ 21.577148, 42.228517 ], [ 21.708984, 42.228517 ], [ 21.928711, 42.326062 ], [ 22.324219, 42.326062 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Macedonia", "sov_a3": "MKD", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Macedonia", "adm0_a3": "MKD", "geou_dif": 0, "geounit": "Macedonia", "gu_a3": "MKD", "su_dif": 0, "subunit": "Macedonia", "su_a3": "MKD", "brk_diff": 0, "name": "Macedonia", "name_long": "Macedonia", "brk_a3": "MKD", "brk_name": "Macedonia", "abbrev": "Mkd.", "postal": "MK", "formal_en": "Former Yugoslav Republic of Macedonia", "name_sort": "Macedonia, FYR", "mapcolor7": 5, "mapcolor8": 3, "mapcolor9": 7, "mapcolor13": 3, "pop_est": 2066718, "gdp_md_est": 18780, "pop_year": -99, "lastcensus": 2010, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "MK", "iso_a3": "MKD", "iso_n3": "807", "un_a3": "807", "wb_a2": "MK", "wb_a3": "MKD", "woe_id": -99, "adm0_a3_is": "MKD", "adm0_a3_us": "MKD", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 9, "long_len": 9, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 22.280273, 42.358544 ], [ 22.324219, 42.326062 ], [ 22.543945, 42.130821 ], [ 22.851562, 42.000325 ], [ 23.027344, 41.705729 ], [ 22.939453, 41.607228 ], [ 22.939453, 41.343825 ], [ 22.763672, 41.310824 ], [ 22.719727, 41.145570 ], [ 22.631836, 41.178654 ], [ 22.456055, 41.112469 ], [ 22.060547, 41.145570 ], [ 21.928711, 41.112469 ], [ 21.752930, 40.913513 ], [ 21.577148, 40.880295 ], [ 21.401367, 40.913513 ], [ 20.961914, 40.847060 ], [ 20.917969, 40.913513 ], [ 20.698242, 40.913513 ], [ 20.478516, 41.244772 ], [ 20.522461, 41.409776 ], [ 20.434570, 41.508577 ], [ 20.522461, 41.574361 ], [ 20.478516, 41.738528 ], [ 20.566406, 41.869561 ], [ 20.698242, 41.836828 ], [ 20.786133, 42.098222 ], [ 21.093750, 42.195969 ], [ 21.313477, 42.098222 ], [ 21.357422, 42.228517 ], [ 21.577148, 42.261049 ], [ 21.665039, 42.228517 ], [ 21.928711, 42.326062 ], [ 22.104492, 42.293564 ], [ 22.280273, 42.358544 ] ] ] } } , -{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Albania", "sov_a3": "ALB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Albania", "adm0_a3": "ALB", "geou_dif": 0, "geounit": "Albania", "gu_a3": "ALB", "su_dif": 0, "subunit": "Albania", "su_a3": "ALB", "brk_diff": 0, "name": "Albania", "name_long": "Albania", "brk_a3": "ALB", "brk_name": "Albania", "abbrev": "Alb.", "postal": "AL", "formal_en": "Republic of Albania", "name_sort": "Albania", "mapcolor7": 1, "mapcolor8": 4, "mapcolor9": 1, "mapcolor13": 6, "pop_est": 3639453, "gdp_md_est": 21810, "pop_year": -99, "lastcensus": 2001, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "AL", "iso_a3": "ALB", "iso_n3": "008", "un_a3": "008", "wb_a2": "AL", "wb_a3": "ALB", "woe_id": -99, "adm0_a3_is": "ALB", "adm0_a3_us": "ALB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.731445, 42.650122 ], [ 19.731445, 42.488302 ], [ 19.819336, 42.455888 ], [ 20.083008, 42.553080 ], [ 20.170898, 42.488302 ], [ 20.170898, 42.423457 ], [ 20.214844, 42.391009 ], [ 20.214844, 42.326062 ], [ 20.478516, 42.261049 ], [ 20.610352, 42.000325 ], [ 20.566406, 41.869561 ], [ 20.478516, 41.738528 ], [ 20.522461, 41.574361 ], [ 20.434570, 41.541478 ], [ 20.522461, 41.442726 ], [ 20.478516, 41.244772 ], [ 20.566406, 41.178654 ], [ 20.566406, 41.079351 ], [ 20.654297, 41.079351 ], [ 20.698242, 40.913513 ], [ 20.917969, 40.913513 ], [ 20.961914, 40.847060 ], [ 21.049805, 40.613952 ], [ 20.917969, 40.446947 ], [ 20.786133, 40.446947 ], [ 20.654297, 40.078071 ], [ 20.434570, 40.078071 ], [ 20.390625, 39.977120 ], [ 20.302734, 39.977120 ], [ 20.390625, 39.774769 ], [ 20.258789, 39.808536 ], [ 20.302734, 39.707187 ], [ 20.214844, 39.639538 ], [ 19.995117, 39.707187 ], [ 19.995117, 39.876019 ], [ 19.907227, 39.943436 ], [ 19.863281, 40.044438 ], [ 19.775391, 40.044438 ], [ 19.819336, 40.078071 ], [ 19.511719, 40.178873 ], [ 19.379883, 40.279526 ], [ 19.291992, 40.413496 ], [ 19.335938, 40.446947 ], [ 19.467773, 40.346544 ], [ 19.467773, 40.480381 ], [ 19.379883, 40.513799 ], [ 19.467773, 40.513799 ], [ 19.467773, 40.547200 ], [ 19.379883, 40.580585 ], [ 19.291992, 40.647304 ], [ 19.291992, 40.680638 ], [ 19.379883, 40.713956 ], [ 19.423828, 40.913513 ], [ 19.423828, 40.880295 ], [ 19.511719, 40.913513 ], [ 19.511719, 40.979898 ], [ 19.467773, 40.946714 ], [ 19.423828, 41.145570 ], [ 19.511719, 41.277806 ], [ 19.379883, 41.409776 ], [ 19.511719, 41.475660 ], [ 19.511719, 41.541478 ], [ 19.423828, 41.574361 ], [ 19.599609, 41.607228 ], [ 19.599609, 41.804078 ], [ 19.467773, 41.869561 ], [ 19.379883, 41.836828 ], [ 19.379883, 42.098222 ], [ 19.291992, 42.228517 ], [ 19.599609, 42.520700 ], [ 19.643555, 42.650122 ], [ 19.731445, 42.650122 ] ] ] } } +{ "type": "Feature", "properties": { "scalerank": 0, "featurecla": "Admin-0 country", "labelrank": 6, "sovereignt": "Albania", "sov_a3": "ALB", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Albania", "adm0_a3": "ALB", "geou_dif": 0, "geounit": "Albania", "gu_a3": "ALB", "su_dif": 0, "subunit": "Albania", "su_a3": "ALB", "brk_diff": 0, "name": "Albania", "name_long": "Albania", "brk_a3": "ALB", "brk_name": "Albania", "abbrev": "Alb.", "postal": "AL", "formal_en": "Republic of Albania", "name_sort": "Albania", "mapcolor7": 1, "mapcolor8": 4, "mapcolor9": 1, "mapcolor13": 6, "pop_est": 3639453, "gdp_md_est": 21810, "pop_year": -99, "lastcensus": 2001, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "AL", "iso_a3": "ALB", "iso_n3": "008", "un_a3": "008", "wb_a2": "AL", "wb_a3": "ALB", "woe_id": -99, "adm0_a3_is": "ALB", "adm0_a3_us": "ALB", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Europe", "region_un": "Europe", "subregion": "Southern Europe", "region_wb": "Europe & Central Asia", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 19.379883, 40.547200 ], [ 19.291992, 40.647304 ], [ 19.423828, 40.813809 ], [ 19.379883, 40.913513 ], [ 19.423828, 40.946714 ], [ 19.423828, 40.880295 ], [ 19.511719, 40.913513 ], [ 19.511719, 41.013066 ], [ 19.467773, 40.946714 ], [ 19.423828, 41.145570 ], [ 19.511719, 41.244772 ], [ 19.379883, 41.409776 ], [ 19.511719, 41.508577 ], [ 19.423828, 41.574361 ], [ 19.599609, 41.607228 ], [ 19.555664, 41.672912 ], [ 19.599609, 41.804078 ], [ 19.379883, 41.836828 ], [ 19.379883, 42.098222 ], [ 19.291992, 42.195969 ], [ 19.687500, 42.650122 ], [ 19.819336, 42.455888 ], [ 20.083008, 42.553080 ], [ 20.258789, 42.326062 ], [ 20.346680, 42.326062 ], [ 20.522461, 42.195969 ], [ 20.610352, 41.967659 ], [ 20.566406, 41.869561 ], [ 20.478516, 41.738528 ], [ 20.522461, 41.574361 ], [ 20.434570, 41.508577 ], [ 20.522461, 41.409776 ], [ 20.478516, 41.244772 ], [ 20.698242, 40.913513 ], [ 20.917969, 40.913513 ], [ 20.961914, 40.847060 ], [ 20.961914, 40.780541 ], [ 21.049805, 40.647304 ], [ 20.917969, 40.480381 ], [ 20.786133, 40.413496 ], [ 20.654297, 40.078071 ], [ 20.302734, 39.977120 ], [ 20.390625, 39.808536 ], [ 20.258789, 39.808536 ], [ 20.302734, 39.707187 ], [ 20.170898, 39.639538 ], [ 19.995117, 39.673370 ], [ 19.995117, 39.876019 ], [ 19.907227, 39.909736 ], [ 19.863281, 40.044438 ], [ 19.467773, 40.212441 ], [ 19.291992, 40.413496 ], [ 19.335938, 40.446947 ], [ 19.423828, 40.346544 ], [ 19.467773, 40.346544 ], [ 19.467773, 40.446947 ], [ 19.379883, 40.547200 ] ], [ [ 19.379883, 40.547200 ], [ 19.423828, 40.513799 ], [ 19.467773, 40.547200 ], [ 19.379883, 40.547200 ] ] ] } } ] } ] } ] } diff --git a/tile.cpp b/tile.cpp index 7674d7a8..2cff10b8 100644 --- a/tile.cpp +++ b/tile.cpp @@ -514,7 +514,6 @@ struct partial { std::vector values = std::vector(); std::vector full_keys = std::vector(); std::vector full_values = std::vector(); - std::vector arc_polygon = std::vector(); long long layer = 0; long long original_seq = 0; unsigned long long index = 0; @@ -631,9 +630,6 @@ double simplify_partial(partial *p, drawvec const &shared_nodes, node *shared_no } bool already_marked = false; - if (additional[A_DETECT_SHARED_BORDERS] && t == VT_POLYGON) { - already_marked = true; - } if (!already_marked) { if (p->coalesced && t == VT_POLYGON) { @@ -748,575 +744,6 @@ int manage_gap(unsigned long long index, unsigned long long *previndex, double s return 0; } -// Does not fix up moveto/lineto -static drawvec reverse_subring(drawvec const &dv) { - drawvec out; - - for (size_t i = dv.size(); i > 0; i--) { - out.push_back(dv[i - 1]); - } - - return out; -} - -struct edge { - unsigned x1 = 0; - unsigned y1 = 0; - unsigned x2 = 0; - unsigned y2 = 0; - unsigned ring = 0; - - edge(unsigned _x1, unsigned _y1, unsigned _x2, unsigned _y2, unsigned _ring) { - x1 = _x1; - y1 = _y1; - x2 = _x2; - y2 = _y2; - ring = _ring; - } - - bool operator<(const edge &s) const { - long long cmp = (long long) y1 - s.y1; - if (cmp == 0) { - cmp = (long long) x1 - s.x1; - } - if (cmp == 0) { - cmp = (long long) y2 - s.y2; - } - if (cmp == 0) { - cmp = (long long) x2 - s.x2; - } - return cmp < 0; - } -}; - -struct edgecmp_ring { - bool operator()(const edge &a, const edge &b) { - long long cmp = (long long) a.y1 - b.y1; - if (cmp == 0) { - cmp = (long long) a.x1 - b.x1; - } - if (cmp == 0) { - cmp = (long long) a.y2 - b.y2; - } - if (cmp == 0) { - cmp = (long long) a.x2 - b.x2; - } - if (cmp == 0) { - cmp = (long long) a.ring - b.ring; - } - return cmp < 0; - } -} edgecmp_ring; - -bool edges_same(std::pair::iterator, std::vector::iterator> e1, std::pair::iterator, std::vector::iterator> e2) { - if ((e2.second - e2.first) != (e1.second - e1.first)) { - return false; - } - - while (e1.first != e1.second) { - if (e1.first->ring != e2.first->ring) { - return false; - } - - ++e1.first; - ++e2.first; - } - - return true; -} - -bool find_common_edges(std::vector &partials, int z, int line_detail, double simplification, int maxzoom, double merge_fraction) { - size_t merge_count = ceil((1 - merge_fraction) * partials.size()); - - for (size_t i = 0; i < partials.size(); i++) { - if (partials[i].t == VT_POLYGON) { - for (size_t j = 0; j < partials[i].geoms.size(); j++) { - drawvec &g = partials[i].geoms[j]; - drawvec out; - - for (size_t k = 0; k < g.size(); k++) { - if (g[k].op == VT_LINETO && k > 0 && g[k - 1] == g[k]) { - ; - } else { - out.push_back(g[k]); - } - } - - partials[i].geoms[j] = out; - } - } - } - - // Construct a mapping from all polygon edges to the set of rings - // that each edge appears in. (The ring number is across all polygons; - // we don't need to look it back up, just to tell where it changes.) - - std::vector edges; - size_t ring = 0; - for (size_t i = 0; i < partials.size(); i++) { - if (partials[i].t == VT_POLYGON) { - for (size_t j = 0; j < partials[i].geoms.size(); j++) { - for (size_t k = 0; k + 1 < partials[i].geoms[j].size(); k++) { - if (partials[i].geoms[j][k].op == VT_MOVETO) { - ring++; - } - - if (partials[i].geoms[j][k + 1].op == VT_LINETO) { - drawvec dv; - if (partials[i].geoms[j][k] < partials[i].geoms[j][k + 1]) { - dv.push_back(partials[i].geoms[j][k]); - dv.push_back(partials[i].geoms[j][k + 1]); - } else { - dv.push_back(partials[i].geoms[j][k + 1]); - dv.push_back(partials[i].geoms[j][k]); - } - - edges.push_back(edge(dv[0].x, dv[0].y, dv[1].x, dv[1].y, ring)); - } - } - } - } - } - - std::sort(edges.begin(), edges.end(), edgecmp_ring); - std::set necessaries; - - // Now mark all the points where the set of rings using the edge on one side - // is not the same as the set of rings using the edge on the other side. - - for (size_t i = 0; i < partials.size(); i++) { - if (partials[i].t == VT_POLYGON) { - for (size_t j = 0; j < partials[i].geoms.size(); j++) { - drawvec &g = partials[i].geoms[j]; - - for (size_t k = 0; k < g.size(); k++) { - g[k].necessary = 0; - } - - for (size_t a = 0; a < g.size(); a++) { - if (g[a].op == VT_MOVETO) { - size_t b; - - for (b = a + 1; b < g.size(); b++) { - if (g[b].op != VT_LINETO) { - break; - } - } - - // -1 because of duplication at the end - size_t s = b - a - 1; - - if (s > 0) { - drawvec left; - if (g[a + (s - 1) % s] < g[a]) { - left.push_back(g[a + (s - 1) % s]); - left.push_back(g[a]); - } else { - left.push_back(g[a]); - left.push_back(g[a + (s - 1) % s]); - } - if (left[1] < left[0]) { - fprintf(stderr, "left misordered\n"); - } - std::pair::iterator, std::vector::iterator> e1 = std::equal_range(edges.begin(), edges.end(), edge(left[0].x, left[0].y, left[1].x, left[1].y, 0)); - - for (size_t k = 0; k < s; k++) { - drawvec right; - - if (g[a + k] < g[a + k + 1]) { - right.push_back(g[a + k]); - right.push_back(g[a + k + 1]); - } else { - right.push_back(g[a + k + 1]); - right.push_back(g[a + k]); - } - - std::pair::iterator, std::vector::iterator> e2 = std::equal_range(edges.begin(), edges.end(), edge(right[0].x, right[0].y, right[1].x, right[1].y, 0)); - - if (right[1] < right[0]) { - fprintf(stderr, "left misordered\n"); - } - - if (e1.first == e1.second || e2.first == e2.second) { - fprintf(stderr, "Internal error: polygon edge lookup failed for %lld,%lld to %lld,%lld or %lld,%lld to %lld,%lld\n", left[0].x, left[0].y, left[1].x, left[1].y, right[0].x, right[0].y, right[1].x, right[1].y); - exit(EXIT_IMPOSSIBLE); - } - - if (!edges_same(e1, e2)) { - g[a + k].necessary = 1; - necessaries.insert(g[a + k]); - } - - e1 = e2; - } - } - - a = b - 1; - } - } - } - } - } - - edges.clear(); - std::map arcs; - std::multimap merge_candidates; // from arc to partial - - // Roll rings that include a necessary point around so they start at one - - for (size_t i = 0; i < partials.size(); i++) { - if (partials[i].t == VT_POLYGON) { - for (size_t j = 0; j < partials[i].geoms.size(); j++) { - drawvec &g = partials[i].geoms[j]; - - for (size_t k = 0; k < g.size(); k++) { - if (necessaries.count(g[k]) != 0) { - g[k].necessary = 1; - } - } - - for (size_t k = 0; k < g.size(); k++) { - if (g[k].op == VT_MOVETO) { - ssize_t necessary = -1; - ssize_t lowest = k; - size_t l; - for (l = k + 1; l < g.size(); l++) { - if (g[l].op != VT_LINETO) { - break; - } - - if (g[l].necessary) { - necessary = l; - } - if (g[l] < g[lowest]) { - lowest = l; - } - } - - if (necessary < 0) { - necessary = lowest; - // Add a necessary marker if there was none in the ring, - // so the arc code below can find it. - g[lowest].necessary = 1; - } - - { - drawvec tmp; - - // l - 1 because the endpoint is duplicated - for (size_t m = necessary; m < l - 1; m++) { - tmp.push_back(g[m]); - } - for (ssize_t m = k; m < necessary; m++) { - tmp.push_back(g[m]); - } - - // replace the endpoint - tmp.push_back(g[necessary]); - - if (tmp.size() != l - k) { - fprintf(stderr, "internal error shifting ring\n"); - exit(EXIT_IMPOSSIBLE); - } - - for (size_t m = 0; m < tmp.size(); m++) { - if (m == 0) { - tmp[m].op = VT_MOVETO; - } else { - tmp[m].op = VT_LINETO; - } - - g[k + m] = tmp[m]; - } - } - - // Now peel off each set of segments from one necessary point to the next - // into an "arc" as in TopoJSON - - for (size_t m = k; m < l; m++) { - if (!g[m].necessary) { - fprintf(stderr, "internal error in arc building\n"); - exit(EXIT_IMPOSSIBLE); - } - - drawvec arc; - size_t n; - for (n = m; n < l; n++) { - arc.push_back(g[n]); - if (n > m && g[n].necessary) { - break; - } - } - - auto f = arcs.find(arc); - if (f == arcs.end()) { - drawvec arc2 = reverse_subring(arc); - - auto f2 = arcs.find(arc2); - if (f2 == arcs.end()) { - // Add new arc - size_t added = arcs.size() + 1; - arcs.insert(std::pair(arc, added)); - partials[i].arc_polygon.push_back(added); - merge_candidates.insert(std::pair(added, i)); - } else { - partials[i].arc_polygon.push_back(-(ssize_t) f2->second); - merge_candidates.insert(std::pair(-(ssize_t) f2->second, i)); - } - } else { - partials[i].arc_polygon.push_back(f->second); - merge_candidates.insert(std::pair(f->second, i)); - } - - m = n - 1; - } - - partials[i].arc_polygon.push_back(0); - - k = l - 1; - } - } - } - } - } - - // Simplify each arc - - std::vector simplified_arcs; - - for (auto ai = arcs.begin(); ai != arcs.end(); ++ai) { - if (simplified_arcs.size() < ai->second + 1) { - simplified_arcs.resize(ai->second + 1); - } - - drawvec dv = ai->first; - for (size_t i = 0; i < dv.size(); i++) { - if (i == 0) { - dv[i].op = VT_MOVETO; - } else { - dv[i].op = VT_LINETO; - } - } - if (!(prevent[P_SIMPLIFY] || (z == maxzoom && prevent[P_SIMPLIFY_LOW]) || (z < maxzoom && additional[A_GRID_LOW_ZOOMS]))) { - // tx and ty are 0 here because we aren't trying to do anything with the shared_nodes_map - simplified_arcs[ai->second] = simplify_lines(dv, z, 0, 0, line_detail, !(prevent[P_CLIPPING] || prevent[P_DUPLICATION]), simplification, 4, drawvec(), NULL, 0); - } else { - simplified_arcs[ai->second] = dv; - } - } - - // If necessary, merge some adjacent polygons into some other polygons - - struct merge_order { - ssize_t edge = 0; - unsigned long long gap = 0; - size_t p1 = 0; - size_t p2 = 0; - - bool operator<(const merge_order &m) const { - return gap < m.gap; - } - }; - std::vector order; - - for (ssize_t i = 0; i < (ssize_t) simplified_arcs.size(); i++) { - auto r1 = merge_candidates.equal_range(i); - for (auto r1i = r1.first; r1i != r1.second; ++r1i) { - auto r2 = merge_candidates.equal_range(-i); - for (auto r2i = r2.first; r2i != r2.second; ++r2i) { - if (r1i->second != r2i->second) { - merge_order mo; - mo.edge = i; - if (partials[r1i->second].index > partials[r2i->second].index) { - mo.gap = partials[r1i->second].index - partials[r2i->second].index; - } else { - mo.gap = partials[r2i->second].index - partials[r1i->second].index; - } - mo.p1 = r1i->second; - mo.p2 = r2i->second; - order.push_back(mo); - } - } - } - } - std::sort(order.begin(), order.end()); - - size_t merged = 0; - for (size_t o = 0; o < order.size(); o++) { - if (merged >= merge_count) { - break; - } - - size_t i = order[o].p1; - while (partials[i].renamed >= 0) { - i = partials[i].renamed; - } - size_t i2 = order[o].p2; - while (partials[i2].renamed >= 0) { - i2 = partials[i2].renamed; - } - - for (size_t j = 0; j < partials[i].arc_polygon.size() && merged < merge_count; j++) { - if (partials[i].arc_polygon[j] == order[o].edge) { - { - // XXX snap links - if (partials[order[o].p2].arc_polygon.size() > 0) { - // This has to merge the ring that contains the anti-arc to this arc - // into the current ring, and then add whatever other rings were in - // that feature on to the end. - // - // This can't be good for keeping parent-child relationships among - // the rings in order, but Wagyu should sort that out later - - std::vector additions; - std::vector &here = partials[i].arc_polygon; - std::vector &other = partials[i2].arc_polygon; - -#if 0 - printf("seeking %zd\n", partials[i].arc_polygon[j]); - printf("before: "); - for (size_t k = 0; k < here.size(); k++) { - printf("%zd ", here[k]); - } - printf("\n"); - printf("other: "); - for (size_t k = 0; k < other.size(); k++) { - printf("%zd ", other[k]); - } - printf("\n"); -#endif - - for (size_t k = 0; k < other.size(); k++) { - size_t l; - for (l = k; l < other.size(); l++) { - if (other[l] == 0) { - break; - } - } - if (l >= other.size()) { - l--; - } - -#if 0 - for (size_t m = k; m <= l; m++) { - printf("%zd ", other[m]); - } - printf("\n"); -#endif - - size_t m; - for (m = k; m <= l; m++) { - if (other[m] == -partials[i].arc_polygon[j]) { - break; - } - } - - if (m <= l) { - // Found the shared arc - - here.erase(here.begin() + j); - - size_t off = 0; - for (size_t n = m + 1; n < l; n++) { - here.insert(here.begin() + j + off, other[n]); - off++; - } - for (size_t n = k; n < m; n++) { - here.insert(here.begin() + j + off, other[n]); - off++; - } - } else { - // Looking at some other ring - - for (size_t n = k; n <= l; n++) { - additions.push_back(other[n]); - } - } - - k = l; - } - - partials[i2].arc_polygon.clear(); - partials[i2].renamed = i; - merged++; - - for (size_t k = 0; k < additions.size(); k++) { - partials[i].arc_polygon.push_back(additions[k]); - } - -#if 0 - printf("after: "); - for (size_t k = 0; k < here.size(); k++) { - printf("%zd ", here[k]); - } - printf("\n"); -#endif - -#if 0 - for (size_t k = 0; k + 1 < here.size(); k++) { - if (here[k] != 0 && here[k + 1] != 0) { - if (simplified_arcs[here[k + 1]][0] != simplified_arcs[here[k]][simplified_arcs[here[k]].size() - 1]) { - printf("error from %zd to %zd\n", here[k], here[k + 1]); - } - } - } -#endif - } - } - } - } - } - - // Turn the arc representations of the polygons back into standard polygon geometries - - for (size_t i = 0; i < partials.size(); i++) { - if (partials[i].t == VT_POLYGON) { - partials[i].geoms.resize(0); - partials[i].geoms.push_back(drawvec()); - bool at_start = true; - draw first(-1, 0, 0); - - for (size_t j = 0; j < partials[i].arc_polygon.size(); j++) { - ssize_t p = partials[i].arc_polygon[j]; - - if (p == 0) { - if (first.op >= 0) { - partials[i].geoms[0].push_back(first); - first = draw(-1, 0, 0); - } - at_start = true; - } else if (p > 0) { - for (size_t k = 0; k + 1 < simplified_arcs[p].size(); k++) { - if (at_start) { - partials[i].geoms[0].push_back(draw(VT_MOVETO, simplified_arcs[p][k].x, simplified_arcs[p][k].y)); - first = draw(VT_LINETO, simplified_arcs[p][k].x, simplified_arcs[p][k].y); - } else { - partials[i].geoms[0].push_back(draw(VT_LINETO, simplified_arcs[p][k].x, simplified_arcs[p][k].y)); - } - at_start = 0; - } - } else { /* p < 0 */ - for (ssize_t k = simplified_arcs[-p].size() - 1; k > 0; k--) { - if (at_start) { - partials[i].geoms[0].push_back(draw(VT_MOVETO, simplified_arcs[-p][k].x, simplified_arcs[-p][k].y)); - first = draw(VT_LINETO, simplified_arcs[-p][k].x, simplified_arcs[-p][k].y); - } else { - partials[i].geoms[0].push_back(draw(VT_LINETO, simplified_arcs[-p][k].x, simplified_arcs[-p][k].y)); - } - at_start = 0; - } - } - } - } - } - - if (merged >= merge_count) { - return true; - } else { - return false; - } -} - unsigned long long choose_mingap(std::vector const &indices, double f) { unsigned long long bot = ULLONG_MAX; unsigned long long top = 0; @@ -1953,7 +1380,6 @@ void coalesce_geometry(partial &p, serial_feature &sf) { } long long write_tile(decompressor *geoms, std::atomic *geompos_in, char *stringpool, int z, const unsigned tx, const unsigned ty, const int detail, int min_detail, sqlite3 *outdb, const char *outdir, int buffer, const char *fname, compressor **geomfile, int minzoom, int maxzoom, double todo, std::atomic *along, long long alongminus, int child_shards, long long *pool_off, unsigned *initial_x, unsigned *initial_y, std::atomic *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t tiling_seg, size_t pass, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, struct json_object *filter, write_tile_args *arg, atomic_strategy *strategy, bool compressed_input, struct node *shared_nodes_map, size_t nodepos) { - double merge_fraction = 1; double mingap_fraction = 1; double minextent_fraction = 1; @@ -2332,7 +1758,7 @@ long long write_tile(decompressor *geoms, std::atomic *geompos_in, ch partials.push_back(p); unsimplified_geometry_size += sf.geometry.size() * sizeof(draw); - if (unsimplified_geometry_size > 10 * 1024 * 1024 && !additional[A_DETECT_SHARED_BORDERS]) { + if (unsimplified_geometry_size > 10 * 1024 * 1024) { // we should be safe to simplify here with P_SIMPLIFY_SHARED_NODES, since they will // have been assembled globally, although that also means that simplification // may not be very effective for reducing memory usage. @@ -2477,10 +1903,6 @@ long long write_tile(decompressor *geoms, std::atomic *geompos_in, ch first_time = false; - if (additional[A_DETECT_SHARED_BORDERS]) { - find_common_edges(partials, z, line_detail, simplification, maxzoom, merge_fraction); - } - int tasks = ceil((double) CPUS / *running); if (tasks < 1) { tasks = 1;