Maatwerk software: Apps op de PC




Android Apps

Een bedrijfs-app waarmee personeel ter plaatse bij de klant alles vastlegt en dan binnen een minuut op het beeldscherm in het kantoor hebt staan? Het kan!

Wij hebben onlangs een mooie App gebouwd voor een hogeschool waarmee de student niet alleen zijn rooster of cijfers kan inzien, maar waar de student ook lokalen kan reserveren voor zelfstudie.

Enkele voorbeelden

Hieronder een fotootje van een zelfstudieproject om een GPS positie weer te geven van waar de telefoon zich bevindt. Het speciale hieraan is de omrekening van een positie in graden, minuten en seconden naar de coordinaten die het kadaster in nederland gebruik, zogenaamde RD-coordinaten.

Dat zijn coordinaten, in meters vertikaal en horizontaal, ten opzichte van een vast punt dat ergens in noord-west Frankrijk ligt.

Voorts is er een poging tot het verkrijgen van een preciezere plaatsbepaling door middel van het nemen van een gemiddelde van meer plaatsbepalingen gedurende een tijdsperiode. Een studieproject, want deze methode van middeling zal slechts een deel van de GPS-meetfouten kunnen verbeteren. In de GPS plaatsbepaling zit namelijk naast de toevalsfouten die je wel met middeling eruit haalt ook nog enkele andere systeemfouten die tot continue misrekeningen leidt, iets wat je niet met middelen eruit krijgt.

Een voorbeeld van een App:

App example

   

Android Apps worden in een programmeertaal Java geschreven. Hieronder een stukje Java-taal uit de GPS App:

void startstop_measure() {
    if (started) {
        locationManager.removeUpdates(locationListener);
        started = false;
    } else {
        cur_x = 0.0; cur_y = 0.0; cur_acc = 0.0; cur_numsats = 0;
        Location lloc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        if (lloc != null) {
            rd_loc rloc = wgs84naarRd(lloc.getLongitude(), lloc.getLatitude(), (double)lloc.getAccuracy());
            rloc.numsats = lloc.getExtras().getInt("satellites");
            cur_x = rloc.x; cur_y = rloc.y; cur_acc = rloc.acc; cur_numsats = rloc.numsats;
        }
        history.clear();  // de getLastKnownLocation nemen we even niet mee, die zou wel erg onbetrouwbaar kunnen zijn.

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
        fix_x = 0.0; fix_y = 0.0;
        ToggleButton togGlobaal = (ToggleButton) this.findViewById(R.id.togGlobaal);

        if (togGlobaal.isChecked()) {
            fix_x = 203083.22480721;
            fix_y = 392887.59183587;
        }
        started = true;
        secs = 0;
        nauwkeurigheid.setText("");
        show_measure();
    }
}