Classe GTileLayerOptions

La classe GTileLayerOptions représente les arguments optionnels de l’interface GTileLayer. Elle ne dispose pas de constructeur, on l’instancie comme un objet littéral.

Accès direct aux propriétés:

opacity isPng tileUrlTemplate draggingCursor

propriété opacity

Propriété opacity: type : Nombre.

Permet de gérer l’opacité des tuiles concernées. Les valeurs de cette propriété vont de 0.0 (invisible) à 1.0 (opaque).

Par défaut, cette valeur vaut 1.

Internet Explorer 6 n’étant pas capable de gérer la transparence des PNG, celle-ci ne sera pas disponible avec ce navigateur.

<script type="text/javascript">

   var NuitTiles = new GTileLayer(copyrights,0,3,{opacity : 0.5}) ;

   /* Les options se déclarent entre crochets */

   /* Ici est appliquée une transparence de 0.5
   sur les tuiles représentées par la variable NuitTiles */

</script>

propriété isPng

Propriété isPng: type : Booléen.

Indique si les tuiles sont au format PNG ou non.

propriété tileUrlTemplate

Propriété tileUrlTemplate: type : Chaîne de caractères.

Spécifie le modèle à utiliser pour les URLs qui se chargent de récupérer les tuiles appropriées (en fonction du zoom ou des coordonnées courantes de la carte).

Déclarer un modèle lors de la construction de l’objet GTileLayer permettra de récupérer dynamiquement les tuiles utilisées pour le type de carte courant de la même manière que le fait Google.

Ces modèles sont généralement de la forme :

http://host/tile?x = {x} & y = {y} & z = {z} . png

Exemple :

http://host/tile?x=3&y=27&z=7. png

x et y représentent les coordonnées de la tuile et z fait référence au niveau de zoom.

propriété draggingCursor

Disponible depuis la version 2.59 de l’Api.

Propriété draggingCursor: type : Chaîne de caractères.

Déclare le type de curseur à afficher lorsque la carte est en cours de déplacement.

Classe GDraggableObjectOptions

La classe GDraggableObjectOptions permet de définir les options à appliquer sur les objets de type GDraggableObject.

Voir un exemple de carte déplaçable.

Accès direct aux propriétés:

left top container draggableCursor draggingCursor delayDrag

propriété left

Disponible depuis la version 2.59 de l’Api.

Signature de la propriété left:
left(leftPosition : Nombre) .

Renseigne la position de départ en X de l’objet déplaçable.

propriété top

Disponible depuis la version 2.59 de l’Api.

Signature de la propriété top:
top(topPosition : Nombre) .

Renseigne la position de départ en Y de l’objet déplaçable.

propriété container

Disponible depuis la version 2.59 de l’Api.

Signature de la propriété container:
container(élément : Un élément du DOM) .

Définit un conteneur qui sert de zone de délimitation pour l’espace dans lequel l’objet peut être déplacé.

propriété draggableCursor

Disponible depuis la version 2.59 de l’Api.

Signature de la propriété draggableCursor:
draggableCursor(cursor : Type de curseur) .

Définit le curseur à utiliser lorsque la souris survole l’objet déplaçable.

propriété draggingCursor

Disponible depuis la version 2.59 de l’Api.

Signature de la propriété draggingCursor:
draggingCursor(cursor : Type de curseur) .

Définit le curseur à utiliser lorsque l’objet est en cours de déplacement.

propriété delayDrag

Dépréciée depuis la version 2.146 de l’Api.

Signature de la propriété delayDrag:
delayDrag(booléen) .

Par défaut, l’événement dragstart est déclenché lorsque l’événement mousedown est déclenché sur un élément déplaçable. De la même manière, l’événement dragend est déclenché quand l’événement mouseup se déclenche.

Renseigner la valeur delayDrag à true retarde les événements liés aux déplacements jusqu’à ce que la souris ait changé de position depuis que l’événement mousedown ou mouseup a été généré.

Par défaut, cette valeur est à false.

Classe GDraggableObject

La classe GDraggableObject permet de rendre des éléments du DOM déplaçables à l’aide de la souris.

Consultez également la classe GDraggableObjectOptions qui gère les paramètres optionnels du constructeur de la classe GDraggableObject.

Voir un exemple de carte déplaçable.

Accès direct aux gestionnaires d’événements:

mousedown mouseup click dragstart drag dragend

constructeur GDraggableObject

Disponible depuis la version 2.59 de l’Api.

Signature du constructeur GDraggableObject :
var objectDrag = new GDraggableObject(element : élément du DOM, opts ? : GDraggableObjectOptions) .

Met en place des gestionnaires d’événement de sorte que l’élément source peut être glissé.

<script type="text/javascript">

   var objectDrag = new GDraggableObject(document.getElementById('dragMe')) ;

   /* Ici, l'élément HTML ayant pour id : dragMe,
   est rendu glissable*/

</script>

setDraggableCursor()

Disponible depuis la version 2.59 de l’Api.

Signature de la méthode setDraggableCursor:
setDraggableCursor(cursor : style de curseur) .

Définit le curseur à utiliser lorsque la souris survole l’élément glissable.

<script type="text/javascript">

   var objectDrag = new GDraggableObject(document.getElementById('dragMe')) ;

   /* Ici, l'élément HTML ayant pour id : dragMe,
   est rendu glissable*/

   objectDrag.setDraggableCursor('move');

</script>

setDraggingCursor()

Disponible depuis la version 2.59 de l’Api.

Signature de la méthode setDraggingCursor:
setDraggingCursor(cursor : style de curseur) .

Définit le curseur à utiliser lorsque l’élément est en cours de déplacement.

<script type="text/javascript">

   var objectDrag = new GDraggableObject(document.getElementById('dragMe')) ;

   /* Ici, l'élément HTML ayant pour id : dragMe,
   est rendu glissable*/

   objectDrag.setDraggableCursor('move');
   objectDrag.setDraggingCursor('wait');

</script>

moveTo()

Disponible depuis la version 2.89 de l’Api.

Signature de la méthode moveTo:
moveTo(point : GPoint) .

Place l’objet déplaçable aux coordonnées passées en paramètres via l’objet de type GPoint. La position est définie en pixel par rapport à la position de l’élément parent.
Le système de coordonnées utilisé est celui du DOM, c’est-à-dire que les coordonnées en X augmentent vers la gauche et en Y vers le bas.

<script type="text/javascript">

   var objectDrag = new GDraggableObject(document.getElementById('dragMe')) ;

   /* Ici, l'élément HTML ayant pour id : dragMe,
   est rendu glissable*/

   objectDrag.moveTo(new GPoint(100, 55));

   /* Ici, l'élément glissable est positionné au point (100 , 55),
   donc décalé de 100 pixels vers la gauche et de
   55 pixels vers le bas. */

</script>

moveBy()

Disponible depuis la version 2.89 de l’Api.

Signature de la méthode moveBy:
moveBy(size : GSize) .

Déplace l’objet glissable en fonction de l’objet de type GSize passé en paramètre.
Le système de coordonnées utilisé est celui du DOM, c’est-à-dire que les coordonnées en X augmentent vers la gauche et en Y vers le bas.

Gestion des événement liés aux objets déplaçables

mousedown()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement lorsque la souris est appuyée au-dessus de l’objet déplaçable.

mouseup()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement lorsque la souris est relâchée au-dessus de l’objet déplaçable.

click()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement lorsque l’objet déplaçable est cliqué.

dragstart()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement lorsque le déplacement de l’objet commence.

drag()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement tout au long du déplacement de l’objet.

dragend()

Disponible depuis la version 2.84 de l’Api.

Déclenche un événement le déplacement de l’objet s’arrête.

Objet déplaçable

Voici un exemple d’utilisation de la classe GDraggableObject.

Pour déplacer la carte, utiliser la “poignée” représentée par le bloc rose.

Ici, la carte est rendue déplaçable dans un élément du DOM servant de zone de délimitation représenté par le bloc bordé de tirets.

Pour définir cette zone, la propriété container de la classe GDraggableObjectptions a été utilisée.

CODE

PARTIE CSS

<style type="text/css">
   #alldrag{position: relative;border: 1px solid;  margin: 0;
             width: 400px; height: 320px; overflow: hidden;}
   #content{position:  relative; width: 600px; height: 500px; border: 1px dashed;}
   #poignee{cursor: move; width: 400px; height: 20px; background: pink;}
   #poignee h4{margin: 0 0 0 10px; float: left;}
   #poignee h5{margin: 0 10px 0 0; float: right; cursor: pointer;}
</style>

PARTIE HTML

<div id="content">
   <div id="alldrag">
      <div id="poignee">
         <h4>Déplacer la carte à l'aide de la souris</h4>
         <h5>
            <span id="close" style="display:;" onclick="hideMap();">fermer</span>
            <span id="open" style="display: none;" onclick="showMap();">ouvrir</span>
         </h5>
      </div>
      <div id="map" ></div>
   </div>
</div>

PARTIE JAVASCRIPT

<script type="text/javascript">

   var map = new GMap2(document.getElementById('map'),
			{mapTypes: [G_HYBRID_MAP], size: new GSize(400,300)});
   /* Ici, nous déclarons l'élément html ayant pour id "map" comme conteneur de la map
   avec une taille de 400 * 300 pixel */

   map.setCenter(new GLatLng(48.8566667, 2.3509871), 7);

   var objetDrag = new GDraggableObject(document.getElementById('alldrag'),
				{container: document.getElementById('content')});

</script>

Interface GTileLayer

Sur l’Api Google MAp, une carte est représentée par un ensemble de petites cartes carrées appelées “tuiles” ayant pour dimensions 256 * 256 px.

L’interface GTileLayer est implémentée dans le but de créer des couches de cartes personnalisées en faisant notamment appel aux classes GMapType ou GTileLayerOverlay.

Consulter également la classe GTileLayerOptions afin de consulter les paramètres optionnels du constructeur de l’objet GTileLayer.

À noter qu’un type de carte (objet de type GMapType) peut afficher plusieurs couches de cartes à la fois comme par exemple le type G_HYBRID_MAP qui dispose d’un objet de type GTileLayer représentant une vue aérienne où se suprerpose un second objet de type GTileLayer proposant quant à lui le nom des rues et des villes.

Voir également les classes GCopyrightCollection et GCopyright.

Exemple d’utilisation de l’interface GTileLayer : (explications ci-dessous)

<script type="text/javascript">

   /*  Déclaration d'une collection (ou ensemble) de copyright */
   copyrights = new GCopyrightCollection('Map Imagery:');

   /*  Déclaration d'un nouveau type de tuile */
   var monTypeDeTuile = new GTileLayer(copyrights,0,5);

   /*  Dans cette instance, le type de vue sera disponible pour
   les niveaux de zooms compris entre 0 et 5. */

   monTypeDeTuile.getTileUrl = function(tile,zoom){
     /* Si le zoom appelé est > 5   */
     if(zoom > 5) return 'dossier_img_tuiles/tuile_non_dispo_pour_ce_zoom.png';

     /* Sinon, nous disposons des tuiles nécessaires   */
     else return 'dossier_img_tuiles/tile.' + zoom + '.' +
	(tile.x + tile.y * Math.pow(2,zoom)) + '.png';
   };

   monTypeDeTuile.isPng = function() { return true; }

   /*  Dans cet exemple, les tuiles seront semi-transparentes */
   monTypeDeTuile.getOpacity = function() { return 0.5; }

</script>

constructeur GTileLayer

Signature du constructeur GTileLayer :
GTileLayer(copyrights : GCopyrightCollection, minResolution : Number, maxResolution : Number, options ? : GTileLayerOptions) .

Instancie une nouvelle couche de type de tuiles.
Les arguments fournis au constructeur peuvent être omis si celui-ci est instancié comme un prototype lors de la création de vos types de carte personnalisés.

Le paramètre copyrights représente un objet de type GCopyrightCollection définissant un tableau d’objets de type GCopyright.

Les propriétés minResolution et maxResolution renseignent les valeurs des niveaux de zoom disponibles (minimum et maximum) pour le type de carte en question utilisant ces tuiles.

<script type="text/javascript">

   /*  Déclaration d'une collection (ou ensemble) de copyright */
   copyrights = new GCopyrightCollection('Map Imagery:');

   /*  Déclaration d'un nouveau type de tuile */
   var monTypeDeTuile = new GTileLayer(copyrights,0,5);

   /*  Dans cette instance, le type de vue sera disponible pour
   les niveaux de zooms compris entre 0 et 5. */

</script>

minResolution

La méthode minResolution retourne la valeur du niveau de zoom minimum disponible pour la couche de tuiles en question.

maxResolution

La méthode maxResolution retourne la valeur du niveau de zoom maximum disponible pour la couche de tuiles en question.

getTileUrl()

Signature de la méthode getTileUrl : getTileUrl(tile : GPoint, zoom : Number);

La méthode getTileUrl retourne l’URL de la tuile appropriée à afficher en fonction de la position sur la carte (coordonnées X et Y) et pour un zoom donné.

Exemple d’utilisation :

<script type="text/javascript">

   monTypeDeTuile.getTileUrl = function(tile,zoom){
     /* Si le zoom appelé est > 5   */
     if(zoom > 5) return 'dossier_img_tuiles/tuile_non_dispo_pour_ce_zoom.png';

     /* Sinon, nous disposons des tuiles nécessaires   */
     else return 'dossier_img_tuiles/tile.' + zoom + '.' +
	(tile.x + tile.y * Math.pow(2,zoom)) + '.png';
   };

</script>

isPng

La méthode isPng() retourne true si le format utilisé pour les image représentant les tuiles est le PNG, et si les images peuvent par conséquent être transparentes.
Sinon, le format GIF est également assuré (notamment pour pouvoir jouer sur la transparence).

Il est utile de “prévenir” l’Api si le format PNG est utilisé car elle se chargera automatiquement de générer les hack css nécessaires pour les navigateurs ne gérant pas ce format.

Exemple de déclaration du format PNG:

<script type="text/javascript">

   monTypeDeTuile.isPng = function() { return true; }

</script>

getOpacity

La méthode getOpacity() retourne l’opacité à appliquer à la couche de tuiles concernée.

La valeur 1 signifiant opaque et 0 transparent.

Exemple de déclaration de l’opacité des tuiles:

<script type="text/javascript">

   monTypeDeTuile.getOpacity = function() { return 0.5; }
   /*  Dans cet exemple, les tuiles seront semi-transparentes */

</script>

getCopyright

Disponible depuis la version 2.89 de l’Api.

Signature de la méthode getCopyright: getCopyright(bounds : GLatLngBounds, zoom : Number).

La méthode getCopyright retourne le message du copyright à afficher sur la carte en fonction d’une région [bounds] et d’un zoom donnés.

événement newcopyright

Signature de l’écouteur d’événement newcopyright: newcopyright(copyright : GCopyright).

Déclenche un événement lorsqu ‘un nouveau copyright est ajouté à la collection de copyrights (GCopyrightCollection) définie pour le type de carte concerné.

classe GCopyright

La classe GCopyright est utilisée pour déclarer un copyright à apposer sur vos cartes. Elle est utilisée uniquement sur les types de carte personnalisés.

Cette classe contiendra l’ensemble des informations à afficher sur la map en fonction de la région et du zoom appliqué.

Voir également la classe GCopyrightCollection.

Accès direct aux propriétés:

constructeur GCopyright id minZoom bounds text

constructeur GCopyright

Signature du constructeur GCopyright :
GCopyright(id : Number, bounds : GLatLngBounds, minZoom : Number, text : String) .

Créé un nouvel objet de type GCopyright pour un id, une région et un niveau de zoom donnés. Le paramètre [text] contiendra le libellé du copyright.

<script type="text/javascript">

   /*  Déclaration d'une collection (ou ensemble) de copyright */
   copyrights = new GCopyrightCollection('Map Imagery:');

   /*  Déclaration d'un nouveau copyright */
   var copyrightNASA = new GCopyright(
     'nasa',
     new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)),
     0,
     '<a href="http://visibleearth.nasa.gov/">NASA Visible Earth</a>'
   );

   copyrights.addCopyright(copyrightNASA);

    Dans cet exemple, le copyright s'affichera sur toutes les vues disponibles
     et aura pour libellé NASA Visible Earth.

</script>

id

Identifiant unique [nombre] pour ce copyright.

minZoom

Définit le niveau de zoom le plus bas pour lequel ce copyright s’affichera.

bounds

Objet de type GLatLngBounds qui définit la région pour laquelle doit s’afficher le copyright.

text

Définit le libellé du copyright. Dans l’exemple ci-dessus, ce libellé aura pour valeur : NASA Visible Earth.

classe GCopyrightCollection

La classe GCopyrightCollection est utilisée pour déclarer un ensemble de copyrights à apposer sur vos cartes. Elle n’est pas utile si on n’utilise uniquement les types de carte fournis par Google par défaut.

En revanche, il faut l’utiliser pour les types de cartes personnalisés. Dans l’exemple proposé (en suivant le lien ci-contre), un copyright a été apposé sur la carte car les images proviennent de l’imagerie de la NASA.

Cette classe contiendra l’ensemble (# la collection) des différents copyrights à afficher sur les différents types de carte et ce, en fonction de la région ou du zoom appliqué.

Voir également la classe GCopyright.

constructeur GCopyrightCollection

Signature du constructeur GCopyrightCollection :
GCopyrightCollection(prefix? : String) .

Si le paramètre prefix est renseigné, tous les copyrights utilisés et appartenant à cette “collection” partageront le même péfixe.

<script type="text/javascript">

   /*  Déclaration d'une collection (ou ensemble) de copyright */
   copyrights = new GCopyrightCollection('Map Imagery:');

   Dans cet exemple, tous les objets de type GTileLayer ( argument de la classe GMapType)
   ayant pour paramètre copyright cette valeur de copyrights auront le même préfixe,
   c'est-à-dire  : "Map Imagery:" 
</script>

addCopyright

Signature de la propriété addCopyright:
addCopyright(copyright : GCopyright) .

Cette méthode, appliquée à l’objet GCopyrightCollection, ajoutera (addCopyright) le copyright déclaré (new GCopyright) à la collection.

<script type="text/javascript">

   /*  Déclaration d'une collection (ou ensemble) de copyright */
   copyrights = new GCopyrightCollection('Map Imagery:');

   /*  Déclaration d'un nouveau copyright */
   var copyrightNASA = new GCopyright(
     'nasa',
     new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)),
     0,
     '<a href="http://visibleearth.nasa.gov/">NASA Visible Earth</a>'
   );

   copyrights.addCopyright(copyrightNASA);

</script>

getCopyrights

Signature de la propriété getCopyrights:
getCopyrights(bounds : GLatLngBounds, zoom : number) .

Cette méthode retourne tous les copyrights associés au type vue en cours pour une région [bounds] et un zoom donnés.

getCopyrightsNotice

Signature de la propriété getCopyrightsNotice:
getCopyrightsNotice(bounds:GLatLngBounds, zoom : number) .

Cette méthode retourne le préfixe et tous les copyrights associés au type vue en cours pour une région [bounds] et un zoom donnés.

événement newcopyright

Signature de l’événement newcopyright:
newcopyright(copyright:GCopyright) .

