0% found this document useful (0 votes)
10 views

Publisher With Map Server

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Publisher With Map Server

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Geographic web service to publish


Colombia local geographic

HANDS ON-EXERCISES ON: OGC WMS,


MAPSERVER POSTGRE-SQL+POSTGIS

Presented By : Alexander Mogollon Diaz

Página 1
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

CONTENTS

1.4. MAPSERVER MAPFILES CONFIGURATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


1.4.1. Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.2. Map with a Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.2.1. MAP Object parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.2.2. LAYER Object parameters . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4.2.3. CLASS Object Parameters . . . . . . . . . . . . . . . . . . . . . . . . 25

1.4.3. Showing the types of a layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


1.4.3.1. LAYER Object parameters . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4.3.2. CLASS Object Parameters . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4.4. Map with more than a layer and labels . . . . . . . . . . . . . . . . . . . . . . . 27
1.4.4.1. MAP Object parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4.4.2. LAYER Object parameters . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4.4.3. LABEL Object Parameters . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4.5. Map with information from a database . . . . . . . . . . . . . . . . . . . . . . 30
1.4.5.1. MAP Object parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.5.2. LAYER Object parameters . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.5.3. STYLE Object Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.5. CREATING A WMS WITH MAPSERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


1.5.1. The WMS service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.5.2. Getcapabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.5.3. GetMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.5.4. GetFeatureInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

1.6. MAPSERVER WMS CASCADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Página 2
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

GRAPHIC LIST

Graphic 1 User interface to configure Apache .............................. 7


Graphic 2 Verifying the Apache proper operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Graphic 3 Access to system environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Graphic 4 Building Java-Home environment variable . . . . . . . . . . . . . . . . . . . . . . . . . 10
Graphic 5 Building Path environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Graphic 6 Testing JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Graphic 7 Language selection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Graphic 8 Selection interface PostGis extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Graphic 9 Service interface creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Graphic 10 Selecting the port and the encoding interface . . . . . . . . . . . . . . . . . . . . . . 14
Graphic 11 Selecting programming languages interface . . . . . . . . . . . . . . . . . . . . . . . 14
Graphic 12 Selecting the storage algorithms for working with Postgis interface . 15
Graphic 13 Creating the environment variable of the PostgreSQL . . . . . . . . . . . . . . 15
Graphic 14 Role creating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Graphic 15 New Tablespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Graphic 16 New Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Graphic 17 Folders that make up Mapserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Graphic 18 Mapserver check the installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Graphic 19 Mapserver directory structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Graphic 20 File structure. Example 1. Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Graphic 21 Map of Colombia showed in the browser with a shape information . . 24
Graphic 22 Map showed in the browser with types of shape information . . . . . . . 26
Graphic 23 Example 2 structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Graphic 24 File structure. Map. Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Graphic 25 Map showed in the browser with three loaded layers . . . . . . . . . . . . . . 28
Graphic 26 File structure. Map. Example 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Graphic 27 Map showed in the browser with four loaded layers . . . . . . . . . . . . . . . 31
Graphic 28 File structure. Map. Example 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Graphic 29 Response to the GetMap request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Graphic 30 Response to the GetFea TireInfo request . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Graphic 31 Map showed in the browser consuming a WMS and reading the
Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

CHART LIST

Página 3
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Chart 1. Parameters chart of the GetCapabilities request . . . . . . . . . . . . . . . . . . . 33


Chart 2. Parameters chart of the GetMap request . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Chart 3. Parameters chart of the GetMap request . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Página 4
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

STRUCTURE

1.4. MAPSERVER MAPFILES CONFIGURATION

NAME Creating and configuring Mapfiles


OBJECTIVE Familiarize students with configuration files if MapServer maps
RESULT The student managed to configure 3 files Mapfile successfully,
displaying information in a shape of a raster image and connecting to
a database.

1.4.1. Mapfile

The Mapfile defines the data to be used in the application, sample and query
parameters. It also contains information about how to draw the map, legend and
result in a search. This file usually has the extension .map.

1.4.2. Map whit one Layer

MapServer can create an image and store it in a local directory or sent directly to be
presented in a Web browser, via a URL. This URL is composed of 3 parts (the URL is
presented to the local path of the service):

The first part, http://localhost/cgi-bin/mapserv?, calls the program CGI from


MapServer.

The second part consists of the absolute path to the Mapfile file to view.

The third, indicates the way in which you want to display the information.

Página 5
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

We will charge the Departments of Colombia layer from a shape located in the data
folder that was set up, see Ex. 1. map. The mapfile is the basic configuration
mechanism is used to MapServer. The Mapfile is made of "objects" and each object has
keywords and other objects. It has a hierarchical structure where some objects are
above others, on top of this hierarchy is the MAP object, all other objects are under it.
If we review the file .map of example, we find the following structure:

