drps/php-maptiler

适用于Google/Yandex等地图的瓦片图像

dev-master 2019-02-27 06:11 UTC

This package is auto-updated.

Last update: 2024-09-27 18:51:49 UTC


README

简单的地图瓦片生成器允许使用PHP制作地图瓦片。这允许构建简单的自定义地图。这里不存在任何地理计算,因为我不知道怎么 :) 如果你知道如何使其更好,请fork/pull它;)

要求

  • PHP >= 5.3版本
  • PHP Imagic扩展 >= 3.0版本
  • 大量CPU时间(对于高分辨率图像和高缩放级别)
  • 大量空闲磁盘空间
  • 耐心;)

用法示例

制作基于my-image.jpg的自定义地图。

生成瓦片

//init
$map_tiler = new MapTiler('/full/path/to/my-image.jpg', array(
  'tiles_path' => '/full/path/to/where-store-result/',
  'zoom_max' => 3,
  'format' => 'png',
  'tms' => false,
  'store_structure' => '%d/tile-%d-%d',
));
//execute
try {
  $map_tiler->process(true);
} catch (Exception $e) {
  echo $e->getMessage();
  echo $e->getTraceAsString();
}

使用Leaflet.js显示结果

<html>
<head>
  <link rel="stylesheet" href="dist/leaflet.css" />
</head>
<body>
  <div id="map" style="width: 700px; height: 500px;"></div>
  <script src="dist/leaflet.js"></script>
  <script>

  var tiles = L.tileLayer('tiles-path/{z}/{x}/{y}.jpg', {
    minZoom: 0,
    maxZoom: 3,
    tms: true
  });

  var map = L.map('map', {
    center: [0, 0],
    zoom:1,
    minZoom: 0,
    maxZoom: 3,
    //crs: L.CRS.Simple, //available in dev version
    layers:[tiles]
  });
  </script>
</body>
</html>

API

选项

  • tile_size - 瓦片大小(默认:256);
  • store_structure - 瓦片名称,可以包含/以按文件夹分割zoomxy(默认:%d/%d/%d);
  • force - 如果瓦片已存在,则强制创建新瓦片(默认:false);
  • tms - 使用TMS瓦片寻址,这在OpenLayers或TileCache等开源项目中使用(默认:true);
  • fill_color - 如果瓦片不是正方形,则用于填充空闲空间的颜色(默认:'white');
  • zoom_min - 制作瓦片的最小缩放级别(默认:0);
  • zoom_max - 制作瓦片的最大缩放级别(默认:8);
  • scaling_up - 当基础图像大小小于当前缩放级别所需大小时,允许放大缩放的缩放级别(默认:0);
  • format - 图像格式(默认:jpeg);
  • quality_jpeg - jpeg格式的质量(默认:80);
  • imagick_tmp - ImageMagick的临时文件夹,如果系统/tmp文件夹没有足够的空闲空间,则很有用(默认:null);

公共方法

  • __construct($image_path, $options = array()) - 构造函数
  • setOptions($options) - 可用于设置/更改选项
  • getOptions() - 返回选项数组
  • process($clean_up = false) - 运行瓦片生成的过程,设置$clean_up=true以删除基础缩放图像
  • prepareZoomBaseImages($min = null, $max = null) - 准备基础缩放图像,$min - 最小缩放级别,$max - 最大缩放级别
  • removeZoomBaseImages($min = null, $max = null) - 删除基础缩放图像
  • tilesForZoom($zoom) - 为给定的$zoom级别生成瓦片

注意

此脚本与maptiler.com无关,后者是一个独立的项目。