我对使用 Openlayers 4 的 D3 集成感到困惑。
混淆代码如下:var d3Projection = d3.geo.mercator().scale(1).translate([0, 0]);
为什么设置'scale'的值为'1'而'translate'的值为'[0, 0 ]' 当初始化墨卡托投影
最佳答案
它们被设置在那里以便可以计算特征的边界,然后,可以计算出正确的scale
和center
推导。
尝试将额外的 console.log(scale, center)
放入 canvasFunction
中,然后移动 map 、缩放 map 或尝试模拟高 DPI 显示(例如,在 Chrome 开发者工具中)。您将看到这些值如何随着每次平移和缩放而变化。
设置值 1
和 [0, 0]
是为了简化计算,因为设置了默认值以便默认绘制整个地球 map (根据scale 和 translate 文档)。当您第一次编写函数代码并希望看到一些合理的结果时,这很实用,但当您需要计算投影边界时就不太有用了。
关于javascript - 在 Openlayers 4 中设置 D3 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49424387/