Wie berechnet man die Entfernung zwischen zwei Markierungen in Google Maps V3 (ähnlich wie bei der distanceFrom
Funktion inV2.)
Danke.
Wie berechnet man die Entfernung zwischen zwei Markierungen in Google Maps V3 (ähnlich wie bei der distanceFrom
Funktion inV2.)
Danke.
Erstens: Beziehen Sie sich auf die Entfernung, d. h. die Länge des gesamten Weges, oder möchten Sie nur die Verschiebung (geradlinige Entfernung) wissen? Wie ich sehe, weist hier niemand auf den Unterschied zwischen Entfernung und Verschiebung hin. Für die Entfernung berechnen Sie jeden Routenpunkt, der durch JSON/XML-Daten gegeben ist, für die Verschiebung gibt es eine integrierte Lösung mit Spherical
Klasse
//calculates distance between two points in km's
function calcDistance(p1, p2) {
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
}
In PHP, mit Google Map Distance Matrix API:
//Get the Driving(Mode) distance between two Geo-location points(Latitude, Longitude) pair.
function get_distance($lat1, $lat2, $long1, $long2)
{
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving"."&units=imperial";
//You can request distance data for different travel modes, request distance data in different units such as kilometers or miles, and estimate travel time in traffic.
try{
$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);
//Invalid request OR Empty response
if(isset($response_a['error_message']) || empty($response_a['rows']))
throw new Exception($response_a['error_message']);
} catch(Exception $e){
//Handle error here.
return [];
}
//The unit parameter in the request URL only affects the text displayed within distance fields. The distance fields in response also contain values that are always expressed in meters.
$dist = $response_a['rows'][0]['elements'][0]['distance']['text'];
$time = $response_a['rows'][0]['elements'][0]['duration']['text'];
return ['distance' => $dist, 'time' => $time];
}
Referenz: Distance Matrix API-Anfrage und -Antwort
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
stackoverflow.com/a/7997732/1458162