Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] promień (km) na zakres koordynatów (długość szerokośc geograficzna)
neverever
post 26.06.2007, 22:50:20
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Witajcie, może nie ten dział ale nie wiem czy jest lepszy na to...

Do rzeczy.
"Mam" bardzo dużą bazę punktów geograficznych w postaci: name, lat, long ...
teraz muszę wybrać z tej bazy wszystkie punkty znajdujące się w zadanym promieniu od podanego.
tj. np. wszystkie w promieniu 25km od punktu x,y

Rzecz jasna, by wybrać je z bazy trza by jakoś wyliczyć zakresy długości i szerokosci geograficznej dla zadanego punktu i promienia ...czyli że np dla punktu:
32.9697, -96.80322 dla promienia 25km będzie zakres lat0-lat1, long0-long1

Mam nadzieję że jasno wyjaśniłem...

Jak coś takiego osiągnąć? ...może ktoś ma odpowiedni kod?


--------------------
neverever
Go to the top of the page
+Quote Post
domis86
post 26.06.2007, 23:53:56
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


O stary. Podstawówka się kłania. Słyszałeś o twierdzeniu Pitagorasa? snitch.gif

aKfradat + bKfadrat = cKfadrat

czyli

Pierwiastek(aKfradat + bKfadrat) = c


a Ciebie interesują punkty spelniające nierówność:
Pierwiastek(xKfradat +yKfadrat) < r

gdzie r moze byc np 25
aarambo.gif


--
kfadrat nie moge laugh.gif

~kwiateusz
Go to the top of the page
+Quote Post
php programmer
post 27.06.2007, 08:29:17
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Szkielet rozwiązania

  1. <?php
  2. function ZnajdźWPromieniu(punkt,promień,tablica_wszystkich_punktów){
  3.  
  4. foreach (tablica_wszystkich_punktów as jeden_punkt) {
  5. if (prommień >= JakaOdległośćPitagoras(punkt,jeden_punkt) )
  6.  tablica_wyników[] = jeden_punkt;
  7. return tablica_wyników;
  8.  
  9. }
  10.  
  11. }
  12. ?>
Go to the top of the page
+Quote Post
user2
post 27.06.2007, 16:55:12
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 26.01.2005

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


Niestety jesteście w błędzie. Przyjmujecie Ziemię jakby była płaska, a nie jest biggrin.gif

Ostatnio robiłem prawie identyczny skrypt i okazało się, że Pitagoras nie zdaje egzaminu, bo to są współrzędne sferyczne, a nie "kfadratowe" smile.gif

Najlepiej podam linka: http://www.weberdev.com/get_example.php3?c...8&mode=text

Tam jest pięknie wyjaśnione jak się liczy odległości po współrzędnych geograficznych.
Go to the top of the page
+Quote Post
domis86
post 27.06.2007, 17:05:09
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


No racja, ale Pitagoras jest dobry dla małych odległosci -> powiedzmy ~1000km biggrin.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 16:48