나는 차원으로 분류 이탈리아 도시의지도에 (더 많은 사람을 -> 더 큰 반경) 일하고 있어요 당신은지도를 확대하면 여기
미리보기 (전체 코드를 검사) http://www.danielepennati.com/prove/mapping/ita_popolazione.html
나는 반경을 확장하고 당신은지도가 확대되지 않으면 모든 것이있는 경우 바로
간다 ... 올해 변경하고 새 데이터로 원 반경을 업데이트하는지도의 왼쪽 선택을 사용하는 경우는d3 확대 된지도에서 svg 원 반경을 올바르게 업데이트하는 방법은 무엇입니까?
s = d3.event.scale; //s is defined in the main function
g.selectAll('circle')
.attr("r", function(d) { return raggioCittà(rateByIdCF[d.id][anno])/s; })
잘 작동 지도가 확대되었습니다. 반지름을 반올림하여 값이 맞으면 축척 된 반경을 설정하려고하지만 원 요소의 "r"값은 반올림됩니다. 크기가 조정되지 않은 원과 원은 분명히 너무 큽니다. 이 줌 동작에 대한 바로 ... 어쩌면 내가 부족 뭔가를 작동하지 않는 이유를 정말 이해가 안
g.selectAll(".punto_comun")
.data(topojson.feature(base, base.objects.com2011_g).features)
.attr('fill', function(d) {
if(rateByIdCF[d.id]){
if(raggioCittà(rateByIdCF[d.id][anno]) < 4){ return '#0042b0'}
}
return '#ff0000';
})
.attr("r", function(d) {
if(rateByIdCF[d.id]){
//check if map is scaled, if yes scale the radius down
if(s){ return raggioCittà(rateByIdCF[d.id][anno]/s); }
//if not use the standard radius
return raggioCittà(rateByIdCF[d.id][anno]);
}
})
:
이 올해의 선택에 원을 업데이트 코드입니다.
정말 조언 해 주시면 고맙겠습니다.
감사
다니엘
답해 주셔서 감사합니다. 나는 s와 t 매개 변수를 제거했다. (그들은 오류 때문에 거기에 있었다.) 그러나 아무것도 바뀌지 않았다. 약간의 로그를 추가하면 s 값을 올바르게 전달할 수 있고 "rggioCittà (rateByIdCF [d.id] [anno]/s)"에 의해 계산 된 r이 올바를 것입니다. 시도해보십시오. 확대하고 연도를 변경하고 콘솔 로그를 확인하십시오. 다시 고맙다 Lars! – danipen
업데이트 기능에 오타가 있습니다 -'raggioCittà (rateByIdCF [d.id] [anno]/s)'는'raggioCittà (rateByIdCF [d.id] [anno])/s'이어야합니다. –
어쨌든 ... 정말 고맙습니다! 나는 하루 종일이 오타를 보지 못했다! 이제 모든 것이 잘됩니다. 덕분에 다시 – danipen