如何使用D3从GeoJSON数据集中获取投影的路径定义字符串(不是SVG元素)?

user56reinstatemonica8

使用D3的路径投影工具从D3地理数据绘制SVG路径的例子很多。例如,这是我之前写的(D3 v3),这是最近使用D3 v4的示例

它们看起来都是这样的:

  svg.append("path")
      .data(topojson.feature(datafile, datafile.objects.featureOfInterest))
      .attr("class", "land")
      .attr("d", pathDefinitionObject);

...读取数据文件并将其与某些SVG关联,创建链接的空路径,然后与某个投影关联的D3路径定义对象查看该数据,并使用它将SVG路径定义字符串添加到d这些路径属性中。

我想要的是那些路径定义字符串,但是作为字符串,而不涉及任何SVG。我想将这些字符串与Raphael一起使用,以便可以在不支持SVG的浏览器上绘制路径,因为特定项目需要支持机构客户,这些机构客户由于遗留软件需求和公司政策尚未从IE8升级(我知道,我知道...)。

D3显然能够定义这些字符串,但是我看不到一种显而易见的方法,即在不链接到DOM SVG元素的情况下,获取路径定义对象来输出字符串。

如何仅在页面上没有任何SVG的情况下获取字符串?


为此,我尝试使用最少的D3 v4的“微库”,因此,对于具有最少D3依赖关系的答案,要加分(特别是如果它可以避免D3-selection.js很大的话-理想情况下,我想仅使用D3的数据处理,而完全不对该项目使用其DOM操作)。

标记

构建您的链接v4示例,只需获取陆地路径d属性的极简代码将是:

<!DOCTYPE html>
<meta charset="utf-8">

<script src="//d3js.org/d3-array.v1.min.js"></script>
<script src="//d3js.org/d3-geo.v1.min.js"></script>
<script src="//d3js.org/d3-request.v1.min.js"></script>
<script src="//d3js.org/d3-dispatch.v1.min.js"></script>
<script src="//d3js.org/d3-collection.v1.min.js"></script>
<script src="//d3js.org/topojson.v1.min.js"></script>

<script>

var projection = d3.geoAlbers()
    .scale(1280)
    .translate([500, 500]);

var path = d3.geoPath()
    .projection(projection)
    .pointRadius(1.5);

d3.json("https://gist.githubusercontent.com/mbostock/4090846/raw/d534aba169207548a8a3d670c9c2cc719ff05c47/us.json", function(error, us){
  if (error) throw error;

  var topo = topojson.feature(us, us.objects.land);
  console.log(path(topo));

});

</script>

如果你没有使用d3.json,你可以删除d3-requestd3-dispatchd3-collection图书馆。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用D3投影在画布上绘制GeoJSON线串

来自分类Dev

如何从d3节点数据中获取dom svg元素?

来自分类Dev

D3将现有的SVG字符串(或元素)附加(插入)到DIV中

来自分类Dev

使用 d3 从 tsv 获取字符串数组

来自分类Dev

D3中的GeoJSON:路径未绑定到数据

来自分类Dev

D3中的GeoJSON:路径未绑定到数据

来自分类Dev

如何使用字符串名称调用函数(需要参数)- Clojurescript | d3

来自分类Dev

如何基于与输入字符串共享的特征从数据集中获取价值

来自分类Dev

d3变量等于字符串“ function(d)”,而不是函数返回的值

来自分类Dev

使用数据集中的d3.js在svg的g元素中添加两个不同的svg元素

来自分类Dev

D3 JSON文件,其中源和索引为字符串而不是索引

来自分类Dev

使用bash获取路径字符串的一个元素

来自分类Dev

使用bash获取路径字符串的一个元素

来自分类Dev

如何使用h5py从HDF5数据集中读取字符串

来自分类Dev

如何使用like子句和变音符号过滤数据集中的字符串字段?

来自分类Dev

如何使用带参数的字符串从mySQL获取数据?

来自分类Dev

d3 / topojson无法获取路径元素的质心

来自分类Dev

如何使用d3js获取svg元素的宽度?

来自分类Dev

如何使用正投影D3从CSV旋转点

来自分类Dev

如何使用 D3 最小化墨卡托投影

来自分类Dev

如何在D3中将多个图像添加到svg(基于数据集中的值的数量)

来自分类Dev

jQuery获取以特定字符串(不是元素)开头的类

来自分类Dev

在d3中获取所选svg元素的类

来自分类Dev

如何获得SVG路径形状以缩放D3?

来自分类Dev

使用D3和d3.slider显示SVG元素:未捕获的TypeError:.exit不是函数

来自分类Dev

如何从字符串获取数据集?

来自分类Dev

D3:基于svg元素更改数据

来自分类Dev

如何获取字符串中两个已定义字符之间的数据?r

来自分类Dev

字符串x刻度不缩放D3中的数据

Related 相关文章

  1. 1

    使用D3投影在画布上绘制GeoJSON线串

  2. 2

    如何从d3节点数据中获取dom svg元素?

  3. 3

    D3将现有的SVG字符串(或元素)附加(插入)到DIV中

  4. 4

    使用 d3 从 tsv 获取字符串数组

  5. 5

    D3中的GeoJSON:路径未绑定到数据

  6. 6

    D3中的GeoJSON:路径未绑定到数据

  7. 7

    如何使用字符串名称调用函数(需要参数)- Clojurescript | d3

  8. 8

    如何基于与输入字符串共享的特征从数据集中获取价值

  9. 9

    d3变量等于字符串“ function(d)”,而不是函数返回的值

  10. 10

    使用数据集中的d3.js在svg的g元素中添加两个不同的svg元素

  11. 11

    D3 JSON文件,其中源和索引为字符串而不是索引

  12. 12

    使用bash获取路径字符串的一个元素

  13. 13

    使用bash获取路径字符串的一个元素

  14. 14

    如何使用h5py从HDF5数据集中读取字符串

  15. 15

    如何使用like子句和变音符号过滤数据集中的字符串字段?

  16. 16

    如何使用带参数的字符串从mySQL获取数据?

  17. 17

    d3 / topojson无法获取路径元素的质心

  18. 18

    如何使用d3js获取svg元素的宽度?

  19. 19

    如何使用正投影D3从CSV旋转点

  20. 20

    如何使用 D3 最小化墨卡托投影

  21. 21

    如何在D3中将多个图像添加到svg(基于数据集中的值的数量)

  22. 22

    jQuery获取以特定字符串(不是元素)开头的类

  23. 23

    在d3中获取所选svg元素的类

  24. 24

    如何获得SVG路径形状以缩放D3?

  25. 25

    使用D3和d3.slider显示SVG元素:未捕获的TypeError:.exit不是函数

  26. 26

    如何从字符串获取数据集?

  27. 27

    D3:基于svg元素更改数据

  28. 28

    如何获取字符串中两个已定义字符之间的数据?r

  29. 29

    字符串x刻度不缩放D3中的数据

热门标签

归档