Einzelnen Beitrag anzeigen

Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#20

Re: Eine Frage der Performance - T(Object)List oder Dyn. Arr

  Alt 12. Mai 2009, 09:00
So, da bin ich wieder. Der Internetanschluss im Wohnheim ist echt...

Was ich gestern eigentlich noch schreiben wollte:

Zitat von Daniel:
Kannst Du Deine Knoten irgendwie kategorisieren und somit die Gesamtmenge in beispielsweise 4 oder gar zehn Segmente einteilen? Wenn Du dann eine schnelle Entscheidungsfunktioon hättest, in welchem Container der gegebene Knoten liegen muss, sollte die Gesamtzugriffszeit insgesamt sinken.
Ja, kann ich, allerdings nur Grob:

Zu einem Knoten kann man sogenannten 'Tags' hinzufügen. Knoten, die zu einem Weg gehören, haben in der Regel außer dem "created_by" Tag keine Tags. Die zweite Gruppe wären dann sog. 'Point of Interests', also Bankautomaten, Brunnen, Cafés etc.

Die Frage ist, wie weit ich jetzt die zugrunde liegende Datenbank erweitere. Zu viele Tabellen schränken die Flexibilität ein. OSM ist sowieso ein sehr liberales Projekt.

Zitat:
Wenn sich Dein Programm wiederholt an einer Stelle befindet, an der es die numerische ID eines Knotens hat und dann das dazu passende Datenobjekt haben will, würde ich immer versuchen, dies mit Dictionaries zu lösen.
Ja, das passiert öfters:

XML-Code:
  <way id="25004068" version="3" timestamp="2008-09-20T14:32:19Z" uid="39330" user="chehrlic">
    <nd ref="271817426"/> <= Referenzen auf einen Knoten
    <nd ref="271817429"/>
    <nd ref="271817430"/>
    <nd ref="271817431"/>
    <nd ref="271817432"/>
    <nd ref="271817433"/>
    <nd ref="271817434"/>
    <nd ref="271817435"/>
    <nd ref="271817436"/>
    <nd ref="271817437"/>
    <nd ref="271817438"/>
    <nd ref="271817439"/>
    <nd ref="271817440"/>
    <nd ref="271817441"/>
    <nd ref="271817442"/>
    <nd ref="271817443"/>
    <nd ref="271817444"/>
    <nd ref="29956036"/>
    <nd ref="271817445"/>
    <nd ref="271817446"/>
    <nd ref="271817447"/>
    <nd ref="271817448"/>
    <nd ref="271817426"/>
    <tag k="created_by" v="Potlatch 0.9c"/>
    <tag k="landuse" v="industrial"/>
    <tag k="name" v="EADS/Airbus/Astrium"/>
  </way>
Wie man sieht, können der Anfangs- und der Endknoten auch identisch sein. Dann handelt es sich um einen geschlossenen Weg, was mit entsprechenden Tags nix anderes als eine Fläche ist.

Wie Hansa schon erwähnte, ein Link auf irgendeine Beispielimplementation (kann auch C# sein) wäre super.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat