I was hoping someone out there could provide me with an equation to calculate a 1km square (X from a.aaa to b.bbb, Y from c.ccc to c.ccc) around a given point, say lat = 53.38292839
and lon = -6.1843984
? I'll also need 2km, 5km and 10km squares around a point.
I've tried googling around to no avail... It's late at night and was hoping someone might have quick fix handy before I delve into the trigonometry...
I'll be running all this in Javascript, although any language is fine.
If the world were a perfect sphere, according to basic trigonometry...
Degrees of latitude have the same linear distance anywhere in the world, because all lines of latitude are the same size. So 1 degree of latitude is equal to 1/360
th of the circumference of the Earth, which is 1/360
th of 40,075
km.
The length of a lines of longitude depends on the latitude. The line of longitude at latitude l will be cos(l) × 40,075
km. One degree of longitude will be 1/360
th of that.
So you can work backwards from that. Assuming you want something very close to one square kilometre, you'll want 1 × (360/40075) ≈ 0.008983
degrees of latitude.
At your example latitude of 53.38292839
, the line of longitude will be cos(53.38292839) × 40075 ≈ 23903.297
km long. So 1 km is 1 × (360/23903.297) ≈ 0.015060
degrees.
In reality the Earth isn't a perfect sphere, it's fatter at the equator. And the above gives a really good answer for most of the useful area of the world, but is prone to go a little odd near the poles (where rectangles in long/lat stop looking anything like rectangles on the globe). If you were on a pole, for example, the hypothetical line of longitude is 0
km long. So how you'd deal with a need to count degrees on that will depend on why you want the numbers.