2017-09-26 1 views
-2

Ich versuche, die Stationen zusammen mit der Straßenentfernung vom Ursprung (Hyderabad-Koordinaten 17.3850,78.4867) zu holen. Mit der untenstehenden Abfrage bekomme ich die Entfernung aber es ist Luftentfernung. Ich brauche Straßenseite Entfernung.Berechnung der Straßenentfernung in mysql

meine sql:

SELECT latitude, longitude,Station_Name, Station_Key, 
(6371 * 2 * ASIN(SQRT(
      POWER(SIN((17.3850 - ABS(latitude)) * PI()/180/2), 
      2) + COS(17.3850 * PI()/180) * COS(ABS(latitude) * 
      PI()/180) * POWER(SIN((78.4867 - longitude) * 
      PI()/180/2), 2)))) AS distnce 
FROM abrs_stations 

kann so jemand pls lassen Sie mich wissen, wie dies zu erreichen. Danke im Voraus.

+0

Werfen Sie einen Blick auf die Google Maps API (oder anderen konkurrierenden APIs). – David

+0

Wie können Sie eine Straßenseitenentfernung von Breiten- und Längengradkoordinaten erhalten? – Manav

+0

@Manav: Wenn ich weiß, wie man das bekommt, dann schreibe ich die Antwort für diesen Beitrag. – Sucharitha

Antwort

0

können Sie Google-API für find Abstand zwischen zwei lat lange

https://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $from_latitude . "," . $from_longitude . "&destinations=" . $destination_latitude . "," . $destination_longitude . "&mode=driving&language=pl-PL 

diese URL Sie Antwort erhalten mit, von wo aus Sie Ihren Abstand zu bekommen.

$url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $from_latitude . "," . $from_longitude . "&destinations=" . $destination_latitude . "," . $destination_longitude . "&mode=driving&language=pl-PL"; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $response = curl_exec($ch); 
    curl_close($ch); 

    $response_a = json_decode($response, true); 

    $distance= $dist = $response_a['rows'][0]['elements'][0]['distance']['text']; 

hier $distance ist Ihr Abstand zwischen zwei lat lang von google API

1

Der Luftabstand ist das einzige, was Sie mit den Daten berechnen können, die Sie haben. Wenn Sie nur die Straßenentfernung von Hyderabad (und nicht den genauen Pfad) kennen müssen, ermitteln Sie die Straßenentfernung für jeden Standort in Ihrer Datenbank (z. B. mit Google Maps) und speichern sie in Ihrer Datenbank. Wenn Sie die Straßenentfernung dynamisch bestimmen möchten, müssen Sie nach einer API (möglicherweise Google Maps API) suchen, die Ihnen die Entfernung zwischen zwei Koordinaten angibt.

Wie auch immer, NO Sie können es nicht rein in SQL.

Verwandte Themen