如何使用带有画布的 d3.geo 填充特定国家/地区
How do you fill specific countries using d3.geo with canvas?
我创建了自己的预投影拓扑文件,并尝试在画布中更改特定国家/地区的填充样式。 http://bl.ocks.org/anonymous/fea6cfde1184e2f10de8 是我的代码/示例。我试图捕获特定的国家/地区代码并为该国家/地区(在本例中为德国)设置填充。但是,出于某种原因,它也填补了许多其他国家。我怀疑这可能是一个共享边界的问题,但一些不共享边界的国家也会被填满。
同样有趣的是,如果我不像 http://bl.ocks.org/anonymous/3256fe09efaa8d2ebc96 那样渲染其他国家的边界,但显然所有的边界都消失了。我只是不明白画布填充的工作原理吗?有没有其他方法来突出特定国家/地区?我突然想到,我可以用面具来填充一个特定的国家,但这似乎是一种非常迂回的方式。
请注意,我知道使用 SVG/CSS 更简单,但我真的很想让它在画布上工作。
就像在这个例子中,你需要先画所有的边框,然后填充你想要的区域:
var isDEU = null;
for (var i = 0; i < geoJson.features.length; i++) {
if (geoJson.features[i].id == "DEU") {
isDEU = geoJson.features[i];
}
context.save();
canvasPath(geoJson.features[i]);
context.stroke();
context.restore();
}
context.fillStyle = "#f00"
context.beginPath();
canvasPath(isDEU);
context.fill();
这里的例子。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 州和城市选择框类似于国家细分页面
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 无法使用国家/地区选择中的状态动态填充下拉列表
- 在 asp.net 中用javascript填充国家和城市下拉列表
- 如何使用带有画布的 d3.geo 填充特定国家/地区
- 一个JavaScript函数,用于根据国家/地区语言填充innerHTML
- 在javascript中使用jquery和json填充国家和州
- 按下jVectorMap-填充国家/地区按钮
- 使用 jQuery 根据国家/地区和州填充州和城市下拉列表
- 如何将谷歌自动填充结果限制为仅限城市和国家/地区
- 自动填充搜索框此处地图使用此处地图api将国家限制为英国
- 在asp中从国家选择填充国家下拉列表