Graphic 20. File structure. Example 1 .map

In the browser URL is placed with the previously defined structure, as the following:

http://localhost/cgi-bin/mapserv?map=C:\servidorWMS\mapas\ejemplo1.map&mode=map

And we get this result:

Página 6
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 21. Map of Colombia showed in the browser with a shape information

1.4.2.1. MAP Object parameters


IMAGETYPE: The IMAGETYPE keyword is used to define which image format the
MapServer CGI program could use to output the images. In this case, it is used the
indexed color PNG (similar to GIF). This could be GIF, if it is compiled the GD library
with support for GIF, WBMP, or JPEG. Also, it is possible to specify other output
formats (PDF, SWF, GeoTIFF) assuming that it has compiled the support for them and
that OUTPUTFORMAT is of this type.

EXTENT: This parameter specifies the output dimensions of the map. This needs to be
in the same units of data. In this case our output unit, are the degrees. To extract the
values of the extension, you can use ArcView or other GIS software.

SIZE: This is the size of the image (the map) that MapServer can generate, in pixels.
And the map is 800 pixels wide by 700 pixels high.

SHAPEPATH: This is the path to your data layers. You can provide absolute paths (C: \
servidorWMS \ data \ data processed) or relative paths to the location of your mapfile
(.. \ data \ data processed). This path should not be accessible to the Web. It doesn’t

Página 7
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

have to go directly to the Web, the user only has to make it run on the server, and data
can be read in the SHAPEPATH.

IMAGECOLOR: This is the background color of the map. The values are RGB values as
255 Red, 255 Green and 255 Black results in a white background.

1.4.2.2. LAYER Object parameters


LAYER: Marks the beginning of an object LAYER within an object MAP. You can specify
the layers you want and the limit for this is 100 by default. You can change this
parameter to which you have to recompile the MapServer CGI.

NAME: This is the identifier of the name of each of the layers specified.

DATA: The name of the data (shapefile in this case). MapServer supports Vector
formats and other shapefiles that ESRI uses of ORG library (part of GDAL software).

TYPE: What kind of data is this? If this is a vector data, you can specify whether this is
a POLYGON, LINE (you use LINE if your data are technically POLYLINE), or a POINT.
You can also specify RASTER or ANNOTATION.

STATUS: The layer can be set to ON or OFF based on their STATUS. DEFAULT is
always in ON or visible. ON or OFF works when the LAYER name is passed as part of
query string parameter.

1.4.2.3. CLASS Object parameters


CLASS: Marks the beginning of an object CLASS within and object LAYER. You can
specify many types in a layer and you are limited to 50 by default . You have to
recompile the MapServer CGI to change this value.

COLOR: This is the fill color of the polygon. In the event that the TYPE is LINE, this is
the line color. The values are in RGB format.

OUTLINECOLOR: This is the outline of polygons. This value is given in RGB.

1.4.3. Showing the types of a layer

Using existing attributes in the shapefile, we can create a new mapfile (see example 2
.map), resulting in the run is:

Página 8
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 22. Map showed in the browser with types of shape information

Graphic 23. Example 2 structure

1.4.3.1. LAYER Object parameters


CLASSITEM: This keyword is used to specify which attributes are used to separate an
object of the type. In the example the attribute is DESCRIPTOR. If you open the file
from the database associated with the layer shapefile, you can see here a column
(attribute) called DESCRIPTOR and if we search the stored information we may
identify a record containing CARRETEABLE in the DESCRIPTOR field.

1.4.3.2. CLASS Object parameters

Página 9
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

EXPRESSION: For each type, we specify which attribute values we use. This is simply
way of the EXPRESSION value. EXPRESSION can be more complex even than this. You
can review materials relating to Mapfile to see what you can do with EXPRESSION.

1.4.4. Map with more than a layer and labels

MapServer can use raster data as vectors. Through the use of the GDAL library,
MapServer can enter and display multiple raster formats. Also it can attach labels to
the map, which is essential to identify geographic objects within a map. So, now you
could add a layer Raster located in the data folder. Also, it will add a layer to label the
Departments of Colombia layer. For this it must set up a new map-file (see example 3
.map).

The structure of this example is the follow:

Graphic 24. File structure. Map. Example 3

And the result would be displayed in the browser is:

Página 10
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 25. Map showed in the browser with three loaded layers

1.4.4.1. MAP Object parameters

IMAGETYPE: This is not new but the value PNG24 it is. PNG24 is the version of PNG
format 24-bit or true color. In return, instead of being limited to 256 color
combinations to output formats, MapServer now has millions of colors.

1.4.4.2. LAYER Object parameters

DATA “DTM1.JPG”: In the new object within LAYER, DATA parameter routed to a JPG
image. As sources of vector data, MapServer supports multiple raster file formats. This
support is accomplished through the GDAL library.

Página 11
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

