2013-08-15 4 views
0

JSON 파일에서 데이터를 가져 와서 geoJSON 파일에 연결하여 카운티 색상이 " 금액 "가치뿐만 아니라 내가 해당 mouseover 때 해당 div에 바인딩 된 해당"주석 "값을 싶습니다.JSON 파일을 구문 분석하여 데이터를 d3 choropleth 맵에 바인딩하는 방법

http://bl.ocks.org/eoiny/6244102에서 내 코드 내 counties.json 데이터 양식에있을 때 choropleth 맵을 생성하기 위해 노력할 것 :

{ 
"id":"Carlow", 
"amount":11, 
"comment":"The figures for Carlow show a something." }, 
: 나는 다음과 같은 양식을 사용하려고 할 때

"Carlow":3,"Cavan":4,"Clare":5,"Cork":3, 

그러나 상황이 까다로운

counties.json의 "Carlow"와 "id": ireland.json에서 만든 "Carlow"경로를 동시에 사용할 수있는 반면, counties.json의 다른 값, 즉 "amount"및 "comment".

나의 미숙 한 질문에 사과드립니다.하지만 누구든지 나를 모범이나 참고로 안내 할 수 있다면 위대한 사람이라고 생각할 수 있습니다.

답변

1

퀀 타이즈 기능에서 룩업을 쉽게하기 위해 데이터가로드 될 때 데이터를 전처리합니다. 기본적으로,이 대체 : data = json;를이와 함께 : 다음

data = json.reduce(function(result, county) { 
    result[county.id] = county; 
    return result; 
}, {}); 

과 당신의 퀀 타이즈 기능에,이 같은 금액 얻을 :

function quantize(d) { 
    return "q" + Math.min(8, ~~(data[d.id].amount * 9/12)) + "-9"; 
} 

은 무엇 전처리하는 일은이 배열을 설정이다 (쉽게 액세스 인덱스)

[{id: 'xyz', ...}, {id: 'pdq', ...}, ...] 

쉽게 군 ID 액세스 키 군()이 오브젝트로 :

{'xyz': {id: 'xyz', ...}, 'pdq': {id: 'pdq', ...}, ...} 

다음은 작동 요령입니다. http://bl.ocks.org/rwaldin/6244803

관련 문제