classe GMapType

Google fournit des types de carte prédéfinis. La classe GMapType a pour but de permettre d’en créer des personnalisés.

Voir un exemple de carte personnalisée.

Exemple d’utilisation de la classe GMapType:

<script type="text/javascript">

	var Nuit = new GMapType(
	  /*  Tableau d'objets GTileLayer (type de tuile utilisé) */
	  [NuitTiles],

	  /*  Déclaration du type de projection utilisé  */
	  monTypeDeProjection,

	  /*  Déclaration du nom associé au type de carte */
	  'Nuit',

	  /*  Options liées au type de carte */
	  {
	    shortName : 'Nuit', /*  nom court */
	    tileSize : 256, /*  taille des tuiles */
	    maxResolution : 3, /*  zoo maxi autorisé */
	    minResolution : 0, /*  zoom mini autorisé */
	    linkColor : '#fff', /*  couleur des liens présents sur la carte */
	    textColor : '#fff' /*  couleur du texte présent sur la carte */
	  }
         );

</script>
Pour créer ses propres types de cartes, il faut au préalable :

  • Disposer d’images pour remplacer celles proposées par Google (appelées “tuiles“). Ces images seront alors renseignées via le paramètre layers qui représente un objet de type GTileLayer.
    C’est cet objet qui contient les informations relatives aux images utilisées (chemin pour y accéder, résolution utilisée (zoom disponibles pour ce type d’images, …))
  • Déclarer le type de projection utilisé. Il existe différents types de projection (plan, conique, cylindrique …). Il est également possible de créer ses propres fonctions mathématiques pour déclarer un nouveau type de projection.
    Par défaut, on peut utiliser la projection utilisée par Google, à savoir la projection de Mercator. Ce paramètre est à renseigner comme second argument du constructeur GMapType. Exemple : monTypeDeProjection = new GProjection();
  • Les autre arguments de la classe sont plus simples à mettre en place, il s’agit de simples options ou variables (comme le libellé qui apparaîtra dans le bouton affiché sur la carte qui permettra de basculer sur le type carte voulu par exemple)

Pour afficher ces nouveaux types de carte sur la map, il est nécessaire d’utiliser le constructeur GMap2 ou la méthode GMap2.addMapType().

(Voir aussi la classe GTileLayerOverlay pour ajouter (au lieu de remplacer la totalité) des couches d’éléments sur la carte.)

Cette classe peut également être sous-classée. Les arguments du constructeur peuvent alors être omis si la classe est instanciée comme un prototype. Un constructeur de sous-classe doit invoquer le constructeur GMapType à l’aide de la méthode call().

NB : Ces méthodes sont appliquées sur le type de carte passé en paramètre lors de la construction de la carte. La méthode getBoundsZoomLevel est quant à elle dipsonible sur la carte en elle-même.

Exemple d’utilisation de la méthode getSpanZoomLevel :

<script type="text/javascript">

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

   map.setMapType(G_SATELLITE_MAP);

   // Dans cet exemple, nous déclarons un type
   // de carte "satellite".

   var zoomMaxi = G_SATELLITE_MAP.getSpanZoomLevel(pts[1],pts[2],new GSize(400,400));

   // pts[1] et pts[2] correspondent  à 2 points
   // (objets de type GLatLng)  présents sur notre carte.

   // La variable zoomMaxi contiendra ici le zoom maximum
   // possible pour afficher ces 2 points sur une même vue
   // ayant pour dimension 400 * 400 px.

</script>

Consulter également la liste des constantes de la classe GMapType.

constructeur GMapType

Signature de la classe GMapType : GMapType(layers : GTileLayer[], projection : GProjection, name : String, opts? : GMapTypeOptions) .

Construit un type de carte à l’aide des arguments fournis et des paramètres optionnels (opts).

getSpanZoomLevel()

Signature de la méthode getSpanZoomLevel :
getSpanZoomLevel(center: GLatLng, span: GLatLng, viewSize: GSize) .

Cette méthode retourne le zoom maximum possible (pour le type de vue concerné) pour afficher 2 points sur une même vue ayant pour dimensions celles déclarées à l’aide du paramètre viewSize.

Si aucune vue (donc aucun zoom) n’est possible pour afficher une carte avec ces paramètres, la méthode retourne 0.

getBoundsZoomLevel()

Signature de la méthode getBoundsZoomLevel :
getBoundsZoomLevel(bounds: GLatLngBounds, viewSize: GSize) .

Cette méthode retournele zoom maximum possible (pour le type de vue concerné) pour que la section définie par le paramètre bounds remplisse la région déclarée (en pixels) par le paramètre viewSize sur la carte.

getName()

Signature de la méthode getName : getName(short: booléen) .

Lors de la déclaration d’un nouveau type de carte, il est possible de lui donner un nom qui s’affichera sur la carte (comme libellé de bouton de contrôle). Il est également possible de renseigner un nom raccourci pour les cas où ce nom ne pourrait s’afficher en entier.

