├── LICENSE ├── Makefile ├── README.md ├── acetate.cfg ├── cities-choropleth.xml ├── cities-style-bg.xml ├── cities-style-fg.xml ├── cities-style.xml ├── fonts ├── Arial Bold Italic.ttf ├── Arial Bold.ttf ├── Arial Italic.ttf └── Arial.ttf ├── gray-point.png ├── index.html ├── motorways └── derive.pgsql ├── places ├── Africa-z4-z5.txt ├── Africa-z6-z11.txt.gz ├── Asia-z4-z6.txt ├── Asia-z7-z11.txt.gz ├── Australia-New-Zealand-z4-z5.txt ├── Australia-New-Zealand-z6-z11.txt.gz ├── Canada-z4-z8.txt ├── Canada-z9-z11.txt.gz ├── Capitals.txt ├── Central-America-z4-z5.txt ├── Central-America-z6-z11.txt.gz ├── Countries-Africa.csv ├── Countries-Asia.csv ├── Countries-Australia-NZ.csv ├── Countries-East.csv ├── Countries-Eurasia.csv ├── Countries-Europe.csv ├── Countries-North-America.csv ├── Countries-South-America.csv ├── Countries-West.csv ├── Countries.csv ├── Europe-z4-z6.txt ├── Europe-z7-z11.txt.gz ├── Makefile ├── South-America-z4-z5.txt ├── South-America-z6-z11.txt.gz ├── US-z4-z8.txt ├── US-z9-z11.txt.gz ├── anneal.py ├── arrange.py ├── fonts │ ├── Arial Bold Italic.ttf │ ├── Arial Bold.ttf │ ├── Arial Italic.ttf │ ├── Arial.ttf │ └── DejaVuSans.ttf └── join-geojson.py ├── tile.cgi ├── tiles ├── Makefile ├── acetate.cfg ├── cities-choropleth.xml ├── fonts │ ├── Arial Bold Italic.ttf │ ├── Arial Bold.ttf │ ├── Arial Italic.ttf │ └── Arial.ttf ├── gray-point.png ├── shp │ ├── continents.dbf │ ├── continents.prj │ ├── continents.shp │ ├── continents.shx │ ├── null.dbf │ ├── null.prj │ ├── null.shp │ ├── null.shx │ ├── place-labels-z10.dbf │ ├── place-labels-z10.prj │ ├── place-labels-z10.shp │ ├── place-labels-z10.shx │ ├── place-labels-z11plus.dbf │ ├── place-labels-z11plus.prj │ ├── place-labels-z11plus.shp │ ├── place-labels-z11plus.shx │ ├── place-labels-z3.dbf │ ├── place-labels-z3.prj │ ├── place-labels-z3.shp │ ├── place-labels-z3.shx │ ├── place-labels-z4.dbf │ ├── place-labels-z4.prj │ ├── place-labels-z4.shp │ ├── place-labels-z4.shx │ ├── place-labels-z5.dbf │ ├── place-labels-z5.prj │ ├── place-labels-z5.shp │ ├── place-labels-z5.shx │ ├── place-labels-z6.dbf │ ├── place-labels-z6.prj │ ├── place-labels-z6.shp │ ├── place-labels-z6.shx │ ├── place-labels-z7.dbf │ ├── place-labels-z7.prj │ ├── place-labels-z7.shp │ ├── place-labels-z7.shx │ ├── place-labels-z8.dbf │ ├── place-labels-z8.prj │ ├── place-labels-z8.shp │ ├── place-labels-z8.shx │ ├── place-labels-z9.dbf │ ├── place-labels-z9.prj │ ├── place-labels-z9.shp │ ├── place-labels-z9.shx │ ├── place-points-z10.dbf │ ├── place-points-z10.prj │ ├── place-points-z10.shp │ ├── place-points-z10.shx │ ├── place-points-z11plus.dbf │ ├── place-points-z11plus.prj │ ├── place-points-z11plus.shp │ ├── place-points-z11plus.shx │ ├── place-points-z3.dbf │ ├── place-points-z3.prj │ ├── place-points-z3.shp │ ├── place-points-z3.shx │ ├── place-points-z4.dbf │ ├── place-points-z4.prj │ ├── place-points-z4.shp │ ├── place-points-z4.shx │ ├── place-points-z5.dbf │ ├── place-points-z5.prj │ ├── place-points-z5.shp │ ├── place-points-z5.shx │ ├── place-points-z6.dbf │ ├── place-points-z6.prj │ ├── place-points-z6.shp │ ├── place-points-z6.shx │ ├── place-points-z7.dbf │ ├── place-points-z7.prj │ ├── place-points-z7.shp │ ├── place-points-z7.shx │ ├── place-points-z8.dbf │ ├── place-points-z8.prj │ ├── place-points-z8.shp │ ├── place-points-z8.shx │ ├── place-points-z9.dbf │ ├── place-points-z9.prj │ ├── place-points-z9.shp │ └── place-points-z9.shx ├── star.png ├── style-background.xml ├── style-combined.xml ├── style-foreground.xml ├── tile.cgi └── tr06_d00_shp │ ├── tracts.dbf │ ├── tracts.shp │ └── tracts.shx ├── tr06_d00_shp ├── tracts.dbf ├── tracts.shp └── tracts.shx ├── world-shp ├── admin_0_countries_110m-points.dbf ├── admin_0_countries_110m-points.prj ├── admin_0_countries_110m-points.shp ├── admin_0_countries_110m-points.shx ├── city-labels-z4.dbf ├── city-labels-z4.prj ├── city-labels-z4.shp ├── city-labels-z4.shx ├── city-labels-z5.dbf ├── city-labels-z5.prj ├── city-labels-z5.shp ├── city-labels-z5.shx ├── city-labels-z6.dbf ├── city-labels-z6.prj ├── city-labels-z6.shp ├── city-labels-z6.shx ├── city-labels-z7.dbf ├── city-labels-z7.prj ├── city-labels-z7.shp ├── city-labels-z7.shx ├── city-labels-z8.dbf ├── city-labels-z8.prj ├── city-labels-z8.shp ├── city-labels-z8.shx ├── city-points-z4.dbf ├── city-points-z4.prj ├── city-points-z4.shp ├── city-points-z4.shx ├── city-points-z5.dbf ├── city-points-z5.prj ├── city-points-z5.shp ├── city-points-z5.shx ├── city-points-z6.dbf ├── city-points-z6.prj ├── city-points-z6.shp ├── city-points-z6.shx ├── city-points-z7.dbf ├── city-points-z7.prj ├── city-points-z7.shp ├── city-points-z7.shx ├── city-points-z8.dbf ├── city-points-z8.prj ├── city-points-z8.shp ├── city-points-z8.shx ├── continents.dbf ├── continents.prj ├── continents.shp └── continents.shx └── world-style.xml /LICENSE: -------------------------------------------------------------------------------- 1 | Acetate is released under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5, http://creativecommons.org/licenses/by-sa/2.5/) license. It was developed by FortiusOne (http://www.fortiusone.com/) and Stamen (http://stamen.com/). 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: cache 2 | 3 | cache: 4 | mkdir cache 5 | chmod a+rwX cache 6 | 7 | clean: 8 | rm -rf cache 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Acetate 2 | ======= 3 | 4 | Acetate is a set of stylesheets that are designed specifically for geographic data visualization. It includes several layers: topographic basemap, hillshading, roads, placenames. These layers can be used individually in combination in layering with thematic data, or composited together into a single image. 5 | 6 | ![](https://cloud.githubusercontent.com/assets/1218/22753542/77ec9a3e-ee0a-11e6-96c8-1bc252471f37.png) 7 | 8 | Using Acetate 9 | ============= 10 | 11 | You can use Acetate tile layers by using the following template urls in a web map 12 | 13 | - Basemap ([preview](http://acetate.geoiq.com/tiles/acetate-base/preview.html)) 14 | - http://acetate.geoiq.com/tiles/acetate-simple/{Z}/{X}/{Y}.png 15 | - Basemap, Hillshading ([preview](http://acetate.geoiq.com/tiles/terrain/preview.html)) 16 | - http://acetate.geoiq.com/tiles/terrain/preview.html 17 | - Basemap, Hillshading, Placename labels ([preview](http://acetate.geoiq.com/tiles/acetate-hillshading/preview.html)) 18 | - http://acetate.geoiq.com/tiles/acetate-hillshading/{Z}/{X}/{Y}.png 19 | - Roads, Placename labels ([preview](http://acetate.geoiq.com/tiles/acetate-fg/preview.html)) 20 | - http://acetate.geoiq.com/tiles/acetate-fg/{Z}/{X}/{Y}.png 21 | - Roads ([preview](http://acetate.geoiq.com/tiles/acetate-roads/preview.html)) 22 | - http://acetate.geoiq.com/tiles/acetate-roads/{Z}/{X}/{Y}.png 23 | - Placename labels ([preview](http://acetate.geoiq.com/tiles/acetate-labels/preview.html)) 24 | - http://acetate.geoiq.com/tiles/acetate-labels/{Z}/{X}/{Y}.png 25 | - Hillshading ([preview](http://acetate.geoiq.com/tiles/hillshading/preview.html)) 26 | - http://acetate.geoiq.com/tiles/hillshading/{Z}/{X}/{Y}.png 27 | 28 | Building Tiles 29 | ============== 30 | 31 | Acetate is built upon the Tilestache, Mapnik projects and it uses a combination of PostGIS and Shapefiles to store spatial data. The data used is OpenStreetMap, Natural Earth and some custom data sources. The two custom data sources are created through a process of “simulated annealing.” 32 | 33 | Data Needed 34 | ----------- 35 | 36 | In order to get started with the data install PostGIS and download the OpenStreetMap Planet File. You’ll need to use OSM2PGSQL to import it. The process of importing for the whole world can take a while, if you only need a specific country you might want to grab a country specific extract from GeoFabrik. To get the coastline information you’ll need to get the data from Natural Earth. 37 | 38 | The custom data is for place names and simplified motorways. You can download the place name shapefiles from here. The simplified motorways is a SQL script that should be run after the OSM Planet is imported. 39 | 40 | Software Needed 41 | --------------- 42 | 43 | To get yourself going install [Tilestache](https://github.com/migurski/TileStache) from Github. From the README Mapnik is listed as an optional dependency but for our purposes you need it. 44 | 45 | At the moment we give you all the pieces to roll your own, though look for a full tutorial in the coming weeks. 46 | 47 | Installing Acetate 48 | ------------------ 49 | 50 | This step is about just placing the acetate project into a web accessible place. Drop them the project into a web dir and start making tiles. 51 | 52 | License 53 | ======= 54 | 55 | Acetate is released under a [Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5)](http://creativecommons.org/licenses/by-sa/2.5/) license. It was developed by [FortiusOne](http://www.fortiusone.com/ "FortiusOne Visual Intelligence Solutions | Visual Intelligence, Smarter Decisions") and [Stamen](http://stamen.com/ "stamen design | big ideas worth pursuing"). 56 | -------------------------------------------------------------------------------- /acetate.cfg: -------------------------------------------------------------------------------- 1 | { 2 | "cache": {"name": "Disk", "path": "cache", "umask": "0000"}, 3 | "layers": 4 | { 5 | "world": 6 | { 7 | "provider": 8 | { 9 | "name": "mapnik", 10 | "mapfile": "world-style.xml", 11 | "fonts": "fonts" 12 | }, 13 | "preview": { "zoom": 6 }, 14 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 15 | }, 16 | "cities": 17 | { 18 | "provider": 19 | { 20 | "name": "mapnik", 21 | "mapfile": "cities-style.xml", 22 | "fonts": "fonts" 23 | }, 24 | "preview": { "zoom": 14 }, 25 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 26 | }, 27 | "composite": 28 | { 29 | "provider": 30 | { 31 | "class": "TileStache.Goodies.Providers.Composite.Provider", 32 | "kwargs": 33 | { 34 | "stack": 35 | [ 36 | { "src": "cities-bg" }, 37 | { "src": "cities-choropleth" }, 38 | { "src": "cities-fg" } 39 | ] 40 | } 41 | }, 42 | "preview": { "zoom": 12 }, 43 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 44 | }, 45 | "cities-bg": 46 | { 47 | "provider": 48 | { 49 | "name": "mapnik", 50 | "mapfile": "cities-style-bg.xml", 51 | "fonts": "fonts" 52 | }, 53 | "preview": { "zoom": 14 }, 54 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 55 | }, 56 | "cities-choropleth": 57 | { 58 | "provider": 59 | { 60 | "name": "mapnik", 61 | "mapfile": "cities-choropleth.xml", 62 | "fonts": "fonts" 63 | }, 64 | "preview": { "zoom": 14 }, 65 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 66 | }, 67 | "cities-fg": 68 | { 69 | "provider": 70 | { 71 | "name": "mapnik", 72 | "mapfile": "cities-style-fg.xml", 73 | "fonts": "fonts" 74 | }, 75 | "preview": { "zoom": 14 }, 76 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 } 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /fonts/Arial Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/fonts/Arial Bold Italic.ttf -------------------------------------------------------------------------------- /fonts/Arial Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/fonts/Arial Bold.ttf -------------------------------------------------------------------------------- /fonts/Arial Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/fonts/Arial Italic.ttf -------------------------------------------------------------------------------- /fonts/Arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/fonts/Arial.ttf -------------------------------------------------------------------------------- /gray-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/gray-point.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Acetate Preview 5 | 15 | 16 | 17 |
18 |

Acetate preview

19 | Acetate project on Github
20 |
21 |

Basemaps

22 | 27 |
28 |
29 |

Layers

