-----------------------------------

Acquista i software ArcGIS tramite Studio A&T srl, rivenditore autorizzato dei prodotti Esri.

I migliori software GIS, il miglior supporto tecnico!

I migliori software GIS, il miglior supporto tecnico!
Azienda operante nel settore GIS dal 2001, specializzata nell’utilizzo della tecnologia ArcGIS e aderente al programma Esri Partner Network (EPN) di Esri Inc.

-----------------------------------



venerdì 13 febbraio 2009

La ricerca indirizzi in ArcMap: facile, utile e gratuita!

Cari utenti ArcGIS,
questo articolo nasce per rispondere alle domande sollevate da alcuni miei clienti in merito alla possibilità di utilizzare ArcMap per localizzare indirizzi in mappa, cioè per effettuare operazioni di geocodifica (geocoding).
Premesso che invito tutti voi a veicolare attraverso il blog eventuali richieste, commenti, quesiti, osservazioni e quant'altro (quindi non siate timidi: iscrivetevi!), vediamo ora di affrontare insieme un argomento che da alcuni anni è ormai un "classico" del web e della navigazione stradale.

Innanzi tutto voglio precisare che attualmente in azienda utilizzo ArcView, ArcEditor o ArcInfo in versione 9.3 e service pack 1. Chi possiede la mia stessa configurazione non dovrebbe quindi avere problemi a "replicare" quanto illustrato. Non escludo invece che gli utenti delle versioni superate, in particolare 9.1 o precedenti, potrebbero riscontrare qualche differenza anche rilevante.

