export_references.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /* Loads all references for the given panorama into a dictionary */
  3. function load_references($image_name) {
  4. $components = pathinfo($image_name);
  5. $celutz_dir = pathinfo($components["dirname"])["dirname"];
  6. $params_file = join("/", array($celutz_dir, "tiles", $components["filename"], "site.params"));
  7. $params = parse_ini_file($params_file);
  8. if (! $params)
  9. return false;
  10. $res = array();
  11. if (! isset($params["reference"]))
  12. return $res;
  13. foreach ($params["reference"] as $name => $position) {
  14. $pos = explode(",", $position);
  15. $res[] = array("pano" => $params["titre"],
  16. "refpoint" => $name,
  17. "x" => (float) $pos[0],
  18. "y" => (float) $pos[1]);
  19. }
  20. return $res;
  21. }
  22. function convert_references($upload_dir) {
  23. $result = array();
  24. foreach (scandir($upload_dir) as $pano) {
  25. if ($pano == "." || $pano == "..")
  26. continue;
  27. $references = load_references($upload_dir . "/" . $pano);
  28. if (! $references)
  29. continue;
  30. $result = array_merge($result, $references);
  31. }
  32. return json_encode($result, JSON_PRETTY_PRINT);
  33. }
  34. if (isset($argv[1])) {
  35. print(convert_references($argv[1] . "/upload"));
  36. } else {
  37. printf("Usage: %s /path/to/celutz\n", $argv[0]);
  38. }
  39. ?>