Простой скрипт PHP, который можно использовать для загрузки данных мозаичной карты (PBF) напрямую из файла MBTiles - PullRequest
0 голосов
/ 07 мая 2019
    <?php

  $z = $_GET['z'];
  $x = $_GET['x'];
  $y = $_GET['y'];

  try {
    $conn = new PDO("sqlite:output.mbtiles");

    $z = floatval($z);
    $y = floatval($y);
    $x = floatval($x);
    $flip = true;
    if ($flip) {
      $y = pow(2, $z) - 1 - $y;
    }

    $sql = "SELECT * FROM tiles WHERE zoom_level = $z AND tile_column = $x AND tile_row = $y";
    $q = $conn->prepare($sql);
    $q->execute();

    $q->bindColumn(1, $zoom_level);
    $q->bindColumn(2, $tile_column);
    $q->bindColumn(3, $tile_row);
    $q->bindColumn(4, $tile_data, PDO::PARAM_LOB);

    if ($data = $q->fetch()) {
      do {
        header('Access-Control-Allow-Origin: *');
        header('Content-Type: application/octet-stream');
        header('Content-Encoding: gzip');
        echo $tile_data;
      } while ($data = $q->fetch());
    }
    else {
      header('Access-Control-Allow-Origin: *');
      header('HTTP/1.1 204 No Content');
      header('Content-Type: application/json; charset=utf-8');
      echo '{ "message": "Tile does not exist" }';
    }
  }
  catch(PDOException $e) {
    print 'Exception : '.$e->getMessage();
  }

?>

Выше приведен код php для получения данных pbf из sqlite mbtiles.Но я не могу получить никаких данных.

Я прошел по ссылке ниже https://github.com/tmnnrs/mbtiles-php

, но не смог понять, как это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...