A BEÁLLÍTÁS
Van egy táblázatom, amely vonalláncokat tartalmaz. A vonalláncok több földrajzi pontból állnak. Minden pont egy szélességi és hosszúsági fokból áll. Megjegyzés: a vonallánc értéke SZÖVEGként kerül tárolásra az adatbázisban.
Tehát a táblázat egyik sora így nézhet ki:
id: egész szám
vonallánc: x1, y2, x2, y2, x3, y3, x4, y4
A PROBLÉMA
A Google Térkép egyszerre legfeljebb 1000 elem megjelenítését teszi lehetővé. Az én esetemben 850 vonalláncot jelenítek meg, és a jövőben sokkal többet kell hozzáadnom.
A KÉRDÉS
A vonalláncok közül jó néhány kapcsolódik egy vagy több másik vonallánchoz, ami azt jelenti, hogy ugyanazon a koordinátán kezdődnek és/vagy végződnek. Azt szeretném elérni, hogy megtaláljam a legjobb módszert az adatkészlet optimalizálására, hogy a végén összekötő vonalláncok egyesüljenek a DB táblában. Ez csökkenti a teljes elemszámot, amikor elemzem a DB táblát, és létrehozom a megjelenítési fájlt a Google Maps számára.
PÉLDA
Ebben a példában képzelje el, hogy az alfa (A,B,C) értékek földrajzi pontokat jelölnek. A nem optimalizált táblázat így nézhet ki:
optimalizálás előtt:
azonosító vonallánc
1 A, B, C
2 C, D
3 B, A
4 F, G, H
5 G, I
6 H, J
Optimalizálás után:
1 A, B, C, D
2 F, G, H, J
3 G, I
Tehát mi a legjobb módja az adatok optimalizálásának? Létezik olyan algoritmus, ami a legjobban működik? Van néhány megoldási ötletem, amelyeket megfogalmazok és kiegészítek, de ezek bőbeszédűnek és görcsösnek tűnnek.
Nem vagyok CS szakos, ezért elnézést a hanyag terminológiaért, és szóljon, ha valahol pontosításra van szükség. Kösz!
FYI.. MySQL DB-t használok. Nem használom a térbeli kiterjesztéseket. Ha van egy kínosan egyszerű megoldása, amely a térbeli kiterjesztéseket használja, akkor is szívesen hallanék róla.