Pojawia się pytanie porównujące możliwości różnych baz danych przestrzennych, GIS:PostGIS/PostgreSQL vs. MySql vs. SQL Server? , gdzie Postgis jest dość wyraźnym zwycięzcą nad MySQL.
Niezależnie od tego, czy używasz MySQL, czy Postgis, byłoby znacznie lepiej, jeśli możesz, przechowując wartości szerokości i długości geograficznej jako geometrię/geografię (punkt), jako funkcje, których można użyć do znalezienia rzeczy w pobliżu, ST_Distance , ST_Distance_Sphere i bardziej niejasny <->operator , zobacz Znajdź n najbliższych sąsiadów dla dany punkt za pomocą PostGIS? (na przykład użycie) działają bezpośrednio na kolumnach geometrii/geografii. Co ważniejsze, możesz dodać indeks przestrzenny , które te funkcje muszą działać poprawnie, co znacznie przewyższa wyniki wyszukiwania w oddzielnie indeksowanych kolumnach szerokości i długości geograficznej (będzie to zależeć od rozmiaru tabeli, ale będzie rosło wraz ze wzrostem rozmiaru tabeli),
W Postgis możesz przekonwertować szerokość i długość na geometrię za pomocą:
alter table mytable add column geom (Geometry, 4326);
update mytable set geom = ST_SetSRID(ST_MakePoint(lon, lat), 4326)
create index ix_spatial_mytable_geom on mytable using gist(geom);
W tym momencie będziesz w stanie wykonywać bardzo wydajne zapytania, aby znaleźć punkty w pobliżu innych punktów, korzystając z dowolnego z przykładów w powyższych linkach.
Możesz robić podobne rzeczy w MySQL, chociaż nie obsługuje on przestrzennego systemu odniesienia, tj. 4326 powyżej, co oznacza szerokość/długość, i brakuje w nim funkcji ST_MakePoint, więc musiałbyś użyć STGeomFromText i połączyć lat/ lon razem, aby zrobić PUNKT. Robi również wszystko we współrzędnych planarnych, jak stwierdzili Claudio i inni, co nie stanowi problemu w przypadku Postgis.
Przepraszam za długą i nieco niejasną odpowiedź, ale po różnych migracjach między bazami danych na dużych ilościach danych (MySQL, SQL Server i Postgres/GIS) i popełnieniu wielu błędów po drodze, mam nadzieję, że uda mi się rozpocząć we właściwym kierunku (i dodaj trochę przyszłej korekty, jeśli chcesz zacząć korzystać z innej funkcji przestrzennej, którą Postigs ma w szczegółach).