fork(1) download
  1. <?php
  2.  
  3. function Descompacta($string) {
  4.  
  5. $myArray = [];
  6. $str;
  7. $str2;
  8. $arr;
  9. $arr2;
  10. $lat;
  11. $lng;
  12. $f;
  13. $strings = explode(" ",$string);
  14.  
  15. for ($i=0; $i<count($strings); $i++) {
  16.  
  17. $str = $strings[$i];
  18. $str2 = '';
  19. $arr = [];
  20. $arr2 = [];
  21.  
  22. for ($j=0; $j<strlen($str); $j++) {
  23.  
  24. switch (substr($str, $j, 1)) {
  25.  
  26. case 'A': $str2 .= ',0'; break;
  27. case 'B': $str2 .= ',1'; break;
  28. case 'C': $str2 .= ',-1'; break;
  29. case 'D': $str2 .= ',2'; break;
  30. case 'E': $str2 .= ',-2'; break;
  31. case 'F': $str2 .= ',3'; break;
  32. case 'G': $str2 .= ',-3'; break;
  33. case 'H': $str2 .= ',4'; break;
  34. case 'I': $str2 .= ',-4'; break;
  35. case 'J': $str2 .= ',5'; break;
  36. case 'K': $str2 .= ',-5'; break;
  37. case 'L': $str2 .= ',6'; break;
  38. case 'M': $str2 .= ',-6'; break;
  39. case 'N': $str2 .= ',7'; break;
  40. case 'O': $str2 .= ',-7'; break;
  41. case 'P': $str2 .= ',8'; break;
  42. case 'Q': $str2 .= ',-8'; break;
  43. case 'R': $str2 .= ',9'; break;
  44. case 'S': $str2 .= ',-9'; break;
  45. default: $str2 .= substr($str, $j, 1);
  46. }
  47. }
  48.  
  49. $arr = explode(",", $str2);
  50. $f = array_shift($arr);
  51. $lng = intval($arr[0])/$f;
  52. $lat = intval($arr[1])/$f;
  53. array_push($arr2,[$lat, $lng]);
  54.  
  55. for ($j=2; $j<count($arr); $j+=2) {
  56.  
  57. $lng += intval($arr[$j])/$f;
  58. $lat += intval($arr[$j+1])/$f;
  59. array_push($arr2,[$lat, $lng]);
  60. }
  61.  
  62. array_push($myArray,$arr2);
  63. }
  64.  
  65. return $myArray;
  66. }
  67.  
  68. $output = Descompacta('1000I6575E3374BCBAACBABABABABBABBAABBBABBAABBABBDABAABBBABBAABBAABBABAABBBABBAABBBABBBBAABBAACBABCBABAABBABCBAACBCACB');
  69.  
  70. var_dump($output);
Success #stdin #stdout #stderr 0.02s 24400KB
stdin
Standard input is empty
stdout
array(1) {
  [0]=>
  array(53) {
    [0]=>
    array(2) {
      [0]=>
      float(-23.374)
      [1]=>
      float(-46.575)
    }
    [1]=>
    array(2) {
      [0]=>
      float(-23.375)
      [1]=>
      float(-46.574)
    }
    [2]=>
    array(2) {
      [0]=>
      float(-23.375)
      [1]=>
      float(-46.573)
    }
    [3]=>
    array(2) {
      [0]=>
      float(-23.376)
      [1]=>
      float(-46.573)
    }
    [4]=>
    array(2) {
      [0]=>
      float(-23.376)
      [1]=>
      float(-46.572)
    }
    [5]=>
    array(2) {
      [0]=>
      float(-23.376)
      [1]=>
      float(-46.571)
    }
    [6]=>
    array(2) {
      [0]=>
      float(-23.376)
      [1]=>
      float(-46.57)
    }
    [7]=>
    array(2) {
      [0]=>
      float(-23.376)
      [1]=>
      float(-46.569)
    }
    [8]=>
    array(2) {
      [0]=>
      float(-23.375)
      [1]=>
      float(-46.568)
    }
    [9]=>
    array(2) {
      [0]=>
      float(-23.374)
      [1]=>
      float(-46.568)
    }
    [10]=>
    array(2) {
      [0]=>
      float(-23.374)
      [1]=>
      float(-46.567)
    }
    [11]=>
    array(2) {
      [0]=>
      float(-23.373)
      [1]=>
      float(-46.567)
    }
    [12]=>
    array(2) {
      [0]=>
      float(-23.372)
      [1]=>
      float(-46.566)
    }
    [13]=>
    array(2) {
      [0]=>
      float(-23.371)
      [1]=>
      float(-46.566)
    }
    [14]=>
    array(2) {
      [0]=>
      float(-23.371)
      [1]=>
      float(-46.565)
    }
    [15]=>
    array(2) {
      [0]=>
      float(-23.37)
      [1]=>
      float(-46.565)
    }
    [16]=>
    array(2) {
      [0]=>
      float(-23.37)
      [1]=>
      float(-46.564)
    }
    [17]=>
    array(2) {
      [0]=>
      float(-23.369)
      [1]=>
      float(-46.563)
    }
    [18]=>
    array(2) {
      [0]=>
      float(-23.369)
      [1]=>
      float(-46.561)
    }
    [19]=>
    array(2) {
      [0]=>
      float(-23.369)
      [1]=>
      float(-46.56)
    }
    [20]=>
    array(2) {
      [0]=>
      float(-23.368)
      [1]=>
      float(-46.56)
    }
    [21]=>
    array(2) {
      [0]=>
      float(-23.367)
      [1]=>
      float(-46.559)
    }
    [22]=>
    array(2) {
      [0]=>
      float(-23.366)
      [1]=>
      float(-46.559)
    }
    [23]=>
    array(2) {
      [0]=>
      float(-23.366)
      [1]=>
      float(-46.558)
    }
    [24]=>
    array(2) {
      [0]=>
      float(-23.365)
      [1]=>
      float(-46.558)
    }
    [25]=>
    array(2) {
      [0]=>
      float(-23.365)
      [1]=>
      float(-46.557)
    }
    [26]=>
    array(2) {
      [0]=>
      float(-23.364)
      [1]=>
      float(-46.557)
    }
    [27]=>
    array(2) {
      [0]=>
      float(-23.364)
      [1]=>
      float(-46.556)
    }
    [28]=>
    array(2) {
      [0]=>
      float(-23.364)
      [1]=>
      float(-46.555)
    }
    [29]=>
    array(2) {
      [0]=>
      float(-23.363)
      [1]=>
      float(-46.555)
    }
    [30]=>
    array(2) {
      [0]=>
      float(-23.362)
      [1]=>
      float(-46.554)
    }
    [31]=>
    array(2) {
      [0]=>
      float(-23.361)
      [1]=>
      float(-46.554)
    }
    [32]=>
    array(2) {
      [0]=>
      float(-23.361)
      [1]=>
      float(-46.553)
    }
    [33]=>
    array(2) {
      [0]=>
      float(-23.36)
      [1]=>
      float(-46.553)
    }
    [34]=>
    array(2) {
      [0]=>
      float(-23.359)
      [1]=>
      float(-46.552)
    }
    [35]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.552)
    }
    [36]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.551)
    }
    [37]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.55)
    }
    [38]=>
    array(2) {
      [0]=>
      float(-23.356)
      [1]=>
      float(-46.55)
    }
    [39]=>
    array(2) {
      [0]=>
      float(-23.356)
      [1]=>
      float(-46.549)
    }
    [40]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.549)
    }
    [41]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.548)
    }
    [42]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.547)
    }
    [43]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.546)
    }
    [44]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.545)
    }
    [45]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.545)
    }
    [46]=>
    array(2) {
      [0]=>
      float(-23.357)
      [1]=>
      float(-46.544)
    }
    [47]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.543)
    }
    [48]=>
    array(2) {
      [0]=>
      float(-23.358)
      [1]=>
      float(-46.542)
    }
    [49]=>
    array(2) {
      [0]=>
      float(-23.359)
      [1]=>
      float(-46.542)
    }
    [50]=>
    array(2) {
      [0]=>
      float(-23.36)
      [1]=>
      float(-46.541)
    }
    [51]=>
    array(2) {
      [0]=>
      float(-23.361)
      [1]=>
      float(-46.541)
    }
    [52]=>
    array(2) {
      [0]=>
      float(-23.361)
      [1]=>
      float(-46.54)
    }
  }
}
stderr
PHP Notice:  Undefined offset: 105 in /home/xMNZOc/prog.php on line 58