Das ist ziemlich kompliziert für mich. Ich habe eine Route, die eine Suche ist - das funktioniert ganz gut, außer dass ich nicht nach Postleitzahl suchen kann, um die Lat und eine bestimmte Postleitzahl zu finden. Das heißt, ich kann den Lat und Long ausarbeiten, aber ich bin mir nicht sicher, wie ich es in meine bestehende Abfrage integrieren soll. Diese Abfrage ist die Suchabfrage ohne PLZ:Get durch Breiten- und Längengrad in Laravel 5 mit anderen Joins
$query = DB::table('dogs');
$query->leftJoin('dog_addresses','dogs.id','=','dog_addresses.dog_id');
$query->leftJoin('dog_videos','dogs.id','=','dogs_videos.dog_id');
$query->leftJoin('dogs_breeds','dogs.breed_id','=','dogs_breeds.id');
if($request->input("breed") && $request->input("breed") != "" && $request->input("breed") != "any")
{
$breed = Dog_Breed::where("breed_name", $request->input("breed"))->first();
$query->where('dogs.breed_id', $breed->id);
}
$results = $query->get();
ich etwas zu der Abfrage hinzufügen, um die Breite und Länge der Postleitzahl zu erhalten:
if($request->input("postcode"))
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, "http://api.postcodes.io/postcodes/" . $request->input('postcode'));
$result = json_decode(curl_exec($curl));
curl_close($curl);
$postcode_lat = $result->result->latitude;
$postcode_long = $result->result->longitude;
}
Dies lässt mich meine Postleitzahl Breitengrad und Länge erhalten . Aber ich weiß dann nicht, wie man die Hunde an Ort und Stelle erhält, basierend auf den Lat und langen Spalten, die in der Tabelle dog_addresses vorhanden sind, die mit dem Hundetisch verbunden ist. Wie mache ich das?
Also, wenn meine dog_addresses Tabelle die Spalten Lat und Long hat.
So Hunde:
id | user_id | dog_name | age
dog_addresses:
id | dog_id | address_line_1 | town | postcode | lat | long
Also für meine Frage muss ich alle Hunde bekommen, wo gezüchtet ID 1 ist, aber ich möchte innere Videos an, damit ich Erhalten Sie alle Videoinformationen und Adressinformationen, aber ich möchte auch die Reihenfolge der zurückgegebenen Hunde nach ihrer Nähe zu meiner eingegebenen Postleitzahl sortieren, basierend auf lat und long.
Ich bin sehr verwirrt. Ich fand das:
(3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance
Aber ich bin immer noch nicht sicher, wie es zu integrieren, oder welchen Nutzen es für mich ist. Bitte helfen
überprüfen Sie meine Antwort, wenn es für Sie funktioniert – jaysingkar