ugrás a tartalomhoz

Települések 20 km-en belül

stan · 2011. Jan. 26. (Sze), 00.22
Az alábbi probléma elméleti kidolgozására lenne szükségem.

Szeretnék készíteni egy saját adatbázist, amely tartalmazza Magyarország összes települését. Ez nem bonyolult. Viszont szeretném, ha valaki beír egy települést az űrlapomba, akkor válaszként megkapná az összes olyan települést, amely az általa megadottól 20 km-es (vagy 5, vagy 10 stb...) körzetében megtalálható.

Az egyes települések GPS koordinátáit szintén be tudom táplálni az adatbázisomba. A kérdés csak az, hogy miként számolja ki a rendszer matematikailag két település távolságát a GPS koordináták alapján?

Ti hogy oldanátok meg a problémát?
 
1

Spatial

janoszen · 2011. Jan. 26. (Sze), 01.08
A MySQLben a MyISAM elvileg támogat Spatial indexeket, az valami olyasmi, amit Te akarsz. Részletesebben itt van erről szó: http://stackoverflow.com/questions/1006654/fastest-distance-lookup-given-latitude-longitude
2

A Doctrine-ban így

Protezis · 2011. Jan. 26. (Sze), 08.31
A Doctrine-ban így használhatsz ilyet. A kódot itt tanulmányozhatod.

Lényeg: minden rekordra kiszámítod a kérdéses várostól vett távolságát, és ezen távolságokra szűrsz. Előbbit a select, utóbbit a where klózban teheted meg.
3

Köszönöm

stan · 2011. Jan. 26. (Sze), 10.41
Az általatok belinkelt oldalon van egy hozzászólás, ami megemlít egy oldalt, ahol szerintem a legérthetőbben le van írva a probléma megoldása, érdemes átfutni rajta:

http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL
4

PostGIS

Török Gábor · 2011. Jan. 26. (Sze), 11.02