sql >> Databasteknik >  >> RDS >> Mysql

Geografisk närhetssökning

Du bör förmodligen representera länder/städer som polygoner i DB och sedan använda OpenGIS-stil polygon skärningsfunktioner för att skära.

Men , MySQL gör det inte implementera polygonkorsning korrekt (endast MBR - Minimum Bounding Rectangle). Så detta tillvägagångssätt, även om det är korrekt i teorin, kommer helt enkelt inte att fungera för dig med MySQL. Du kanske vill överväga att flytta till Postgres.

Det du kan göra är att använda din DB:s MBR-korsningsfunktioner och komplettera dem med din egen kod som gör polygon/punktskärning (du kan hitta bibliotek som gör detta).



  1. UNION ALL vs OR-villkor i SQL-serverfrågan

  2. SQLite Ta bort

  3. Kartlägg en pytteliten som boolesk viloläge

  4. Simulerar MySQL:s ORDER BY FIELD() i Postgresql