Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas 在基于画布的D3地球仪上显示投影转换文本_Canvas_D3.js_Map Projections - Fatal编程技术网

Canvas 在基于画布的D3地球仪上显示投影转换文本

Canvas 在基于画布的D3地球仪上显示投影转换文本,canvas,d3.js,map-projections,Canvas,D3.js,Map Projections,我正在使用D3构建一个可以绘制到画布上的图形。我正在使用d3.geo.*向地球仪添加形状,尤其是 我还想在地球仪上显示文本(也可以通过画布),但需要注意的是,文本应该存在于地球仪上,并具有适当的变换/曲率和剪裁,就像渲染的所有其他GeoJSON/TopoJSON功能一样。然而,可以这样画 有没有一种方法可以获取一些文本(和一个点,或者一个边界框)并通过d3.geo.path对其进行转换,以便在地球上正确绘制?下面是我想要的那种效果的一个经过Photoshop处理的例子(可惜形状不太正确): 您必

我正在使用D3构建一个可以绘制到画布上的图形。我正在使用
d3.geo.*
向地球仪添加形状,尤其是

我还想在地球仪上显示文本(也可以通过画布),但需要注意的是,文本应该存在于地球仪上,并具有适当的变换/曲率和剪裁,就像渲染的所有其他GeoJSON/TopoJSON功能一样。然而,可以这样画

有没有一种方法可以获取一些文本(和一个点,或者一个边界框)并通过
d3.geo.path
对其进行转换,以便在地球上正确绘制?下面是我想要的那种效果的一个经过Photoshop处理的例子(可惜形状不太正确):


您必须将字体作为原始向量,然后将文本创建为一组点,以传递到d3.js,以便像处理国家轮廓一样将其投影到地图上。画布可以应用于文本等元素的转换非常有限。正交投影远远超出了它的能力

因此,您必须获得矢量格式的字体。最简单的方法是使用photoshop、illustrator、inkscape或任何可以为您矢量化字体的软件包,然后编写函数以从该矢量字体创建文本作为路径。我浏览了d3.js API文档,但似乎没有任何字体方面的帮助。

相关:。一条道路可以被改变,就像你改变那里的大陆一样。