Layar
Layar Augmented Reality Plattform für mobile Endgeräte[Bearbeiten]
Links[Bearbeiten]
Layar Wiki mit Tutorials etc.: http://layar.pbworks.com/w/page/7783228/FrontPage
Layar Developer Support: http://devsupport.layar.com/home
Layers testen: http://layar.pbworks.com/w/page/30677258/Test-a-layer
Übersicht[Bearbeiten]
Das brauchst du[Bearbeiten]
- Layar Account (www.layar.com)
- Layar Developer Account (www.layar.com/development)
- Einen Webserver der die POIs liefert
Wie wird ein Layar Layer bereitgestellt - Übersicht[Bearbeiten]
- Layer auf der Publishing Site anlegen unter https://www.layar.com/accounts/login -> Create Layer. Anleitung auf http://layar.pbworks.com/w/page/30676817/Create-a-layer
- Layer Service erzeugen der die POIs und den Content an die Apps liefert.
Layer Service[Bearbeiten]
Der Layer Service ist im Prinzip ein Webserver, der den passenden Content liefert. Das läuft folgendermaßen ab:
- Wenn man den Layer von der Layar Plattform aus testet sendet diese ein GetPOIs request mit einigrn Parametern an den Webservice und zwar an das Skript, daß beim definieren des Layers unter Endpoint URL angegeben wurde.
- Dieses muß nun eine passende JSON Antwort schicken, die die gewünschte Information enthält.
- Die JSON Antwort wird von der Layar Plattform validiert und dann an das Endgerät weitergegeben.
- Die Antwort wird auf dem Endgerät interpretiert und angezeigt.
Porpoise[Bearbeiten]
PorPOISe is a server for Layar clients. It converts your data sets of POIs (Points of Interest) into responses to the Layar client. Things like JSON formatting and distance calculation are all done for you. PorPOISe supports XML files and SQL databases as data stores.
Es könnte so genutzt werden daß Typo3 ein xml File erzeugt das wiederum von porpoise für Layar zur Verfügung gestellt wird.
Quickstart[Bearbeiten]
http://www.slideshare.net/squio/layar-development-on-the-porpoise-platform-4566820
- Download von http://code.google.com/p/porpoise/downloads
- Entpacken z.B. in Verzeichnis /porpoise
- Schützen des config Verzeichnisses (oder sogar woanders hinpacken wo es nicht aus dem Web erreicht werden kann. Wenn es verschoben wird in config.php den Pfad anpassen.
- Aufruf von /web/porpoise.php
- * Wenn ein Fehler kommt class already loaded in porpoise.inc.php folgendes anpassen:
#/** OAuth aware HTTP client */
if (! class_exists('HttpRequest')){
print_r("require class HttpRequest");
require_once("httprequest.class.php");
}
Layar PHP Snippets[Bearbeiten]
Basic webservice[Bearbeiten]
<?php
define( 'LAYERNAME', 'mylayer' );
$hotspots = array();
$response = array(
'hotspots' => $hotspots,
'layer' => LAYERNAME,
'errorCode' => 0,
);
$json = json_encode( $response );
header( 'Content-type: application/json');
echo $json;
?>
JSON Response
{
"hotspots":[],
"layer":"mylayer",
"errorCode":0
}
Return Points of Interest[Bearbeiten]
<?php
$hotspots = array();
$hotspot = array(
'title' => 'Restaurant',
'line2' => '',
'line3' => '',
'line4' => '',
'attribution' => 'Footnote',
'lat' => 48.8 * 1000000.0,
'lon' => 9.2 * 1000000.0
);
$hotspots[] = $hotspot;
?>
POI next to you[Bearbeiten]
<?php
$lat = $_GET['lat'];
$lon = $_GET['lon'];
$hotspot = array(
'title' => 'Sticky POI',
'line2' => 'It sits right',
'line3' => 'next to you',
'line4' => '',
'attribution' => 'footnote',
'lat' => (int)($lat + 0.0005) * 1000000.0),
'lon' => (int)($lon * 1000000.0)
);
?>
Provide actions[Bearbeiten]
<?php
$hotspot = array(
'title' => 'Bäckerei Blank',
...
'actions' => array(
array(
'label' => 'Go to website',
'uri' => 'http://www.hoppala.eu'
)
)
);
?>
3D model[Bearbeiten]
<?php
$hotspot = array(
...
'dimension' => 1,
'object' => array(
'baseURL' => BASEURL,
'full' => MODEL,
'size' => 20 // tell client before loading model
),
'transform' => array(
'angle' => 0,
'rel' => FALSE,
'scale' => 10 // make model 10 times larger
)
);
?>
Beispiele oben von Marc René Gardeya - www.hoppala.eu