Itt az osm2pgsql 2.0.0!

kami911 képe

Öt évvel az 1.0.0 verzió után megérkezett az osm2pgsql 2.0.0, amely jelentős változásokat hoz a felhasználók és fejlesztők számára egyaránt. Ez a verzió új lehetőségeket és fejlesztéseket kínál, így most még könnyebben kezelhető és bővíthető az osm2pgsql. Az osm2pgsql 2.0.0 egy fontos lépés a program modernizálása felé, amely eltávolítja a több mint egy évtizedes fejlesztés során felhalmozott, elavult elemeket. Ezek a változtatások lehetővé teszik a fejlesztők számára a korábbi problémák megoldását, és egyben megkönnyítik a további fejlesztéseket is.

Jelentős változtatások

  • A közbenső táblák régi formátuma és a régi, nem bucket típusú csomópontindex megszűnt.
  • A „gazetteer” kimenet (amelyet a Nominatim használ) eltávolításra került.
  • Több parancssori opció eltűnt, illetve szigorúbb ellenőrzést kapott.
  • Új könyvtári követelmények jelentek meg, és a Lua használata most már kötelező.
  • A flex Lua konfigurációban az add_row() függvény helyett az insert() függvényt kell használni.
  • Ellenőrizni kell, hogy az OSM objektumokon használt Lua függvények helyesen, a kettőspont-szintaxissal hívódnak meg.
  • A címkék nélküli objektumok és objektumattribútumok kezelése megváltozott.

A frissítési részletekért javasoljuk, hogy tekintsd meg a kézikönyv „Upgrading” függelékét. Ajánlatos először az 1.11.0 verzióra frissíteni, és az ott felmerülő esetleges problémákat megoldani, mielőtt a 2.0.0-ra váltasz.

Ez az első kiadás, amely a „pgsql” kimenet elavulását jelzi, ezért érdemes áttérni a „flex” kimenetre. Részletekért lásd az erre vonatkozó FAQ-bejegyzést.

Új funkciók a flex kimenetben

  • A kétlépcsős feldolgozás már nemcsak az út (way), hanem a reláció (relation) tagjait is támogatja.
  • Lehetőség van az azonosítóindex egyedi indexként történő megépítésére.
  • Az adatbázisban az indexek nevei beállíthatók.
  • Új after_nodes(), ways() és relations() feldolgozó függvények kerültek be a flex Lua konfigurációs fájlokba.
  • Az osm2pgsql tulajdonságai elérhetők a Lua nyelvben az osm2pgsql.properties táblán keresztül.
  • Új get_bbox() függvény adódott a geometriai elemekhez a Lua-ban.
  • Üres konfigurációs fájl is használható flex kimenetben, ami bizonyos speciális esetekben hasznos lehet.

Változások az általánosítási kódban

  • Csempéken alapuló generalizáló rendszer SQL-parancsokkal történő meghívása.
  • Javítás: ANALYZE nem fut „append” módban, ezt helyette az autovacuum kezeli.
  • Javítás: a hibák kezelése a szálakban most már helyesen leállítja a programot, ha szükséges.

Egyéb javítások és funkciók

  • A –flat-nodes opció nem-slim módban is használható, ha kevés a memória.
  • Javítás az egyel kevesebb lapkát generáló hiba esetén a „expire” kódban.
  • A tulajdonságváltozások későbbi adatbázisba mentése, hogy hibás működés esetén ne változzon az adatbázis.
  • Akár 100 hiányzó csomópont jelentése a bemeneti fájlban (debug logban).
  • Egyszerűsített kód a többpoligon relációkból történő területösszeállításhoz.
  • Replikáció: állapot becslése fájl alapján, ha az állapotinformáció nem elérhető.
  • A másolási (COPY) műveletek lezárása és ürítése csomópontok, utak és relációk után a flex kimenetben, hogy elkerüljük a hosszú ideig nyitva lévő COPY műveleteket.
  • Az új csomópontok és utak szülőinek keresésének elkerülése az adatbázis köztes táblájában, amely felgyorsítja a változásokat.