【发布时间】:2014-03-01 06:32:19
【问题描述】:
我创建了包含购物中心一楼所有功能的geojson文件。我使用 d3.js 投影了具有不同颜色的场地地图,但只有某些部分不是完整的地图。下面是脚本代码和 geojson 文件的链接。另请注意,我没有将此 geojson 转换为 topojson 并使用 Qgis 绘制地图和 c#.net 将几何数据转换为 geojson 对象。谁能检查我的 json 和我的 d3.js 代码?我需要使用任何其他投影吗?
https://www.dropbox.com/s/8pu2s0yamfkd89p/JSONfromDB_8Feb2014.json
$(document).ready(function () {
parseResultShopDetails();
});
function parseResultShopDetails() {
var width = 600, height = 300;
var svg = d3.select("#map").append("svg")
.attr("width", width)
.attr("height", height);
var projection = d3.geo.mercator()
.scale(30)
.translate([width / 2, height / 2]);
var path = d3.geo.path()
.projection(projection);
d3.json("http://localhost:1209/data/JSONfromDB_8Feb2014.json", function (error, jsonData) {
var color1 = d3.scale.category10();
svg.selectAll("path")
.data(jsonData.features)
.enter()
.append("path")
.attr("d", path)
.attr("text", function (d, i) { return "js"; })
.attr("fill", function (d, i) { return color1(i); });
});
}
【问题讨论】:
-
你生成了很多 NaN。我不确定你的坐标,对于墨卡托(或任何)投影来说,它们似乎太大了。我不认为使用地球投影将是商场设计的最佳选择。你可以使用局部坐标系吗? gg 上的这个conversation 可能会有所帮助。