下面是关于d3的本教程:
在它中,我看到了这样的代码:
var projection = d3.geo.mercator()
.scale(500)
.translate([width / 2, height / 2]);同样,路径生成器:
var path = d3.geo.path()
.projection(projection);这些方法到底是做什么的?关于这些d3方法有好的文档吗?在d3文档上。上面写着:
"# d3.geo.mercator()
球面墨卡托投影通常由贴图库(如OpenLayers和传单)使用。举个例子,用墨卡托投影来显示栅格瓷砖,请参阅d3.geo.tile插件。它是共形的,但它在世界范围内引入严重的面积失真,因此不推荐用于合唱。
那么,d3.geo.mercator只是一种地图设计吗?
发布于 2015-04-21 01:19:46
地图投影只是将点从一个系统(基于球面/椭球的纬度/经度)转换为另一个系统(具有x/y值的2d笛卡儿平面)。
墨卡托( Mercator )是一种(非常常见的)方法。有关地图投影的更多信息,请看一下projection。
使用您发布的代码,它将设置一个Mercator投影,当传递一个[long, lat]点时,它将返回一个[x, y]点,该点对应于可以在svg或canvas上绘制的x和y位置。在本例中,它将以[width/2, height/2]为中心。
路径生成器是一些d3“魔力”,它将点列表转换为svg path字符串。svg有自己的路径“语言”,您可以在http://www.w3.org/TR/SVG/paths.html上找到更多的信息,但这是非常技术性的。
由于svg在像素协调中进行对话,而且大多数地理数据都被引用到lat/long,因此投影函数允许您轻松地从一个转换到另一个,然后再进行一次转换。
由于在地图上绘制路径是一种非常常见的活动,d3包含投影“感知”的路径生成器,并将自动将指定的投影应用到传递给路径生成器的任何数据,这将导致像素协调得到返回,然后将其转换为上述path“语言”,然后将其显示在svg元素上。
https://stackoverflow.com/questions/29761062
复制相似问题