Transformation d'un pixel en coordonnées de carte

Pour obtenir une vue panoramique ou effectuer un zoom sur une carte basée sur des cartes tuilées de Map Tiling Service, le client doit pouvoir convertir un pixel en lieu sur la Terre. Pour ce faire, le client doit créer une transformation affine qui, lorsqu'elle reçoit une coordonnée en pixels, renvoie une coordonnée dans la projection des cartes tuilées. Vous devez connaître la projection des cartes tuilées, les limites de la carte faisant l'objet de cartes tuilées et les dimensions d'une carte tuilée. Une fois que vous disposez de ces informations, procédez comme suit :

  1. Calculez le nombre maximal de cartes tuilées horizontales représentant la carte.
  2. Calculez le nombre maximal de cartes tuilées verticales représentant la carte.
  3. Calculez le nombre maximal de pixels horizontaux représentant la carte.
  4. Calculez le nombre maximal de pixels verticaux représentant la carte.
  5. Créez une transformation affine basée sur les limites de la carte et les limites de la carte en pixels.
  6. Fournissez votre emplacement en pixels à la transformation affine. Vous obtenez le lieu sur Terre dans la projection de la carte.

Pour réaliser ces étapes et transformer un pixel en système de coordonnées de carte, procédez comme suit :

  1. Calculez le nombre maximal de cartes tuilées horizontales sur la carte via l'équation suivante : tilesAcross = 2level
  2. Calculez le nombre maximal de cartes tuilées verticales sur la carte via l'équation suivante : tilesDown = 2level
  3. Calculez le nombre de pixels horizontaux sur la carte entière via l'équation suivante : pixelsAcross = tileWidth × tileAcross
  4. Calculez le nombre de pixels verticaux sur la carte entière via l'équation suivante : pixelsDown = tileHeight × tileDown
  5. À l'aide des limites de la carte dans la projection de la carte et des limites de la carte en pixels, il est possible de procéder à une transformation affine des pixels en coordonnées de carte. Les coordonnées en pixels transmises doivent se trouver dans l'espace de pixels de la carte. Il se peut qu'il ne soit pas suffisant de transmettre directement une coordonnée en pixels depuis un emplacement de souris sur l'écran. Par exemple, vous devrez peut-être convertir l'emplacement de souris en emplacement d'espace pixel sur la carte. Cela implique de suivre l'emplacement de l'espace pixel de la carte au coin supérieur droit du contrôle d'image et de décaler l'emplacement de souris en fonction de cet emplacement.

La méthode getDescription permet de réunir toutes les informations requises pour générer la transformation affine, comme tileWidth, tileHeight, la projection de la carte et les limites de la carte. Reportez-vous à la section getDescription.