Layar

Aus Wikizone
Version vom 11. Juni 2011, 12:14 Uhr von 94.216.255.127 (Diskussion)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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 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:

  1. 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.
  2. Dieses muß nun eine passende JSON Antwort schicken, die die gewünschte Information enthält.
  3. Die JSON Antwort wird von der Layar Plattform validiert und dann an das Endgerät weitergegeben.
  4. 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