[Script Legal] Script de ordenacion de pueblos por distancia

  • Autor de hilo DeletedUser43776
  • Fecha de inicio

DeletedUser43776

Guest
  • Explicacion de para que sirve: Para saber de que pueblos apoyando a un pueblo son los que estan mas cerca y mas lejos
  • Como hacerlo funcionar: Plaza de reuniones -> Tropas
  • Nombre de la entrada: El que mas os guste
  • URL de imagen: --
  • URL de destino: --
Código:
javascript:

/*Calcular distancia entre dos pueblos*/
function calcularDistancia(str1, str2){
  var coord_x1;
  var coord_y1;
  var coord_x2;
  var coord_y2;
  var res;

  str1_aux = str1.split('(')[1];
  str1_aux = str1_aux.split('|');
  coord_x1 = parseInt(str1_aux[0]);
  coord_y1 = parseInt(str1_aux[1].split(')')[0]);

  coord_x2 = parseInt(str2.split('|')[0]);
  coord_y2 = parseInt(str2.split('|')[1]);

  res = Math.sqrt(Math.pow(Math.abs(coord_x1 - coord_x2), 2) + Math.pow(Math.abs(coord_y1 - coord_y2), 2));

  return res.toFixed(2);
}

/*Ordenar diccionario con distancias*/
function sortJsObject(some_dict) {

  var sortable = [];
  for (var vehicle in some_dict) {
    sortable.push([vehicle, some_dict[vehicle]]);
  }

  sortable.sort(function(a, b) {
    return a[1] - b[1];
  });
  return sortable;
}

var doc = document;
var nombre, nombre_aux, nombre_pueblo;
var partes;
var dist;
var tabla_apoyos = doc.getElementById('units_home');
var tablas = doc.getElementsByClassName("box menu nowrap");
var my_dict = {};

/*Sacar las coordenadas del pueblo actual*/
coords = tablas[0].rows[0].cells[3].innerHTML;
partes = coords.split('(')[1];
coords_pueblo_actual = partes.split(')')[0];

for (var r = 2, n = tabla_apoyos.rows.length-2; r < n; r++) {
  nombre = tabla_apoyos.rows[r].cells[0].innerHTML;
  nombre = nombre.split('\">')[2];
  nombre_aux = nombre.split("<")[0];
  dist = calcularDistancia(nombre_aux, coords_pueblo_actual);

  my_dict[nombre_aux] = dist;
}

my_list = sortJsObject(my_dict);

var texto_result = '';
for (var i = 0; i < my_list.length; i++){
  texto_result += my_list[i][0];
  texto_result += ' ---- Distancia: ';
  texto_result += my_list[i][1];
  texto_result += '<br>';
}

var popup = window.open("about:blank", "Extractor de coordenadas", "width=380,height=500, top=85,left=50, scrollbars=1");
popup.document.open('text/html','replace');
popup.document.write(texto_result);
popup.document.close();
 
Arriba