GNavigia Cli­ents

Er­wei­te­run­gen, die zum Um­fang der Aus­lie­fe­rung ge­hö­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­li­tät aus­ge­lie­fert. Sie müs­sen sie nicht be­nut­zen, aber wenn Sie die­se nut­zen wol­len, müs­sen sie ge­wis­se Voraus­set­zun­gen da­für schaf­fen.

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

Die An­zei­ge der von HOLUX-Emp­fän­gern 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­me­nü un­ter Cli­ents ein­hängt. Die­se Funk­tio­na­li­tät ist ab Ver­sion 2.6.9.0 ver­füg­bar, sie­he Pro­gramm GNavigia. Sie funk­tio­niert na­tur­ge­mäß nur da, wo die Ge­schwin­dig­keit als ei­gen­stän­di­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­li­tät be­nut­zen. Stel­len Sie si­cher, dass Sie nicht ganz all­ge­mein im Me­nü 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üs­sen 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ön­nen, 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äh­len Sie den Rei­ter Sys­tem-DSN. Wäh­len 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 aus­füh­ren. Na­ment­lich:

Soun­dex ( http://de.wi­ki­pe­dia.org/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.org/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 auf­wän­di­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 zu­rü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 (zu­nä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 Me­nü Cli­ents/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­ge­löst. Sie müs­sen 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 ge­hö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 zu­nächst die Maß­stab­szahl 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ün­den soll­ten Sie für die Orts­su­che kei­nen all­zu klei­nen Wert ein­tra­gen. Für Städ­te wie Bonn hat sich 1:25000 be­währt, für Mün­chen wer­den Sie ei­ne grö­ße­re Zahl wäh­len müs­sen, da­mit Stra­ßen am Stadt­rand ge­fun­den wer­den kön­nen.

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än­ger 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än­ge 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­ab­hän­gig 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ön­nen 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­ge­wä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 ge­fä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üs­sen, wäh­len Sie zu­vor ei­ne klei­ne Maß­stab­szahl. 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ön­nen wei­te­re Al­go­rith­men im­ple­men­tie­ren, müs­sen 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.org/wi­ki/Le­vens­ht­ein_­di­stan­ce)
DROP FUNCTION levenshtein(text,text);
CREATE FUNCTION levenshtein (text,text)
RETURNS int AS '$libdir/fuzzystrmatch','levenshtein'
LANGUAGE 'C' WITH (iscachable, isstrict);
Me­ta­pho­ne ( http://en.wi­ki­pe­dia.org/wi­ki/Me­ta­pho­ne)
DROP FUNCTION metaphone (text,int);
CREATE FUNCTION metaphone (text,int)
RETURNS text AS '$libdir/fuzzystrmatch','metaphone'
LANGUAGE 'C' WITH (iscachable, isstrict);
Dme­ta­pho­ne ( http://en.wi­ki­pe­dia.org/wi­ki/Double_Me­ta­pho­ne)
DROP FUNCTION dmetaphone (text,int);
CREATE FUNCTION dmetaphone (text,int)
RETURNS text AS '$libdir/fuzzystrmatch','dmetaphone'
LANGUAGE 'C' WITH (iscachable, isstrict);