GNavigia Cli­ents

Er­wei­te­run­gen, die zum Um­fang der Aus­lie­fe­rung gehören

Was Sie im vor­aus­ge­hen­den Ka­pi­tel pro­gram­miert ha­ben, fas­se ich im Fol­gen­den un­ter der Be­zeich­nung «GNavigia Cli­ent» zu­sam­men. Und da­mit Sie se­hen, dass ich selbst die­ser Art, GNavigia zu er­wei­tern, ei­ne große Be­deu­tung bei­mes­se, wer­den zu­sam­men mit dem Pro­gramm ein Cli­ent zur De­mons­tra­ti­on und wei­te­re mit «rea­ler» Funk­tio­na­lität aus­ge­lie­fert. Sie müssen sie nicht be­nut­zen, aber wenn Sie die­se nut­zen wol­len, müssen sie ge­wis­se Voraus­set­zun­gen dafür schaf­fen.

HOLUX Cli­ent zur An­zei­ge der Ge­schwin­dig­keit

Die An­zei­ge der von HOLUX-Empfängern re­gis­trier­ten Ge­schwin­dig­keit er­folgt über ei­ne spe­zi­el­le Er­wei­te­rung, die sich im Haupt­menü un­ter Cli­ents einhängt. Die­se Funk­tio­na­lität ist ab Ver­si­on 2.6.9.0 verfügbar, sie­he Pro­gramm GNavigia. Sie funk­tio­niert na­tur­gemäß nur da, wo die Ge­schwin­dig­keit als ei­genständi­ge Größe ge­spei­chert wur­de. Schal­ten Sie an­de­re An­zei­gen aus, wenn Sie die­se Funk­tio­na­lität be­nut­zen. Stel­len Sie si­cher, dass Sie nicht ganz all­ge­mein im Menü An­sicht die An­zei­ge der Pro­fil­fens­ter aus­ge­schal­tet ha­ben. Da muss ein Ha­ken dran sein!

Adres­sen im OSM Da­ten­be­stand su­chen

1. Vor­be­rei­tung der Da­ten­bank:

Um den fol­gen­den Ab­schnitt zu ver­ste­hen müssen Sie die Sei­te «OSM Da­ten nut­zen» durch­ge­ackert und OSM Da­ten in ei­ne Post­greSQL Da­ten­bank ein­ge­spielt ha­ben. Fol­gen­de Er­wei­te­run­gen des Mo­dells sind er­for­der­lich, da­mit Sie su­chen können, hier am Bei­spiel von XP:
  • Öff­nen Sie un­ter XP Sys­tem­steue­rung/Ver­wal­tung/ODBC-Daten­quel­len oder star­ten Sie un­ter Win­dows 7 als Ad­mi­nis­tra­tor das Pro­gramm C:\Win­dows\SysWOW64\odb­cad32.exe. Wählen Sie den Rei­ter Sys­tem-DSN. Wählen Sie die Schalt­fläche Kon­fi­gu­rie­ren. Ge­ben Sie die fol­gen­den Da­ten ein. Er­set­zen Sie den Da­ten­ban­kna­men durch den, den Sie für die OSM-Daten be­nutzt ha­ben.

  • Si­chern Sie die Ein­stel­lun­gen mit­tels Sa­ve.
  • Fügen Sie der Da­ten­bank Funk­tio­nen hin­zu, die die Su­che ausführen. Na­ment­lich:
