Kaartjes maken met variabelen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joeri Jacobs

Joeri Jacobs

06/09/2012 09:42:56
Quote Anchor link
Hallo,

In een ander topic had ik al eens de vraag gesteld hoe ik de data kan gebruiken van de customtextout10.txt. Dit is uiteindelijk gelukt. Nu zou ik ook graag kaartjes maken met kleurverloop daarin. Bvb koud is blauw en rood is warm. Is het mogelijk om met die variabelen van dat bestand een koppeling te maken naar kleuren? Zoja, hoe kan ik daar best aan beginnen?

Hier is nog eens de link nar dit bestand: http://weerstation-brugge.be/customtextout10.txt
 
PHP hulp

PHP hulp

19/05/2024 06:09:13
 
Flip --

Flip --

06/09/2012 12:06:20
Quote Anchor link
ik zou zoeken naar een HSL naar RGB functie.
De H van HSL is de hue, stel je wilt van uiterste waarde blauw (die bijvoorbeeld 20 is) naar uiterste waarde rood (die 60 is). Range = 60 - 20 = 40
En je max temperatuur is 40 graden, en je min temperatuur is -20 graden. Range = 40 - -20 = 60.
Dan range omvormen en offset aanpassen:
Temp * (range temp / range hsl) + (min temp - min hsl) = H
de S en de L stel je in op vaste waardes (die jij mooi vind).
 
Eddy E

Eddy E

06/09/2012 15:15:17
Quote Anchor link
Dat is zeker wel te doen.
Wat jij vooral kan gaan gebruiken: http://www.caperna.org/computing/repository/hsl-rgb-color-conversion-php
Gewijzigd op 06/09/2012 15:42:32 door Eddy E
 
Joeri Jacobs

Joeri Jacobs

25/09/2013 09:27:45
Quote Anchor link
Hoi,

Ik wil dit topic weer even aansnijden. Ik heb er een tijdje niks meer mee gedaan met die kaartjes maar ik wil er terug energie in steken. Ik heb al wat geprobeerd iets te bereiken met bovenstaande code maar ik weet niet precies hoe ik het moet implementeren op een kaart.

Ik heb deze code om variabelen uit te lezen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// in het bestand weerstation.php  
class Weerstation
{
  const Brugge = "http://weerstation-brugge.be/customtextout10.txt";
  
  function
LeesBericht( $station )
  {

    $a = explode("\n", file_get_contents ( $station ));
    foreach ( $a as $value )
      if ( strpos( $value, '$' ) !== false )
        eval( str_replace ( '$', '$this->', $value) );
  }
}


// het gebruik
include weerstation.php

$weerstation = new Weerstation();
$weerstation->LeesBericht( Weerstation::Brugge );

echo $weerstation->sunriseTime;

?>
 
Kris Peeters

Kris Peeters

25/09/2013 11:09:42
Quote Anchor link
Die eval zie ik niet graag staan.
Niet dat ik de Brugse weerdienst van hacking beschuldig ... maar je weet nooit.
Alles wat daar op een lijn code kan staan, (bv. verwijder de volledige database + de mappenstructuur ...) wordt zomaar uitgevoerd.

Hier alvast een op maat gemaakte versie, die gewoon een array vult.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$Brugge
= "http://weerstation-brugge.be/customtextout10.txt";
//$Brugge = "customtextout10.txt";
$text = file_get_contents($Brugge);
$lines = explode(PHP_EOL, $text);
$lines = array_filter($lines);  // lege lijnen verwijderen

$newArray = array();
foreach ($lines as $key=>$line) {
  $item = readLine($line);
  if (empty($item[1])) {
    continue;
  }

  $newArray[$item[0]] = $item[1];
}

function
readLine($line) {  // dit kan ongetwijfeld vervangen worden door een preg
  $bits = explode(' = "', $line);
  if (empty($bits[1])) {
    return null;
  }

  $key = substr($bits[0], 1);
  $value = substr($bits[1], 0, strlen($bits[1]) - 2);
  return array($key, $value);
}


echo '<pre>' . print_r($newArray, 1) . '</pre>';
?>


Vertel nog eens wat je uiteindelijk van plan bent.
Kaartjes? Welke kaartjes?

Die kleurencodes: dus bv. alle waarden eindigend op "°C" uitlezen (of eventueel alles met 'Temp' in de key naam); daar de numerieke waarde uit halen en die dan een kleurencode geven.

Okay, vertel jij eens: Hoe veel graden is koud, hoe veel graden is warm?
Die gradiënt van blauw naar rood is geen probleem. Je gaat lineair van koud: rgb(0,0,255) naar lauw: rgb(255,0,255) naar warm: rgb(255,0,0)
Gewijzigd op 25/09/2013 11:11:44 door Kris Peeters
 
Joeri Jacobs

Joeri Jacobs

25/09/2013 11:22:23
Quote Anchor link
Met die kaartjes bedoel ik dit: Afbeelding

Het probleem is dat ik niet weet hoe ik eraan moet beginnen.

Toevoeging op 25/09/2013 11:24:07:

Koud is bvb -15°C en warm +35°C.
 
Kris Peeters

Kris Peeters

25/09/2013 11:47:52
Quote Anchor link
Heb je die gegevens, van overal in België?
Die tekst file is toch gewoon van 1 locatie; juist?

Het is niet evident om isothermen (de lijnen van gelijke temperatuur) te tekenen op een kaart; net zoals het niet gemakkelijk is om hoogtelijnen of andere iso- lijnen te tekenen.

Misschien met een soort van punten (waarvan je de gegevens hebt); die een veld uitstralen, en zo dus de omringende punten beïnvloeden ...
Niet evident, lijkt me.
 
Joeri Jacobs

Joeri Jacobs

25/09/2013 12:07:48
Quote Anchor link
Ja, die txt file is van mij alleen. De bedoeling is om in samenspraak met andere gebruikers een netwerk uit te bouwen om zo heel nauwkeurig een weerbeeld te vormen van België.

Het zal inderdaad niet evident zijn maar zoals je ziet op die kaart moet het toch kunnen, de vraag is alleen hoe?
 
- SanThe -

- SanThe -

25/09/2013 17:49:45
Quote Anchor link
$text = file_get_contents($Brugge);
$lines = explode(PHP_EOL, $text);

Dit kan toch in één keer met file().
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.