Quelques mots sur une petite anomalie que j'ai constatée avec Yahoo!Maps.

Yahoo!Maps est le sympathique service cartographique de Yahoo! qui permet, comme son concurrent Google Maps de faire de jolis mash-up. C'est lui que j'utilise sur ma page de géolocalisation d'internautes.

Un peu surpris de constater que la carte affichée a toujours la même dimension (400x400), j'ai mené quelques investigations pour voir comment outrepasser cette limitation. La documentation en ligne de Yahoo!Maps montre, preuve à l'appui (il suffit de regarder leurs exemples) que l'on peut dimensionner la carte comme on le souhaite. Pourtant, rien n'y a fait sur mes pages de test : la règle CSS qui dimensionnait la carte était immanquablement surchargée par une règle établie a posteriori par le Javascript de Yahoo!Maps

Comme l'indique le titre de ce billet, la difficulté était en fait liée à la présence d'un entête DOCTYPE dans mon document HTML. Les bons usages de notre société veulent que lorsqu'on écrit un fichier HTML, on commence par déclarer qu'il s'agit d'un document HTML (ou XHTML). Cela se fait en référençant la DTD (c'est à dire la grammaire) dont se réclame le document, par exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Cette ligne permet au navigateur avec lequel on ouvre le document de savoir qu'il s'agit d'un document de type XHTML qui obéit à la grammaire référencée (xhtml1-strict.dtd). Seulement, voilà, il semble que lorsqu'on précise le DOCTYPE du document où figure la carte, Yahoo!Maps n'y retrouve plus ses petits et l'on perd les dimensions de la carte.

Moralité, lorsque vous faites un mash-up avec Yahoo!Maps, "omettez" le DOCTYPE ! C'est très très mal, mais, c'est à ce prix que vous obtiendrez une carte aux dimensions souhaitées.