Karte mit d3.js und TopoJSON, Albers Siberia-Projektion

Ich versuche mit d3.js ein Choropleth zu machen, aber ich bin erst am Anfang hängen geblieben. Ich habe ein Shapefile gefunden und daraus wie gewohnt GeoJSON- und TopoJson-Dateien generiertHier. Die Karte verwendet die Albers-Sibirien-Projektion. Was ich über diese Projektion gefunden habe:

Projektion: Albers Flächengleicher Kegel

Einheiten: MeterSphäroid: KrasowskiZentraler Meridian: 105Standard Parallel 1: 52Standard Parallel 2: 64Referenz Breitengrad: 0False Easting: 18500000Falsche Nordrichtung: 0

PROJ.4: + proj = aea + lat_1 = 52 + lat_2 = 64 + lat_0 = 0 + lon_0 = 105 + x_0 = 18500000 + y_0 = 0 + ellps = krass + units = m + towgs84 = 28, -130, -95 0,0,0,0 + no_defs

MapInfo: "Albers-Siberia", 9, 1001, 7, 105, 0, 64, 52, 18500000, 0.

Also habe ich endlich diesen Code bekommen und es macht nichts (und friert sogar ein), was ist los?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Choropleth</title>
    <script type="text/javascript" src="d3/d3.v3.js"></script>
    <script type="text/javascript" src="d3/queue.v1.min.js"></script>
    <script type="text/javascript" src="d3/topojson.v0.min.js"></script>
</head>
<body>
    <h1>My Choropleth</h1>
    <script type="text/javascript">

        var width = 960,
            height = 500;

        var svg = d3.select("body").append("svg")
                    .attr("width", width)
                    .attr("height", height);

        var pr = d3.geo.albers()
            .center([105,0])
            .parallels([52, 64])
            .scale(1000);


        var path = d3.geo.path().projection(pr);

        d3.json("map_rus_topo.json", function(error, map) {
         svg.append("path")
          .datum(topojson.object(map, map.objects.map_rus))
          .attr("d", path);
        });

    </script>
</body>

Sie finden alle JSON-DateienHier.
Und noch eine Frage: Wie kann ich auf den Wert von verweisen?Region Feld inmeine TopoJson-Datei.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage