La propriété PanoramioView de type
TECMapPanoramioLayer vous permet entre
autre d'afficher les images en provenance de Panoramio
Cela n'est disponible que sous Google Maps mais une
émulation
est possible.
Fig. 54 Activation de la vue
Panoramio
map.PanoramioView.visible := true;
TECMapPanoramioLayer
Cette classe dispose des propriétés
property
Clickable : boolean;
Propriété en lecture/écrite qui rend clickable
ou non les images
Déclenche l'évènement
OnPanoramioLayerClick
property
SuppressInfoWindows :
boolean;
Propriété en lecture/écrite qui permet ou non
l'affichage de l'infowindow associée à la miniature
de l'image
property
Tag : string;
Propriété en lecture/écrite qui permet un
filtrage par mot clef
property
UserId : string;
Propriété en lecture/écrite qui permet un
filtrage par UserId, identifiant Panoramio du posteur
des images.
property
Visible :
boolean;
Propriété en lecture/écrite qui permet
d'afficher ou non la vue panoramio
property
ToTxt : string;
Propriété en lecture/écriture qui donne accès à
PanoramioView sous la forme d'une
chaîne texte
procedure
Search;
Lance une recherche d'images dans une zone
rectangulaire de coordonnées LatSW, LngSW, LatNE,
LngNE
procedure
SearchAt(const
Lat,Lng,Radius:double);
Lance une recherche d'images dans une zone
rectangulaire centrée sur les coordonnées Lat,Lng
dans un rayon Radius exprimé en Km
La fonction de recherche d'images est disponible
sous CloudMade et Google Maps
10
La recherche n'est pas bloquante, l'évenement
OnPanoramioSearch est déclenché lorsque les résultats
sont disponibles.
Chaque requête retourne au maximum un bloc de 100
images, pour savoir si d'autres images sont disponibles
vous devez tester la propriété HasMore
et relancer la recherche par
NextSearch, le bon endroit pour le
faire est dans l'évenement
OnPanoramioSearch.
procedure
NextSearch;
Relancer la recherche pour obtenir les images
suivantes, l'évènement OnPanoramioSearch est aussi
déclenché par cette procedure
function
IsSearch:boolean;
Indique si une recherche est en cours
function
Count:integer;
Retourne le nombre d'images trouvé
function
HtmlPhoto(const
index:integer;size:TECPanoramioImageSize):string;
Retourne une balise html IMG permettant d'afficher
une image dans une taille déterminée
(pimMini_square,pimSquare,pimThumbnail,pimSmall,pimMedium
ou pimOriginal)
function
HtmlCopyright(const
index:integer):string;
Retourne un contenu html indiquant le copyright de
l'image
Exemple d'utilisation afficher l'image en
miniature avec son titre et copyright dans une
InfoWindows
map.infoWindows[idInfoPanoramio].content
:='<h3>'+map.PanoramioView.photo_title[1]+
'</h3>'+map.PanoramioView.HtmlPhoto(1,pimSmall)+
'<h4>Author:
'+map.PanoramioView.owner_name[1]+'</h4>'+map.PanoramioView.HtmlCopyright(1);
Fig. 55 Affichage d'une
InfoWindows avec les informations d'une image
Panoramio
property
HasMore:boolean
Indique si d'autres images sont disponibles dans la
zone de recherche
Les propriétés suivantes sont associées aux
images trouvées
property
owner_id[index:integer] : string
property
owner_name[index:integer] :
string
property
photo_date[index:integer] :
string
property
photo_id[index:integer] :
string
property
photo_lng[index:integer] :
double
property
photo_lat[index:integer] :
double
property
photo_title[index:integer] :
string
property
photo_file_url[index:integer]:
string
Les propriétés suivantes déterminent le
point Sud-Ouest et le point Nord-Est de la zone de
recherche
property
LatSW :
double
property
LngSW : double
property
LatNE : double
property
LngNE : double
OnPanoramioLayerClick
Évènement déclenché par un clic sur une miniature
Panoramio
procedure
OnPanoramioLayerClick(sender
: TObject; const
Author,PhotoId,title,Url,UserId,Html:string;const
dLatitude,dLongitude : double)
Author auteur de la photo
PhotoID identifiant Panoramio de la
photo
Title titre de la photo
Url url de la photo
UserId identifiant Panoramio du
posteur de la photo
Html contenu Html de l'infowindow
associée à la photo
dLatitude,dLongitude Latitude et
Longitude de la photo
OnPanoramioSearch
Évènement déclenché par une recherche d'images que
cela soit avec SearchAt ou
NextSearch
procedure OnPanoramioSearch(sender: TObject; const
First,Last: Integer);
First et Last
indiquent les bornes des images trouvées, en effet
chaque recherche ne peut retourner au maximum que 100
images
DemoLayer
Le programme DemoLayer vous permet de
voir comment utiliser Panoramio ainsi que les autres
types de layers
Fig. 56 DemoLayer