D3.js を使用して json データをロードする次のコードがあります。
this.clickCountry = function(d) {
"use strict"
var time_for_remove = 500,
time_for_zoom = 900
d3.selectAll("svg g").transition().delay(time_for_remove + time_for_zoom - 200).remove()
self.svg.append("g")
.attr("id", "country")
self.regionsGroup = self.svg.select("#country")
var adm1_key = d.id+"_adm1"
try {
var adm1_path = "../topo/"+d.id+"_adm1.json"
} catch (e) {
console.log(e) // "MyError"
}
var adm1_path = "../topo/"+d.id+"_adm1.json"
d3.json(adm1_path, function(error, topology) {
var regions = topology.objects
for(var adm1_key in regions) {
var o = regions[adm1_key]
}
self.regionsGroup.selectAll("path")
.data(topojson.object(topology, o).geometries)
.enter().append("path")
.attr("d", self.projection)
.attr("id", function(d) {
return d.properties.name
})
.classed("country", true)
.attr("class", "country")
.on("mouseover", function(d) {
d3.select(this)
.style("fill", "#6C0")
.append("svg:title")
.text(d.properties.name)
})
.on("mouseout", function(d) {
d3.select(this)
.style("fill", "#000000")
})
.on("click", function(d) {
console.log('clicked on country')
var p = d3.mouse(this)
console.log(p+" "+self.map.invert(p))
self.map.center(self.map.invert(p))
})
})
}
adm1_path = "../topo/"+d.id+"_adm1.json"
実際にマップを描画する前にファイルが存在するかどうかを確認する正しい方法は何ですか?