Se déclenche lorsqu’un nouvel objet de type GCopyright est ajouté à la collection GCopyrightCollection.

Créer ses propres types de cartes

Cartes personnalisées avec la Google Map

Dans cette démonstration, la carte propose 2 types de vue différents.

Pour personnaliser les types de carte avec Google Map, plusieurs éléments sont requis, à savoir:

  • Disposer de tuiles autres que celles proposées par Google. Les tuiles représentent les petits bouts de carte (en général de taille 256 * 256 px) qui forment la carte globale. Dans l’exemple qui suit, les vues utilisées ont été récupérées sur le site de la NASA.
  • Une fois les vues choisies, il faut alors les découper en autant tuiles que nécessaires. Ici, c’est l’utilitaire open source de retouche et d’édition d’images ImageMagick qui a été utilisé.
  • Ces tuiles devront alors être déclarées au sein du type de carte à l’aide de l’interface GTileLayer.
  • Déclarer un type de projection approprié à l’aide de la classe GProjection. C’est cette classe (assortie de fonctions mathématiques) qui permettra de calculer et de convertir les coordonnées des points sur la carte à partir de leurs coordonnées en degrés (latitude et longitude) ou en pixels.
  • Une fois ces différents points mis en place, les autres éléments seront des options pour l’affichage et la navigation entre les différents types de carte.
  • L’ensemble de ces éléments servira à instancier la classe GMapType afin d’obtenir ce rendu.

Interface GProjection

L’interface GProjection est utilisé pour créer ou déclarer ses propres types de projection.

C’est la projection qui gère les fonctions mathématiques permettant de convertir des latitudes et des longitudes en points visibles sur l’écran (donc en pixels) et inversement.

Dans les exemples qui suivent a été ajoutée une propriété non officielle nommée mapResolutions. Il s’agit en fait d’un tableau où seront stockées les différentes résolutions à appliquer au type de carte en question en fonction du niveau de zoom appelé.

fromLatLngToPixel

Signature de la propriété fromLatLngToPixel :
fromLatLngToPixel(latlng:GLatLng, zoom:Number) .

Cette propriété représente une fonction mathématique (à déclarer, cf exemple ci-dessous) qui convertit un objet de type GLatLng pour un zoom donné en un objet de type GPoint.

En d’autres termes, la propriété fromLatLngToPixel retourne les coordonnées en pixels (X et Y) d’un point sur la carte à partir de ses coordonnées gégraphiques (en degrés) et en fonction du zoom fourni en paramètre.

C’est la propriété inverse de fromPixelToLatLng.

<script type="text/javascript">

   NB : La fonction déclarée ci-dessous n'est qu'un exemple de calcul de conversion.
   Ces fonctions diffèrent en fonction du type de projection désiré.
   Ici, nous avons choisi un type de projection cylindrique.
   Les types de projection sont généralement définis en 3 catégories :
   plan, conique et cylindrique.
   Le type de projection approprié dépend des types de carte que vous utiliserez.

   /*  Déclaration d'un nouveau type de Projection */
   monTypeDeProjection = new GProjection();

   /*  Ici on renseigne les résolutions disponibles pour notre type de projection */
   monTypeDeProjection.mapResolutions = [256,512,1024,2048,4096,8192];

   /*  Déclaration de la fonction mathématique de conversion (GLatLng > GPoint) */
   monTypeDeProjection.fromLatLngToPixel = function(latlng,zoom) {

     var lng = parseInt(Math.floor((this.mapResolutions[zoom] / 360) *
		(latlng.lng() + 180)));

     var lat = parseInt(Math.floor(Math.abs((this.mapResolutions[zoom] / 2 / 180) *
		(latlng.lat() - 90))));

     var point = new GPoint(lng,lat);

     return point;
   }

</script>

fromPixelToLatLng

Signature de la propriété fromPixelToLatLng:
fromPixelToLatLng(pixel:GPoint, zoom:Number, unbounded?: Booléen) .

Cette propriété représente une fonction mathématique (à déclarer, cf exemple ci-dessous) qui convertit un objet de type GPoint pour un zoom donné en un objet de type GLatLng.

En d’autres termes, la propriété fromPixelToLatLng retourne les coordonnées géographiques (en degrés, latitutde et longitude) d’un point sur la carte à partir de ses coordonnées en pixels et en fonction du zoom fourni en paramètre.

C’est la propriété inverse de fromLatLngToPixel.

<script type="text/javascript">

   NB : La fonction déclarée ci-dessous n'est qu'un exemple de calcul de conversion.
   Ces fonctions diffèrent en fonction du type de projection désiré.
   Ici, nous avons choisi un type de projection cylindrique.
   Les types de projection sont généralement définis en 3 catégories :
   plan, conique et cylindrique.
   Le type de projection approprié dépend des types de carte que vous utiliserez.

   /*  Déclaration d'un nouveau type de Projection */
   monTypeDeProjection = new GProjection();

   /*  Ici on renseigne les résolutions disponibles pour notre type de projection */
   monTypeDeProjection.mapResolutions = [256,512,1024,2048,4096,8192];

   /*  Déclaration de la fonction mathématique de conversion (GPoint > GLatLng) */
   monTypeDeProjection.fromPixelToLatLng = function(pixel,zoom,unbounded) {

     var lat = 90 - (pixel.y / (this.mapResolutions[zoom] / 2 / 180));

     var lng = (pixel.x / (this.mapResolutions[zoom] / 360)) - 180;

     var latlng = new GLatLng(lat,lng);

     return latlng;
   }

</script>

tileCheckRange

Signature de la propriété tileCheckRange:
tileCheckRange(tile:GPoint, zoom:Number, tileSize: Number) .

Cette propriété retourne true si la tuile (image représentant un morceau de la map) pour un point donné (GPoint) est incluse dans la vue du type de carte en question en fonction du zoom et de la taille des tuiles (par défaut, 256 * 256px).
Sinon, la map affichera une tuile vide.

<script type="text/javascript">

   /*  Déclaration d'un nouveau type de Projection */
   monTypeDeProjection = new GProjection();

   /*  Ici on renseigne les résolutions disponibles pour notre type de projection */
   monTypeDeProjection.mapResolutions = [256,512,1024,2048,4096,8192];

   /*  Exemple de déclaration de la propriété tileCheckRange */
   monTypeDeProjection.tileCheckRange = function(tile,zoom,tileSize){

     var rez = this.mapResolutions[zoom];

     if(tile.y < 0 || tile.y * tileSize >= rez / 2){ return false; }

     if(tile.x < 0 || tile.x * tileSize >= rez){

       var e = Math.floor( rez / tileSize );

       tile.x = tile.x % e;

       if(tile.x < 0){ tile.x += e; }

     }

     return  true;

   }

</script>

getWrapWidth

Disponible depuis la version 2.46 de l’Api.

Signature de la propriété getWrapWidth:
getWrapWidth(zoom:Number) .

Cette propriété retourne la largeur en pixel de la carte tout entière pour le type de vue en question pour un niveau de zoom donné.

L’Api Map de Google utilise cette valeur pour indiquer quand la carte (ou la tuile) doit se répéter dans le div contenant la map.

Elle est également utilisée pour calculer l’emplacement d’un marker ou de tout objet présent sur la carte quand le div contenant la map propose une vue de la Terre qui se répète, donc à des niveaux de zoom très faibles.

<script type="text/javascript">

   /*  Déclaration d'un nouveau type de Projection */
   monTypeDeProjection = new GProjection();

   /*  Ici on renseigne les résolutions disponibles pour notre type de projection */
   monTypeDeProjection.mapResolutions = [256,512,1024,2048,4096,8192];

   /*  Retourne la taille de la tuile représentant la Terre pour un niveau de zoom donné */
   monTypeDeProjection.getWrapWidth = function(zoom){
     return this.mapResolutions[zoom];
   }

</script>