Fun Project : Scholen in Vlaanderen visueel voorstellen

Ik heb 2 zonen die nog naar school gaan, dus ik ben wel geïnteresseerd in onze scholen in Vlaanderen en welke soorten scholen er zijn. Op Onderwijs Vlaanderen vond ik een adreslijst van alle basisscholen in Vlaanderen, zowel kleuterschool als lagere scholen. En ik vond het wel leuk om daar eens mee te gaan spelen en dat visueel proberen voor te stellen.

Dus heb ik alle basisscholen hun adresinformatie gedownload in een csv bestand (3595 lijnen !). Vervolgens heb ik deze via “base“, een sqlite editor voor Mac, in een sqlite database omgezet. Aan deze database heb ik vervolgens de velden latitude en longitude toegevoegd.

Met behulp van de python library geopy heb ik dan een klein geocoding python script geschreven dat via Google API de adressen omzet in “latitude” en “longitude” coordinaten en deze dan bijschrijft in de database (dat duurt wel even…). En nadien heb ik met behulp van pygmaps deze map coordinaten in een lokale googlemap html file weggeschreven.

En dat geeft dan dit resultaat :

scholen-in-vlaanderen-585x358

Je kan doorklikken op bovenstaande om naar de volledige google map (1,2 MB!) te gaan en daar kan je zoomen tot op straatniveau. Als je hovert over een schoolpunt krijg je de schoolnaam te zien. Rode punten zijn hoofdvestigingen, groene punten zijn bijvestingen van een hoofdschool.

Zo op het eerste zicht hierboven lijkt het dat ons Vlaanderen land overvol zit met scholen, maar gezien het aantal mensen dat ieder jaar toeneemt om te kamperen voor schoolpoort, kan dat niet waar zijn 🙂

Als je zoomt wordt het allemaal wat overzichtelijker.

Changing DEV from SQLite to MySQL

The last few weeks I had quite a few problems with SQLite – whenever I was updating the database using threads (so multiple connections at the same time), fairly frequently a database access error would show up.

Regular usage was fine, no problems, and before I had less than 15 keywords to scan which worked fine as well. Even so, there really shouldn’t have been a problem, as I used the same number of threads to access the database.

The problem might even lie in the interaction between Dropbox, which I use to store my development work and the sqlite database in there as well.

So to solve the problem and because at some point I do need to switch over, I set up a local MySQL database and connected to it. Works fine, and seems to be heaps faster to process the returned data.

So far so good, I don’t seem to have any connection problems any more. And the MySQL Workbench to analyze your schema and tables and user accesses is a joy to work with !