java mapfile_MapServer教程:MapFile配置入门

首先介绍一下本教程中使用的第一个Mapfile (example1-1.map):

# 有评注的地图文件(排序)

# 由Pericles S. Nacionales创建MapServer 教程

# 20050408

#

# MapServer地图文件使用英镑符号(#)表示一行MapServer的开始

# 注释--需要注释的每一行必须以“#”开始。

# 地图文件以地图的关键词开始来表示地图对象的开始。

# 整个的地图文件是地图对象。在地图和地图文件之间附上的是关键词/有价值的对和其它的对象。

MAP

IMAGETYPE      PNG

EXTENT-97.238976 41.619778 -82.122902 49.385620

SIZE400 300

SHAPEPATH"../data"

IMAGECOLOR255 255 255

# 图层对象在地图对象之下定义。在你展示一个

# 地图之前,你至少需要在你的地图文件中定义一个图层...你可以

# 定义尽可能多的图层尽管在MapServer来源中一个限制被典型地硬编码为map.h。

# 默认的限制被设置为100.你最好

# 必须有一个非常专业的应用来在你的应用中

# 应用100多个图层。

# 开始图层定义

LAYER# States polygon layer begins here

NAME         states

DATA         states_ugl

STATUS       OFF

TYPE         POLYGON

# 类对象与图层对象一起定义。你可以定义和

# 你需要的一样多的类(对图层有限制,但是

# 在一个正常的地图上定义多于10个是没有意义的。

# 但是有时候你不得不这样做。)

CLASS

NAME"The Upper Great Lakes States"

# 在一个类中有样式,正如在一个图层中有类别,

# 就像在一个地图中有图层。你可以在一个类

# 中定义不同的样式就像你可以在一个图层中

# 定义不同的类和在一个地图中定义不同的图层。

STYLE

COLOR232 232 232

OUTLINECOLOR32 32 32

END

END

END# States polygon layer ends here

# End of LAYER DEFINITIONS -------------------------------

END# 所有的地图文件必须结束正

我们会介绍一下MapFile的基本语法。后面使用的Mapfile,不会给出具体的说明。

这个MapFile是地图服务器的基本配置机制。这是由“对象”和每个对象都可以使用关 键字

或其他对象。它有一个分层结构,例如,一些物体落在在其他的对象……这个层次上的地图对象,

所有其他对象属于它。这个例子显示了一个非常简单的层次结构的 对象。当你通过每个例子时,

这些分层树的复杂性会增加。

有关MapFile的几个简单的说明:我们定义中的每个对象映射文件对象名称,我们用“END”

