vendredi 31 janvier 2025

Références App Inventor pour application GPS

Attention : la première réception du signal GPS et calcul de position demande une trentaine de secondes. Après, le changement de position est plus rapide, environ 5 secondes


Attention : la sauvegarde sur fichier :

avec Companion : mettre le nom du fichier avec un slash devant /monfichier.gpx et il est sauvegardé dans :
Android/data/edu.mit.appinventor.aicompanion3/files/monfichier.gpx
après compilation et exécution du fichier compilé ; le fichier monfichier.gpx est sauvegardé dans :
Android/data/appinventor.ai_monCompte.monProjet/files/monfichier.gpx

Go to MIT App Inventor and sign in with your Google account.

Start a new project and give it a name, e.g., "GPX_Recorder".

Design the User Interface:


Add a Button component for starting and stopping the recording.

Add a Label component to display the status.

Add a TinyDB component for storing the GPX data.

Add a LocationSensor component to get the GPS coordinates.

Create the blocks to handle the logic:


Here's the layout and the logic for the app:


Designer View

Drag and drop the following components:

Button

Text: "Start Recording"

Name: StartButton

Button

Text: "Stop Recording"

Name: StopButton

Button

Text: "Save GPX File"

Name: SaveButton

Label

Text: "Status: Not recording"

Name: StatusLabel

LocationSensor

Name: LocationSensor1

TinyDB

Name: TinyDB1


Blocks View

Initialize the components and variables:


blocks

// Initialize global variables

initialize global recording to false

initialize global gpxData to "<gpx version='1.1' creator='AppInventor'><trk><name>Track</name><trkseg>"


// Start Button Click Event

when StartButton.Click

  set global recording to true

  set StatusLabel.Text to "Status: Recording"

  call LocationSensor1.Start


// Stop Button Click Event

when StopButton.Click

  set global recording to false

  set StatusLabel.Text to "Status: Not recording"

  call LocationSensor1.Stop


// Save Button Click Event

when SaveButton.Click

  call TinyDB1.StoreValue

    tag: "gpxData"

    value: join (global gpxData) "</trkseg></trk></gpx>"

  set StatusLabel.Text to "Status: GPX File Saved"


// LocationSensor Location Changed Event

when LocationSensor1.LocationChanged

  if global recording

    set global gpxData to join (global gpxData) "<trkpt lat='" (LocationSensor1.Latitude) "' lon='" (LocationSensor1.Longitude) "'><ele>" (LocationSensor1.Altitude) "</ele><time>" (Clock.Now) "</time></trkpt>"


jeudi 16 janvier 2025

Générer un fond MBtiles pour OruxMaps avec QGIS

Avoir un fond cartographique, topo ou photo, bien géoréférencé et organisé sous forme de tuiles d'échelle différente, est nécessaire pour se repérer avec son smartphone.

Encore faut-il que l'application de randonnée reconnaisse le format de fichiers de ces tuiles.
C'est le cas d'OruxMaps qui est capable de traiter des fichiers MBtiles.
QGIS va nous servir à extraire des tuiles MBtiles.

Le fichier MBTILES est un fichier raster qui peut inclure non seulement le fond de carte, mais aussi des tracés (GPX ou KML). Si on veut inclure un tracé KML, il suffit d'ajouter une couche vectorielle. On peut aussi ajouter un polygone.

 Avec QGIS, ouvrir une nouvelle couche.

Choisir sur le serveur WMS/WMTS, IGN par exemple ou autre, le secteur concerné par l'étude.
Dans la boîte à outils, choisir :

Outils Raster > Générer des tuiles XYZ (MB tiles).

Paramètres :

Emprise : dessiner sur le canevas de la carte
Zoom minimum : 12
Zoom maximum : 16 (plus ou moins selon le degré de précision)
DPI (Dots per Inch) : 96 ou 300
Qualité : 75
Taille de la Métatile : 4
Sortie : choisir un dossier, par exemple celui de téléchargement, et un nom de fichier (monsecteur par exemple).

Avec OruxMaps :

Déplacer le fichier .mbtiles dans le dossier Mapfiles d'OruxMaps
--> nouvelle carte hors-ligne
Choisir le nom de la carte téléchargée.