MapInfo
MapXtreme Java 版
开发人员指南
MapInfo Corporation
Troy, New York
文档内容如有更改,恕不另行通知,文档的任意内容不代表供应商或其销售代表的承诺。 若非得到位于 New York 12180-8399 Troy 的
One Global View 的 MapInfo Corporation 的书面许可,不得以包含影印在内的任何电子或机械的形式或手段,复制或传播本文档的任意部分。
版权所有 © 2003 MapInfo Corporation。 保留所有权利。 MapInfo 和 MapInfo 徽标以及 MapInfo MapXtreme Java 版均为 MapInfo 公司和 / 或其分
支机构所属的商标。
MapInfo 公司总部:
语音电话: (518) 285-6000
传真: (518) 285-6070
销售信息热线: (800) 327-8627
政府机构销售热线: (800) 619-2333
技术支持热线: (518) 285-7283
技术支持传真: (518) 285-6080
欲获取 MapInfo 公司的联系信息,也可查询以下网页: http://www.mapinfo.com/contact_us.cfm 。
警示:本软件使用用于 .GIF 图像压缩和 / 或解压的专利 LZW 技术。 (Unisys 美国专利第 4,558,302 号以及加拿大、法国、德国、意大利、
日本和英国相应专利)。 除非用户事先与 Unisys 签订了书面许可协议,否则通过因特网或通过任意其他在线通信能力传输的压缩或解压的
GIF 图像不得用于出售或通过许可获取收益,或由因特网服务提供商或付费广告使用。 有关相应许可的详细信息,请联系: Unisys Corporation
Welch Licensing Department C1SW19 Township Line & Union Meeting Roads P.O. Box 500 Blue Bell PA 19424 传真: 215-986-3090
Java 以及所有基于 Java 的商标和徽标均为 Sun Microsystems, Inc. 在美国和其他国家的商标或注册商标。
版权所有 © 2003 Sun Microsystems, Inc。保留所有权利。
没有特定的书面许可, Sun Microsystems, Inc. 或捐助人的名称不可用于认可或推广由此软件派生的产品。
本软件按照 “原样”提供,不附带任何形式的担保。 就此免除所有明示或隐含的条件、陈述和担保,包括任意隐含的针对特定目的或非侵害
性目的适用性、适销性的担保责任。 SUN MICROSYSTEMS, INC. ("SUN") 及其许可颁发者就许可使用人因使用、修改或分发本软件或其派生
软件而遭受的任何损失不承担任何责任。 对于因无法使用本软件而导致的直接或间接、特殊或连带、意外或惩罚性损失造成的任意收益、利
益或数据的损失,尽管 SUN 已知存在类似损失的可能 , 但 SUN 或其许可颁发者不承担任何责任。
您确认本软件不是设计、授权或计划用于设计、构建、操作或维护任意核实施。
本产品包括由 Apache Software Foundation (http://www.apache.org) 开发的软件。
版权所有 (c) 1999 Apache Software Foundation。 保留所有权利。
版权所有 (C) 1991, 1999 Free Software Foundation, Inc.
版权所有 (C) 2000-2003 Jason Hunter & Brett McLaughlin。 保留所有权利。
“本产品包括 JDOM Project (http://www.jdom.org/) 开发的产品。”
Adobe Acrobat 是 Adobe Systems Incorporated 在美国的注册商标。
在此涉及到的产品名称均是且视为其各自制造商所有的商标。 商标名称均为文档编辑过程所引用,令商标所有人受益并无意侵犯商标的合法
权利。
2003 年 9 月
目录
第 1 章 : 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
产品组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
产品目标用户 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
编程优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
使用 MapXtreme Java 可以做什么? . . . . . . . . . . . . . . . . . . . . . . . .6
MapXtreme Java 文档集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
MapXtreme Java 4.7 版新增特性 . . . . . . . . . . . . . . . . . . . . . . . . .7
将 MapXtreme Java 4.5 应用程序移植到 4.7 . . . . . . . . . . . . . . . . . . . 10
第 1 部分:使用 MapXtreme Java . . . . . . . . . . . . . . 11
第 2 章 : 入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
系统要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
卸载 MapXtreme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
基础地图数据安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
卸载基础地图数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Tomcat 部署环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
在其他 Web 服务器环境中部署 MapXtreme . . . . . . . . . . . . . . . . . . . . 31
已安装的组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
安装字体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
在没有图形卡的 UNIX 上安装 . . . . . . . . . . . . . . . . . . . . . . . . . . 40
配置故障排除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
软件复制保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
第 3 章 : 应用程序规划 . . . . . . . . . . . . . . . . . . . . . . . . . 47
Web 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
部署选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
MapXtreme Java 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
设计时的考虑因素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
目录
第 4 章 : 地图绘制概念. . . . . . . . . . . . . . . . . . . . . . . . . . 55
组织数据和地图:表的概览 . . . . . . . . . . . . . . . . . . . . . . . . . . 56
地图定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
图元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
标注 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
地图数据分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
将数据制为地图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
第 5 章 : 管理 MapXtreme Java . . . . . . . . . . . . . . . . . . . . . . 61
MapXtreme Java 管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
地图定义面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Web 应用程序面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
命名资源面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
连接管理器面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
向 MapXtreme Java 管理器添加服务 . . . . . . . . . . . . . . . . . . . . . . 65
使用 MapXtreme Java 管理器管理数据 . . . . . . . . . . . . . . . . . . . . . 66
Geosets 和地图定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
加载现有的地图定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
创建地图定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
保存地图定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
使用地图工具控制图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
图层控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
通过图层控制显示选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
经由图层控制的标注选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
管理命名资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
第 6 章 : Web 应用程序构建器. . . . . . . . . . . . . . . . . . . . . . .101
使用 Web 应用程序构建器 . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
定制 JSP 标记库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
第 7 章 : MapXtreme JavaBeans . . . . . . . . . . . . . . . . . . . . . .109
概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
VisualMapJ Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
MapTool Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
MapToolBar Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
LayerControl Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
AddTheme Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
使用 MapXtreme JavaBeans 创建应用程序 . . . . . . . . . . . . . . . . . . . . 119
iv
MapXtreme Java 4.7 版
目录
SimpleMap Applet 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
在 Applet 或应用程序中包含 MapTools . . . . . . . . . . . . . . . . . . . . .123
配置和控制标准地图工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
创建定制 MapTools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
第 8 章 : 编写定制 Servlet . . . . . . . . . . . . . . . . . . . . . . . 133
Servlet 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
使用 Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
瘦客户机 / 胖服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
胖客户机 / 瘦服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
中型客户机 / 中型服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
MapXtremeServlet 数据流 . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Servlet 转发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
示例 Servlet:HTMLEmbeddedMapServlet . . . . . . . . . . . . . . . . . . . . .145
带有专题功能的样例 Servlet . . . . . . . . . . . . . . . . . . . . . . . . . .148
使用 Servlet 实用程序库 (MapToolkit) . . . . . . . . . . . . . . . . . . . . .149
第 2 部分:MapJ API 简介 . . . . . . . . . . . . . . . . . 151
第 9 章 : MapJ API . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
MapJ 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
创建第一个地图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
控制地图视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
添加图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
通过编程保存地图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
命名地图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
基本地图之外的其他特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
第 10 章 : 在图层中绘制地图 . . . . . . . . . . . . . . . . . . . . . . . 167
作为图层的地图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
Layers 集合:构建地图的模块 . . . . . . . . . . . . . . . . . . . . . . . . .168
使用数据提供方定义图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
创建定制数据提供方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
定义 JDBC 图层的注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . .172
将图层添加到 MapJ Layers 集合 . . . . . . . . . . . . . . . . . . . . . . . .173
数据绑定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
注释图层 (Annotation 图层) . . . . . . . . . . . . . . . . . . . . . . . . .180
分析图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
命名图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
开发人员指南
v
目录
Layers 集合的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
缩放图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
生成图层标注 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
栅格图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
导入栅格图像的考虑因素 . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
图像 IO 数据提供方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
栅格样式标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
MapXtreme Java 中的栅格图像 . . . . . . . . . . . . . . . . . . . . . . . . . 196
第 11 章 : 渲染涉及的考虑因素 . . . . . . . . . . . . . . . . . . . . . .199
MapXtremeImageRenderer . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
LocalRenderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
EncodedImageRenderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
使用命名地图渲染附加图层 . . . . . . . . . . . . . . . . . . . . . . . . . . 201
动画图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
栅格输出格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
SVG 输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
WBMP 支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
复合渲染器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
渐进渲染 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Intra-Servlet 容器渲染器 . . . . . . . . . . . . . . . . . . . . . . . . . . 212
第 12 章 : 访问远程数据 . . . . . . . . . . . . . . . . . . . . . . . . .215
命名连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
命名连接池 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
如何创建命名连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
访问入池连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
管理命名和直接数据库连接 . . . . . . . . . . . . . . . . . . . . . . . . . . 220
第 13 章 : 图元和搜索 . . . . . . . . . . . . . . . . . . . . . . . . . .223
Feature 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
使用 FeatureFactory 创建图元 . . . . . . . . . . . . . . . . . . . . . . . . 228
FeatureSet 集合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
搜索方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
搜索由 SQL 查询定义的图层 . . . . . . . . . . . . . . . . . . . . . . . . . . 239
图元编辑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
编辑注释图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
编辑 JDBC 表图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
vi
MapXtreme Java 4.7 版
目录
编辑 Tab 图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
第 14 章 : 标注和样式 . . . . . . . . . . . . . . . . . . . . . . . . . . 245
标注概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
专题标注 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
每图元标注样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
LabelProperties 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
合并标注属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
标注代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
样式概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
样式属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
命名样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
每图元样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
第 15 章 : 专题地图绘制和分析 . . . . . . . . . . . . . . . . . . . . . . 277
专题地图绘制概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
用于专题的一般对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
OverrideTheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
RangedTheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
SelectionTheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
IndividualValueTheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
专题图例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
制图图例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
使用分析图层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
第 3 部分:高级主题 . . . . . . . . . . . . . . . . . . . . 291
第 16 章 : XML 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
MapInfo Enterprise XML 协议 . . . . . . . . . . . . . . . . . . . . . . . . .294
MapImageRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
MapVectorRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
第 17 章 : 自定义 AddLayer 向导 . . . . . . . . . . . . . . . . . . . . . 303
概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
更改数据源列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
指定命名数据库连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
addlayerwizard.properties 的位置 . . . . . . . . . . . . . . . . . . . . . . .308
指定默认值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308
保存口令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
开发人员指南
vii
目录
第 18 章 : 创建定制数据提供方 . . . . . . . . . . . . . . . . . . . . . .311
简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
主数据提供方接口和文件概览 . . . . . . . . . . . . . . . . . . . . . . . . . 313
用于向量数据的 DataProvider 实施步骤 . . . . . . . . . . . . . . . . . . . . 314
用于栅格数据的 DataProvider 实施步骤 . . . . . . . . . . . . . . . . . . . . 316
向 AddLayerWizard 添加定制 DataProvider . . . . . . . . . . . . . . . . . . . 316
第 19 章 : 将 TAB 数据上载到远程数据库. . . . . . . . . . . . . . . . . .319
EasyLoader 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
运行 EasyLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
EasyLoader 的选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
加载 Oracle Spatial 数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 325
命令行标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
混合命令行标记与 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
第 20 章 : Web 地图服务 . . . . . . . . . . . . . . . . . . . . . . . . .331
WMS 服务器概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
GetCapabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
GetMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
GetFeatureInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
WMS 栅格数据提供方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
WMS 客户端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
第 4 部分:附录 . . . . . . . . . . . . . . . . . . . . . 345
附录 A: 定制 JSP 标记库 . . . . . . . . . . . . . . . . . . . . . . . . .347
定制 JSP 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
创建定制 JSP 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
创建添加 TAB 图层标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
向 Web 应用程序向导添加定制标记 . . . . . . . . . . . . . . . . . . . . . . 362
附录 B: 理解 MapBasic 样式字符串 . . . . . . . . . . . . . . . . . . . .367
画笔样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
画刷样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
符号样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
字体样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
颜色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
使用 MapInfo Professional 确定 MapBasic 样式 . . . . . . . . . . . . . . . . 380
viii
MapXtreme Java 4.7 版