Osoitteet automaattisesti?

Started by ioxo, 21.11.24 - klo:17:00

Previous topic - Next topic

ioxo

Hei,

Aikoinaan oli hyvin integroitu Googlen osoitehaku, joka oli enemmän kuin kätevä.

Posti jakaa avoimena datana osoitetietoja. En tiedä miten kattava tieto on kun omaa osoitetta ei sieltä löytynyt ja olen kumminkin asunut  ~8 vuotta samassa osoitteessa, mutta muuttaessa oli uusi (katu).

Tein pythonilla skriptin, joka hakee uusimman datan ja parsii sen sqlite3 tietokantaan. Tietokantaa voi käyttää pienimuotoiseen hakuun. Tuon ei ole tarkoitus olla kokonainen versio vaan pieni demo. Se että kehitänkö sitä edelleen niin saa nähdä :). PHP lienee nopeampi kieli (ajettavana) kuin python. Skriptillä voi myös pyörittää pienimuotoista api serveriä, jolla saa etsittyä dataa ja katsottua miten nopea datan haku on. Aluksi olin tekemässä Go:lla tuota, mutta se ei oikein tykännyt isosta tekstitiedostosta (kursori ei pysynyt rivin alkupisteessä).

Pieni huomio semmoisesta, että postin data on pakattuna noin ~5megaa, purettuna noin 100megaa, sqlite tietokannassa ~16megaa. Tietokantaan ajo kannattaa tehdä tehokkaalla koneella (normi pöytäkone lienee tarpeeksi tehokas).

Tuon osoitejutun pystyy myös pitämään erillisenä palveluna ja vaikka sqlite:llä (esim jos käyttää dockeria), koska tietoja pelkästään luetaan. Myös aika löyhällä tietoturvalla, ainoa haitta on että tuolla voi kuormittaa palvelinta, mutta jollain X-API headerillä tuon saisi rajattua...


Semmoinen vinkki kun tekee osoitehaun. Haun pystyy tekemään esim. "Manner" tai sitten "20 Manner", jälkimmäinen tekee nopeamman täsmäiskun postinumerolle. Tämä vinkki vitosena että jälkimmäinen toimii myös navigaattorissa (ainakin waze) :).

'Check it out' osoitteesta:

https://gist.github.com/ioxo/ad3a0252f705498bb8fe79c03ad7b3ed

-Juho

 

ioxo

Jos jotakuta  kiinnostaaa niin kellotin huvikseni tuon skriptin...


KELLOTUS

tehty komennolla:
time python3 main.py init1
time python3 main.py init2


kone cpu: i5-8250U CPU @ 1.60GHz muisti: 8064MiB

init1
real    14m29.425s
user    3m40.542s
sys    7m14.921s

init2:

real    39m4.497s
user    5m41.111s
sys    20m15.272s

ioxo

Sori, että spämmään... sitä vain, että osoitetiedoista löytyy sittenkin oma osoite. Eli lienee ihan kattava. Voinee myös veikata että Googlen Suomen osoitetiedot voivat olla peräisin kyseisestä tiedostosta.