La méthode getName retourne donc le nom associé au type de vue sur lequel s’applique la méthode. Si le paramètre short vaut true, la méthode retournera le nom raccourci s’il existe.

Exemple:

<script type="text/javascript">

   Ici un exmple d'utilisation de la méthode getName sur un
   type de vue vue prédéfini : G_PHYSICAL_MAP

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

   map.setMapType(G_PHYSICAL_MAP);

   // Dans cet exemple, nous déclarons un type
   // de carte "terrain".

   var libelle = G_PHYSICAL_MAP.getName();

   // ici, libelle vaudra "Terrain" 

   var libelle = G_PHYSICAL_MAP.getName(true);

   // ici, libelle vaudra "Ter" car short est à true 

</script>

getProjection()

Signature de la méthode getProjection : getProjection() .

Cette méthode retourne l’objet de type GProjection associé au type de carte utilisé.

getTileSize()

Signature de la méthode getTileSize : getTileSize() .

Cette méthode retourne la taille des “tuiles” ( = la longueur d’un côté) utilisées sur le type de carte en cours. Les “tuiles” représentent chaque image dont l’ensemble constitue une carte Google Map (# pièce du puzzle).
Ces tuiles sont toujours de forme carrée et ont pour dimensions par défaut 256 * 256 px.

getTileLayers()

Signature de la méthode getTileLayers : getTileLayers() .

Cette méthode retourne un tableau d’objets de type GTileLayers déclarés pour le type de vue en cours car un type de carte peut disposer de plusieurs couches, comme le type G_HYBRID_MAP par exemple.

getMinimumResolution()

Signature de la méthode getMinimumResolution : getMinimumResolution() .

Cette méthode retourne le niveau de zoom minimum que le type de carte peut afficher.

getMaximumResolution()

Signature de la méthode getMaximumResolution : getMaximumResolution() .

Cette méthode retourne le niveau de zoom maximum que le type de carte peut afficher.

getMaxZoomAtLatLng()

Disponible depuis la version 2.158 de l’Api

Signature de la méthode getMaxZoomAtLatLng : getMaxZoomAtLatLng(latlng: GLatLng, callback: Function, opt_targetZoom: number) .

Cette méthode envoie une requête aux serveurs de Google pour retrouver le niveau de zoom maximal pour lequel l’image existe pour le type de vue en cours en un point donné (objet de type GLatLng).

La réponse à cet appel (response) contient un statut et la valeur de zoom demandée si celle-ci a été trouvée.

Si le paramètre opt_targetZoom est défini, seules les valeurs de zoom supérieures à la valeur de ce paramètre seront considérées.

NB : Cette fonctionnalité est disponible uniquement pour l’imagerie par satellite, à savoir les types de vues G_SATELLITE_MAP et G_HYBRID_MAP.

getTextColor()

Signature de la méthode getTextColor : getTextColor() .

Cette méthode retourne la couleur de texte utilisée sur le type de carte en cours comme pour le texte du copyright par exemple. Les valeurs utilisées peuvent être littérales (black, red, white, …) ou héxadécimales (#cc0000, …).

getLinkColor()

Signature de la méthode getLinkColor : getLinkColor() .

Cette méthode retourne la couleur de texte des hyperliens utilisée sur le type de carte en cours comme pour les termes d’utilisations par exemple. Les valeurs utilisées peuvent être littérales (black, red, white, …) ou héxadécimales (#cc0000, …).

getErrorMessage()

Signature de la méthode getErrorMessage : getErrorMessage() .

Cette méthode retourne le message d’erreur qui s’affiche lorsqu’il n’y a plus de vue ou d’image possible à afficher à certain niveau de zoom donné sur la carte.

En règle générale, ce message invite l’utilisateur à effecuter un zoom arrière afin de revenir à une vue où des images sont disponibles.

getCopyrights()

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

Cette méthode retourne le message de copyright approprié pour la région décrite à l’aide de paramètre bounds et du niveau de zoom donné.

getUrlArg()

Signature de la méthode getUrlArg : getUrlArg() .

Cette méthode retourne le une chaîne de caractères (ou plutôt un caractère) permettant d’identifier la vue en cours pour l’appeler via une URL. Cet identifiant ne peut servir qu’à des utlisations liées à la carte.

getAlt()

Disponible depuis la version 2.86 de l’Api

Signature de la méthode getAlt : getAlt() .

Cette méthode retourne le texte alternatif associé au type de carte en cours.

Par exemple, pour le type de vue G_PHYSICAL_MAP, la valeur retournée est la suivante : Show street map with terrain.

getHeading()

Disponible depuis la version 2.193 de l’Api

Signature de la méthode getHeading : getHeading() .

Cette méthode retourne la position du type de carte en cours.

Cette position est définie par l’angle de vue du type de carte, dans le sens horaire mesurée en degrés par rapport au Nord, qui lui vaut 0.

Laisser une réponse

Security Code: