javascript - 在 Openlayers 4 中设置 D3 投影

标签 javascript d3.js openlayers-3 projection

The Demo

我对使用 Openlayers 4 的 D3 集成感到困惑。

混淆代码如下:var d3Projection = d3.geo.mercator().scale(1).translate([0, 0]);

为什么设置'scale'的值为'1'而'translate'的值为'[0, 0 ]' 当初始化墨卡托投影

最佳答案

它们被设置在那里以便可以计算特征的边界,然后,可以计算出正确的scalecenter推导。

尝试将额外的 console.log(scale, center) 放入 canvasFunction 中,然后移动 map 、缩放 map 或尝试模拟高 DPI 显示(例如,在 Chrome 开发者工具中)。您将看到这些值如何随着每次平移和缩放而变化。

设置值 1[0, 0] 是为了简化计算,因为设置了默认值以便默认绘制整个地球 map (根据scaletranslate 文档)。当您第一次编写函数代码并希望看到一些合理的结果时,这很实用,但当您需要计算投影边界时就不太有用了。

关于javascript - 在 Openlayers 4 中设置 D3 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49424387/

相关文章:

javascript - 如何将此 Silverlight 控件转换为 HTML/CSS/JS

javascript - 如何强制 DIV 在我的 HTML 模板中以内联方式显示并与右侧的偏移量相同?

javascript - Discord.js - 让用户上次事件?

javascript - 如何更改c3js中的工具提示内容

javascript - 使用 d3.json 事件处理程序时如何正确控制上下文

javascript - Openlayers源码tileWMS?类型错误 : a. addEventListener 不是函数

openlayers-3 - 在 OpenLayers3 中限制 WMS 范围外的平移

javascript - 第一次成功提交后提交停止工作

javascript - OpenLayers 3 交互风格与 ol.feature.setStyle 冲突

javascript - D3.js:扩展 y 轴而不对现有图表进行任何更改