can anyone help me to check what happen in my zoom and pan control

stin wang stin.wang at GMAIL.COM
Wed Jun 6 19:18:58 PDT 2007


I'm a newman in Mapserver. i want to use mapserver to distribute some
products in my office such as shape file, modis geotiff,and so on. i study
the tutorial create by Created by Pericles S. Nacionales . i think i grasp
the idea in section one ,that mean i learn how to write my own mapfile. but
i fail in section 2, when i try to imply mapfile into website. i don't
understand how  to manage template file.


here is my mapfile


# The annotated map file (sort of)
# Created by Pericles S. Nacionales for the MapServer tutorial
# 20050408
#
# MapServer map file uses the pound sign (#) to denote the start of a line
# comment--each line that needs to be commented has to be prepended with a
"#".
#
# Map files begin with MAP keyword to signify the start of the map object.
# Well, the entire map file is THE map object.  Enclosed between MAP and END
# at the very bottom of this map file, are keyword/value pairs and other
# objects.
MAP
  IMAGETYPE      PNG
  EXTENT         116.701621 38.555172 118.057785 40.251619
  SIZE           800 600
  SHAPEPATH      "../data"
  IMAGECOLOR     255 255 255
  FONTSET        "../fonts/fonts.list"

  # Layer objects are defined beneath the map object.  You need at least one
  # layer defined in your map file before you can display a map...  You can
  # define as many layers as you'd like although a limit is typically
hard-coded
  # in map.h in the MapServer source.  The default limit is set at 100.
You'd
  # have to have a very specialized application to need more than 100 layers
in
  # your application.

  # Start of LAYER DEFINITIONS ---------------------------------------------



  LAYER # States polygon layer begins here
    NAME         county
    DATA         county
    STATUS       OFF
    TYPE         POLYGON

    # CLASSITEM defines the non-spatial attribute that you will be using to
    # separate a layer into classes.  This attribute will be in the DBF file
    # of your shapefile (it will be different for each data format).  In
this
    # example the shapefile states_ugl has an associated database
    # (states_ugl.dbf) that contains an attribute called "CLASS".  You will
be
    # using two values in the CLASS attribute to separate the classes (also
    # called themes) used in this layer--land and water.  CLASSITEM is used
in
    # association with the EXPRESSION parameter in the CLASS object.  See
below.
    CLASSITEM    "湿润"

    # Just like CLASSITEM, LABELITEM defines the database attribute that you

    # will be using to draw labels.  In this case, the values of the
attribute
    # "STATE" will be used to label the states polygons.
    LABELITEM    "UNITENAME"

    # The class object is defined within the layer object.  You can define
as
    # many classes as you need (well, there are limits as with layers, but
it's
    # senseless to define more than ten on a "normal" layer.  There are
    # situations, however, where you might have to do it.)
    CLASS
      NAME 'VERYGOOD'
      EXPRESSION ([湿润] >0.382)

      # There are styles in a class, just like there are classes in a layer,
      # just like there are layers in a map.  You can define multiple styles
in
      # a class just as you can define multiple classes in a layer and
multiple
      # layers in a map.
      STYLE
        COLOR      232 121 128
      END
       LABEL
        COLOR 132 31 31
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT simhei
        SIZE 12
        ANTIALIAS TRUE
        POSITION AUTO
        PARTIALS FALSE
        MINDISTANCE 300
        BUFFER 4
 ENCODING GB2312
      END # end of label

      # There can be labels in a class, just like there are classes in a
layer,
      # just like there are layers in a map.  You can define multiple labels
in
      # a class just as you can define multiple classes in a layer and
multiple
      # layers in a map.
      # MapServer has a very flexible labeling system.  With that
flexibility
      # comes complexity, specially when using truetype fonts.  Please read
      # through the LABEL section of the MapServer map file documentation at
      # http://ms.gis.umn.edu/docs/reference/mapfile for more information.

    END
    CLASS
      NAME 'GOOD'
      EXPRESSION ([湿润]>0.289 and [湿润] < 0.382 )
      STYLE
 COLOR    25 123 12
      END
       LABEL
        COLOR  132 31 31
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT simhei
        SIZE 12
        ANTIALIAS TRUE
        POSITION AUTO
        PARTIALS FALSE
        MINDISTANCE 300
        BUFFER 4
 ENCODING GB2312
      END # end of label
    END

    CLASS
      NAME 'MIDDLE'
      EXPRESSION ([湿润]>0.251 and [湿润] < 0.289 )
      STYLE
 COLOR    255 255 21
      END
       LABEL
        COLOR  132 31 31
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT simhei
        SIZE 12
        ANTIALIAS TRUE
        POSITION AUTO
        PARTIALS FALSE
        MINDISTANCE 300
        BUFFER 4
 ENCODING GB2312
      END # end of label
    END

    CLASS
      NAME 'BAD'
      EXPRESSION ([湿润]>0.179 and [湿润] < 0.251 )
      STYLE
 COLOR    21 255 243
      END
       LABEL
        COLOR 132 31 31
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT simhei
        SIZE 12
        ANTIALIAS TRUE
        POSITION AUTO
        PARTIALS FALSE
        MINDISTANCE 300
        BUFFER 4
 ENCODING GB2312
      END # end of label
    END

    CLASS
      NAME 'VERYBAD'
      EXPRESSION ([湿润]=0.178 )
      STYLE
 COLOR    255 12 243
      END
      LABEL
        COLOR 132 31 31
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT simhei
        SIZE 12
        ANTIALIAS TRUE
        POSITION AUTO
        PARTIALS FALSE
        MINDISTANCE 300
        BUFFER 4
 ENCODING GB2312
      END # end of label

    END
    END

  LAYER # MODIS raster layer begins here
    NAME         tianjin_modis
    DATA         "raster/tianjin.tif"
    STATUS       OFF
    TYPE         RASTER
    PROCESSING   "BANDS=1,2,1"
    #OFFSITE      71 74 65

    #PROJECTION
    #  "init=epsg:4326"
    #END
  END # MODIS raster layer ends here

LAYER # RAIL LINE layer begins here
    NAME         rail
    DATA         rail
    STATUS       OFF
    TYPE         LINE

    # Here's an example of the input projection definition.
    # EPSG:4326 is code for geographic (latlong) projection
    # using the WGS84 datum.
    #
    # PROJECTION objects within the LAYER object define the input
    # projection--this is the native projection of your data.
    PROJECTION
      "init=epsg:4326"
    END

    # CLASSITEM defines the non-spatial attribute that you will be using to
    # separate a layer into classes.  This attribute will be in the DBF file
    # of your shapefile (it will be different for each data format).  In
this
    # example the shapefile states_ugl has an associated database
    # (states_ugl.dbf) that contains an attribute called "CLASS".  You will
be
    # using two values in the CLASS attribute to separate the classes (also
    # called themes) used in this layer--land and water.  CLASSITEM is used
in
    # association with the EXPRESSION parameter in the CLASS object.  See
below.
    #CLASSITEM    "CLASS"

    CLASS
      STYLE
        SYMBOL     0
        COLOR      232 232 0
      END
    END
  END # RAIL LINE  layer ends here


LAYER # ROAD LINE layer begins here
    NAME         road
    DATA         road
    STATUS       OFF
    TYPE         LINE

    # Here's an example of the input projection definition.
    # EPSG:4326 is code for geographic (latlong) projection
    # using the WGS84 datum.
    #
    # PROJECTION objects within the LAYER object define the input
    # projection--this is the native projection of your data.
    PROJECTION
      "init=epsg:4326"
    END

    # CLASSITEM defines the non-spatial attribute that you will be using to
    # separate a layer into classes.  This attribute will be in the DBF file
    # of your shapefile (it will be different for each data format).  In
this
    # example the shapefile states_ugl has an associated database
    # (states_ugl.dbf) that contains an attribute called "CLASS".  You will
be
    # using two values in the CLASS attribute to separate the classes (also
    # called themes) used in this layer--land and water.  CLASSITEM is used
in
    # association with the EXPRESSION parameter in the CLASS object.  See
below.
    #CLASSITEM    "CLASS"

    CLASS
      STYLE
        SYMBOL     0
        COLOR      232 90 232
      END
    END
  END # ROAD LINE  layer ends here


LAYER # RAIL LINE layer begins here
    NAME         water
    DATA         water
    STATUS       OFF
    TYPE         LINE

    # Here's an example of the input projection definition.
    # EPSG:4326 is code for geographic (latlong) projection
    # using the WGS84 datum.
    #
    # PROJECTION objects within the LAYER object define the input
    # projection--this is the native projection of your data.
    PROJECTION
      "init=epsg:4326"
    END

    # CLASSITEM defines the non-spatial attribute that you will be using to
    # separate a layer into classes.  This attribute will be in the DBF file
    # of your shapefile (it will be different for each data format).  In
this
    # example the shapefile states_ugl has an associated database
    # (states_ugl.dbf) that contains an attribute called "CLASS".  You will
be
    # using two values in the CLASS attribute to separate the classes (also
    # called themes) used in this layer--land and water.  CLASSITEM is used
in
    # association with the EXPRESSION parameter in the CLASS object.  See
below.
    #CLASSITEM    "CLASS"

    CLASS
      STYLE
        SYMBOL     0
        COLOR       232 90 232
      END
    END
  END # WATER LINE  layer ends here

  LAYER # States line layer begins here
    NAME         county_line#此处注意区分大小写
    DATA         COUNTY
    STATUS       OFF
    TYPE         line


    CLASS
      NAME       "State Boundary"
      STYLE
        COLOR    32 32 32
      END
    END

  END # States line layer ends here

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

END # All map files must come to an end just as all other things must come
to...

http://localhost:8080/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/tianjin_test.map&layer=rail&layer=road&layer=county&layer=water&layer=county_line&mode=map



it looks just like what i want..now i want to use this mapfile into a
template,just like turorial doing .



so i add some keword, in the map object  before layer object.

TEMPLATEPATTERN 'tianjin_test.html'
  WEB
    TEMPLATE  'tianjin_test.html'
    IMAGEPATH '/ms4w/tmp/ms_tmp/'
    IMAGEURL  '/ms_tmp/'
  END # Every object in MapServer must have an END.;)

  #
  # Start of legend
  #
  LEGEND
    KEYSIZE 12 12
    LABEL
      TYPE BITMAP
      SIZE MEDIUM
      COLOR 0 0 89
    END
    STATUS ON
  END

the template file is just like toturial



<html>
<head>
<title>MapServer Workshop</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link type="text/css" rel="stylesheet" href="/tutorial/ms35.css" />
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table width="601" align="center">
<tr>
    <td width="593">
 <h3 align="center">Example 2.1: Zoom and Pan Controls</h3>

<!-- START OF MAPSERVER FORM -->
<form name="mapserv" method="GET" action="/cgi-bin/mapserv.exe">

<!-- HIDDEN MAPSERVER CGI VARIABLES -->
    <input type="hidden" name="map" value="[map]">
    <input type="hidden" name="imgext" value="[mapext]">
    <input type="hidden" name="imgxy" value="399.5 299.5">

<table width="400" border="0" align="center">
  <tr>
    <td>
 <table width="400" border="1">
   <tr>
     <td>

<!-- SPECIFY MAP MODE -->
       <div align="center">Map Mode:<br>
  <select name="mode">
    <option value="browse">Browse</option>
    <option value="map">Map</option>
  </select>
       </div>
     </td>
     <td>
<!-- FORM SUBMIT BUTTON -->
       <div align="center">
  <input type="submit" name="submit" value="Refresh">
       </div>
     </td>
     <td>
<!-- ZOOM/PAN CONTROLS -->
       <div align="center">Map Control: <br>
                <select name="zoom">
                  <option value="4" [zoom_4_select]>Zoom In 4x</option>
                  <option value="3" [zoom_3_select]>Zoom In 3x</option>
                  <option value="2" [zoom_2_select]>Zoom In 2x</option>
                  <option value="1" [zoom_1_select]>Recenter</option>
                  <option value="-2" [zoom_-2_select]>Zoom Out 2x</option>
                  <option value="-3" [zoom_-3_select]>Zoom Out 3x</option>
                  <option value="-4" [zoom_-4_select]>Zoom Out 4x</option>
                </select>
              </div>
     </td>
   </tr>
   <tr>
<!-- DISPLAY THE MAPSERVER-CREATED MAP IMAGE -->
     <td colspan="3" align="center" valign="top">
       <input type="image" name="img" src="[img]" width="800"
        height="600" border="0">
     </td>
   </tr>
 </table>
    </td>
  </tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>

so when i open this webpage, it shows me a picture just like what i want

http://localhost:8080/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/tianjin_template.map&layer=county&layer=rail&layer=county_line&zoom=0&mode=browse&root=/tutorial&program=/cgi-bin/mapserv.exe&map_web_template=tianjin_test.html

but problem happens when i click . it should be zoom in or zoom out  but
when i click i found nothing anymore, the picture just diappear.





can anyone help me about it??









-- 
**************************************
wangtie
TianJin Meteorological Bureau
TEL
FAX
**************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20070607/c21342c2/attachment.htm>


More information about the MapServer-users mailing list