最近看了一位日本朋友Satoshi Ganeko的文章毙籽,介紹了他利用全球海岸線數據集,制作3D地球的方法尝丐,我就照貓畫虎試驗了一下,非常的有意思『獍拢現在給大家介紹一下爹袁,至于其中原理,我也確實想搞清楚矮固,但是……
原博客地址:
https://note.com/ritz_tableau/n/n5298091a667e
Ganeko的Public:
https://public.tableau.com/profile/satoshi.ganeko#!/
下載數據集
原文提供了兩種精確度不同的數據集失息,我們只需要用簡版的即可(2.86MB)。
簡版數據集Coast_Line_Rough:https://note.com/api/v2/attachments/download/26e4f60d3523801ab48348eb8b67aab0
創(chuàng)建計算字段
3個參數
- A:調整Y軸旋轉角度
B:調整X軸旋轉角度(同上)
C:調整Z軸旋轉角度(同上)
計算字段
X = SIN(RADIANS([Longitude]))*COS(RADIANS([Latitude]))
Y = SIN(RADIANS([Latitude]))
Z = COS(RADIANS([Longitude]))*COS(RADIANS([Latitude]))
X1 = (cos(RADIANS([A]))*[X]+0*[Y]-sin(RADIANS([A]))*[Z])
Y1 = (0*[X]+1*[Y]+0*[Z])
Z1 = (sin(RADIANS([A]))*[X]+0*[Y]+cos(RADIANS([A]))*[Z])
X2 = (1*[X1]+0*[Y1]+0*[Z1])
Y2 = (0*[X1]+cos(RADIANS([B]))*[Y1]+sin(RADIANS([B]))*[Z1])
Z2 = (0*[X1]-sin(RADIANS([B]))*[Y1]+cos(RADIANS([B]))*[Z1])
X3 = (cos(RADIANS([C]))*[X2]+sin(RADIANS([C]))*[Y2]+0*[Z2])
Y3 = (-sin(RADIANS([C]))*[X2]+cos(RADIANS([C]))*[Y2]+0*[Z2])
Z3 = (0*[X2]+0*[Y2]+1*[Z2])
原理基本上和制作3D模型差不多档址,都是將直角坐標系進行3D投影盹兢。
開始做圖
將[X3]拖到列功能區(qū),[Y3]拖到行功能區(qū)守伸。
標記類型選擇“線”绎秒,將[ID]拖到“詳細信息”,[Path]拖到“路徑”尼摹。
這樣就會出現3D地球了见芹,但現在的問題是剂娄,地球背面的海岸線與前面的重疊,影響了美觀玄呛。我們新增加一個計算字段阅懦。
front/back=IF [Z3]>=0 then "front" ELSE "back" END
將[front/back],拖到“顏色”上徘铝,調整顏色耳胎,使背面的顏色接近底色。
去掉不必要的線惕它。
最后成果如下:
后面就可以調整參數A场晶、B、C怠缸,來就旋轉地球了。
我這里只是拋磚引玉钳宪,還有更炫的氣泡圖和3D條形圖效果揭北,大家可以到Ganeko的Public下載學習。
此篇文章已發(fā)布到我的公眾號: saodisir吏颖,有興趣也可關注一下