发表用户:lijiwang
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=11&ID=11560
信息原始来源:不祥

文章标题:MapXtreme for Java编写定制 Servlet

示例 Servlet:HTMLEmbeddedMapServlet
HTMLEmbeddedMapServlet 是 MapXtreme Java 附带的示例 servlet。该文件可见于 /
examples/server/Java/servlet。此外, mxjserversamples.jar 中还提供了预编译的版本。
HTMLEmbeddedMapServlet 提供了嵌入这些基本地图绘制元素的 HTML 页面。
• 显示地图的地图框架
• 用于缩小、放大、平移的单选按钮
• 地图宽度框,用户用于键入新地图的宽度
• 应用按钮,用于应用地图宽度
• 图层设置链接,显示可以启用或禁用的图层的表
• 切换,用于放大或缩小地图
• 比例尺
通过打开浏览器,然后键入如下所示的 MapXtremeServlet URL,即可运行
HTMLEmbeddedMapServlet:
http://stockholm:8080/samples47/htmlmap
URL 可能会因具体设置方式而有所不同。
示例 Servlet:HTMLEmbeddedMapServlet
146 MapXtreme Java 4.7 版
要自定义这一 servlet,可通过修改 HTMLEmbeddedMapServlet.java 中的适当变量并重新编
译来更改地图的宽度或高度。在修改和重新编译 servlet 时,需要将其 类文件复制到适当目
录。 例如,对于 Tomcat,可能需要将 .class 文件复制到 Tomcat 的 webapps/samples47/WEBINF/
classes 目录(如果是从 jar 运行,可能需要将类复制到 WEB-INF/lib/
mxjserversamples.jar)。
如果编译样例,务必要删除、移动或重命名 mxjserversamples.jar。否则,相应的 servlet 容
器可能会使用源自 jar 文件的 HTMLEmbeddedMapServlet.class 文件,而不是使用您所编译
的类文件。
HTMLEmbeddedMapServlet 代码示例可更改众多设置而无需重新编译。servlet 使用标准的
servlet 初始化参数加载其众多设置。例如,要加载的地图名称(如 world.gst)可使用初始
化参数覆盖。这样,如果只需更改要加载的地图的名称,则只要编辑 init 参数即可,无需
修改 servlet 源代码,。
第 8 章: 编写定制 Servlet
开发人员指南147
下表介绍 HTMLEmbeddedMapServlet 示例预期将要用到的最重要的初始化参数。有关由示
例 servlet 所用初始化参数的完全列表,请查看 HTMLEmbeddedMapServlet.java 中的注释。
如果所用 servlet 容器提供管理员工具(如 JRun 或 JavaWebServer),可使用该工具来设置
初始化参数,如上所示。某些 servlet 容器可能需要在 XML 文件中指定初始化参数,后续
内容对此作出了有关说明。
在 Tomcat 中编辑初始化参数
修改用于 Tomcat 的初始化参数可通过使用文本编辑器编辑 web.xml 文件来实现。以下示例
显示了定义 HTMLEmbeddedMapServlet 的三个初始化参数的 <servlet></servlet> 块,这三个
参数分别是 mappath、filetoload 和 mapxtremeurl init。
<servlet>
<servlet-name>
htmlmap
</servlet-name>
<servlet-class>
HTMLEmbeddedMapServlet
</servlet-class>
<init-param>
<param-name>
mappath
</param-name>
<param-value>
C:\mxt\maps
</param-value>
</init-param>
<init-param>
<param-name>
filetoload
</param-name>
<param-value>
C:\mxt\maps\world.gst
</param-value>
</init-param>
初始化参数说明示例
filetoload 将要显示的地图文件(.gst 或
.mdf 文件)的完全路径。
C:/mxt/maps/world.gst
mappath geoset (.gst) 地图文件在服务器
上安装目录的路径。不适用于
地图定义。
C:/mxt/maps
mapxtremeurl MapXtremeServlet URL /mapxtreme47/mapxtreme
带有专题功能的样例 Servlet
148 MapXtreme Java 4.7 版
<init-param>
<param-name>
mapxtremeurl
</param-name>
<param-value>
http://hostname/mapxtreme47/mapxtreme
</param-value>
</init-param>
</servlet>
带有专题功能的样例 Servlet
在位于 /examples/server/java/thematic 的示例目录下还提供了增加版本的示例 servlet
HTMLEmbeddedMapServlet,该示例集成了专题影线表示功能。有关向 servlet 添加专题支
持的详细信息,请参阅 HTMLThemeServlet.java 文件。
第 8 章: 编写定制 Servlet
开发人员指南149
使用 Servlet 实用程序库 (MapToolkit)
MapXtreme Java 为构建 servlet 提供了帮助程序方法库。借助于 MapJ 对象, MapToolkit 类
可以帮助您构建支持地图的网页公共元素,例如图层控制表单。在示例应用程序
HTMLEmbeddedMapServlet 中使用的方法就取自此类。
注: 此库只适用于编写 servlet 源代码的用户。大部分开发人员喜欢使用 JSP 应用程序,
如果计划在 JSP 中编写应用程序,就无需再使用 servlet 实用程序库。但如果出于
某些原因无法使用 JSP 库(如客户机无法符合 JSP 库所强制的 javascript 要求),
那么就可能需要使用到 servlet 实用程序库。
使用此类来简化 servlet 的开发。该库中包括以下元素:
地图工具 - 单选按钮,确定地图导航元素(缩、放、平移)。
缩放框 - 文本字段,显示当前的地图缩放,允许用户键入新的缩放。
图层控制 - HTML 页面,显示地图中的图层,允许用户选中或清除用于可选性、可见性和
自动标注的设置。
比例尺 - 可查看的元素,显示地图的比例。
地图大小切换 - 用于放大或缩小地图大小的链接。
使用 Servlet 实用程序库 (MapToolkit)
150 MapXtreme Java 4.7 版
Servlet MapToolkit 中的方法
MapToolkit 提供了以下方法。 有关 MapToolkit 类的完全说明,请参阅安装在计算机的
mapxtremejava/docs/devsupport 目录下的 HTML 参考资料。
方法说明
getHTMLLayerListControl 返回表示用作图层控制对话框的 HTML 页的字符串。
applyLayerSettings 更新地图以反映用户在图层控制页中选择的所有选项。
getHTMLZoomControl 返回表示缩放控制的字符串 - 一组 HTML 标记,提供文本字
段用于显示当前地图缩放宽度;以及“提交”按钮,应用用
户所键入的新缩放宽度。
getHTMLMapToolsControl 返回字符串表示一组用于缩、放、平移的单选按钮。
getHTMLScaleBar 返回的字符串表示定义地图比例尺的 HTML 语法。指定特定
宽度,或指定 0,此时比例尺将调整并舍入至大约地图图像宽
度的 1/4。
getToolNumber 返回整数,表示相应于工具名称的工具编号。
getStr 从资源包返回字符串资源。