Thursday 25 July 2013

Map 2014 - Absturz beim Bildaufbau

Testweise ist Map 2014 (ohne HF1) installiert. Da es ein Problem bei den FDO Providern gab habe ich auch die "providers.xml" gemäss dem KB Eintrag aktualisiert (http://usa.autodesk.com/getdoc/id=TS21699992).

Anschliessend kam es beim Bildaufbau immer zum Absturz. 



Schaut man in die zum "Crash Report" gehörende "dumpuserinfo.xml" ist dort unter anderem folgendes vermerkt:

<MethodToBlame>Autodesk.Map.IM.Display.GraphicsGeneration.FeatureSourceManager.FillFdoProvidersDictionary()</MethodToBlame>

In der Applicationlog.xml fanden sich auch einige ähnliche Einträge:

System.ArgumentException: An item with the same key has already been added.
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Autodesk.Map.IM.Display.GraphicsGeneration.FeatureSourceManager.FillFdoProvidersDictionary()
  


Schaut man sich die "providers.xml" aus dem KB Eintrag an, sieht man, dass es dort für SHP und SDF zwei Einträge gibt die sich im Namen aber nicht in der Version unterscheiden:

<Name>OSGeo.SHP.3.8</Name>
<Name>OSGeo.SHP.3.7</Name>


beide aber:
<Version>3.8.0.0</Version>
  
Mit einer "providers.xml" ohne diese doppelten Einträge funtkioniert auch wieder der Bildaufbau.

  

Thursday 11 July 2013

Textgrösse bei Labels

Die in den Map-Layern festgelegte Texthöhe führt zu anderen Textgrössen als bei AutoCAD Texten. Im Beispiel wird "Arial" verwendet und die Grösse "1" zugewiesen. Der Unterschied in der tatsächlichen Textgrösse zwischen dem Map-Layer und dem AutoCAD Text beträgt im Beispiel rund 1/3. Die Zahl "6"(siehe Screenshot) ist im AutoCAD M-Text genau 1 Meter hoch, der Map Text dagegen nur rund 0.71 Meter.
 
 Abbildung: Map Text in grün, AutoCAD MText in schwarz

Diese deutliche Differenz ergibt sich aus der unterschiedlichen Betrachtungsweise von "Texthöhe" die AutoCAD und Map-Darstellungsverwaltung haben. Wie genau die jeweilige Betrachtungsweise ist weiss ich nicht - bei AutoCAD wird wohl auf die "cap height", also auf die Grossbuchstaben abgestellt, bei Map werden dagegen auch noch weitere Parameter wie Ascender, Descender etc. berücksichtigt (siehe zu den typographischen Feinheiten z.B.:  Wikipedia).
 
Jedenfalls braucht man oft eine Textdarstellung in einer bestimmten Grösse. Um mit Map den Text tatsächlich in der gewünschten Grösse darzustellen muss der im Stil-Editor eingegebene Wert angepasst werden. Dafür ist - abhängig von der verwendeten Font-Familie - ein entsprechender Anpassungsfaktor erforderlich.

Vom Autodesk Support kam  die Angabe des Faktors für einige ausgewählte Fonts:

Cadastra     - 1.37
Arial        - 1.3969
Courier New  - 1.7504


Die Faktoren gelten bei der Verwendung von "Karteneinheiten". Um also einen Arial Text mit einer Schriftgrösse von 1 Meter in der Zeichnung zu erzeugen ist der Faktor 1.39 anzuwenden:
 
 Abbildung: Map Text in grün, AutoCAD MText in schwarz
 

Leider konnte die eigentliche Formel zum Errechnen des Faktors nicht zur Verfügung gestellt werden. Ich habe nach etwas Recherche aber auch keine Formel finden bzw. selber herleiten können. Aber man kann sich scheinbar mit einer einfachen aber nicht genauen Faustformel behelfen: 
Faktor = 1 / gemessene Höhe

Dazu setzt man die Textgrösse im Stil-Editor auf "1 m" und misst über den Befehl ABSTAND die tatsächliche Textgrösse in der Zeichnung.


Beispiel - Font "Old English Text MT" 
Textgrösse: 1 m, tatsächliche Texthöhe (gemessen an Zahl "5") : 0.676 - Faktor = 1.479

 
 Abbildung: Map Text in grün, AutoCAD MText in schwarz, Anzeigemassstab 1:50. 
Ob das für alle Fonts gleichermassen taugt kann ich im Augenblick auch noch nicht sagen. Ich bin immer noch auf der Suche nach der genauen Umrechnungsformel....