TYPE RASTER: When using raster data (images) it must use the value RASTER of the
parameter TYPE, as opposed to POLYGON, LINE and POINT values vector data and
ANNOTATION for identification labels.

OFFSITE: This parameter indicates the pixel values of MapServer to render as


background (or Ignorer). You can get the values of the pixels using image processing
or image programs manipulation (eg Imagine, Photoshop, Gimp)

FONTSET: Here, it specifies the full path to our truetype FontList file (list of fonts).
This file lists each of the available fonts. View fonset documentation file for more
information. FONSET is a MAP object parameter.

LABELITEM: This specifies that data attributes are used for labeling, in this case
NOMBREDEPT. LABELITEM is a LAYER object parameter.

1.4.4.3. LABEL Object parameters

LABEL: Marks the beginning of the LABEL object. The LABEL object can be used under
other objects (example: the SCALEBAR object).

COLOR: In the LABEL object, COLOR specifies the text label color.

SHADOW COLOR: This specifies the shadow of the text label color.

SHADOWSIZE: It specifies the shadow size. The corresponding value for the variables
X and Y in pixels. For case 2.2 means two pixels wide and two pixels high.

TYPE: In the LABEL object, TYPE specifies which font type will be used. We can choose
between TRUETYPE or BITMAP (the builder in fonts) We will choose BITMAP.

FONT: If you specify TYPE as TRUETYPE, you need to specify what font you will use.
The value of this is the file alias in the font list.
SIZE: If you use TRUETYPE fonts, the value of the size is in pixels. If it is a BITMAP you
can write small, medium or large.

ANTIALIAS: This turns the TRUETYPE antialias from ON to OFF. Remember, the
value is not ON or OFF but is TRUE or FALSE.

POSITION: Where the text label position is in relation to items of the label. The values
are a combination of vertical and horizontal positions. You can choose the following
for a vertical alignment: C for center, L for left and R for right. For alignment of the text
label in the center of label ID you should use the value CC (center-center). Or if you

Página 12
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

want the bottom of the ID, you should use the LL. Another way is that the MapServer
decides the best position of your labels. For this, you must be using the AUTO value.

PARTIALS: Tells MapServer where generate the incomplete labels or no. By default
here are not generated fragments of a text label. The values of this are TRUE or FALSE.

MINDISTANCE: This is the minimum distance in pixels between duplicate labels. You
can increase this value and see what happens with the change.

BUFFER: The coverage (in pixels) of each label. This is used to enhance readability. A
BUFFER of 4 pixels ensures that no other label is drawn into the four pixels.

1.4.5. Map with information from a database

Based on the example 3, now we will add a fourth layer to our map, this time from a
database in PostgreSQL + PostGIS. (see Example 4 .map)

The structure of this Mapfile is:

Graphic 26. File structure. Map. Example 4


The display of this would be the follow:

Página 13
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 27. Map showed in the browser with four loaded layers

1.4.5.1. MAP Object parameters

SYMBOLSET: Defining the path of the symbol file definition. The file symbol in this file
is referenced by the SYMBOL parameter in the CLASS object.

1.4.5.2. LAYER Object parameters

CONNECTION: It is the string connection to the database

CONNECTIONTYPE: It is the kind of connection you want to perform to display


information. The options for this parameter are: local, sde, ogr, postgis, oraclespatial,
wms.

1.4.5.3. STYLE Object parameters

SYMBOL: Name of the symbol you want to use in the type. This symbol must be
contained in the file of symbols that are defined by SYMBOLSET.

Página 14
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

1.5. CREATING A WMS WITH MAPSERVER

NAME Creating of WMS services with MapServer.


OBJECT To familiarize the student with the creation of a WMS services under
standardization OGC with MapServer, and the different operations
you can perform this type of service.
RESULT The students will be create a WMS services successfully and will
manage to run basic operations to it.

1.5.1. The WMS service

This service is based on international standard WMS 1.1.1, which defines a "map" as a
representation of geographic information in a digital image file suitable for display on
a computer screen. A map doesn’t consist in the own data. The maps produced by
WMS are generally generated in an image format such as PNG, GIF, TIFF or JPEG, and
occasionally as vector graphics in SVG format (Scalable Vector Graphics) or WebCGM
(Web Computer Graphics Metafile).

The standard defines three operations:

1. GetCapabilities: Returns the metadata of the service level.


2. GetMap: Returns a map whose geographic and dimensional parameters are
well defined.
3. GetFeatureInfo: Returns information on particular features shown on the map
(optional).

To operate our Mapfile and comply with the WMS 1.1.1 specification, we must modify
it by adding some information (see example 5 .map)

The structure of this Mapfile of the new example is:

Página 15
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 28. File structure. Map. Example 5

Below is presented a description of each of these requests and apply them to our map
of example 5.

1.5.2. GetCapabilities

