Viser innlegg med etiketten if-setninger. Vis alle innlegg
Viser innlegg med etiketten if-setninger. Vis alle innlegg

søndag 16. november 2014

Google Map and working with Markers - making it disappear

Hi there!

This particular blog post is a result of me spending hours to find a solution. This fall I have been working with HTML5 as a subject on my journey of getting a bachelor degree. And the end term project is to make a solution which updates a map with information regarding whether there are or are not free parking spaces in one of four parking areas.
The incoming data is a simulated Server Sent Event which sends data each 5 seconds.

Regarding the state of the area the markers are going to change color. Red if full, yellow if less than 20% and blue if more than 20% free parking spaces. In addition the user is supposed to be able to set a limit of minimum free parking spaces in a parking zone using a slider. If it is too few parking spaces available, the marker for that area is supposed to disappear. For this project I made my own custom made markers.

And this is where the problems that led to this blog post starts.

For my solution I chose to go for the google map api, which is the one most likely to be used if I ever get a web page developer position. At this point I had completed too much of the project to go back and start over regarding my time limit. As always I tend to go for a solution that is 1 part by the book and 1 part by my head, and my head had been making this part extra difficult. If you read up on google api multiple markers, they tend to go for an array of markers. I had done no such thing.

I had made if-statements for the placement of each marker on the map. Something like this:

if ((parkingStatus == total) && (userInput === 0)) {
image = 'img/red.png;
}

In googles map api documentation and on the pages of stackoverflow.com the advice to hide the markers were:

Google Remove Markers
https://developers.google.com/maps/documentation/javascript/examples/marker-remove

Stackoverflow:
http://stackoverflow.com/questions/3647711/what-is-the-difference-between-marker-setvisiblefalse-and-marker-setmapnul

Well... none of these worked for me, so I thought that I could use something like this:

if (free<= userInput) {
image = '';
}

This only replaced my custom made marker with google map standard marker.

After I had been giving this some thought I came up with the solution. What I wanted to appear on the map was NULL. So I changed my If-statement so it looked like this:

if (free<= userInput) {
image = 'NULL';
}

This actually worked! So whenever the simulated Server Sent Events changes the free parking spaces to something less than the user sets as a limit, that marker disappears, and it reappears when the conditions change. No buttons involved.

If I do not get broken up into bits or adopt a binary form it will soon be a new blog with new experiences from my IT adventures!

onsdag 12. juni 2013

Visual Basic Ja, men hva hvis? Del 2

Heisann!

Eg startet for en tid tilbake å snakke om hva hvis i forbindelse med programmeringsspråket Visual Basic. I dag tenker eg at vi tar skrittet litt videre.

Det første innlegget finner du her:
http://bamsehiet.blogspot.no/2013/05/visual-basic-ja-men-hva-hvis.html

Vi tok der utgangspunkt i en veldig enkel Hvis-setning:

        If mittTall >= 5 Then
            melding = "Tallet er 5 eller større!"
        Else
            melding = "Tallet er mindre enn 5!"
        End If

Der har vi en enten eller setning.
Av og til trenger vi flere, kanskje 3 mulige valg, som skal valideres. Da kan vi benytte en IF-THEN-ELSEIF-ELSE setning.

Som dette:

If mittTall >=2 Then
melding = "Tallet er 2 eller større!"
ElseIf mittTall = 1 Then
melding = "Tallet er 1!"
Else
melding = "Tallet er 0"
End If

Dette er et veldig banalt eksempel, men det viser poenget.

Men hva hvis... Du skal ha enda flere valg?
Man kan selvsagt skrive flere Hvis-setninger, men det blir etterhvert veldig mye kode og vanskelig å vedlikeholde.

Der finnes en metode vi kan bruke istedet.
SELECT CASE

Dim ukedag As Integer
ukedag = InputBox("Skriv inn tallet for din favoritt-ukedag 1-7")
Select Case ukedag  
Case 1 : MsgBox("Mandag")  
Case 2 : MsgBox("Tirsdag")  
Case 3 : MsgBox("Onsdag"
Case 4 : MsgBox("Torsdag")  
Case 5 : MsgBox("Fredag")
Case Else       MsgBox("Enten er det lørdag eller så er det søndag.")
End Select

Du ser kanskje at om det skulle blitt flere valg så ville det vært enkelt å legge det til istedet for å lage flere Hvis-setninger.

Har en video med i dag og, som noen sikkert ser så er det en liten forskjell på denne videoen og på min forklaring. Begge deler er Visual Basic, prinsippet er det samme, men thenewboston viser i et CLI vindu, mens eg viser på en form som vi selv lager.


Neste blogginnlegg tenker eg at vi skal se på enda litt mer kompliserte Hvis setninger. Nøstede. Det vil si at det er en Hvis setning inni en Hvis-setning.

Om eg ikke blir brutt opp i bits eller inntar en binær form så vil det snart komme en ny blogg med nye erfaringer fra Mitt IT-eventyr!

mandag 20. mai 2013

Visual Basic Ja, men hva hvis?

Heisann!!

I dag tenkte eg at eg skulle ta opp noe av kanskje det viktigste innenfor programmering.
IF-setninger. Til nå har vi sett på ganske enkle prinsipper. Nå skal vi ta det ett hakk videre.
Vi skal få programmet vårt til å ta en beslutning.

Hva skal programmet ta en beslutning om?
I en del tilfeller ber vi brukeren om å gi oss noe input data. Det vil si at vi ber brukeren mate programmet vårt med opplysninger. Det kan være et tall (f.eks alder), passord, 1 av flere valg, og utifra det som brukeren vil vi at programmet vårt skal reagere forskjellig.

Det enkleste er gjerne å forklare det med passord, er det ikke riktig passord så kommer ikke brukeren videre.
Og det er en beslutning som programmet må ta der og da.

Det finnes flere varianter her, så vi begynner med If-Then-Else varianten

Vi lager en If setning som kan skille på om et tall er større enn eller mindre enn tallet 5

Lag et nytt prosjekt.
Begynn med å legge en tekstboks og en knapp på formen din.

Det vi skal få programmet til å vurdere er:
Hvis tallet i tekstboksen er større enn 5 Så
Gi brukeren en melding om at tallet er større enn 5
Hvis ikke
Gi brukeren en melding om at tallet er mindre enn 5

La oss no legge litt kode til knappen vår:
Det første vi gjør er som alltid å deklarere de variabler vi mener vi skal bruke i dette programmet.

Dim mittTall As Integer 'Lager en variabel å lagre input i, i tilfelle vi skal bruke tallet videre senere.
Dim melding As String

Så knytter eg variabelen, eller fyller variabelen mittTall med en verdi

mittTall = CInt(txtTall.Text) 'Har satt CInt foran for å sikre meg at det er et Integer (heltall) som blir satt inn av brukeren

Så kommer If-setningen:


        If mittTall >= 5 Then
            melding = "Tallet er 5 eller større!"
        Else
            melding = "Tallet er mindre enn 5!"
        End If

Som du ser her har eg fått programmet til å generere meldinger ut i fra hva brukeren mater systemet med. Og vi har avsluttet If-setningen med en End If-statement.
Alle If-setninger må avsluttes med End If

Avslutningsvis i programmet ber eg programmet gi brukeren en tilbakemelding (Dette er bare 1 måte å gjøre det på)

MsgBox(melding) 'Her har vi gjort det slik at vi kan på et senere tidspunkt utvide programmet vårt og allikevel får brukeren de rette tilbakemeldingene.

En video av If-setninger i praksis:


Tanken min er å bruke noen runder på If-setninger, så neste gang fortsetter vi, men lager den litt mer avansert.

Om du ikke har sett på de andre innleggene min om Visual Basic kan det være en god idé å gjøre det først.

Om eg ikke blir brutt opp i bits eller inntar en binær form så vil det snart komme en ny blogg med nye erfaringer fra Mitt IT-eventyr!