1

Rephrased post

My goal is, that I would like to plot the visible coastlines of the continents depending on the defined viewing angle using tikz like you can see in this example:

enter image description here

My approach is, that I have a text file with the coordinates of the coastlines in the format lat, lon. I can plot these using the xyz spherical cs command of the tikz-3dplot package

e.g. xyz spherical cs:radius=10,latitude=30.736,longitude=-32.199

My problem is, that the xyz spherical cs command plots the entire polygon and not just the area visible from the defined viewing angle.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary {3d}
\usepackage{tikz-3dplot}
\usepackage{tikz-3dplot-circleofsphere}

\begin{document}
\centering
\def\r{10}

\tdplotsetmaincoords{70}{170}
\begin{tikzpicture}[tdplot_main_coords]
    \draw[tdplot_screen_coords,thin,black!30] (0,0,0) circle (\r);
    \foreach \a in {-75,-60,...,75}
    {\tdplotCsDrawLatCircle[thin,black!30]{\r}{\a}}
    \foreach \a in {0,15,...,165}
    {\tdplotCsDrawLonCircle[thin,black!30]{\r}{\a}}
    \tdplotCsDrawLatCircle%
    [thick,tdplotCsFill/.style={opacity=0.05}]{\r}{0}
    
    
     
    \draw (xyz spherical    cs:radius=10,latitude=31.531,longitude=-31.919)
    -- (xyz spherical cs:radius=10,latitude=30.736,longitude=-32.199)
    -- (xyz spherical cs:radius=10,latitude=26.683,longitude=-34.069)
    -- (xyz spherical cs:radius=10,latitude=24.615,longitude=-35.204)
    -- (xyz spherical cs:radius=10,latitude=22.922,longitude=-36.166)
    -- (xyz spherical cs:radius=10,latitude=21.604,longitude=-36.927)
    -- (xyz spherical cs:radius=10,latitude=19.150,longitude=-37.863)
    -- (xyz spherical cs:radius=10,latitude=16.315,longitude=-39.331)
    -- (xyz spherical cs:radius=10,latitude=12.895,longitude=-42.640)
    -- (xyz spherical cs:radius=10,latitude=11.911,longitude=-42.870)
    -- (xyz spherical cs:radius=10,latitude=11.006,longitude=-44.764)
    -- (xyz spherical cs:radius=10,latitude=11.012,longitude=-46.508)
    -- (xyz spherical cs:radius=10,latitude=11.175,longitude=-47.967)
    -- (xyz spherical cs:radius=10,latitude=11.707,longitude=-50.337)
    -- (xyz spherical cs:radius=10,latitude=10.534,longitude=-50.975)
    -- (xyz spherical cs:radius=10,latitude=7.227,longitude=-49.434)
    -- (xyz spherical cs:radius=10,latitude=2.771,longitude=-45.641)
    -- (xyz spherical cs:radius=10,latitude=0.405,longitude=-43.478)
    -- (xyz spherical cs:radius=10,latitude=-1.514,longitude=-41.557)
    -- (xyz spherical cs:radius=10,latitude=-5.873,longitude=-39.478)
    -- (xyz spherical cs:radius=10,latitude=-6.862,longitude=-39.348)
    -- (xyz spherical cs:radius=10,latitude=-7.815,longitude=-39.326)
    -- (xyz spherical cs:radius=10,latitude=-8.923,longitude=-39.515)
    -- (xyz spherical cs:radius=10,latitude=-10.559,longitude=-40.205)
    -- (xyz spherical cs:radius=10,latitude=-13.562,longitude=-40.626)
    -- (xyz spherical cs:radius=10,latitude=-16.439,longitude=-38.548)
    -- (xyz spherical cs:radius=10,latitude=-18.756,longitude=-36.158)
    -- (xyz spherical cs:radius=10,latitude=-19.879,longitude=-35.028)
    -- (xyz spherical cs:radius=10,latitude=-22.566,longitude=-35.395)
    -- (xyz spherical cs:radius=10,latitude=-25.278,longitude=-33.390)
    -- (xyz spherical cs:radius=10,latitude=-27.115,longitude=-32.781)
    -- (xyz spherical cs:radius=10,latitude=-29.791,longitude=-31.019)
    -- (xyz spherical cs:radius=10,latitude=-32.942,longitude=-26.928)
    -- (xyz spherical cs:radius=10,latitude=-33.460,longitude=-24.742)
    -- (xyz spherical cs:radius=10,latitude=-34.113,longitude=-20.586)
    -- (xyz spherical cs:radius=10,latitude=-33.514,longitude=-18.670)
    -- (xyz spherical cs:radius=10,latitude=-32.352,longitude=-18.350)
    -- (xyz spherical cs:radius=10,latitude=-25.939,longitude=-15.575)
    -- (xyz spherical cs:radius=10,latitude=-18.897,longitude=-12.716)
    -- (xyz spherical cs:radius=10,latitude=-14.196,longitude=-13.141)
    -- (xyz spherical cs:radius=10,latitude=-10.845,longitude=-13.248)
    -- (xyz spherical cs:radius=10,latitude=-9.617,longitude=-13.320)
    -- (xyz spherical cs:radius=10,latitude=-6.945,longitude=-12.735)
    -- (xyz spherical cs:radius=10,latitude=-5.393,longitude=-12.090)
    -- (xyz spherical cs:radius=10,latitude=-2.285,longitude=-9.777)
    -- (xyz spherical cs:radius=10,latitude=-0.571,longitude=-9.403)
    -- (xyz spherical cs:radius=10,latitude=-0.044,longitude=-9.720)
    -- (xyz spherical cs:radius=10,latitude=0.343,longitude=-9.589)
    -- (xyz spherical cs:radius=10,latitude=0.943,longitude=-9.493)
    -- (xyz spherical cs:radius=10,latitude=2.911,longitude=-9.639)
    -- (xyz spherical cs:radius=10,latitude=3.360,longitude=-9.736)
    -- (xyz spherical cs:radius=10,latitude=3.729,longitude=-9.732)
    -- (xyz spherical cs:radius=10,latitude=3.835,longitude=-9.473)
    -- (xyz spherical cs:radius=10,latitude=4.386,longitude=-8.853)
    -- (xyz spherical cs:radius=10,latitude=4.597,longitude=-8.411)
    -- (xyz spherical cs:radius=10,latitude=4.629,longitude=-7.476)
    -- (xyz spherical cs:radius=10,latitude=4.584,longitude=-7.010)
    -- (xyz spherical cs:radius=10,latitude=4.542,longitude=-6.831)
    -- (xyz spherical cs:radius=10,latitude=4.376,longitude=-6.376)
    -- (xyz spherical cs:radius=10,latitude=5.273,longitude=-5.568)
    -- (xyz spherical cs:radius=10,latitude=5.520,longitude=-5.458)
    -- (xyz spherical cs:radius=10,latitude=5.795,longitude=-5.318)
    -- (xyz spherical cs:radius=10,latitude=6.065,longitude=-4.811)
    -- (xyz spherical cs:radius=10,latitude=6.426,longitude=-3.964)
    -- (xyz spherical cs:radius=10,latitude=5.943,longitude=-1.327)
    -- (xyz spherical cs:radius=10,latitude=5.304,longitude=--2.172)
    -- (xyz spherical cs:radius=10,latitude=5.150,longitude=--4.148)
    -- (xyz spherical cs:radius=10,latitude=4.781,longitude=--7.266)
    -- (xyz spherical cs:radius=10,latitude=5.785,longitude=--9.248)
    -- (xyz spherical cs:radius=10,latitude=7.176,longitude=--11.671)
    -- (xyz spherical cs:radius=10,latitude=8.180,longitude=--12.660)
    -- (xyz spherical cs:radius=10,latitude=8.845,longitude=--13.111)
    -- (xyz spherical cs:radius=10,latitude=9.486,longitude=--13.477)
    -- (xyz spherical cs:radius=10,latitude=9.848,longitude=--13.966)
    -- (xyz spherical cs:radius=10,latitude=10.690,longitude=--14.705)
    -- (xyz spherical cs:radius=10,latitude=11.148,longitude=--15.275)
    -- (xyz spherical cs:radius=10,latitude=11.396,longitude=--15.154)
    -- (xyz spherical cs:radius=10,latitude=11.791,longitude=--15.136)
    -- (xyz spherical cs:radius=10,latitude=11.878,longitude=--15.700)
    -- (xyz spherical cs:radius=10,latitude=11.987,longitude=--16.026)
    -- (xyz spherical cs:radius=10,latitude=12.286,longitude=--16.398)
    -- (xyz spherical cs:radius=10,latitude=12.448,longitude=--16.309)
    -- (xyz spherical cs:radius=10,latitude=12.985,longitude=--16.627)
    -- (xyz spherical cs:radius=10,latitude=13.317,longitude=--16.033)
    -- (xyz spherical cs:radius=10,latitude=13.609,longitude=--16.392)
    -- (xyz spherical cs:radius=10,latitude=14.936,longitude=--16.770)
    -- (xyz spherical cs:radius=10,latitude=17.861,longitude=--16.477)
    -- (xyz spherical cs:radius=10,latitude=21.134,longitude=--16.925)
    -- (xyz spherical cs:radius=10,latitude=23.178,longitude=--16.115)
    -- (xyz spherical cs:radius=10,latitude=23.932,longitude=--15.509)
    -- (xyz spherical cs:radius=10,latitude=25.862,longitude=--14.319)
    -- (xyz spherical cs:radius=10,latitude=26.909,longitude=--13.618)
    -- (xyz spherical cs:radius=10,latitude=28.457,longitude=--11.395)
    -- (xyz spherical cs:radius=10,latitude=30.331,longitude=--10.188)
    -- (xyz spherical cs:radius=10,latitude=32.732,longitude=--8.275)
    -- (xyz spherical cs:radius=10,latitude=35.089,longitude=--6.288)
    -- (xyz spherical cs:radius=10,latitude=35.295,longitude=--4.234)
    -- (xyz spherical cs:radius=10,latitude=35.139,longitude=--2.745)
    -- (xyz spherical cs:radius=10,latitude=36.496,longitude=-1.989)
    -- (xyz spherical cs:radius=10,latitude=36.827,longitude=-5.041)
    -- (xyz spherical cs:radius=10,latitude=37.092,longitude=-8.108)
    -- (xyz spherical cs:radius=10,latitude=36.996,longitude=-10.154)
    -- (xyz spherical cs:radius=10,latitude=35.891,longitude=-10.737)
    -- (xyz spherical cs:radius=10,latitude=33.628,longitude=-11.297)
    -- (xyz spherical cs:radius=10,latitude=32.822,longitude=-13.774)
    -- (xyz spherical cs:radius=10,latitude=32.110,longitude=-14.758)
    -- (xyz spherical cs:radius=10,latitude=30.896,longitude=-17.648)
    -- (xyz spherical cs:radius=10,latitude=32.235,longitude=-20.592)
    -- (xyz spherical cs:radius=10,latitude=32.294,longitude=-22.585)
    -- (xyz spherical cs:radius=10,latitude=31.229,longitude=-27.401)
    -- (xyz spherical cs:radius=10,latitude=31.473,longitude=-30.567)
    -- (xyz spherical cs:radius=10,latitude=31.531,longitude=-31.919)
    ;
 
