Passa ai contenuti principali

come importare il JSON file in appybuilder per fare le app

Sito per costruire app: http://gold.appybuilder.com

Chiamata GET come riferimento per osservare il file JSON da processare:
https://www.overpass-api.de/api/interpreter?data=[out:json];node[natural=tree](45.36386820715566,9.692811369895935,45.36502340932776,9.69470500946045);out%20meta;

Per "visualizzarlo", andare qui e copiarlo dentro: https://vanya.jp.net/vtree/

Preparare un Bottone (Button1) e un Web (Web1) nell'interfaccia utente.
Nei blocchi costruire il GET del JSON file così (l'URL è quello indicato prima)
Poi inserire il blocco che gestisce il file che arriva dalla Rete. Per ora predisporre delle Label per capire come funziona la logica:


Lat e Lon verranno poi usate per definire (e piazzare) i marker sulla Map1 (da inserire nella interfaccia Utente).



Occorre apprendere il concetto di lista e lista di liste.

Infatti il blocco fondamentale prende un JSON e lo trasforma in una lista di liste  (vedere cosa arriva nella Label3 per capirci, i delimitatori sono le parentesi tonde):






Questo unico elemento è a sua volta una lista , fatta di quattro items:
 elements , generator, osm3s e version .

Si estrarrà il primo, quello con indice 1, perché lì ci sono i dati che interessano.

Prendiamo il secondo elemento (quindi indice 2) , cioè il resto.

Il resto è una lista di 13 elementi, gli alberi.
Ogni elemento è una lista (da 10 elementi in particolare) a sua volta : estraiamo nell'esempio il secondo elemento, quello che inizia con (changeset 76247509) per intenderci.

Infine, per cambiare un po', sfruttiamo la possibilità di estrarre info con il blocco "look up in pairs", così è più leggibile.

Una volta capita la struttura delle liste di liste si può procedere al ciclo for che crea i marker sulla Map1 (figura precedente), uno per ognuno dei 13 alberi:


PS: altro modo di accedere usando il numero solo per distinguere gli items, per il resto solo usando lookupinpairs:



file sorgente (.aia) sperimentale:
https://drive.google.com/file/d/1YVfxU5bzDuy-BiJZaV7JfcT_CsXU53mf/view?usp=sharing

nel prossimo post del blog : uso di una estensione di appinventor.

appendice
Notare lo scambio elementi lista principale fra JSON e app:
{
  "version": 0.6,
  "generator": "Overpass API 0.7.55.1009 5e627b63",
  "osm3s": {
    "timestamp_osm_base": "2019-11-12T20:49:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "node",
  "id": 6875887073,
  "lat": 45.3646829,
  "lon": 9.6932692,
  "timestamp": "2019-10-26T16:34:06Z",
  "version": 2,
  "changeset": 76247509,
  "user": "luca scandelli",
  "uid": 1786966,
  "tags": {
    "diameter": "60cm",
    "leaf_cycle": "evergreen",
    "leaf_type": "needleleaved",
    "natural": "tree",
    "species:wikidata": "Q623489",
    "species:wikipedia": "it:Cedrus atlantica"
  }
},
..........
{
  "type": "node",
  "id": 6960043944,
  "lat": 45.3640026,
  "lon": 9.6947031,
  "timestamp": "2019-11-09T14:07:25Z",
  "version": 1,
  "changeset": 76845103,
  "user": "luca scandelli",
  "uid": 1786966,
  "tags": {
    "denotation": "urban",
    "leaf_cycle": "deciduous",
    "leaf_type": "broadleaved",
    "natural": "tree",
    "species:wikidata": "Q43284",
    "species:wikipedia": "it:Ginkgo biloba"
  }
}

  ]
}

