小编Hug*_*lpz的帖子

给定geoJSON对象,在d3中居中地图

目前在d3中,如果您要绘制一个geoJSON对象,则必须对其进行缩放并对其进行翻译,以使其达到所需大小并将其翻译以使其居中.这是一个非常乏味的反复试验,我想知道是否有人知道更好的方法来获得这些价值观?

所以,例如,如果我有这个代码

var path, vis, xy;
xy = d3.geo.mercator().scale(8500).translate([0, -1200]);

path = d3.geo.path().projection(xy);

vis = d3.select("#vis").append("svg:svg").attr("width", 960).attr("height", 600);

d3.json("../../data/ireland2.geojson", function(json) {
  return vis.append("svg:g")
    .attr("class", "tracts")
    .selectAll("path")
    .data(json.features).enter()
    .append("svg:path")
    .attr("d", path)
    .attr("fill", "#85C3C0")
    .attr("stroke", "#222");
});
Run Code Online (Sandbox Code Playgroud)

到底如何获得.scale(8500)和.translate([0,-1200]),而一点一点去?

geojson d3.js topojson

133
推荐指数
4
解决办法
6万
查看次数

CSS:如何在元素内容之前添加空格?

以下代码均不起作用:

p:before { content: " "; }
p:before { content: " "; }
Run Code Online (Sandbox Code Playgroud)

如何在元素内容之前添加空格?

注意:我需要为border-left和margin-left上色以进行语义使用,并将空格用作无色边距.:)

css unicode space css-content

101
推荐指数
4
解决办法
11万
查看次数

.gitignore语法:bin vs bin/vs. bin/*vs. bin/**

什么是加入之间的区别bin,bin/,bin/*bin/**在我的.gitignore文件?我一直在使用bin/,但是看看其他 .gitignore文件(在eclipse文件中,双星和单星甚至一起使用:tmp/**/*这是怎么回事?)我看到前两个模式也被广泛使用.有人可以解释三者之间的差异吗?

git

84
推荐指数
5
解决办法
3万
查看次数

GeoJSON和TopoJSON之间的区别

GeoJSON和TopoJSON之间的区别是什么?我何时使用另一个?

GitHub上TopoJSON描述意味着TopoJSON文件缩小了80%.那么为什么不一直只使用TopoJSON呢?

gis geojson d3.js topojson

83
推荐指数
2
解决办法
3万
查看次数

按值排序JSON

我有一个非常简单的JSON对象,如下所示:

