首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >d3 mercator、geo和path方法

d3 mercator、geo和path方法
EN

Stack Overflow用户
提问于 2015-04-21 01:01:30
回答 1查看 1.2K关注 0票数 2

下面是关于d3的本教程:

在它中,我看到了这样的代码:

代码语言:javascript
复制
var projection = d3.geo.mercator()
    .scale(500)
    .translate([width / 2, height / 2]);

同样,路径生成器:

代码语言:javascript
复制
var path = d3.geo.path()
    .projection(projection);

这些方法到底是做什么的?关于这些d3方法有好的文档吗?在d3文档上。上面写着:

"# d3.geo.mercator()

球面墨卡托投影通常由贴图库(如OpenLayers和传单)使用。举个例子,用墨卡托投影来显示栅格瓷砖,请参阅d3.geo.tile插件。它是共形的,但它在世界范围内引入严重的面积失真,因此不推荐用于合唱。

那么,d3.geo.mercator只是一种地图设计吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 01:19:46

地图投影只是将点从一个系统(基于球面/椭球的纬度/经度)转换为另一个系统(具有x/y值的2d笛卡儿平面)。

墨卡托( Mercator )是一种(非常常见的)方法。有关地图投影的更多信息,请看一下projection

使用您发布的代码,它将设置一个Mercator投影,当传递一个[long, lat]点时,它将返回一个[x, y]点,该点对应于可以在svgcanvas上绘制的x和y位置。在本例中,它将以[width/2, height/2]为中心。

路径生成器是一些d3“魔力”,它将点列表转换为svg path字符串。svg有自己的路径“语言”,您可以在http://www.w3.org/TR/SVG/paths.html上找到更多的信息,但这是非常技术性的。

由于svg在像素协调中进行对话,而且大多数地理数据都被引用到lat/long,因此投影函数允许您轻松地从一个转换到另一个,然后再进行一次转换。

由于在地图上绘制路径是一种非常常见的活动,d3包含投影“感知”的路径生成器,并将自动将指定的投影应用到传递给路径生成器的任何数据,这将导致像素协调得到返回,然后将其转换为上述path“语言”,然后将其显示在svg元素上。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29761062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档