Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> google map api / pobieranie punktów w określonym promieniu, optymalizacja skryptu
qbas-s
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 28.06.2009

Ostrzeżenie: (0%)
-----


posiadam prawie 3000 punktów do wyświetlenia na mapie.
Jeną z opcji jaką sobie życzy klient jest możliwość przefiltrowania markerów według promienia od wyznaczonej lokalizacji czyli np podaję, że jestem w Warszawie, wybieram promień 3km.

wszystko działa mi ładnie prócz aspektu wydajnościowego bo dla każdego punktu aktualnie wykonuję zapytanie do api:
  1. $query = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial' .
  2. '&origins=' . $origin['lat'] . ',' . $origin['lon'] .
  3. '&destinations=' . str_replace(',','.',$destination['lat']) . ',' . str_replace(',','.',$destination['lon']) .
  4. '&language=pl-PL&key=key';


po czym w instrukcji warunkowej sprawdzam sobie dystans pomiędzy punktami

  1. $output = file_get_contents($query);
  2. $output = json_decode($output);
  3.  
  4. $distance = $output->rows[0]->elements[0]->distance->value;
  5.  
  6. if ($distance < $choose_distance) {
  7. return true;
  8. }
  9. return false;


Dla prawie 3000 punktów powyższy kod wykonuje się adekwatną ilość razy.

Taki skrypt wykonuje się za długo przy takiej ilości danych, jak również wersja darmowa google api ma ograniczenie co do ilości zapytań w ciągu 24h. Jak mogę zoptymalizować ten skrypt? Czy mógłbym wysłać te wszystkie punkty w jednym zapytaniu tak abym z google dostał zwrotkę tylko z przefiltrowanymi danymi?

Ten post edytował qbas-s 3.07.2017, 12:13:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 12:20