lista di liste:
(
(elements
(
(
(changeset 76247509)
(id 6875887073)
(lat 45.36468)
(lon 9.69327)
(tags
(
(diameter 60cm)
(leaf_cycle evergreen)
(leaf_type needleleaved)
(natural tree)
(species:wikidata Q623489)
(species:wikipedia it:Cedrus atlantica)
)
)
(timestamp 2019-10-26T16:34:06Z)
(type node)
(uid 1786966)
(user luca scandelli)
(version 2)
)

......
(
(changeset 76845103)
(id 6960043944)
(lat 45.364)
(lon 9.6947)
(tags
(
(denotation urban)
(leaf_cycle deciduous)
(leaf_type broadleaved)
(natural tree)
(species:wikidata Q43284)
(species:wikipedia it:Ginkgo biloba)
)
)
(timestamp 2019-11-09T14:07:25Z)
(type node)
(uid 1786966)
(user luca scandelli)
(version 1)
)
)
)
(generator Overpass API 0.7.55.7 8b86ff77)
(osm3s
(
(copyright The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.)
(timestamp_osm_base 2019-11-13T19:41:02Z)
)
)
(version 0.6)
)



Commenti

Post popolari in questo blog

UMAP: mappare con fotografie nel popup

Premessa: come esempio non userò alberi perché non ho il tempo di uscire , ma foto di Crema del passato prese da Gruppi facebook. I dati saranno messi in un Google Sheet: ogni riga un segnaposto sulla mappa ogni colonna una proprietà del segnaposto della mappa per il tutorial di un prof per alunni delle medie, vedere qui:   https://sites.google.com/view/lucascalzullo/tutorial/umap  Cosa serve modificare nel LAYER della mappa? 1. La cosa che si vuol far apparire quando il mouse passa sopra il segnaposto (in questo caso l'autore ) 2. l'elenco delle colonne da importare nel popup , okkio al numero di parentesi graffe: 3 per le foto le possibilità sono: *asterisco per l'italico* **due asterischi per il testo marcato** # un cancelletto per l'intestazione principale ## due cancelletti per le intestazioni di secondo livello ### tre cancelletti per intestazione di terzo livello Link semplice: [[http://example.com]] Link con testo: [[http://example.com|te

Esportare tracciati (e reimportarli) in umap

------------------  Fase1. Preparare una mappa umap "d'appoggio" in cui lo sfondo è una mappa (*) sulla quale tirare delle linee o poligoni come tracciati che poi verrano esportati in un formato re-importabile in un'altra umap. esempio:  https://umap.openstreetmap.fr/it/map/moruzzi_408788#16/45.3632/9.6832 (*) metodo illustrato qui Fase2. una volta tracciata la linea ( anche più di una linea in realtà), andare sull'unico layer (dove risiede quindi la linea) e scegliere Azioni Avanzate -> Scarica si aprirà un'altra pagina web con il codice geojson : per controllarlo, importarlo (anche con un 'seleziona tutto" e  copia incolla) in geojson.io : (fra l'altro geojson è collegabile a github ) FASE3. salvarlo come 'geojson' nel PC  e importarlo nella umap desiderata cliccando sulla icona "freccia verso l'alto", formato geojson, scegli file risultato

mapwarper e sovrapposizione mappe

come sovrapporre mappe alla mappa di openstreet map? Vediamo come sovrapporre una delle meravigliose mappe di T. Moruzzi alla mappa di Crema su openstreetmap. mura venete , di T Moruzzi Si usa  http://mapwarper.net  . Cliccare sulla linguetta  Upload Map e caricare l'immagine della mappa di Moruzzi. Dopo di che occorre "rettificare" in modo che si adatti (venga "stirata") sulla mappa di osm. Cliccare sulla linguetta Rectify . Appaiono le due mappe una accanto all'altra : per far capire a mapwarper come stirarla occorre piazzare dei punti di riferimento sull'una e sull'altra , usando l'iconcina segnalibro azzurra in alto e poi cliccando sul bottone in basso per aggiungere la coppia di punti e dopo averne piazzati almeno 3 (coppie), cliccare il comando warp image! corrispondenze esecuzione comando Cliccando la linguetta Preview , si possono vedere le mappe una sull'altra, dosando la trasparenza col cursore: