| Bots de conversa | Exemples | Dades pràctiques | Recursos CITCEA | |
| Google Apps Script | Projectes | Interacció | Inici |
Els mapes són imatges que contenen un mapa de Google sobre el que podem indicar punts, línies i àrees. Hi ha diverses comandes per fer tot això. A continuació en comentem algunes. També hi ha possibilitat de treballar amb adreces i coordenades o d'incorporar rutes als mapes, que veurem més avall. Es pot trobar informació completa al web de Google.
La comanda per crear un mapa és:
| Funció | Descripció | Exemple |
| newStaticMap() | Crea un nou mapa | var map = Maps.newStaticMap(); |
Les comandes per ajustar el que es veu al mapa són:
| Funció | Descripció | Exemple |
| setSize(ample, alt); | Estableix la mida del mapa (en píxels) | map.setSize(600, 600); |
| setCenter(lat, long) | Centra el mapa a les coordenades indicades | map.setCenter(41.3847964,2.1134547); |
| setCenter(adre) | Centra el mapa a l'adreça indicada | map.setCenter("Avinguda Diagonal 647, Barcelona"); |
| map.setCenter("ETSEIB"); | ||
| setZoom(val) | Estableix el nivell de zoom del mapa | map.setZoom(17); |
| addVisible(lat, long) | Ajusta el mapa per a que el punt indicat sigui visible
(però no hi ha res que marqui el punt) |
map.addVisible(41.3851564,2.1160347); |
| addVisible(adre) | Ajusta el mapa per a que el punt indicat sigui visible
(però no hi ha res que marqui el punt) |
map.setCenter("Avinguda Diagonal 647, Barcelona"); |
| map.setCenter("ETSEIB"); |
Convé indicar les adreces amb un cert nivell de detall. Per exemple, si posem ETSEIB és probable que encertem però si posem FIB segurament no es considerarà la Facultat d'Informàtica de Barcelona sinó una adreça als Estats Units. Sempre és millor fer servir les adreces però també convé que estiguin ben especificades ja que hi ha poblacions amb el mateix nom o amb noms semblants en diferents llocs. Convé, doncs, indicar el codi posatal o el país. Amb les coordenades, si no ens equivoquem, encertarem segur.
Per passar d'adreça a coordenades, o al contrari, podem fer servir un objecte de geolocalització.
Les comandes per marcar punts al mapa són:
| Funció | Descripció | Exemple |
| addMarker(lat, long) | Posa un marcador a les coordenades indicades | map.addMarker(41.3847964,2.1134547); |
| addMarker(adre) | Posa un marcador a l'adreça indicada | map.addMarker("Avinguda Diagonal 647, Barcelona"); |
| map.addMarker("ETSEIB"); | ||
| setMarkerStyle(mida, color, etiqueta) | Estableix el format dels següents marcadors | map.setMarkerStyle(Maps.StaticMap.MarkerSize.MID, Maps.StaticMap.Color.YELLOW, "P"); |
Les mides disponibles per als marcadors són:
| Valor | Descripció |
| Maps.StaticMap.MarkerSize.MID | Mida gran |
| Maps.StaticMap.MarkerSize.SMALL | Mida mitjana |
| Maps.StaticMap.MarkerSize.TINY | Mida petita |
Els colors disponibles per als marcadors són:
| Valor | Descripció |
| Maps.StaticMap.Color.BLACK | Negre |
| Maps.StaticMap.Color.BROWN | Marró |
| Maps.StaticMap.Color.RED | Vermell |
| Maps.StaticMap.Color.ORANGE | Taronja |
| Maps.StaticMap.Color.YELLOW | Groc |
| Maps.StaticMap.Color.GREEN | Verd |
| Maps.StaticMap.Color.BLUE | Blau |
| Maps.StaticMap.Color.PURPLE | Porpra |
| Maps.StaticMap.Color.GRAY | Gris |
| Maps.StaticMap.Color.WHITE | Blanc |
| "0xRRGGBB" | Color definit per tres xifres hexadecimals Exemple: "0xFF00FF" és magenta |
| null | Sense color (per exemple si no es vol que pinti l'interior del camí) |
Les comandes per dibuixar línies o àrees al mapa són:
| Funció | Descripció | Exemple |
| addPath(punts) | Afegeix un polígon (obert o tancat) al mapa El paràmetre és un vector amb la latitud i la longitud dels punts |
var coord = [41.3851564, 2.1160347, 41.3838964, 2.1166047, 41.3847264, 2.1143547, 41.3851564, 2.1160347]; map.addPath(coord); |
| beginPath(); | Inicia la representació d'un camí format per adreces | map.beginPath(); |
| addAddress(adre); | Estableix un punt de la representació del camí | map.addAddress("Avinguda Diagonal 647, Barcelona"); |
| map.addAddress("ETSEIB, UPC"); | ||
| addPoint(lat, long) | Estableix un punt de la representació del camí | map.addPoint(41.3851564, 2.1160347) |
| endPath(); | Acaba la representació d'un camí format per adreces | map.endPath(); |
| setPathStyle(gruix, colVora, colDins); | Estableix l'aspecte del següent camí | map.setPathStyle(3, Maps.StaticMap.Color.BLACK, Maps.StaticMap.Color.BLUE); |
| addPath(poli); | Afegeix una ruta al mapa a partir de la polilínia de punts | map.addPath(ruta.overview_polyline.points); |
Atenció: Aquestes comandes dibuixen línies rectes i polígons però no rutes per anar d'un punt a un altre.
Les comandes per obtenir la imatge del mapa són:
| Funció | Descripció | Exemple |
| getBlob() | Proporciona el mapa en format binari (BLOB) | var mapa_blob = map.getBlob(); |
| getAs(format) | Crea una imatge en el format indicat | var mapimg = map.getAs("image/png"); |
| var mapimg = map.getAs("image/jpeg"); | ||
| var mapimg = map.getAs("image/gif"); |
En aquest exemple mostrem com crear la imatge en format de dades binàries (BLOB), enviar-la a Telegram i generar un fitxer d'imatge o un fitxer pdf.
Tenim funcions per poder obtenir les coordenades aproximades a partir d'una adreça o l'adreça que correspon a unes coordenades concretes.
| Funció | Paràmetres |
| Maps.newGeocoder().reverseGeocode(lat, long) | Latitud i longitud |
| Maps.newGeocoder().geocode(adre) | Adreça |
Les dues funcions poden retornar tres dades:
| Dada | Comentaris |
| formatted_address | Adreça en el format que fa servir GAS |
| geometry.location.lat | Latitud |
| geometry.location.lng | Longitud |
Les dades obtingudes seran les més properes que estiguin identificades.
La resposta pot ser múltiple i, per tant, les funcions retornen un vector. Cal, doncs, preveure consultar totes les respostes (o bé preveure que la primera és la que ens interessa).
var lat = 41.384411;
var long = 2.116264;
function adreces(){
var response = Maps.newGeocoder().reverseGeocode(lat, long);
for (let i = 0; i < response.results.length; i++) {
const result = response.results[i];
Logger.log(result.formatted_address);
Logger.log(result.geometry.location.lat + ", " + result.geometry.location.lng);
}
}
var adre = "diagonal, 647, 08028 Barcelona";
var coord = Maps.newGeocoder().geocode(adre);
function coordenades(){
for (let i = 0; i < coord.results.length; i++) {
const result = coord.results[i];
Logger.log(result.formatted_address);
Logger.log(result.geometry.location.lat + ", " + result.geometry.location.lng);
}
}
Les rutes ens mostren el camí a seguir per anar d'un lloc a un altre. A les rutes es poden forçar punts de pas (etapes o escales) intermedis. Entre cada dos punts tenim una pota de la ruta, hi ha una pota menys que punts definits. A més de les comandes que hem comentat més amunt, per mostrar rutes tenim les comandes del cercador de rutes, les de gestió de les rutes i les corresponents a les potes de cada ruta. A continuació en comentem algunes. Es pot trobar informació completa al web de Google.
Les comandes del cercador de rutes són:
| Funció | Descripció | Exemple |
| newDirectionFinder() | Crea un nou cercador de rutes | var adre = Maps.newDirectionFinder(); |
| setAlternatives(bool) | Demanem al cercador que agafi diverses alternatives Si no diem res o posem false només n'agafa una |
adre.setAlternatives(true); |
| setAvoid(evit) | Estableix coses a evitasr en la ruta (autopistes i peatges) |
adre.setAvoid(Maps.DirectionFinder.Avoid.HIGHWAYS); adre.setAvoid(Maps.DirectionFinder.Avoid.TOLLS); |
| setOrigin(adre) | Estableix el punt d'origen de la ruta | adre.setOrigin("FME UPC"); |
| setOrigin(lat, long) | Estableix el punt d'origen de la ruta | adre.setOrigin(41.3851564, 2.1160347); |
| setDestination(adre) | Estableix el punt de destí de la ruta | adre.setDestination("FIB UPC"); |
| setDestination(lat, long) | Estableix el punt de destí de la ruta | adre.setDestination(41.3851564, 2.1160347); |
| addWaypoint(adre) | Força un punt de pas (etapa) per a la ruta | adre.addWaypoint("ETSECCPB UPC"); |
| addWaypoint(lat, long) | Força un punt de pas (etapa) per a la ruta | adre.addWaypoint(41.3851564, 2.1160347); |
| setMode(mode) | Estableix com es farà el recorregut (a peu, en bicicleta o en vehicle motoritzat) |
adre.setMode(Maps.DirectionFinder.Mode.WALKING); adre.setMode(Maps.DirectionFinder.Mode.BICYCLING); adre.setMode(Maps.DirectionFinder.Mode.DRIVING); |
| setDepart(datahora) | Fixa l'hora de sortida (si és aplicable) | var ara = new Date(); var sort = new Date(ara.getTime() + 3600000); adre.setDepart(sort); |
| setArrive(datahora) | Fixa l'hora d'arribada (si és aplicable) | var ara = new Date(); var arrib = new Date(ara.getTime() + 3600000); adre.setArrive(arrib); |
| getDirections() | Agafa les rutes trobades | var recorreguts = adre.getDirections(); |
Les comandes de gestió de les rutes són:
| Funció | Descripció | Exemple |
| routes[i] | Agafa una de les rutes trobades | var ruta = recorreguts.routes[0]; |
| routes.length | Nombre de rutes trobades | recorreguts.routes.length |
| overview_polyline.points | Agafa els punts d'una ruta en forma de polilínia | map.addPath(ruta.overview_polyline.points); |
Les comandes per a les potes de cada ruta són:
| Funció | Descripció | Exemple |
| legs[i]; | Agafa una pota o tram d'un recorregut | var pota = ruta.legs[i]; |
| legs.length | Nombre de potes o trams del recorregut | ruta.legs.length |
| start_location.lat | Latitud del punt d'inici de la pota | pota.start_location.lat |
| start_location.lng | Longitud del punt d'inici de la pota | pota.start_location.lng |
| end_location.lat | Latitud del punt d'inici de la pota | pota.end_location.lat |
| end_location.lng | Longitud del punt d'inici de la pota | pota.end_location.lng |
| duration.text | Durada del recorregut que correspon a la pota | pota.duration.text |
| distance.text | Llargada del recorregut que correspon a la pota | pota.distance.text |
En aquest exemple mostrem com crear mapes que incorporen rutes.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.