Soun­dex ( http://­de.wi­ki­pe­dia.or­g/wi­ki/Soun­dex )
DROP FUNCTION so­un­dex(text);
CREATE FUNCTION so­un­dex(text)
RETURNS text AS '$lib­dir/­fuz­zystrmatch', 'so­un­dex'
LANGUAGE 'C' WITH (is­cacha­ble, iss­trict);
Ei­ne Be­schrei­bung zur Im­ple­men­tie­rung von Funk­tio­nen fin­det sich un­ter:
http://www.post­gres­ql.or­g/­docs/­cur­rent/­sta­tic/sql-crea­te­func­ti­on.html
Der hier vor­ge­stell­te Cli­ent nutzt al­lein die schar­fe Su­che und die Soun­dex-Suche. Der Cli­ent stellt auch nicht die Su­che selbst be­reit, son­dern steu­ert le­dig­lich die Fähig­kei­ten der Da­ten­bank an. Die aufwändi­ge Im­ple­men­tie­rung des Cli­ents und die Zu­sam­men­stel­lung der fol­gen­den Suchal­go­rith­men geht zurück auf frei­zeit-biking.de (his­to­ri­sche Do­main).

2. Su­chen und er­folg­reich po­si­tio­nie­ren:

Um ei­nen Ort zu su­chen, ge­hen Sie wie folgt vor:
  • Öff­nen Sie ei­ne neue Da­tei (zunächst oh­ne Vor­la­ge) und blen­den Sie das Ver­wal­tungs­fens­ter aus.
  • Schal­ten Sie An­sicht/Hin­ter­grund­bild dar­stel­len ein.
  • Star­ten Sie aus dem Menü Cli­ent­s/Adress­su­che.
Die Adress­su­che selbst hat ei­ni­ge Be­son­der­hei­ten, die Sie ken­nen soll­ten. Wenn Sie nur ein Er­geb­nis ge­fun­den ha­ben wird die An­zei­ge im­pli­zit aus­gelöst. Sie müssen zu­dem zu­erst den Ort su­chen und dann die Straße. Die OSM-Daten ha­ben (min­des­tens) ei­nen ent­schei­den­den Mo­dell­feh­ler: Es gibt kei­nen Ver­weis von ei­ner Straße auf den Ort, zu dem sie gehört. Die Su­che muss da­her im­mer geo­me­trisch er­fol­gen. Der Cli­ent sucht da­zu in ei­nem Be­reich, der in je­de Rich­tung et­wa 30% über den sicht­ba­ren Kar­ten­aus­schnitt hin­aus­geht. Soll­ten Sie kei­nen Tref­fer be­kom­men, ob­gleich Sie wis­sen, dass die Straße exis­tiert, prüfen Sie zunächst die Maß­stabs­zahl und ver­größern sie die­se! Der Rei­ter Op­tio­nen er­laubt die An­ga­be der Maßstäbe, die An­wen­dung fin­den, wenn das Er­geb­nis der Orts- oder Straßen­su­che zur An­zei­ge kommt. Aus den zu­vor ge­nann­ten Gründen soll­ten Sie für die Orts­su­che kei­nen all­zu klei­nen Wert ein­tra­gen. Für Städte wie Bonn hat sich 1:25000 bewährt, für München wer­den Sie ei­ne größere Zahl wählen müssen, da­mit Straßen am Stadt­rand ge­fun­den wer­den können.   Die Schalt­fläche «Un­schar­fe Su­che» in­iti­iert ei­ne Su­che nach dem Soun­dex Al­go­rith­mus. Da­bei wird an den An­fang sor­tiert, was dem Na­men nach auch bei ex­ak­ter Su­che als Er­geb­nis ge­lie­fert wor­den wäre. Al­les an­de­re wird so an­ge­zeigt, wie es die Sor­tie­rung der Da­ten­bank lie­fert. Die un­schar­fe oder auch pho­ne­ti­sche oder fuz­zy Su­che läuft sehr viel länger als die ex­ak­te. Bei ge­nau­er Kennt­nis des Orts­na­mens macht ihr Ge­brauch we­nig Sinn.
OSM Da­ten wer­den von En­thu­sias­ten zu­sam­men­ge­stellt, die ger­ne auch mal über das Ziel hin­aus schießen. Das ma­ni­fes­tiert sich vor al­lem in der Tat­sa­che, dass ei­ni­ge Er­geb­nis­se dop­pelt auf­tre­ten. Sind auch Länge und Brei­te iden­tisch, wer­den sie aus­sor­tiert. Su­chen Sie mal nach «Wei­ler»!
Wich­tig zu wis­sen ist auch, dass die Su­che un­abhängig ist vom WMS Ser­ver, der an­ge­spro­chen wird. Die Su­che po­si­tio­niert nur das Kar­ten­bild. Sie können al­so in der OSM-Daten­bank nach Bonn/Se­bas­tian­straße su­chen und ein Hin­ter­grund­bild von ei­nem NRW-DGK-5 Ser­vice er­hal­ten, wenn die­ser als ak­ti­ver Ser­vice aus­gewählt ist! All­ge­mein gilt, dass der zu­letzt be­nutz­te Ser­vice bei ei­ner neu­en Kar­te auf­ge­ru­fen wird. Und be­den­ken Sie auch, dass bei ei­ner neu­en Kar­te die An­sicht des Hin­ter­grund­bil­des aus­ge­schal­tet ist!



3. Als Vor­la­ge spei­chern

Es gibt noch ei­ne Rei­he wei­te­rer Vor­ein­stel­lun­gen, die Sie ma­chen wer­den , be­vor Sie ei­ne Kar­ten­an­sicht ha­ben, die Ih­nen gefällt. Spei­chern Sie da­her die ak­tu­el­le Kar­ten­an­sicht «als Vor­la­ge». Und da­mit Sie beim Auf­star­ten nicht zu lan­ge auf das Er­geb­nis war­ten müssen, wählen Sie zu­vor ei­ne klei­ne Maß­stabs­zahl. Wenn das Hin­ter­grund­bild dann nicht mehr an­ge­zeigt wird - um­so bes­ser. Be­den­ken Sie, dass bei der nächs­ten Su­che, die auf die­ser Vor­la­gen­da­tei auf­setzt, wie­der der Maßstab so ein­ge­stellt wird, wie Sie das auf dem Rei­ter Op­tio­nen an­ge­ge­ben ha­ben.

4. Vor­schläge für ei­ge­ne Cli­ents

Sie können wei­te­re Al­go­rith­men im­ple­men­tie­ren, müssen dann aber die Metho­den selbst als Cli­ents im­ple­men­tie­ren. Das er­for­dert die Be­reit­stel­lung ei­ge­ner Dia­lo­ge! Bei­spie­le für Such­funk­tio­nen:

Le­vens­ht­ein ( http://en.wi­ki­pe­dia.or­g/wi­ki/Le­vens­ht­ein_­di­stan­ce)
DROP FUNCTION le­vens­ht­ein(text,text);
CREATE FUNCTION le­vens­ht­ein (text,text)
RETURNS int AS '$lib­dir/­fuz­zystrmatch','le­vens­ht­ein'
LANGUAGE 'C' WITH (is­cacha­ble, iss­trict);
Me­ta­pho­ne ( http://en.wi­ki­pe­dia.or­g/wi­ki/Me­ta­pho­ne)
DROP FUNCTION me­ta­pho­ne (text,int);
CREATE FUNCTION me­ta­pho­ne (text,int)
RETURNS text AS '$lib­dir/­fuz­zystrmatch','me­ta­pho­ne'
LANGUAGE 'C' WITH (is­cacha­ble, iss­trict);
Dme­ta­pho­ne ( http://en.wi­ki­pe­dia.or­g/wi­ki/Double_Me­ta­pho­ne)
DROP FUNCTION dme­ta­pho­ne (text,int);
CREATE FUNCTION dme­ta­pho­ne (text,int)
RETURNS text AS '$lib­dir/­fuz­zystrmatch','dme­ta­pho­ne'
LANGUAGE 'C' WITH (is­cacha­ble, iss­trict);