\draw (xyz spherical    cs:radius=10,latitude=-38.697,longitude=-146.230)
    -- (xyz spherical cs:radius=10,latitude=-38.389,longitude=-145.259)
    -- (xyz spherical cs:radius=10,latitude=-38.056,longitude=-145.058)
    -- (xyz spherical cs:radius=10,latitude=-38.245,longitude=-142.444)
    -- (xyz spherical cs:radius=10,latitude=-36.935,longitude=-140.352)
    -- (xyz spherical cs:radius=10,latitude=-36.287,longitude=-139.777)
    -- (xyz spherical cs:radius=10,latitude=-35.768,longitude=-138.716)
    -- (xyz spherical cs:radius=10,latitude=-34.716,longitude=-138.368)
    -- (xyz spherical cs:radius=10,latitude=-35.101,longitude=-137.459)
    -- (xyz spherical cs:radius=10,latitude=-34.953,longitude=-137.345)
    -- (xyz spherical cs:radius=10,latitude=-34.050,longitude=-137.688)
    -- (xyz spherical cs:radius=10,latitude=-33.127,longitude=-137.751)
    -- (xyz spherical cs:radius=10,latitude=-34.419,longitude=-136.400)
    -- (xyz spherical cs:radius=10,latitude=-34.559,longitude=-135.638)
    -- (xyz spherical cs:radius=10,latitude=-33.392,longitude=-134.616)
    -- (xyz spherical cs:radius=10,latitude=-32.202,longitude=-132.776)
    -- (xyz spherical cs:radius=10,latitude=-32.632,longitude=-126.800)
    -- (xyz spherical cs:radius=10,latitude=-33.610,longitude=-122.533)
    -- (xyz spherical cs:radius=10,latitude=-34.714,longitude=-118.434)
    -- (xyz spherical cs:radius=10,latitude=-34.036,longitude=-115.891)
    -- (xyz spherical cs:radius=10,latitude=-32.815,longitude=-115.839)
    -- (xyz spherical cs:radius=10,latitude=-30.388,longitude=-115.156)
    -- (xyz spherical cs:radius=10,latitude=-27.430,longitude=-113.996)
    -- (xyz spherical cs:radius=10,latitude=-26.334,longitude=-113.737)
    -- (xyz spherical cs:radius=10,latitude=-26.227,longitude=-114.018)
    -- (xyz spherical cs:radius=10,latitude=-23.595,longitude=-113.849)
    -- (xyz spherical cs:radius=10,latitude=-22.448,longitude=-114.368)
    -- (xyz spherical cs:radius=10,latitude=-21.132,longitude=-116.482)
    -- (xyz spherical cs:radius=10,latitude=-20.042,longitude=-119.450)
    -- (xyz spherical cs:radius=10,latitude=-18.172,longitude=-121.541)
    -- (xyz spherical cs:radius=10,latitude=-17.453,longitude=-122.899)
    -- (xyz spherical cs:radius=10,latitude=-17.257,longitude=-123.583)
    -- (xyz spherical cs:radius=10,latitude=-16.852,longitude=-123.641)
    -- (xyz spherical cs:radius=10,latitude=-16.539,longitude=-124.000)
    -- (xyz spherical cs:radius=10,latitude=-16.400,longitude=-124.440)
    -- (xyz spherical cs:radius=10,latitude=-16.054,longitude=-124.545)
    -- (xyz spherical cs:radius=10,latitude=-15.558,longitude=-124.564)
    -- (xyz spherical cs:radius=10,latitude=-15.364,longitude=-124.868)
    -- (xyz spherical cs:radius=10,latitude=-15.007,longitude=-125.163)
    -- (xyz spherical cs:radius=10,latitude=-14.648,longitude=-125.653)
    -- (xyz spherical cs:radius=10,latitude=-14.267,longitude=-126.031)
    -- (xyz spherical cs:radius=10,latitude=-14.175,longitude=-126.448)
    -- (xyz spherical cs:radius=10,latitude=-13.952,longitude=-127.045)
    -- (xyz spherical cs:radius=10,latitude=-14.923,longitude=-127.823)
    -- (xyz spherical cs:radius=10,latitude=-15.276,longitude=-128.174)
    -- (xyz spherical cs:radius=10,latitude=-14.969,longitude=-128.373)
    -- (xyz spherical cs:radius=10,latitude=-15.109,longitude=-128.929)
    -- (xyz spherical cs:radius=10,latitude=-15.096,longitude=-129.358)
    -- (xyz spherical cs:radius=10,latitude=-14.620,longitude=-129.522)
    -- (xyz spherical cs:radius=10,latitude=-13.717,longitude=-129.994)
    -- (xyz spherical cs:radius=10,latitude=-12.961,longitude=-130.452)
    -- (xyz spherical cs:radius=10,latitude=-12.678,longitude=-130.740)
    -- (xyz spherical cs:radius=10,latitude=-12.294,longitude=-131.032)
    -- (xyz spherical cs:radius=10,latitude=-12.222,longitude=-132.005)
    -- (xyz spherical cs:radius=10,latitude=-11.624,longitude=-132.066)
    -- (xyz spherical cs:radius=10,latitude=-11.628,longitude=-132.764)
    -- (xyz spherical cs:radius=10,latitude=-11.930,longitude=-133.745)
    -- (xyz spherical cs:radius=10,latitude=-12.121,longitude=-134.731)
    -- (xyz spherical cs:radius=10,latitude=-12.122,longitude=-135.487)
    -- (xyz spherical cs:radius=10,latitude=-12.296,longitude=-135.891)
    -- (xyz spherical cs:radius=10,latitude=-12.218,longitude=-136.603)
    -- (xyz spherical cs:radius=10,latitude=-12.876,longitude=-136.497)
    -- (xyz spherical cs:radius=10,latitude=-13.374,longitude=-136.138)
    -- (xyz spherical cs:radius=10,latitude=-15.040,longitude=-136.226)
    -- (xyz spherical cs:radius=10,latitude=-16.758,longitude=-138.615)
    -- (xyz spherical cs:radius=10,latitude=-16.113,longitude=-140.639)
    -- (xyz spherical cs:radius=10,latitude=-13.789,longitude=-141.514)
    -- (xyz spherical cs:radius=10,latitude=-12.580,longitude=-141.815)
    -- (xyz spherical cs:radius=10,latitude=-11.230,longitude=-142.253)
    -- (xyz spherical cs:radius=10,latitude=-13.218,longitude=-143.336)
    -- (xyz spherical cs:radius=10,latitude=-14.321,longitude=-144.637)
    -- (xyz spherical cs:radius=10,latitude=-16.138,longitude=-145.489)
    -- (xyz spherical cs:radius=10,latitude=-18.869,longitude=-147.324)
    -- (xyz spherical cs:radius=10,latitude=-21.554,longitude=-149.145)
    -- (xyz spherical cs:radius=10,latitude=-22.116,longitude=-149.822)
    -- (xyz spherical cs:radius=10,latitude=-22.368,longitude=-150.449)
    -- (xyz spherical cs:radius=10,latitude=-23.480,longitude=-151.195)
    -- (xyz spherical cs:radius=10,latitude=-26.000,longitude=-152.609)
    -- (xyz spherical cs:radius=10,latitude=-29.189,longitude=-153.095)
    -- (xyz spherical cs:radius=10,latitude=-31.566,longitude=-152.635)
    -- (xyz spherical cs:radius=10,latitude=-33.702,longitude=-151.261)
    -- (xyz spherical cs:radius=10,latitude=-35.043,longitude=-150.602)
    -- (xyz spherical cs:radius=10,latitude=-37.062,longitude=-148.974)
    -- (xyz spherical cs:radius=10,latitude=-37.732,longitude=-148.093)
    -- (xyz spherical cs:radius=10,latitude=-38.456,longitude=-146.696)
    ;
 
    \end{tikzpicture}
    \end{document}

So far I could only find a solution for a parametric definition of a circle on a spherical surface, but no further approach for the case that a polygon is to be plotted. I have te boundary condition, that it has to be plotted with tikz, because it is only the start of a bigger picture.

enter image description here

Every help and hint is very much appreciated.

initial post

I am using tikz to create a plot of a 3D worldmap similiar to the pst-geo-package. That is because I have to use tikz (pgf) and that only as this is only one part of a larger image I want to plot consinstenly in tikz.

What I did until now is to use the package tikz-3dplot-circleofsphere to create the sphere. Based on the GSHHG I extraced the coastlines as a polygon and plot them with the package tikz-3dplot as spherical coordinates. Up till this point it all goes well.

The problem I need help with is to plot the polygons out of sight in a little different colour. In case of parametric curves solutions can be found by this thread. In case of non parametric curves like the mentioned polygon I am not able to find a working solution.

Would someone please be so kind and help me on this? Every help is very much appreciated. MWE is attached.

Edit: removed typos

Edit2: rephraising

2
  • Unfortunately, I do not think you will find help with this one - downloading and installing extra packages and looking at three other links and no pictures is too much for most. "to plot the polygons out of sight" . If they are not visible, you might as well not plot them. Clearly there is something, that I do not understand. Is it possible for you to add some pictures, drop the links and write further explanation? Could the solution be in pure TikZ or PGFPlots? Commented Aug 18 at 15:33
  • thank you for your feedback, i will rephrase my question
    – Andy0506
    Commented Aug 22 at 16:56

1 Answer 1

2

Here is a PGFPlots solution:

\begin{filecontents*}{data.csv}
latitude  longitude
31.531 -31.919
30.736 -32.199
26.683 -34.069
24.615 -35.204
22.922 -36.166
21.604 -36.927
19.150 -37.863
16.315 -39.331
12.895 -42.640
11.911 -42.870
11.006 -44.764
11.012 -46.508
11.175 -47.967
11.707 -50.337
10.534 -50.975
7.227 -49.434
2.771 -45.641
0.405 -43.478
-1.514 -41.557
-5.873 -39.478
-6.862 -39.348
-7.815 -39.326
-8.923 -39.515
-10.559 -40.205
-13.562 -40.626
-16.439 -38.548
-18.756 -36.158
-19.879 -35.028
-22.566 -35.395
-25.278 -33.390
-27.115 -32.781
-29.791 -31.019
-32.942 -26.928
-33.460 -24.742
-34.113 -20.586
-33.514 -18.670
-32.352 -18.350
-25.939 -15.575
-18.897 -12.716
-14.196 -13.141
-10.845 -13.248
-9.617 -13.320
-6.945 -12.735
-5.393 -12.090
-2.285 -9.777
-0.571 -9.403
-0.044 -9.720
0.343 -9.589
0.943 -9.493
2.911 -9.639
3.360 -9.736
3.729 -9.732
3.835 -9.473
4.386 -8.853
4.597 -8.411
4.629 -7.476
4.584 -7.010
4.542 -6.831
4.376 -6.376
5.273 -5.568
5.520 -5.458
5.795 -5.318
6.065 -4.811
6.426 -3.964
5.943 -1.327
5.304  2.172
5.150  4.148
4.781  7.266
5.785  9.248
7.176  11.671
8.180  12.660
8.845  13.111
9.486  13.477
9.848  13.966
10.690  14.705
11.148  15.275
11.396  15.154
11.791  15.136
11.878  15.700
11.987  16.026
12.286  16.398
12.448  16.309
12.985  16.627
13.317  16.033
13.609  16.392
14.936  16.770
17.861  16.477
21.134  16.925
23.178  16.115
23.932  15.509
25.862  14.319
26.909  13.618
28.457  11.395
30.331  10.188
32.732  8.275
35.089  6.288
35.295  4.234
35.139  2.745
36.496 -1.989
36.827 -5.041
37.092 -8.108
36.996 -10.154
35.891 -10.737
33.628 -11.297
32.822 -13.774
32.110 -14.758
30.896 -17.648
32.235 -20.592
32.294 -22.585
31.229 -27.401
31.473 -30.567
31.531 -31.919

-38.697 -146.230
-38.389 -145.259
-38.056 -145.058
-38.245 -142.444
-36.935 -140.352
-36.287 -139.777
-35.768 -138.716
-34.716 -138.368
-35.101 -137.459
-34.953 -137.345
-34.050 -137.688
-33.127 -137.751
-34.419 -136.400
-34.559 -135.638
-33.392 -134.616
-32.202 -132.776
-32.632 -126.800
-33.610 -122.533
-34.714 -118.434
-34.036 -115.891
-32.815 -115.839
-30.388 -115.156
-27.430 -113.996
-26.334 -113.737
-26.227 -114.018
-23.595 -113.849
-22.448 -114.368
-21.132 -116.482
-20.042 -119.450
-18.172 -121.541
-17.453 -122.899
-17.257 -123.583
-16.852 -123.641
-16.539 -124.000
-16.400 -124.440
-16.054 -124.545
-15.558 -124.564
-15.364 -124.868
-15.007 -125.163
-14.648 -125.653
-14.267 -126.031
-14.175 -126.448
-13.952 -127.045
-14.923 -127.823
-15.276 -128.174
-14.969 -128.373
-15.109 -128.929
-15.096 -129.358
-14.620 -129.522
-13.717 -129.994
-12.961 -130.452
-12.678 -130.740
-12.294 -131.032
-12.222 -132.005
-11.624 -132.066
-11.628 -132.764
-11.930 -133.745
-12.121 -134.731
-12.122 -135.487
-12.296 -135.891
-12.218 -136.603
-12.876 -136.497
-13.374 -136.138
-15.040 -136.226
-16.758 -138.615
-16.113 -140.639
-13.789 -141.514
-12.580 -141.815
-11.230 -142.253
-13.218 -143.336
-14.321 -144.637
-16.138 -145.489
-18.869 -147.324
-21.554 -149.145
-22.116 -149.822
-22.368 -150.449
-23.480 -151.195
-26.000 -152.609
-29.189 -153.095
-31.566 -152.635
-33.702 -151.261
-35.043 -150.602
-37.062 -148.974
-37.732 -148.093
-38.456 -146.696
\end{filecontents*}

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage[export]{animate}
\begin{document}
\begin{animateinline}{20}
\multiframe{40}{rAzimuth=0+10}{
\begin{tikzpicture}
\begin{axis}[
view={\rAzimuth}{20},
axis equal,
axis lines=none,
unbounded coords=jump,
]
\addplot3[surf, opacity=0.5, z buffer=sort, samples=21, domain=0:180, y domain=0:360,] ({cos(x)*sin(y)}, {sin(x)*sin(y)}, {cos(y)});
\addplot3[
no marks,
z filter/.expression={\thisrow{longitude}<\rAzimuth-180&&\thisrow{longitude}>\rAzimuth-360?z:nan},
] table[
x expr=cos(\thisrow{latitude})*cos(\thisrow{longitude}),
y expr=cos(\thisrow{latitude})*sin(\thisrow{longitude}),
z expr=sin(\thisrow{latitude}),
] {data.csv};
\end{axis}    
\end{tikzpicture}
}
\end{animateinline}
\end{document}

Animated globe with Africa and Australia

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .