I'd use Number(x), if I had to choose between those two, because it won't allow trailing garbage. (Well, it "allows" it, but the result is a NaN.)
That is, Number("123.45balloon") is NaN, but parseFloat("123.45balloon") is 123.45 (as a number).
As Mr. Kling points out, which of those is "better" is up to you.
edit — ah, you've added back +x and ~~x. As I wrote in a comment, +x is equivalent to using the Number() constructor, but I think it's a little risky because of the syntactic flexibility of the + operator. That is, it'd be easy for a cut-and-paste to introduce an error. The ~~x form is good if you know you want an integer (a 32-bit integer) anyway. For lat/long that's probably not what you want however.
new Number(), if any, useNumber(). It depends on what kind of input you consider is valid. E.g.parseFloatwill accept"123foo"and return123butNumber(or the unary+) will returnNaN.Number()constructor as a plain function though.