2012-01-15 5 views
5

voglio trovare Latitude, ad esempioritrovamento latitudine e longitudine utilizzando la distanza

Point A = (18.5204303,73.8567437) 
Point B = (x,73.8567437) 
Distance =20KM(Kilometers) 

ho bisogno di trovare la latitudine (x) del punto B, che dista 20 Km dal punto A.Longitude dovrebbe essere lo stesso. Aiutami Grazie in anticipo

+1

Non avete bisogno di un angolo come bene? Altrimenti c'è un numero infinito di punti 'B = (x, y) che corrispondono ai tuoi criteri - su un cerchio con raggio di 20 km e centro in' A' ... –

+0

Sì, ho bisogno del raggio angolare, ma non lo so come trovarlo – Nishu

+2

quindi hai una singola equazione con due incognite - la matematica è contro di te ;-). Hai bisogno di sapere entrambi: raggio e angolo per essere in grado di trovare esattamente un 'B'. –

risposta

3

ho trovato risposta per la mia domanda

var lat1 = 18.5204303; 
    var lon1 = 73.8567437; 
    var d = 20; //Distance travelled 
    var R = 6371; 
    var brng = 0; 
    var LatMax; 
    brng = toRad(brng); 
    var lat1 = toRad(lat1), lon1 = toRad(lon1); 
    var lat2 = Math.asin(Math.sin(lat1)*Math.cos(d/R) + 
         Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng)); 

    var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
          Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2)); 
     lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI; 
    lat2= toDeg(lat2); 
    lon2= toDeg(lon2); 
    alert(lat2); 
    alert(lon2); 

function toRad(Value) { 
    /** Converts numeric degrees to radians */ 
    return Value * Math.PI/180; 
} 
function toDeg(Value) { 
    return Value * 180/Math.PI; 
} 

Grazie a tutti

1

Non sono sicuro se questa dovrebbe essere una risposta o un commento. Ma dal momento che non posso scrivere commenti, scriverò una risposta.

This pagina è una grande fonte per fare calcoli di distanza. In questo caso, probabilmente stai cercando il codice per calcolare la nuova posizione quando percorri una lossodromia da una data posizione. Citazione di pagina collegata:

Per trovare il lat/lon di un punto sulla rotta vera tc, distanza d da (LAT1, lon1) lungo un rhumbline (punto iniziale non può essere un palo!):

lat= lat1+d*cos(tc) 
IF (abs(lat) > pi/2) "d too large. You can't go this far along this rhumb line!" 
IF (abs(lat-lat1) < sqrt(TOL)) 
{ 
    q=cos(lat1) 
} 
ELSE 
{ 
    dphi=log(tan(lat/2+pi/4)/tan(lat1/2+pi/4)) 
    q= (lat-lat1)/dphi 
} 
dlon=-d*sin(tc)/q 
lon=mod(lon1+dlon+pi,2*pi)-pi 

Il collegamento è ancora utile ma sarà necessario utilizzare dell'algebra per risolvere una longitudine nota e un corso sconosciuto. Dato che sei molto lontano, le grandi distanze del cerchio possono essere più utili delle lossodromie. Ma immagino che dipenda dal problema.

1

Non sono un esperto in questo. Ma ho usato per calcolare la distanza tra due punti utilizzando le formule da movable-type.

Si prega di controllare il sito. Ti darà qualche suggerimento. Penso che queste formule destination e rhumblines siano simili alle tue esigenze. Date un'occhiata

+0

Questi non sono un algoritmo, solo formule. – OnTheFly

+0

sì giusto, le sue formule .. – RameshVel

+0

Grazie RameshVel, Good Link e ho finito .... – Nishu