{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}]
}
{
"type": "FeatureCollection",
"features": []
}
features
: Feature Object를 element로 하는 배열{
"type": "Feature",
"geometry": {},
"properties": {}
}
type
geometry
: Geometry Object (, Feature의 위치 값이 없는 경우 null 값을 사용 가능)properties
: 속성 정보가 Key - Values 형태로 저장"properties": {
"prop0": "value0",
"prop1": 0.0
}
id
: JSON string 또는 JSON number 타입으로 작성"geometry": {
"type": "Point",
"coordinates": [102.0, 0.5]
},
type
: Geometry Type 중 하나의 값
coordinates
: 좌표 배열
(출처 : https://ko.wikipedia.org/wiki/GeoJSON)
<body>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
// d3-geo 세팅
var projection = d3.geoMercator()
.scale(1000)
.rotate([-10, 1, 0])
.center([127,37.6]);
var path = d3.geoPath().projection(projection);
// 출력
// 지도를 그릴 캔버스 설정
var svg = d3.select("body").append("svg")
.attr("width", 600)
.attr("height", 500)
.style("background-color","green");
function render(geojson) {
svg.selectAll("path").data(geojson.features) //
.enter()
.append("path")
.attr("d", path)
.attr("fill", "skyblue")
}
// GeoJSON 불러오는 함수
// d3.json : 해당 url로부터 GeoJSON 데이터를 받아오고, 데이터를 받아온 후 함수를 뒤의 함수를 실행
d3.json("https://gist.githubusercontent.com/d3indepth/f28e1c3a99ea6d84986f35ac8646fac7/raw/c58cede8dab4673c91a3db702d50f7447b373d98/ne_110m_land.json", render);
</script>
</body>
d3-geo 세팅