Per semplicità farò riferimento al caso mostrato nella seguente figura (fate doppio click sull'immagine per ingrandirla): come potete vedere, ho semplicemente caricato in ArcMap il layer delle mappe stradali accessibile come "ArcGIS online", argomento che ho sviluppato nel mio primo "post".



Tengo a precisare che il caricamento di questo particolare layer serve unicamente per ottenere uno "sfondo" ottimale attraverso il quale "validare" i risultati della geocodifica.
In altri termini, deve essere chiaro che la procedura che intendo illustrarvi è del tutto indipendente dal layer delle mappe stradali utilizzato in questo esempio.

Per avviare una ricerca per indirizzi è sufficiente cliccare sul tool "Find": lo troverete nella toolbar principale di ArcMap, associato all'icona "binocolo".
Vi apparirà quindi una maschera organizzata su quattro schede: quella di nostro interesse è denominata "Addresses".
Il passo successivo vi permette di selezionare il "motore di geocodifica" più adatto ai vostri scopi. Per ricerche sul territorio europeo scegliete, dal menu "Choose an address locator", la voce "European Address Finder Tele Atlas" (per una descrizione dettagliata fate riferimento al seguente link: http://help.arcwebservices.com/v2006/content/content_popup_info.do?name=ArcWeb%3ATA.Streets.EU&service=AddressFinder ).
Si tratta di uno dei tre locator "standard" disponibili in ArcGIS Desktop. In realtà, come vi illustrerò nella seconda parte dell'articolo, esiste la possibilità di caricare in ArcMap anche altri motori di geocodifica.
E' importante sottolineare che la ricerca può andare a buon fine solo se il vostro PC è collegato a internet: infatti sia il motore di geocodifica, sia i dati della rete stradale risiedono su un server ESRI. Il vostro ArcMap infatti provvede "solo" ad inviare al "Web Service" una "stringa indirizzo" e a localizzare il punto in funzione della risposta ottenuta, nella fattispecie una coppia di coordinate geografiche.

In teoria, a questo punto saremmo pronti per inserire l'indirizzo oggetto della ricerca. Per ottenere buoni risultati, occorre però "capire" le logiche che il motore di geocodifica utilizza per svolgere il proprio compito.
Posto che descriverò più avanti alcuni concetti "base" della geocodifica per indirizzi, vi dico sin d'ora che il metodo migliore consiste nell'effettuare alcuni tentativi su indirizzi ben conosciuti e quindi, per via empirica, intuire la "logica" utilizzata dal "locator".

Vi consiglio di iniziare le prove inserendo un indirizzo completo, con l'accortezza di scrivere il "nome via" esattamente come mostrato in mappa. Lanciate poi la ricerca e verificate la correttezza del risultato.
Nella parte inferiore della scheda verrà mostrato un elenco con gli indirizzi che il motore di geocodifica ha restituito in risposta ai dati inseriti.
Si noti che i risultati potrebbero anche essere più di uno, oppure, nel peggiore dei casi, nessuno!
Se però state seguendo il mio consiglio, molto probabilmente il risultato sarà uno solo... e sarà quello giusto!

Per localizzare in mappa il punto corrispondente all'indirizzo ricercato, sarà sufficiente cliccare con il tasto destro sul corrispondente rigo in elenco.
Verrà mostrato un menu con più voci: scegliendo "zoom", ArcMap provvederà a centrare la mappa sull'indirizzo.
Per "materializzare" l'indirizzo sarà sufficiente scegliere del menu appena descritto la voce "Add Graphic" o, meglio ancora, "Add Labeled Graphic": quest'ultima opzione infatti non solo aggiunge un punto al centro della mappa, ma vi associa anche la corrispondente etichetta.
Provate poi a modificare i dati inseriti riducendoli sempre più e verificando di volta in volta se il "locator" restituisce ancora lo stesso risultato.
Basteranno poche prove per intuire ad esempio che, nella ricerca di una via intitolata ad una persona, ad esempio "via Luciano Manara", il "nome" risulta molto più importante del "cognome", esattamente l'opposto della logica che solitamente utilizziamo nella pratica quotidiana (vedremo poi il motivo).

Nella seguente figura ho portato all'estremo il ragionamento di cui sopra. Come potete vedere, la ricerca va comunque a buon fine!



Vi accorgerete inoltre che, se non viene introdotto alcun numero civico, il motore di geocodifica restituisce l'indirizzo con civico "1", localizzando il punto ad inizio via.

Per creare poi una feature class o uno shapefile contenente tutti i punti-indirizzo di proprio interesse, è sufficiente cliccare con il tasto destro sul nome del dataframe e avviare la procedura "Converti grafici in shape". Si tratta però di una funzione "riservata" agli utenti della versione 9.3.
Chi volesse approfondire l'argomento "Geocoding" può farlo effettuando ricerche su internet, oppure accedendo alla guida in linea di ArcGis desktop che dedica un intero capitolo al tema.
In tal caso, vi consiglio però di utilizzare la guida web, sempre costantemente aggiornata da ESRI. Per accedere alla prima pagina del capitolo "Geocoding and address management", potete cliccare sul seguente link: http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_geocoding
Consultando la guida vi accorgerete che l'argomento è piuttosto vasto e, vista l'immediata applicabilità in molti ambiti, meriterebbe certamente un approfondimento.
Lasciando a voi questo compito, mi limito in questa sede ad alcune rapide considerazioni.
La prima è di carattere "concettuale" e mira a evidenziare i 2 "pilastri" sui quali si basa un'operazione di geocodifica:
- uno "stradario" sul quale poter effettuare la ricerca indirizzi; in termini più tecnici, si tratta di un geodabase formato da elementi lineari (archi di strada), ai quali sono associati una serie di attributi, come il nome della strada, il comune di appartenenza, la numerazione civica ecc.;
- un "motore di ricerca" che, per ogni indirizzo inserito dall'utente (input), trova il corrispondente nel geodatabase e ne restituisce la posizione geografica (output).

Ne deriva che qualsiasi motore, indipendentemente dalle proprie caratteristiche, può produrre buoni risultati solo laddove esiste un dato di qualità, ovvero uno stradario aggiornato e comprensivo di tutta la rete stradale.
Questa condizione è generalmente vera nelle aree urbanizzate più importanti, mentre lo è molto meno nelle aree più isolate dove la copertura si limita solo alle strade principali.
A parità di copertura, è ovvio invece che un motore basato su "regole" più efficienti, ovvero capace di analizzare meglio il database degli indirizzi e/o di farlo più velocemente, fornirà i risultati migliori.
Occorre precisare che gli indirizzi italiani mettono a dura prova qualsiasi motore di geocodifica, perchè prevedono una ampia varietà di tipologie e "declinazioni".
Negli esempi illustrati in questo blog avete notato come non sia indispensabile inserire esattamente un indirizzo: la ricerca è andata a buon fine anche omettendo alcune lettere.
Ciò dipende dall'elasticità del motore di geocodifica e in tal senso potete verificare di persona come una ricerca effettuata attraverso Google Maps ( http://maps.google.com/ ) sia molto più "elastica" di quella di ArcMap.
La capacità di un motore di fornire un risultato corretto, senza obbligare l'utente a scrivere esattamente l'indirizzo, è certamente una caratteristica molto importante.
Generalmente la geocodifica restituisce i risultati associandovi un "punteggio" che dovrebbe indicarne l'attendibilità.
Nell'esempio finora utilizzato non era prevista questa opzione; vi consiglio quindi di abilitare ArcMap all'utilizzo di un altro "locator" di cui trovate una descrizione dettagliata al seguente link:
Si tratta di una delle numerose "risorse libere" (Free tasks) che Esri mette a disposizione dei propri utenti e che richiede solamente una connessione internet per essere utilizzata. La procedura per attivare il locator è descritta nel seguente link http://resources.esri.com/help/9.3/arcgisonline/about/start.htm#free_tasks.htm##

Io vi consiglio questa "variante":
- accedere al menu "View", cliccare sulla voce "Toolbars" e attivare la barra "Geocoding";
- cliccare sul primo pulsante a sinistra e poi, nella maschera che vi apparirà, su "Add";
- fare doppio click su "ArcGis Server";
- fare doppio click su "Add ArcGis Server";
- cliccare su "Avanti";
- inserire nella casella "Server URL:" il seguente link: http://tasks.arcgisonline.com/arcgis/services ;
- cliccare su "Finish". La voce "arcgis on tasks.arcgisonline.com" verrà aggiunta a quelle già presenti;
- fare doppio click su questa voce e poi sulla cartella "locator";
- ancora doppio click su "TA_Address_EU" per aggiungere il locator alla maschera "Address locator Manager";
- chiudere la maschera agendo sul pulsante "close".

Per completezza troverete la procedura "riassunta" nelle tre seguenti figure:







Nell'ultima figura ho messo in evidenza la maschera che consente di agire sulle opzioni di questo motore di geocodifica modificandone il "comportamento".
A questo punto siete in grado di effettuare ricerche anche con questo "locator"; vi basterà selezionarlo dall'elenco a tendina per sostituirlo al precedente.
Come potete vedere nella seguente figura, i risultati sono più numerosi e ognuno risulta associato ad un punteggio... Lascio a voi ulteriori approfondimenti!



Qualche volenteroso potrebbe ad esempio effettuare una comparazione tra i due locator e condividere nel blog i suoi risultati... La mia impressione è che il locator TA_Address_EU sia più efficiente!

Inoltre, questo locator consente l'utilizzo di uno strumento alquanto utile: i più attenti avranno infatti notato che nella parte inferiore destra dell'immagine compare un indirizzo e un punto associato (quest'ultimo si vede poco ma c'è!).
Non si tratta però del risultato della geocodifica, ma del risultato esattamente "inverso" ottenuto grazie al pulsante "Address inspector", il secondo da sinistra nella toolbar "Geocoding".
E' uno strumento molto utile per permette di cliccare su un punto in mappa ed avere, mantenendo premuto il pulsante sinistro del mouse, il corrispondente indirizzo: esattamente l'operazione inversa rispetto alla geocodifica di un indirizzo.
Avrete anche notato che per questo esempio ho utilizzato come sfondo una cartografia tecnica; l'ho fatto di proposito, proprio per sottolineare che le operazioni di geocodifica (dirette o inverse che siano) non lavorano sui dati caricati in mappa o comunque archiviati sul PC, ma utilizzano, attraverso una connessione internet, funzioni e dati che risiedono "fisicamente" sui server ESRI (ArcGIS online).

E quei 2 punti in mappa?
Si tratta dello stesso indirizzo (via Luciano Manara 48 - Monza) restituito da ArcMap in 2 posizioni diverse. Un errore quindi?
...In realtà il punto rosso è stato localizzato senza impostare alcuna trasformazione tra il sistema geodetico di riferimento (Datum) utilizzato dal servizio di geocodifica (WGS84) e quello impostato per il dataframe utilizzato nel mio esempio (Roma40 o, secondo dicitura Esri, Monte Mario). Il punto verde beneficia invece di questa impostazione ed infatti è quello più corretto.
La differenza? in questo caso circa 80m in linea d'aria.

Attendo commenti!
Saluti,
PaoloGis

12 commenti:

  1. Questo commento solo per avvisarvi che in data odierna ho finalmente concluso l'articolo.
    L'argomento meritava infatti una trattazione più approfondita, in particolare ho illustrato come aggiungere altri motori di geocodifica rispetto ai 3 "standard" già disponibili in ArcMap.
    Inoltre ho illustrato i concetti "base" del geocoding e inserito alcune considerazioni per commentare i risultati ottenuti nei miei esempi.
    Saluti e buon lavoro!

    RispondiElimina
  2. grazie mille per le informazioni che hai inserito.

    molto chiare e molto utili

    RispondiElimina
  3. Salve, vorrei porti 2 quesiti riguardanti il geocoding address:
    1) utilizzo il geocoding address come indicato nei post precedenti in particolare come locator utilizzo il TA_Address_EU. Di default viene usato il locator name "ita_city", io invece ho verificato che il locator "ita_streetname" funziona meglio. Come posso impostarlo di default? riesco a modificarlo solo nell'interactive rematch del result.
    2) come faccio leggere al locator anche il numero civico. In verità neanche nel result dell'interactive rematch riesco a risalire al num civico se non con l'address inspector.
    Saluti

    RispondiElimina
  4. Ciao Rocco e scusa per il ritardo con il quale ti rispondo.

    In effetti non utilizzo spesso le funzioni di geocoding e quindi, prima di azzardare una risposta, ho preferito "giocarci" un pò!
    Vedo invece che tu sei andato piuttosto a fondo ed addirittura hai provato a localizzare tabelle di indirizzi. Molto bene!

    In merito al tuo primo quesito, direi che il problema non dovrebbe porsi.
    Infatti, leggendo la documentazione che illustra il locator TA_Address_EU (in realtà un "insieme" di più locator), mi sembra di capire che il locator "specifico" venga scelto da ArcGIS in base ai dati inseriti dall'utente.
    Sicuramente deve essere indicato il parametro "Country" (nel nostro caso IT o ITA), che infatti è obbligatorio. Questo dato vincola poi il sistema ad adottare i locator realizzati per l'Italia, ovvero i 4 con suffisso ITA.
    Ovviamente i locator ITA_Streets e ITA_StreetName, che mi sembrano equivalenti, sono quelli che garantiscono i risultati più "precisi".
    Non dimentichiamoci però che tali risultati dipendono anche dalla qualità del grafo stradale utilizzato dal locator stesso (nel caso specifico Tele Atlas Multinet version 2009.02).

    Mi sembra quindi che il criterio di ArcGIS sia di restituire il risultato potenzialmente più preciso (quindi a livello di strada + civico) per poi proporre, in mancanza di riscontri significativi, localizzazioni più grossolane (centro strada o centro comune).

    Ho anche verificato che le opzioni sono temporanee: si mantengono tali solo all'interno della sessione di lavoro corrente.
    Riaprendo quindi il documento MXD, devono essere nuovamente impostate... sempre ammesso che ciò abbia senso.
    A mio avviso, potrebbe risultare utile modificare i valori delle "Matching Options", però, per farlo in modo sensato, sarebbe auspicabile eseguire un pò di prove per comprendere bene la logica e la "sensibilità" del locator.

    Non capisco invece il punto 2 della tua richiesta.
    Nelle mie ricerche inserisco spesso il numero civico e ottengo quasi sempre il risultato atteso.
    Quel "quasi" sta ad indicare che, nel caso in cui il grafo di riferimento non preveda alcun arco con associato un intervallo numerico - pari o dispari - contenente il civico indicato, allora la ricerca restituisce una localizzazione a centro via.

    Comunque l'argomento è molto interessante e quindi ben vengano ulteriori tuoi contributi.
    Buon geocoding!

    RispondiElimina
  5. Ciao paolo, poi mi sono iscitta.
    Allora ti dicevo: ho realizzato il procedimento geocoding suggerito dai tuoi blog (http://paologis.blogspot.com/2009_02_01_archive.html). Però il risultato è che alcuni indirizzi non corrispondono a quelli reali, ad esempio via asiago di catania è stata localizzata in corso italia. Come posso risolvere il problema?

    RispondiElimina
  6. Ciao Antonella,
    ogni promessa è debito!
    Quindi - anche se clamorosamente in ritardo - provvedo a rispondere alla tua richiesta.
    Scherzi a parte, mi dispiace veramente di non aver risposto in tempi "decenti" e per questo ti chiedo di accettare le mie scuse.

    Oggi - al rientro dalle ferie - ho trovato il tempo per effettuare alcune prove (finalmente con la giusta calma) senza però riscontrare i problemi ai quali fai riferimento.
    Inutile dire che la cosa è abbastanza strana, anchè perchè mi sembra di intuire che tu abbia seguito alla lettera quanto illustrato nel mio articolo...

    In questi casi l'unico metodo per far emergere il problema, consiste nel "replicare" le stesse condizioni di utilizzo.
    Di seguito ti elenco quindi i passaggi che ho effettuato nelle mie prove in modo che tu stessa - ammesso che ve ne sia ancora ragione - possa ripercorrerli "pari pari".

    Premetto che io ho utilizzato una licenza ArcView 9.3.1, ovviamente aggiornata con il Service Pack 2 rilasciato a fine luglio ( http://resources.arcgis.com/content/patches-and-service-packs?fa=viewPatch&PID=15&MetaID=1620 ).

    Come prima operazione ho caricato - in una nuova sessione di ArcMap - lo stradario World Street Map disponibile come layer ArcGIS Online.
    Dopo aver verificato che il locator standard "European Address Finder Tele Atlas" non restituiva alcun risultato - intendo di tipo "street" - per la via Asiago (comportamente a dir poco strano!?), ho caricato il locator descritto nel mio articolo (Locators/TA_Address_EU) prelevandolo dai servers di ArcGIS Online.

    Immettendo i dati "via asiago" (Address), "catania" (City) e "it" (Country), ho ottenuto il risultato desiderato (score 64).
    La posizione restituita - considerando che non ho specificato alcun numero civico - mi sembra perfetta: in pratica il punto è stato posizionato in prossimità di largo Sarajevo.

    A questo punto, ritenendo che il problema potesse generarsi modificando il sistema di riferimento associato al dataframe, ho effettuato alcuni test: da "WGS_1984_Web_Mercator_Auxiliary_Sphere" (il sistema di coordinate nativo dei servizi ArcGIS Online) a "GCS_WGS_1984" e poi al nostro "Monte_Mario_Italy_2".
    In quest'ultimo caso ho agito sia senza applicare trasformazioni sia adottando la trasformazione "Monte_Mario_To_WGS_1984_4".

    In qualsiasi condizione di utilizzo ArcView - ovvero il locator - ha sempre restituito il risultato di cui sopra.

    Come ulteriore test ho scaricato, dalla sezione download del SITR Sicilia, lo shapefile dei confini comunali derivati dalla CTR 1:10.000 (SR Monte Mario Italy 2), caricandolo poi nel progetto per simulare una situazione d'uso più comune.
    Ho quindi ripetuto le stesse prove di cui sopra senza rilevare alcuna anomalia.

    A questo punto attendo un tuo riscontro.
    Un caro saluto.

    RispondiElimina
  7. Ciao Paolo,
    ti faccio i complimenti per il sito che in più di un'occasione mi è stato di providenziale aiuto.
    Ora però devo chiederti una cosa che spero potrai chiarirmi:
    Dovrei geocodificare un file dbf con oltre 250.000 indirizzi italiani...ho il database degli shapefile delle strade, ma anche seguendo i tuopi consigli su questo Blog non riesco. Mi dice sempre 100%unmatched.
    Ho provatro sia col TA_Address_EU che con quelli forniti dal pacchetto Arcmap10, ma non funziona.
    Ovviamente ho provato solo coi primi 1000 indirizzi...
    Hai qualche suggerimento?ti ringrazio in anticipo,

    Lidia

    RispondiElimina
  8. Ciao Lidia,
    vedo che hai inserito la tua richiesta come "anonimo", non ti sei ancora iscritta?

    E' da un pò che non mi cimento con il geocoding in ArcMap, anche perchè in azienda abbiamo sviluppato procedure più efficienti e "massive".
    Quindi non so quanto potrò esserti d'aiuto...

    Direi però di concentrarsi sull'utilizzo della versione 10, cercando di far lavorare a dovere il tool "Geocode Addresses (Geocoding)" (Geocoding Toolbox), evitando quindi l'utilizzo diretto del tuo stradario.

    Il tool è ben descritto nella guida in linea, al seguente link: http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Geocode_Addresses/002600000006000000/

    Il mio consiglio è di lanciarlo una prima volta su un set limitato di record, per poi valutare i risultati ottenuti.
    Come ti sarai certamente accorta, un aspetto critico è certamente la "formattazione" degli indirizzi processati, in relazione - ovviamente - alla "flessibilità" e alle caratteristiche del motore di geocodifica.

    Se ti sei accorta, intendo su prove singole, che un locator "gradisce" meglio gli indirizzi se formattati in un certo modo, allora rielabora la tua tabella in modo da soddisfare questo requisito.
    Su questo aspetto potrebbe esserti d'aiuto il seguente topic della guida in linea, anche se riferito alla realtà americana:
    http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Standardize_Addresses/00260000000m000000/

    Facci sapere.

    RispondiElimina
  9. Numeri civici, geocoding -
    Rieccoci, intanto buone feste a tutti!
    Vorrei capire, ma finora non ho trovato niente, come fare per inserire la numerazione civica per poi fare il geocoding. Puoi aiutarmi? Ho costruito un geodatabase con una feature lineare (strade) ma mi perdo poi nel come inserire i numeri civici. Da quello che ho letto, per ogni arco si deve inserire un intervallo numerico in campi da sx a sx e da dx a dx?
    Grazie e ancora auguri

    RispondiElimina
    Risposte
    1. Ciao caro,
      vero che ti sei già letto il seguente topic?
      http://resources.arcgis.com/en/help/main/10.1/index.html#/Commonly_used_address_locator_styles/00250000000v000000/

      Dovresti trovare qui tutte le indicazioni del caso.
      Comunque, ammesso che tu abbia optato per lo stile "US Address—Dual Ranges", dovrai prevedere due coppie di attributi, una per il lato pari ed una per il lato dispari (o, in altri termini, destro/sinistro)... con un attributo "from" ed uno "to" per ogni coppia... il tutto come ben illustrato nelle prime tre immagini della pagina.

      Disponibile a continuare qui la discussione nel caso ci fossero dubbi.
      Attendo comunque un tuo riscontro.
      CIao

      Elimina
  10. Ciao Paolo,

    articolo molto interessante anche a distanza di tempo.
    Sto tentando di costruire un geocoder locale basato sul grafo multinet, che dispone di un layer dedicato proprio a questo (denominato XXXX_gc). Nel layer ci sarebbero tutte le informazioni per creare un geocoder dual ranges; infatti seguendo la procedura e creando un geocoder con stile "US Address—Dual Ranges" il software mappa direttamente tutti i campi che gli servono con quelli contenuti nella shape (debitamente importata in un geodatabase).
    Il problema è che poi provando ad utilizzare il suddetto geocoder non mi riconosce alcun indirizzo. Ti chiedo: lo stile che ho scelto è applicabile per indirizzi non-US? Come posso creare un geocoder non-US che tenga conto dei civici visto che fra gli stili predefiniti non esiste nulla di simile?

    Grazie e complimenti per il blog

    Damiano

    RispondiElimina
    Risposte
    1. Ciao Damiano, scusa per l'attesa ma speravo di trovare il tempo per poter approfondire la tua richesta... così non è stato! In effetti è passato parecchio tempo da quando scrisis questo post e ormai non utilizzo più questo approccio. Da qualche tempo, infatti, avendo a disposizione una sottoscrizione ArcGIS Online (la stessa che, da quest'anno, è disponibile per tutti gli utenti coperti dalla manutenzione delle licenze desktop), sfrutto le ottime capacità di geocodifica di AGOL (vedi, ad esempio, i seguenti link: http://www.arcgis.com/features/plans/geocoding.html http://doc.arcgis.com/it/arcgis-online/reference/geocode-coverage.htm ). Dovrei, quindi, rispolverare la problematica ma, come ti accennavo, serve tempo... Fossi in te - giusto per avere un quadro più completo - saggerei anche le potenzialità di AGOL (esiste anche una versione di valutazione, 30 giorni di prova gratuita).

      Elimina

AREA FORUM (vedi anche post del 10/1/2014)

Post più letti nell'ultimo mese: