Hallo!
Ich habe folgende Frage:
Ich habe Höhenlinien mit den entsprechenden Höhenangaben in der Attributtabelle (Abstand 0,5m). Nun möchte ich jede Linie in 5m und 10m Schritten einer bestimmten Farbe zuordnen.
Das heißt die Höhenlinien 555,565,575.... soll z.b. braun sein und 560,570,580,.... sollen z.b. rot sein.
Gibt es in Zuge der Symbology eine Möglichkeit? Da ich ziemlich viele Werte habe ist das händische Heraussuchen aller entsprechenden Höhen unter "Category/add values" etwas mühsam.
Und unter "Quantities" ist auch nicht das richtige für meine Fragestellung dabei, oder?
Ich hab mir auch schon überlegt, ob ich nicht beim Selektieren (select by attributes) eingeben kann, dass er in der Spalte "elevation" alle jene Linien markieren soll, die durch 10 teilbar sind oder eben durch 5. Dann könnte ich die markierten Linien exportieren und gesondert mit eigener Farbe darstellen. Nur hab ich keine Ahnung, welche Formel oder welches Skript ich eingeben müsste!!
Ich hoffe, ich habe mich verständlich ausgedrückt!
Vielleicht kann mir ja jemand helfen.
Danke Petra
Ich habe folgende Frage:
Ich habe Höhenlinien mit den entsprechenden Höhenangaben in der Attributtabelle (Abstand 0,5m). Nun möchte ich jede Linie in 5m und 10m Schritten einer bestimmten Farbe zuordnen.
Das heißt die Höhenlinien 555,565,575.... soll z.b. braun sein und 560,570,580,.... sollen z.b. rot sein.
Gibt es in Zuge der Symbology eine Möglichkeit? Da ich ziemlich viele Werte habe ist das händische Heraussuchen aller entsprechenden Höhen unter "Category/add values" etwas mühsam.
Und unter "Quantities" ist auch nicht das richtige für meine Fragestellung dabei, oder?
Ich hab mir auch schon überlegt, ob ich nicht beim Selektieren (select by attributes) eingeben kann, dass er in der Spalte "elevation" alle jene Linien markieren soll, die durch 10 teilbar sind oder eben durch 5. Dann könnte ich die markierten Linien exportieren und gesondert mit eigener Farbe darstellen. Nur hab ich keine Ahnung, welche Formel oder welches Skript ich eingeben müsste!!
Ich hoffe, ich habe mich verständlich ausgedrückt!
Vielleicht kann mir ja jemand helfen.
Danke Petra
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Mo., 28.06.2010 - 17:48
Permalinkfür die Symbologie habe ich keine direkte Lösung parat. Selektieren oder verschiedenfarbig labeln ist aber kein Problem:
MOD ( "elevation" , 5) = 0 AND MOD ( "elevation" , 10) <> 0
selektiert die durch 5 (nicht aber die durch 10) teilbaren Linien
MOD ( "elevation" , 10) = 0
die durch 10 teilbaren Linien.
Gruß, Mx.
Gespeichert von aquadrat am Di., 29.06.2010 - 09:51
PermalinkDanke für die rasche Antwort.
Ich habe es natürlich gleich ausprobiert:
Beim Selektieren funktionieren die Formeln. Nur leider markiert er mir bei den durch 10 teilbaren Linien auch die mit Kommastellen mit. Z.B. markiert er 510 und 510,5.
Wenn ich die Formel eingebe für die durch 5 teilbaren Höhenlinien nimmt er zwar die Formel, aber markiert keine Linien, obwohl Höhen wie 505, .. vorhanden sind.
Ich hab hier auch schon probiert neue Flields mit unterschiedlichen typs (float, double) anzulegen und hab mir die Höhendaten neu hineinkopiert. Hilft auch nix.
Im Labelmanager nimmt er bei 'Label Expression' die Formeln leider gar nicht an. Hab schon alles mögliche probiert: mit und ohne Blanks , keine Ausrufezeichen sondern Klammern, als JSkript oder VBSkript, ...
Mache ich was falsch?
LG Petra
Gespeichert von Maxilla am Do., 01.07.2010 - 11:12
PermalinkIch weiß gerade nicht, wie man in sql einen Wert auf seine Ganzzahligkeit prüft. Als Umleitung könntest du deine Höhen noch mal zusätzlich in ein Integerfeld (z.B. [elev_int])] schreiben und die Abfrage folgendermaßen erweitern:
MOD ( "elevation" , 10) = 0 AND "elev_int" = "elevation"
Dadurch bleiben die Werte mit Dezimalstellen unselektiert.
Zum Labelmanager: Der versteht kein SQL. Der Ausdruck kann z.B. in VBScript festgelegt werden (Advanced anklicken!):
Function FindLabel ([elevation])
dim txt
txt = [elevation]
if txt mod 5 = 0 AND txt mod 10 <> 0 then
FindLabel= "<clr red = '255'>" & txt & "</clr>"
elseif txt mod 10 = 0 then
FindLabel = "<clr green = '255'>" & txt & "</clr>"
end if
End Function
Allerdings auch hier nur in der "Integer-Version"...