We consider a visible light positioning system using modulated LEDs at the transmitter and photodiodes (PDs) combined with apertures at the receiver. The layout of the aperture-based receiver is designed in order to have angular diversity, implying it can detect the direction from which light is coming, by simply comparing the relative differences in received signal strength values in the different PDs. Hence, with this receiver, it is possible to extract the angle-of-arrival (AOA) of the light without needing the knowledge of the transmitted optical power. In this paper, we consider an algorithm, based on the maximum likelihood (ML) principle, to estimate the AOA, and obtain the position of the receiver in 3-D through triangulation. The ML algorithm, of which the practical implementation searches for the optimal value of the AOA starting from an initial estimate, suffers from convergence problems if the initial estimate is too far from the true AOA. Hence, we propose an initial low-complexity coarse estimation algorithm for the AOA, and make the algorithm iterative, where in each iteration, the initial estimate for the AOA is updated based on the previous position estimate. We show that the algorithm yields centimeter performance, i.e., an accuracy of 10 cm or better, using a limited number of LEDs, e.g., four LEDs for a $5\,\,\text {m} \times 5$ m area.