Avertissement
Cette page est en cours de construction et ne contient pas la totalité des possibilités de l'API.
L'interface de communication
Bretagne 3D est une plate-forme ouverte permettant de localiser des informations. Elle utilise le format AML (dérivé du format GML) et permet également de lire des fichiers au format KML.



Sommaire
  1. Présentation générale
  2. Elements simples
    1. Placemarks
    2. Geometries
    3. Description
    4. Folders
    5. Point de vue

  3. Paramètres avancés
    1. Styles
    2. Serveur de données géographiques
Présentation générale
Voici un exemple de fichier AML simple. (Vous pouvez visualiser ce fichier dans Bretagne3D en cliquant ici.)
<?xml version="1.0" encoding="UTF-8"?>
<aml xmlns="http://www.archivideo.com/aml/1.0">
<Placemark>
 <name>Rennes</name>
 <description>La ville de Rennes</description>
 <Point>
  <coordinates>301288, 2353708, 5161</coordinates>
 </Point>
</Placemark>
</aml>
Dans un fichier AML, les coodonnées sont exprimées en Lambert II étendu, le système de projection natif de la base 3D.
Lors de la lecture d'un fichier KML, les coordonnées Latitude/Longitude sont converties en Lambert II.
Ce fichier est consitué de plusieurs sections:
  • un entête XML.
    C'est obligatoirement la première ligne du fichier.
  • une déclaration AML.
    C'est la ligne 2 de tout fichier AML.
  • la description des objets à afficher.
    Dans notre cas, il s'agit d'une Placemark.

Placemarks
La Placemark est l'élément de base utilisé dans Bretagne 3D. Elle permet de localiser un endroit précis dans la base 3D. La syntaxe est la suivante:
<Placemark>
 <name>Nom de la placemark</name>
 <description>La description complète...</description>
 <Point>
  <coordinates>X, Y, Z</coordinates>
 </Point>
</Placemark>
Les utilisateurs considèrent souvent que la représentation d'une Placemark est un icone. En fait, une Placemark n'a pas de représentation. Dans l'exemple précedent, la Placemark contient un Point qui est lui même représenté par l'icone. Une Placemark peut contenir différents types d'objets tel que des Polygones, des objets 3D.
Les différentes options de positionnement (par rapport au sol) sont présentés dans ce fichier.

Geometries
Point
Le Point est l'élément de base de la localisation. Il est materialisé par une icone (voir Placemarks).
Polygones
Bretagne 3D est capable d'afficher des polygones.

Actuellement, l'application n'affiche pas les polygones. Le bug #00012 couvrant ce problème est en cours de traitement.
Objet 3D
L'inclusion d'objet 3D exterieur est possible au format Open Scen Graph:
  1. directement depuis l'interface en utilisant la commande Ouvrir du gestionnaire de couche.
  2. via un fichier AML réferençant le fichier OSG a charger.
    Dans ce cas, le fichier peut etre distant et sera téléchargé au moment voulu.
Dans tous les cas, les objets devront être positionné en projection Lambert II étendu, décalée de -600000 en X et -2220000 en Y. L'exemple suivant explique la marche à suivre.
<?xml version="1.0" encoding="UTF-8"?>
<aml xmlns="http://www.archivideo.com/aml/0.8">
 <Placemark>
  <clickable>1</clickable>
  <name>Lycée Zola</name>
  <description>Avenue Janvier, Rennes, France 
  </description>
  <Model>
   <Link>
    <href>http://demo.archivideo.com/api_ref_examples/zola_trans.ive</href>
   </Link>
   <Location>
    <altitudeMode>clampToGround</altitudeMode>
    <coordinates>0 2220000</coordinates>
   </Location>
  </Model>
 </Placemark>
</aml>
Description

La balise description vue dans l'exemple précedent permet d'associer du contenu à une Placemark. Ce contenu peut etre :
  • du texte.
  • du code HTML (simple) pouvant inclure des images (locales ou distantes).

Pour utiliser du code HTML standard, il doit etre encadré par le tag CDATA comme dans l'exemple suivant:
<description>
 <![CDATA[
  Votre code html...
 ]]>
</description>

Ce tag facilite l'utilisation de code HTML et permet de ne pas se préoccuper des caractères spéciaux XML tels que > et <.
Folders
Les repertoires (folders) sont utilisés pour l'organisation de la scène. Ils peuvent contenir des objets (Placemark, ...) ou d'autres repertoires.
<Folder>
 <name>Folder name</name>
  <Placemark>
  ...
  </Placemark>
  <Folder>
   <name>Subfolder name</name>
   <Placemark>
   </Placemark>
  </Folder>
</Folder>
Point de vue
Pour chacun des éléments présents dans la scène, il est possible d'associer un point de vue particulier en utilisant la balise <LookAt>
  <LookAt>
   <coordinates>101000.98,2353000.34,10</coordinates>
   <range>803.443493</range>
   <tilt>90</tilt>
   <heading>270</heading>
  </LookAt>
Un double clic sur un élément auquel est associé un point de vue (dans la zone 3D ou la liste) provoque le déplacement de la caméra jusqu'au point de vue spécifié.
Styles
Une fois les éléments définis, il est possible de controler la façon de les afficher. Pour cela, il faut définir et utiliser des styles.

Serveur de données géographiques
La mise à disposition de données dans Bretagne 3D peut se faire via un serveur de données géographiques de type WFS. Cela présente le double avantage de faciliter ainsi la mise à jour (les données reste sur le serveur) et diminue la charge sur l'application (seules les donnée utiles sont chargées).
La mise en place d'un serveur WFS est relativement simple et l'utilisateur pourra s'orienter vers GeoServer pour installer ce service.
une fois le serveur en place etles données mise à disposition (voir la documentation de votre serveur), l'intégration dans Bretagne 3D pass par un fichier AML avec la syntaxe suivante:
<?xml version="1.0" encoding="UTF-8"?>
<aml xmlns="http://www.archivideo.com/aml/0.8">
 <RdbLink>
  <Style id="Style">
   <IconStyle>
    <Icon>
     <href>pixmaps/ville.png</href>
    </Icon>
    <scale>2</scale>
    <visibilityName>1</visibilityName>
   </IconStyle>
  </Style>
  <name>Communes</name>
  <boundingBox>0,0,425000,245000</boundingBox>
  <visibility>0</visibility>
  <lodscale>0.05</lodscale>
  <distanceMin>5000</distanceMin>
  <blockStart>25</blockStart>
  <blockPerTile>10</blockPerTile>
  <server>http://breizh3d-dev.pagesjaunes.fr/geoserver/wfs</server>
  <prefix>b3d_communes_</prefix>
  <priority>1</priority>
 </RdbLink>