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.
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.
Pridať komentár k článku