地图查看器样例应用程序利用了两个 Java Blueprint 1.4 Catalog 组件(由 Roger Kitain 编写,Craig McClanahan 为 Creator 2 样例对其进行了修改)。此样例基于 Craig 的 Creator 样例。地理编码器使用 Yahoo 地图服务来验证输入的地址并获取精确的纬度和经度。然后,地图查看器组件使用此信息来呈现 Google 地图并将其放在中心位置。目前,Early Access 样例应用程序仅呈现从 Yahoo 地图服务返回的第一个地址。可以使用以下声明来访问地图查看器和地理编码器组件的标记库:
<%@taglib prefix="ui" uri="http://java.sun.com/blueprints/ui/14"%>
地图查看器组件使用一个支持 Bean 来提供呈现 Google 地图所需的信息。将使用用户输入以及地理编码器组件的 Yahoo 查找返回的内容来填充此信息。可以单独使用这两个组件,但地图查看器组件需要精确的纬度和经度以将返回的 Google 地图放在中心位置。要了解如何使用地理编码器组件,请查看 com.sun.javaee.blueprints.mapviewer.MapBean 支持 Bean 的 "findAction" 方法。它封装了地理编码器的整个调用和返回内容,并设置地图查看器所使用的值。
<ui:mapViewer id="mapViewerx" center="#{MapBean.mapPoint}" info="#{MapBean.mapMarker}"
markers="#{MapBean.locations}" style="height: 500px; width: 700px"/>
正如在上面所看到的那样,组件标记名称为 "mapViewer" 并包含以下属性(这些属性的值是由 MapBean 支持 Bean 填充的):permission java.util.PropertyPermission "*","read,write";
注意:如果通过 "http://localhost:8080/bp-map-viewer" 以外的 URL 访问样例应用程序,则必须生成新的地图密钥以访问 Google 地图服务。该密钥目前是免费的,可通过 http://www.google.com/apis/maps/ 生成。可以将产生的密钥放在地图查看器组件的 "key" 属性中,或者放在 WEB-INF/web.xml 部署描述符的 com.sun.j2ee.blueprints.ui.mapviewer.KEY 参数名下面。例如:
<param-name>com.sun.j2ee.blueprints.ui.mapviewer.KEY</param-name>
<param-value>ABQIAAAAyQYKk4__l80DyIsqLPvvuxTRFLl8Tcq3arEgFHYFeOMvEMiJ8RQehhrYXPIDrf1muScWAd1MXrlVkQ</param-value>