This bl.ock demostrates how to join geojson and csv data based on a common id and is in answer to this stackoverflow question. The method is simply to iterate through both the geojson and csv data. If the id's match a new element is added to the geojson object. The geojson data was taken from world.geo.
-
-
Save nicbor/0d5a47e4b1556740d82df1940cd7cabf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
id | name | |
---|---|---|
AFG | Afghanistan | |
AGO | Angola | |
ALB | Albania | |
ARE | United Arab Emirates | |
ARG | Argentina | |
ARM | Armenia | |
ATA | Antarctica | |
ATF | French Southern and Antarctic Lands | |
AUS | Australia | |
AUT | Austria | |
AZE | Azerbaijan | |
BDI | Burundi | |
BEL | Belgium | |
BEN | Benin | |
BFA | Burkina Faso | |
BGD | Bangladesh | |
BGR | Bulgaria | |
BHS | The Bahamas | |
BIH | Bosnia and Herzegovina | |
BLR | Belarus | |
BLZ | Belize | |
BMU | Bermuda | |
BOL | Bolivia | |
BRA | Brazil | |
BRN | Brunei | |
BTN | Bhutan | |
BWA | Botswana | |
CAF | Central African Republic | |
CAN | Canada | |
CHE | Switzerland | |
CHL | Chile | |
CHN | China | |
CIV | Ivory Coast | |
CMR | Cameroon | |
COD | Democratic Republic of the Congo | |
COG | Republic of the Congo | |
COL | Colombia | |
CRI | Costa Rica | |
CUB | Cuba | |
-99 | Northern Cyprus | |
CYP | Cyprus | |
CZE | Czech Republic | |
DEU | Germany | |
DJI | Djibouti | |
DNK | Denmark | |
DOM | Dominican Republic | |
DZA | Algeria | |
ECU | Ecuador | |
EGY | Egypt | |
ERI | Eritrea | |
ESP | Spain | |
EST | Estonia | |
ETH | Ethiopia | |
FIN | Finland | |
FJI | Fiji | |
FLK | Falkland Islands | |
FRA | France | |
GAB | Gabon | |
GBR | United Kingdom | |
GEO | Georgia | |
GHA | Ghana | |
GIN | Guinea | |
GMB | Gambia | |
GNB | Guinea Bissau | |
GNQ | Equatorial Guinea | |
GRC | Greece | |
GRL | Greenland | |
GTM | Guatemala | |
GUF | French Guiana | |
GUY | Guyana | |
HND | Honduras | |
HRV | Croatia | |
HTI | Haiti | |
HUN | Hungary | |
IDN | Indonesia | |
IND | India | |
IRL | Ireland | |
IRN | Iran | |
IRQ | Iraq | |
ISL | Iceland | |
ISR | Israel | |
ITA | Italy | |
JAM | Jamaica | |
JOR | Jordan | |
JPN | Japan | |
KAZ | Kazakhstan | |
KEN | Kenya | |
KGZ | Kyrgyzstan | |
KHM | Cambodia | |
KOR | South Korea | |
CS-KM | Kosovo | |
KWT | Kuwait | |
LAO | Laos | |
LBN | Lebanon | |
LBR | Liberia | |
LBY | Libya | |
LKA | Sri Lanka | |
LSO | Lesotho | |
LTU | Lithuania | |
LUX | Luxembourg | |
LVA | Latvia | |
MAR | Morocco | |
MDA | Moldova | |
MDG | Madagascar | |
MEX | Mexico | |
MKD | Macedonia | |
MLI | Mali | |
MLT | Malta | |
MMR | Myanmar | |
MNE | Montenegro | |
MNG | Mongolia | |
MOZ | Mozambique | |
MRT | Mauritania | |
MWI | Malawi | |
MYS | Malaysia | |
NAM | Namibia | |
NCL | New Caledonia | |
NER | Niger | |
NGA | Nigeria | |
NIC | Nicaragua | |
NLD | Netherlands | |
NOR | Norway | |
NPL | Nepal | |
NZL | New Zealand | |
OMN | Oman | |
PAK | Pakistan | |
PAN | Panama | |
PER | Peru | |
PHL | Philippines | |
PNG | Papua New Guinea | |
POL | Poland | |
PRI | Puerto Rico | |
PRK | North Korea | |
PRT | Portugal | |
PRY | Paraguay | |
QAT | Qatar | |
ROU | Romania | |
RUS | Russia | |
RWA | Rwanda | |
ESH | Western Sahara | |
SAU | Saudi Arabia | |
SDN | Sudan | |
SDS | South Sudan | |
SEN | Senegal | |
SLB | Solomon Islands | |
SLE | Sierra Leone | |
SLV | El Salvador | |
-99 | Somaliland | |
SOM | Somalia | |
SRB | Republic of Serbia | |
SUR | Suriname | |
SVK | Slovakia | |
SVN | Slovenia | |
SWE | Sweden | |
SWZ | Swaziland | |
SYR | Syria | |
TCD | Chad | |
TGO | Togo | |
THA | Thailand | |
TJK | Tajikistan | |
TKM | Turkmenistan | |
TLS | East Timor | |
TTO | Trinidad and Tobago | |
TUN | Tunisia | |
TUR | Turkey | |
TWN | Taiwan | |
TZA | United Republic of Tanzania | |
UGA | Uganda | |
UKR | Ukraine | |
URY | Uruguay | |
USA | United States of America | |
UZB | Uzbekistan | |
VEN | Venezuela | |
VNM | Vietnam | |
VUT | Vanuatu | |
PSE | West Bank | |
YEM | Yemen | |
ZAF | South Africa | |
ZMB | Zambia | |
ZWE | Zimbabwe |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
<title>geojson csv join</title> | |
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script> | |
<script type="text/javascript" src="http://d3js.org/topojson.v1.min.js"></script> | |
</head> | |
<body> | |
<p id="report"></p> | |
<div id="map"></div> | |
</body> | |
<script type="text/javascript"> | |
var h = 450, | |
w = 960; | |
// set-up unit projection and path | |
var projection = d3.geo.mercator() | |
.scale(1) | |
.translate([0, 0]); | |
var path = d3.geo.path() | |
.projection(projection); | |
// set-up svg canvas | |
var svg = d3.select("#map").append("svg") | |
.attr("height", h) | |
.attr("width", w); | |
//https://github.com/johan/world.geo.json | |
d3.json("countries.geo.json", function(error, data) { | |
d3.csv("idCountry.csv", function(error, csv) { | |
var world = data.features; | |
csv.forEach(function(d, i) { | |
world.forEach(function(e, j) { | |
if (d.id === e.id) { | |
e.name = d.name | |
} | |
}) | |
}) | |
// calculate bounds, scale and transform | |
// see http://stackoverflow.com/questions/14492284/center-a-map-in-d3-given-a-geojson-object | |
var b = path.bounds(data), | |
s = .95 / Math.max((b[1][0] - b[0][0]) / w, (b[1][1] - b[0][1]) / h), | |
t = [(w - s * (b[1][0] + b[0][0])) / 2, (h - s * (b[1][1] + b[0][1])) / 2]; | |
projection.scale(s) | |
.translate(t); | |
svg.selectAll("path") | |
.data(world).enter() | |
.append("path") | |
.style("fill", "none") | |
.style("stroke", "grey") | |
.style("stroke-width", "1px") | |
.attr("d", path) | |
.on("mouseover", function(d, i) { | |
reporter(d); | |
}); | |
}) | |
function reporter(x) { | |
console.log(x) | |
d3.select("#report").text(function() { | |
return x.name; | |
}); | |
} | |
}) | |
</script> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment