\documentclass[10pt,border=1pt,tikz,class=scrartcl]{standalone} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage{mathtools} \usepackage{gensymb} \usepackage{tikz-3dplot} \usetikzlibrary{arrows,calc,positioning,decorations.pathreplacing} \begin{document} \scriptsize \tdplotsetmaincoords {80}{100} \begin{tikzpicture}[thick,auto,>=stealth,xscale=4,yscale=3,tdplot_main_coords] \pgfmathsetmacro{\pxyz}{.6} \draw [->,thin] (0,0,0) -- (1.2,0,0) node [anchor=north east] {X}; \draw [->,thin] (0,0,0) -- (0,1.2,0) node [anchor=north] {Y}; \draw [->,thin] (0,0,0) -- (0,0,1.2) node [anchor=south] {Z}; \tdplotdrawarc {(0,0,0)}{1}{-90}{90}{}{}; \tdplotdrawarc [dotted] {(0,0,0)}{1}{90}{270}{}{}; \draw [green!50!gray] (\pxyz,0,0) -- ++(0,\pxyz,0) node [pos=.5,below] {$y$} -- ++(-\pxyz,0,0) node [pos=.5,below right] {$x$} -- ++(0,0,\pxyz) node [pos=.5,right] {$z$} -- ++(0,-\pxyz,0) -- ++(\pxyz,0,0) -- ++(0,0,-\pxyz) (\pxyz,0,\pxyz) -- ++(0,\pxyz,0) -- ++(0,0,-\pxyz) (\pxyz,\pxyz,\pxyz) -- ++(-\pxyz,0,0) ; \draw [red] (0,0,0) -- (\pxyz,\pxyz,0) node [pos=.8,above] {$p$} (0,0,0) -- (\pxyz,\pxyz,\pxyz) node [pos=.7,above] {$r$}; \tdplotdrawarc [->,thin] {(0,0,0)} {.3} {0}{45}{below}{$\lambda$}; \tdplotgetpolarcoords{\pxyz}{\pxyz}{\pxyz} \tdplotsetthetaplanecoords{45}; \tdplotdrawarc [tdplot_rotated_coords,->,thin] {(0,0,0)} {.3} {90}{\tdplotrestheta}{right}{$\phi$}; %\draw [->,dashed] (0,0,0) -- (-1.2,0); %\draw [->,dashed] (0,0,0) -- (0,-1.2,0); \draw [->,dashed,thin] (0,0,0) -- (0,0,-1.2); \tdplotsetthetaplanecoords{0}; \tdplotdrawarc [tdplot_rotated_coords]{(0,0,0)}{1}{0}{180}{}{}; \tdplotdrawarc [tdplot_rotated_coords,dotted] {(0,0,0)}{1}{180}{360}{}{}; \tdplotsetthetaplanecoords{90}; \tdplotdrawarc [tdplot_rotated_coords]{(0,0,0)}{1}{0}{360}{}{}; \draw (0,0,0) + (0,0,1.1) node [left] {North Pole} (0,0,0) + (.5,.7,-.3) node {\parbox{1.5cm}{Equator\\(0\degree latitude)}} (0,0,0) + (0,-.5,.5) node {\parbox{1.9cm}{Prime meridian\\(0\degree longitude)}} ; \draw [anchor=east,yshift=3pt] (0,1.2,1.2) node {$\phi=$ latitude} (0,1.2,1.12) node {$\lambda=$ longitude} (0,1.2,1.04) node [blue!50] {$a=$ major axis} (0,1.2,.96) node [purple!70] {$b=$ minor axis} (0,1.2,.88) node [green!50!gray] {$x,y,z=$ ECEF position} ; \draw [->,thin] (.4,.8,-.3) .. controls +(north east:1mm) and +(south east:1mm) .. ++(-.1,-.05,.24); \draw [->,thin] (0,-.4,.6) .. controls +(north:1mm) and +(west:1mm) .. ++(0,.27,.2); \draw [blue!50,decorate,decoration={brace,amplitude=5pt,mirror}] (0,0,0) -- (1,0,0) node [pos=.4,above left=2pt] {$a$}; \draw [blue!50,decorate,decoration={brace,amplitude=5pt}] (0,0,0) -- (0,1,0) node [pos=.5,above=4pt] {$a$}; \draw [purple!70,decorate,decoration={brace,amplitude=5pt}] (0,0,0) -- (0,0,1) node [pos=.5,left=4pt] {$b$}; \end{tikzpicture} \end{document}