<?php
namespace imcat;

// extPano
class extPano{

    
//var $xxx; 

    // 全景切图 krcut
    // 参数太长分批? 任务排队?
    
static function krCut($tab$make='umake'$exp=1800){
        
// 设置执行超时时长
        
@ini_set("max_execution_time"$exp);
        @
ini_set("request_terminate_timeout"$exp); // 兼容php-fpm
        
$op KRPATH."/$make.".(IS_WIN?'bat':'sh');
        
//die("$op $tab"); // "/xxx/umake.bat /dir/a.jpg /dir/b.jpg"
        
$res exec("$op $tab");
        return 
$res;
    }

    
// 合并百度全景图, z=0-5, bdJoin
    
static function bdJoin($sid$z=3$d='mapsv0'){
        
$url0 "https://$d.bdimg.com/?qt=pdata&sid=$sid&pos=0_0&z=$z";
        
$x pow(2, ($z-1));
        
$a $z>? ($x/2)-0;
        
$b $z>? ($x-1) : 0; echo "<b>z=$z{$a}_{$b}</b><br>";
        
$cw = [0=>1001=>512];
        
$ch = [0=>751=>256];
        
$w = isset($cw[$z]) ? $cw[$z] : ($b+1) * 512
        
$h = isset($ch[$z]) ? $ch[$z] : ($a+1) * 512;
        
$arr = []; 
        
$img imagecreatetruecolor($w$h); //新建一个真彩图像
        
for($i=0$i<=$a;$i++){ 
            for(
$j=0;$j<=$b;$j++){
                
$k "{$i}_{$j}"; echo "$k, ";
                
$url str_replace('0_0'$k$url0);
                
$data comHttp::doGet($url);
                
$itm imagecreatefromstring($data);
                
imagecopy($img$itm$j*512$i*51200512512);
                
//$arr[$i][$j] = $data;
            
} echo "<br>";
        } 
//dump($arr);
        
return $img;
    } 

    
// 
    
function xxx(){ 
        
//@exec("ifconfig -a", $this->return_array); 
        
return $this->xxx
    } 

}

/*

--------------------------------- 

### 全景切图 demo

  # tab
    $rp = 'E:/dir/path';
    $tab = "$rp/quan-img1.jpg $rp/quan-img2.jpg";
    $res = extPano::krCut($tab);
    var_dump($res);
  # op
    win : umake.bat
    linux : umake.sh

--------------------------------- 

### 百度全景图分析

* demo
    $img = extPano::bdJoin($sid, $zoom);
    imagejpeg($img, "E:/Webs/pano/org-test/pano-baidu/$sid-z$zoom.jpg");

* 样例图分析
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=0_0&z=0
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=0_0&z=1
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=0_1&z=2 2^1=2
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=1_3&z=3 2^2=4
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=3_7&z=4 2^3=8
  - https://mapsv0.bdimg.com/?qt=pdata&sid=09006600121707221510490468P&pos=7_15&z=5 2^4=16
  -  128 + 32 + 8 + 2 + 2

* 域名和参数
  - 域名:mapsv0.bdimg.com 或 mapsv1.bdimg.com,这个应该是cdn域名
  - sid:场景id,打开任意全景图,从地址栏复制出来
  - pos图片切片位置,与z缩放级别同时使用,对应如下

* z缩放级别
  - 一共6个级别:从0-5
  - pos=0_0&z=0 缩略图
  - pos=0_0&z=1 最小的全景图
  - pos=0_1&z=2 由0_0, 0_1 共2幅 组成的全景图
  - pos=1_3&z=3 由0_0 ~ 1_3 共2x4幅 组成的全景图
  - pos=3_7&z=4 由0_0 ~ 3_7 共4x8幅 组成的全景图 
  - pos=7_15&z=5 由0_0 ~ 7_15 共8x16幅 组成的全景图

--------------------------------- 

*/