The parameters of this request are listed below

REQUEST PARAMETER REQUIRED / DESCRIPTION


OPTIONAL
VERSION=version O Request version
SERVICE=WMS R Type of service
REQUEST=GetCapabilities R Request name
UPDATESEQUENCE=string O Number of the sequence or
string for controlling the
cache.
Chart 1. Parameters chart of the GetCapabilities request

For our example, the URL request would be:


http://localhost/cgi-bin/mapserv?map=C:\servidorWMS\mapas\ejemplo5.map&SERVICE=WMS&REQUEST=GetCapabilities

The answer would be an XML file with the Metadata Service. Then run the request and
parse the XML

1.5.3. GetMap

The parameters of this request are listed below

REQUEST PARAMETER REQUIRED / DESCRIPTION


OPTIONAL
VERSION=version R Request version
REQUEST=GetMap R Name of the request
LAYERS=layer_list R List of layers that you want
displayed, separated by
commas.
STYLES=style_list R List of display styles for
each layer, separated by
commas.
SRS=namespace:identifier R Spatial reference system.

Página 16
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

BBOX=minx,miny,maxx,maxy R Corners of a bounding box


units SRS
WIDTH=output_width R Map height in pixels
HEIGTH=output_heigth R Map wide in pixels
FORMAT=output_format R Map Output Format
TRANSPARENT=TRUE|FALSE O Transparency of the
background map
BGCOLOR=color_value O RGB color in hexadecimal
format
EXCEPTIONS=exception_format O Format for exceptions
reported by the WMS
Chart 2. Parameters chart of the GetMap request

For our example, the URL request would be (we will ask only 3 layers, the MDE, the
capitals and the departments of Colombia)
http://localhost/cgi-
bin/mapserv?map=C:\servidorWMS\mapas\ejemplo5.map&SERVICE=WMS&REQUEST=Get
Map&version=1.1.1&layers=Modelo_Digital_de_Elevacion,departamentos,capitales&styles=de
fault&srs=EPSG:4326&bbox=-80,-5,-65,14&width=700&weigth=800&formtat=image/png

The answer will be the map with layers that request, under the conditions we
specified in the parameters of the get map

Página 17
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

Graphic 29. Response to the GetMap reques

1.5.4. GetFeatureInfo

This operation is optional, and is available only to those layers where queryable
option is active.

REQUEST PARAMETER REQUIRED / DESCRIPTION


OPTIONAL
VERSION=version R Request version
REQUEST=GetFeatureInfo R Name of the request
<map_request_copy> R Partial copy of the GetMap
request parameters with
which the map is
generated that contains
the desired information.
QUERY_LAYERS=layer_list R List of layers that will be
consulted, separated by
commas.
INFO_FORMAT=output_format O Return format information
(MIME type)

Página 18
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

FEATURE_COUNT=number O Number of features to


which they will return
information
X=pixel_column R X coordinate in pixels of
feature
Y=pixel_row R Y coordinate in pixels of
feature
EXCEPTIONS=exception_format O Format for the reported
exceptions by the WMS
Chart 3. Parameters chart of the GetMap request

For GetFeatureInfo, we will use the file example6 .map, to which we add two new
parameters at the layer level, the parameter DUMP and the parameter TEMPLATE. For
this the department layer, which is what is going to be queryable (see example6.map):

Now we can do the request GetFeatureInfo, with this parameter:


http://localhost/cgi-
bin/mapserv?map=C:\servidorWMS\mapas\ejemplo5.map&SERVICE=WMS&REQUEST=GetF
eatureInfo&version=1.1.1&layers=Modelo_Digital_de_Elevacion,departamentos,capitales&styl
es=default&srs=EPSG:4326&bbox=-80,-5,-
65,14&width=700&weigth=800&formtat=image/png&query_layers=departamentos&x=300&
y=300

The answer will be for the department that the pixel x = 300, y = 300.

Graphic 30. Response to the GetFea TireInfo request

Página 19
Engineer Alexander Diaz Mogollon Short overview and hands on-exercises

1.6. MAPSERVER WMS CASCADE

MapServer can also consume WMS services. Following is the configuration of a broker
or cascading WMS (see example7.map)

The request is in the same way as above. This allowed the request of 2 layers.
http://localhost/cgi-
bin/mapserv?map=C:\servidorWMS\mapas\ejemplo7.map&SERVICE=WMS&REQUEST=Get
Map&version=1.1.1&layers=modis_jpl,capitales&styles=default&srs=EPSG:4326&bbox=-80,-
5,-65,14&width=700&weigth=800&formtat=image/png

The answer to this request is:

Graphic 31. Map showed in the browser consuming a WMS and reading the database

To consume a WMS is necessary:

 In the WEB object ImagePath must be defined.


 Define the parameters of the LAYER and METADATA object correctly.

Página 20

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy