MapServer教程:MapFile配置入门

Python与开源GIS

MapServer教程:MapFile配置入门

2016-12-09 作者: xuzhiping 浏览: 2831 次

摘要: 首先介绍一下本教程中使用的第一个Mapfile (example1-1.map): # 有评注的地图文件(排序) # 由Pericles S. Nacionales创建MapServer 教程 # 20050408 # ...

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

    # 有评注的地图文件(排序)
    # 由Pericles S. Nacionales创建MapServer 教程
    # 20050408
    #
    # MapServer地图文件使用英镑符号(#)表示一行MapServer的开始
    # 注释--需要注释的每一行必须以“#”开始。    # 地图文件以地图的关键词开始来表示地图对象的开始。    # 整个的地图文件是地图对象。在地图和地图文件之间附上的是关键词/有价值的对和其它的对象。    MAP
      IMAGETYPE      PNG
      EXTENT         -97.238976 41.619778 -82.122902 49.385620
      SIZE           400 300
      SHAPEPATH      "../data"
      IMAGECOLOR     255 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
            COLOR        232 232 232
            OUTLINECOLOR 32 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/和阅读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。

关注“开源集思”公众号
获取免费资源

随机推荐


Copyright © 2014-2019 OSGeo中国中心 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org