4
votes

I have a distance in meters and ref latitude and longitude. Now I want latitude and longitude from the given ref point on x meters in four direction (south, north, east and west).

How can I get this value?

I need to write this in C#, but any pseudocode or logic guidance will be welcome.

Update:

I have a coordinates as references point from that I want to calculate distances of 5 meters in north direction keeping longitude as constant. So I want to calculate latitude at a distance of 5 meters from my reference point. Same I have to do for all 3 directions in east west direction I am keeping longitude as a constant.

Please let me know if any formula we can use for this.

4
Check this site: movable-type.co.uk/scripts/latlong.html . There is solution for calculate distance between two points on earth, so it should be easly adopted to yours problem.zgorawski
last time i make 4 or 5 application for that. atleast i use Drupal's database for lati long, the other great way is Google map api. i know it's not matter but best way is google api or use database from drupal who was free.user605334

4 Answers

9
votes

How accurate does it have to be? You can often assume the earth is a sphere with a radius of 6360 km. In that case, one degree north or south is 10000/90 kilometers (that's how the meter was defined). East/West is only slightly harder, one degree east is 10000/90 km * cos(latitude).

2
votes

Javascript example:

function translateCoordinates(distance, Lat,Lng, angle) {
    distanceNorth = Math.sin(angle) * distance;
    distanceEast = Math.cos(angle) * distance;
    earthRadius = 6371000;
    newLat = Lat + (distanceNorth / earthRadius) * 180 / Math.PI;
    newLon = Lng + (distanceEast / (earthRadius * Math.cos(newLat * 180 / Math.PI))) * 180 / Math.PI;

    return [newLat, newLon];
}

So you can convert it into c#

1
votes

This spreadsheet from the ordnance survey contains full conversions in vb script macro that can be converted.

It should be able to give you the new location based on degrees and time.

Reformat latitude and longitude coordinates between: Degrees, Minutes & Seconds; decimal Degrees; and Degrees & Decimal Minute formats.

0
votes

The other way to calculate this is to convert degree to radian: Pi radian is equals to 180 degree. The simple point about radian is the length on the circle (surface of Earth) is radius * radian. Thus, 1 degree * pi / 180 * 6360Km = 110.947Km where pi = 3.14.

Latitude and longitude values move north-south and east-west respectively, so the above calculation could be mapped to those if the movement is along with their direction, otherwise sinus and cosinus functions must be used for mapping.