
InfoTemplates
InfoTemplates
, as we mentioned in Chapter 1, Your First Mapping Application, describe how you want to display data in a popup. The InfoTemplate
can be constructed using two strings, the title and the content. The title and content strings represent HTML templates, and you can substitute graphic attributes in the template. For a graphic's infoTemplate
, if you wanted to display the graphic's total attribute, you would insert the value in the template with a ${total}
, which shows the field name inserted inside the brackets of the substitution string ${}
.
If you want to display a popup containing all the name/value pairs in the graphic's attributes, you can use a wildcard ${*}
in the content value, as follows:
graphic.infoTemplate = new InfoTemplate("Attributes", "${*}");
For the content, you can add HTML content to the string, including tables, lists, images, and links. For example, you might use something like the following to describe a marine habitat:
graphic.infoTemplate = new InfoTemplate("Marine Habitat (${name})", "<table><tbody><tr><th>Type: </th><td>${type}</td></tr><tr><th>Ocean zone:</th><td>${zone}</td></tr><tr><td colspan='2'><img src='${imageSrc}' alt='${name}' /></td></tr></tbody></table>");
In the preceding example, we added the name attribute of the graphic to the title, and created a two-column table that displays the type of the graphic, the zone where the graphic resides, and a two-column wide image connected to the map graphic.