En Google Drive podemos crear scripts (Google App Script) para llevar a cabo tareas variadas.
Para el caso que nos ocupa, los pasos a seguir son:
1.- Crearemos una hoja de cálculo en Google Drive
2.- En la primera columna insertaremos las direcciones de las que queremos obtener las coordenadas
3.- Pulsamos sobre la entrada de menú "Herramientas" > "Editor de secuencia de comandos" y añadimos el siguiente código
function geoCode() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 0; i < cells.length; i++) {
var address = cells[i][0];
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
latitudes.push([res.geometry.location.lat]);
longitudes.push([res.geometry.location.lng]);
}
sheet.getRange('B1').offset(0, 0, latitudes.length).setValues(latitudes)
sheet.getRange('C1').offset(0, 0, latitudes.length).setValues(longitudes);
}
4.- Le daremos un nombre al proyecto, por ejemplo "Geocodificar direcciones" y lo guardaremos.
5.- Tras guardarlo, ejecutamos el código pulsando sobre el icono: "Ejecutar"
6.- Tendremos que permitir al script la escritura en nuestra hoja de cálculo
7.- Una vez finalizada la ejecución, tendremos en la segunda y tercera columna, la latitud y longitud respectivamente
el código tiene algún error?? he tratado de ejecutarlo y me dice que no se puede leer la propiedad Geometry de undefined en la linea 15
ResponderEliminarAparentemente el código es correcto. La propiedad debe ser "geometry" en minúsculas. Lo tienes así, ¿verdad?
Eliminarvar geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
Comprueba por favor que en el fichero excel no tengas ninguna celda en blanco o revisa la codificación del fichero por si existiera algún problema al respecto.
Hola netic360, tú información me fue de gran ayuda, sin embargo me dió el mismo error de "geometry" pero lo pude solucionar, resulta que el problema se encuentra en las casillas de exel por ende es importante "limpiar" en mi caso tenía una lista de direcciones que contenian el nombre de la calle y además otros datos como número de oficina por ejemplo "Mac-Iver 345 Oficina 23" lo que hize fue dejarlo en "Mac Iver 345, Santiago" saque el guión y el dato de la oficina y agregue la ciudad ya que se pueden asignar coordenadas de otros lugares
Eliminarveo que funciona bien pero cuando encuentra error se para y podría ser útil que cuando el algoritmo encuentre una celda con error la deje en blanco y salte a la siguiente linea, es posible poner esa linea en este código y como?
ResponderEliminar