A method for determining a three dimensional location of a wireless device in a cellular communications network, the method comprising: obtaining a plurality of measurements for a wireless device, the plurality of measurements being Time Difference of Arrival, TDOA, related measurements; and computing a three dimensional position of the wireless device using the plurality of measurements and a vertical surface model, wherein the vertical surface model is a translated and scaled version of an initial vertical surface model, and wherein both the vertical surface model and the initial vertical surface model are models of, for each cell j of one or more cells in the cellular communications network, altitude, z, at points within an interior of a polygon that represents the cell j, characterised in that the vertical surface model is defined as: z ̃ = f T x ̃ y ̃ d ̃ ^ j, x ̃ y ̃ 0 T ∈ cell ̃ j where: • x̃, ỹ, and z̃ are a Cartesian x-coordinate, a Cartesian y-coordinate, and an altitude value, respectively, in the translated and scaled version of the initial surface model; • f ( x̃, ỹ) is defined as: f x ̃ y ̃ = 1... y ̃ Q j x ̃ x ̃ y ̃... x ̃ y ̃ Q j... x ̃ P j y ̃ Q j T where P(j) and Q(j) are each a bi-nominal degree; • d ̃ ̅ j is defined as: d ̃ ^ j = R ̃ j − 1 r J ̃, R ̃ j = ∑ i = 1 M j f x ̃ i, j y ̃ i, j f T x ̃ i, j y ̃ i, j, where x̃ i,j, ỹ i,j, and z̃ i,j are altitude value, respectively, for each i-th scaled polygon corner of the polygon that represents the cell j in the vertical surface model, where: x ̃ i, j y ̃ i, j z ̃ i, j = σ x, j − 1 0 0 0 σ y, j − 1 0 0 0 σ z, j − 1 x i, j − 〈 x j 〉 y i, j − 〈 y j 〉 z i, j − 〈 z j 〉 and: • x̃ i,j is a Cartesian x-coordinate of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • ỹ i,j is a Cartesian y-coordinate of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • z̃ i,j is an altitude value of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • x i,j is a Cartesian x-coordinate of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • y i,j is a Cartesian y-coordinate of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • z i,j is an altitude value of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • 〈 x j 〉 is a translation value applied to x i, j; • 〈 y j 〉 is a translation value applied to y i,j; • 〈 z j 〉 is a translation value applied to z i,j; • σ x, j − 1 is a scaling factor applied to x i,j; • σ y, j − 1 is a scaling factor applied to y i,j; and • σ z, j − 1 is a scaling factor applied to z i,j. obtaining a plurality of measurements for a wireless device, the plurality of measurements being Time Difference of Arrival, TDOA, related measurements; and computing a three dimensional position of the wireless device using the plurality of measurements and a vertical surface model, wherein the vertical surface model is a translated and scaled version of an initial vertical surface model, and wherein both the vertical surface model and the initial vertical surface model are models of, for each cell j of one or more cells in the cellular communications network, altitude, z, at points within an interior of a polygon that represents the cell j, characterised in that the vertical surface model is defined as: z ̃ = f T x ̃ y ̃ d ̃ ^ j, x ̃ y ̃ 0 T ∈ cell ̃ j • x̃, ỹ, and z̃ are a Cartesian x-coordinate, a Cartesian y-coordinate, and an altitude value, respectively, in the translated and scaled version of the initial surface model; • f ( x̃, ỹ) is defined as: f x ̃ y ̃ = 1... y ̃ Q j x ̃ x ̃ y ̃... x ̃ y ̃ Q j... x ̃ P j y ̃ Q j T where P(j) and Q(j) are each a bi-nominal degree; • d ̃ ̅ j is defined as: d ̃ ^ j = R ̃ j − 1 r J ̃, R ̃ j = ∑ i = 1 M j f x ̃ i, j y ̃ i, j f T x ̃ i, j y ̃ i, j, where x̃ i,j, ỹ i,j, and z̃ i,j are altitude value, respectively, for each i-th scaled polygon corner of the polygon that represents the cell j in the vertical surface model, where: x ̃ i, j y ̃ i, j z ̃ i, j = σ x, j − 1 0 0 0 σ y, j − 1 0 0 0 σ z, j − 1 x i, j − 〈 x j 〉 y i, j − 〈 y j 〉 z i, j − 〈 z j 〉 • x̃ i,j is a Cartesian x-coordinate of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • ỹ i,j is a Cartesian y-coordinate of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • z̃ i,j is an altitude value of the i-th scaled and translated polygon corner of the polygon that represents the cell j in the vertical surface model; • x i,j is a Cartesian x-coordinate of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • y i,j is a Cartesian y-coordinate of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • z i,j is an altitude value of the i-th polygon corner of the polygon that represents the cell j in the initial vertical surface model; • 〈 x j 〉 is a translation value applied to x i, j; • 〈 y j 〉 is a translation value applied to y i,j; • 〈 z j 〉 is a translation value applied to z i,j; • σ x, j − 1 is a scaling factor applied to x i,j; • σ y, j − 1 is a scaling factor applied to y i,j; and • σ z, j − 1 is a scaling factor applied to z i,j.