J'ai des adresses à venir de importrange
et j'utilise ce script pour obtenir des coordonnées.
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Geo 4')
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 0; i < cells.length; i++) {
var address = cells[i][11];
if (address == "") {
latitudes.Push([""]);
longitudes.Push([""]);
} else {
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
if(res){
latitudes.Push([res.geometry.location.lat]);
longitudes.Push([res.geometry.location.lng]);
}
else
{
latitudes.Push([0]);
longitudes.Push([0]);
}
}
sheet.getRange('O1').offset(0, 0, latitudes.length).setValues(latitudes)
sheet.getRange('P1').offset(0, 0, latitudes.length).setValues(longitudes);
}
}
Le problème est que j'ai cela en cours d'exécution sur une gâchette toutes les 6 heures, mais j'ai besoin de quelque chose qui obtiendrait des coordonnées dès que l'une des modifications d'adresse sans exécuter toute la colonne et l'utilisation des 1000 géocodes que vous obtenez par jour. J'ai environ 350 adresses constamment mais peut-être trois changements par jour.
Une fidélisation de feuille de calcul, comme celle qui fait IMPORTRANGE
résultats sont mises à jour, n'activez généralement pas de déclenchement, uniquement des modifications apportées par l'utilisateur à l'aide de l'interface utilisateur de Google ou des modifications de la structure de feuille de calcul, comme l'insertion d'une ligne. Que diriez-vous de l'algorithme suivant?
Préparation
Faites une copie des résultats de IMPORTRANGE
Cela pourrait être fait manuellement ou en utilisant une autre fonction de script.
Sur chaque exécution de déclenchement à la fois
Lisez les résultats actuels de IMPORTRANGE
à partir de la feuille de calcul et des valeurs de la copie des résultats de IMPORTRANGE
En utilisant une boucle
IMPORTRANGE
avec la copie des résultats de IMPORTRANGE
Mettre à jour la feuille de calcul
IMPORTRANGE