Tôi đang cố gắng tạo một Choropleth với d3.js nhưng tôi đã bị mắc kẹt ngay từ đầu. Tôi tìm thấy một Shapefile và tạo ra các tệp GeoJSON và TopoJson từ nó giống như here. Bản đồ sử dụng phép chiếu Albers-Siberia. Những gì tôi thấy về dự báo này:Bản đồ với d3.js và TopoJSON, Albers Siberia chiếu
chiếu: Albers Equal-Diện tích Conic
- Đơn vị: Mét
- hình cầu: Krasovsky
- Trung kinh tuyến: 105
- chuẩn Parallel 1: 52
- Chuẩn song song 2: 64
- Tham chiếu Latitude: 0
- False hướng đông: 18500000
- False Hướng về phía bắc: 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 + đơn vị = m + towgs84 = 28, -130, -95,0,0,0,0 + no_defs
MapInfo: "Albers-Siberia", 9, 1001, 7, 105, 0, 64, 52, 18500000, 0.
Vì vậy, tôi nhận được mã này cuối cùng và nó không làm gì cả (và thậm chí là freez up), có chuyện gì vậy?
<!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>
Bạn có thể tìm tất cả các tệp JSON here.
Và một câu hỏi khác: Làm cách nào tôi có thể tham chiếu đến giá trị của khu vực trường trong tệp TopoJson của tôi.
Điều gì xảy ra chính xác khi bạn chạy mã? Bạn nhận được bất kỳ loại thông báo lỗi, đầu ra? –
Không, không có lỗi trong bảng điều khiển. – KoGor
Kích thước của tệp JSON có thể là một vấn đề. Bạn đã thử đơn giản hóa chúng hay chỉ chờ đợi lâu hơn một chút? –