-
Notifications
You must be signed in to change notification settings - Fork 2
/
faq.html
748 lines (706 loc) · 50.5 KB
/
faq.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>FAQ — MapServer 8.2.2 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="_static/sphinx.css?v=6c7b17ac" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=dd298242" />
<link rel="stylesheet" type="text/css" href="_static/ribbon.css?v=ea091bf4" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=8649718b"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
<script src="_static/copybutton.js?v=f281be69"></script>
<link rel="icon" href="_static/mapserver.ico"/>
<link rel="author" title="About these documents" href="about.html" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="copyright" title="Copyright" href="copyright.html" />
<link rel="next" title="MapServer Licensing" href="copyright.html" />
<link rel="prev" title="Errors" href="errors.html" />
</head><body>
<!-- for main branch only, do not backport this -->
<table width="100%" style="width: 100%; background-color: white;">
<tr>
<td rowspan="2" style="padding: 10px 0px 10px 10px;">
<a href="index.html" title="Home"><img src="_static/banner.png" alt="MapServer banner" border="0" /></a>
</td>
<td style="padding: 10px 10px 0px 0px; text-align: right; vertical-align: top;">
<a href="index.html" title="Home">Home</a> |
<a href="products.html" title="Products (MapServer core, MapCache, TinyOWS">Products</a> |
<a href="https://github.com/mapserver/mapserver/issues/" title="Issue Tracker (MapServer core)">Issue Tracker</a> |
<a href="community/service_providers.html" title="Professional Service Providers">Service Providers</a> |
<a href="#" title="Frequently Asked Questions">FAQ</a> |
<a href="https://twitter.com/mapserver_osgeo" title="Twitter" target="_blank">Twitter</a> |
<a href="download.html" title="Download Source or Binaries">Download </a> |
<a class="badge" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KRJ2X44N3HA6U&source=url" target="_blank">
<img src="https://img.shields.io/badge/donate-%E2%9D%A4%C2%A0-ff69b4.svg?style=flat" alt="Donate to MapServer">
</a>
</td>
</tr>
<tr>
<td style="padding: 0px 10px 0px 0px; text-align: right; vertical-align: bottom;">
<img src="_static/flagicons/en.png" alt="en" title="en" border="0" width="18px" height="13px"/>
<a href="ar/faq.html"><img src="_static/flagicons/ar.png" alt="ar" title="ar" border="0" /></a>
<a href="de/faq.html"><img src="_static/flagicons/de.png" alt="de" title="de" border="0" /></a>
<a href="el/faq.html"><img src="_static/flagicons/el.png" alt="el" title="el" border="0" /></a>
<a href="es/faq.html"><img src="_static/flagicons/es.png" alt="es" title="es" border="0" /></a>
<a href="fr/faq.html"><img src="_static/flagicons/fr.png" alt="fr" title="fr" border="0" /></a>
<a href="id/faq.html"><img src="_static/flagicons/id.png" alt="id" title="id" border="0" /></a>
<a href="it/faq.html"><img src="_static/flagicons/it.png" alt="it" title="it" border="0" /></a>
<a href="ja/faq.html"><img src="_static/flagicons/ja.png" alt="ja" title="ja" border="0" /></a>
<a href="nl_NL/faq.html"><img src="_static/flagicons/nl_NL.png" alt="nl_NL" title="nl_NL" border="0" /></a>
<a href="pl/faq.html"><img src="_static/flagicons/pl.png" alt="pl" title="pl" border="0" /></a>
<a href="ru/faq.html"><img src="_static/flagicons/ru.png" alt="ru" title="ru" border="0" /></a>
<a href="sq/faq.html"><img src="_static/flagicons/sq.png" alt="sq" title="sq" border="0" /></a>
<a href="tr/faq.html"><img src="_static/flagicons/tr.png" alt="tr" title="tr" border="0" /></a>
</td>
</tr>
</table>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="copyright.html" title="MapServer Licensing"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="errors.html" title="Errors"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Home</a> »</li>
<li class="nav-item nav-item-1"><a href="documentation.html" accesskey="U">MapServer 8.2.2 Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">FAQ</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="faq">
<span id="id1"></span><h1>FAQ<a class="headerlink" href="#faq" title="Link to this heading">¶</a></h1>
<section id="where-is-the-mapserver-log-file">
<h2>Where is the MapServer log file?<a class="headerlink" href="#where-is-the-mapserver-log-file" title="Link to this heading">¶</a></h2>
<p>See <a class="reference internal" href="optimization/debugging.html#debugging"><span class="std std-ref">Debugging MapServer</span></a></p>
</section>
<section id="what-books-are-available-about-mapserver">
<h2>What books are available about MapServer?<a class="headerlink" href="#what-books-are-available-about-mapserver" title="Link to this heading">¶</a></h2>
<p><a class="reference external" href="https://www.oreilly.com/library/view/mapping-hacks/0596007035/">“Mapping Hacks”</a> by Schuyler
Erle, Rich Gibson, and Jo Walsh is available from O’Reilly.</p>
<p><a class="reference external" href="https://www.oreilly.com/library/view/web-mapping-illustrated/0596008651/">“Web Mapping Illustrated”</a> by Tyler
Mitchell is available from O’Reilly. Introduces MapServer and many other
related technologies including, GDAL/OGR, MapScript, PostGIS, map projections,
etc.</p>
<p><a class="reference external" href="https://link.springer.com/book/10.1007/978-1-4302-0053-6">“MapServer: Open Source GIS Development”</a> by Bill Kropla.</p>
</section>
<section id="how-do-i-compile-mapserver-for-windows">
<h2>How do I compile MapServer for Windows?<a class="headerlink" href="#how-do-i-compile-mapserver-for-windows" title="Link to this heading">¶</a></h2>
<p>See <a class="reference internal" href="installation/win32.html#win32"><span class="std std-ref">Compiling on Win32</span></a>. Also, you can use the development libraries in <a class="reference internal" href="download.html#windows"><span class="std std-ref">OSGeo4W</span></a> as a starting point instead of building all of the dependent
libraries yourself. Windows users wanting a full installer (including Apache,
MapServer, mapscripts, GDAL) please see <a class="reference external" href="https://ms4w.com">MS4W</a></p>
</section>
<section id="what-do-mapserver-version-numbers-mean">
<h2>What do MapServer version numbers mean?<a class="headerlink" href="#what-do-mapserver-version-numbers-mean" title="Link to this heading">¶</a></h2>
<p>MapServer’s version numbering scheme is very similar to Linux’s. For example,
a MapServer version number of 4.2.5 can be decoded as such:</p>
<ul class="simple">
<li><p>4: Major version number. MapServer releases a major version every two to
three years.</p></li>
<li><p>2: Minor version number. Increments in minor version number almost always
relate to additions in functionality.</p></li>
<li><p>5: Revision number. Revisions are bug fixes only. No new functionality is
provided in revisions.</p></li>
</ul>
<p>From a developer’s standpoint, MapServer version numbering scheme is also like
Linux. Even minor version numbers (0..2..4..6) relate to <em>release</em> versions,
and odd minor versions (1..3..5..7) correspond to developmental versions.</p>
</section>
<section id="is-mapserver-thread-safe">
<h2>Is MapServer Thread-safe?<a class="headerlink" href="#is-mapserver-thread-safe" title="Link to this heading">¶</a></h2>
<p><strong>Q</strong>: Is MapServer thread-safe?</p>
<p><strong>A</strong>: Generally, no (but see the next question). Many components of MapServer
use static or global data that could potentially be modified by another
thread. Under heavy load these unlikely events become inevitable, and could
result in sporadic errors.</p>
<p><strong>Q</strong>: Is it possible to safely use any of MapServer in a multi-threaded
application?</p>
<p><strong>A</strong>: Some of it, yes, with care. Or with Python :) Programmers must either
avoid using the unsafe components of MapServer or carefully place locks around
them. Python’s global interpreter lock immunizes against MapServer threading
problems; since no mapscript code ever releases the GIL all mapscript
functions or methods are effectively atomic. Users of mapscript and Java,
.NET, mod_perl, or mod_php do not have this extra layer of protection.</p>
<p><strong>A</strong>: Which components are to be avoided?</p>
<p><strong>Q</strong>: Below are lists of unsafe and unprotected components and unsafe but
locked components.</p>
<p>Unsafe:</p>
<ul class="simple">
<li><p>OGR layers: use unsafe CPL services</p></li>
<li><p>Cartoline rendering: static data</p></li>
<li><p>Imagemap output: static data</p></li>
<li><p>SWF output: static data and use of unsafe msGetBasename()</p></li>
<li><p>SVG output: static data</p></li>
<li><p>WMS/WFS server: static data used for state of dispatcher</p></li>
<li><p>Forcing a temporary file base (an obscure feature): static data</p></li>
<li><p>MyGIS: some static data</p></li>
</ul>
<p>Unsafe, but locked:</p>
<ul class="simple">
<li><p>Map config file loading: global parser</p></li>
<li><p>Setting class and and layer filter expressions (global parser)</p></li>
<li><p>Class expression evaluation (global parser)</p></li>
<li><p>Setting map and layer projections (PROJ)</p></li>
<li><p>Raster layer rendering and querying (GDAL)</p></li>
<li><p>Database Connections (mappool.c)</p></li>
<li><p>PostGIS support</p></li>
<li><p>Oracle Spatial (use a single environment handle for connection)</p></li>
<li><p>SDE support (global layer cache)</p></li>
<li><p>Error handling (static repository of the error objects)</p></li>
<li><p>WMS/WFS client connections: potential race condition in Curl initialization</p></li>
<li><p>Plugin layers (static repository of the loaded dll-s)</p></li>
</ul>
<p>Rather coarse locks are in place for the above. Only a single thread can use
the global parser at a time, and only one thread can access GDAL raster data
at a time. Performance is exchanged for safety.</p>
</section>
<section id="what-does-status-mean-in-a-layer">
<h2>What does STATUS mean in a LAYER?<a class="headerlink" href="#what-does-status-mean-in-a-layer" title="Link to this heading">¶</a></h2>
<p>STATUS ON and STATUS OFF set the default status of the layer. If a map is
requested, those layers will be ON/OFF unless otherwise specified via the
layers parameter. This is particularly the case when using MapScript and
MapServer’s built-in template mechanism, but is also useful as a hint when
writing your own apps and setting up the initial map view.</p>
<p>STATUS DEFAULT means that the layer is always on, even if not specified in the
layers parameter. A layer’s status can be changed from DEFAULT to OFF in
MapScript, but other than that, it’s always on.</p>
<p><a class="reference internal" href="cgi/index.html#cgi"><span class="std std-ref">CGI</span></a> turns everything off that is not “STATUS DEFAULT” off so all layers
start from the same state (e.g. off) and must be explicitly requested to be
drawn or query. That common state made (at least in my mind) implementations
easier. I mean, if a layer “lakes” started ON the doing layer=lakes would turn
it OFF. So I wanted to remove the ambiguity of a starting state.</p>
</section>
<section id="how-can-i-make-my-maps-run-faster">
<h2>How can I make my maps run faster?<a class="headerlink" href="#how-can-i-make-my-maps-run-faster" title="Link to this heading">¶</a></h2>
<p>There are a lot of different approaches to improving the performance of your
maps, aside from the obvious and expensive step of buying faster hardware.
Here are links to some individual howtos for various optimizations.</p>
<ul class="simple">
<li><p><a class="reference internal" href="optimization/mapfile.html#mapfile-tuning"><span class="std std-ref">Tuning your mapfile for performance</span></a></p></li>
<li><p><a class="reference internal" href="optimization/vector.html#vector-optimization"><span class="std std-ref">Optimizing the performance of vector data sources</span></a></p></li>
<li><p><a class="reference internal" href="optimization/raster.html#raster-optimization"><span class="std std-ref">Optimizing the performance of raster data sources</span></a></p></li>
<li><p><a class="reference internal" href="optimization/tileindex.html#tileindex"><span class="std std-ref">Tileindexes for mosaicing and performance</span></a></p></li>
</ul>
<p>Some general tips for all cases:</p>
<ul class="simple">
<li><p>First and foremost is hardware. An extra GB of RAM will give your map
performance increases beyond anything you’re likely to achieve by tweaking
your data. With the price of RAM these days, it’s cheap and easy to speed up
every map with one inexpensive upgrade.</p></li>
<li><p>Use the scientific method. Change one thing at a time, and see what effect
it had. Try disabling all layers and enabling them one at a time until you
discover which layer is being problematic.</p></li>
<li><p>Use <a class="reference internal" href="utilities/map2img.html#map2img"><span class="std std-ref">map2img</span></a> program to time your results. This runs from
the command line and draws an image of your entire map. Since it’s run from
the command line, it is immune to net lag and will give more consistent
measurements that your web browser.</p></li>
</ul>
</section>
<section id="what-does-polyline-mean-in-mapserver">
<h2>What does Polyline mean in MapServer?<a class="headerlink" href="#what-does-polyline-mean-in-mapserver" title="Link to this heading">¶</a></h2>
<p>There’s confusion over what POLYLINE means in MapServer and via ESRI. In
MapServer POLYLINE simply means a linear representation of POLYGON data. With
ESRI polyline means multi-line. Old versions of the Shapefile technical
description don’t even refer to polyline shapefiles, just line. So, ESRI
polyline shapefiles are just linework and can only be drawn and labeled as
LINE layers. Those shapefiles don’t have feature closure enforced as polygon
shapefiles do which is why the distinction is so important. I suppose there is
a better choice than POLYLINE but I don’t know what it would be.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The only difference between POLYLINE and LINE layers is how they are
labeled.</p>
</div>
</section>
<section id="what-is-mapscript">
<h2>What is MapScript?<a class="headerlink" href="#what-is-mapscript" title="Link to this heading">¶</a></h2>
<p>MapScript is the scripting interface to MapServer, available
through the <a class="reference internal" href="mapscript/mapscript-api/index.html#swig"><span class="std std-ref">SWIG API</span></a>.
MapScript allows you to program with MapServer’s objects directly
instead of interacting with MapServer through its <a class="reference internal" href="cgi/index.html#cgi"><span class="std std-ref">CGI</span></a> and
<a class="reference internal" href="mapfile/index.html#mapfile"><span class="std std-ref">Mapfile</span></a>.</p>
<blockquote>
<div><div class="admonition note">
<p class="admonition-title">Note</p>
<p>As of the MapServer 8.0.0 release PHP support is only available through
MapServer’s <a class="reference internal" href="mapscript/mapscript-api/index.html#swig"><span class="std std-ref">SWIG API</span></a>. (previous versions could also
access the unmaintained <a class="reference internal" href="mapscript/php/phpmapscript.html#phpmapscriptapi"><span class="std std-ref">PHP MapScript API</span></a>)</p>
</div>
</div></blockquote>
</section>
<section id="does-mapserver-support-reverse-geocoding">
<h2>Does MapServer support reverse geocoding?<a class="headerlink" href="#does-mapserver-support-reverse-geocoding" title="Link to this heading">¶</a></h2>
<p>No.</p>
<p>Reverse geocoding is an activity where you take a list of street features that
you already have and generate postal addresses from them. This kind of spatial
functionality is provided by proprietary packages such as the ESRI suite of
tools, as well as services such as those provided by GDT. MapServer is for
<em>map rendering</em>, and it does not provide for advanced spatial operations such
as this.</p>
</section>
<section id="does-mapserver-support-geocoding">
<h2>Does MapServer support geocoding?<a class="headerlink" href="#does-mapserver-support-geocoding" title="Link to this heading">¶</a></h2>
<p>No.</p>
<p>Geocoding is an activity where you take a list of addresses and generate
lat/lon points for them. This kind of spatial functionality is provided by
proprietary packages such as the ESRI suite of tools, as well other sites.
MapServer is for <em>map rendering</em>, and it does not provide for advanced
spatial operations such as this.</p>
<p>There are many free geocoders available, such as <a class="reference external" href="http://geolytica.com">http://geolytica.com</a> (geocoder.ca)
for North America, or you can set up your own service using OpenStreetMap data, TIGER data,
or other open data sources. Then you could hook your application up to use this
service to provide lat/lon pairs for addresses, and then use MapServer to
display those points (possibly through MapScript).</p>
</section>
<section id="how-do-i-set-line-width-in-my-maps">
<h2>How do I set line width in my maps?<a class="headerlink" href="#how-do-i-set-line-width-in-my-maps" title="Link to this heading">¶</a></h2>
<p>In the current MapServer version, line width is set using
the STYLE parameter WIDTH. For a LINE layer, lines can be
made red and 3 pixels wide by using the following style in
a CLASS.</p>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">STYLE</span>
<span class="k">COLOR</span> <span class="mi">255</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="k">WIDTH</span> <span class="mi">3</span>
<span class="k">END</span>
</pre></div>
</div>
<p>In earlier versions of MapServer , you could set the symbol for the
LAYER to ‘circle’ and then you can set the symbol SIZE to be the
width you want. A ‘circle’ symbol can be defined as</p>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">SYMBOL</span>
<span class="k">NAME</span> <span class="s">'circle'</span>
<span class="k">TYPE</span> <span class="nb">ELLIPSE</span>
<span class="k">FILLED</span> <span class="nb">TRUE</span>
<span class="k">POINTS</span> <span class="mi">1</span> <span class="mi">1</span> <span class="k">END</span>
<span class="k">END</span>
</pre></div>
</div>
</section>
<section id="which-image-format-should-i-use">
<h2>Which image format should I use?<a class="headerlink" href="#which-image-format-should-i-use" title="Link to this heading">¶</a></h2>
<p>Although MapScript can generate the map in any desired image format it is
sufficient to only consider the most prevalent ones: JPEG and PNG.</p>
<p>JPEG is an image format that uses a lossy compression algorithm to reduce an
image’s file size and is mostly used when loss of detail through compression
is either not noticeable or negligible, as in most photos. Maps on the other
hand mainly consist of fine lines and areas solidly filled in one colour,
which is something JPEG is not known for displaying very well. In addition,
maps, unless they include some aerial or satellite imagery, generally only use
very few different colours. JPEG with its 24bit colour depth capable of
displaying around 16.7 million colours is simple not suitable for this
purpose. PNG8 however use an indexed colour palette which can be
optimized for any number (up to 256) of colours which makes them the perfect
solution for icons, logos, charts or maps. The following comparison (generated
file sizes only; not file generation duration) will therefore only include
these two file formats:</p>
<table class="docutils align-default" id="id2">
<caption><span class="caption-text">PNG8 vs. PNG24 Generated Map File Sizes</span><a class="headerlink" href="#id2" title="Link to this table">¶</a></caption>
<thead>
<tr class="row-odd"><th class="head"></th>
<th class="head"><p>PNG8</p></th>
<th class="head"><p>PNG24</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Vector Data only</p></td>
<td><p>26kb</p></td>
<td><p>69kb</p></td>
</tr>
<tr class="row-odd"><td><p>Vector Data & Satellite Image coloured</p></td>
<td><p>182kb</p></td>
<td><p>573kb</p></td>
</tr>
<tr class="row-even"><td><p>Vector Data & Satellite Image monochrome</p></td>
<td><p>134kb</p></td>
<td><p>492kb</p></td>
</tr>
</tbody>
</table>
<p>(results based on an average 630x396 map with various colours, symbols,
labels/annotations etc.)</p>
<p>PNG8 is the clear quantitative winner in terms of generated file sizes for maps with
or without additional monochrome imagery.
If the mapping application however can also display fullcolour aerial or
satellite imagery, the output file format can be changed dynamically to PNG24
to achieve the highest possible image quality.</p>
</section>
<section id="how-do-i-add-a-copyright-notice-on-the-corner-of-my-map">
<h2>How do I add a copyright notice on the corner of my map?<a class="headerlink" href="#how-do-i-add-a-copyright-notice-on-the-corner-of-my-map" title="Link to this heading">¶</a></h2>
<p>You can use an inline feature, with the <a class="reference internal" href="mapfile/feature.html#feature"><span class="std std-ref">FEATURE</span></a> object, to make
a point on your map. Use the TEXT parameter of the FEATURE object for
the actual text of the notice, and a <a class="reference internal" href="mapfile/label.html#label"><span class="std std-ref">LABEL</span></a> object to style the
notice.</p>
<section id="example-layer">
<h3>Example Layer<a class="headerlink" href="#example-layer" title="Link to this heading">¶</a></h3>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">LAYER</span>
<span class="k">NAME</span> <span class="s">"copyright"</span>
<span class="k">STATUS</span> <span class="nb">on</span>
<span class="k">TYPE</span> <span class="nb">point</span>
<span class="k">TRANSFORM</span> <span class="nb">ll</span> <span class="c"># set the image origin to be lower left</span>
<span class="k">UNITS</span> <span class="nb">PIXELS</span> <span class="c"># sets the units for the feature object</span>
<span class="k">FEATURE</span>
<span class="k">POINTS</span>
<span class="mi">60</span> <span class="p">-</span><span class="mi">10</span> <span class="c"># the offset (from lower left) in pixels</span>
<span class="k">END</span> <span class="c"># Points</span>
<span class="k">TEXT</span> <span class="s">"© xyz company 2006"</span> <span class="c"># this is your displaying text</span>
<span class="k">END</span> <span class="c"># Feature</span>
<span class="k">CLASS</span>
<span class="k">STYLE</span> <span class="c"># has to have a style</span>
<span class="k">END</span> <span class="c"># style</span>
<span class="k">LABEL</span> <span class="c"># defines the font, colors etc. of the text</span>
<span class="k">FONT</span> <span class="s">"times"</span>
<span class="k">TYPE</span> <span class="nb">truetype</span>
<span class="k">SIZE</span> <span class="mi">8</span>
<span class="k">BUFFER</span> <span class="mi">1</span>
<span class="k">COLOR</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="k">FORCE</span> <span class="nb">true</span>
<span class="k">STYLE</span>
<span class="k">GEOMTRANSFORM</span> <span class="s">'labelpoly'</span>
<span class="k">COLOR</span> <span class="mi">255</span> <span class="mi">255</span> <span class="mi">255</span> <span class="c"># white</span>
<span class="k">END</span> <span class="c"># Style</span>
<span class="k">END</span> <span class="c"># Label</span>
<span class="k">END</span> <span class="c"># Class</span>
<span class="k">END</span> <span class="c"># Layer</span>
</pre></div>
</div>
</section>
<section id="result">
<h3>Result<a class="headerlink" href="#result" title="Link to this heading">¶</a></h3>
<img alt="_images/copyright-image.png" src="_images/copyright-image.png" />
</section>
</section>
<section id="how-do-i-have-a-polygon-that-has-both-a-fill-and-an-outline-with-a-width">
<h2>How do I have a polygon that has both a fill and an outline with a width?<a class="headerlink" href="#how-do-i-have-a-polygon-that-has-both-a-fill-and-an-outline-with-a-width" title="Link to this heading">¶</a></h2>
<p>How do I have a polygon that has both a fill and an outline with a width?
Whenever I put both a color (fill) and an outlinecolor with a width on a
polygon within a single STYLE, the outline width isn’t respected.</p>
<p>For historical reasons, width has two meanings within the context of filling
polygons and stroke widths for the outline. If a polygon is filled, then the
width defines the width of the symbol <em>inside</em> the filled polygon. In this
event, the outline width is disregarded, and it is always set to 1. To achieve
the effect of <em>both</em> a fill and an outline width, you need to use two styles
in your class.</p>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">STYLE</span> <span class="c"># solid fill</span>
<span class="k">COLOR</span> <span class="mi">255</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="k">END</span>
<span class="k">STYLE</span> <span class="c"># thick outline</span>
<span class="k">OUTLINECOLOR</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="k">WIDTH</span> <span class="mi">3</span>
<span class="k">END</span>
</pre></div>
</div>
</section>
<section id="which-ogc-specifications-does-mapserver-support">
<h2>Which OGC Specifications does MapServer support?<a class="headerlink" href="#which-ogc-specifications-does-mapserver-support" title="Link to this heading">¶</a></h2>
<p>See: <a class="reference internal" href="ogc/ogc_support.html#ogc-support"><span class="std std-ref">MapServer OGC Specification support</span></a>.</p>
</section>
<section id="why-does-my-requested-wms-layer-not-align-correctly">
<h2>Why does my requested WMS layer not align correctly?<a class="headerlink" href="#why-does-my-requested-wms-layer-not-align-correctly" title="Link to this heading">¶</a></h2>
<p>Requesting a layer from some ArcIMS WMS connectors results in a map with
misaligned data (the aspect ratio of the pixels looks wrong).</p>
<p>Some ArcIMS sites are not set up to stretch the returned image to fit the
requested envelope by default. This results in a map with data layers that
overlay well in the center of the map, but not towards the edges. This can be
solved by adding “<em>reaspect=false</em>” to the request (by tacking it on to the
connection string).</p>
<p>For example, if your mapfile is in a projection other than EPSG:4326, the
following layer will not render correctly:</p>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">LAYER</span>
<span class="k">NAME</span> <span class="s">"hillshade"</span>
<span class="k">TYPE</span> <span class="nb">RASTER</span>
<span class="k">STATUS</span> <span class="nb">OFF</span>
<span class="k">TRANSPARENCY</span> <span class="mi">70</span>
<span class="k">CONNECTIONTYPE</span> <span class="nb">WMS</span>
<span class="k">CONNECTION</span> <span class="s">"http://gisdata.usgs.net:80/servlet19/com.esri.wms.Esrimap/USGS_WMS_NED?"</span>
<span class="k">PROJECTION</span>
<span class="s">"init=epsg:4326"</span>
<span class="k">END</span>
<span class="k">METADATA</span>
<span class="s">"wms_srs"</span> <span class="s">"EPSG:4326"</span>
<span class="s">"wms_title"</span> <span class="s">"US_NED_Shaded_Relief"</span>
<span class="s">"wms_name"</span> <span class="s">"US_NED_Shaded_Relief"</span>
<span class="s">"wms_server_version"</span> <span class="s">"1.1.1"</span>
<span class="s">"wms_format"</span> <span class="s">"image/png"</span>
<span class="k">END</span>
<span class="k">END</span>
</pre></div>
</div>
<p>Adding “reaspect=false” to the connection string solves the problem:</p>
<div class="highlight-mapfile notranslate"><div class="highlight"><pre><span></span><span class="k">LAYER</span>
<span class="k">NAME</span> <span class="s">"hillshade"</span>
<span class="k">TYPE</span> <span class="nb">RASTER</span>
<span class="k">STATUS</span> <span class="nb">OFF</span>
<span class="k">TRANSPARENCY</span> <span class="mi">70</span>
<span class="k">CONNECTIONTYPE</span> <span class="nb">WMS</span>
<span class="k">CONNECTION</span> <span class="s">"http://gisdata.usgs.net:80/servlet19/com.esri.wms.Esrimap/USGS_WMS_NED?reaspect=false"</span>
<span class="k">PROJECTION</span>
<span class="s">"init=epsg:4326"</span>
<span class="k">END</span>
<span class="k">METADATA</span>
<span class="s">"wms_srs"</span> <span class="s">"EPSG:4326"</span>
<span class="s">"wms_title"</span> <span class="s">"US_NED_Shaded_Relief"</span>
<span class="s">"wms_name"</span> <span class="s">"US_NED_Shaded_Relief"</span>
<span class="s">"wms_server_version"</span> <span class="s">"1.1.1"</span>
<span class="s">"wms_format"</span> <span class="s">"image/png"</span>
<span class="k">END</span>
<span class="k">END</span>
</pre></div>
</div>
</section>
<section id="when-i-do-a-getcapabilities-why-does-my-browser-want-to-download-mapserv-exe-mapserv">
<h2>When I do a GetCapabilities, why does my browser want to download mapserv.exe/mapserv?<a class="headerlink" href="#when-i-do-a-getcapabilities-why-does-my-browser-want-to-download-mapserv-exe-mapserv" title="Link to this heading">¶</a></h2>
<p>A beginner question here… I’m new to MS and to Apache. I’ve got MS4W up and
running with the Itasca demo. Now I want to enable it as a WMS server. mapserv
-v at the command line tells me it supports WMS_SERVER. When I point my
browser to it, my browser just wants to download mapserv.exe!</p>
<p>What am I missing?</p>
<p>Here is the URL I’m using to issue a GetCapabilities WMS request:
<a class="reference external" href="http://localhost/cgi-bin/mapserv.exe?map=../htdocs/itasca/demo.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities">http://localhost/cgi-bin/mapserv.exe?map=../htdocs/itasca/demo.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities</a></p>
<p>The OGC:WMS 1.1.0 and 1.1.1 specifications (which are both supported by
MapServer) state that, for GetCapabilities responses, the OGC:WMS server
returns a specific MIME type (i.e. application/vnd.ogc.xml (see subclause
6.5.3 of <a class="reference external" href="https://portal.ogc.org/files/?artifact_id=1081&version=1&format=pdf">OGC:WMS 1.1.1</a>.</p>
<p>A MIME type is passed from the web server to the client (in your case, a web
browser), from which a client can decide how to process it.</p>
<p>Example 1: if using a web browser, if a web server returns an HTTP Header of
“Content-type:image/png”, then the web browser will know that this is a PNG
image and display it accordingly.</p>
<p>Example 2: if using a web browser, if a web server returns an HTTP Header of
“Content-type:text/html”, then the web browser will know that this is an HTML
page and display it accordingly (i.e. tables, divs, etc.)</p>
<p>Basically, what is happening is that the OGC:WMS is returning, in the headers
of the HTTP response, a MIME type which your web browser does not understand,
which usually prompts a dialog box on whether to open or download the content
(i.e. Content-type:application/vnd.ogc.wms_xml).</p>
<p>You could configure your web browser to handle the application/vnd.ogc.wms_xml
MIME type a certain way (i.e. open in Notepad, etc.).</p>
</section>
<section id="why-do-my-wms-getmap-requests-return-exception-using-mapserver-5-0">
<h2>Why do my WMS GetMap requests return exception using MapServer 5.0?<a class="headerlink" href="#why-do-my-wms-getmap-requests-return-exception-using-mapserver-5-0" title="Link to this heading">¶</a></h2>
<p>Before upgrading to MapServer 5.0, I was able to do quick GetMap tests in the
form of:
<a class="reference external" href="http://wms.example.com/wms?service=WMS&version=1.1.1&request=GetMap&layers=foo">http://wms.example.com/wms?service=WMS&version=1.1.1&request=GetMap&layers=foo</a></p>
<p>Now when I try the same test, MapServer WMS returns an XML document saying
something about missing required parameters. What’s going on here?</p>
<p>This was a major change for WMS Server support in MapServer 5.0. MapServer WMS
Server GetMap requests now require the following additional parameters:</p>
<ul class="simple">
<li><p>srs</p></li>
<li><p>bbox</p></li>
<li><p>width</p></li>
<li><p>height</p></li>
<li><p>format</p></li>
<li><p>styles</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>These parameters were always required in all versions of the WMS
specification, but MapServer previously had not required them in a client
request (even though most OGC WMS clients would issue them anyway to be
consistent with the WMS spec).</p>
</div>
<p>The request below now constitutes a valid GetMap request:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>http://wms.example.com/wms?service=WMS&version=1.1.1&request=GetMap&layers=foo&srs=EPSG:4326&bbox=-180,-90,180,90&format=image/png&width=400&height=300&styles=default
</pre></div>
</div>
<p>Which is consistent with the WMS specification.</p>
<p>More information on these parameters can be found in the <a class="reference internal" href="ogc/wms_server.html#wms-server"><span class="std std-ref">WMS Server</span></a> and
the <a class="reference external" href="https://portal.ogc.org/files/?artifact_id=1081&version=1&format=pdf">OGC WMS 1.1.1 specification</a></p>
<p>For more detailed information, see <a class="reference external" href="https://github.com/MapServer/MapServer/issues/1088">ticket 1088</a></p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>STYLES, though a required WMS parameter, is now optional again in
MapServer. For more detailed information, see <a class="reference external" href="https://github.com/MapServer/MapServer/issues/2427">ticket 2427</a></p>
</div>
</section>
<section id="using-mapserver-6-0-why-don-t-my-layers-show-up-in-getcapabilities-responses-or-are-not-found-anymore">
<h2>Using MapServer 6.0, why don’t my layers show up in GetCapabilities responses or are not found anymore?<a class="headerlink" href="#using-mapserver-6-0-why-don-t-my-layers-show-up-in-getcapabilities-responses-or-are-not-found-anymore" title="Link to this heading">¶</a></h2>
<p>MapServer 6.0 introduces the option of hiding layers against OGC Web Service
requests. OGC Web Services can provide powerful access to your geospatial
data. It was decided to disable layer level request access as a default. See
<a class="reference internal" href="development/rfc/ms-rfc-67.html#rfc67"><span class="std std-ref">MS RFC 67: Enable/Disable Layers in OGC Web Services</span></a> provides a full explanation of the changes and implications.</p>
<p>To enable pre-6.0 behaviour, you can add the following to the <a class="reference internal" href="mapfile/web.html#web"><span class="std std-ref">WEB</span></a> object’s METADATA section in your
mapfile:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">"ows_enable_request"</span> <span class="s2">"*"</span>
</pre></div>
</div>
<p>This will enable access of all layers to all OGC Web Service requests.</p>
</section>
<section id="where-do-i-find-my-epsg-code">
<h2>Where do I find my EPSG code?<a class="headerlink" href="#where-do-i-find-my-epsg-code" title="Link to this heading">¶</a></h2>
<p>For PROJ version >= 6, there is a SpatiaLite database <em>proj.db</em> in your PROJ
installation (e.g. “/usr/local/share/proj/proj.db”) which contain the EPSG
information used by PROJ; For PROJ version < 6, there is a text file <em>epsg</em>
in that same shared location. On Windows, <a class="reference external" href="https://ms4w.com">MS4W</a> users
can find the epsg file at C:\ms4w\proj\nad, or it can be generally found
with an environment variable called <em>PROJ_LIB</em>.</p>
<p><a class="reference external" href="https://spatialreference.org">https://spatialreference.org</a> (recommended) and <a class="reference external" href="https://epsg.io/">https://epsg.io/</a> (no longer maintained)
allow you to search for EPSG codes.</p>
<p>More information on EPSG (which also now contains a text or map search for
EPSG codes) : <a class="reference external" href="https://epsg.org/home.html">https://epsg.org/home.html</a></p>
<p>More information on PROJ:
<a class="reference external" href="https://proj.org/">https://proj.org/</a></p>
</section>
<section id="how-can-i-reproject-my-data-using-ogr2ogr">
<h2>How can I reproject my data using ogr2ogr?<a class="headerlink" href="#how-can-i-reproject-my-data-using-ogr2ogr" title="Link to this heading">¶</a></h2>
<p>With ogr2ogr of course! ogr2ogr is a powerful utility that will transform the
projections of your shapefiles when passed the appropriate parameters. In my
case, I was using MapServer to serve data in RI State Plane Feet. In order to
do so, the data had to first be converted to meters. Here is the command I
used:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ogr2ogr</span> <span class="o">-</span><span class="n">t_srs</span> <span class="n">EPSG</span><span class="p">:</span><span class="mi">32130</span> <span class="n">output</span><span class="o">.</span><span class="n">shp</span> <span class="nb">input</span><span class="o">.</span><span class="n">shp</span>
</pre></div>
</div>
<p>Since my data already had a projection defined, I did not need to explicitly
state a source projection. This command uses the EPSG definition for NAD83
Rhode Island (32130) and performs the feet to meters conversion.</p>
<p>Now say my data wasn’t already projected? Here’s how we deal with that:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ogr2ogr</span> <span class="o">-</span><span class="n">s_srs</span> <span class="s2">"+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3408 +no_defs"</span> <span class="o">-</span><span class="n">t_srs</span> <span class="n">EPSG</span><span class="p">:</span><span class="mi">32130</span> <span class="n">output</span><span class="o">.</span><span class="n">shp</span> <span class="nb">input</span><span class="o">.</span><span class="n">shp</span>
</pre></div>
</div>
<p>Let’s examine what is going on here:</p>
<p>The -s_srs parameter explicitly defines a projection for the data. The
parameters used here were taken out of the EPSG definition (in this case,
32130) in the epsg file (see the previous FAQ for more details on locating
EPSG definitions). The entry for RI in the epsg file is as follows:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># NAD83 / Rhode Island</span>
<span class="o"><</span><span class="mi">32130</span><span class="o">></span> <span class="o">+</span><span class="n">proj</span><span class="o">=</span><span class="n">tmerc</span> <span class="o">+</span><span class="n">lat_0</span><span class="o">=</span><span class="mf">41.08333333333334</span> <span class="o">+</span><span class="n">lon_0</span><span class="o">=-</span><span class="mf">71.5</span> <span class="o">+</span><span class="n">k</span><span class="o">=</span><span class="mf">0.999994</span> <span class="o">+</span><span class="n">x_0</span><span class="o">=</span><span class="mi">100000</span> <span class="o">+</span><span class="n">y_0</span><span class="o">=</span><span class="mi">0</span> <span class="o">+</span><span class="n">ellps</span><span class="o">=</span><span class="n">GRS80</span> <span class="o">+</span><span class="n">datum</span><span class="o">=</span><span class="n">NAD83</span> <span class="o">+</span><span class="n">units</span><span class="o">=</span><span class="n">m</span> <span class="o">+</span><span class="n">no_defs</span> <span class="n">no_defs</span> <span class="o"><></span>
</pre></div>
</div>
<p>You can see how the definition in the initial command is formulated. Notice
that the “+units=m” parameter has been changed to “+to_meter=0.3408”. This is
important for the conversion. Where did the value of 0.3408 come from you ask?
From the EPSG file! It has many goodies buried in it so by simply running
‘grep “to_meter” epsg’ you can refresh your memory if you need to.</p>
<p>The next parameter in the command is “-t_srs EPSG:32130”. This command tells
ogr2ogr to transform the data to the EPSG code of 32130. After this is
declared, all you need to do is declare a file name for your new shape file
and to set which file is being used as the input (note: make sure you don’t
confuse the order of these two).</p>
<p>Hit enter, bombs away, and enjoy your new data in meters!</p>
</section>
<section id="how-can-i-help-improve-the-documentation-on-this-site">
<h2>How can I help improve the documentation on this site?<a class="headerlink" href="#how-can-i-help-improve-the-documentation-on-this-site" title="Link to this heading">¶</a></h2>
<p>New documentation material and corrections to existing documentation
are definitely very welcome. These contributions are handled through
the same issue tracker used to track software bugs and enhancements.</p>
<p>Follow the directions for submitting bugs at:
<a class="reference external" href="https://mapserver.org/development/bugs.html">https://mapserver.org/development/bugs.html</a>.
When creating a ticket, in the Component field, select <cite>MapServer
Documentation</cite>. If our ticket pertains to a specific web page, please
include the URL to that page.</p>
<p>If you have tips or examples that don’t really fit the definition of
documentation, a good place to put them is the MapServer wiki at:
<a class="reference external" href="https://github.com/MapServer/MapServer/wiki">https://github.com/MapServer/MapServer/wiki</a></p>
</section>
<section id="what-s-with-mapserver-s-logo">
<h2>What’s with MapServer’s logo?<a class="headerlink" href="#what-s-with-mapserver-s-logo" title="Link to this heading">¶</a></h2>
<p>The MapServer logo illustrates the confluence of the <a class="reference external" href="http://en.wikipedia.org/wiki/Minnesota_River">Minnesota</a> and <a class="reference external" href="http://en.wikipedia.org/wiki/Mississippi_River">Mississippi</a>
rivers, quite near to the home of the <a class="reference external" href="http://en.wikipedia.org/wiki/University_of_Minnesota#St._Paul_campus">St. Paul Campus</a> of the <a class="reference external" href="http://en.wikipedia.org/wiki/University_of_Minnesota">University of Minnesota</a>, which
was the <a class="reference external" href="https://lists.osgeo.org/pipermail/mapserver-dev/2009-December/009435.html">birthplace of MapServer</a>.</p>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
<p>
<a href="about.html" title="About">About</a><br>
<a href="products.html" title="Products">Products</a><br>
<a href="community/index.html" title="Community">Community</a><br>
<a href="development/index.html" title="Development">Development</a><br>
<a href="download.html" title="Downloads">Downloads</a><br>
<a href="documentation.html" title="Documentation">Documentation</a><br>
<a href="#" title="FAQ">FAQ</a><br>
<a href="psc.html" title="PSC">PSC</a><br>
<a href="https://twitter.com/mapserver_osgeo" title="Twitter">Twitter</a>
</p>
<h3>Current Table Of Contents</h3>
<ul>
<li><a class="reference internal" href="#">FAQ</a><ul>
<li><a class="reference internal" href="#where-is-the-mapserver-log-file">Where is the MapServer log file?</a></li>
<li><a class="reference internal" href="#what-books-are-available-about-mapserver">What books are available about MapServer?</a></li>
<li><a class="reference internal" href="#how-do-i-compile-mapserver-for-windows">How do I compile MapServer for Windows?</a></li>
<li><a class="reference internal" href="#what-do-mapserver-version-numbers-mean">What do MapServer version numbers mean?</a></li>
<li><a class="reference internal" href="#is-mapserver-thread-safe">Is MapServer Thread-safe?</a></li>
<li><a class="reference internal" href="#what-does-status-mean-in-a-layer">What does STATUS mean in a LAYER?</a></li>
<li><a class="reference internal" href="#how-can-i-make-my-maps-run-faster">How can I make my maps run faster?</a></li>
<li><a class="reference internal" href="#what-does-polyline-mean-in-mapserver">What does Polyline mean in MapServer?</a></li>
<li><a class="reference internal" href="#what-is-mapscript">What is MapScript?</a></li>
<li><a class="reference internal" href="#does-mapserver-support-reverse-geocoding">Does MapServer support reverse geocoding?</a></li>
<li><a class="reference internal" href="#does-mapserver-support-geocoding">Does MapServer support geocoding?</a></li>
<li><a class="reference internal" href="#how-do-i-set-line-width-in-my-maps">How do I set line width in my maps?</a></li>
<li><a class="reference internal" href="#which-image-format-should-i-use">Which image format should I use?</a></li>
<li><a class="reference internal" href="#how-do-i-add-a-copyright-notice-on-the-corner-of-my-map">How do I add a copyright notice on the corner of my map?</a><ul>
<li><a class="reference internal" href="#example-layer">Example Layer</a></li>
<li><a class="reference internal" href="#result">Result</a></li>
</ul>
</li>
<li><a class="reference internal" href="#how-do-i-have-a-polygon-that-has-both-a-fill-and-an-outline-with-a-width">How do I have a polygon that has both a fill and an outline with a width?</a></li>
<li><a class="reference internal" href="#which-ogc-specifications-does-mapserver-support">Which OGC Specifications does MapServer support?</a></li>
<li><a class="reference internal" href="#why-does-my-requested-wms-layer-not-align-correctly">Why does my requested WMS layer not align correctly?</a></li>
<li><a class="reference internal" href="#when-i-do-a-getcapabilities-why-does-my-browser-want-to-download-mapserv-exe-mapserv">When I do a GetCapabilities, why does my browser want to download mapserv.exe/mapserv?</a></li>
<li><a class="reference internal" href="#why-do-my-wms-getmap-requests-return-exception-using-mapserver-5-0">Why do my WMS GetMap requests return exception using MapServer 5.0?</a></li>
<li><a class="reference internal" href="#using-mapserver-6-0-why-don-t-my-layers-show-up-in-getcapabilities-responses-or-are-not-found-anymore">Using MapServer 6.0, why don’t my layers show up in GetCapabilities responses or are not found anymore?</a></li>
<li><a class="reference internal" href="#where-do-i-find-my-epsg-code">Where do I find my EPSG code?</a></li>
<li><a class="reference internal" href="#how-can-i-reproject-my-data-using-ogr2ogr">How can I reproject my data using ogr2ogr?</a></li>
<li><a class="reference internal" href="#how-can-i-help-improve-the-documentation-on-this-site">How can I help improve the documentation on this site?</a></li>
<li><a class="reference internal" href="#what-s-with-mapserver-s-logo">What’s with MapServer’s logo?</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="copyright.html" title="MapServer Licensing"
>next</a> |</li>
<li class="right" >
<a href="errors.html" title="Errors"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Home</a> »</li>
<li class="nav-item nav-item-1"><a href="documentation.html" >MapServer 8.2.2 Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">FAQ</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© <a href="copyright.html">Copyright</a> 2024, Open Source Geospatial Foundation.
Last updated on 2024-10-10.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.0.2.
</div>
</body>
</html>