目前在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]),而一点一点去?
以下代码均不起作用:
p:before { content: " "; }
p:before { content: " "; }
Run Code Online (Sandbox Code Playgroud)
如何在元素内容之前添加空格?
注意:我需要为border-left和margin-left上色以进行语义使用,并将空格用作无色边距.:)
什么是加入之间的区别bin,bin/,bin/*和bin/**在我的.gitignore文件?我一直在使用bin/,但是看看其他 .gitignore文件(在eclipse文件中,双星和单星甚至一起使用:tmp/**/*这是怎么回事?)我看到前两个模式也被广泛使用.有人可以解释三者之间的差异吗?
GeoJSON和TopoJSON之间的区别是什么?我何时使用另一个?
GitHub上TopoJSON的描述意味着TopoJSON文件缩小了80%.那么为什么不一直只使用TopoJSON呢?
我有一个非常简单的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实现这一目标?
如何在地图标签上施加力排斥,以便他们自动找到合适的位置?
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) 我经常看到.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) 我有一个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)
我该如何阅读此错误以及该怎么做?
给定一个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#code和topojson.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) 给定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文件?
d3.js ×5
topojson ×4
geojson ×2
json ×2
cartography ×1
css ×1
css-content ×1
force-layout ×1
gis ×1
git ×1
jquery ×1
maps ×1
node.js ×1
nvd3.js ×1
python ×1
python-2.7 ×1
space ×1
svg ×1
unicode ×1