{
   "people":[
      {
         "f_name":"john",
         "l_name":"doe",
         "sequence":"0",
         "title":"president",
         "url":"google.com",
         "color":"333333"
      },
      {
         "f_name":"michael",
         "l_name":"goodyear",
         "sequence":"0",
         "title":"general manager",
         "url":"google.com",
         "color":"333333"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

现在,这是从我的服务器端代码返回的,我运行jQuery.each以形成必要的html并输出结果.

现在我正在做的是向包含我的排序信息的服务器发送一个AJAX调用...例如"Title DESC"并重新运行SQL查询以返回新的结果集.但我想避免这种情况,并使用jQuery对生成的JSON进行排序,以防止往返服务器和多个数据库访问.

我怎样才能使用jQuery实现这一目标?

jquery json

59
推荐指数
4
解决办法
20万
查看次数

D3js:自动放置标签以避免重叠?(强制排斥)

如何在地图标签上施加力排斥,以便他们自动找到合适的位置?


博斯托克"让我们制作地图"

Mike Bostock的Let's Make a Map(截图如下).默认情况下,标签放在点的坐标处,多边形/多边形的path.centroid(d)+左边或右边的简单对齐,因此它们经常进入冲突状态.

在此输入图像描述

手工制作的标签展示位置

我遇到的一项改进需要添加人为IF修复,并添加所需数量,例如:

.attr("dy", function(d){ if(d.properties.name==="Berlin") {return ".9em"} })
Run Code Online (Sandbox Code Playgroud)

随着要重新调整的标签数量增加,整体变得越来越脏:

//places's labels: point objects
svg.selectAll(".place-label")
    .data(topojson.object(de, de.objects.places).geometries)
  .enter().append("text")
    .attr("class", "place-label")
    .attr("transform", function(d) { return "translate(" + projection(d.coordinates) + ")"; })
    .attr("dy", ".35em")
    .text(function(d) { if (d.properties.name!=="Berlin"&&d.properties.name!=="Bremen"){return d.properties.name;} })
    .attr("x", function(d) { return d.coordinates[0] > -1 ? 6 : -6; })
    .style("text-anchor", function(d) { return d.coordinates[0] > -1 ? "start" : "end"; });

//districts's labels: polygons objects.
svg.selectAll(".subunit-label") …
Run Code Online (Sandbox Code Playgroud)

maps cartography d3.js topojson force-layout

44
推荐指数
4
解决办法
2万
查看次数

D3js:何时使用.datum()和.data()?

我经常看到.datum使用区域图表时.例如:

svg = d3.select("#viz").append("svg").datum(data)
Run Code Online (Sandbox Code Playgroud)

.datum需要什么时候有任何经验法则吗?

var area = d3.svg.area()  
    .x(function(d) { return x(d.x); })  
    .y0(height)  
    .y1(function(d) { return y(d.y); });  

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

svg.append("path") 
    .datum(data)
    .attr("d", area); 
Run Code Online (Sandbox Code Playgroud)

d3.js nvd3.js

30
推荐指数
3
解决办法
4万
查看次数

Python:OSError:[Errno 2]没有这样的文件或目录:''

我有一个100行,3岁的python刮刀,现在有bug.起跑线是:

import urllib, re, os, sys, time    # line 1: import modules
os.chdir(os.path.dirname(sys.argv[0])) # line 2: all works in script's folder > relative address
# (rest of my script here!)
Run Code Online (Sandbox Code Playgroud)

跑步时

$cd /my/folder/
$python script.py
Run Code Online (Sandbox Code Playgroud)

我收到错误:

python script.py 
Traceback (most recent call last):
  File "script.py", line 2, in <module>
    os.chdir(os.path.dirname(sys.argv[0]))
OSError: [Errno 2] No such file or directory: ''
Run Code Online (Sandbox Code Playgroud)

我该如何阅读此错误以及该怎么做?

python python-module python-2.7

18
推荐指数
3
解决办法
13万
查看次数

如何向topojson文件添加属性?

给定一个data.tsv文件:

id  code    name
1   AL  Alabama
2   AK  Alaska
4   AZ  Arizona
5   AR  Arkansas
6   CA  California
... ... ...
Run Code Online (Sandbox Code Playgroud)

给定topojson.json文件:(结构正确,数值是随机的)

{ 
"type":"Topology",
"transform": 
    {
    "scale": [0.0015484881821515486,0.0010301030103010299],
    "translate":[-5.491666666666662,41.008333333333354]
    },
"objects": 
    {
    "states":
        {
        "type":"GeometryCollection",
        "geometries": 
            [
            {"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL"}},
            {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK"}}
            ]
        }
    },
"arcs":
    [
        [[2466,9916],[-25,-5],[3,-13]],
        [[2357,9852],[1,-2],[1,-2]]
    ]
}
Run Code Online (Sandbox Code Playgroud)

如何使用公共字段(1)将其他字段(2)的值注入json文件?

1]:data.txt#codetopojson.txt.objects.states.geometries.properties.code_2

2]: data.txt#name

最终结果应包含:

            {"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL", "name":"Alabama" }},
            {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK", "name":"Alaska" }},
Run Code Online (Sandbox Code Playgroud)

编辑:接受的答案:

topojson -o final.json -e data.tsv --id-property=code_2,code -p code_2,state=name -- topojson.json
Run Code Online (Sandbox Code Playgroud)

json topojson

18
推荐指数
1
解决办法
5115
查看次数

D3js:如何生成独立的SVG文件?(的NodeJS)

给定D3js代码,例如:

var square= function() {
        var svg = window.d3.select("body")
            .append("svg")
            .attr("width", 100)
            .attr("height", 100);
        svg.append("rect")
            .attr("x", 10)
            .attr("y", 10)
            .attr("width", 80)
            .attr("height", 80)
            .style("fill", "orange");
    }
square();
Run Code Online (Sandbox Code Playgroud)

如何使用我的D3js代码和NodeJS生成正确的独立*.svg文件?

svg node.js d3.js

17
推荐指数
1
解决办法
1万
查看次数