如何使用地图查看器和地理编码器组件

地图查看器样例应用程序利用了两个 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" 方法。它封装了地理编码器的整个调用和返回内容,并设置地图查看器所使用的值。

使用 JSF 地图查看器组件的示例如下所示:
 <ui:mapViewer id="mapViewerx" center="#{MapBean.mapPoint}" info="#{MapBean.mapMarker}"
markers="#{MapBean.locations}" style="height: 500px; width: 700px"/>
正如在上面所看到的那样,组件标记名称为 "mapViewer" 并包含以下属性(这些属性的值是由 MapBean 支持 Bean 填充的):
由于地理编码器和地图查看器访问外部服务,如果受到防火墙的保护并且没有设置为使用透明代理,则需要使用代理服务器。代理服务器的主机和端口设置在主查找页上具有弹出提示,但将需要授予安全权限以设置系统属性值。要授予写入访问权限以进行 JVM 代理设置,必须修改 server.policy 以包括写入权限。对于 Glassfish,server.policy 文件位于域的 config 目录下面。例如,如果将域命名为 "domain1",则文件位于 .../glassfish/domains/domain1/config/server.policy。要添加写入权限,应修改 PropertyPermission 以使其类似于以下内容:
    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>


© Sun Microsystems 2006。Java BluePrints Solutions Catalog 中的所有内容受版权保护,未经 Sun Microsystems 的明确书面许可,不得在其他产品中发布。