Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 852283
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T07:34:06+00:00 2026-05-15T07:34:06+00:00

I need a function that maps gps positions to x/y values like this: getXYpos(GeoPoint

  • 0

I need a function that maps gps positions to x/y values like this:

getXYpos(GeoPoint relativeNullPoint, GeoPoint p){
   deltaLatitude=p.latitude-relativeNullPoint.latitude;
   deltaLongitude=p.longitude-relativeNullPoint.longitude;
   ...
   resultX=latitude (or west to east) distance in meters from p to relativeNullPoint
   resultY=longitude (or south to north) distance in meters from p to relativeNullPoint
}

i have seen some implementations of “distance of two geoPoints” but they all just calculate the air-line distance.
i think the deltaLongitude can be transformed into meters directly but the deltaLatitude depends in the Longitude. does anyone know how this problem can be solved?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T07:34:06+00:00Added an answer on May 15, 2026 at 7:34 am

    To start with, I think you have your latitude and longitude reversed. Longitude measures X, and latitude measures Y.

    The latitude is easy to turn into a north-south distance. We know that 360 degrees is a full circle around the earth through the poles, and that distance is 40008000 meters. As long as you don’t need to account for the errors due to the earth being not perfectly spherical, the formula is deltaLatitude * 40008000 / 360.

    The tricky part is converting longitude to X, as you suspected. Since it depends on the latitude you need to decide which latitude you’re going to use – you could choose the latitude of your origin, the latitude of your destination, or some arbitrary point in between. The circumference at the equator (latitude 0) is 40075160 meters. The circumference of a circle at a given latitude will be proportional to the cosine, so the formula will be deltaLongitude * 40075160 * cos(latitude) / 360.

    Edit: Your comment indicates you had some trouble with the longitude formula; you might have used degrees instead of radians in the call to cos, that’s a common rookie mistake. To make sure there’s no ambiguity, here’s working code in Python.

    def asRadians(degrees):
        return degrees * pi / 180
    
    def getXYpos(relativeNullPoint, p):
        """ Calculates X and Y distances in meters.
        """
        deltaLatitude = p.latitude - relativeNullPoint.latitude
        deltaLongitude = p.longitude - relativeNullPoint.longitude
        latitudeCircumference = 40075160 * cos(asRadians(relativeNullPoint.latitude))
        resultX = deltaLongitude * latitudeCircumference / 360
        resultY = deltaLatitude * 40008000 / 360
        return resultX, resultY
    

    I chose to use the relativeNullPoint latitude for the X calculation. This has the benefit that if you convert multiple points with the same longitude, they’ll have the same X; north-south lines will be vertical.

    Edit again: I should have pointed out that this is a very simple formula and you should know its limitations. Obviously the earth is not flat, so any attempt to map it to XY coordinates will involve some compromises. The formula I derived above works best when the area you’re converting is small enough to consider flat, and where the slight curvature and non-parallelism of north-south lines can be ignored. There’s a whole science to map projections; if you want to see some possibilities a good place to start would be Wikipedia. This specific projection is known as the Equirectangular projection, with some added scaling.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Need a function like: function isGoogleURL(url) { ... } that returns true iff URL
Need a function that takes a character as a parameter and returns true if
I need a function that I can call when somthing is done, for example
I need to test a function that needs to query a page on an
I need a function count_permutations() that returns the number of permutations of a given
I need to write a function that takes 4 bytes as input, performs a
I need to be able to write a function that shows repeated words from
in delphi7 i have a function that i need to return a array as
I need a font that shows letters and function keys on a keyboard, so
I'm creating a function where I need to pass an object so that it

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.