drps / php-maptiler
适用于Google/Yandex等地图的瓦片图像
dev-master
2019-02-27 06:11 UTC
Requires
- ext-imagick: *
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- 瓦片名称,可以包含/以按文件夹分割zoom、x、y(默认:%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无关,后者是一个独立的项目。