关闭它并且我们用英镑符号(#)写评注。

让我们看一下MapFile的主要结构。其结构看起来像这样:

MAP

|-LAYER

|-CLASS

|-STYLE

让我们来看看在MAP对象内的关键字(参数):

MAP

每一个映射文件开始于MAP对象 – 整个映射文件是MAP对象.

IMAGETYPE

IMAGETYPE的关键字用于定义那些 MapServer的CGI程序应该用于输出图像格式。

在这种情况下,我们是使用索引彩色PNG(类似GIF)。这可能是G IF,如果我们编译

GD库支持GIF,WBMP,JPEG。我们也可以指定编译对他们的支持的其他输出选项(PDF,

SWF的GeoTIFF),并指定他们为OUTP UTFORMAT对象。OUTPUTFORMAT超出本教

程的范围,但通过阅读主要MapServer的网站的资料你可以找到更多。

EXTENT

此参数指定我们的地图输出范围的边界 – 我们最初的地图边界。范围值的格式为:

左下X 左下Y 右上X 右上Y

用空格分隔每个值。这需要数据的单位相同,或者如果指定一个不同的输出投影,

在相同的单位输出投影。

在这个例子中,我们的数据是地理投影,所以单位是十进制。您可以使用实用程序“ogrinfo”,

这是GDAL/ OGR库包的一部分,得到一个特定的shape文件(或其他支持的矢量格式)的范围。

这里是我用这个例子范围的命令:

ogrinfo-al-so states_ugl.shp

返回下面的输出:

INFO:Open of `states_ugl.shp'

using driver `ESRI Shapefile' successful.

Layer name: states_ugl

Geometry: Polygon

Feature Count:204

Extent: (-97.238976,41.619778)- (-82.122902,49.385620)

Layer SRS WKT:

(unknown)

AREA: Real (12.3)

PERIMETER: Real (12.3)

STATESP020: Real (11.0)

STATE: String (20.0)

STATE_FIPS: String (2.0)

CLASS: String (5.0)

您还可以使用ArcView或其他开源GIS软件包 – QGIS、Thuban等 – 随意改变值的范围

更好地了解它如何改变你的地图。

SIZE

这是大小的图像(电子地图),地图服务器生成,以像素为单位。因此,我们的地图是

400像素宽,300像素高。再次,改变你的中心的内容,看看它是如何影响你的地图.

SHAPEPATH

这是数据层的路径。您可以提供绝对路径(即,“/ ms4w/apps/tutorial/data”

或“C:/ms4w/apps/tutorial/data”) 或相对路径到您的映射文件的位置(在这个例子

中,你会使用”../data”)。此路径没有通过网络访问,并且可能不应该,除非你想任何人都

可以下载你的原始数据。它 有没有直接这样做的WEB不甚至认为这里的网址 – 只要确保用户

运行Web服务器(通常是”nobody” 或者 “apache”)可以读取的SHAPEPATH中的数据。

IMAGECOLOR

这是您的地图的背景色。值由RGB值所以255红,255绿,和255B,这会导致在白色背景中。

来吧,一起玩这个值.

现在,让我们来看看层对象参数:

LAYER

标志着一个层内的地图对象。只要你愿意,您可以指定为多层次,虽然默认情况下你是

有限的100。要改变这种限制,你将不得不编辑map.h头文件(从古到今树),并重新编译

MapServer

NAME

这是一个层的标识符。 MapServer的使用这个名字进行切换层的开启和关闭。它不会在这

个例子中,我们有层状态设置为默认值。在以后,我们将回到这个的例子。

DATA

数据的名称(在这种情况下,shape文件)。

请读取的MapServer的矢量数据指南了解更多有关如何访问MapServer的矢量数据。

MapServer的支持矢量数据格式ESRI的shape文件使用OGR库(的GDAL软件包的一部分)。

请访问GDAL项目网站和阅读http://www.gdal.org/ogr/ogr_formats.html了解更多OGR支持的各种格式。

TYPE

这是什么类型的数据?如果它是一个矢量数据,您可以指定无论它是一个多边形,线(你用

你的数据线,即使技术上折线),

或者一个点。您也可以指定栅格或注释数据。在这里 ,我们要显示多边形。

STATUS

层被基于它们的状态打开或关闭。默认总是打开。 ON或OFF的工作的一部分,

通过图层名称查询字符串。

Let’s look at the CLASS object parameters:看一下CLASS的参数:

CLASS

标志着层内对象的Class对象。你可以指定层内尽可能多的类,虽然默认被限制为50。

你必须重新编译MapServer来改变默认值。

NAME

这个类的描述性识别。层对象可以有多个类,就像地图对象可以有多个层次。传说中的标签,

以便使所使用的类名的MapServer类命名时,一定要使用适当的描述性名称 。稍后在本教程中,

我们将谈到。

最后,让我们来看看在STYLE对象参数:

STYLE

注意STYLE对象的开始。您可以在一个类定义多个的风格 – 当你想叠加在另一个风格,这是有用的。

COLOR

这是多边形的填充颜色。案件类型为直线,这是线的颜色。这些数值是RGB格式。

OUTLINECOLOR

这是多边形的边框颜色。这些数值是在RGB格式。 MapServer在默认情况下,不绘制多边形轮廓,

因此,如果你想看到多边形边界,你将要定义OUTLINECOLOR。

转载请注明出处。GIS帝国网站报道中出现的商标及图像版权属于其合法持有人,只供传递信息之用,非商务用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值