Advertisement
rodrigopolo

SqlDistancia

Feb 24th, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.95 KB | None | 0 0
  1. -- Table:
  2. CREATE TABLE `locations` (
  3.   `id` INT(11) AUTO_INCREMENT,
  4.   `name` VARCHAR(256),
  5.   `lat` DOUBLE(18,15),
  6.   `lng` DOUBLE(18,15),
  7.   PRIMARY KEY (`id`),
  8.   KEY `lat` (`lat`),
  9.   KEY `lng` (`lng`)
  10. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
  11.  
  12. -- Data:
  13. INSERT INTO `locations` VALUES(55, 'BanTrab - A. Galerias del Sur', 14.590713172952510, -90.560385000652300);
  14. INSERT INTO `locations` VALUES(53, 'BanTrab - A. Futeca Naranjo', 14.653232285468127, -90.540238928741460);
  15. INSERT INTO `locations` VALUES(52, 'BanTrab - A. Diagonal 6', 14.602115821934486, -90.510101628250130);
  16. INSERT INTO `locations` VALUES(7, 'Auto Farmacias del Ejecutivo', 14.573000000000000, -90.488500000000000);
  17. INSERT INTO `locations` VALUES(8, 'Casa del Diabetico', 14.639390283847163, -90.522176933235220);
  18. INSERT INTO `locations` VALUES(9, 'Drogeria y Super Farmacia Jose Gil', 14.645496546395943, -90.511477601474770);
  19. INSERT INTO `locations` VALUES(10, 'Farmacias del Hogar', 14.637952575545441, -90.517665457672140);
  20. INSERT INTO `locations` VALUES(11, 'Farmacia Galeno', 14.630857321150437, -90.515879106468220);
  21. INSERT INTO `locations` VALUES(12, 'Liga del Diabetico', 14.640135085706197, -90.519765627330780);
  22. INSERT INTO `locations` VALUES(13, 'Liga Guatemalteca del Corazón', 14.634864325496109, -90.518282365745580);
  23. INSERT INTO `locations` VALUES(14, 'Farmacias Meycos Martí', 14.651862137558927, -90.512113285011320);
  24. INSERT INTO `locations` VALUES(15, 'Farmacias Meycos Morazán', 14.650232480785856, -90.512703370994610);
  25. INSERT INTO `locations` VALUES(16, 'Auto Farmacias del Ejecutivo', 14.627890948916210, -90.494391930049910);
  26. INSERT INTO `locations` VALUES(17, 'Farmacias Meycos - Jardines', 14.626647811625167, -90.496363353675860);
  27. INSERT INTO `locations` VALUES(18, 'Drogeria y Super Farmacia Jose Gil', 14.650268810846930, -90.494284641689320);
  28. INSERT INTO `locations` VALUES(19, 'Farmacia BJ&C', 14.656400719694240, -90.495167088455220);
  29. INSERT INTO `locations` VALUES(20, 'BanTrab - A. 21 Calle', 14.629061412040103, -90.519961428588890);
  30. INSERT INTO `locations` VALUES(21, 'Otro', 14.594547000000000, -90.517644000000000);
  31. INSERT INTO `locations` VALUES(22, 'BanTrab - A. Atanasio Tzul', 14.594547000000000, -90.517644000000000);
  32. INSERT INTO `locations` VALUES(23, 'BanTrab - A. Autobanco - Carabanchel', 14.621898391398570, -90.549243104404480);
  33. INSERT INTO `locations` VALUES(24, 'BanTrab - A. Bolivar', 14.614257578531554, -90.533383202499400);
  34. INSERT INTO `locations` VALUES(25, 'BanTrab - A. Walmart Bosques de San Nicolas', 14.654444132634634, -90.568200957721730);
  35. INSERT INTO `locations` VALUES(27, 'Radiovision - Zona 9 (1)', 14.602219644841664, -90.523115706390400);
  36. INSERT INTO `locations` VALUES(28, 'Radiovision - Calzada Roosevelt', 14.627070842432852, -90.559802961296110);
  37. INSERT INTO `locations` VALUES(29, 'Radiovision - Los Proceres', 14.594567765299775, -90.515610885566730);
  38. INSERT INTO `locations` VALUES(30, 'Radiovision - Zona 9 (2)', 14.598933626058448, -90.521173787063620);
  39. INSERT INTO `locations` VALUES(31, 'Radiovision - Zona 4', 14.620751248270635, -90.515272927230840);
  40. INSERT INTO `locations` VALUES(32, 'Radiovision - Zona 1', 14.639198243933128, -90.515787911361730);
  41. INSERT INTO `locations` VALUES(33, 'Radiovision - Carr. a El Salvador', 14.558620099480216, -90.461961340850830);
  42. INSERT INTO `locations` VALUES(34, 'Radiovision - Zona 9 (3)', 14.612051452010865, -90.516968083328280);
  43. INSERT INTO `locations` VALUES(35, 'Radiovision - Peri-Roosevelt', 14.626014561530360, -90.555506062454240);
  44. INSERT INTO `locations` VALUES(36, 'Progreso - Zona 1', 14.632837475577060, -90.515959572738670);
  45. INSERT INTO `locations` VALUES(39, 'Progreso - Zona 1 (2)', 14.639919690306243, -90.511241567081480);
  46. INSERT INTO `locations` VALUES(40, 'Progreso - Mega6', 14.661691721045774, -90.495075893348730);
  47. INSERT INTO `locations` VALUES(41, 'Progreso - Zona 9', 14.599836896777578, -90.521071863121050);
  48. INSERT INTO `locations` VALUES(42, 'Progreso - Petapa', 14.583167321017758, -90.546075415557880);
  49. INSERT INTO `locations` VALUES(43, '& Café - Miraflores', 14.620746057564050, -90.553344201988240);
  50. INSERT INTO `locations` VALUES(51, 'BanTrab - A. Condado Concepción', 14.555359391525702, -90.456468176788360);
  51. INSERT INTO `locations` VALUES(47, 'BanTrab - A. Calle Martí', 14.650990220792837, -90.501025032943740);
  52. INSERT INTO `locations` VALUES(48, 'BanTrab - A. Calzada Roosevelt', 14.632315837677760, -90.568461131996170);
  53. INSERT INTO `locations` VALUES(49, 'BanTrab - A. Central', 14.605687301782480, -90.515959572738680);
  54. INSERT INTO `locations` VALUES(50, 'BanTrab - A. Centro Cívico', 14.630218892716767, -90.514143717235580);
  55. INSERT INTO `locations` VALUES(56, 'BanTrab - A. Walmart del Norte', 14.647450618299090, -90.480254006332400);
  56. INSERT INTO `locations` VALUES(57, 'BanTrab - A. Walmart Roosevelt', 14.624654624826380, -90.558413577026390);
  57. INSERT INTO `locations` VALUES(58, 'BanTrab - A. Mixco Norte', 14.680342843237508, -90.623269391006460);
  58. INSERT INTO `locations` VALUES(59, 'BanTrab - A. Montufar', 14.602894492543536, -90.525969576782230);
  59. INSERT INTO `locations` VALUES(60, 'BanTrab - A. Parroquia', 14.650912370913040, -90.500064802116400);
  60. INSERT INTO `locations` VALUES(61, 'BanTrab - A. Petapa', 14.582238023810843, -90.546491157955200);
  61. INSERT INTO `locations` VALUES(62, 'BanTrab - A. Próceres', 14.586064211167740, -90.499673199600240);
  62. INSERT INTO `locations` VALUES(63, 'BanTrab - A. San Cristóbal', 14.602650509382855, -90.580895852989220);
  63. INSERT INTO `locations` VALUES(64, 'BanTrab - A. San Juan', 14.640101349090822, -90.566310000366260);
  64. INSERT INTO `locations` VALUES(65, 'BanTrab - A. Tikal Futura', 14.623138960254543, -90.553440761512760);
  65. INSERT INTO `locations` VALUES(66, 'BanTrab - A. Villa Nueva', 14.515053481522513, -90.576255631393420);
  66. INSERT INTO `locations` VALUES(67, 'BanTrab - A. Villa Nueva (2)', 14.510893692764611, -90.580021452850360);
  67. INSERT INTO `locations` VALUES(68, 'BanTrab - A. Zona 1', 14.637924028895329, -90.512644362396270);
  68. INSERT INTO `locations` VALUES(69, 'BanTrab - A. Zona 4', 14.621789387105510, -90.519070935195940);
  69. INSERT INTO `locations` VALUES(70, 'BAM - ZONA 1', 14.632201648121340, -90.513749432510400);
  70. INSERT INTO `locations` VALUES(71, 'BAM - FUNDACION', 14.641347005275268, -90.514618468231230);
  71. INSERT INTO `locations` VALUES(72, 'BAM - DEL CENTRO', 14.640225915027639, -90.512708735412620);
  72. INSERT INTO `locations` VALUES(73, 'BAM - CENTRO CÍVICO', 14.627732637460300, -90.513604593223620);
  73. INSERT INTO `locations` VALUES(74, 'BAM - PARQUE COLON', 14.640371241864258, -90.507601809448270);
  74. INSERT INTO `locations` VALUES(75, 'BAM - 23 CALLE', 14.627353727610378, -90.521291804260290);
  75.  
  76. -- Query:
  77. SET @lat := 14.54263363081445;
  78. SET @lng := -90.52135705947876;
  79. SELECT
  80.     name,
  81.     CEIL(( 6371000 * acos( cos( radians( @lat ) ) * cos( radians( l.lat ) ) * cos( radians( l.lng ) - radians( @lng ) ) + sin( radians( @lat ) ) * sin( radians( l.lat ) ) ) )) AS distance_mts
  82. FROM
  83.     `locations` AS l
  84. ORDER BY `distance_mts` ASC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement