我想要看到像这样的地图:http://www.time.com/time/covers/20061030/where_we_live/。如何可视化地图? (图片)
我可以用opengl或处理来做到这一点吗?怎么样?
我想要看到像这样的地图:http://www.time.com/time/covers/20061030/where_we_live/。如何可视化地图? (图片)
我可以用opengl或处理来做到这一点吗?怎么样?
我认为最简单的方法不是使用3D,而是使用基本的等距技术和覆盖。
拿起你的地图,将它缩放到半高来建议透视图,然后在你的画布上绘制它。
现在,创建一个像原始地图一样大的空透明位图,并在数据上放置淡粉色圆圈,就好像在地图上一样。将该位图缩放到一半高度,并将其绘制在原始地图上。
在此之后,创建另一个,但使您的圆圈半径缩小1个像素,然后将颜色转移到深红色。再次将其缩放到一半高度,并将其绘制在现有构图上,但在y方向上高出一个像素。继续重复此步骤,直到地图上的最大圆到达半径0,以便绘制最高峰。
我认为应该创建非常像示例中的地图,而不需要复杂的3D几何。
目视将更加类似于时间映射时:
- 您使用反指数式减小圆的每一步的大小。在所提出的算法中,尖峰将是非常无聊的线性(锥形)并且不会很高。
- 您使用原始地图的轮廓作为透明度遮罩来限制每个数据层。在缩放到一半高度之前执行此操作。这会将数据尖峰限制为地图的形状,并防止它们溢出边界进入海洋。
当然,这个算法可以通过使用椭圆在半高处绘制数据图层来优化,并直接在地图上绘制它们。圆/层方式虽然更好地说明了基本技术,并且使轮廓限制步骤更容易。
就我个人而言,我会建议使用面部网格,剔除美国地图,然后根据链接中的特征提高和着色每个点。
我认为NielsK概括的方法实际上会更简单,困难的部分将只是以简单的解析格式获取所需的数据。