Google Street View Panorama Tiles generátor

Technológia vlastnej 3D prehliadky prostredníctvom Google Street View je pomerne rozšírená a poskytuje skvelú možnosť prehliadania sférických fotografií. Viac o tejto službe nájdete na oficiálnej stránke k API dokumentácii:

https://developers.google.com/maps/documentation/javascript/examples/streetview-custom-simple

Pri Google Street View je potrebné mať sférickú fotografiu rozdelenú na 32 menších častí s rovnakým pomerom strán (dlaždice, alebo tiles), pričom každá dlaždica má presný názov. Samotná sférická fotografia vždy bude mať pomer strán šírka k výške 2:1.

Vlastné Google Street View

Označenie fotografií pre implementáciu do Google Street View

Najčastejším problémom pri integrácii Google Street View s vlastnou fotografiou na web je práve získanie týchto dlaždíc s presným pomenovaním zo zdrojovej fotografie. Fotografiu je možné v grafických editoroch, napríklad Adobe Photoshop prostredníctvom nástroja Slice Tool rozdeliť na 4 riadky a 8 stĺpcov, potom rozdelený obrázok exportovať do separátnych súborov / dlaždíc a tie ešte bude potrebné premenovať. Pri spracovaní viacerých fotiek je to veľmi zdĺhavé a prácne. Pokúšal som sa nájsť nejaký nástroj – generátor dlaždíc pre automatizované spracovanie sférických fotografií pre integráciu do Google Street View, ale nič vhodné som nenašiel. Možno som iba zle hľadal, ale napriek tomu v texte nižšie spomeniem moje vlastné riešenie na báze PHP – generátor dlaždíc pre Google Street View, ktoré možno niekomu pomôže.

PHP generátor

PHP kód nižšie zabezpečuje nasledovné:

Vstupnú kontrolu, či sférická fotografia má správny pomer strán 2:1
Vypočíta výšku a šírku dlaždíc zo vstupného obrázka
Obrázok rozdelí na 32 dlaždíc
Každú dlaždicu pomenuje podľa dokumentácie (obrázok vyššie) a uloží do adresára tiles

<?php

$source 
= @imagecreatefromjpeg("source.jpg");
$source_width imagesx($source);
$source_height imagesy($source);

$width = ($source_width/8);
$height = ($source_height/4);
$tile '0';
$tilerow '0';


if(
$source_width/$source_height!='2')
{
echo 
'Sférická fotografia musí mať pomer strán 2:1';
}
else
{

for(
$col 0$col $source_width/$width$col++)
{
    for(
$row 0$row $source_height/$height$row++)
    {
      
$fn "tiles/".$tile."-".$tilerow.".jpg";
      echo 
'Vytvorený tile: '.$fn."<br>";
      if(
$tilerow==3) {
      
$tilerow '0';
      
$tile++;
      echo 
'<hr>';
      }
      else {
      
$tilerow++;
      }
      
      
$im = @imagecreatetruecolor($width,$height);
      
imagecopyresized($im,$source,0,0,$col*$width,$row*$height,$width,$height,$width,$height);
      
imagejpeg($im,$fn);
      
imagedestroy($im);
      }
    }
}

?>

Tento skript stačí spustiť na localhoste, alebo na webovom serveri, zmeniť source.jpg na názov nášho súboru – sférickej fotografie a mať vytvorený adresár tiles, do ktorého sa uložia vygenerované dlaždice. Tie sú potom okamžite použiteľne do Street View. Tiež môžeme zmeniť formát dlaždíc na webp, v tom prípade je potrebné na konci skriptu funkciu imagejpeg nahradiť funkciou imagewebp.

https://developers.google.com/maps/documentation/javascript/examples/streetview-custom-simple

Pridať komentár k článku