Root and branch
I'm not a dendrologist, so trees are not something I use a lot. The following shows one way of modifying the layout of a tree by changing the sibling distance
for individual child
ren. I don't know if this is exactly how you'd like it, but you can use it as a starting point.

\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[sibling distance=2cm,level distance=2cm,
box/.style={
shape=rectangle,
font=\small,
draw,
align=center,
minimum height=1.5cm,
text width=1.5cm,
top color=white,
bottom color=blue!20}
]
\node [box,text width=3cm] {Indoor\\Localization\\System} [edge from parent fork down]
child { node [box] {Proximity}
child { node [box] {aoa1} }
child { node [box] {aoa2} }}
child { node [box] {Angulation} }
child [sibling distance=3cm] { node [box] (lat) {Lateration}
child [sibling distance=4cm] { node [box] {Signal Strength}
child [sibling distance=2cm] { node [box] {aoa} }
child [sibling distance=2cm] { node [box] {aoa1} }
child [sibling distance=2cm] { node [box] (aoa2) {aoa2} } }
child [sibling distance=0cm]{ node [box] (tof) {Time of flight}}};
\draw [latex-] (tof.east) ++(0.3cm,0) coordinate (arrowend) -- ++(1cm,0) node[right] {Some text};
\draw [latex-] (arrowend|- lat.east) -- ++(1cm,0) node[right] {Some other text};
\draw [latex-] (arrowend |- aoa2.east)-- ++(1cm,0) node[right] {Some third text};
\end{tikzpicture}
\end{document}
Manual positioning
As Symbol1 mentioned in a comment, you could also position all the nodes manually. In the following code I've not used explicit coordinates as he suggested, but placed all nodes relative to other nodes. Here I've more or less reproduced the layout in the image you showed. It can be made a bit more compact my modifying some distances here and there.

\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
box/.style={
shape=rectangle,
font=\small,
draw,
align=center,
minimum height=1.5cm,
minimum width=1.5cm,
top color=white,
bottom color=blue!20},
node distance=1cm and 0.5cm]
% root node
\node (loc) [box] {Location\\system};
% first row
\node (proc) [box,below=of loc] {Proximity};
\node (ang) [box,right=of proc] {Angulation};
\node (lat) [box,left=1cm of proc] {Lateration};
% right tree
\node (recang) [box,below=of ang] {Recieved\\angle};
\node (aoa) [box,below=of recang] {AOA};
\node (aa) [box,below=of aoa] {Antenna\\array};
% left tree
\node (ss) [box,below left=1cm and -0.5cm of lat] {Signal\\strength};
\node (rss) [box,below=of ss] {RSS};
\node (rft) [box,below=of rss] {RF\\Tranceiver};
\node (pt) [box,below right=1cm and 0cm of lat] {Propagation\\time};
\node (tdoa) [box,below left=1cm and -0.8cm of pt] {TDOA};
\node (toa) [box,below right=1cm and -0.8cm of pt] {TOA};
\node (and) [box,below=of tdoa,font=\scriptsize] {Ultrasonic\\Transducer\\and RF\\Transceiver};
\node (or) [box,below=of toa,font=\scriptsize] {Ultrasonic\\Transducer\\or RF\\Transceiver};
% annotations on right
\foreach \start/\txt in {ang/Positioning, recang/Variable, aoa/Ranging, aa/Device}
\draw [latex-] (\start.east) ++(0.3cm,0) -- ++(1cm,0) node[right]{\txt};
% draw connections
\draw (loc) --coordinate (i1) (proc);
\draw (i1) -| (lat);
\draw (i1) -| (ang) -- (recang) -- (aoa) -- (aa);
\path (lat.south) ++(0,-0.5cm) coordinate (i2);
\path (pt.south) ++(0,-0.5cm) coordinate (i3);
\draw (lat) -- (i2) -| (ss) -- (rss) -- (rft);
\draw (i2) -| (pt) -- (i3) -| (tdoa) -- (and);
\draw (i3) -| (toa) -- (or);
\end{tikzpicture}
\end{document}
\node at(4,5){text};
and so on. This is the simplest way to get full control of node position.