cimek.php

Első lépésként szükségünk van egy táblára, amely tartalmazza a magyarországi
településeket. (Ideális esetben a MOL kutak hivatalos listáját importálod ide. A
példában létrehozom a táblát és betöltök pár mintaadatot).

CREATE DATABASE IF NOT EXISTS mol_utvonal;
USE mol_utvonal;

CREATE TABLE settlements (
    id INT AUTO_INCREMENT PRIMARY KEY,
    zip_code VARCHAR(4) NOT NULL,
    name VARCHAR(100) NOT NULL,
    county VARCHAR(100) NOT NULL,
    has_mol BOOLEAN DEFAULT 1
);

-- Néhány mintaadat (ide töltheted fel majd az összes települést)
INSERT INTO settlements (zip_code, name, county, has_mol) VALUES
('2310', 'Szigetszentmiklós', 'Pest', 1),
('1097', 'Budapest', 'Budapest', 1),
('6720', 'Szeged', 'Csongrád-Csanád', 1),
('9021', 'Győr', 'Győr-Moson-Sopron', 1),
('4024', 'Debrecen', 'Hajdú-Bihar', 1),
('8000', 'Székesfehérvár', 'Fejér', 1),
('3525', 'Miskolc', 'Borsod-Abaúj-Zemplén', 1);

Megjegyzés: Az útvonaltervezéshez szükséged lesz egy ingyenes Google Maps API
kulcsra. Ezt lentebb jelöltem az index.php kódjában (YOUR_GOOGLE_MAPS_API_KEY).

MOL Útvonaltervező

Írj be egy települést vagy irányítószámot!


Mit csinál ez a rendszer pontosan?

1.  Intelligens kiegészítés (PHP + JS): Ahogy beírod a mezőbe, hogy "Sziget"
    (vagy akár az irányítószámot, hogy "231"), a JS a háttérben meghívja az
    api.php-t, ami azonnal visszaküldi a MOL kúttal rendelkező egyezéseket.
2.  Kényelmes hozzáadás: Kattintásra a település felkerül egy listára. Ezt az
    államot a JS végig egy tömbben (selectedCities) tárolja. Korlátlan számú
    települést megadhatsz egymás után.
3.  Útvonal optimalizálása:
      - Amikor rányomsz a tervezés gombra, elküldi a listát a Google térkép
        szerverének.
      - Az optimizeWaypoints: true paraméter utasítja az algoritmust az Utazó
        Ügynök probléma megoldására. Ha mondjuk megadod, hogy: Budapest (1),
        Debrecen (2), Győr (3), Miskolc (4), Ő felismeri, hogy földrajzilag
        logikátlan ide-oda ugrálni, és automatikusan átrendezi a listát pl:
        Budapest -> Győr -> Miskolc -> Debrecen -> Budapest sorrendbe.
4.  Távolságok kiírása: A kapott választ a rendszer szakaszokra (legs) bontva
    visszaadja. Ezt kiíratjuk egymás alá szép formátumban (Például:
    Szigetszentmiklós -> Budapest: 22 km (30 perc)), és a legvégén összesíti is
    a megtett távot.



Fontos:

 Ahhoz, hogy ez élesben működjön, a kód alján lévő
 <script src="..."> 
tag-ben a YOUR_GOOGLE_MAPS_API_KEY szöveget le kell cserélned a saját
 Google Cloud fiókodban igényelt Directions API kulcsra.