Файл кода LAYER.map файл Layer.map

    MAP
    NAME "LAYER"
    SIZE 400 400
    STATUS ON
    EXTENT 1143759 4417539 1146436 4420390
    UNITS METERS 

    WEB
    TEMPLATE "template.html"
    END

    LAYER
         CONNECTIONTYPE Postgis
            CONNECTION "host=localhost dbname=newmapserver user=postgres password=**** port=5432"
            DATA "geom FROM song"
        NAME "song"
        TYPE POLYGON
        STATUS ON
        CLASS
          STYLE
            COLOR 255 235 190
            OUTLINECOLOR 0 0 0
            SYMBOL 0
          END
        END
    END

   END

Файл SAMPLE FILE sample.html sample.html

<html>
<head><title>Creating a simple image using Mapserver and a Shapefile</title></head>
<body bgcolor="#FFFFFF">
<h2>Creating a simple image using Mapserver and a Shapefile</h2>
<p><hr><p>
This page simply contains a link which sends a set of instructions to the Mapserver application using a mapfile.<br />
The information stored within the mapfile tells the Mapserver application how to draw the map.<p>
<!-- The following link sends the local file structure path of the mapfile to the web location of the mapserver executable file  -->
<A HREF="http://localhost/cgi-bin/mapserv.exe?map=C:\ms4w\Apache\htdocs\LAYER.map">
Click on this link</A> to view a map generated using a Shapefile.
<p><hr><p>

</body>
</html>

файл template.html файл шаблона

<!-- MapServer Template -->
<html>
<head><title>Simple Mapserver Template HTML Document</title></head>
<body bgcolor=#AAAAAA>
<h2>The image below was illustrated based on the instructions sent in the mapfile.</h2>
<!-- When using Mapserver with a template, the Mapserver application looks for the [img] tag within the template document to place the map -->
<IMG SRC="[img]" width=400 height=300 border=0>
</body>
</html>

Когда я запускаю файл sample.html и нажимаю ссылку для просмотра, я получаю ошибку изображения не найдено не удается найти http: //localhost/cgi-bin/LAYER157439308110272.png в консоли.

1
user2760635 22 Ноя 2019 в 06:36

1 ответ

Файл шаблона запроса структурирован неправильно. Он должен выглядеть примерно так (перечисление каждого столбца, необходимого для вашей таблицы базы данных):

<!-- MapServer Template -->
        <tr>
          <td>[name]</td>
          <td>[description]</td>
        </tr>

И вы должны указать на этот файл шаблона из СЛОЯ, например:

        LAYER 
          ...
          CLASS
            ...
            TEMPLATE "template.html"
            ...
          END  # CLASS

        END  # layer

Я рекомендую просмотреть полный рабочий пример в Разделе 3.1 руководства по MapServer по адресу: https: // demo. mapserver.org/tutorial/section3.html

0
mapserving 6 Май 2020 в 22:22