us.json
yüklendi, ancak Etiket adı eklemeye çalıştığımda, çalışamam. İsim özelliğini .json
dosyasında göremiyorum, bu yüzden her eyalet adını nasıl ekleyebilirim? Bu çerçeveye gerçekten yeniyim.D3.js'de (albersUsa) her bir duruma nasıl etiket eklenir?
Google ve Stackoverflow'ta farklı Eğitim'i deniyorum, ancak bunların hiçbiri benim için çalışmıyor. İşte denedim çift öğretici bağlantı, bu layık olduğunu düşünüyorum.
Ben endişeleri
-
:
- ben us.json dosyasında adı mülkü eksik düşünüyorum. (sorun buysa, eyalet adını içeren başka bir .json dosyası var mı? Ve bu dosyayla durum adını nasıl kullanabiliriz?)
- ABD durum adı
http://d3js.org/topojson.v1.min.js
içeriyor mu?
.html
Dosyası (Loaded Çerçeve)
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
.js
Dosya:
var width = 1500,
height = 1100,
centered;
var usData = ["json/us.json"];
var usDataText = ["json/us-states.json"];
var projection = d3.geo.albersUsa()
.scale(2000)
.translate([760, height/2]);
var path = d3.geo.path()
.projection(projection);
var svg = d3.select("body").append("svg")
.style("width", "100%")
.style("height", "100%");
svg.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height)
.on("click", clicked);
var g = svg.append("g");
d3.json(usData, function(unitedState) {
g.append("g")
.attr("class", "states-bundle")
.selectAll("path")
.data(topojson.feature(unitedState, unitedState.objects.states).features)
.enter()
.append("path")
.attr("d", path)
.attr("class", "states")
.on("click", clicked);
});
gelişmiş herkese teşekkür ederim. Ayrıca d3.js.'ı nerede öğrendiğinizi söylerseniz minnettarım.
Çok teşekkür ederim, Bu mükemmel çalışıyor ve bunu net bir şekilde anlamama yardımcı oluyor. Şimdi Google API’yi ekleme zamanı, Şerefe! – Xrait
Bu cevap çoğunlukla çalıştı, ancak Eylül 2017 itibariyle TopoJSON'daki 'id' alanı sıfır doldurulmuş uzunluk 2 dizgidir ('01', '05', ... '21' ...) ve kimlik 'TSV ismindeki alan sıfır-yastıklı olmayan değişken uzunluklu bir dizedir. Bu, birkaç devlet için bir soruna neden oldu. Düzeltmek için sıfır dolgu ekleyin. tsv.forEach (function (d, i) {var anahtar = d.id.length> 1? d.id: '0' + d.id; adları [key] = d.name; }); ' –