 |
|  |
|
|
| Auteur |
Bericht |
kevindelft
|
|
Onderwerp: legenda opmaken bij kaart.
Geplaatst: 23 sep 2009 - 07:33
|
|
Op dreef
Geregistreerd op: 15-feb-2008
Berichten: 193
Status: Offline
|
|
Beste mensen,
Zouden jullie mij kunnen helpen, ik ben bezig met het bouwen van een applicatie waarin een kaart staat, in deze kaart worden bepaalde gegevens van een land weer te geven in diverse kleuren. Nu wil ik eigenlijk onderaan de kaart een soort van legenda maken, alleen is het probleem dat ik geen idee heb hoe dit het beste te kunnen maken. Het is namelijk zo dat het aantal kleuren kan en mag verschillen. Alle kleuren worden gehaald uit een tabel genaamd: tbl_kleurinstellingen hierin staan de volgende kolommen,
- Waarde_van
- Waarde_tot
- Kleur_standaard
- Kleur_mouseover
Ik denk dat de betekenis van deze kolommen op zich voor zich spreekt, wanneer een waarde (die berekent wordt vanuit allerlei berekeningen) valt tussen de “waarde_van” en de “waarde_tot” dan moet het land de kleur krijgen die bij “kleur_standaard” is ingevuld en wanneer er met de muis overheen wordt gegaan dan krijgt hij de kleur die is ingevuld bij “kleur_standaard”.
Nu komt het, onderaan het venster heb ik een tabpage waar de legenda in moet komen, nu kan ik er wel voor zorgen dat hij “standaard” max vijf kleuren kan bevatten maar het lijkt me makkelijker, flexibeler en mooier om de legenda aan te kunnen passen aan het aantal kleuren in de database. De legenda zou er ongeveer zo uit moeten komen te zien:
KLEUR_STANDAARD KLEUR_MOUSEOVER WAARDE_VAN - WAARDE_TOT
Ik hoop dat het duidelijk is wat ik bedoel en dat iemand hier mij hiermee kan helpen.
Groetjes Kevin |
|
|
| |
|
|
|
 |
Yannou
|
|
Onderwerp: Re: legenda opmaken bij kaart.
Geplaatst: 23 sep 2009 - 10:04
|
|
Moderator

Geregistreerd op: 14-mrt-2006
Berichten: 2422
Woonplaats: Kraainem
Status: Offline
|
|
De gemakkelijkste manier om dit te doen is een index op te maken van alle landen die je wilt inkleuren. Voor elke land genereer je een willekeurige kleur in een bepaalde range, bijvoorbeeld als je Random.Next(130, 230) gebruikt om een R, G en B waarde te genereren krijg je een vrij lichte kleur. Voor elk land genereer je in de legenda dan een PictureBox met gelijke Width en Height zodat je een vierkantje krijgt, en je kleurt het land op de kaart en de PictureBox in met die lichte kleur.
Bij het Hover event trek je van de RGB waarde bv. 50 punten af om de kleur donkerder te maken, en kleur je daarmee het land en de corresponderende PictureBox in, zodat het lijkt of het land gemarkeerd wordt. Voor een kaart zelf kan je best op Wikipedia kijken in de categorie Blank SVG Maps of the World. Hopelijk kan dat je al op weg zetten.
Groetjes |
|
|
| |
|
|
|
 |
kevindelft
|
|
Onderwerp: Re: legenda opmaken bij kaart.
Geplaatst: 23 sep 2009 - 12:30
|
|
Op dreef
Geregistreerd op: 15-feb-2008
Berichten: 193
Status: Offline
|
|
Ik dacht dat k duidelijker was geweest, de applicatie die ik hierboven heb omschreven bestaat inmiddels al, we hoefden geen gebruik te maken van een SVG kaart maar hebben een flash kaart gebruikt (DIAMOND-MAP-OF-THE-WORLD). Ik zit alleen nog met de legenda, dat krijg ik niet voor elkaar...
Groetjes Kevin |
|
|
| |
|
|
|
 |
Yannou
|
|
Onderwerp: Re: legenda opmaken bij kaart.
Geplaatst: 23 sep 2009 - 13:55
|
|
Moderator

Geregistreerd op: 14-mrt-2006
Berichten: 2422
Woonplaats: Kraainem
Status: Offline
|
|
In dat geval kan je in 3 stappen werken:- Lees alle data uit de tabel
- Controleer of een bepaald land een kleurtje krijgt
- Maak dynamisch een PictureBox aan (dat dat kleur zal bevatten) en een Label (met de beschrijving van het item) die je dan onder elkaar aan de TabPage toevoegt
Hoe het met het MouseOver event gesteld is, zal je moeten opzoeken in de API van je kaart applicatie.
Groetjes |
|
|
| |
|
|
|
 |
|
|
|
|
|
|