2

我正在将 geojson 形状文件加载到 d3 中(我是这个设计背景的新手。)我有一张由军械调查局提供的英国投票选区地图。我已经设法将其转换为带有 WG8 投影的简化 shapefile,并将其与 Mike Bostock 教程一起使用,类似于这个http://bl.ocks.org/2206590。我几乎已经完成了这项工作。问题是形状文件很大,5.2MB,所以我试图把它变成一个 topojson 格式。我已经尝试按照http://bost.ocks.org/mike/map/上的标题进行操作,但遇到了一些问题

  1. 我的 Mac 上没有 Homebrew,而且我不会很快得到它。我们机器上的访问权限被锁定得非常严密,技术人员不会为我们安装任何软件。我通过将我的形状文件放在http://www.shpescape.com/的翻译器中绕过了这一点,但我认为它生成的 topojson 文件的形状文件并不完全具有我正在使用的教程的语法我不知道如何改变它。它的一个样本看起来像这样

    {“objects”:{“pcon_gb_2010_area 1”:{“type”:“GeometryCollection”,“geometries”:[{“type”:“Polygon”,“arcs”:[[0, 1, 2, 3, 4, 5, 6, 7, 8,9, 10]]}, {"type": "Polygon", "arcs": [[11,12, 13, 14, 15, 16, 17, 18,19, 20, 21, 22]]}, {"type": "Polygon", "arcs": [[23, 24, 25, 26, 27, 28,29, 30, 31]]}, {"type": "Polygon ", "弧线": [[32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]]}, {"type": "多边形", "弧线": [[45, 46, 47, 48,49, 50, 51, 52, 53, 54, 55, 56]]}, {"type": "Polygon", "arcs": [[57, 58,59, 60、61、62、63、64、65、66、67、68、69、70]]}

我使用的代码看起来像这样

d3.json("assets/test21.json", function(error, uk) {
    console.log(uk);

    var width = 960,
    height = 1160;

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

    d3.json("uk.json", function(error, uk) {svg.append("path")
              .datum(topojson.object(uk, uk.objects.subunits))
              .attr("d", d3.geo.path().projection(d3.geo.mercator()));

该对象似乎加载正常,我可以在控制台日志中检查它,但我收到此错误

NS_ERROR_DOM_BAD_URI:对受限 URI 的访问被拒绝 [中断此错误]

.../apis.google.com/ /abc-static/ /js/gapi/iframes,googleapis_client/rt=j/ver=GyFIW...

我正在使用 d3 形状文件而不是加载 .svg 文件,因此我可以稍后执行一些转换。形状文件是使用 Illustrator 的 MacPublisher 插件生成的。

感激地收到任何帮助

4

0 回答 0