30 | 35 |
36 | 37 |
38 | 39 | -------------------------------------------------------------------------------- /motorways/derive.pgsql: -------------------------------------------------------------------------------- 1 | SELECT DropGeometryColumn('', 'planet_osm_motorways', 'way_orig'); 2 | SELECT DropGeometryColumn('', 'planet_osm_motorways', 'way_zoom6'); 3 | SELECT DropGeometryColumn('', 'planet_osm_motorways', 'way_zoom7'); 4 | SELECT DropGeometryColumn('', 'planet_osm_motorways', 'way_zoom8'); 5 | SELECT DropGeometryColumn('', 'planet_osm_motorways', 'way_zoom9'); 6 | 7 | DROP TABLE "planet_osm_motorways"; 8 | 9 | BEGIN; 10 | 11 | CREATE TABLE "planet_osm_motorways" ( 12 | 13 | osm_id INTEGER, 14 | highway TEXT, 15 | name TEXT, 16 | ref TEXT, 17 | route TEXT 18 | 19 | ); 20 | 21 | SELECT AddGeometryColumn('', 'planet_osm_motorways', 'way_orig', '900913', 'LINESTRING', 2); 22 | SELECT AddGeometryColumn('', 'planet_osm_motorways', 'way_zoom6', '900913', 'LINESTRING', 2); 23 | SELECT AddGeometryColumn('', 'planet_osm_motorways', 'way_zoom7', '900913', 'LINESTRING', 2); 24 | SELECT AddGeometryColumn('', 'planet_osm_motorways', 'way_zoom8', '900913', 'LINESTRING', 2); 25 | SELECT AddGeometryColumn('', 'planet_osm_motorways', 'way_zoom9', '900913', 'LINESTRING', 2); 26 | 27 | INSERT INTO "planet_osm_motorways" 28 | 29 | SELECT osm_id, name, highway, ref, route, 30 | way AS way_orig, 31 | ST_Simplify(way, 20037508*2 / 2^(8 + 6)) AS way_zoom6, 32 | ST_Simplify(way, 20037508*2 / 2^(8 + 7)) AS way_zoom7, 33 | ST_Simplify(way, 20037508*2 / 2^(8 + 8)) AS way_zoom8, 34 | ST_Simplify(way, 20037508*2 / 2^(8 + 9)) AS way_zoom9 35 | FROM planet_osm_line 36 | WHERE highway IN ('motorway', 'trunk'); 37 | 38 | COMMIT; 39 | -------------------------------------------------------------------------------- /places/Africa-z4-z5.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 2306104 Accra Accra 5.55602 -0.1969 GH 1963264 3 | 4 344979 Addis Ababa Addis Ababa 9.02497 38.74689 ET 2757729 4 | 4 2507480 Algiers Algiers 36.7525 3.04197 DZ 1977663 5 | 4 1070940 Antananarivo Antananarivo -18.91433 47.53098 MG 1391433 6 | 4 360630 Cairo Cairo 30.06263 31.24967 EG 7734614 7 | 4 3369157 Cape Town Cape Town -33.91667 18.41667 ZA 3433441 8 | 4 2553604 Casablanca Casablanca 33.59 -7.61 MA 3144909 9 | 4 2253354 Dakar Dakar 14.6937 -17.44406 SN 2476400 10 | 4 160263 Dar es Salaam Dar es Salaam -6.82349 39.26951 TZ 2698652 11 | 4 993800 Johannesburg Johannesburg -26.20227 28.04363 ZA 2026469 12 | 4 2332459 Lagos Lagos 6.45306 3.39583 NG 9000000 13 | 4 184745 Nairobi Nairobi -1.28333 36.81667 KE 2750547 14 | 4 934154 Port Louis Port Louis -20.16194 57.49889 MU 155226 15 | 4 2464470 Tunis Tunis 36.81897 10.16579 TN 693210 16 | 5 2293538 Abidjan Abidjan 5.34111 -4.02806 CI 3677115 17 | 5 361058 Alexandria Alexandria 31.19806 29.91917 EG 3811516 18 | 5 223817 Djibouti Djibouti 11.58767 43.14468 DJ 623891 19 | 5 2232593 Douala Douala 4.0469 9.7084 CM 1338082 20 | 5 1007311 Durban Durban -29.85 31.01667 ZA 3120282 21 | 5 2548885 Fes Fes 34.05 -4.98 MA 964891 22 | 5 933773 Gaborone Gaborone -24.65451 25.90859 BW 208411 23 | 5 890299 Harare Harare -17.82935 31.05389 ZW 1542813 24 | 5 2339354 Ibadan Ibadan 7.38778 3.89639 NG 3565108 25 | 5 2335727 Kaduna Kaduna 10.52224 7.43828 NG 1582102 26 | 5 232422 Kampala Kampala 0.31628 32.58219 UG 1353189 27 | 5 2335204 Kano Kano 11.99435 8.51381 NG 3626068 28 | 5 379252 Khartoum Khartoum 15.54665 32.53361 SD 1974647 29 | 5 2314302 Kinshasa Kinshasa -4.32459 15.32146 CD 7785965 30 | 5 2399697 Libreville Libreville 0.38333 9.45 GA 578156 31 | 5 2240449 Luanda Luanda -8.83833 13.23444 AO 2776168 32 | 5 909137 Lusaka Lusaka -15.40809 28.28636 ZM 1267440 33 | 5 53654 Mogadishu Mogadishu 2.03711 45.34375 SO 2587183 34 | 5 2274895 Monrovia Monrovia 6.30054 -10.7969 LR 939524 35 | 5 964137 Pretoria Pretoria -25.74486 28.18783 ZA 1619438 36 | 5 2210247 Tripoli Tripoli 32.87519 13.18746 LY 1150989 37 | 5 2279755 Yamoussoukro Yamoussoukro 6.81667 -5.28333 CI 194530 38 | 6 358619 Port Said Port Said 31.28056 32.3075 EG 538378 39 | 6 2538475 Rabat Rabat 34.01325 -6.83255 MA 1655753 40 | 6 359796 Suez Suez 29.96667 32.55 EG 488125 41 | -------------------------------------------------------------------------------- /places/Africa-z6-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Africa-z6-z11.txt.gz -------------------------------------------------------------------------------- /places/Asia-z4-z6.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 1526384 Almaty Almaty 43.25 76.95 KZ 2000900 3 | 4 98182 Baghdad Baghdad 33.34058 44.40088 IQ 5672513 4 | 4 587084 Baku Baku 40.37767 49.89201 AZ 1116513 5 | 4 1277333 Bangalore Bengaluru 12.97623 77.60329 IN 5104047 6 | 4 1609350 Bangkok Bangkok 13.75 100.51667 TH 5104476 7 | 4 1816670 Beijing Beijing 39.9075 116.39723 CN 7480601 8 | 4 276781 Beirut Beirut 33.88894 35.49442 LB 1916100 9 | 4 1264527 Chennai Chennai 13.08784 80.27847 IN 4328063 10 | 4 1814906 Chongqing Chongqing 29.56278 106.55278 CN 3967028 11 | 4 1185241 Dhaka Dhaka 23.7104 90.40744 BD 10356500 12 | 4 292223 Dubai Dubai 25.25222 55.28 AE 1137347 13 | 4 1809858 Guangzhou Guangzhou 23.11667 113.25 CN 3152825 14 | 4 1566083 Ho Chi Minh City Thanh pho Ho Chi Minh 10.75 106.66667 VN 3467331 15 | 4 1269843 Hyderabad Hyderabad 17.37528 78.47444 IN 3597816 16 | 4 1176615 Islamabad Islamabad 33.72148 73.04329 PK 601600 17 | 4 1642911 Jakarta Jakarta -6.21462 106.84513 ID 8540121 18 | 4 1174872 Karachi Karachi 24.9056 67.0822 PK 11624219 19 | 4 1275004 Kolkata Calcutta 22.56972 88.36972 IN 4631392 20 | 4 1735161 Kuala Lumpur Kuala Lumpur 3.1412 101.68653 MY 1453975 21 | 4 1701668 Manila Manila 14.58458 120.97063 PH 10444527 22 | 4 1275339 Mumbai Mumbai 19.01441 72.84794 IN 12691836 23 | 4 1261481 New Delhi New Delhi 28.63576 77.22445 IN 317797 24 | 4 1496747 Novosibirsk Novosibirsk 55.04111 82.93444 RU 1419007 25 | 4 1853909 Osaka Osaka-shi 34.69374 135.50218 JP 2592413 26 | 4 2088122 Port Moresby Port Moresby -9.44314 147.17972 PG 283733 27 | 4 108410 Riyadh Riyadh 24.68773 46.72185 SA 4205961 28 | 4 1835848 Seoul Seoul 37.56826 126.97783 KR 10349312 29 | 4 1796236 Shanghai Shanghai 31.22222 121.45806 CN 14608512 30 | 4 1880252 Singapore Singapore 1.28967 103.85007 SG 3547809 31 | 4 1668341 Taipei Taipei 25.04776 121.53185 TW 7871900 32 | 4 112931 Tehran Tehran 35.69439 51.42151 IR 7153309 33 | 4 293397 Tel Aviv Tel Aviv 32.06667 34.76667 IL 250000 34 | 4 1850147 Tokyo Tokyo 35.61488 139.5813 JP 8336599 35 | 5 292968 Abu Dhabi Abu Dhabi 24.46667 54.36667 AE 603492 36 | 5 1279233 Ahmadabad Ahmadabad 23.03333 72.61667 IN 3719710 37 | 5 170063 Aleppo Aleppo 36.20278 37.15861 SY 1602264 38 | 5 250441 Amman Amman 31.95522 35.94503 JO 1275857 39 | 5 323786 Ankara Ankara 39.91987 32.85427 TR 3517182 40 | 5 162183 Ashgabat Ashgabat 37.95 58.38333 TM 727700 41 | 5 1624917 Bandar Lampung Tanjungkarang-Telukbetung -5.45 105.26667 ID 800348 42 | 5 1650357 Bandung Bandung -6.90389 107.61861 ID 1699719 43 | 5 2038432 Baotou Baotou 40.65222 109.82222 CN 1301768 44 | 5 1528675 Bishkek Bishkek 42.87306 74.60028 KG 900000 45 | 5 2038180 Changchun Changchun 43.88 125.32278 CN 2537421 46 | 5 1508291 Chelyabinsk Chelyabinsk 55.15444 61.42972 RU 1062919 47 | 5 1815286 Chengdu Chengdu 30.66667 104.06667 CN 3950437 48 | 5 1205733 Chittagong Chittagong 22.33306 91.83639 BD 3920222 49 | 5 1273874 Cochin Cochin 9.96667 76.23333 IN 604696 50 | 5 1248991 Colombo Colombo 6.93194 79.84778 LK 648034 51 | 5 1814087 Dalian Dalian 38.91222 121.60222 CN 2035307 52 | 5 170654 Damascus Damascus 33.5102 36.29128 SY 1569394 53 | 5 1645528 Denpasar Denpasar -8.65 115.21667 ID 405923 54 | 5 290030 Doha Doha 25.27932 51.52245 QA 344939 55 | 5 1221874 Dushanbe Dushanbe 38.53575 68.77905 TJ 543107 56 | 5 418863 Esfahan Esfehan 32.65722 51.67761 IR 1547164 57 | 5 1179400 Faisalabad Faisalabad 31.41667 73.08333 PK 2506595 58 | 5 1863967 Fukuoka Fukuoka-shi 33.60639 130.41806 JP 1392289 59 | 5 1810821 Fuzhou Fuzhou 26.06139 119.30611 CN 1179720 60 | 5 1809461 Guiyang Guiyang 26.58333 106.71667 CN 1171633 61 | 5 1581130 Hanoi Ha Noi 21.0245 105.84117 VN 1431270 62 | 5 2037013 Harbin Harbin 45.75 126.65 CN 3229883 63 | 5 1862415 Hiroshima Hiroshima-shi 34.39627 132.45937 JP 1143841 64 | 5 311046 Izmir Izmir 38.41273 27.13838 TR 2500603 65 | 5 1269515 Jaipur Jaipur 26.91667 75.81667 IN 2711758 66 | 5 105343 Jeddah Jiddah 21.51694 39.21917 SA 2867446 67 | 5 1805753 Jinan Jinan 36.66833 116.99722 CN 2069266 68 | 5 1138958 Kabul Kabul 34.52813 69.17233 AF 3043532 69 | 5 1267995 Kanpur Kanpur 26.46667 80.35 IN 2823249 70 | 5 1673820 Kaohsiung Kaohsiung 22.61626 120.31333 TW 1519711 71 | 5 1283240 Kathmandu Kathmandu 27.70169 85.3206 NP 1442271 72 | 5 285787 Kuwait Kuwait 29.36972 47.97833 KW 60064 73 | 5 1172451 Lahore Lahore 31.54972 74.34361 PK 6310888 74 | 5 1264733 Lucknow Lucknow 26.85 80.91667 IN 2472011 75 | 5 1622786 Makassar Makassar -5.14 119.4221 ID 1321717 76 | 5 290340 Manama Manama 26.21536 50.5832 BH 147074 77 | 5 1311874 Mandalay Mandalay 21.97473 96.08359 MM 1208099 78 | 5 124665 Mashhad Mashhad 36.297 59.6062 IR 2307177 79 | 5 104515 Mecca Mecca 21.42667 39.82611 SA 1323624 80 | 5 1214520 Medan Medan 3.58333 98.66667 ID 1750971 81 | 5 109223 Medina Medina 24.46861 39.61417 SA 1300000 82 | 5 287286 Muscat Muscat 23.61333 58.59333 OM 797000 83 | 5 1856057 Nagoya Nagoya-shi 35.18147 136.90641 JP 2191279 84 | 5 1262180 Nagpur Nagpur 21.15 79.1 IN 2228018 85 | 5 1800163 Nanchang Nanchang 28.68333 115.88333 CN 1871351 86 | 5 1799962 Nanjing Nanjing 32.06167 118.77778 CN 3087010 87 | 5 1496153 Omsk Omsk 55 73.4 RU 1129281 88 | 5 1633070 Palembang Palembang -2.91673 104.7458 ID 1441500 89 | 5 1821306 Phnom Penh Phnom Penh 11.55 104.91667 KH 1573544 90 | 5 1259229 Pune Pune 18.51957 73.85535 IN 2935744 91 | 5 1838524 Pusan Pusan 35.10278 129.04028 KR 3678555 92 | 5 1871859 Pyongyang Pyongyang 39.03385 125.75432 KP 3222000 93 | 5 1797929 Qingdao Qingdao 36.09861 120.37194 CN 1642245 94 | 5 1167528 Quetta Quetta 30.18722 67.0125 PK 733675 95 | 5 71137 Sanaa Sanaa 15.35472 44.20667 YE 1937451 96 | 5 2128295 Sapporo Sapporo-shi 43.06417 141.34694 JP 1883027 97 | 5 498677 Saratov Saratov 51.56667 46.03333 RU 863725 98 | 5 1627896 Semarang Semarang -6.9932 110.4203 ID 1288084 99 | 5 2034937 Shenyang Shenyang 41.79222 123.43278 CN 3512192 100 | 5 1625822 Surabaya Surabaya -7.24917 112.75083 ID 2374658 101 | 5 1255364 Surat Surat 21.16667 72.83333 IN 2894504 102 | 5 113646 Tabriz Tabriz 38.08 46.2919 IR 1424641 103 | 5 1793511 Taiyuan Taiyuan 37.86944 112.56028 CN 2722475 104 | 5 1512569 Tashkent Tashkent 41.26465 69.21627 UZ 1978028 105 | 5 611717 Tbilisi Tbilisi 41.69411 44.83368 GE 1049498 106 | 5 1792947 Tianjin Tianjin 39.14222 117.17667 CN 3766207 107 | 5 2028462 Ulaanbaatar Ulaanbaatar 47.90771 106.88324 MN 844818 108 | 5 1529102 Urumqi Urumqi 43.8 87.58333 CN 1508225 109 | 5 1651944 Vientiane Vientiane 17.96667 102.6 LA 196731 110 | 5 2013348 Vladivostok Vladivostok 43.10562 131.87353 RU 587022 111 | 5 1791247 Wuhan Wuhan 30.58333 114.26667 CN 4184206 112 | 5 1790630 Xi’an Xi'an 34.25833 108.92861 CN 3225812 113 | 5 1298824 Yangon Rangoon 16.80528 96.15611 MM 4477638 114 | 5 1486209 Yekaterinburg Yekaterinburg 56.8575 60.6125 RU 1287573 115 | 5 616052 Yerevan Yerevan 40.18111 44.51361 AM 1093485 116 | 6 1835329 Daegu Taegu 35.87028 128.59111 KR 2566540 117 | 6 1735106 George Town George Town 5.41123 100.33543 MY 300000 118 | 6 294801 Haifa Haifa 32.81556 34.98917 IL 267300 119 | 6 1269743 Indore Indore 22.71792 75.8333 IN 1837041 120 | 6 281184 Jerusalem Jerusalem 31.77902 35.2253 IL 714000 121 | 6 1732752 Johor Baharu Johor Bahru 1.46667 103.75 MY 802489 122 | 6 1859171 Kobe Kobe-shi 34.6913 135.183 JP 1528478 123 | 6 1857910 Kyoto Kyoto 35.02107 135.75385 JP 1459640 124 | 6 1733782 Labuan Victoria 5.27667 115.24167 MY 73653 125 | 6 1856177 Nagasaki Nagasaki-shi 32.74472 129.87361 JP 410204 126 | 6 1795565 Shenzhen Shenzhen 22.54554 114.0683 CN 3000000 127 | 6 1848354 Yokohama Yokohama-shi 35.44778 139.6425 JP 3574443 128 | 4 1819729 Hong Kong Hong Kong 22.28552 114.15769 HK 7012738 129 | 5 1821274 Macau Macau 22.20056 113.54611 MO 520400 130 | 4 524901 Moscow Moscow 55.75222 37.61556 RU 10381222 131 | 4 498817 St. Petersburg Saint Petersburg 59.89444 30.26417 RU 4039745 132 | 5 520555 Novgorod Nizhniy Novgorod 56.32867 44.00205 RU 1284164 133 | 5 472757 Volgograd Volgograd 48.80472 44.58583 RU 1011417 134 | 6 581049 Arkhangel’sk Arkhangel'sk 64.54722 40.54861 RU 356051 135 | 6 555312 Ivanovo Ivanovo 56.99417 40.98583 RU 420839 136 | 6 554840 Izhevsk Izhevsk 56.85 53.23333 RU 631038 137 | 6 554234 Kaliningrad Kaliningrad 54.71 20.5 RU 434954 138 | 6 551487 Kazan’ Kazan' 55.7877 49.1248 RU 1104738 139 | 6 548410 Kirov Kirov 54.07472 34.2975 RU 39319 140 | 6 524305 Murmansk Murmansk 68.97167 33.08194 RU 319263 141 | 6 511196 Perm’ Perm' 58 56.25 RU 982419 142 | 6 501175 Rostov-na-Donu Rostov-na-Donu 47.23639 39.71389 RU 1074482 143 | 6 499099 Samara Samara 53.2 50.15 RU 1134730 144 | 6 479561 Ufa Ufa 54.775 56.0375 RU 1033338 145 | 6 472045 Voronezh Voronezh 51.6699 39.19227 RU 848752 146 | 6 491687 Smolensk Smolensk 54.7818 32.0401 RU 320991 147 | 6 580497 Astrakhan Astrakhan' 46.34944 48.04917 RU 502533 148 | -------------------------------------------------------------------------------- /places/Asia-z7-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Asia-z7-z11.txt.gz -------------------------------------------------------------------------------- /places/Australia-New-Zealand-z4-z5.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 2147714 Sydney Sydney -33.86785 151.20732 AU 4394576 3 | 4 2193733 Auckland Auckland -36.86667 174.76667 NZ 417910 4 | 4 2158177 Melbourne Melbourne -37.814 144.96332 AU 3730206 5 | 4 2174003 Brisbane Brisbane -27.46794 153.02809 AU 958504 6 | 4 2063523 Perth Perth -31.93333 115.83333 AU 1446704 7 | 4 2179537 Wellington Wellington -41.28664 174.77557 NZ 381900 8 | 5 2078025 Adelaide Adelaide -34.93333 138.6 AU 1074159 9 | 5 2172517 Canberra Canberra -35.28346 149.12807 AU 327700 10 | 5 2192362 Christchurch Christchurch -43.53333 172.63333 NZ 363926 11 | -------------------------------------------------------------------------------- /places/Australia-New-Zealand-z6-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Australia-New-Zealand-z6-z11.txt.gz -------------------------------------------------------------------------------- /places/Canada-z4-z8.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 6077243 Montréal Montreal 45.50884 -73.58781 CA QC 3268513 3 | 4 6167865 Toronto Toronto 43.70011 -79.4163 CA ON 4612191 4 | 4 6173331 Vancouver Vancouver 49.24966 -123.11934 CA BC 1837969 5 | 5 5913490 Calgary Calgary 51.05011 -114.08529 CA AB 1019942 6 | 5 5946768 Edmonton Edmonton 53.55014 -113.46871 CA AB 712391 7 | 5 6324729 Halifax Halifax 44.64533 -63.57239 CA NS 359111 8 | 5 6094817 Ottawa Ottawa 45.41117 -75.69812 CA ON 812129 9 | 5 6325494 Québec Quebec 46.81228 -71.21454 CA QC 528595 10 | 5 6183235 Winnipeg Winnipeg 49.8844 -97.14704 CA MB 632063 11 | 6 5894171 Barrie Barrie 44.40011 -79.66634 CA ON 182041 12 | 6 5920288 Charlottetown Charlottetown 46.23525 -63.12671 CA PE 42402 13 | 6 5957776 Fredericton Fredericton 45.94541 -66.66558 CA NB 52337 14 | 6 5969785 Hamilton Hamilton 43.23341 -79.94964 CA ON 504559 15 | 6 5990579 Kelowna Kelowna 49.88307 -119.48568 CA BC 125109 16 | 6 5992500 Kingston Kingston 44.22976 -76.48098 CA ON 114195 17 | 6 5992996 Kitchener Kitchener 43.4501 -80.48299 CA ON 409112 18 | 6 6058560 London London 42.98339 -81.23304 CA ON 346765 19 | 6 6075357 Mississauga Mississauga 43.5789 -79.6583 CA ON 668549 20 | 6 6119109 Regina Regina 50.45008 -104.6178 CA SK 176183 21 | 6 6141256 Saskatoon Saskatoon 52.11679 -106.63452 CA SK 198958 22 | 6 6146143 Sherbrooke Sherbrooke 45.40008 -71.89908 CA QC 129447 23 | 6 6324733 St. John’s St. John's 47.56494 -52.70931 CA NL 99182 24 | 6 5964700 Sudbury Greater Sudbury 46.49 -80.99001 CA ON 157857 25 | 6 6166142 Thunder Bay Thunder Bay 48.4001 -89.31683 CA ON 99334 26 | 6 6166142 Thunder Bay Thunder Bay 48.4001 -89.31683 CA ON 99334 27 | 6 6169141 Trois-Rivières Trois-Rivieres 46.35006 -72.54912 CA QC 119693 28 | 6 6174041 Victoria Victoria 48.43294 -123.3693 CA BC 289625 29 | 6 6180550 Whitehorse Whitehorse 60.71611 -135.05375 CA YT 23272 30 | 6 6185377 Yellowknife Yellowknife 62.456 -114.35255 CA NT 15865 31 | 7 5881791 Abbotsford Abbotsford 49.05798 -122.25257 CA BC 151683 32 | 7 5907896 Brandon Brandon 49.84692 -99.95306 CA MB 26234 33 | 7 5914132 Campbell River Campbell River 50.01634 -125.24459 CA BC 33430 34 | 7 5928065 Cornwall Cornwall 45.01809 -74.72815 CA ON 48821 35 | 7 5964347 Grand Prairie Grande Prairie 55.16667 -118.80271 CA AB 41462 36 | 7 6050610 Laval Laval 45.56995 -73.692 CA QC 376845 37 | 7 6053154 Lethbridge Lethbridge 49.69999 -112.81856 CA AB 70617 38 | 7 6071618 Medicine Hat Medicine Hat 50.05006 -110.66834 CA AB 63138 39 | 7 6076211 Moncton Moncton 46.11594 -64.80186 CA NB 87467 40 | 7 6089426 North Bay North Bay 46.3168 -79.46633 CA ON 50170 41 | 7 6094578 Oshawa Oshawa 43.90012 -78.84957 CA ON 247989 42 | 7 6101645 Peterborough Peterborough 44.30012 -78.31623 CA ON 75877 43 | 7 6113335 Prince Albert Prince Albert 53.20008 -105.76772 CA SK 34609 44 | 7 6137270 Saguenay Saguenay 48.41675 -71.06573 CA QC 143692 45 | 7 6141439 Sault Ste. Marie Sault Ste. Marie 46.51677 -84.33325 CA ON 74948 46 | 7 6138517 St. John Saint John 45.27271 -66.06766 CA NB 87857 47 | 7 6159905 Surrey Surrey 49.10635 -122.82509 CA BC 394976 48 | 7 6354908 Sydney Sydney 46.1351 -60.1831 CA NS 105968 49 | 7 6166739 Timmins Timmins 48.46686 -81.33312 CA ON 42997 50 | 7 6182962 Windsor Windsor 42.30008 -83.01654 CA ON 278013 51 | 8 5911606 Burnaby Burnaby 49.26636 -122.95263 CA BC 202799 52 | 8 5913695 Cambridge Cambridge 43.3601 -80.31269 CA ON 120372 53 | 8 5927689 Coquitlam Coquitlam 49.28297 -122.75262 CA BC 114565 54 | 8 6325521 Lévis Levis 46.80326 -71.17793 CA QC 126396 55 | 8 6122085 Richmond Richmond 49.17003 -123.13683 CA BC 182000 56 | 7 5955895 Ft. McMurray Fort McMurray 56.7335 -111.38519 CA AB 57 | 8 6136944 Saanich Saanich 48.54964 -123.36931 CA BC 58 | 7 5921225 Chicoutimi Chicoutimi 48.41963 -71.06369 CA QC 59 | 7 5920450 Chatham Chatham 42.40009 -82.1831 CA ON 5920450 60 | -------------------------------------------------------------------------------- /places/Canada-z9-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Canada-z9-z11.txt.gz -------------------------------------------------------------------------------- /places/Capitals.txt: -------------------------------------------------------------------------------- 1 | 3041563 2 | 292968 3 | 1138958 4 | 3576022 5 | 3573374 6 | 3183875 7 | 616052 8 | 3513090 9 | 2240449 10 | 3435910 11 | 5881576 12 | 2761369 13 | 2172517 14 | 3577154 15 | 3041732 16 | 587084 17 | 3191281 18 | 3374036 19 | 1185241 20 | 2800866 21 | 2357048 22 | 727011 23 | 290340 24 | 425378 25 | 2392087 26 | 3579132 27 | 3573197 28 | 1820906 29 | 3903987 30 | 3911925 31 | 3469058 32 | 3571824 33 | 1252416 34 | 933773 35 | 625144 36 | 3582672 37 | 6094817 38 | 7304591 39 | 2314302 40 | 2389853 41 | 2260535 42 | 2661552 43 | 2279755 44 | 4035715 45 | 3871336 46 | 2220957 47 | 1816670 48 | 3688689 49 | 3621849 50 | 3553478 51 | 3374333 52 | 2078127 53 | 146268 54 | 3067696 55 | 2950159 56 | 223817 57 | 2618425 58 | 3575635 59 | 3492908 60 | 2507480 61 | 3652462 62 | 588409 63 | 360630 64 | 343300 65 | 3117735 66 | 344979 67 | 658225 68 | 2198148 69 | 3426691 70 | 2081986 71 | 2611396 72 | 2988507 73 | 2399697 74 | 2643743 75 | 3579925 76 | 611717 77 | 3382160 78 | 3042287 79 | 2306104 80 | 2411585 81 | 3421319 82 | 2413876 83 | 2422465 84 | 3579732 85 | 2309527 86 | 264371 87 | 3426466 88 | 3598132 89 | 4044012 90 | 2374775 91 | 3378644 92 | 1819729 93 | 3600949 94 | 3186886 95 | 3718426 96 | 3054643 97 | 1642911 98 | 2964574 99 | 3042237 100 | 1261481 101 | 98182 102 | 112931 103 | 3413829 104 | 3169070 105 | 3042091 106 | 3489854 107 | 250441 108 | 1850147 109 | 184745 110 | 1528675 111 | 1821306 112 | 2110257 113 | 921772 114 | 3575551 115 | 1871859 116 | 1835848 117 | 285787 118 | 3580661 119 | 1526273 120 | 1651944 121 | 276781 122 | 3576812 123 | 3042030 124 | 1248991 125 | 2274895 126 | 932505 127 | 593116 128 | 2960316 129 | 456172 130 | 2210247 131 | 2538475 132 | 2993458 133 | 618426 134 | 3193044 135 | 3578851 136 | 1070940 137 | 2113779 138 | 785842 139 | 2460596 140 | 6611854 141 | 2028462 142 | 1821274 143 | 3570675 144 | 2377450 145 | 3578069 146 | 2562305 147 | 934154 148 | 1282027 149 | 927967 150 | 3530597 151 | 1735161 152 | 1040652 153 | 3352136 154 | 2139521 155 | 2440485 156 | 2161314 157 | 2352778 158 | 3617763 159 | 2759794 160 | 3143244 161 | 1283240 162 | 4036284 163 | 2179537 164 | 287286 165 | 3703443 166 | 3936456 167 | 4033936 168 | 2088122 169 | 1701668 170 | 1176615 171 | 756135 172 | 3424934 173 | 4030723 174 | 4568127 175 | 2267057 176 | 7303944 177 | 3439389 178 | 290030 179 | 935264 180 | 683506 181 | 792680 182 | 524901 183 | 202061 184 | 108410 185 | 2108502 186 | 241131 187 | 379252 188 | 2673730 189 | 1880252 190 | 3370903 191 | 3196359 192 | 2729907 193 | 3060972 194 | 2409306 195 | 3168070 196 | 2253354 197 | 53654 198 | 3383330 199 | 2410763 200 | 3583361 201 | 170654 202 | 934985 203 | 935048 204 | 3576994 205 | 2427123 206 | 1546102 207 | 2365267 208 | 1609350 209 | 1221874 210 | 7522181 211 | 1645457 212 | 162183 213 | 2464470 214 | 4032402 215 | 323786 216 | 3573890 217 | 2110394 218 | 1668341 219 | 160196 220 | 703448 221 | 232422 222 | 4140963 223 | 3441575 224 | 1512569 225 | 6691831 226 | 3577887 227 | 3646738 228 | 3577430 229 | 4795467 230 | 1581130 231 | 2135171 232 | 4034821 233 | 4035413 234 | 786714 235 | 71137 236 | 921815 237 | 964137 238 | 909137 239 | 890299 240 | -------------------------------------------------------------------------------- /places/Central-America-z4-z5.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 4005539 Guadalajara Guadalajara 20.66667 -103.33333 MX 1640589 3 | 4 3553478 Havana Havana 23.13302 -82.38304 CU 2163824 4 | 4 3530597 Mexico City Mexico City 19.42847 -99.12766 MX 12294193 5 | 5 3374036 Bridgetown Bridgetown 13.1 -59.61667 BB 98511 6 | 5 4014338 Chihuahua Chihuahua 28.63333 -106.08333 MX 708267 7 | 5 3580661 George Town George Town 19.28692 -81.36706 KY 29370 8 | 5 3598132 Guatemala City Guatemala City 14.64072 -90.51327 GT 994938 9 | 5 3573197 Hamilton Hamilton 32.29149 -64.77797 BM 902 10 | 5 4013708 Juarez Ciudad Juarez 31.73333 -106.48333 MX 1512354 11 | 5 3489854 Kingston Kingston 17.99702 -76.79358 JM 937700 12 | 5 3998655 Leon Leon 21.11667 -101.66667 MX 1114626 13 | 5 3617763 Managua Managua 12.13282 -86.2504 NI 973087 14 | 5 3995465 Monterrey Monterrey 25.66667 -100.31667 MX 1122874 15 | 5 3571824 Nassau Nassau 25.05823 -77.34306 BS 227940 16 | 5 3703443 Panama City Panama 8.9936 -79.51973 PA 408168 17 | 5 3718426 Port-au-Prince Port-au-Prince 18.53917 -72.335 HT 1234742 18 | 5 4011469 Puebla Puebla 32.56444 -115.35333 MX 8700 19 | 5 3621849 San Jose San Jose 9.93333 -84.08333 CR 335007 20 | 5 4568127 San Juan San Juan 18.46633 -66.10572 PR 418140 21 | 5 3583361 San Salvador San Salvador 13.68935 -89.18718 SV 525990 22 | 5 3492908 Santo Domingo Santo Domingo 18.50012 -69.98857 DO 2201941 23 | 5 3600949 Tegucigalpa Tegucigalpa 14.0818 -87.20681 HN 850848 24 | 5 3981609 Tijuana Tijuana 32.53333 -117.01667 MX 1376457 25 | -------------------------------------------------------------------------------- /places/Central-America-z6-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Central-America-z6-z11.txt.gz -------------------------------------------------------------------------------- /places/Countries-Africa.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Sudan,Sudan,SD,SDN,736,2505810,43939598,15.00,30.00,af 3 | 3,Algeria,Alg.,DZ,DZA,12,2381740,34586184,28.00,3.00,af 4 | 3,Dem. Rep. of the Congo,D.R.C.,CD,COD,180,2345410,70916439,-4.74,22.15,af 5 | 3,Libya,Libya,LY,LBY,434,1759540,6461454,25.00,17.00,af 6 | 3,Chad,Chad,TD,TCD,148,1284000,10543464,15.00,19.00,af 7 | 3,Niger,Niger,NE,NER,562,1267000,15878271,16.00,8.00,af 8 | 3,Angola,Ang.,AO,AGO,24,1246700,13068161,-12.50,18.50,af 9 | 3,S. Africa,S. Afr.,ZA,ZAF,710,1219912,49000000,-29.69,22.68,af 10 | 3,Ethiopia,Eth.,ET,ETH,231,1127127,88013491,8.00,38.00,af 11 | 3,Mauritania,Maur.,MR,MRT,478,1030700,3205060,20.00,-12.00,af 12 | 3,Egypt,Egypt,EG,EGY,818,1001450,80471869,27.00,30.00,af 13 | 3,Tanzania,Tan.,TZ,TZA,834,945087,41892895,-6.00,35.00,af 14 | 3,Nigeria,Nig.,NG,NGA,566,923768,154000000,10.00,8.00,af 15 | 3,Namibia,Nmb.,NA,NAM,516,825418,2128471,-22.00,17.00,af 16 | 3,Mozambique,Moz.,MZ,MOZ,508,801590,22061451,-18.25,35.00,af 17 | 3,Zambia,Zam.,ZM,ZMB,894,752614,13460305,-14.60,26.37,af 18 | 3,Somalia,Som.,SO,SOM,706,637657,10112453,6.00,48.00,af 19 | 3,Central African Republic,C.A.R.,CF,CAF,140,622984,4844927,7.00,21.00,af 20 | 3,Botswana,Bots.,BW,BWA,72,600370,2029307,-22.00,24.00,af 21 | 3,Madagascar,Madag.,MG,MDG,450,587040,21281844,-20.00,47.00,af 22 | 3,Kenya,Kenya,KE,KEN,404,582650,40046566,1.00,38.00,af 23 | 3,Cameroon,Camrn.,CM,CMR,120,475440,19294149,6.00,12.00,af 24 | 3,Morocco,Mor.,MA,MAR,504,446550,31627428,32.00,-5.00,af 25 | 3,Congo,Congo,CG,COG,178,342000,3039126,-1.00,15.00,af 26 | 3,Senegal,Sen.,SN,SEN,686,196190,12323252,14.00,-14.00,af 27 | 3,Tunisia,Tun.,TN,TUN,788,163610,10589025,34.00,9.00,af 28 | 4,Mali,Mali,ML,MLI,466,1240000,13796354,17.00,-4.00,af 29 | 4,Zimbabwe,Zimb.,ZW,ZWE,716,390580,11651858,-19.00,29.00,af 30 | 4,Cote d'Ivoire,C. Iv.,CI,CIV,384,322460,21058798,8.00,-5.00,af 31 | 4,Burkina Faso,Burkina,BF,BFA,854,274200,16241811,13.00,-2.00,af 32 | 4,Gabon,Gabon,GA,GAB,266,267667,1545255,-1.00,11.75,af 33 | 4,W. Sahara,W. Sah.,EH,ESH,732,266000,273008,24.49,-12.66,af 34 | 4,Guinea,Gui.,GN,GIN,324,245857,10324025,11.00,-10.00,af 35 | 4,Ghana,Ghana,GH,GHA,288,239460,24339838,8.00,-2.00,af 36 | 4,Uganda,Ug.,UG,UGA,800,236040,33398682,2.00,33.00,af 37 | 4,Eritrea,Erit.,ER,ERI,232,121320,5792984,15.00,39.00,af 38 | 4,Malawi,Malawi,MW,MWI,454,118480,15447500,-13.50,34.00,af 39 | 4,Benin,Benin,BJ,BEN,204,112620,9056010,9.50,2.25,af 40 | 4,Liberia,Lib.,LR,LBR,430,111370,3685076,6.50,-9.50,af 41 | 4,Sierra Leone,S.L.,SL,SLE,694,71740,5245695,8.50,-11.50,af 42 | 4,Togo,Togo,TG,TGO,768,56785,6587239,8.00,1.17,af 43 | 4,Guinea-Bissau,Gui.-B.,GW,GNB,624,36120,1565126,12.00,-15.00,af 44 | 4,Lesotho,Leso.,LS,LSO,426,30355,1919552,-29.50,28.25,af 45 | 4,Equatorial Guinea,Eq. Gui.,GQ,GNQ,226,28051,1014999,2.00,10.00,af 46 | 4,Burundi,Bdi.,BI,BDI,108,27830,9863117,-3.50,30.00,af 47 | 4,Rwanda,Rw.,RW,RWA,646,26338,11055976,-2.00,30.00,af 48 | 4,Djibouti,Dji.,DJ,DJI,262,23000,740528,11.50,42.50,af 49 | 4,Swaziland,Swaz.,SZ,SWZ,748,17363,1354051,-26.50,31.50,af 50 | 4,The Gambia,Gam.,GM,GMB,270,11300,1593256,13.50,-15.50,af 51 | 4,Cape Verde,C.V.,CV,CPV,132,4033,508659,16.00,-24.00,af 52 | 4,Mauritius,Mauritius,MU,MUS,480,2040,1294104,-20.30,57.58,af 53 | 4,São Tomé and Príncipe,S. Tom./P.,ST,STP,678,1001,175808,1.00,7.00,af 54 | 4,Seychelles,Sey.,SC,SYC,690,455,88340,-4.58,55.67,af 55 | 4,St. Helena,St. Hel.,SH,SHN,654,410,7460,-15.95,-5.70,af 56 | 4,Mayotte,May.,YT,MYT,175,374,159042,-12.83,45.17,af 57 | -------------------------------------------------------------------------------- /places/Countries-Asia.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Russia,Rus.,RU,RUS,643,17100000,140702000,62.43,87.54,eu 3 | 3,China,China,CN,CHN,156,9596960,1330044000,35.00,105.00,asia 4 | 3,India,India,IN,IND,356,3287590,1173108018,20.00,77.00,asia 5 | 3,Kazakhstan,Kaz.,KZ,KAZ,398,2717300,15340000,48.00,68.00,asia 6 | 3,Saudi Arabia,Sau. Ar.,SA,SAU,682,1960582,25731776,21.62,47.11,asia 7 | 3,Indonesia,Indon.,ID,IDN,364,1919440,242968342,-5.00,120.00,ocean 8 | 3,Iran,Iran,IR,IRN,364,1648000,76923300,32.00,53.00,asia 9 | 3,Mongolia,Mong.,MN,MNG,496,1565000,3086918,46.00,105.00,asia 10 | 3,Pakistan,Pak.,PK,PAK,586,803940,184404791,30.00,70.00,asia 11 | 3,Myanmar,Mya.,MM,MMR,104,678500,53414374,22.00,98.00,asia 12 | 3,Afghanistan,Afg.,AF,AFG,4,647500,29121286,33.00,66.00,asia 13 | 3,Yemen,Yemen,YE,YEM,887,527970,23495361,15.50,47.50,asia 14 | 3,Thailand,Thai.,TH,THA,764,514000,67089500,15.00,100.00,asia 15 | 3,Turkmenistan,Turkmen.,TM,TKM,795,488100,4940916,40.00,60.00,asia 16 | 3,Papua New Guinea,Pap. N. Gui.,PG,PNG,598,462840,6064515,-6.00,147.00,ocean 17 | 3,Iraq,Iraq,IQ,IRQ,368,437072,29671605,33.00,44.00,asia 18 | 3,Japan,Japan,JP,JPN,392,377835,127288000,37.23,138.25,asia 19 | 3,Malaysia,Malay.,MY,MYS,458,329750,28274729,2.50,112.50,ocean 20 | 3,Vietnam,Viet.,VN,VNM,704,329560,89571130,16.17,107.83,asia 21 | 3,Philippines,Phil.,PH,PHL,608,300000,99900177,13.00,122.00,ocean 22 | 3,Oman,Oman,OM,OMN,512,212460,2967717,21.00,57.00,asia 23 | 3,Kyrgyzstan,Kyrg.,KG,KGZ,417,198500,5508626,41.00,75.00,asia 24 | 3,Syria,Syria,SY,SYR,760,185180,22198110,35.00,38.00,asia 25 | 3,Bangladesh,Bngl.,BD,BGD,50,144000,156118464,24.00,90.00,asia 26 | 3,Nepal,Nepal,NP,NPL,524,140800,28951852,28.00,84.00,asia 27 | 3,N. Korea,N. Kor.,KP,PRK,408,120540,22912177,40.00,127.00,asia 28 | 3,S. Korea,S. Kor.,KR,KOR,410,98480,48422644,37.00,127.50,asia 29 | 3,Azerbaijan,Azer.,AZ,AZE,31,86600,8303512,40.50,47.50,asia 30 | 3,United Arab Emirates,U.A.E.,AE,ARE,784,82880,4975593,24.00,54.00,asia 31 | 3,Sri Lanka,Sri L.,LK,LKA,144,65610,21513990,7.00,81.00,asia 32 | 3,Solomon Is.,Sol. Is.,SB,SLB,90,28450,559198,-8.00,159.00,ocean 33 | 3,Israel,Isr.,IL,ISR,376,20770,7353985,31.18,34.88,asia 34 | 3,Fiji,Fiji,FJ,FJI,242,18270,875983,-18.00,178.00,ocean 35 | 3,Micronesia,Micron.,FM,FSM,583,702,108105,5.00,152.00,ocean 36 | 3,Marshall Is.,Marsh. Is.,MH,MHL,584,181.3,65859,10.00,167.00,ocean 37 | 4,Uzbekistan,Uzb.,UZ,UZB,860,447400,27865738,41.00,64.00,asia 38 | 4,Laos,Laos,LA,LAO,418,236800,6368162,18.00,105.00,asia 39 | 4,Cambodia,Camb.,KH,KHM,116,181040,14453680,13.00,105.00,asia 40 | 4,Tajikistan,Taj.,TJ,TJK,762,143100,7487489,39.00,71.00,asia 41 | 4,Jordan,Jord.,JO,JOR,400,92300,6407085,31.00,36.00,asia 42 | 4,Georgia,Geor.,GE,GEO,268,69700,4630000,42.00,43.50,asia 43 | 4,Bhutan,Bhu.,BT,BTN,64,47000,699847,27.50,90.50,asia 44 | 4,Armenia,Arm.,AM,ARM,51,29800,2968000,40.00,45.00,asia 45 | 4,New Caledonia,N. Cal.,NC,NCL,540,19060,216494,-21.50,165.50,ocean 46 | 4,Kuwait,Kuw.,KW,KWT,414,17820,2789132,29.50,47.75,asia 47 | 4,East Timor,E. Timor,TL,TLS,626,15007,1154625,-8.83,125.75,ocean 48 | 4,Vanuatu,Vanuatu,VU,VUT,548,12200,221552,-16.00,167.00,ocean 49 | 4,Qatar,Qatar,QA,QAT,634,11437,840926,25.50,51.25,asia 50 | 4,Lebanon,Leb.,LB,LBN,422,10400,4125247,33.83,35.83,asia 51 | 4,Brunei,Bru.,BN,BRN,96,5770,395027,4.50,114.67,ocean 52 | 4,French Polynesia,Fr. Poly.,PF,PYF,258,4167,270485,-15.00,-140.00,ocean 53 | 4,Samoa,Samoa,WS,WSM,882,2944,192001,-13.80,-172.18,ocean 54 | 4,Comoros,Com.,KM,COM,174,2170,773407,-12.17,44.25,ocean 55 | 4,N. Marianna Is.,N. Mar. Is.,MP,MNP,580,1007,60000,17.00,145.00,ocean 56 | 4,Kiribati,Kir.,KI,KIR,296,811,92533,-5.00,-170.00,ocean 57 | 4,Tonga,Tonga,TO,TON,776,748,122580,-20.00,-175.00,ocean 58 | 4,Singapore,Sing.,SG,SGP,702,692.7,4701069,1.37,103.80,asia 59 | 4,Bahrain,Bahr.,BH,BHR,48,665,738004,26.00,50.50,asia 60 | 4,Palau,Palau,PW,PLW,585,458,20303,7.46,134.56,ocean 61 | 4,Maldives,Mald.,MV,MDV,462,300,395650,3.20,73.00,asia 62 | 4,Wallis and Futuna,Wal./F.,WF,WLF,876,274,16025,-13.30,-176.20,ocean 63 | 4,Cook Is.,Cook Is.,CK,COK,184,240,21388,-21.25,-159.79,ocean 64 | 4,American Samoa,Am. Sam.,AS,ASM,16,199,57881,-14.33,-170.00,ocean 65 | 4,British Indian Ocean Territory,B.I.O.T.,IO,IOT,86,60,4000,-6.00,72.00,asia 66 | 4,Pitcairn,Pit.,PN,PCN,612,47,46,-25.07,-130.10,ocean 67 | 4,Tuvalu,Tuvalu,TV,TUV,798,26,10472,-8.00,178.00,ocean 68 | 4,Nauru,Nauru,NR,NRU,520,21,9267,-0.53,166.92,ocean 69 | 4,Tokelau,Tok.,TK,TKL,772,10,1433,-9.00,-171.75,ocean 70 | -------------------------------------------------------------------------------- /places/Countries-Australia-NZ.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Australia,Austl.,AU,AUS,36,7686850,21515754,-25.00,135.00,ocean 3 | 3,New Zealand,N.Z.,NZ,NZL,554,268680,4252277,-42.00,174.00,ocean 4 | -------------------------------------------------------------------------------- /places/Countries-East.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Russia,Rus.,RU,RUS,643,17100000,140702000,62.43,87.54,eu 3 | 3,China,China,CN,CHN,156,9596960,1330044000,35.00,105.00,asia 4 | 3,Australia,Austl.,AU,AUS,36,7686850,21515754,-25.00,135.00,ocean 5 | 3,India,India,IN,IND,356,3287590,1173108018,20.00,77.00,asia 6 | 3,Kazakhstan,Kaz.,KZ,KAZ,398,2717300,15340000,48.00,68.00,asia 7 | 3,Sudan,Sudan,SD,SDN,736,2505810,43939598,15.00,30.00,af 8 | 3,Algeria,Alg.,DZ,DZA,12,2381740,34586184,28.00,3.00,af 9 | 3,Dem. Rep. of the Congo,D.R.C.,CD,COD,180,2345410,70916439,-4.74,22.15,af 10 | 3,Saudi Arabia,Sau. Ar.,SA,SAU,682,1960582,25731776,21.62,47.11,asia 11 | 3,Indonesia,Indon.,ID,IDN,364,1919440,242968342,-5.00,120.00,ocean 12 | 3,Libya,Libya,LY,LBY,434,1759540,6461454,25.00,17.00,af 13 | 3,Iran,Iran,IR,IRN,364,1648000,76923300,32.00,53.00,asia 14 | 3,Mongolia,Mong.,MN,MNG,496,1565000,3086918,46.00,105.00,asia 15 | 3,Chad,Chad,TD,TCD,148,1284000,10543464,15.00,19.00,af 16 | 3,Niger,Niger,NE,NER,562,1267000,15878271,16.00,8.00,af 17 | 3,Angola,Ang.,AO,AGO,24,1246700,13068161,-12.50,18.50,af 18 | 3,S. Africa,S. Afr.,ZA,ZAF,710,1219912,49000000,-29.69,22.68,af 19 | 3,Ethiopia,Eth.,ET,ETH,231,1127127,88013491,8.00,38.00,af 20 | 3,Mauritania,Maur.,MR,MRT,478,1030700,3205060,20.00,-12.00,af 21 | 3,Egypt,Egypt,EG,EGY,818,1001450,80471869,27.00,30.00,af 22 | 3,Tanzania,Tan.,TZ,TZA,834,945087,41892895,-6.00,35.00,af 23 | 3,Nigeria,Nig.,NG,NGA,566,923768,154000000,10.00,8.00,af 24 | 3,Namibia,Nmb.,NA,NAM,516,825418,2128471,-22.00,17.00,af 25 | 3,Pakistan,Pak.,PK,PAK,586,803940,184404791,30.00,70.00,asia 26 | 3,Mozambique,Moz.,MZ,MOZ,508,801590,22061451,-18.25,35.00,af 27 | 3,Turkey,Tur.,TR,TUR,792,780580,77804122,39.00,35.00,asia 28 | 3,Zambia,Zam.,ZM,ZMB,894,752614,13460305,-14.60,26.37,af 29 | 3,Myanmar,Mya.,MM,MMR,104,678500,53414374,22.00,98.00,asia 30 | 3,Afghanistan,Afg.,AF,AFG,4,647500,29121286,33.00,66.00,asia 31 | 3,Somalia,Som.,SO,SOM,706,637657,10112453,6.00,48.00,af 32 | 3,Central African Republic,C.A.R.,CF,CAF,140,622984,4844927,7.00,21.00,af 33 | 3,Ukraine,Ukr.,UA,UKR,804,603700,45415596,49.00,32.00,eu 34 | 3,Botswana,Bots.,BW,BWA,72,600370,2029307,-22.00,24.00,af 35 | 3,Madagascar,Madag.,MG,MDG,450,587040,21281844,-20.00,47.00,af 36 | 3,Kenya,Kenya,KE,KEN,404,582650,40046566,1.00,38.00,af 37 | 3,France,Fr.,FR,FRA,250,547030,64768389,46.00,2.00,eu 38 | 3,Yemen,Yemen,YE,YEM,887,527970,23495361,15.50,47.50,asia 39 | 3,Thailand,Thai.,TH,THA,764,514000,67089500,15.00,100.00,asia 40 | 3,Spain,Spain,ES,ESP,724,504782,46505963,40.00,-4.00,eu 41 | 3,Turkmenistan,Turkmen.,TM,TKM,795,488100,4940916,40.00,60.00,asia 42 | 3,Cameroon,Camrn.,CM,CMR,120,475440,19294149,6.00,12.00,af 43 | 3,Papua New Guinea,Pap. N. Gui.,PG,PNG,598,462840,6064515,-6.00,147.00,ocean 44 | 3,Sweden,Swe.,SE,SWE,752,449964,9045000,62.00,15.00,eu 45 | 3,Morocco,Mor.,MA,MAR,504,446550,31627428,32.00,-5.00,af 46 | 3,Iraq,Iraq,IQ,IRQ,368,437072,29671605,33.00,44.00,asia 47 | 3,Japan,Japan,JP,JPN,392,377835,127288000,37.23,138.25,asia 48 | 3,Germany,Ger.,DE,DEU,276,357021,82369000,51.50,10.50,eu 49 | 3,Congo,Congo,CG,COG,178,342000,3039126,-1.00,15.00,af 50 | 3,Finland,Fin.,FI,FIN,246,337030,5244000,64.00,26.00,eu 51 | 3,Malaysia,Malay.,MY,MYS,458,329750,28274729,2.50,112.50,ocean 52 | 3,Vietnam,Viet.,VN,VNM,704,329560,89571130,16.17,107.83,asia 53 | 3,Norway,Nor.,NO,NOR,578,324220,4907000,62.00,10.00,eu 54 | 3,Poland,Pol.,PL,POL,616,312685,38500000,52.00,20.00,eu 55 | 3,Italy,Italy,IT,ITA,380,301230,58145000,42.83,12.83,eu 56 | 3,Philippines,Phil.,PH,PHL,608,300000,99900177,13.00,122.00,ocean 57 | 3,New Zealand,N.Z.,NZ,NZL,554,268680,4252277,-42.00,174.00,ocean 58 | 3,United Kingdom,U.K.,GB,GBR,826,244820,62348447,54.90,-3.12,eu 59 | 3,Romania,Rom.,RO,ROU,642,237500,21959278,46.00,25.00,eu 60 | 3,Oman,Oman,OM,OMN,512,212460,2967717,21.00,57.00,asia 61 | 3,Belarus,Bela.,BY,BLR,112,207600,9685000,53.00,28.00,eu 62 | 3,Kyrgyzstan,Kyrg.,KG,KGZ,417,198500,5508626,41.00,75.00,asia 63 | 3,Senegal,Sen.,SN,SEN,686,196190,12323252,14.00,-14.00,af 64 | 3,Syria,Syria,SY,SYR,760,185180,22198110,35.00,38.00,asia 65 | 3,Tunisia,Tun.,TN,TUN,788,163610,10589025,34.00,9.00,af 66 | 3,Bangladesh,Bngl.,BD,BGD,50,144000,156118464,24.00,90.00,asia 67 | 3,Nepal,Nepal,NP,NPL,524,140800,28951852,28.00,84.00,asia 68 | 3,Greece,Grc.,GR,GRC,300,131940,11000000,39.00,22.00,eu 69 | 3,N. Korea,N. Kor.,KP,PRK,408,120540,22912177,40.00,127.00,asia 70 | 3,Bulgaria,Blg.,BG,BGR,100,110910,7148785,43.00,25.00,eu 71 | 3,Iceland,Ice.,IS,ISL,352,103000,308910,65.00,-18.00,eu 72 | 3,S. Korea,S. Kor.,KR,KOR,410,98480,48422644,37.00,127.50,asia 73 | 3,Portugal,Port.,PT,PRT,620,92391,10676000,39.50,-8.00,eu 74 | 3,Azerbaijan,Azer.,AZ,AZE,31,86600,8303512,40.50,47.50,asia 75 | 3,United Arab Emirates,U.A.E.,AE,ARE,784,82880,4975593,24.00,54.00,asia 76 | 3,Czech Republic,Czech Rep.,CZ,CZE,203,78866,10476000,49.75,15.00,eu 77 | 3,Sri Lanka,Sri L.,LK,LKA,144,65610,21513990,7.00,81.00,asia 78 | 3,Denmark,Den.,DK,DNK,208,43094,5484000,56.00,10.00,eu 79 | 3,Solomon Is.,Sol. Is.,SB,SLB,90,28450,559198,-8.00,159.00,ocean 80 | 3,Israel,Isr.,IL,ISR,376,20770,7353985,31.18,34.88,asia 81 | 3,Fiji,Fiji,FJ,FJI,242,18270,875983,-18.00,178.00,ocean 82 | 3,Micronesia,Micron.,FM,FSM,583,702,108105,5.00,152.00,ocean 83 | 3,Marshall Is.,Marsh. Is.,MH,MHL,584,181.3,65859,10.00,167.00,ocean 84 | 4,Mali,Mali,ML,MLI,466,1240000,13796354,17.00,-4.00,af 85 | 4,Uzbekistan,Uzb.,UZ,UZB,860,447400,27865738,41.00,64.00,asia 86 | 4,Zimbabwe,Zimb.,ZW,ZWE,716,390580,11651858,-19.00,29.00,af 87 | 4,Cote d'Ivoire,C. Iv.,CI,CIV,384,322460,21058798,8.00,-5.00,af 88 | 4,Burkina Faso,Burkina,BF,BFA,854,274200,16241811,13.00,-2.00,af 89 | 4,Gabon,Gabon,GA,GAB,266,267667,1545255,-1.00,11.75,af 90 | 4,W. Sahara,W. Sah.,EH,ESH,732,266000,273008,24.49,-12.66,af 91 | 4,Guinea,Gui.,GN,GIN,324,245857,10324025,11.00,-10.00,af 92 | 4,Ghana,Ghana,GH,GHA,288,239460,24339838,8.00,-2.00,af 93 | 4,Laos,Laos,LA,LAO,418,236800,6368162,18.00,105.00,asia 94 | 4,Uganda,Ug.,UG,UGA,800,236040,33398682,2.00,33.00,af 95 | 4,Cambodia,Camb.,KH,KHM,116,181040,14453680,13.00,105.00,asia 96 | 4,Tajikistan,Taj.,TJ,TJK,762,143100,7487489,39.00,71.00,asia 97 | 4,Eritrea,Erit.,ER,ERI,232,121320,5792984,15.00,39.00,af 98 | 4,Malawi,Malawi,MW,MWI,454,118480,15447500,-13.50,34.00,af 99 | 4,Benin,Benin,BJ,BEN,204,112620,9056010,9.50,2.25,af 100 | 4,Liberia,Lib.,LR,LBR,430,111370,3685076,6.50,-9.50,af 101 | 4,Hungary,Hung.,HU,HUN,348,93030,9930000,47.00,20.00,eu 102 | 4,Jordan,Jord.,JO,JOR,400,92300,6407085,31.00,36.00,asia 103 | 4,Serbia,Serb.,RS,SRB,688,88361,7344847,44.82,20.46,eu 104 | 4,Austria,Aus.,AT,AUT,40,83858,8205000,47.33,13.33,eu 105 | 4,Sierra Leone,S.L.,SL,SLE,694,71740,5245695,8.50,-11.50,af 106 | 4,Ireland,Ire.,IE,IRL,372,70280,4622917,53.00,-8.00,eu 107 | 4,Georgia,Geor.,GE,GEO,268,69700,4630000,42.00,43.50,asia 108 | 4,Lithuania,Lith.,LT,LTU,440,65200,3565000,56.00,24.00,eu 109 | 4,Latvia,Lat.,LV,LVA,428,64589,2217969,57.00,25.00,eu 110 | 4,Togo,Togo,TG,TGO,768,56785,6587239,8.00,1.17,af 111 | 4,Croatia,Cro.,HR,HRV,191,56542,4491000,45.17,15.50,eu 112 | 4,Bosnia and Herzegovina,Bos.,BA,BIH,70,51129,4590000,44.25,17.83,eu 113 | 4,Slovakia,Slvk.,SK,SVK,703,48845,5455000,48.67,19.50,eu 114 | 4,Bhutan,Bhu.,BT,BTN,64,47000,699847,27.50,90.50,asia 115 | 4,Estonia,Est.,EE,EST,233,45226,1291170,59.00,26.00,eu 116 | 4,Netherlands,Neth.,NL,NLD,528,41526,16645000,52.50,5.75,eu 117 | 4,Switzerland,Switz.,CH,CHE,756,41290,7581000,47.00,8.01,eu 118 | 4,Guinea-Bissau,Gui.-B.,GW,GNB,624,36120,1565126,12.00,-15.00,af 119 | 4,Moldova,Mol.,MD,MDA,498,33843,4324000,47.00,29.00,eu 120 | 4,Belgium,Bel.,BE,BEL,56,30510,10403000,50.83,4.00,eu 121 | 4,Lesotho,Leso.,LS,LSO,426,30355,1919552,-29.50,28.25,af 122 | 4,Armenia,Arm.,AM,ARM,51,29800,2968000,40.00,45.00,asia 123 | 4,Albania,Alb.,AL,ALB,8,28748,2986952,41.00,20.00,eu 124 | 4,Equatorial Guinea,Eq. Gui.,GQ,GNQ,226,28051,1014999,2.00,10.00,af 125 | 4,Burundi,Bdi.,BI,BDI,108,27830,9863117,-3.50,30.00,af 126 | 4,Rwanda,Rw.,RW,RWA,646,26338,11055976,-2.00,30.00,af 127 | 4,Macedonia,Mac.,MK,MKD,807,25333,2061000,41.83,22.00,eu 128 | 4,Djibouti,Dji.,DJ,DJI,262,23000,740528,11.50,42.50,af 129 | 4,Slovenia,Slvn.,SI,SVN,705,20273,2007000,46.25,15.17,eu 130 | 4,New Caledonia,N. Cal.,NC,NCL,540,19060,216494,-21.50,165.50,ocean 131 | 4,Kuwait,Kuw.,KW,KWT,414,17820,2789132,29.50,47.75,asia 132 | 4,Swaziland,Swaz.,SZ,SWZ,748,17363,1354051,-26.50,31.50,af 133 | 4,East Timor,E. Timor,TL,TLS,626,15007,1154625,-8.83,125.75,ocean 134 | 4,Montenegro,Mont.,ME,MNE,499,14026,666730,43.50,19.30,eu 135 | 4,Vanuatu,Vanuatu,VU,VUT,548,12200,221552,-16.00,167.00,ocean 136 | 4,Qatar,Qatar,QA,QAT,634,11437,840926,25.50,51.25,asia 137 | 4,The Gambia,Gam.,GM,GMB,270,11300,1593256,13.50,-15.50,af 138 | 4,Lebanon,Leb.,LB,LBN,422,10400,4125247,33.83,35.83,asia 139 | 4,Cyprus,Cyp.,CY,CYP,196,9250,1102677,35.00,33.00,asia 140 | 4,Brunei,Bru.,BN,BRN,96,5770,395027,4.50,114.67,ocean 141 | 4,French Polynesia,Fr. Poly.,PF,PYF,258,4167,270485,-15.00,-140.00,ocean 142 | 4,Cape Verde,C.V.,CV,CPV,132,4033,508659,16.00,-24.00,af 143 | 4,Samoa,Samoa,WS,WSM,882,2944,192001,-13.80,-172.18,ocean 144 | 4,Luxembourg,Lux.,LU,LUX,442,2586,497538,49.75,6.17,eu 145 | 4,Comoros,Com.,KM,COM,174,2170,773407,-12.17,44.25,ocean 146 | 4,Mauritius,Mauritius,MU,MUS,480,2040,1294104,-20.30,57.58,af 147 | 4,Faroe Is.,Far. Is.,FO,FRO,234,1399,48228,62.00,-7.00,eu 148 | 4,N. Marianna Is.,N. Mar. Is.,MP,MNP,580,1007,60000,17.00,145.00,ocean 149 | 4,São Tomé and Príncipe,S. Tom./P.,ST,STP,678,1001,175808,1.00,7.00,af 150 | 4,Kiribati,Kir.,KI,KIR,296,811,92533,-5.00,-170.00,ocean 151 | 4,Tonga,Tonga,TO,TON,776,748,122580,-20.00,-175.00,ocean 152 | 4,Singapore,Sing.,SG,SGP,702,692.7,4701069,1.37,103.80,asia 153 | 4,Bahrain,Bahr.,BH,BHR,48,665,738004,26.00,50.50,asia 154 | 4,Andorra,And.,AD,AND,20,468,84000,42.50,1.50,eu 155 | 4,Palau,Palau,PW,PLW,585,458,20303,7.46,134.56,ocean 156 | 4,Seychelles,Sey.,SC,SYC,690,455,88340,-4.58,55.67,af 157 | 4,St. Helena,St. Hel.,SH,SHN,654,410,7460,-15.95,-5.70,af 158 | 4,Mayotte,May.,YT,MYT,175,374,159042,-12.83,45.17,af 159 | 4,Malta,Malta,MT,MLT,470,316,403000,35.92,14.43,eu 160 | 4,Maldives,Mald.,MV,MDV,462,300,395650,3.20,73.00,asia 161 | 4,Wallis and Futuna,Wal./F.,WF,WLF,876,274,16025,-13.30,-176.20,ocean 162 | 4,Cook Is.,Cook Is.,CK,COK,184,240,21388,-21.25,-159.79,ocean 163 | 4,American Samoa,Am. Sam.,AS,ASM,16,199,57881,-14.33,-170.00,ocean 164 | 4,Liechtenstein,Liech.,LI,LIE,438,160,35000,47.17,9.53,eu 165 | 4,Guernsey,Guern.,GG,GGY,831,78,65228,49.58,-2.33,eu 166 | 4,San Marino,S. Mar.,SM,SMR,674,61.2,31477,43.93,12.42,eu 167 | 4,British Indian Ocean Territory,B.I.O.T.,IO,IOT,86,60,4000,-6.00,72.00,asia 168 | 4,Pitcairn,Pit.,PN,PCN,612,47,46,-25.07,-130.10,ocean 169 | 4,Tuvalu,Tuvalu,TV,TUV,798,26,10472,-8.00,178.00,ocean 170 | 4,Nauru,Nauru,NR,NRU,520,21,9267,-0.53,166.92,ocean 171 | 4,Tokelau,Tok.,TK,TKL,772,10,1433,-9.00,-171.75,ocean 172 | 4,Gibraltar,Gib.,GI,GIB,292,6.5,27884,36.13,-5.35,eu 173 | 4,Monaco,Monaco,MC,MCO,492,2,32965,43.73,7.42,eu 174 | 4,Vatican City,Vatican City,VA,VAT,336,0.4,921,41.90,12.45,eu 175 | -------------------------------------------------------------------------------- /places/Countries-Eurasia.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Russia,Rus.,RU,RUS,643,17100000,140702000,62.43,87.54,eu 3 | 3,China,China,CN,CHN,156,9596960,1330044000,35.00,105.00,asia 4 | 3,India,India,IN,IND,356,3287590,1173108018,20.00,77.00,asia 5 | 3,Kazakhstan,Kaz.,KZ,KAZ,398,2717300,15340000,48.00,68.00,asia 6 | 3,Saudi Arabia,Sau. Ar.,SA,SAU,682,1960582,25731776,21.62,47.11,asia 7 | 3,Indonesia,Indon.,ID,IDN,364,1919440,242968342,-5.00,120.00,ocean 8 | 3,Iran,Iran,IR,IRN,364,1648000,76923300,32.00,53.00,asia 9 | 3,Mongolia,Mong.,MN,MNG,496,1565000,3086918,46.00,105.00,asia 10 | 3,Pakistan,Pak.,PK,PAK,586,803940,184404791,30.00,70.00,asia 11 | 3,Turkey,Tur.,TR,TUR,792,780580,77804122,39.00,35.00,asia 12 | 3,Myanmar,Mya.,MM,MMR,104,678500,53414374,22.00,98.00,asia 13 | 3,Afghanistan,Afg.,AF,AFG,4,647500,29121286,33.00,66.00,asia 14 | 3,Ukraine,Ukr.,UA,UKR,804,603700,45415596,49.00,32.00,eu 15 | 3,France,Fr.,FR,FRA,250,547030,64768389,46.00,2.00,eu 16 | 3,Yemen,Yemen,YE,YEM,887,527970,23495361,15.50,47.50,asia 17 | 3,Thailand,Thai.,TH,THA,764,514000,67089500,15.00,100.00,asia 18 | 3,Spain,Spain,ES,ESP,724,504782,46505963,40.00,-4.00,eu 19 | 3,Turkmenistan,Turkmen.,TM,TKM,795,488100,4940916,40.00,60.00,asia 20 | 3,Papua New Guinea,Pap. N. Gui.,PG,PNG,598,462840,6064515,-6.00,147.00,ocean 21 | 3,Sweden,Swe.,SE,SWE,752,449964,9045000,62.00,15.00,eu 22 | 3,Iraq,Iraq,IQ,IRQ,368,437072,29671605,33.00,44.00,asia 23 | 3,Japan,Japan,JP,JPN,392,377835,127288000,37.23,138.25,asia 24 | 3,Germany,Ger.,DE,DEU,276,357021,82369000,51.50,10.50,eu 25 | 3,Finland,Fin.,FI,FIN,246,337030,5244000,64.00,26.00,eu 26 | 3,Malaysia,Malay.,MY,MYS,458,329750,28274729,2.50,112.50,ocean 27 | 3,Vietnam,Viet.,VN,VNM,704,329560,89571130,16.17,107.83,asia 28 | 3,Norway,Nor.,NO,NOR,578,324220,4907000,62.00,10.00,eu 29 | 3,Poland,Pol.,PL,POL,616,312685,38500000,52.00,20.00,eu 30 | 3,Italy,Italy,IT,ITA,380,301230,58145000,42.83,12.83,eu 31 | 3,Philippines,Phil.,PH,PHL,608,300000,99900177,13.00,122.00,ocean 32 | 3,United Kingdom,U.K.,GB,GBR,826,244820,62348447,54.90,-3.12,eu 33 | 3,Romania,Rom.,RO,ROU,642,237500,21959278,46.00,25.00,eu 34 | 3,Oman,Oman,OM,OMN,512,212460,2967717,21.00,57.00,asia 35 | 3,Belarus,Bela.,BY,BLR,112,207600,9685000,53.00,28.00,eu 36 | 3,Kyrgyzstan,Kyrg.,KG,KGZ,417,198500,5508626,41.00,75.00,asia 37 | 3,Syria,Syria,SY,SYR,760,185180,22198110,35.00,38.00,asia 38 | 3,Bangladesh,Bngl.,BD,BGD,50,144000,156118464,24.00,90.00,asia 39 | 3,Nepal,Nepal,NP,NPL,524,140800,28951852,28.00,84.00,asia 40 | 3,Greece,Grc.,GR,GRC,300,131940,11000000,39.00,22.00,eu 41 | 3,N. Korea,N. Kor.,KP,PRK,408,120540,22912177,40.00,127.00,asia 42 | 3,Bulgaria,Blg.,BG,BGR,100,110910,7148785,43.00,25.00,eu 43 | 3,Iceland,Ice.,IS,ISL,352,103000,308910,65.00,-18.00,eu 44 | 3,S. Korea,S. Kor.,KR,KOR,410,98480,48422644,37.00,127.50,asia 45 | 3,Portugal,Port.,PT,PRT,620,92391,10676000,39.50,-8.00,eu 46 | 3,Azerbaijan,Azer.,AZ,AZE,31,86600,8303512,40.50,47.50,asia 47 | 3,United Arab Emirates,U.A.E.,AE,ARE,784,82880,4975593,24.00,54.00,asia 48 | 3,Czech Republic,Czech Rep.,CZ,CZE,203,78866,10476000,49.75,15.00,eu 49 | 3,Sri Lanka,Sri L.,LK,LKA,144,65610,21513990,7.00,81.00,asia 50 | 3,Denmark,Den.,DK,DNK,208,43094,5484000,56.00,10.00,eu 51 | 3,Solomon Is.,Sol. Is.,SB,SLB,90,28450,559198,-8.00,159.00,ocean 52 | 3,Israel,Isr.,IL,ISR,376,20770,7353985,31.18,34.88,asia 53 | 3,Fiji,Fiji,FJ,FJI,242,18270,875983,-18.00,178.00,ocean 54 | 3,Micronesia,Micron.,FM,FSM,583,702,108105,5.00,152.00,ocean 55 | 3,Marshall Is.,Marsh. Is.,MH,MHL,584,181.3,65859,10.00,167.00,ocean 56 | 4,Uzbekistan,Uzb.,UZ,UZB,860,447400,27865738,41.00,64.00,asia 57 | 4,Laos,Laos,LA,LAO,418,236800,6368162,18.00,105.00,asia 58 | 4,Cambodia,Camb.,KH,KHM,116,181040,14453680,13.00,105.00,asia 59 | 4,Tajikistan,Taj.,TJ,TJK,762,143100,7487489,39.00,71.00,asia 60 | 4,Hungary,Hung.,HU,HUN,348,93030,9930000,47.00,20.00,eu 61 | 4,Jordan,Jord.,JO,JOR,400,92300,6407085,31.00,36.00,asia 62 | 4,Serbia,Serb.,RS,SRB,688,88361,7344847,44.82,20.46,eu 63 | 4,Austria,Aus.,AT,AUT,40,83858,8205000,47.33,13.33,eu 64 | 4,Ireland,Ire.,IE,IRL,372,70280,4622917,53.00,-8.00,eu 65 | 4,Georgia,Geor.,GE,GEO,268,69700,4630000,42.00,43.50,asia 66 | 4,Lithuania,Lith.,LT,LTU,440,65200,3565000,56.00,24.00,eu 67 | 4,Latvia,Lat.,LV,LVA,428,64589,2217969,57.00,25.00,eu 68 | 4,Croatia,Cro.,HR,HRV,191,56542,4491000,45.17,15.50,eu 69 | 4,Bosnia and Herzegovina,Bos.,BA,BIH,70,51129,4590000,44.25,17.83,eu 70 | 4,Slovakia,Slvk.,SK,SVK,703,48845,5455000,48.67,19.50,eu 71 | 4,Bhutan,Bhu.,BT,BTN,64,47000,699847,27.50,90.50,asia 72 | 4,Estonia,Est.,EE,EST,233,45226,1291170,59.00,26.00,eu 73 | 4,Netherlands,Neth.,NL,NLD,528,41526,16645000,52.50,5.75,eu 74 | 4,Switzerland,Switz.,CH,CHE,756,41290,7581000,47.00,8.01,eu 75 | 4,Moldova,Mol.,MD,MDA,498,33843,4324000,47.00,29.00,eu 76 | 4,Belgium,Bel.,BE,BEL,56,30510,10403000,50.83,4.00,eu 77 | 4,Armenia,Arm.,AM,ARM,51,29800,2968000,40.00,45.00,asia 78 | 4,Albania,Alb.,AL,ALB,8,28748,2986952,41.00,20.00,eu 79 | 4,Macedonia,Mac.,MK,MKD,807,25333,2061000,41.83,22.00,eu 80 | 4,Slovenia,Slvn.,SI,SVN,705,20273,2007000,46.25,15.17,eu 81 | 4,New Caledonia,N. Cal.,NC,NCL,540,19060,216494,-21.50,165.50,ocean 82 | 4,Kuwait,Kuw.,KW,KWT,414,17820,2789132,29.50,47.75,asia 83 | 4,East Timor,E. Timor,TL,TLS,626,15007,1154625,-8.83,125.75,ocean 84 | 4,Montenegro,Mont.,ME,MNE,499,14026,666730,43.50,19.30,eu 85 | 4,Vanuatu,Vanuatu,VU,VUT,548,12200,221552,-16.00,167.00,ocean 86 | 4,Qatar,Qatar,QA,QAT,634,11437,840926,25.50,51.25,asia 87 | 4,Lebanon,Leb.,LB,LBN,422,10400,4125247,33.83,35.83,asia 88 | 4,Cyprus,Cyp.,CY,CYP,196,9250,1102677,35.00,33.00,asia 89 | 4,Brunei,Bru.,BN,BRN,96,5770,395027,4.50,114.67,ocean 90 | 4,French Polynesia,Fr. Poly.,PF,PYF,258,4167,270485,-15.00,-140.00,ocean 91 | 4,Samoa,Samoa,WS,WSM,882,2944,192001,-13.80,-172.18,ocean 92 | 4,Luxembourg,Lux.,LU,LUX,442,2586,497538,49.75,6.17,eu 93 | 4,Comoros,Com.,KM,COM,174,2170,773407,-12.17,44.25,ocean 94 | 4,Faroe Is.,Far. Is.,FO,FRO,234,1399,48228,62.00,-7.00,eu 95 | 4,N. Marianna Is.,N. Mar. Is.,MP,MNP,580,1007,60000,17.00,145.00,ocean 96 | 4,Kiribati,Kir.,KI,KIR,296,811,92533,-5.00,-170.00,ocean 97 | 4,Tonga,Tonga,TO,TON,776,748,122580,-20.00,-175.00,ocean 98 | 4,Singapore,Sing.,SG,SGP,702,692.7,4701069,1.37,103.80,asia 99 | 4,Bahrain,Bahr.,BH,BHR,48,665,738004,26.00,50.50,asia 100 | 4,Andorra,And.,AD,AND,20,468,84000,42.50,1.50,eu 101 | 4,Palau,Palau,PW,PLW,585,458,20303,7.46,134.56,ocean 102 | 4,Malta,Malta,MT,MLT,470,316,403000,35.92,14.43,eu 103 | 4,Maldives,Mald.,MV,MDV,462,300,395650,3.20,73.00,asia 104 | 4,Wallis and Futuna,Wal./F.,WF,WLF,876,274,16025,-13.30,-176.20,ocean 105 | 4,Cook Is.,Cook Is.,CK,COK,184,240,21388,-21.25,-159.79,ocean 106 | 4,American Samoa,Am. Sam.,AS,ASM,16,199,57881,-14.33,-170.00,ocean 107 | 4,Liechtenstein,Liech.,LI,LIE,438,160,35000,47.17,9.53,eu 108 | 4,Guernsey,Guern.,GG,GGY,831,78,65228,49.58,-2.33,eu 109 | 4,San Marino,S. Mar.,SM,SMR,674,61.2,31477,43.93,12.42,eu 110 | 4,British Indian Ocean Territory,B.I.O.T.,IO,IOT,86,60,4000,-6.00,72.00,asia 111 | 4,Pitcairn,Pit.,PN,PCN,612,47,46,-25.07,-130.10,ocean 112 | 4,Tuvalu,Tuvalu,TV,TUV,798,26,10472,-8.00,178.00,ocean 113 | 4,Nauru,Nauru,NR,NRU,520,21,9267,-0.53,166.92,ocean 114 | 4,Tokelau,Tok.,TK,TKL,772,10,1433,-9.00,-171.75,ocean 115 | 4,Gibraltar,Gib.,GI,GIB,292,6.5,27884,36.13,-5.35,eu 116 | 4,Monaco,Monaco,MC,MCO,492,2,32965,43.73,7.42,eu 117 | 4,Vatican City,Vatican City,VA,VAT,336,0.4,921,41.90,12.45,eu 118 | -------------------------------------------------------------------------------- /places/Countries-Europe.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Ukraine,Ukr.,UA,UKR,804,603700,45415596,49.00,32.00,eu 3 | 3,France,Fr.,FR,FRA,250,547030,64768389,46.00,2.00,eu 4 | 3,Spain,Spain,ES,ESP,724,504782,46505963,40.00,-4.00,eu 5 | 3,Sweden,Swe.,SE,SWE,752,449964,9045000,62.00,15.00,eu 6 | 3,Germany,Ger.,DE,DEU,276,357021,82369000,51.50,10.50,eu 7 | 3,Finland,Fin.,FI,FIN,246,337030,5244000,64.00,26.00,eu 8 | 3,Norway,Nor.,NO,NOR,578,324220,4907000,62.00,10.00,eu 9 | 3,Poland,Pol.,PL,POL,616,312685,38500000,52.00,20.00,eu 10 | 3,Italy,Italy,IT,ITA,380,301230,58145000,42.83,12.83,eu 11 | 3,United Kingdom,U.K.,GB,GBR,826,244820,62348447,54.90,-3.12,eu 12 | 3,Romania,Rom.,RO,ROU,642,237500,21959278,46.00,25.00,eu 13 | 3,Belarus,Bela.,BY,BLR,112,207600,9685000,53.00,28.00,eu 14 | 3,Greece,Grc.,GR,GRC,300,131940,11000000,39.00,22.00,eu 15 | 3,Bulgaria,Blg.,BG,BGR,100,110910,7148785,43.00,25.00,eu 16 | 3,Iceland,Ice.,IS,ISL,352,103000,308910,65.00,-18.00,eu 17 | 3,Portugal,Port.,PT,PRT,620,92391,10676000,39.50,-8.00,eu 18 | 3,Czech Republic,Czech Rep.,CZ,CZE,203,78866,10476000,49.75,15.00,eu 19 | 3,Denmark,Den.,DK,DNK,208,43094,5484000,56.00,10.00,eu 20 | 4,Hungary,Hung.,HU,HUN,348,93030,9930000,47.00,20.00,eu 21 | 4,Serbia,Serb.,RS,SRB,688,88361,7344847,44.82,20.46,eu 22 | 4,Austria,Aus.,AT,AUT,40,83858,8205000,47.33,13.33,eu 23 | 4,Ireland,Ire.,IE,IRL,372,70280,4622917,53.00,-8.00,eu 24 | 4,Lithuania,Lith.,LT,LTU,440,65200,3565000,56.00,24.00,eu 25 | 4,Latvia,Lat.,LV,LVA,428,64589,2217969,57.00,25.00,eu 26 | 4,Croatia,Cro.,HR,HRV,191,56542,4491000,45.17,15.50,eu 27 | 4,Bosnia and Herzegovina,Bos.,BA,BIH,70,51129,4590000,44.25,17.83,eu 28 | 4,Slovakia,Slvk.,SK,SVK,703,48845,5455000,48.67,19.50,eu 29 | 4,Estonia,Est.,EE,EST,233,45226,1291170,59.00,26.00,eu 30 | 4,Netherlands,Neth.,NL,NLD,528,41526,16645000,52.50,5.75,eu 31 | 4,Switzerland,Switz.,CH,CHE,756,41290,7581000,47.00,8.01,eu 32 | 4,Moldova,Mol.,MD,MDA,498,33843,4324000,47.00,29.00,eu 33 | 4,Belgium,Bel.,BE,BEL,56,30510,10403000,50.83,4.00,eu 34 | 4,Albania,Alb.,AL,ALB,8,28748,2986952,41.00,20.00,eu 35 | 4,Macedonia,Mac.,MK,MKD,807,25333,2061000,41.83,22.00,eu 36 | 4,Slovenia,Slvn.,SI,SVN,705,20273,2007000,46.25,15.17,eu 37 | 4,Montenegro,Mont.,ME,MNE,499,14026,666730,43.50,19.30,eu 38 | 4,Cyprus,Cyp.,CY,CYP,196,9250,1102677,35.00,33.00,asia 39 | 4,Luxembourg,Lux.,LU,LUX,442,2586,497538,49.75,6.17,eu 40 | 4,Faroe Is.,Far. Is.,FO,FRO,234,1399,48228,62.00,-7.00,eu 41 | 4,Andorra,And.,AD,AND,20,468,84000,42.50,1.50,eu 42 | 4,Malta,Malta,MT,MLT,470,316,403000,35.92,14.43,eu 43 | 4,Liechtenstein,Liech.,LI,LIE,438,160,35000,47.17,9.53,eu 44 | 4,Guernsey,Guern.,GG,GGY,831,78,65228,49.58,-2.33,eu 45 | 4,San Marino,S. Mar.,SM,SMR,674,61.2,31477,43.93,12.42,eu 46 | 4,Gibraltar,Gib.,GI,GIB,292,6.5,27884,36.13,-5.35,eu 47 | 4,Monaco,Monaco,MC,MCO,492,2,32965,43.73,7.42,eu 48 | 4,Vatican City,Vatican City,VA,VAT,336,0.4,921,41.90,12.45,eu 49 | -------------------------------------------------------------------------------- /places/Countries-North-America.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Canada,Can.,CA,CAN,124,9984670,33679000,58.08,-101.95,na 3 | 3,United States,U.S.,US,USA,840,9629091,310232863,39.76,-98.50,na 4 | 3,Greenland,Green.,GL,GRL,304,2166086,56375,72.00,-40.00,na 5 | 3,Mexico,Mex.,MX,MEX,484,1972550,112468855,23.00,-102.00,na 6 | 3,Cuba,Cuba,CU,CUB,192,110860,11423000,22.00,-79.50,cen 7 | 4,Nicaragua,Nic.,NI,NIC,558,129494,5995928,13.00,-85.00,cen 8 | 4,Honduras,Hond.,HN,HND,340,112090,7989415,15.00,-86.50,cen 9 | 4,Guatemala,Guat.,GT,GTM,320,108890,13550440,15.50,-90.25,cen 10 | 4,Panama,Pan.,PA,PAN,591,78200,3410676,9.00,-80.00,cen 11 | 4,Costa Rica,C.R.,CR,CRI,188,51100,4516220,10.00,-84.00,cen 12 | 4,Dominican Republic,Dom. Rep.,DO,DOM,214,48730,9823821,19.00,-70.67,na 13 | 4,Haiti,Haiti,HT,HTI,332,27750,9648924,19.00,-72.42,na 14 | 4,Belize,Belize,BZ,BLZ,84,22966,314522,17.25,-88.75,cen 15 | 4,El Salvador,El Sal.,SV,SLV,222,21040,6052064,13.50,-88.92,cen 16 | 4,Bahamas,Bah.,BS,BHS,44,13940,301790,24.00,-76.00,na 17 | 4,Jamaica,Jam.,JM,JAM,388,10991,2847232,18.25,-77.50,na 18 | 4,Puerto Rico,P.R.,PR,PRI,630,9104,3916632,18.25,-66.50,na 19 | 4,Trinidad and Tobago,Trin.,TT,TTO,780,5128,1228691,11.00,-61.00,na 20 | 4,Guadeloupe,Gaud.,GP,GLP,312,1628,443000,16.25,-61.58,na 21 | 4,Martinique,Mart.,MQ,MTQ,474,1100,432900,14.67,-61.00,na 22 | 4,Dominica,Dom.,DM,DMA,212,754,72813,15.50,-61.33,na 23 | 4,St. Lucia,St. Luc.,LC,LCA,662,616,160922,13.88,-60.97,na 24 | 4,Antigua and Barbuda,Antig.,AG,ATG,28,443,86754,17.05,-61.80,na 25 | 4,Barbados,Barb.,BB,BRB,52,431,285653,13.17,-59.53,na 26 | 4,Turks and Caicos Is.,T./C. Is.,TC,TCA,796,430,20556,21.73,-71.58,na 27 | 4,St. Vincent and the Grenadines,St. Vin.,VC,VCT,670,389,120000,13.25,-61.20,na 28 | 4,Virgin Is. (U.S.),V.I.U.S.,VI,VIR,850,352,108708,18.35,-64.98,na 29 | 4,Grenada,Gren.,GD,GRD,308,344,107818,12.12,-61.67,na 30 | 4,Cayman Is.,Cay. Is.,KY,CYM,136,262,44270,19.50,-80.67,na 31 | 4,St. Kitts and Nevis,St. K./N.,KN,KNA,659,261,49898,17.33,-62.75,na 32 | 4,St. Pierre and Miquelon,St. P./M.,PM,SPM,666,242,6125,46.84,-56.32,na 33 | 4,British Virgin Is.,Br. Vir. Is.,VG,VGB,92,153,21730,18.50,-64.50,na 34 | 4,Bermuda,Ber.,BM,BMU,60,53,65365,32.33,-64.75,na 35 | -------------------------------------------------------------------------------- /places/Countries-South-America.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Brazil,Braz.,BR,BRA,76,8511965,201103330,-10.00,-55.00,sa 3 | 3,Argentina,Arg.,AR,ARG,32,2766890,41343201,-34.00,-64.00,sa 4 | 3,Peru,Peru,PE,PER,604,1285220,29907003,-10.00,-76.00,sa 5 | 3,Colombia,Col.,CO,COL,170,1138910,44205293,4.00,-72.00,sa 6 | 3,Bolivia,Bol.,BO,BOL,68,1098580,9947418,-17.00,-65.00,sa 7 | 3,Venezuela,Ven.,VE,VEN,862,912050,27223228,8.00,-66.00,sa 8 | 3,Chile,Chile,CL,CHL,152,756950,16746491,-32.55,-71.37,sa 9 | 3,Paraguay,Para.,PY,PRY,600,406750,6375830,-22.99,-58.00,sa 10 | 3,Ecuador,Ec.,EC,ECU,218,283560,14790608,-2.00,-77.50,sa 11 | 3,Uruguay,Ur.,UY,URY,858,176220,3477000,-33.00,-56.00,sa 12 | 4,Guyana,Guy.,GY,GUY,328,214970,748486,5.00,-59.00,sa 13 | 4,Suriname,Sur.,SR,SUR,740,163270,492829,4.00,-56.00,sa 14 | 4,French Guiana,Fr. Gu.,GF,GUF,254,91000,195506,4.00,-53.00,sa 15 | 4,Falkland Is.,Falk. Is.,FK,FLK,238,12173,2638,-51.75,-59.17,sa 16 | 4,S. Georgia,S. Geor.,GS,SGS,239,3756,1000,-54.50,-37.00,sa 17 | 4,Netherlands Antilles,Neth. Ant.,AN,ANT,530,960,136197,12.17,-69.00,sa 18 | -------------------------------------------------------------------------------- /places/Countries-West.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Canada,Can.,CA,CAN,124,9984670,33679000,58.08,-101.95,na 3 | 3,United States,U.S.,US,USA,840,9629091,310232863,39.76,-98.50,na 4 | 3,Brazil,Braz.,BR,BRA,76,8511965,201103330,-10.00,-55.00,sa 5 | 3,Argentina,Arg.,AR,ARG,32,2766890,41343201,-34.00,-64.00,sa 6 | 3,Greenland,Green.,GL,GRL,304,2166086,56375,72.00,-40.00,na 7 | 3,Mexico,Mex.,MX,MEX,484,1972550,112468855,23.00,-102.00,na 8 | 3,Peru,Peru,PE,PER,604,1285220,29907003,-10.00,-76.00,sa 9 | 3,Colombia,Col.,CO,COL,170,1138910,44205293,4.00,-72.00,sa 10 | 3,Bolivia,Bol.,BO,BOL,68,1098580,9947418,-17.00,-65.00,sa 11 | 3,Venezuela,Ven.,VE,VEN,862,912050,27223228,8.00,-66.00,sa 12 | 3,Chile,Chile,CL,CHL,152,756950,16746491,-32.55,-71.37,sa 13 | 3,Paraguay,Para.,PY,PRY,600,406750,6375830,-22.99,-58.00,sa 14 | 3,Ecuador,Ec.,EC,ECU,218,283560,14790608,-2.00,-77.50,sa 15 | 3,Uruguay,Ur.,UY,URY,858,176220,3477000,-33.00,-56.00,sa 16 | 3,Cuba,Cuba,CU,CUB,192,110860,11423000,22.00,-79.50,cen 17 | 4,Guyana,Guy.,GY,GUY,328,214970,748486,5.00,-59.00,sa 18 | 4,Suriname,Sur.,SR,SUR,740,163270,492829,4.00,-56.00,sa 19 | 4,Nicaragua,Nic.,NI,NIC,558,129494,5995928,13.00,-85.00,cen 20 | 4,Honduras,Hond.,HN,HND,340,112090,7989415,15.00,-86.50,cen 21 | 4,Guatemala,Guat.,GT,GTM,320,108890,13550440,15.50,-90.25,cen 22 | 4,French Guiana,Fr. Gu.,GF,GUF,254,91000,195506,4.00,-53.00,sa 23 | 4,Panama,Pan.,PA,PAN,591,78200,3410676,9.00,-80.00,cen 24 | 4,Costa Rica,C.R.,CR,CRI,188,51100,4516220,10.00,-84.00,cen 25 | 4,Dominican Republic,Dom. Rep.,DO,DOM,214,48730,9823821,19.00,-70.67,na 26 | 4,Haiti,Haiti,HT,HTI,332,27750,9648924,19.00,-72.42,na 27 | 4,Belize,Belize,BZ,BLZ,84,22966,314522,17.25,-88.75,cen 28 | 4,El Salvador,El Sal.,SV,SLV,222,21040,6052064,13.50,-88.92,cen 29 | 4,Bahamas,Bah.,BS,BHS,44,13940,301790,24.00,-76.00,na 30 | 4,Falkland Is.,Falk. Is.,FK,FLK,238,12173,2638,-51.75,-59.17,sa 31 | 4,Jamaica,Jam.,JM,JAM,388,10991,2847232,18.25,-77.50,na 32 | 4,Puerto Rico,P.R.,PR,PRI,630,9104,3916632,18.25,-66.50,na 33 | 4,Trinidad and Tobago,Trin.,TT,TTO,780,5128,1228691,11.00,-61.00,na 34 | 4,S. Georgia,S. Geor.,GS,SGS,239,3756,1000,-54.50,-37.00,sa 35 | 4,Guadeloupe,Gaud.,GP,GLP,312,1628,443000,16.25,-61.58,na 36 | 4,Martinique,Mart.,MQ,MTQ,474,1100,432900,14.67,-61.00,na 37 | 4,Netherlands Antilles,Neth. Ant.,AN,ANT,530,960,136197,12.17,-69.00,sa 38 | 4,Dominica,Dom.,DM,DMA,212,754,72813,15.50,-61.33,na 39 | 4,St. Lucia,St. Luc.,LC,LCA,662,616,160922,13.88,-60.97,na 40 | 4,Antigua and Barbuda,Antig.,AG,ATG,28,443,86754,17.05,-61.80,na 41 | 4,Barbados,Barb.,BB,BRB,52,431,285653,13.17,-59.53,na 42 | 4,Turks and Caicos Is.,T./C. Is.,TC,TCA,796,430,20556,21.73,-71.58,na 43 | 4,St. Vincent and the Grenadines,St. Vin.,VC,VCT,670,389,120000,13.25,-61.20,na 44 | 4,Virgin Is. (U.S.),V.I.U.S.,VI,VIR,850,352,108708,18.35,-64.98,na 45 | 4,Grenada,Gren.,GD,GRD,308,344,107818,12.12,-61.67,na 46 | 4,Cayman Is.,Cay. Is.,KY,CYM,136,262,44270,19.50,-80.67,na 47 | 4,St. Kitts and Nevis,St. K./N.,KN,KNA,659,261,49898,17.33,-62.75,na 48 | 4,St. Pierre and Miquelon,St. P./M.,PM,SPM,666,242,6125,46.84,-56.32,na 49 | 4,British Virgin Is.,Br. Vir. Is.,VG,VGB,92,153,21730,18.50,-64.50,na 50 | 4,Bermuda,Ber.,BM,BMU,60,53,65365,32.33,-64.75,na 51 | -------------------------------------------------------------------------------- /places/Countries.csv: -------------------------------------------------------------------------------- 1 | zoom,name,abbreviation,ISO alpha 2,ISO alpha 3,ISO numeric,land area km,population,latitude,longitude,continent 2 | 3,Russia,Rus.,RU,RUS,643,17100000,140702000,62.43,87.54,eu 3 | 3,Canada,Can.,CA,CAN,124,9984670,33679000,58.08,-101.95,na 4 | 3,United States,U.S.,US,USA,840,9629091,310232863,39.76,-98.50,na 5 | 3,China,China,CN,CHN,156,9596960,1330044000,35.00,105.00,asia 6 | 3,Brazil,Braz.,BR,BRA,76,8511965,201103330,-10.00,-55.00,sa 7 | 3,Australia,Austl.,AU,AUS,36,7686850,21515754,-25.00,135.00,ocean 8 | 3,India,India,IN,IND,356,3287590,1173108018,20.00,77.00,asia 9 | 3,Argentina,Arg.,AR,ARG,32,2766890,41343201,-34.00,-64.00,sa 10 | 3,Kazakhstan,Kaz.,KZ,KAZ,398,2717300,15340000,48.00,68.00,asia 11 | 3,Sudan,Sudan,SD,SDN,736,2505810,43939598,15.00,30.00,af 12 | 3,Algeria,Alg.,DZ,DZA,12,2381740,34586184,28.00,3.00,af 13 | 3,Dem. Rep. of the Congo,D.R.C.,CD,COD,180,2345410,70916439,-4.74,22.15,af 14 | 3,Greenland,Green.,GL,GRL,304,2166086,56375,72.00,-40.00,na 15 | 3,Mexico,Mex.,MX,MEX,484,1972550,112468855,23.00,-102.00,na 16 | 3,Saudi Arabia,Sau. Ar.,SA,SAU,682,1960582,25731776,21.62,47.11,asia 17 | 3,Indonesia,Indon.,ID,IDN,364,1919440,242968342,-5.00,120.00,ocean 18 | 3,Libya,Libya,LY,LBY,434,1759540,6461454,25.00,17.00,af 19 | 3,Iran,Iran,IR,IRN,364,1648000,76923300,32.00,53.00,asia 20 | 3,Mongolia,Mong.,MN,MNG,496,1565000,3086918,46.00,105.00,asia 21 | 3,Peru,Peru,PE,PER,604,1285220,29907003,-10.00,-76.00,sa 22 | 3,Chad,Chad,TD,TCD,148,1284000,10543464,15.00,19.00,af 23 | 3,Niger,Niger,NE,NER,562,1267000,15878271,16.00,8.00,af 24 | 3,Angola,Ang.,AO,AGO,24,1246700,13068161,-12.50,18.50,af 25 | 3,S. Africa,S. Afr.,ZA,ZAF,710,1219912,49000000,-29.69,22.68,af 26 | 3,Colombia,Col.,CO,COL,170,1138910,44205293,4.00,-72.00,sa 27 | 3,Ethiopia,Eth.,ET,ETH,231,1127127,88013491,8.00,38.00,af 28 | 3,Bolivia,Bol.,BO,BOL,68,1098580,9947418,-17.00,-65.00,sa 29 | 3,Mauritania,Maur.,MR,MRT,478,1030700,3205060,20.00,-12.00,af 30 | 3,Egypt,Egypt,EG,EGY,818,1001450,80471869,27.00,30.00,af 31 | 3,Tanzania,Tan.,TZ,TZA,834,945087,41892895,-6.00,35.00,af 32 | 3,Nigeria,Nig.,NG,NGA,566,923768,154000000,10.00,8.00,af 33 | 3,Venezuela,Ven.,VE,VEN,862,912050,27223228,8.00,-66.00,sa 34 | 3,Namibia,Nmb.,NA,NAM,516,825418,2128471,-22.00,17.00,af 35 | 3,Pakistan,Pak.,PK,PAK,586,803940,184404791,30.00,70.00,asia 36 | 3,Mozambique,Moz.,MZ,MOZ,508,801590,22061451,-18.25,35.00,af 37 | 3,Turkey,Tur.,TR,TUR,792,780580,77804122,39.00,35.00,asia 38 | 3,Chile,Chile,CL,CHL,152,756950,16746491,-32.55,-71.37,sa 39 | 3,Zambia,Zam.,ZM,ZMB,894,752614,13460305,-14.60,26.37,af 40 | 3,Myanmar,Mya.,MM,MMR,104,678500,53414374,22.00,98.00,asia 41 | 3,Afghanistan,Afg.,AF,AFG,4,647500,29121286,33.00,66.00,asia 42 | 3,Somalia,Som.,SO,SOM,706,637657,10112453,6.00,48.00,af 43 | 3,Central African Republic,C.A.R.,CF,CAF,140,622984,4844927,7.00,21.00,af 44 | 3,Ukraine,Ukr.,UA,UKR,804,603700,45415596,49.00,32.00,eu 45 | 3,Botswana,Bots.,BW,BWA,72,600370,2029307,-22.00,24.00,af 46 | 3,Madagascar,Madag.,MG,MDG,450,587040,21281844,-20.00,47.00,af 47 | 3,Kenya,Kenya,KE,KEN,404,582650,40046566,1.00,38.00,af 48 | 3,France,Fr.,FR,FRA,250,547030,64768389,46.00,2.00,eu 49 | 3,Yemen,Yemen,YE,YEM,887,527970,23495361,15.50,47.50,asia 50 | 3,Thailand,Thai.,TH,THA,764,514000,67089500,15.00,100.00,asia 51 | 3,Spain,Spain,ES,ESP,724,504782,46505963,40.00,-4.00,eu 52 | 3,Turkmenistan,Turkmen.,TM,TKM,795,488100,4940916,40.00,60.00,asia 53 | 3,Cameroon,Camrn.,CM,CMR,120,475440,19294149,6.00,12.00,af 54 | 3,Papua New Guinea,Pap. N. Gui.,PG,PNG,598,462840,6064515,-6.00,147.00,ocean 55 | 3,Sweden,Swe.,SE,SWE,752,449964,9045000,62.00,15.00,eu 56 | 3,Morocco,Mor.,MA,MAR,504,446550,31627428,32.00,-5.00,af 57 | 3,Iraq,Iraq,IQ,IRQ,368,437072,29671605,33.00,44.00,asia 58 | 3,Paraguay,Para.,PY,PRY,600,406750,6375830,-22.99,-58.00,sa 59 | 3,Japan,Japan,JP,JPN,392,377835,127288000,37.23,138.25,asia 60 | 3,Germany,Ger.,DE,DEU,276,357021,82369000,51.50,10.50,eu 61 | 3,Congo,Congo,CG,COG,178,342000,3039126,-1.00,15.00,af 62 | 3,Finland,Fin.,FI,FIN,246,337030,5244000,64.00,26.00,eu 63 | 3,Malaysia,Malay.,MY,MYS,458,329750,28274729,2.50,112.50,ocean 64 | 3,Vietnam,Viet.,VN,VNM,704,329560,89571130,16.17,107.83,asia 65 | 3,Norway,Nor.,NO,NOR,578,324220,4907000,62.00,10.00,eu 66 | 3,Poland,Pol.,PL,POL,616,312685,38500000,52.00,20.00,eu 67 | 3,Italy,Italy,IT,ITA,380,301230,58145000,42.83,12.83,eu 68 | 3,Philippines,Phil.,PH,PHL,608,300000,99900177,13.00,122.00,ocean 69 | 3,Ecuador,Ec.,EC,ECU,218,283560,14790608,-2.00,-77.50,sa 70 | 3,New Zealand,N.Z.,NZ,NZL,554,268680,4252277,-42.00,174.00,ocean 71 | 3,United Kingdom,U.K.,GB,GBR,826,244820,62348447,54.90,-3.12,eu 72 | 3,Romania,Rom.,RO,ROU,642,237500,21959278,46.00,25.00,eu 73 | 3,Oman,Oman,OM,OMN,512,212460,2967717,21.00,57.00,asia 74 | 3,Belarus,Bela.,BY,BLR,112,207600,9685000,53.00,28.00,eu 75 | 3,Kyrgyzstan,Kyrg.,KG,KGZ,417,198500,5508626,41.00,75.00,asia 76 | 3,Senegal,Sen.,SN,SEN,686,196190,12323252,14.00,-14.00,af 77 | 3,Syria,Syria,SY,SYR,760,185180,22198110,35.00,38.00,asia 78 | 3,Uruguay,Ur.,UY,URY,858,176220,3477000,-33.00,-56.00,sa 79 | 3,Tunisia,Tun.,TN,TUN,788,163610,10589025,34.00,9.00,af 80 | 3,Bangladesh,Bngl.,BD,BGD,50,144000,156118464,24.00,90.00,asia 81 | 3,Nepal,Nepal,NP,NPL,524,140800,28951852,28.00,84.00,asia 82 | 3,Greece,Grc.,GR,GRC,300,131940,11000000,39.00,22.00,eu 83 | 3,N. Korea,N. Kor.,KP,PRK,408,120540,22912177,40.00,127.00,asia 84 | 3,Bulgaria,Blg.,BG,BGR,100,110910,7148785,43.00,25.00,eu 85 | 3,Cuba,Cuba,CU,CUB,192,110860,11423000,22.00,-79.50,cen 86 | 3,Iceland,Ice.,IS,ISL,352,103000,308910,65.00,-18.00,eu 87 | 3,S. Korea,S. Kor.,KR,KOR,410,98480,48422644,37.00,127.50,asia 88 | 3,Portugal,Port.,PT,PRT,620,92391,10676000,39.50,-8.00,eu 89 | 3,Azerbaijan,Azer.,AZ,AZE,31,86600,8303512,40.50,47.50,asia 90 | 3,United Arab Emirates,U.A.E.,AE,ARE,784,82880,4975593,24.00,54.00,asia 91 | 3,Czech Republic,Czech Rep.,CZ,CZE,203,78866,10476000,49.75,15.00,eu 92 | 3,Sri Lanka,Sri L.,LK,LKA,144,65610,21513990,7.00,81.00,asia 93 | 3,Denmark,Den.,DK,DNK,208,43094,5484000,56.00,10.00,eu 94 | 3,Solomon Is.,Sol. Is.,SB,SLB,90,28450,559198,-8.00,159.00,ocean 95 | 3,Israel,Isr.,IL,ISR,376,20770,7353985,31.18,34.88,asia 96 | 3,Fiji,Fiji,FJ,FJI,242,18270,875983,-18.00,178.00,ocean 97 | 3,Micronesia,Micron.,FM,FSM,583,702,108105,5.00,152.00,ocean 98 | 3,Marshall Is.,Marsh. Is.,MH,MHL,584,181.3,65859,10.00,167.00,ocean 99 | 4,Mali,Mali,ML,MLI,466,1240000,13796354,17.00,-4.00,af 100 | 4,Uzbekistan,Uzb.,UZ,UZB,860,447400,27865738,41.00,64.00,asia 101 | 4,Zimbabwe,Zimb.,ZW,ZWE,716,390580,11651858,-19.00,29.00,af 102 | 4,Cote d'Ivoire,C. Iv.,CI,CIV,384,322460,21058798,8.00,-5.00,af 103 | 4,Burkina Faso,Burkina,BF,BFA,854,274200,16241811,13.00,-2.00,af 104 | 4,Gabon,Gabon,GA,GAB,266,267667,1545255,-1.00,11.75,af 105 | 4,W. Sahara,W. Sah.,EH,ESH,732,266000,273008,24.49,-12.66,af 106 | 4,Guinea,Gui.,GN,GIN,324,245857,10324025,11.00,-10.00,af 107 | 4,Ghana,Ghana,GH,GHA,288,239460,24339838,8.00,-2.00,af 108 | 4,Laos,Laos,LA,LAO,418,236800,6368162,18.00,105.00,asia 109 | 4,Uganda,Ug.,UG,UGA,800,236040,33398682,2.00,33.00,af 110 | 4,Guyana,Guy.,GY,GUY,328,214970,748486,5.00,-59.00,sa 111 | 4,Cambodia,Camb.,KH,KHM,116,181040,14453680,13.00,105.00,asia 112 | 4,Suriname,Sur.,SR,SUR,740,163270,492829,4.00,-56.00,sa 113 | 4,Tajikistan,Taj.,TJ,TJK,762,143100,7487489,39.00,71.00,asia 114 | 4,Nicaragua,Nic.,NI,NIC,558,129494,5995928,13.00,-85.00,cen 115 | 4,Eritrea,Erit.,ER,ERI,232,121320,5792984,15.00,39.00,af 116 | 4,Malawi,Malawi,MW,MWI,454,118480,15447500,-13.50,34.00,af 117 | 4,Benin,Benin,BJ,BEN,204,112620,9056010,9.50,2.25,af 118 | 4,Honduras,Hond.,HN,HND,340,112090,7989415,15.00,-86.50,cen 119 | 4,Liberia,Lib.,LR,LBR,430,111370,3685076,6.50,-9.50,af 120 | 4,Guatemala,Guat.,GT,GTM,320,108890,13550440,15.50,-90.25,cen 121 | 4,Hungary,Hung.,HU,HUN,348,93030,9930000,47.00,20.00,eu 122 | 4,Jordan,Jord.,JO,JOR,400,92300,6407085,31.00,36.00,asia 123 | 4,French Guiana,Fr. Gu.,GF,GUF,254,91000,195506,4.00,-53.00,sa 124 | 4,Serbia,Serb.,RS,SRB,688,88361,7344847,44.82,20.46,eu 125 | 4,Austria,Aus.,AT,AUT,40,83858,8205000,47.33,13.33,eu 126 | 4,Panama,Pan.,PA,PAN,591,78200,3410676,9.00,-80.00,cen 127 | 4,Sierra Leone,S.L.,SL,SLE,694,71740,5245695,8.50,-11.50,af 128 | 4,Ireland,Ire.,IE,IRL,372,70280,4622917,53.00,-8.00,eu 129 | 4,Georgia,Geor.,GE,GEO,268,69700,4630000,42.00,43.50,asia 130 | 4,Lithuania,Lith.,LT,LTU,440,65200,3565000,56.00,24.00,eu 131 | 4,Latvia,Lat.,LV,LVA,428,64589,2217969,57.00,25.00,eu 132 | 4,Togo,Togo,TG,TGO,768,56785,6587239,8.00,1.17,af 133 | 4,Croatia,Cro.,HR,HRV,191,56542,4491000,45.17,15.50,eu 134 | 4,Bosnia and Herzegovina,Bos.,BA,BIH,70,51129,4590000,44.25,17.83,eu 135 | 4,Costa Rica,C.R.,CR,CRI,188,51100,4516220,10.00,-84.00,cen 136 | 4,Slovakia,Slvk.,SK,SVK,703,48845,5455000,48.67,19.50,eu 137 | 4,Dominican Republic,Dom. Rep.,DO,DOM,214,48730,9823821,19.00,-70.67,na 138 | 4,Bhutan,Bhu.,BT,BTN,64,47000,699847,27.50,90.50,asia 139 | 4,Estonia,Est.,EE,EST,233,45226,1291170,59.00,26.00,eu 140 | 4,Netherlands,Neth.,NL,NLD,528,41526,16645000,52.50,5.75,eu 141 | 4,Switzerland,Switz.,CH,CHE,756,41290,7581000,47.00,8.01,eu 142 | 4,Guinea-Bissau,Gui.-B.,GW,GNB,624,36120,1565126,12.00,-15.00,af 143 | 4,Moldova,Mol.,MD,MDA,498,33843,4324000,47.00,29.00,eu 144 | 4,Belgium,Bel.,BE,BEL,56,30510,10403000,50.83,4.00,eu 145 | 4,Lesotho,Leso.,LS,LSO,426,30355,1919552,-29.50,28.25,af 146 | 4,Armenia,Arm.,AM,ARM,51,29800,2968000,40.00,45.00,asia 147 | 4,Albania,Alb.,AL,ALB,8,28748,2986952,41.00,20.00,eu 148 | 4,Equatorial Guinea,Eq. Gui.,GQ,GNQ,226,28051,1014999,2.00,10.00,af 149 | 4,Burundi,Bdi.,BI,BDI,108,27830,9863117,-3.50,30.00,af 150 | 4,Haiti,Haiti,HT,HTI,332,27750,9648924,19.00,-72.42,na 151 | 4,Rwanda,Rw.,RW,RWA,646,26338,11055976,-2.00,30.00,af 152 | 4,Macedonia,Mac.,MK,MKD,807,25333,2061000,41.83,22.00,eu 153 | 4,Djibouti,Dji.,DJ,DJI,262,23000,740528,11.50,42.50,af 154 | 4,Belize,Belize,BZ,BLZ,84,22966,314522,17.25,-88.75,cen 155 | 4,El Salvador,El Sal.,SV,SLV,222,21040,6052064,13.50,-88.92,cen 156 | 4,Slovenia,Slvn.,SI,SVN,705,20273,2007000,46.25,15.17,eu 157 | 4,New Caledonia,N. Cal.,NC,NCL,540,19060,216494,-21.50,165.50,ocean 158 | 4,Kuwait,Kuw.,KW,KWT,414,17820,2789132,29.50,47.75,asia 159 | 4,Swaziland,Swaz.,SZ,SWZ,748,17363,1354051,-26.50,31.50,af 160 | 4,East Timor,E. Timor,TL,TLS,626,15007,1154625,-8.83,125.75,ocean 161 | 4,Montenegro,Mont.,ME,MNE,499,14026,666730,43.50,19.30,eu 162 | 4,Bahamas,Bah.,BS,BHS,44,13940,301790,24.00,-76.00,na 163 | 4,Vanuatu,Vanuatu,VU,VUT,548,12200,221552,-16.00,167.00,ocean 164 | 4,Falkland Is.,Falk. Is.,FK,FLK,238,12173,2638,-51.75,-59.17,sa 165 | 4,Qatar,Qatar,QA,QAT,634,11437,840926,25.50,51.25,asia 166 | 4,The Gambia,Gam.,GM,GMB,270,11300,1593256,13.50,-15.50,af 167 | 4,Jamaica,Jam.,JM,JAM,388,10991,2847232,18.25,-77.50,na 168 | 4,Lebanon,Leb.,LB,LBN,422,10400,4125247,33.83,35.83,asia 169 | 4,Cyprus,Cyp.,CY,CYP,196,9250,1102677,35.00,33.00,asia 170 | 4,Puerto Rico,P.R.,PR,PRI,630,9104,3916632,18.25,-66.50,na 171 | 4,Brunei,Bru.,BN,BRN,96,5770,395027,4.50,114.67,ocean 172 | 4,Trinidad and Tobago,Trin.,TT,TTO,780,5128,1228691,11.00,-61.00,na 173 | 4,French Polynesia,Fr. Poly.,PF,PYF,258,4167,270485,-15.00,-140.00,ocean 174 | 4,Cape Verde,C.V.,CV,CPV,132,4033,508659,16.00,-24.00,af 175 | 4,S. Georgia,S. Geor.,GS,SGS,239,3756,1000,-54.50,-37.00,sa 176 | 4,Samoa,Samoa,WS,WSM,882,2944,192001,-13.80,-172.18,ocean 177 | 4,Luxembourg,Lux.,LU,LUX,442,2586,497538,49.75,6.17,eu 178 | 4,Comoros,Com.,KM,COM,174,2170,773407,-12.17,44.25,ocean 179 | 4,Mauritius,Mauritius,MU,MUS,480,2040,1294104,-20.30,57.58,af 180 | 4,Guadeloupe,Gaud.,GP,GLP,312,1628,443000,16.25,-61.58,na 181 | 4,Faroe Is.,Far. Is.,FO,FRO,234,1399,48228,62.00,-7.00,eu 182 | 4,Martinique,Mart.,MQ,MTQ,474,1100,432900,14.67,-61.00,na 183 | 4,N. Marianna Is.,N. Mar. Is.,MP,MNP,580,1007,60000,17.00,145.00,ocean 184 | 4,São Tomé and Príncipe,S. Tom./P.,ST,STP,678,1001,175808,1.00,7.00,af 185 | 4,Netherlands Antilles,Neth. Ant.,AN,ANT,530,960,136197,12.17,-69.00,sa 186 | 4,Kiribati,Kir.,KI,KIR,296,811,92533,-5.00,-170.00,ocean 187 | 4,Dominica,Dom.,DM,DMA,212,754,72813,15.50,-61.33,na 188 | 4,Tonga,Tonga,TO,TON,776,748,122580,-20.00,-175.00,ocean 189 | 4,Singapore,Sing.,SG,SGP,702,692.7,4701069,1.37,103.80,asia 190 | 4,Bahrain,Bahr.,BH,BHR,48,665,738004,26.00,50.50,asia 191 | 4,St. Lucia,St. Luc.,LC,LCA,662,616,160922,13.88,-60.97,na 192 | 4,Andorra,And.,AD,AND,20,468,84000,42.50,1.50,eu 193 | 4,Palau,Palau,PW,PLW,585,458,20303,7.46,134.56,ocean 194 | 4,Seychelles,Sey.,SC,SYC,690,455,88340,-4.58,55.67,af 195 | 4,Antigua and Barbuda,Antig.,AG,ATG,28,443,86754,17.05,-61.80,na 196 | 4,Barbados,Barb.,BB,BRB,52,431,285653,13.17,-59.53,na 197 | 4,Turks and Caicos Is.,T./C. Is.,TC,TCA,796,430,20556,21.73,-71.58,na 198 | 4,St. Helena,St. Hel.,SH,SHN,654,410,7460,-15.95,-5.70,af 199 | 4,St. Vincent and the Grenadines,St. Vin.,VC,VCT,670,389,120000,13.25,-61.20,na 200 | 4,Mayotte,May.,YT,MYT,175,374,159042,-12.83,45.17,af 201 | 4,Virgin Is. (U.S.),V.I.U.S.,VI,VIR,850,352,108708,18.35,-64.98,na 202 | 4,Grenada,Gren.,GD,GRD,308,344,107818,12.12,-61.67,na 203 | 4,Malta,Malta,MT,MLT,470,316,403000,35.92,14.43,eu 204 | 4,Maldives,Mald.,MV,MDV,462,300,395650,3.20,73.00,asia 205 | 4,Wallis and Futuna,Wal./F.,WF,WLF,876,274,16025,-13.30,-176.20,ocean 206 | 4,Cayman Is.,Cay. Is.,KY,CYM,136,262,44270,19.50,-80.67,na 207 | 4,St. Kitts and Nevis,St. K./N.,KN,KNA,659,261,49898,17.33,-62.75,na 208 | 4,St. Pierre and Miquelon,St. P./M.,PM,SPM,666,242,6125,46.84,-56.32,na 209 | 4,Cook Is.,Cook Is.,CK,COK,184,240,21388,-21.25,-159.79,ocean 210 | 4,American Samoa,Am. Sam.,AS,ASM,16,199,57881,-14.33,-170.00,ocean 211 | 4,Liechtenstein,Liech.,LI,LIE,438,160,35000,47.17,9.53,eu 212 | 4,British Virgin Is.,Br. Vir. Is.,VG,VGB,92,153,21730,18.50,-64.50,na 213 | 4,Guernsey,Guern.,GG,GGY,831,78,65228,49.58,-2.33,eu 214 | 4,San Marino,S. Mar.,SM,SMR,674,61.2,31477,43.93,12.42,eu 215 | 4,British Indian Ocean Territory,B.I.O.T.,IO,IOT,86,60,4000,-6.00,72.00,asia 216 | 4,Bermuda,Ber.,BM,BMU,60,53,65365,32.33,-64.75,na 217 | 4,Pitcairn,Pit.,PN,PCN,612,47,46,-25.07,-130.10,ocean 218 | 4,Tuvalu,Tuvalu,TV,TUV,798,26,10472,-8.00,178.00,ocean 219 | 4,Nauru,Nauru,NR,NRU,520,21,9267,-0.53,166.92,ocean 220 | 4,Tokelau,Tok.,TK,TKL,772,10,1433,-9.00,-171.75,ocean 221 | 4,Gibraltar,Gib.,GI,GIB,292,6.5,27884,36.13,-5.35,eu 222 | 4,Monaco,Monaco,MC,MCO,492,2,32965,43.73,7.42,eu 223 | 4,Vatican City,Vatican City,VA,VAT,336,0.4,921,41.90,12.45,eu 224 | -------------------------------------------------------------------------------- /places/Europe-z4-z6.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 2759794 Amsterdam Amsterdam 52.37403 4.88969 NL 741636 3 | 4 264371 Athens Athens 37.97945 23.71622 GR 729137 4 | 4 3128760 Barcelona Barcelona 41.38879 2.15899 ES 1621537 5 | 4 2950159 Berlin Berlin 52.52437 13.41053 DE 3426354 6 | 4 2800866 Brussels Brussels 50.8466 4.35277 BE 1019022 7 | 4 2618425 Copenhagen Copenhagen 55.67594 12.56553 DK 1153615 8 | 4 2925533 Frankfurt Frankfurt am Main 50.11667 8.68333 DE 650000 9 | 4 745044 Istanbul Istanbul 41.01384 28.94966 TR 11174257 10 | 4 703448 Kiev Kiev 50.45466 30.5238 UA 2514227 11 | 4 2643743 London London 51.50853 -0.12574 GB 7556900 12 | 4 3117735 Madrid Madrid 40.4165 -3.70256 ES 3255944 13 | 4 3173435 Milan Milano 45.46427 9.18951 IT 1306661 14 | 4 2988507 Paris Paris 48.85341 2.3488 FR 2138551 15 | 4 3169070 Rome Roma 41.89474 12.4839 IT 2563241 16 | 4 2673730 Stockholm Stockholm 59.33258 18.0649 SE 1253309 17 | 4 2761369 Vienna Vienna 48.20849 16.37208 AT 1691468 18 | 4 756135 Warsaw Warsaw 52.22977 21.01178 PL 1702139 19 | 5 792680 Belgrade Belgrade 44.80401 20.46513 RS 1273651 20 | 5 683506 Bucharest Bucuresti 44.43225 26.10626 RO 1877155 21 | 5 3054643 Budapest Budapest 47.49801 19.03991 HU 1696128 22 | 5 2964574 Dublin Dublin 53.34399 -6.26719 IE 1024027 23 | 5 2650225 Edinburgh Edinburgh 55.95 -3.2 GB 435791 24 | 5 2660646 Geneva Geneve 46.20222 6.14569 CH 183981 25 | 5 2911298 Hamburg Hamburg 53.55 10 DE 1739117 26 | 5 658225 Helsinki Helsinki 60.16952 24.93545 FI 558457 27 | 5 2267057 Lisbon Lisbon 38.71667 -9.13333 PT 517802 28 | 5 2995469 Marseille Marseille 43.3 5.4 FR 794811 29 | 5 625144 Minsk Minsk 53.9 27.56667 BY 1742124 30 | 5 2867714 Munich Muenchen 48.13743 11.57549 DE 1260391 31 | 5 3172394 Naples Napoli 40.83333 14.25 IT 988972 32 | 5 698740 Odessa Odesa 46.47747 30.73262 UA 1001558 33 | 5 3143244 Oslo Oslo 59.91325 10.73892 NO 580000 34 | 5 3067696 Prague Praha 50.08804 14.42076 CZ 1165581 35 | 5 3413829 Reykjavik Reykjavik 64.13548 -21.89541 IS 113906 36 | 5 456172 Riga Riga 56.946 24.10589 LV 742572 37 | 5 727011 Sofia Sofia 42.69751 23.32415 BG 1152556 38 | 5 2657896 Zurich Zurich 47.36667 8.55 CH 341730 39 | 6 2521978 Alicante Alicante 38.34517 -0.48149 ES 334757 40 | 6 2803138 Antwerp Antwerp 51.21667 4.41667 BE 459805 41 | 6 2655984 Belfast Belfast 54.58333 -5.93333 GB 274770 42 | 6 3161732 Bergen Bergen 60.39316 5.32428 NO 213585 43 | 6 2661552 Bern Bern 46.94809 7.44744 CH 121631 44 | 6 3128026 Bilbao Bilbao 43.26271 -2.92528 ES 354860 45 | 6 2655603 Birmingham Birmingham 52.46667 -1.91667 GB 984333 46 | 6 3181928 Bologna Bologna 44.49381 11.33875 IT 371217 47 | 6 3031582 Bordeaux Bordeaux 44.83333 -0.56667 FR 231844 48 | 6 3060972 Bratislava Bratislava 48.14816 17.10674 SK 423737 49 | 6 2944388 Bremen Bremen 53.07516 8.80777 DE 546501 50 | 6 2654675 Bristol Bristol 51.45 -2.58333 GB 430713 51 | 6 2653822 Cardiff Cardiff 51.48 -3.18 GB 302139 52 | 6 2886242 Cologne Koeln 50.93333 6.95 DE 963395 53 | 6 2519240 Cordoba Cordoba 37.88333 -4.76667 ES 328428 54 | 6 2965140 Cork Cork 51.89861 -8.49583 IE 190384 55 | 6 709930 Dnipropetrovs’k Dnipropetrovsk 48.45 34.98333 UA 1032822 56 | 6 709717 Donets’k Donets'k 48 37.8 UA 1024700 57 | 6 2935517 Dortmund Dortmund 51.51667 7.45 DE 588462 58 | 6 2935022 Dresden Dresden 51.05089 13.73832 DE 486854 59 | 6 2934246 Dusseldorf Dusseldorf 51.22172 6.77616 DE 573057 60 | 6 2928810 Essen Essen 51.45 7.01667 DE 593085 61 | 6 3176959 Florence Florence 43.76667 11.25 IT 371517 62 | 6 3099434 Gdansk Gdansk 54.35205 18.64637 PL 461865 63 | 6 3176219 Genoa Genova 44.40632 8.93386 IT 601951 64 | 6 2648579 Glasgow Glasgow 55.86515 -4.25763 GB 610268 65 | 6 2711537 Goteborg Goeteborg 57.70716 11.96679 SE 504084 66 | 6 3014728 Grenoble Grenoble 45.16667 5.71667 FR 158552 67 | 6 2910831 Hannover Hannover 52.37052 9.73322 DE 515140 68 | 6 3096472 Katowice Katowice 50.26667 19.01667 PL 317316 69 | 6 706483 Kharkiv Kharkiv 50 36.25 UA 1430885 70 | 6 3094802 Krakow Krakow 50.08333 19.91667 PL 755050 71 | 6 2644688 Leeds Leeds 53.79648 -1.54785 GB 455123 72 | 6 2879139 Leipzig Leipzig 51.33962 12.37129 DE 504971 73 | 6 2644210 Liverpool Liverpool 53.41058 -2.97794 GB 468945 74 | 6 3196359 Ljubljana Ljubljana 46.05108 14.50513 SI 255115 75 | 6 3093133 Lodz Lodz 51.75 19.46667 PL 768755 76 | 6 2960316 Luxembourg Luxembourg 49.61167 6.13 LU 76684 77 | 6 2996944 Lyon Lyon 45.75 4.85 FR 472317 78 | 6 2514256 Malaga Malaga 36.72016 -4.42034 ES 568305 79 | 6 2643123 Manchester Manchester 53.48095 -2.23743 GB 395515 80 | 6 2873891 Mannheim Mannheim 49.48833 8.46472 DE 307960 81 | 6 2993458 Monaco Monaco 43.73333 7.41667 MC 32965 82 | 6 2990969 Nantes Nantes 47.21725 -1.55336 FR 277269 83 | 6 2990440 Nice Nice 43.70313 7.26608 FR 338620 84 | 6 146268 Nicosia Nicosia 35.16667 33.36667 CY 200452 85 | 6 2641170 Nottingham Nottingham 52.9536 -1.15047 GB 246654 86 | 6 2861650 Nuremberg Nuremberg 49.44778 11.06833 DE 499237 87 | 6 2523920 Palermo Palermo 38.11582 13.35976 IT 672175 88 | 6 2735943 Porto Porto 41.15 -8.61667 PT 249633 89 | 6 3088171 Pozan Poznan 52.41667 16.96667 PL 570352 90 | 6 2747891 Rotterdam Rotterdam 51.9225 4.47917 NL 598199 91 | 6 2982652 Rouen Rouen 49.44313 1.09932 FR 112787 92 | 6 3191281 Sarajevo Sarajevo 43.84864 18.35644 BA 696731 93 | 6 2510911 Seville Sevilla 37.37722 -5.98694 ES 703206 94 | 6 2638077 Sheffield Sheffield 53.38297 -1.4659 GB 447047 95 | 6 2825297 Stuttgart Stuttgart 48.78232 9.17702 DE 589793 96 | 6 588409 Tallinn Tallinn 59.43696 24.75353 EE 394024 97 | 6 2747373 The Hague Den Haag 52.07667 4.29861 NL 474292 98 | 6 2972315 Toulouse Toulouse 43.60426 1.44367 FR 433055 99 | 6 2972191 Tours Tours 47.38333 0.68333 FR 141621 100 | 6 3133880 Trondheim Trondheim 63.43052 10.39498 NO 147139 101 | 6 3165524 Turin Torino 45.07049 7.68682 IT 865263 102 | 6 2509954 Valencia Valencia 39.46975 -0.37739 ES 814208 103 | 6 3106672 Valladolid Valladolid 41.65 -4.71667 ES 317864 104 | 6 3164603 Venice Venice 45.43861 12.32667 IT 270816 105 | 6 3164527 Verona Verona 45.43419 10.99779 IT 253208 106 | 6 3081368 Wroclaw Wroclaw 51.1 17.03333 PL 634893 107 | 6 3186886 Zagreb Zagreb 45.81444 15.97798 HR 698966 108 | 6 3104324 Zaragoza Zaragoza 41.65606 -0.87734 ES 674317 109 | -------------------------------------------------------------------------------- /places/Europe-z7-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/Europe-z7-z11.txt.gz -------------------------------------------------------------------------------- /places/Makefile: -------------------------------------------------------------------------------- 1 | F=fonts 2 | 3 | all: place-labels-z3.shp place-labels-z4.shp place-labels-z5.shp place-labels-z6.shp place-labels-z7.shp place-labels-z8.shp place-labels-z9.shp place-labels-z10.shp place-labels-z11plus.shp 4 | 5 | 6 | 7 | place-labels-z3.shp: place-labels-z3.json 8 | rm -f place-labels-z3.shp place-labels-z3.dbf place-labels-z3.shx place-labels-z3.prj 9 | ogr2ogr place-labels-z3.shp place-labels-z3.json 10 | 11 | rm -f place-points-z3.shp place-points-z3.dbf place-points-z3.shx place-points-z3.prj 12 | ogr2ogr place-points-z3.shp place-points-z3.json 13 | 14 | place-labels-z4.shp: place-labels-z4.json 15 | rm -f place-labels-z4.shp place-labels-z4.dbf place-labels-z4.shx place-labels-z4.prj 16 | ogr2ogr place-labels-z4.shp place-labels-z4.json 17 | 18 | rm -f place-points-z4.shp place-points-z4.dbf place-points-z4.shx place-points-z4.prj 19 | ogr2ogr place-points-z4.shp place-points-z4.json 20 | 21 | place-labels-z5.shp: place-labels-z5.json 22 | rm -f place-labels-z5.shp place-labels-z5.dbf place-labels-z5.shx place-labels-z5.prj 23 | ogr2ogr place-labels-z5.shp place-labels-z5.json 24 | 25 | rm -f place-points-z5.shp place-points-z5.dbf place-points-z5.shx place-points-z5.prj 26 | ogr2ogr place-points-z5.shp place-points-z5.json 27 | 28 | place-labels-z6.shp: place-labels-z6.json 29 | rm -f place-labels-z6.shp place-labels-z6.dbf place-labels-z6.shx place-labels-z6.prj 30 | ogr2ogr place-labels-z6.shp place-labels-z6.json 31 | 32 | rm -f place-points-z6.shp place-points-z6.dbf place-points-z6.shx place-points-z6.prj 33 | ogr2ogr place-points-z6.shp place-points-z6.json 34 | 35 | place-labels-z7.shp: place-labels-z7.json 36 | rm -f place-labels-z7.shp place-labels-z7.dbf place-labels-z7.shx place-labels-z7.prj 37 | ogr2ogr place-labels-z7.shp place-labels-z7.json 38 | 39 | rm -f place-points-z7.shp place-points-z7.dbf place-points-z7.shx place-points-z7.prj 40 | ogr2ogr place-points-z7.shp place-points-z7.json 41 | 42 | place-labels-z8.shp: place-labels-z8.json 43 | rm -f place-labels-z8.shp place-labels-z8.dbf place-labels-z8.shx place-labels-z8.prj 44 | ogr2ogr place-labels-z8.shp place-labels-z8.json 45 | 46 | rm -f place-points-z8.shp place-points-z8.dbf place-points-z8.shx place-points-z8.prj 47 | ogr2ogr place-points-z8.shp place-points-z8.json 48 | 49 | place-labels-z9.shp: place-labels-z9.json 50 | rm -f place-labels-z9.shp place-labels-z9.dbf place-labels-z9.shx place-labels-z9.prj 51 | ogr2ogr place-labels-z9.shp place-labels-z9.json 52 | 53 | rm -f place-points-z9.shp place-points-z9.dbf place-points-z9.shx place-points-z9.prj 54 | ogr2ogr place-points-z9.shp place-points-z9.json 55 | 56 | place-labels-z10.shp: place-labels-z10.json 57 | rm -f place-labels-z10.shp place-labels-z10.dbf place-labels-z10.shx place-labels-z10.prj 58 | ogr2ogr place-labels-z10.shp place-labels-z10.json 59 | 60 | rm -f place-points-z10.shp place-points-z10.dbf place-points-z10.shx place-points-z10.prj 61 | ogr2ogr place-points-z10.shp place-points-z10.json 62 | 63 | place-labels-z11plus.shp: place-labels-z11plus.json 64 | rm -f place-labels-z11plus.shp place-labels-z11plus.dbf place-labels-z11plus.shx place-labels-z11plus.prj 65 | ogr2ogr place-labels-z11plus.shp place-labels-z11plus.json 66 | 67 | rm -f place-points-z11plus.shp place-points-z11plus.dbf place-points-z11plus.shx place-points-z11plus.prj 68 | ogr2ogr place-points-z11plus.shp place-points-z11plus.json 69 | 70 | 71 | 72 | place-labels-z3.json: Countries.csv 73 | python arrange.py -z 3 -m 5 -p place-points-z3.json -l place-labels-z3.json --country-font "$F/Arial.ttf" 12 -c Countries.csv 74 | 75 | place-labels-z4.json: Countries.csv Europe-z4-z6.txt US-z4-z8.txt Canada-z4-z8.txt Asia-z4-z6.txt Central-America-z4-z5.txt South-America-z4-z5.txt Australia-New-Zealand-z4-z5.txt Africa-z4-z5.txt 76 | python arrange.py -z 4 -m 10 -p place-points-z4.json -l place-labels-z4.json --country-font "$F/Arial Bold.ttf" 12 --pop25m-font "$F/Arial.ttf" 12 --pop250k-font "$F/Arial.ttf" 12 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries.csv Europe-z4-z6.txt Asia-z4-z6.txt Australia-New-Zealand-z4-z5.txt US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt South-America-z4-z5.txt Africa-z4-z5.txt 77 | 78 | place-labels-z5.json: Countries-West.csv Countries-East.csv Europe-z4-z6.txt US-z4-z8.txt Canada-z4-z8.txt Asia-z4-z6.txt Central-America-z4-z5.txt South-America-z4-z5.txt Australia-New-Zealand-z4-z5.txt Africa-z4-z5.txt 79 | python arrange.py -z 5 -m 10 -p east-points-z5.json -l east-labels-z5.json --country-font "$F/Arial Bold.ttf" 15 --pop25m-font "$F/Arial.ttf" 15 --pop250k-font "$F/Arial.ttf" 10 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-East.csv Europe-z4-z6.txt Asia-z4-z6.txt Australia-New-Zealand-z4-z5.txt Africa-z4-z5.txt 80 | python arrange.py -z 5 -m 10 -p west-points-z5.json -l west-labels-z5.json --country-font "$F/Arial Bold.ttf" 15 --pop25m-font "$F/Arial.ttf" 15 --pop250k-font "$F/Arial.ttf" 10 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-West.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt South-America-z4-z5.txt 81 | 82 | python join-geojson.py west-points-z5.json east-points-z5.json > place-points-z5.json 83 | python join-geojson.py west-labels-z5.json east-labels-z5.json > place-labels-z5.json 84 | 85 | place-labels-z6.json: na-labels-z6.json eu-labels-z6.json sa-labels-z6.json au-labels-z6.json af-labels-z6.json 86 | python join-geojson.py na-points-z6.json eu-points-z6.json sa-points-z6.json au-points-z6.json af-points-z6.json > place-points-z6.json 87 | python join-geojson.py na-labels-z6.json eu-labels-z6.json sa-labels-z6.json au-labels-z6.json af-labels-z6.json > place-labels-z6.json 88 | 89 | na-labels-z6.json: Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 90 | python arrange.py -z 6 -m 20 -p na-points-z6.json -l na-labels-z6.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 91 | sa-labels-z6.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 92 | python arrange.py -z 6 -m 20 -p sa-points-z6.json -l sa-labels-z6.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 93 | eu-labels-z6.json: Countries-Eurasia.csv Europe-z4-z6.txt Asia-z4-z6.txt 94 | python arrange.py -z 6 -m 15 -p eu-points-z6.json -l eu-labels-z6.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Eurasia.csv Europe-z4-z6.txt Asia-z4-z6.txt 95 | af-labels-z6.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 96 | python arrange.py -z 6 -m 3 -p af-points-z6.json -l af-labels-z6.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 97 | au-labels-z6.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 98 | python arrange.py -z 6 -m 2 -p au-points-z6.json -l au-labels-z6.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 99 | 100 | place-labels-z7.json: na-labels-z7.json eu-labels-z7.json sa-labels-z7.json au-labels-z7.json af-labels-z7.json 101 | python join-geojson.py na-points-z7.json eu-points-z7.json sa-points-z7.json au-points-z7.json af-points-z7.json > place-points-z7.json 102 | python join-geojson.py na-labels-z7.json eu-labels-z7.json sa-labels-z7.json au-labels-z7.json af-labels-z7.json > place-labels-z7.json 103 | 104 | na-labels-z7.json: Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 105 | python arrange.py -z 7 -m 60 -p na-points-z7.json -l na-labels-z7.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 106 | sa-labels-z7.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 107 | python arrange.py -z 7 -m 60 -p sa-points-z7.json -l sa-labels-z7.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 108 | eu-labels-z7.json: Countries-Eurasia.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz Asia-z4-z6.txt Asia-z7-z11.txt.gz 109 | python arrange.py -z 7 -m 90 -p eu-points-z7.json -l eu-labels-z7.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Eurasia.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz Asia-z4-z6.txt Asia-z7-z11.txt.gz 110 | af-labels-z7.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 111 | python arrange.py -z 7 -m 10 -p af-points-z7.json -l af-labels-z7.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 112 | au-labels-z7.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 113 | python arrange.py -z 7 -m 10 -p au-points-z7.json -l au-labels-z7.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 13 --pop50k-font "$F/Arial.ttf" 10 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 114 | 115 | place-labels-z8.json: na-labels-z8.json eu-labels-z8.json as-labels-z8.json sa-labels-z8.json au-labels-z8.json af-labels-z8.json 116 | python join-geojson.py na-points-z8.json eu-points-z8.json as-points-z8.json sa-points-z8.json au-points-z8.json af-points-z8.json > place-points-z8.json 117 | python join-geojson.py na-labels-z8.json eu-labels-z8.json as-labels-z8.json sa-labels-z8.json au-labels-z8.json af-labels-z8.json > place-labels-z8.json 118 | 119 | na-labels-z8.json: Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 120 | python arrange.py -z 8 -m 90 -p na-points-z8.json -l na-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt Canada-z4-z8.txt Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 121 | sa-labels-z8.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 122 | python arrange.py -z 8 -m 90 -p sa-points-z8.json -l sa-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 123 | eu-labels-z8.json: Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 124 | python arrange.py -z 8 -m 120 -p eu-points-z8.json -l eu-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 125 | as-labels-z8.json: Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 126 | python arrange.py -z 8 -m 120 -p as-points-z8.json -l as-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 127 | af-labels-z8.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 128 | python arrange.py -z 8 -m 20 -p af-points-z8.json -l af-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 129 | au-labels-z8.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 130 | python arrange.py -z 8 -m 20 -p au-points-z8.json -l au-labels-z8.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 131 | 132 | place-labels-z9.json: na-labels-z9.json eu-labels-z9.json as-labels-z9.json sa-labels-z9.json au-labels-z9.json af-labels-z9.json 133 | python join-geojson.py na-points-z9.json eu-points-z9.json as-points-z9.json sa-points-z9.json au-points-z9.json af-points-z9.json > place-points-z9.json 134 | python join-geojson.py na-labels-z9.json eu-labels-z9.json as-labels-z9.json sa-labels-z9.json au-labels-z9.json af-labels-z9.json > place-labels-z9.json 135 | 136 | na-labels-z9.json: Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 137 | python arrange.py -z 9 -m 90 -p na-points-z9.json -l na-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 138 | sa-labels-z9.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 139 | python arrange.py -z 9 -m 90 -p sa-points-z9.json -l sa-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 140 | eu-labels-z9.json: Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 141 | python arrange.py -z 9 -m 120 -p eu-points-z9.json -l eu-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 142 | as-labels-z9.json: Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 143 | python arrange.py -z 9 -m 120 -p as-points-z9.json -l as-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 144 | af-labels-z9.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 145 | python arrange.py -z 9 -m 20 -p af-points-z9.json -l af-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 146 | au-labels-z9.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 147 | python arrange.py -z 9 -m 20 -p au-points-z9.json -l au-labels-z9.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 148 | 149 | place-labels-z10.json: na-labels-z10.json eu-labels-z10.json as-labels-z10.json sa-labels-z10.json au-labels-z10.json af-labels-z10.json 150 | python join-geojson.py na-points-z10.json eu-points-z10.json as-points-z10.json sa-points-z10.json au-points-z10.json af-points-z10.json > place-points-z10.json 151 | python join-geojson.py na-labels-z10.json eu-labels-z10.json as-labels-z10.json sa-labels-z10.json au-labels-z10.json af-labels-z10.json > place-labels-z10.json 152 | 153 | na-labels-z10.json: Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 154 | python arrange.py -z 10 -m 90 -p na-points-z10.json -l na-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 155 | sa-labels-z10.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 156 | python arrange.py -z 10 -m 90 -p sa-points-z10.json -l sa-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 157 | eu-labels-z10.json: Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 158 | python arrange.py -z 10 -m 120 -p eu-points-z10.json -l eu-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 159 | as-labels-z10.json: Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 160 | python arrange.py -z 10 -m 120 -p as-points-z10.json -l as-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 161 | af-labels-z10.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 162 | python arrange.py -z 10 -m 20 -p af-points-z10.json -l af-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 163 | au-labels-z10.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 164 | python arrange.py -z 10 -m 20 -p au-points-z10.json -l au-labels-z10.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 165 | 166 | place-labels-z11plus.json: na-labels-z11plus.json eu-labels-z11plus.json as-labels-z11plus.json sa-labels-z11plus.json au-labels-z11plus.json af-labels-z11plus.json 167 | python join-geojson.py na-points-z11plus.json eu-points-z11plus.json as-points-z11plus.json sa-points-z11plus.json au-points-z11plus.json af-points-z11plus.json > place-points-z11plus.json 168 | python join-geojson.py na-labels-z11plus.json eu-labels-z11plus.json as-labels-z11plus.json sa-labels-z11plus.json au-labels-z11plus.json af-labels-z11plus.json > place-labels-z11plus.json 169 | 170 | na-labels-z11plus.json: Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 171 | python arrange.py -z 11 --no-anneal -p na-points-z11plus.json -l na-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-North-America.csv US-z4-z8.txt US-z9-z11.txt.gz Canada-z4-z8.txt Canada-z9-z11.txt.gz Central-America-z4-z5.txt Central-America-z6-z11.txt.gz 172 | sa-labels-z11plus.json: Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 173 | python arrange.py -z 11 --no-anneal -p sa-points-z11plus.json -l sa-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-South-America.csv South-America-z4-z5.txt South-America-z6-z11.txt.gz 174 | eu-labels-z11plus.json: Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 175 | python arrange.py -z 11 --no-anneal -p eu-points-z11plus.json -l eu-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Europe.csv Europe-z4-z6.txt Europe-z7-z11.txt.gz 176 | as-labels-z11plus.json: Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 177 | python arrange.py -z 11 --no-anneal -p as-points-z11plus.json -l as-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Asia.csv Asia-z4-z6.txt Asia-z7-z11.txt.gz 178 | af-labels-z11plus.json: Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 179 | python arrange.py -z 11 --no-anneal -p af-points-z11plus.json -l af-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Africa.csv Africa-z4-z5.txt Africa-z6-z11.txt.gz 180 | au-labels-z11plus.json: Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 181 | python arrange.py -z 11 --no-anneal -p au-points-z11plus.json -l au-labels-z11plus.json --country-font "$F/Arial Bold.ttf" 18 --pop25m-font "$F/Arial.ttf" 18 --pop250k-font "$F/Arial.ttf" 18 --pop50k-font "$F/Arial.ttf" 13 --popother-font "$F/Arial.ttf" 10 -c Countries-Australia-NZ.csv Australia-New-Zealand-z4-z5.txt Australia-New-Zealand-z6-z11.txt.gz 182 | 183 | 184 | 185 | clean: 186 | rm -f place-labels-z3.json 187 | rm -f place-labels-z4.json 188 | rm -f place-labels-z5.json west-labels-z5.json east-labels-z5.json 189 | rm -f place-labels-z6.json na-labels-z6.json eu-labels-z6.json sa-labels-z6.json au-labels-z6.json af-labels-z6.json 190 | rm -f place-labels-z7.json na-labels-z7.json eu-labels-z7.json sa-labels-z7.json au-labels-z7.json af-labels-z7.json 191 | rm -f place-labels-z8.json na-labels-z8.json eu-labels-z8.json sa-labels-z8.json au-labels-z8.json af-labels-z8.json 192 | rm -f place-labels-z9.json na-labels-z9.json eu-labels-z9.json sa-labels-z9.json au-labels-z9.json af-labels-z9.json 193 | rm -f place-labels-z10.json na-labels-z10.json eu-labels-z10.json sa-labels-z10.json au-labels-z10.json af-labels-z10.json 194 | rm -f place-labels-z11plus.json na-labels-z11plus.json eu-labels-z11plus.json sa-labels-z11plus.json au-labels-z11plus.json af-labels-z11plus.json 195 | 196 | rm -f place-points-z3.json 197 | rm -f place-points-z4.json 198 | rm -f place-points-z5.json west-points-z5.json east-points-z5.json 199 | rm -f place-points-z6.json na-points-z6.json eu-points-z6.json sa-points-z6.json au-points-z6.json af-points-z6.json 200 | rm -f place-points-z7.json na-points-z7.json eu-points-z7.json sa-points-z7.json au-points-z7.json af-points-z7.json 201 | rm -f place-points-z8.json na-points-z8.json eu-points-z8.json sa-points-z8.json au-points-z8.json af-points-z8.json 202 | rm -f place-points-z9.json na-points-z9.json eu-points-z9.json sa-points-z9.json au-points-z9.json af-points-z9.json 203 | rm -f place-points-z10.json na-points-z10.json eu-points-z10.json sa-points-z10.json au-points-z10.json af-points-z10.json 204 | rm -f place-points-z11plus.json na-points-z11plus.json eu-points-z11plus.json sa-points-z11plus.json au-points-z11plus.json af-points-z11plus.json 205 | 206 | rm -f place-labels-z3.shp place-labels-z3.dbf place-labels-z3.shx place-labels-z3.prj 207 | rm -f place-labels-z4.shp place-labels-z4.dbf place-labels-z4.shx place-labels-z4.prj 208 | rm -f place-labels-z5.shp place-labels-z5.dbf place-labels-z5.shx place-labels-z5.prj 209 | rm -f place-labels-z6.shp place-labels-z6.dbf place-labels-z6.shx place-labels-z6.prj 210 | rm -f place-labels-z7.shp place-labels-z7.dbf place-labels-z7.shx place-labels-z7.prj 211 | rm -f place-labels-z8.shp place-labels-z8.dbf place-labels-z8.shx place-labels-z8.prj 212 | rm -f place-labels-z9.shp place-labels-z9.dbf place-labels-z9.shx place-labels-z9.prj 213 | rm -f place-labels-z10.shp place-labels-z10.dbf place-labels-z10.shx place-labels-z10.prj 214 | rm -f place-labels-z11plus.shp place-labels-z11plus.dbf place-labels-z11plus.shx place-labels-z11plus.prj 215 | 216 | rm -f place-points-z3.shp place-points-z3.dbf place-points-z3.shx place-points-z3.prj 217 | rm -f place-points-z4.shp place-points-z4.dbf place-points-z4.shx place-points-z4.prj 218 | rm -f place-points-z5.shp place-points-z5.dbf place-points-z5.shx place-points-z5.prj 219 | rm -f place-points-z6.shp place-points-z6.dbf place-points-z6.shx place-points-z6.prj 220 | rm -f place-points-z7.shp place-points-z7.dbf place-points-z7.shx place-points-z7.prj 221 | rm -f place-points-z8.shp place-points-z8.dbf place-points-z8.shx place-points-z8.prj 222 | rm -f place-points-z9.shp place-points-z9.dbf place-points-z9.shx place-points-z9.prj 223 | rm -f place-points-z10.shp place-points-z10.dbf place-points-z10.shx place-points-z10.prj 224 | rm -f place-points-z11plus.shp place-points-z11plus.dbf place-points-z11plus.shx place-points-z11plus.prj 225 | -------------------------------------------------------------------------------- /places/South-America-z4-z5.txt: -------------------------------------------------------------------------------- 1 | zoom geonameid name asciiname latitude longitude country code admin1 code population 2 | 4 3439389 Asuncion Asuncion -25.30066 -57.63591 PY 1482200 3 | 4 3688689 Bogota Bogota 4.60971 -74.08175 CO 7102602 4 | 4 3469058 Brasilia Brasilia -15.77972 -47.92972 BR 2207718 5 | 4 3435910 Buenos Aries Buenos Aires -34.61315 -58.37723 AR 13076300 6 | 4 3646738 Caracas Caracas 10.5 -66.91667 VE 3000000 7 | 4 3911925 La Paz La Paz -16.5 -68.15 BO 812799 8 | 4 3936456 Lima Lima -12.04318 -77.02824 PE 7737002 9 | 4 3441575 Montevideo Montevideo -34.83346 -56.16735 UY 1270737 10 | 4 3652462 Quito Quito -0.22985 -78.52495 EC 1399814 11 | 4 3451190 Rio de Janeiro Rio de Janeiro -22.90278 -43.2075 BR 6023699 12 | 4 3871336 Santiago Santiago -33.42628 -70.56656 CL 4837295 13 | 4 3448439 Sao Paulo Sao Paulo -23.5475 -46.63611 BR 10021295 14 | 5 3689147 Barranquilla Barranquilla 10.96389 -74.79639 CO 1380425 15 | 5 3405870 Belem Belem -1.45583 -48.50444 BR 1407737 16 | 5 3470127 Belo Horizonte Belo Horizonte -19.92083 -43.93778 BR 2373224 17 | 5 3687925 Cali Cali 3.43722 -76.5225 CO 2392877 18 | 5 3860259 Cordoba Cordoba -31.4 -64.18333 AR 1428214 19 | 5 3464975 Curitiba Curitiba -25.42778 -49.27306 BR 1718421 20 | 5 3399415 Fortaleza Fortaleza -3.71722 -38.54306 BR 2400000 21 | 5 3462377 Goiania Goiania -16.67861 -49.25389 BR 1171195 22 | 5 3657509 Guayaquil Guayaquil -2.16667 -79.9 EC 1952029 23 | 5 3663517 Manaus Manaus -3.10194 -60.025 BR 1598210 24 | 5 3633009 Maracaibo Maracaibo 10.63167 -71.64056 VE 2225000 25 | 5 3674962 Medellin Medellin 6.29139 -75.53611 CO 1999979 26 | 5 3452925 Porto Alegre Porto Alegre -30.03306 -51.23 BR 1372741 27 | 5 3390760 Recife Recife -8.05389 -34.88111 BR 1478098 28 | 5 3838583 Rosario Rosario -32.95111 -60.66639 AR 1173533 29 | 5 3450554 Salvador Salvador -12.97111 -38.51083 BR 2711840 30 | 5 3904906 Santa Cruz Santa Cruz de la Sierra -17.8 -63.16667 BO 1364389 31 | 5 3868626 Valparaiso Valparaiso -33.03932 -71.62725 CL 282448 32 | 5 3439101 Ciudad del Este Ciudad del Este -25.51667 -54.61667 PY 33 | -------------------------------------------------------------------------------- /places/South-America-z6-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/South-America-z6-z11.txt.gz -------------------------------------------------------------------------------- /places/US-z9-z11.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/US-z9-z11.txt.gz -------------------------------------------------------------------------------- /places/anneal.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Python module for simulated annealing - anneal.py - v1.0 - 2 Sep 2009 4 | # 5 | # Copyright (c) 2009, Richard J. Wagner 6 | # 7 | # Permission to use, copy, modify, and/or distribute this software for any 8 | # purpose with or without fee is hereby granted, provided that the above 9 | # copyright notice and this permission notice appear in all copies. 10 | # 11 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 | 19 | """ 20 | This module performs simulated annealing to find a state of a system that 21 | minimizes its energy. 22 | 23 | An example program demonstrates simulated annealing with a traveling 24 | salesman problem to find the shortest route to visit the twenty largest 25 | cities in the United States. 26 | """ 27 | 28 | # How to optimize a system with simulated annealing: 29 | # 30 | # 1) Define a format for describing the state of the system. 31 | # 32 | # 2) Define a function to calculate the energy of a state. 33 | # 34 | # 3) Define a function to make a random change to a state. 35 | # 36 | # 4) Choose a maximum temperature, minimum temperature, and number of steps. 37 | # 38 | # 5) Set the annealer to work with your state and functions. 39 | # 40 | # 6) Study the variation in energy with temperature and duration to find a 41 | # productive annealing schedule. 42 | # 43 | # Or, 44 | # 45 | # 4) Run the automatic annealer which will attempt to choose reasonable values 46 | # for maximum and minimum temperatures and then anneal for the allotted time. 47 | 48 | import copy, math, random, sys, time 49 | 50 | def round_figures(x, n): 51 | """Returns x rounded to n significant figures.""" 52 | return round(x, int(n - math.ceil(math.log10(abs(x))))) 53 | 54 | def time_string(seconds): 55 | """Returns time in seconds as a string formatted HHHH:MM:SS.""" 56 | s = int(round(seconds)) # round to nearest second 57 | h, s = divmod(s, 3600) # get hours and remainder 58 | m, s = divmod(s, 60) # split remainder into minutes and seconds 59 | return '%4i:%02i:%02i' % (h, m, s) 60 | 61 | class Annealer: 62 | """Performs simulated annealing by calling functions to calculate 63 | energy and make moves on a state. The temperature schedule for 64 | annealing may be provided manually or estimated automatically. 65 | """ 66 | def __init__(self, energy, move): 67 | self.energy = energy # function to calculate energy of a state 68 | self.move = move # function to make a random change to a state 69 | 70 | def anneal(self, state, Tmax, Tmin, steps, updates=0): 71 | """Minimizes the energy of a system by simulated annealing. 72 | 73 | Keyword arguments: 74 | state -- an initial arrangement of the system 75 | Tmax -- maximum temperature (in units of energy) 76 | Tmin -- minimum temperature (must be greater than zero) 77 | steps -- the number of steps requested 78 | updates -- the number of updates to print during annealing 79 | 80 | Returns the best state and energy found.""" 81 | 82 | step = 0 83 | start = time.time() 84 | 85 | def update(T, E, acceptance, improvement): 86 | """Prints the current temperature, energy, acceptance rate, 87 | improvement rate, elapsed time, and remaining time. 88 | 89 | The acceptance rate indicates the percentage of moves since the last 90 | update that were accepted by the Metropolis algorithm. It includes 91 | moves that decreased the energy, moves that left the energy 92 | unchanged, and moves that increased the energy yet were reached by 93 | thermal excitation. 94 | 95 | The improvement rate indicates the percentage of moves since the 96 | last update that strictly decreased the energy. At high 97 | temperatures it will include both moves that improved the overall 98 | state and moves that simply undid previously accepted moves that 99 | increased the energy by thermal excititation. At low temperatures 100 | it will tend toward zero as the moves that can decrease the energy 101 | are exhausted and moves that would increase the energy are no longer 102 | thermally accessible.""" 103 | 104 | elapsed = time.time() - start 105 | if step == 0: 106 | print ' Temperature Energy Accept Improve Elapsed Remaining' 107 | print '%12.2f %12.2f %s ' % \ 108 | (T, E, time_string(elapsed) ) 109 | else: 110 | remain = ( steps - step ) * ( elapsed / step ) 111 | print '%12.2f %12.2f %7.2f%% %7.2f%% %s %s' % \ 112 | (T, E, 100.0*acceptance, 100.0*improvement, 113 | time_string(elapsed), time_string(remain)) 114 | 115 | # Precompute factor for exponential cooling from Tmax to Tmin 116 | if Tmin <= 0.0: 117 | print 'Exponential cooling requires a minimum temperature greater than zero.' 118 | sys.exit() 119 | Tfactor = -math.log( float(Tmax) / Tmin ) 120 | 121 | # Note initial state 122 | T = Tmax 123 | E = self.energy(state) 124 | prevState = copy.deepcopy(state) 125 | prevEnergy = E 126 | bestState = copy.deepcopy(state) 127 | bestEnergy = E 128 | trials, accepts, improves = 0, 0, 0 129 | if updates > 0: 130 | updateWavelength = float(steps) / updates 131 | update(T, E, None, None) 132 | 133 | # Attempt moves to new states 134 | while step < steps: 135 | step += 1 136 | T = Tmax * math.exp( Tfactor * step / steps ) 137 | self.move(state) 138 | E = self.energy(state) 139 | dE = E - prevEnergy 140 | trials += 1 141 | if dE > 0.0 and math.exp(-dE/T) < random.random(): 142 | # Restore previous state 143 | state = copy.deepcopy(prevState) 144 | E = prevEnergy 145 | else: 146 | # Accept new state and compare to best state 147 | accepts += 1 148 | if dE < 0.0: 149 | improves += 1 150 | prevState = copy.deepcopy(state) 151 | prevEnergy = E 152 | if E < bestEnergy: 153 | bestState = copy.deepcopy(state) 154 | bestEnergy = E 155 | if updates > 1: 156 | if step // updateWavelength > (step-1) // updateWavelength: 157 | update(T, E, float(accepts)/trials, float(improves)/trials) 158 | trials, accepts, improves = 0, 0, 0 159 | 160 | # Return best state and energy 161 | return bestState, bestEnergy 162 | 163 | def auto(self, state, minutes, steps=2000): 164 | """Minimizes the energy of a system by simulated annealing with 165 | automatic selection of the temperature schedule. 166 | 167 | Keyword arguments: 168 | state -- an initial arrangement of the system 169 | minutes -- time to spend annealing (after exploring temperatures) 170 | steps -- number of steps to spend on each stage of exploration 171 | 172 | Returns the best state and energy found.""" 173 | 174 | def run(state, T, steps): 175 | """Anneals a system at constant temperature and returns the state, 176 | energy, rate of acceptance, and rate of improvement.""" 177 | E = self.energy(state) 178 | prevState = copy.deepcopy(state) 179 | prevEnergy = E 180 | accepts, improves = 0, 0 181 | for step in range(steps): 182 | self.move(state) 183 | E = self.energy(state) 184 | dE = E - prevEnergy 185 | if dE > 0.0 and math.exp(-dE/T) < random.random(): 186 | state = copy.deepcopy(prevState) 187 | E = prevEnergy 188 | else: 189 | accepts += 1 190 | if dE < 0.0: 191 | improves += 1 192 | prevState = copy.deepcopy(state) 193 | prevEnergy = E 194 | return state, E, float(accepts)/steps, float(improves)/steps 195 | 196 | step = 0 197 | start = time.time() 198 | 199 | print 'Attempting automatic simulated anneal...' 200 | 201 | # Find an initial guess for temperature 202 | T = 0.0 203 | E = self.energy(state) 204 | while T == 0.0: 205 | step += 1 206 | self.move(state) 207 | T = abs( self.energy(state) - E ) 208 | 209 | print 'Exploring temperature landscape:' 210 | print ' Temperature Energy Accept Improve Elapsed' 211 | def update(T, E, acceptance, improvement): 212 | """Prints the current temperature, energy, acceptance rate, 213 | improvement rate, and elapsed time.""" 214 | elapsed = time.time() - start 215 | print '%12.2f %12.2f %7.2f%% %7.2f%% %s' % \ 216 | (T, E, 100.0*acceptance, 100.0*improvement, time_string(elapsed)) 217 | 218 | # Search for Tmax - a temperature that gives 98% acceptance 219 | state, E, acceptance, improvement = run(state, T, steps) 220 | step += steps 221 | while acceptance > 0.98: 222 | T = round_figures(T/1.5, 2) 223 | state, E, acceptance, improvement = run(state, T, steps) 224 | step += steps 225 | update(T, E, acceptance, improvement) 226 | while acceptance < 0.98: 227 | T = round_figures(T*1.5, 2) 228 | state, E, acceptance, improvement = run(state, T, steps) 229 | step += steps 230 | update(T, E, acceptance, improvement) 231 | Tmax = T 232 | 233 | # Search for Tmin - a temperature that gives 0% improvement 234 | while improvement > 0.0: 235 | T = round_figures(T/1.5, 2) 236 | state, E, acceptance, improvement = run(state, T, steps) 237 | step += steps 238 | update(T, E, acceptance, improvement) 239 | Tmin = T 240 | 241 | # Calculate anneal duration 242 | elapsed = time.time() - start 243 | duration = round_figures(int(60.0 * minutes * step / elapsed), 2) 244 | 245 | # Perform anneal 246 | print 'Annealing from %.2f to %.2f over %i steps:' % (Tmax, Tmin, duration) 247 | return self.anneal(state, Tmax, Tmin, duration, 20) 248 | 249 | if __name__ == '__main__': 250 | """Test annealer with a traveling salesman problem.""" 251 | 252 | # List latitude and longitude (degrees) for the twenty largest U.S. cities 253 | cities = { 'New York City': (40.72,74.00), 'Los Angeles': (34.05,118.25), 254 | 'Chicago': (41.88,87.63), 'Houston': (29.77,95.38), 255 | 'Phoenix': (33.45,112.07), 'Philadelphia': (39.95,75.17), 256 | 'San Antonio': (29.53,98.47), 'Dallas': (32.78,96.80), 257 | 'San Diego': (32.78,117.15), 'San Jose': (37.30,121.87), 258 | 'Detroit': (42.33,83.05), 'San Francisco': (37.78,122.42), 259 | 'Jacksonville': (30.32,81.70), 'Indianapolis': (39.78,86.15), 260 | 'Austin': (30.27,97.77), 'Columbus': (39.98,82.98), 261 | 'Fort Worth': (32.75,97.33), 'Charlotte': (35.23,80.85), 262 | 'Memphis': (35.12,89.97), 'Baltimore': (39.28,76.62) } 263 | 264 | def distance(a, b): 265 | """Calculates distance between two latitude-longitude coordinates.""" 266 | R = 3963 # radius of Earth (miles) 267 | lat1, lon1 = math.radians(a[0]), math.radians(a[1]) 268 | lat2, lon2 = math.radians(b[0]), math.radians(b[1]) 269 | return math.acos( math.sin(lat1)*math.sin(lat2) + 270 | math.cos(lat1)*math.cos(lat2)*math.cos(lon1-lon2) ) * R 271 | 272 | def route_move(state): 273 | """Swaps two cities in the route.""" 274 | a = random.randint( 0, len(state)-1 ) 275 | b = random.randint( 0, len(state)-1 ) 276 | state[a], state[b] = state[b], state[a] 277 | 278 | def route_energy(state): 279 | """Calculates the length of the route.""" 280 | e = 0 281 | for i in range(len(state)): 282 | e += distance( cities[state[i-1]], cities[state[i]] ) 283 | return e 284 | 285 | # Start with the cities listed in random order 286 | state = cities.keys() 287 | random.shuffle(state) 288 | 289 | # Minimize the distance to be traveled by simulated annealing with a 290 | # manually chosen temperature schedule 291 | annealer = Annealer(route_energy, route_move) 292 | state, e = annealer.anneal(state, 10000000, 0.01, 18000*len(state), 9) 293 | while state[0] != 'New York City': 294 | state = state[1:] + state[:1] # rotate NYC to start 295 | print "%i mile route:" % route_energy(state) 296 | for city in state: 297 | print "\t", city 298 | 299 | # Minimize the distance to be traveled by simulated annealing with an 300 | # automatically chosen temperature schedule 301 | state, e = annealer.auto(state, 4) 302 | while state[0] != 'New York City': 303 | state = state[1:] + state[:1] # rotate NYC to start 304 | print "%i mile route:" % route_energy(state) 305 | for city in state: 306 | print "\t", city 307 | 308 | sys.exit() 309 | -------------------------------------------------------------------------------- /places/arrange.py: -------------------------------------------------------------------------------- 1 | from os.path import exists 2 | from csv import DictReader 3 | from math import sin, cos, pi, hypot 4 | from json import dump as dumpjson 5 | from itertools import combinations 6 | from optparse import OptionParser, OptParseError 7 | from gzip import GzipFile 8 | from copy import deepcopy 9 | from random import choice, random 10 | 11 | from PIL.Image import new as newimg 12 | from PIL.ImageDraw import Draw as drawimg 13 | from PIL.ImageFont import truetype 14 | 15 | from anneal import Annealer 16 | 17 | from ModestMaps import mapByCenterZoom 18 | from ModestMaps.Geo import Location 19 | from ModestMaps.OpenStreetMap import Provider 20 | from ModestMaps.Core import Point, Coordinate 21 | 22 | from shapely.geometry import Polygon 23 | 24 | NE, ENE, ESE, SE, SSE, S, SW, WSW, WNW, NW, NNW, N, NNE = range(13) 25 | 26 | # slide 13 of http://www.cs.uu.nl/docs/vakken/gd/steven2.pdf 27 | placements = {NE: 0.000, ENE: 0.070, ESE: 0.100, SE: 0.175, SSE: 0.200, 28 | S: 0.900, SW: 0.600, WSW: 0.500, WNW: 0.470, NW: 0.400, 29 | NNW: 0.575, N: 0.800, NNE: 0.150} 30 | 31 | optparser = OptionParser(usage="""%prog [options] 32 | """) 33 | 34 | defaults = { 35 | 'zoom': 5, 36 | 'minutes': 1, 37 | 'points': 'out-points.json', 38 | 'labels': 'out-labels.json', 39 | 'countries': 'Countries.csv', 40 | 'countryfont': ('fonts/DejaVuSans.ttf', 12), 41 | 'pop25mfont': ('fonts/DejaVuSans.ttf', 14), 42 | 'pop250kfont': ('fonts/DejaVuSans.ttf', 12), 43 | 'pop50kfont': ('fonts/DejaVuSans.ttf', 12), 44 | 'popotherfont': ('fonts/DejaVuSans.ttf', 12) 45 | } 46 | 47 | optparser.set_defaults(**defaults) 48 | 49 | optparser.add_option('-c', '--countries', dest='countries', 50 | type='string', help='Input filename for countries. Default value is "%(countries)s".' % defaults) 51 | 52 | optparser.add_option('-p', '--points', dest='points', 53 | type='string', help='Output filename for points. Default value is "%(points)s".' % defaults) 54 | 55 | optparser.add_option('-l', '--labels', dest='labels', 56 | type='string', help='Output filename for labels. Default value is "%(labels)s".' % defaults) 57 | 58 | optparser.add_option('-m', '--minutes', dest='minutes', 59 | type='float', help='Number of minutes to run annealer. Default value is %(minutes).1f.' % defaults) 60 | 61 | optparser.add_option('-z', '--zoom', dest='zoom', 62 | type='int', help='Map zoom level. Default value is %(zoom)d.' % defaults) 63 | 64 | optparser.add_option('--country-font', dest='countryfont', 65 | type='string', nargs=2, help='Font filename and point size for countries. Default value is "%s", %d.' % (defaults['popotherfont'][0], defaults['popotherfont'][1])) 66 | 67 | optparser.add_option('--pop25m-font', dest='pop25mfont', 68 | type='string', nargs=2, help='Font filename and point size for cities of population 2.5m+. Default value is "%s", %d.' % (defaults['pop25mfont'][0], defaults['pop25mfont'][1])) 69 | 70 | optparser.add_option('--pop250k-font', dest='pop250kfont', 71 | type='string', nargs=2, help='Font filename and point size for cities of population 250k+. Default value is "%s", %d.' % (defaults['pop250kfont'][0], defaults['pop250kfont'][1])) 72 | 73 | optparser.add_option('--pop50k-font', dest='pop50kfont', 74 | type='string', nargs=2, help='Font filename and point size for cities of population 50k+. Default value is "%s", %d.' % (defaults['pop50kfont'][0], defaults['pop50kfont'][1])) 75 | 76 | optparser.add_option('--popother-font', dest='popotherfont', 77 | type='string', nargs=2, help='Font filename and point size for smaller cities. Default value is "%s", %d.' % (defaults['popotherfont'][0], defaults['popotherfont'][1])) 78 | 79 | def coin_flip(): 80 | return choice((True, False)) 81 | 82 | def compare_places(this, that): 83 | this = -int(this.__class__ is Country), this.rank, -(this.population or 0) 84 | that = -int(that.__class__ is Country), that.rank, -(that.population or 0) 85 | 86 | return cmp(this, that) 87 | 88 | class Country: 89 | 90 | def __init__(self, name, abbreviation, rank, zoom, land_area, population, location, position, font): 91 | self.name = name 92 | self.abbr = abbreviation 93 | self.rank = rank 94 | self.zoom = zoom 95 | self.area = land_area 96 | self.population = population 97 | self.location = location 98 | self.position = position 99 | 100 | self.buffer = 2 101 | self.use_abbr = False 102 | 103 | self._original = deepcopy(position) 104 | self._label_shape = None 105 | 106 | self._minwidth, self._minheight = font.getsize(self.abbr) 107 | self._maxwidth, self._maxheight = font.getsize(self.name) 108 | 109 | self._update_label_shape() 110 | 111 | def __repr__(self): 112 | return '' % self.abbr 113 | 114 | def __hash__(self): 115 | return id(self) 116 | 117 | def __cmp__(self, other): 118 | return compare_places(self, other) 119 | 120 | def __unicode__(self): 121 | return unicode(self.use_abbr and self.abbr or self.name) 122 | 123 | def _update_label_shape(self): 124 | """ 125 | """ 126 | x, y = self.position.x, self.position.y 127 | 128 | if self.use_abbr: 129 | width, height = self._minwidth, self._minheight 130 | else: 131 | width, height = self._maxwidth, self._maxheight 132 | 133 | x1, y1 = x - width/2, y - height/2 134 | x2, y2 = x + width/2, y + height/2 135 | 136 | self._label_shape = Polygon(((x1, y1), (x1, y2), (x2, y2), (x2, y1), (x1, y1))) 137 | 138 | def label_bbox(self): 139 | return self._label_shape.envelope 140 | 141 | def mask_shape(self): 142 | return self._label_shape.buffer(self.buffer).envelope 143 | 144 | def move(self): 145 | self.use_abbr = coin_flip() 146 | 147 | width = self.use_abbr and self._minwidth or self._maxwidth 148 | height = self.use_abbr and self._minheight or self._maxheight 149 | 150 | x = (random() - .5) * width 151 | y = (random() - .5) * height 152 | 153 | self.position.x = self._original.x + x 154 | self.position.y = self._original.y + y 155 | 156 | self._update_label_shape() 157 | 158 | def placement_energy(self): 159 | width = self.use_abbr and self._minwidth or self._maxwidth 160 | 161 | x = 2 * (self.position.x - self._original.x) / width 162 | y = 2 * (self.position.y - self._original.y) / width 163 | 164 | return int(self.use_abbr) + hypot(x, y) ** 2 165 | 166 | def overlap_energy(self, other): 167 | if self.overlaps(other): 168 | return min(10.0 / self.rank, 10.0 / other.rank) 169 | 170 | return 0.0 171 | 172 | def overlaps(self, other, reflexive=True): 173 | overlaps = self.mask_shape().intersects(other.label_bbox()) 174 | 175 | if reflexive: 176 | overlaps |= other.overlaps(self, False) 177 | 178 | return overlaps 179 | 180 | def in_range(self, other, reflexive=True): 181 | range = hypot(self._maxwidth + self.buffer*2, self._maxheight + self.buffer*2) 182 | distance = hypot(self.position.x - other.position.x, self.position.y - other.position.y) 183 | in_range = distance <= range 184 | 185 | if reflexive: 186 | in_range |= other.in_range(self, False) 187 | 188 | return in_range 189 | 190 | class City: 191 | 192 | def __init__(self, name, rank, zoom, population, geonameid, location, position, font): 193 | self.name = name 194 | self.rank = rank 195 | self.zoom = zoom 196 | self.population = population 197 | self.geonameid = geonameid 198 | self.location = location 199 | self.position = position 200 | 201 | self.placement = NE 202 | self.radius = 4 203 | self.buffer = 2 204 | 205 | x1, y1 = position.x - self.radius, position.y - self.radius 206 | x2, y2 = position.x + self.radius, position.y + self.radius 207 | 208 | self._point_shape = Polygon(((x1, y1), (x1, y2), (x2, y2), (x2, y1), (x1, y1))) 209 | self._label_shape = None 210 | 211 | self._width, self._height = font.getsize(self.name) 212 | self._update_label_shape() 213 | 214 | def __repr__(self): 215 | return '' % self.name 216 | 217 | def __hash__(self): 218 | return id(self) 219 | 220 | def __cmp__(self, other): 221 | return compare_places(self, other) 222 | 223 | def __unicode__(self): 224 | return unicode(self.name) 225 | 226 | def _update_label_shape(self): 227 | """ 228 | """ 229 | x, y = self.position.x, self.position.y 230 | 231 | if self.placement in (NE, ENE, ESE, SE): 232 | x += self.radius + self._width/2 233 | 234 | if self.placement in (NW, WNW, WSW, SW): 235 | x -= self.radius + self._width/2 236 | 237 | if self.placement in (NW, NE): 238 | y -= self._height/2 239 | 240 | if self.placement in (SW, SE): 241 | y += self._height/2 242 | 243 | if self.placement in (ENE, WNW): 244 | y -= self._height/6 245 | 246 | if self.placement in (ESE, WSW): 247 | y += self._height/6 248 | 249 | if self.placement in (NNE, SSE, NNW): 250 | _x = self.radius * cos(pi/4) + self._width/2 251 | _y = self.radius * sin(pi/4) + self._height/2 252 | 253 | if self.placement in (NNE, SSE): 254 | x += _x 255 | else: 256 | x -= _x 257 | 258 | if self.placement in (SSE, ): 259 | y += _y 260 | else: 261 | y -= _y 262 | 263 | if self.placement == N: 264 | y -= self.radius + self._height / 2 265 | 266 | if self.placement == S: 267 | y += self.radius + self._height / 2 268 | 269 | x1, y1 = x - self._width/2, y - self._height/2 270 | x2, y2 = x + self._width/2, y + self._height/2 271 | 272 | self._label_shape = Polygon(((x1, y1), (x1, y2), (x2, y2), (x2, y1), (x1, y1))) 273 | 274 | def label_bbox(self): 275 | return self._label_shape.envelope 276 | 277 | def mask_shape(self): 278 | return self._label_shape.buffer(self.buffer).envelope.union(self._point_shape) 279 | 280 | def move(self): 281 | self.placement = choice(placements.keys()) 282 | self._update_label_shape() 283 | 284 | def placement_energy(self): 285 | return placements[self.placement] 286 | 287 | def overlap_energy(self, other): 288 | if self.overlaps(other): 289 | return min(10.0 / self.rank, 10.0 / other.rank) 290 | 291 | return 0.0 292 | 293 | def overlaps(self, other, reflexive=True): 294 | overlaps = self.mask_shape().intersects(other.label_bbox()) 295 | 296 | if reflexive: 297 | overlaps |= other.overlaps(self, False) 298 | 299 | return overlaps 300 | 301 | def in_range(self, other, reflexive=True): 302 | range = self.radius + hypot(self._width + self.buffer*2, self._height + self.buffer*2) 303 | distance = hypot(self.position.x - other.position.x, self.position.y - other.position.y) 304 | in_range = distance <= range 305 | 306 | if reflexive: 307 | in_range |= other.in_range(self, False) 308 | 309 | return in_range 310 | 311 | class HighZoomCity(City): 312 | 313 | def __init__(self, name, rank, zoom, population, geonameid, location, position, font): 314 | self.name = name 315 | self.rank = rank 316 | self.zoom = zoom 317 | self.population = population 318 | self.geonameid = geonameid 319 | self.location = location 320 | self.position = position 321 | 322 | self.buffer = 2 323 | 324 | self._original = deepcopy(position) 325 | self._label_shape = None 326 | 327 | self._width, self._height = font.getsize(self.name) 328 | 329 | self._update_label_shape() 330 | 331 | def __repr__(self): 332 | return '' % self.name 333 | 334 | def __hash__(self): 335 | return id(self) 336 | 337 | def _update_label_shape(self): 338 | """ 339 | """ 340 | x, y = self.position.x, self.position.y 341 | 342 | x1, y1 = x - self._width/2, y - self._height/2 343 | x2, y2 = x + self._width/2, y + self._height/2 344 | 345 | self._label_shape = Polygon(((x1, y1), (x1, y2), (x2, y2), (x2, y1), (x1, y1))) 346 | 347 | def mask_shape(self): 348 | return self._label_shape.buffer(self.buffer).envelope 349 | 350 | def move(self): 351 | x = (random() - .5) * self._width 352 | y = (random() - .5) * self._height 353 | 354 | self.position.x = self._original.x + x 355 | self.position.y = self._original.y + y 356 | 357 | self._update_label_shape() 358 | 359 | def placement_energy(self): 360 | x = 2 * (self.position.x - self._original.x) / self._width 361 | y = 2 * (self.position.y - self._original.y) / self._width 362 | 363 | return hypot(x, y) ** 2 364 | 365 | def overlap_energy(self, other): 366 | if self.overlaps(other): 367 | return min(10.0 / self.rank, 10.0 / other.rank) 368 | 369 | return 0.0 370 | 371 | def in_range(self, other, reflexive=True): 372 | range = hypot(self._width + self.buffer*2, self._height + self.buffer*2) 373 | distance = hypot(self.position.x - other.position.x, self.position.y - other.position.y) 374 | in_range = distance <= range 375 | 376 | if reflexive: 377 | in_range |= other.in_range(self, False) 378 | 379 | return in_range 380 | 381 | class Places: 382 | 383 | def __init__(self): 384 | self._places = [] 385 | self._energy = 0.0 386 | self._neighbors = {} 387 | self._moveable = [] 388 | 389 | def __iter__(self): 390 | return iter(self._places) 391 | 392 | def add(self, place): 393 | self._neighbors[place] = set() 394 | 395 | for other in self._places: 396 | if not place.in_range(other): 397 | continue 398 | 399 | self._energy += place.overlap_energy(other) 400 | self._neighbors[place].add(other) 401 | self._neighbors[other].add(place) 402 | 403 | self._energy += place.placement_energy() 404 | self._places.append(place) 405 | 406 | if place.zoom <= 7: 407 | self._moveable.append(place) 408 | 409 | return self._neighbors[place] 410 | 411 | def energy(self): 412 | return self._energy 413 | 414 | def move(self): 415 | place = choice(self._moveable) 416 | 417 | for other in self._neighbors[place]: 418 | self._energy -= place.overlap_energy(other) 419 | 420 | self._energy -= place.placement_energy() 421 | 422 | place.move() 423 | 424 | for other in self._neighbors[place]: 425 | self._energy += place.overlap_energy(other) 426 | 427 | self._energy += place.placement_energy() 428 | 429 | def postprocess_args(opts, args): 430 | """ Return inputfile, pointsfile, labelsfile, minutes, zoom, fonts after optparser.parse_args(). 431 | """ 432 | try: 433 | inputfiles = args[0:] 434 | except IndexError: 435 | raise OptParseError('Input filename is required.') 436 | 437 | for inputfile in inputfiles: 438 | if not exists(inputfile): 439 | raise OptParseError('Non-existent input filename: "%(inputfile)s".' % locals()) 440 | 441 | minutes = opts.minutes 442 | 443 | if minutes <= 0: 444 | raise OptParseError('Minutes must be greater than 0: "%(minutes).1f".' % locals()) 445 | 446 | fonts = {} 447 | 448 | fontfile, fontsize = opts.countryfont 449 | 450 | try: 451 | fontsize = int(fontsize) 452 | except ValueError: 453 | raise OptParseError('Bad font size for countries: "%(fontsize)s".' % locals()) 454 | 455 | if not exists(fontfile): 456 | raise OptParseError('Non-existent font filename for counties: "%(fontfile)s".' % locals()) 457 | 458 | fonts['country'] = truetype(fontfile, fontsize, encoding='unic') 459 | 460 | for opt in ('pop25mfont', 'pop250kfont', 'pop50kfont', 'popotherfont'): 461 | population = opt[3:-4] 462 | fontfile, fontsize = getattr(opts, opt) 463 | 464 | try: 465 | fontsize = int(fontsize) 466 | except ValueError: 467 | raise OptParseError('Bad font size for population %(population)s: "%(fontsize)s".' % locals()) 468 | 469 | if not exists(fontfile): 470 | raise OptParseError('Non-existent font filename for population %(population)s: "%(fontfile)s".' % locals()) 471 | 472 | fonts[population] = truetype(fontfile, fontsize, encoding='unic') 473 | 474 | zoom = opts.zoom 475 | countriesfile = opts.countries 476 | pointsfile = opts.points 477 | labelsfile = opts.labels 478 | 479 | return countriesfile, inputfiles, pointsfile, labelsfile, minutes, zoom, fonts 480 | 481 | def location_point(lat, lon, zoom): 482 | """ Return a point that maps to pixels at the requested zoom level for 2^8 tile size. 483 | """ 484 | try: 485 | osm = Provider() 486 | 487 | location = Location(float(lat), float(lon)) 488 | coord = osm.locationCoordinate(location).zoomTo(zoom + 8) 489 | point = Point(coord.column, coord.row) 490 | 491 | return location, point 492 | except ValueError: 493 | raise Exception((lat, lon, zoom)) 494 | 495 | def load_places(countriesfile, inputfiles, fonts, zoom): 496 | """ Load a new Places instance from the named text files for a given zoom. 497 | """ 498 | osm = Provider() 499 | places = Places() 500 | count = 0 501 | 502 | for row in DictReader(open(countriesfile, 'r'), dialect='excel'): 503 | if int(row['zoom']) > zoom: 504 | continue 505 | 506 | location, point = location_point(row['latitude'], row['longitude'], zoom) 507 | land_area = float(row['land area km']) 508 | population = int(row['population']) 509 | font = fonts['country'] 510 | 511 | kwargs = {'name': row['name'].decode('utf-8'), 512 | 'abbreviation': row['abbreviation'].decode('utf-8'), 513 | 'land_area': land_area, 514 | 'population': population, 515 | 'font': font, 516 | 'zoom': int(row['zoom']), 517 | 518 | 'location': location, 519 | 'position': point, 520 | 521 | # subtract two because the biggest countries appear at z3 522 | 'rank': int(row['zoom']) - 2 523 | } 524 | 525 | neighbors = places.add(Country(**kwargs)) 526 | 527 | count += 1 528 | print '%5d)' % count, row['name'], location, point 529 | 530 | if neighbors: 531 | print ' is in range of', ', '.join([n.name for n in neighbors]) 532 | 533 | for inputfile in inputfiles: 534 | 535 | input = inputfile.endswith('.gz') and GzipFile(inputfile, 'r') or open(inputfile, 'r') 536 | 537 | for row in DictReader(input, dialect='excel-tab'): 538 | if int(row['zoom']) > zoom: 539 | continue 540 | 541 | location, point = location_point(row['latitude'], row['longitude'], zoom) 542 | 543 | try: 544 | population = int(row['population']) 545 | except ValueError: 546 | population = None 547 | 548 | if population >= 2500000: 549 | font = fonts['25m'] 550 | elif population >= 250000: 551 | font = fonts['250k'] 552 | elif population >= 50000: 553 | font = fonts['50k'] 554 | else: 555 | font = fonts['other'] 556 | 557 | kwargs = {'name': row['name'].decode('utf-8'), 558 | 'population': population, 559 | 'font': font, 560 | 'zoom': int(row['zoom']), 561 | 562 | 'geonameid': row['geonameid'], 563 | 'location': location, 564 | 'position': point, 565 | 566 | # subtract three because the biggest cities appear at z4 567 | 'rank': int(row['zoom']) - 3 568 | } 569 | 570 | if zoom >= 9: 571 | neighbors = places.add(HighZoomCity(**kwargs)) 572 | else: 573 | neighbors = places.add(City(**kwargs)) 574 | 575 | count += 1 576 | print '%5d)' % count, row['name'], location, point 577 | 578 | if neighbors: 579 | print ' is in range of', ', '.join([n.name for n in neighbors]) 580 | 581 | return places 582 | 583 | def bbox_polygon(bbox, provider, zoom): 584 | 585 | rectangle = bbox.envelope.exterior 586 | (x1, y1), (x2, y2) = rectangle.coords[0], rectangle.coords[2] 587 | 588 | coord1 = Coordinate(y1, x1, zoom + 8) 589 | coord2 = Coordinate(y2, x2, zoom + 8) 590 | 591 | location1 = provider.coordinateLocation(coord1) 592 | location2 = provider.coordinateLocation(coord2) 593 | 594 | lat1, lon1 = location1.lat, location1.lon 595 | lat2, lon2 = location2.lat, location2.lon 596 | 597 | return Polygon(((lon1, lat1), (lon1, lat2), (lon2, lat2), (lon2, lat1), (lon1, lat1))) 598 | 599 | if __name__ == '__main__': 600 | 601 | opts, args = optparser.parse_args() 602 | countriesfile, inputfiles, pointsfile, labelsfile, minutes, zoom, fonts \ 603 | = postprocess_args(opts, args) 604 | 605 | capitals = set( [geonameid.strip() for geonameid in open('Capitals.txt')] ) 606 | places = load_places(countriesfile, inputfiles, fonts, zoom) 607 | 608 | print '-' * 80 609 | 610 | print len(places._moveable), 'moveable places vs.', len(places._places), 'others' 611 | 612 | print '-' * 80 613 | 614 | def state_energy(places): 615 | return places.energy() 616 | 617 | def state_move(places): 618 | places.move() 619 | 620 | places, e = Annealer(state_energy, state_move).auto(places, minutes, 50) 621 | 622 | print '-' * 80 623 | 624 | osm = Provider() 625 | point_features, label_features = [], [] 626 | visible_places = [] 627 | 628 | for place in sorted(places): 629 | 630 | is_visible = True 631 | 632 | for other in visible_places: 633 | if place.overlaps(other): 634 | print 'skip', place.name, 'because of', other.name 635 | is_visible = False 636 | break 637 | 638 | if not is_visible: 639 | continue 640 | 641 | visible_places.append(place) 642 | 643 | properties = {'name': unicode(place), 644 | 'rank': place.rank, 645 | 'population': place.population, 646 | 'geonameid': getattr(place, 'geonameid', None), 647 | 'capital': (getattr(place, 'geonameid', '') in capitals and 'yes' or 'no'), 648 | 'place': (place.__class__ is Country and 'country' or 'city') 649 | } 650 | 651 | location = place.location 652 | point_geometry = {'type': 'Point', 'coordinates': (location.lon, location.lat)} 653 | 654 | point_features.append({'type': 'Feature', 655 | 'geometry': point_geometry, 656 | 'properties': properties 657 | }) 658 | 659 | label_geometry = bbox_polygon(place.label_bbox(), osm, zoom).__geo_interface__ 660 | 661 | label_features.append({'type': 'Feature', 662 | 'geometry': label_geometry, 663 | 'properties': properties 664 | }) 665 | 666 | dumpjson({'type': 'FeatureCollection', 'features': point_features}, open(pointsfile, 'w')) 667 | dumpjson({'type': 'FeatureCollection', 'features': label_features}, open(labelsfile, 'w')) 668 | 669 | print 'Wrote %d points to %s and %s.' % (len(point_features), pointsfile, labelsfile) 670 | 671 | print '-' * 80 672 | 673 | map = mapByCenterZoom(osm, Location(0, 0), zoom, Point(2 ** (zoom + 8), 2 ** (zoom + 8))) 674 | 675 | if zoom > 5: 676 | map = mapByCenterZoom(osm, Location(40.078, -96.987), zoom, Point(1400, 800)) 677 | map = mapByCenterZoom(osm, Location(38.889, -77.050), zoom, Point(1200, 900)) 678 | 679 | img = map.draw(False) # newimg('RGB', (map.dimensions.x, map.dimensions.y), (0xFF, 0xFF, 0xFF)) 680 | draw = drawimg(img) 681 | 682 | print '-' * 80 683 | 684 | sw = map.pointLocation(Point(-100, map.dimensions.y + 100)) 685 | ne = map.pointLocation(Point(map.dimensions.x + 100, -100)) 686 | 687 | previewed_places = [place for place in visible_places 688 | if (sw.lat < place.location.lat and place.location.lat < ne.lat 689 | and sw.lon < place.location.lon and place.location.lon < ne.lon)] 690 | 691 | for place in previewed_places: 692 | box = place.label_bbox().envelope.exterior 693 | coord1 = Coordinate(box.coords[0][1], box.coords[0][0], zoom + 8) 694 | coord2 = Coordinate(box.coords[2][1], box.coords[2][0], zoom + 8) 695 | 696 | loc1, loc2 = osm.coordinateLocation(coord1), osm.coordinateLocation(coord2) 697 | point1, point2 = map.locationPoint(loc1), map.locationPoint(loc2) 698 | 699 | draw.rectangle((point1.x, point1.y, point2.x, point2.y), fill=(0xEE, 0xEE, 0xEE)) 700 | 701 | i = 1 702 | for (cityA, cityB) in combinations(previewed_places, 2): 703 | if cityA.overlaps(cityB): 704 | print '%03d:' % i, cityA.name, 'x', cityB.name 705 | i += 1 706 | 707 | for place in previewed_places: 708 | if place.__class__ is Country: 709 | continue 710 | 711 | location = place.location 712 | point = map.locationPoint(location) 713 | color = (place.__class__ is Country) and (0x66, 0x66, 0x66) or (0x00, 0x00, 0x99) 714 | 715 | draw.rectangle((point.x-1, point.y-1, point.x+1, point.y+1), fill=color) 716 | 717 | for place in previewed_places: 718 | box = place.label_bbox().exterior 719 | coords = [Coordinate(c[1], c[0], zoom + 8) for c in box.coords] 720 | locations = [osm.coordinateLocation(coord) for coord in coords] 721 | points = [map.locationPoint(location) for location in locations] 722 | 723 | x = min([point.x for point in points]) + place.buffer 724 | y = min([point.y for point in points]) + place.buffer 725 | 726 | if place.__class__ is Country: 727 | font = fonts['country'] 728 | elif place.population >= 2500000: 729 | font = fonts['25m'] 730 | elif place.population >= 250000: 731 | font = fonts['250k'] 732 | elif place.population >= 50000: 733 | font = fonts['50k'] 734 | else: 735 | font = fonts['other'] 736 | 737 | draw.text((x, y), unicode(place), font=font, fill=(0x00, 0x00, 0x00)) 738 | 739 | img.save('out.png') 740 | 741 | print 'Saved preview map to out.png.' 742 | -------------------------------------------------------------------------------- /places/fonts/Arial Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/fonts/Arial Bold Italic.ttf -------------------------------------------------------------------------------- /places/fonts/Arial Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/fonts/Arial Bold.ttf -------------------------------------------------------------------------------- /places/fonts/Arial Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/fonts/Arial Italic.ttf -------------------------------------------------------------------------------- /places/fonts/Arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/fonts/Arial.ttf -------------------------------------------------------------------------------- /places/fonts/DejaVuSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/places/fonts/DejaVuSans.ttf -------------------------------------------------------------------------------- /places/join-geojson.py: -------------------------------------------------------------------------------- 1 | """ Join multiple GeoJSON files into one on stdout. 2 | """ 3 | from sys import argv, stdout 4 | from json import load, dump 5 | from operator import add 6 | 7 | if __name__ == '__main__': 8 | collections = [load(open(filename, 'r')) for filename in argv[1:]] 9 | features = reduce(add, [c['features'] for c in collections], []) 10 | dump({'type': 'FeatureCollection', 'features': features}, stdout) 11 | -------------------------------------------------------------------------------- /tile.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import os, TileStache 3 | TileStache.cgiHandler(os.environ, 'acetate.cfg', debug=True) 4 | 5 | -------------------------------------------------------------------------------- /tiles/Makefile: -------------------------------------------------------------------------------- 1 | all: cache 2 | 3 | cache: 4 | mkdir cache 5 | chmod a+rwX cache 6 | 7 | clean: 8 | rm -rf cache 9 | -------------------------------------------------------------------------------- /tiles/acetate.cfg: -------------------------------------------------------------------------------- 1 | { 2 | "cache": {"name": "Disk", "path": "cache", "umask": "0000"}, 3 | "layers": 4 | { 5 | 6 | "composite-choropleth": 7 | { 8 | "provider": 9 | { 10 | "class": "TileStache.Goodies.Providers.Composite.Provider", 11 | "kwargs": 12 | { 13 | "stack": 14 | [ 15 | { "src": "acetate-bg" }, 16 | { "src": "sample-choropleth" }, 17 | { "src": "acetate-fg" } 18 | ] 19 | } 20 | }, 21 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 }, 22 | "preview": { "zoom": 12 } 23 | }, 24 | 25 | "composite-hillshading": 26 | { 27 | "provider": 28 | { 29 | "class": "TileStache.Goodies.Providers.Composite.Provider", 30 | "kwargs": 31 | { 32 | "stack": 33 | [ 34 | { "src": "acetate-bg" }, 35 | { 36 | "src": "hillshading", 37 | "adjustments": [ ["curves", [0, 181, 255]] ], 38 | "mode": "hard light", 39 | "opacity": 0.5 40 | }, 41 | { "src": "acetate-fg" } 42 | ] 43 | } 44 | }, 45 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 }, 46 | "preview": { "zoom": 8, "ext": "jpg" } 47 | }, 48 | 49 | 50 | 51 | "acetate": 52 | { 53 | "provider": { "name": "mapnik", "mapfile": "style-combined.xml", "fonts": "fonts" }, 54 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 }, 55 | "preview": { "zoom": 14 } 56 | }, 57 | 58 | "acetate-bg": 59 | { 60 | "provider": { "name": "mapnik", "mapfile": "style-background.xml", "fonts": "fonts" }, 61 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 }, 62 | "preview": { "zoom": 14 } 63 | }, 64 | 65 | "acetate-fg": 66 | { 67 | "provider": { "name": "mapnik", "mapfile": "style-foreground.xml", "fonts": "fonts" }, 68 | "metatile": { "rows": 4, "columns": 4, "buffer": 128 }, 69 | "preview": { "zoom": 14 } 70 | }, 71 | 72 | 73 | 74 | "hillshading": 75 | { 76 | "provider": { "name": "proxy", "url": "http://184.72.183.90/hillshade/{Z}/{X}/{Y}.png" }, 77 | "preview": { "zoom": 8 } 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /tiles/fonts/Arial Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/fonts/Arial Bold Italic.ttf -------------------------------------------------------------------------------- /tiles/fonts/Arial Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/fonts/Arial Bold.ttf -------------------------------------------------------------------------------- /tiles/fonts/Arial Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/fonts/Arial Italic.ttf -------------------------------------------------------------------------------- /tiles/fonts/Arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/fonts/Arial.ttf -------------------------------------------------------------------------------- /tiles/gray-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/gray-point.png -------------------------------------------------------------------------------- /tiles/shp/continents.dbf: -------------------------------------------------------------------------------- 1 | _AQWnameCP North America South America Africa Australia Asia Europe Antarctica -------------------------------------------------------------------------------- /tiles/shp/continents.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/continents.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/continents.shp -------------------------------------------------------------------------------- /tiles/shp/continents.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/continents.shx -------------------------------------------------------------------------------- /tiles/shp/null.dbf: -------------------------------------------------------------------------------- 1 | _AQWnameCP Null Island -------------------------------------------------------------------------------- /tiles/shp/null.prj: -------------------------------------------------------------------------------- 1 | PROJCS["Google Maps Global Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] -------------------------------------------------------------------------------- /tiles/shp/null.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/null.shp -------------------------------------------------------------------------------- /tiles/shp/null.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/null.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z10.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z10.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z10.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z10.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z10.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z10.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z10.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z11plus.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z11plus.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z11plus.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z11plus.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z11plus.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z11plus.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z11plus.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z3.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z3.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z3.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z3.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z3.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z3.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z3.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z4.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z4.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z4.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z4.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z4.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z4.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z4.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z5.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z5.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z5.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z5.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z5.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z5.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z5.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z6.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z6.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z6.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z6.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z6.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z6.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z6.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z7.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z7.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z7.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z7.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z7.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z7.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z7.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z8.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z8.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z8.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z8.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z8.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z8.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z8.shx -------------------------------------------------------------------------------- /tiles/shp/place-labels-z9.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z9.dbf -------------------------------------------------------------------------------- /tiles/shp/place-labels-z9.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-labels-z9.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z9.shp -------------------------------------------------------------------------------- /tiles/shp/place-labels-z9.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-labels-z9.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z10.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z10.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z10.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z10.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z10.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z10.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z10.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z11plus.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z11plus.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z11plus.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z11plus.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z11plus.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z11plus.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z11plus.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z3.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z3.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z3.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z3.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z3.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z3.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z3.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z4.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z4.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z4.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z4.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z4.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z4.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z4.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z5.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z5.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z5.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z5.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z5.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z5.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z5.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z6.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z6.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z6.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z6.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z6.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z6.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z6.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z7.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z7.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z7.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z7.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z7.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z7.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z7.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z8.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z8.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z8.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z8.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z8.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z8.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z8.shx -------------------------------------------------------------------------------- /tiles/shp/place-points-z9.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z9.dbf -------------------------------------------------------------------------------- /tiles/shp/place-points-z9.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tiles/shp/place-points-z9.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z9.shp -------------------------------------------------------------------------------- /tiles/shp/place-points-z9.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/shp/place-points-z9.shx -------------------------------------------------------------------------------- /tiles/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/star.png -------------------------------------------------------------------------------- /tiles/tile.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import os, TileStache 3 | 4 | class Layers: 5 | def __init__(self, config, layers): 6 | self.config = config 7 | 8 | # each layer has a back-reference to config that we'll need to update. 9 | for name in layers: 10 | layers[name].config = config 11 | 12 | self._layers = layers 13 | 14 | def keys(self): 15 | return self._layers.keys() 16 | 17 | def items(self): 18 | return self._layers.items() 19 | 20 | def __contains__(self, name): 21 | return name in self._layers 22 | 23 | def __getitem__(self, name): 24 | """ 25 | """ 26 | if name not in self._layers and name == 'sample-choropleth': 27 | 28 | # Boilerplate needed to build up a layer in code: 29 | # 1. configuration object from self.config. 30 | # 2. projection object instantiated out of TileStache.Geography. 31 | # 3. a metatile, which is just 1x1 without any arguments. 32 | 33 | projection = TileStache.Geography.SphericalMercator() 34 | metatile = TileStache.Core.Metatile() 35 | layer = TileStache.Core.Layer(self.config, projection, metatile) 36 | 37 | # The provider needs a backreference to 38 | # the layer, so it's added after the fact. 39 | 40 | layer.provider = TileStache.Providers.Mapnik(layer, 'cities-choropleth.xml') 41 | self._layers[name] = layer 42 | 43 | return self._layers[name] 44 | 45 | class WrapConfiguration: 46 | 47 | def __init__(self, config): 48 | self.cache = config.cache 49 | self.dirpath = config.dirpath 50 | self.layers = Layers(self, config.layers) 51 | 52 | config = WrapConfiguration(TileStache.parseConfigfile('acetate.cfg')) 53 | 54 | TileStache.cgiHandler(os.environ, config, debug=True) 55 | 56 | -------------------------------------------------------------------------------- /tiles/tr06_d00_shp/tracts.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/tr06_d00_shp/tracts.dbf -------------------------------------------------------------------------------- /tiles/tr06_d00_shp/tracts.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/tr06_d00_shp/tracts.shp -------------------------------------------------------------------------------- /tiles/tr06_d00_shp/tracts.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tiles/tr06_d00_shp/tracts.shx -------------------------------------------------------------------------------- /tr06_d00_shp/tracts.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tr06_d00_shp/tracts.dbf -------------------------------------------------------------------------------- /tr06_d00_shp/tracts.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tr06_d00_shp/tracts.shp -------------------------------------------------------------------------------- /tr06_d00_shp/tracts.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/tr06_d00_shp/tracts.shx -------------------------------------------------------------------------------- /world-shp/admin_0_countries_110m-points.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/admin_0_countries_110m-points.dbf -------------------------------------------------------------------------------- /world-shp/admin_0_countries_110m-points.prj: -------------------------------------------------------------------------------- 1 | PROJCS["Google Maps Global Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] -------------------------------------------------------------------------------- /world-shp/admin_0_countries_110m-points.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/admin_0_countries_110m-points.shp -------------------------------------------------------------------------------- /world-shp/admin_0_countries_110m-points.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/admin_0_countries_110m-points.shx -------------------------------------------------------------------------------- /world-shp/city-labels-z4.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z4.dbf -------------------------------------------------------------------------------- /world-shp/city-labels-z4.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-labels-z4.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z4.shp -------------------------------------------------------------------------------- /world-shp/city-labels-z4.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z4.shx -------------------------------------------------------------------------------- /world-shp/city-labels-z5.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z5.dbf -------------------------------------------------------------------------------- /world-shp/city-labels-z5.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-labels-z5.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z5.shp -------------------------------------------------------------------------------- /world-shp/city-labels-z5.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z5.shx -------------------------------------------------------------------------------- /world-shp/city-labels-z6.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z6.dbf -------------------------------------------------------------------------------- /world-shp/city-labels-z6.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-labels-z6.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z6.shp -------------------------------------------------------------------------------- /world-shp/city-labels-z6.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z6.shx -------------------------------------------------------------------------------- /world-shp/city-labels-z7.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z7.dbf -------------------------------------------------------------------------------- /world-shp/city-labels-z7.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-labels-z7.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z7.shp -------------------------------------------------------------------------------- /world-shp/city-labels-z7.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z7.shx -------------------------------------------------------------------------------- /world-shp/city-labels-z8.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z8.dbf -------------------------------------------------------------------------------- /world-shp/city-labels-z8.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-labels-z8.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z8.shp -------------------------------------------------------------------------------- /world-shp/city-labels-z8.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-labels-z8.shx -------------------------------------------------------------------------------- /world-shp/city-points-z4.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z4.dbf -------------------------------------------------------------------------------- /world-shp/city-points-z4.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-points-z4.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z4.shp -------------------------------------------------------------------------------- /world-shp/city-points-z4.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z4.shx -------------------------------------------------------------------------------- /world-shp/city-points-z5.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z5.dbf -------------------------------------------------------------------------------- /world-shp/city-points-z5.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-points-z5.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z5.shp -------------------------------------------------------------------------------- /world-shp/city-points-z5.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z5.shx -------------------------------------------------------------------------------- /world-shp/city-points-z6.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z6.dbf -------------------------------------------------------------------------------- /world-shp/city-points-z6.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-points-z6.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z6.shp -------------------------------------------------------------------------------- /world-shp/city-points-z6.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z6.shx -------------------------------------------------------------------------------- /world-shp/city-points-z7.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z7.dbf -------------------------------------------------------------------------------- /world-shp/city-points-z7.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-points-z7.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z7.shp -------------------------------------------------------------------------------- /world-shp/city-points-z7.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z7.shx -------------------------------------------------------------------------------- /world-shp/city-points-z8.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z8.dbf -------------------------------------------------------------------------------- /world-shp/city-points-z8.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/city-points-z8.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z8.shp -------------------------------------------------------------------------------- /world-shp/city-points-z8.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/city-points-z8.shx -------------------------------------------------------------------------------- /world-shp/continents.dbf: -------------------------------------------------------------------------------- 1 | _AQWnameCP North America South America Africa Australia Asia Europe Antarctica -------------------------------------------------------------------------------- /world-shp/continents.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /world-shp/continents.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/continents.shp -------------------------------------------------------------------------------- /world-shp/continents.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajturner/acetate/32fd0eb052fcdcc30dd1364450111fa4f5ccf120/world-shp/continents.shx --------------------------------------------------------------------------------