diff --git a/CHANGELOG.md b/CHANGELOG.md index c2f11413b..10d0ab595 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +* Take feature ordering into account when dropping points in the low zooms + # 2.24.0 +>>>>>>> main * Add --cluster-maxzoom option to limit zoom levels that receive clustering * Add `point_count_abbreviated` attribute to clustered features, for consistency with supercluster * Makefile changes to support FreeBSD diff --git a/tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json b/tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json new file mode 100644 index 000000000..8c73be9fa --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json @@ -0,0 +1,1279 @@ +{ "type": "FeatureCollection", "properties": { +"antimeridian_adjusted_bounds": "-175.220564,-41.299973,179.216647,64.150023", +"bounds": "-175.220564,-41.299973,179.216647,64.150023", +"center": "11.250000,48.378236,4", +"description": "tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json.check.mbtiles", +"format": "pbf", +"generator_options": "./tippecanoe -q -a@ -f -o tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json.check.mbtiles -yNAME -ySCALERANK -z4 --order-by SCALERANK tests/ne_110m_populated_places/in.json", +"json": "{\"vector_layers\":[{\"id\":\"in\",\"description\":\"\",\"minzoom\":0,\"maxzoom\":4,\"fields\":{\"NAME\":\"String\",\"SCALERANK\":\"Number\"}}],\"tilestats\":{\"layerCount\":1,\"layers\":[{\"layer\":\"in\",\"count\":243,\"geometry\":\"Point\",\"attributeCount\":2,\"attributes\":[{\"attribute\":\"NAME\",\"count\":243,\"type\":\"string\",\"values\":[\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]},{\"attribute\":\"SCALERANK\",\"count\":8,\"type\":\"number\",\"values\":[0,1,2,3,4,6,7,8],\"min\":0,\"max\":8}]}]}}", +"maxzoom": "4", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-ySCALERANK_-z4_--order-by_SCALERANK.json.check.mbtiles", +"strategies": "[{\"dropped_by_rate\":236},{\"dropped_by_rate\":251},{\"dropped_by_rate\":216},{\"dropped_by_rate\":146},{}]", +"type": "overlay", +"version": "2" +}, "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, "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.212891, 34.016242 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.664062, -33.431441 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.902277 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.289062, 30.069094 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.757812, 24.607069 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.457031, -33.943360 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Auckland" }, "geometry": { "type": "MultiPoint", "coordinates": [ [ 174.726562, -36.879621 ], [ -185.273438, -36.879621 ] ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.664062, -33.468108 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.209961, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.168945, 33.979809 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.091797, 4.609278 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.864715 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.810547, 6.315299 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.842773, 1.318243 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.457031, -33.906896 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.831055, -6.184246 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.770508, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.723633, 0.351560 ] } } +] } +] } +, +{ "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, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.902277 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.031055 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.757812, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.842773, 1.274309 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.152344, 46.195042 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.715820, 9.015302 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.062500, 30.675715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.209961, -21.145992 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.168945, 33.998027 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.527344, 14.626109 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.710035 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.664062, -33.449777 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.625977, -23.563987 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.891033 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.091797, 4.587376 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.109863, 51.495065 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.906738, 10.509417 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.624512, 33.596319 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.788574, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.309766 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.219726 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.709961, 17.308688 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.435059, -33.925130 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.826172, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.037109, -26.175159 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.745605, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.958045 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.495065 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.864715 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.902277 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.383789, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.050077 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.779785, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.330078, 22.492257 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.826172, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.152344, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.403320, 52.522906 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.520020, 50.429518 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.339707 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.301758, 41.310824 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.191895, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.938965, 60.174306 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.789062, 3.754634 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.864746, 1.296276 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.193848, -33.925130 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.770508, -36.844461 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.330078, 22.492257 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.864746, 1.296276 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.524902, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 127.001953, 37.561997 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.145992 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ -180.791016, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.179932, 33.988918 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.129639, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.527344, 14.615478 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.197998, 13.710035 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.274973 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.664062, -33.449777 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.625977, -23.563987 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.047119, -12.050065 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.911377, -15.781682 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.858890 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.003174, 38.899583 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.080811, 4.598327 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.396973, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.222168, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.917725, 10.498614 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.245744 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.197998, 13.710035 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.530029, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.162354, 5.834616 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.497314, -0.219726 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.709961, 17.298199 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.380615, 15.294783 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.050065 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.981934, 40.747257 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.747803, 41.828642 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.220215, -22.928042 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.613525, 33.596319 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.468262, 14.711135 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.140625, 38.719805 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.799561, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.320705 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.550381 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.510742, 14.912938 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.974121, 18.083201 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.677979, 9.535749 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.501904 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.148952 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.435059, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.815186, -1.285293 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.314941, -4.335456 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.175159 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.734619, 0.340574 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.421910 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.235352, -29.123373 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.234863, -25.710837 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.958045 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.014893, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.394775, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.256104, 30.050077 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.978845 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.395752, 33.339707 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.704834, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.183594, 32.888813 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.298828, 33.495598 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.208984, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.897950 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.789062, 3.743671 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.051270, 12.114523 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, 0.318602 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.501904 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.864715 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.894100 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.014893, 41.104191 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.617188, 55.751849 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.349996 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.921875, 52.348763 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.141357, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.403320, 52.522906 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.369629, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.520020, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.568359, 55.677584 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.083252, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.938965, 60.174306 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 16.007080, 45.798170 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.467529, 44.816916 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.323486, 54.680183 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.170654, 42.666281 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.620229 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.515869, -18.916680 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.637031 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.330078, 22.492257 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.339707 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.319076 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.283203, 25.224820 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.515610 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.200928, 28.594169 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.563477, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.371338, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.601074, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.893707 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.310824 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.802819 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.791260, 41.722131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.831055, -6.173324 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.584717, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.212801 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.073486, 30.666266 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 127.001953, 37.561997 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.981445, 14.604847 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.461426, 34.750640 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.853271, 21.033237 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 3.162456 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.469287 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.918945, 47.916342 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.302571 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.770508, -36.853252 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.194824, -9.470736 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.949951, -9.438224 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.302571 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.757080, 35.684072 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.461426, 34.750640 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.386719, 7.100893 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.140869 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.738281, -13.843414 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.179932, 33.993473 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.415161, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.274973 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.527344, 14.620794 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.985352, 39.740986 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.671236 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.339355, 29.821583 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.449777 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.214233 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.598327 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.900513, 18.474399 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.250990 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.203491, 13.710035 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.270142, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.083862, 9.936388 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.766968, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.542117 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.214233 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.008667, 38.899583 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.981934, 40.751418 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.364502, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.349243, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.981934, 40.751418 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.420166, 43.703622 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.701294, 45.417732 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.625977, -23.558952 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.397827, -34.601563 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.916870, -15.781682 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.258789, -19.041349 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.917725, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.800990 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.834616 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.715454, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.847534, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.386108, 15.300081 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.210327, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.050065 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.100880 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.649811 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.225708, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.516235, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.473755, 14.716448 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.799561, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.320705 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.550381 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.974121, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.651058 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.372197 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.273438, 6.817353 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.589355, 13.453737 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.600894 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.146118, 38.724090 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.651489, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.501904 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.334153 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.148952 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.435059, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.083740, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.314941, -4.329979 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.233032, -8.836223 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.734619, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.459229, 0.384519 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.258768 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.550381 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.114868, 13.517838 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.734619, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.783569, 3.749153 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.459229, 0.384519 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.114523 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.048706, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.897950 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.501904 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.868328 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.916382, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.141357, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.522906 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.334106, 50.833698 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.562866, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 21.000366, 52.251346 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.083252, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 16.001587, 45.798170 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.385620, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.467529, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.819336, 41.327326 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.079506 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.916503 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.054173 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.463993 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.666281 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.434326, 42.000325 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.130371, 49.610710 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.739352 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 7, "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.133688 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 7, "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.442017, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 8, "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.902277 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.750122, 59.919237 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.562866, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.170229 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.647017 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.229370, -25.705888 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.135254, -26.318037 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.201172, -26.465656 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.815186, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.318602 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.416615 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.816686 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.058594, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.360962, -3.376340 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.184246 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.242188, -11.706031 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.699341, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.318602 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.935547, 15.331870 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.066162, 9.557417 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.580200, 4.828260 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.148804, 11.593051 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.009399, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.250610, 30.050077 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.983175 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.339707 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.298828, 33.500179 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.164828 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.507812, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.183070 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.009399, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.098022, 44.433780 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.317993, 54.683359 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.564697, 53.901102 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.791260, 41.726230 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.933472, 60.177038 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.730225, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.515869, -18.916680 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.502441, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.642024 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.229789 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.977295, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.861450, 40.396764 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.948529 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.595581, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.234302 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.284438 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.791260, 41.726230 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.855835, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.165637 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.859619, 6.931880 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.899161 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.324585, 22.497332 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.200928, 28.598992 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.774414, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.701493 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.717573 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.806783 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.173324 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.783506 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.033237 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 3.167940 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.119385, 19.766704 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.601318, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.549998 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.670991 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.981445, 14.604847 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.933472, 4.882994 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.217499 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.569214, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.566351 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 2, "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.755005, 39.023451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.975586, -37.818463 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.194824, -9.465317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 0, "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.751587, 35.688533 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.750640 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 4, "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.029996 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 1, "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.765015, -36.848857 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.949951, -9.438224 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 3, "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.135412 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.915521 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.381226, 7.100893 ] } } +, +{ "type": "Feature", "properties": { "SCALERANK": 6, "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.018188, 1.340210 ] } } +] } +] } +] } diff --git a/tile.cpp b/tile.cpp index 8d824f511..135131d57 100644 --- a/tile.cpp +++ b/tile.cpp @@ -323,6 +323,14 @@ struct ordercmp { } } + if (prevent[P_INPUT_ORDER]) { + if (a.original_seq < b.original_seq) { + return true; + } else if (a.original_seq > b.original_seq) { + return false; + } // else they are equal, so continue to the index + } + if (a.index < b.index) { return true; } @@ -474,6 +482,37 @@ struct partial { long long clustered = 0; std::set need_tilestats; std::map attribute_accum_state; + + partial(serial_feature &sf, int z_, int tx_, int ty_, int line_detail_, int maxzoom_, double simplification_) { + geoms.clear(); + geoms.push_back(sf.geometry); + + layer = sf.layer; + t = sf.t; + segment = sf.segment; + original_seq = sf.seq; + keys = sf.keys; + values = sf.values; + full_keys = sf.full_keys; + full_values = sf.full_values; + id = sf.id; + has_id = sf.has_id; + index = sf.index; + label_point = sf.label_point; + extent = sf.extent; + + z = z_; + tx = tx_; + ty = ty_; + line_detail = line_detail_; + extra_detail = line_detail_; + maxzoom = maxzoom_; + simplification = simplification_; + + coalesced = false; + renamed = -1; + clustered = 0; + } }; struct partial_arg { @@ -483,6 +522,105 @@ struct partial_arg { drawvec *shared_nodes; }; +// THIS IS RIDICULOUS to have three almost-identical representations for features. FIX FIX FIX + +static mvt_value find_attribute_value(const serial_feature *c1, std::string key, const char *stringpool, long long pool_off[]) { + if (key == ORDER_BY_SIZE) { + mvt_value v; + v.type = mvt_double; + v.numeric_value.double_value = c1->extent; + return v; + } + + const std::vector &keys1 = c1->keys; + const std::vector &values1 = c1->values; + const char *stringpool1 = stringpool + pool_off[c1->segment]; + + for (size_t i = 0; i < keys1.size(); i++) { + mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL); + if (key == key1.string_value) { + return retrieve_string(values1[i], stringpool1, NULL); + } + } + + for (size_t i = 0; i < c1->full_keys.size(); i++) { + if (c1->full_keys[i] == key) { + return stringified_to_mvt_value(c1->full_values[i].type, c1->full_values[i].s.c_str()); + } + } + + mvt_value v; + v.type = mvt_null; + v.numeric_value.null_value = 0; + return v; +} + +static mvt_value find_attribute_value(const partial *c1, std::string key, const char *stringpool, long long pool_off[]) { + if (key == ORDER_BY_SIZE) { + mvt_value v; + v.type = mvt_double; + v.numeric_value.double_value = c1->extent; + return v; + } + + const std::vector &keys1 = c1->keys; + const std::vector &values1 = c1->values; + const char *stringpool1 = stringpool + pool_off[c1->segment]; + + for (size_t i = 0; i < keys1.size(); i++) { + mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL); + if (key == key1.string_value) { + return retrieve_string(values1[i], stringpool1, NULL); + } + } + + for (size_t i = 0; i < c1->full_keys.size(); i++) { + if (c1->full_keys[i] == key) { + return stringified_to_mvt_value(c1->full_values[i].type, c1->full_values[i].s.c_str()); + } + } + + mvt_value v; + v.type = mvt_null; + v.numeric_value.null_value = 0; + return v; +} + +static bool order_partials(const char *stringpool, long long pool_off[], const serial_feature &a, const partial &b) { + for (size_t i = 0; i < order_by.size(); i++) { + mvt_value v1 = coerce_double(find_attribute_value(&a, order_by[i].name, stringpool, pool_off)); + mvt_value v2 = coerce_double(find_attribute_value(&b, order_by[i].name, stringpool, pool_off)); + + if (order_by[i].descending) { + if (v2 < v1) { + return true; + } else if (v1 < v2) { + return false; + } // else they are equal, so continue to the next attribute + } else { + if (v1 < v2) { + return true; + } else if (v2 < v1) { + return false; + } // else they are equal, so continue to the next attribute + } + } + + if (prevent[P_INPUT_ORDER]) { + if (a.seq < b.original_seq) { + return true; + } else if (a.seq > b.original_seq) { + return false; + } // else they are equal, so continue to the index + } + + if (a.index < b.index) { + return true; + } + + return false; // greater than or equal +} + drawvec revive_polygon(drawvec &geom, double area, int z, int detail) { // From area in world coordinates to area in tile coordinates long long divisor = 1LL << (32 - detail - z); @@ -2066,6 +2204,15 @@ long long write_tile(decompressor *geoms, std::atomic *geompos_in, ch if (sf.dropped) { if (find_partial(partials, sf, which_partial, layer_unmaps, LLONG_MAX)) { + // would it have been better to drop this other feature instead? + + if (order_by.size() > 0) { + if (order_partials(stringpool, pool_off, sf, partials[which_partial])) { + partials[which_partial] = partial(sf, z, tx, ty, line_detail, maxzoom, simplification); + // XXX preserve_attributes + } + } + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); strategy->dropped_by_rate++; continue; @@ -2212,33 +2359,10 @@ long long write_tile(decompressor *geoms, std::atomic *geompos_in, ch } } - partial p; - p.geoms.push_back(sf.geometry); - p.layer = sf.layer; - p.t = sf.t; - p.segment = sf.segment; - p.original_seq = sf.seq; + partial p(sf, z, tx, ty, line_detail, maxzoom, simplification); + p.reduced = reduced; - p.coalesced = false; - p.z = z; - p.tx = tx; - p.ty = ty; - p.line_detail = line_detail; - p.extra_detail = line_detail; - p.maxzoom = maxzoom; - p.keys = sf.keys; - p.values = sf.values; - p.full_keys = sf.full_keys; - p.full_values = sf.full_values; p.spacing = spacing; - p.simplification = simplification; - p.id = sf.id; - p.has_id = sf.has_id; - p.index = sf.index; - p.label_point = sf.label_point; - p.renamed = -1; - p.extent = sf.extent; - p.clustered = 0; if (line_detail == detail && extra_detail >= 0 && z == maxzoom) { p.extra_detail = extra_detail;