1. A method comprising: receiving, from an end user device equipped with a depth sensing device, a set of three-dimensional data from the depth sensing device, the end user device being attached to or carried by a pedestrian, or connected to a vehicle; segmenting, using a processor, the set of three-dimensional data into planes defining elevations; extracting, using the processor, a plurality of two-dimensional feature geometries from the segmented set of three-dimensional data; ranking the extracted two-dimensional feature geometries to provide a ranking value for each of the plurality of extracted two-dimensional feature geometries; selecting a fingerprint of a subset of the extracted two-dimensional feature geometries based at least in part on the ranking value of the extracted two-dimensional feature geometries; providing for a comparison of the selected fingerprint of the subset of the extracted two-dimensional feature geometries to a fingerprint database of fingerprints corresponding to stored feature geometry data; receiving data indicative of a location corresponding to the selected fingerprint of the subset of extracted two-dimensional feature geometries based on the comparison; and determining a location of the end-user device based on the selected fingerprint of the subset of extracted two-dimensional feature geometries.