![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem z zaprojektowaniem tabeli sql z miejscowościami i ich współrzędnymi. Mogę je zapisywać do bazy danych w dowolnym formacie, ale nie mam pojęcia jak ułożyć te tabele, żeby nie zabić mysql'a. Problem wygląda tak: posiadam współrzędne punktu (używam Google Maps Api, ale to bez znaczenia) w postaci $x i $y. Teraz chciałbym stworzyć systemik, który podawałby najbliższą miejscowość od tych współrzędnych z tabeli mysql. Powiedzmy szkic tabel wyglądałby tak: id_dzielnicy | id_miasta | nazwa_dzielnicy | współrzędne x | współrzędne y id_miasta | nazwa_miasta | dodatkowe opcje np. co do markera (ta tabela mniej istotna W php mam wartości współrzędnych punktu. ($x i $y) I teraz problem bo nie wiem, czy tak jest dobrze i nie mam pojęcia jak w sql zabrać się za pytanie, żeby znajdował te najbliższe punkty... Proszę o pomoc. Jeśli coś niejasne - wyjaśnię. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie powinno się to liczyć według promienia
Chociaż ciut szybciej działa według wartości bezwzględnej różnicy współrzędnych:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 15 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jesli nie pobieramy informacji o roznicy odleglosci pomiedzy dwoma punktami (tylko uzywamy jej do sortowania) to mozna pominac pierwiastkowanie dzieki czemu znacznie przyspieszymy obliczenia, czyli zamiast:
uzyc:
Ten post edytował osiris 19.07.2007, 15:44:43 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jesli nie pobieramy informacji o roznicy odleglosci pomiedzy dwoma punktami (tylko uzywamy jej do sortowania) to mozna pominac pierwiastkowanie dzieki czemu znacznie przyspieszymy obliczenia Należy pamiętać, że Ziemia jest kulą, więc dwa punkty, które są bardzo blisko siebie w okolicach bieguna liczone tą metodą będą od siebie oddalone tak samo jak np. dwa punkty po przeciwnej stronie kuli ziemskiej na równiku. Zapytanie, jakie należy zadać do SQLa jest z tego powodu nieco bardziej skomplikowane: |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 12:37 |