Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determine the Scale Factor in Maps

Given only the set of coordinates, is there a way to find the scale factor being used? It will then be used to compute the distances between the coordinates.

Let's consider this:

On a map scale: (This is the only given)

  • pointA(33.511615, -86.778809)
  • pointB(34.398558, -87.669116)

On a real world scale:

  • Distance between the 2 points = unknown

We can solve for the distance between the 2 points. What conversion factor can we use in order to convert the distance into the actual or real world scale? How do we get the conversion factor?

The coordinates given are based on actual points plotted in a smaller scale model.The format may look familiar to you. Could it be that the units by default are miles? I have no idea on how they came up with the coordinates, any thoughts?

I'm not sure what underlying concepts are involved (Geocoding or Geolocation?) and if I made sense when I try to point things out. Please help.

like image 505
adrian Avatar asked Jan 01 '26 07:01

adrian


2 Answers

Those look like latitude and longitude coordinates (e.g. 33.511615 degrees North latitude, 86.778809 West longitude for the first one) which place them in Alabama.

Are you sure those are some sort of map-specific coordinates and not Lat/Lon?

Edit: if they are Lat/Lon, check out this site which has a great-circle distance calculator and the formulae you'd need to do it yourself. This site allows decimal degrees rather than minutes/seconds so that may be more useful.

like image 120
Dusty Avatar answered Jan 05 '26 07:01

Dusty


The distance between two points:

Point1, with coordinates lat1 and long1 Point2, with coordinates lat2 and long2

may be calculated as follows, using the haversine formula (code shown in Python):

lat1=radians(lat1)
long1=radians(long1)
lat2=radians(lat2)
long2=radians(long2)

gradius=6378.137        # greatest earth radius (equator)
sradius=6356.7523142    # smallest earth radius (pole)

R=(gradius*sradius)/sqrt((gradius*cos(lat1))**2 + (sradius*sin(lat1))**2)

d_lat = lat2 - lat1
d_long = long2 - long1

a = sin(d_lat/2)**2 + cos(lat1) * cos(lat2) * sin(d_long/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
distance = maior * c

# and if you want bearing:
x = sin(d_long) * cos(lat2)
y = cos(lat2) * sin(lat1) - sin(lat2) * cos (lat1) * cos(d_long)
bearing = 90-(degrees(atan2(y, -x)))

Of course it should be adjusted and suited to your needs. Hope it helps.

like image 21
heltonbiker Avatar answered Jan 05 '26 07:01

heltonbiker



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!