I don't know if this is the right place to ask but here it his.

I want to create an Archimedean spiral based in some location. Lets say I have this set of geographic coordinates (48.860770, 2.337655). This will be the initial point of the spiral and I want to create 10 new locations.

I have this formula for calculating in x, y coordinate:

for (i = 0; i <= 10; i++) {
    angle = 0.1 * i;
    x = centerx + (a + b * angle) * Math.cos(angle);
    y = centery + (a + b * angle) * Math.sin(angle);

How can I change this to convert to geographic coordinates?

In my example, centerx would be 48.860770 and centery would be 2.337655


I'm not a mathematician so may be my idea is flawed? There are more clever people haunting this forum than I. A possible way of doing this is set your centerx and centery to zero and compute the range of values then add those to your real world XY position. An example of this is shown in the screen shot below.

So i is your count (I did 1 to 100), angle is your i * 0.1, x and y are the results of your equation where centerx and centery are always zero and pX and pY are your real world X and Y (48.860770, 2.337655) simply added to x and y. I've assumed a and b are 1.

Creating the spiral in Minitab

  • 2
    The main issue is spherical/spheroidal distance conversion; assuming the position is in degrees and the distance units are meters, then the spiral would be significantly smaller (and shaped slightly differently). – Vince Dec 13 '14 at 19:18
  • Many thanks. I'm now having trouble defining the angle but I will get there with trial and error. I'm using a=0.000001 and b=0.0001 – Favolas Dec 14 '14 at 11:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.