PMapper e ka-Map

Da Wikipedia, l'enciclopedia libera.

Questa pagina offre un manuale (howto) su come configurare sia ka-Map che p.mapper su una stessa macchina.

Viene dato per scontato che UMN Mapserver e php_mapscript siano installati correttamente sulla macchina di prova.

--Ominiverdi 21:53, Apr 25, 2006 (CEST)

Contents

Cartelle Dati

Iniziamo con i dati. Utilizzerei per le due applicazioni gli stessi dati della demo di p.mapper: http://sourceforge.net/project/showfiles.php?group_id=83770&package_id=146223&release_id=362491

Questi dati li metterei in un una cartella "data/pmapper" nella home dell'utente.

#mkdir ~/data
#mkdir ~/data/pmapper
#cp pmapper-demodata-2.zip ~/data/pmapper
#cd ~/data/pmapper
#unzip pmapper-demodata-2.zip

Cartelle Web

per ognuna delle due applicazioni sarà necessario di disporre di una cartella acccessibile al server web. Probabilmente avrete una cartella già predisposta a tale scopo nella vostra Home (es: public_html, www, ecc.).

#mkdir ~/public_html/pmapper 
#mkdir ~/public_html/ka-map

Cartelle Temporanee

Adesso è necessario creare la cartella dei file temporanei una per p.mapper ed una per ka-map:

#mkdir ~/public_html/tmp
#mkdir ~/public_html/tmp/kamapcache
#chmod 777 ~/public_html/tmp/kamapcache
#mkdir ~/public_html/tmp/pmappercache
#chmod 777 ~/public_html/tmp/pmappercache

La scelta di utilizzare 777 come parametro di accesso alla cartella è di scarsa sicurezza e adatto ad un uso locale, non di server pubblico. Viene presentata questa soluzione per semplificare la configurazione.

p.mapper

download

A questo link è possibile scaricare l'ultima versione del p.mapper. http://sourceforge.net/projects/pmapper

Il file scaricato (es: pmapper-1.2.0) va espanso nella cartella web apposita.

#cp pmapper-1.2.0.zip ~/public_html
#cd ~/public_html
#unzip pmapper-1.2.0.zip
#mv pmapper-1.2.0 pmapper

configurazione

una volta copiata la cartella di pmapper è necessario settare le variabili del file di configurazione. Per tale scopo si usa un editor qualunque (in questo caso nano)

#cd ~/public_html/pmapper
#nano config/config.ini

la prima cosa da controllare alla riga 59:

msVersion = 46

si tratta della versione del php_mapscript. Nel mio server è php_mapscript_48.so così che ho messo

msVersion = 48

Alla riga 66

mapFile =  d:/webdoc/pmapper-1.2.0/config/pmapper_demo.map

va messo con il path assoluto del nostro pmapper

mapFile =  /home/miahome/public_html/pmapper/config/pmapper_demo.map

niente altro. si salva il file e si esce.

mapfile

Il mapfile richiede adesso la sua parte di personalizzazione.

#nano /home/miahome/public_html/pmapper/config/pmapper_demo.map

alla riga 24

SHAPEPATH "../../demodata"
#SYMBOLSET "../demodata/symbols/symbols35.sym" 

diventa

SHAPEPATH "/home/miahome/data/pmapper/"
SYMBOLSET "/home/miahome/data/pmapper/symbols/symbols35.sym"  

mentre alla riga 84

IMAGEPATH "d:\webdoc\tmp\"
IMAGEURL "/tmp/"

diventa

IMAGEPATH "/home/miahome/public_html/tmp/pmappercache/"
IMAGEURL "../tmp/pmappercache/"

ka-Map

download

Dal sito MapTool è possibile scaricare l'ultima versione di ka-Map. http://ka-map.maptools.org/index.phtml?page=downloads.html


#cp ka-map-0.2-20060207.zip ~/public_html
#cd ~/public_html
#unzip ka-map-0.2-20060207.zip
#mv ka-map-0.2-20060207 ka-map

configurazione

In ka-map il file di configurazione non è attivo ma presente come copia. Nella cartella include è necessario copiare il file config.dist.php come config.php

#cd ~/public_html/ka-map
#cp include/config.dist.php include/config.php
#nano include/config.php

alle righe 49 e 50 è necessario indicare (come per pmapper) i nomi dei moduli di mapscript e anche quelli delle librerie GD.

$szPHPMapScriptModule = 'php_mapscript_46.'.PHP_SHLIB_SUFFIX;
$szPHPGDModule = 'php_gd.'.PHP_SHLIB_SUFFIX;

nel nostro caso diventa:

$szPHPMapScriptModule = 'php_mapscript_48.'.PHP_SHLIB_SUFFIX;
$szPHPGDModule = 'gd.'.PHP_SHLIB_SUFFIX;

Il nome del modulo delle librerie GD dipende dalla distribuzione.

Alla riga 106 vanno definiti i parametri di connessione al mapfile.

$aszMapFiles = array(
 "gmap"   => array( "GMap", "../../gmap-ms40/htdocs/gmap75.map",
                    array( 15000000, 7500000, 3000000, 1000000 ),
                    "PNG")

/* Add more elements to this array to offer multiple mapfiles */

);

diventa

$aszMapFiles = array(
 "gmap"   => array( "ka-Map", "/home/miahome/public_html/ka-map/include/ka-map_demo.map",
                     array( 50000000, 10000000, 5000000, 1000000 ),
                     "PNG")

/* Add more elements to this array to offer multiple mapfiles */

);

mapfile ka-map

quello che manca ancora al ka-map è il file di mappa a cui far riferimento.

#cp ~/public_html/pmapper/config/pmapper_demo.map ~/public_html/ka-map/include/ka-map_demo.map

adesso va editato il file di mappa per pmapper e adattato alle caratteristiche di ka-map.

#nano  ~/public_html/ka-map/include/ka-map_demo.map

qui sotto l'esempio di una possibile configurazione (cambiare le path assulote dove richiesto):

# Adapt settings in map file pmapper_demo.map for the following tags to match settings
# on your machine (see additionally MapServer documentation for detailed information):
# MAP
  # SHAPEPATH 
  # FONTSET
  # SYMBOLSET

# WEB
  # IMAGEPATH  
  # IMAGEURL    

#
# Start of map file  
#
MAP
EXTENT  1988372 1400000 6411627 5400000 
UNITS meters
#EXTENT -15 30 40 70
#UNITS dd
SIZE 900 900
SHAPEPATH "/home/miahome/data/pmapper/"
SYMBOLSET "/home/miahome/data/pmapper/symbols/symbols35.sym"   
#FONTSET "../../../data/fonts/msfontset.txt"
RESOLUTION 96
IMAGETYPE png
TRANSPARENT ON #aggiunta per permettere le sovrapposizione in trasparenza
INTERLACE ON
PROJECTION
  # ETRS-LAEA
  # <3035> +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs  no_defs <>
  "proj=laea"   
  "lat_0=52.000000"
  "lon_0=10.000000"
  "x_0=4321000"
  "y_0=3210000"
  "ellps=GRS80"
  "units=m"
  "no_defs"
END  
OUTPUTFORMAT ##added for jpg background
	NAME jpeg
	DRIVER "GD/JPEG"
	IMAGEMODE RGB
	EXTENSION "jpeg"
	FORMATOPTION "QUALITY=75,PROGRESSIVE=TRUE"
END
OUTPUTFORMAT
 NAME png
 DRIVER "GD/PNG"
 MIMETYPE "image/png"
 IMAGEMODE RGB
 FORMATOPTION  INTERLACE=OFF
 TRANSPARENT OFF
END
OUTPUTFORMAT
 NAME png8
 DRIVER "GD/PNG"
 MIMETYPE "image/png"
 IMAGEMODE PC256
 FORMATOPTION  INTERLACE=OFF
 TRANSPARENT OFF
END
OUTPUTFORMAT
 NAME GTiff
 DRIVER "GDAL/GTiff"
 MIMETYPE "image/tiff"
 IMAGEMODE RGB
 #FORMATOPTION "TFW=YES"
 #FORMATOPTION "COMPRESS=PACKBITS"
END
OUTPUTFORMAT
 NAME imagemap
 MIMETYPE "text/html"
 FORMATOPTION SKIPENDTAG=ON
 DRIVER imagemap
END
#
# Start of web interface definition
#
WEB
 TEMPLATE "map.html"
 IMAGEPATH "/home/miahome/public_html/tmp/kamapcache/"#cambiato
 IMAGEURL "../../tmp/kamapcache/" #cambiato
 METADATA
 END  # Metadata
END  # Web
#
# Start of Reference map definition
#
REFERENCE
 EXTENT 1496247 1332616 7055632 5502154 #2200000 1400000 8000000 5400000
 IMAGE "/home/miahome/data/pmapper/images/reference.jpg"
 SIZE 199 149
 COLOR -1 -1 -1
 OUTLINECOLOR 255 0 0
END  # Reference
LEGEND
END
#
# Start of ScaleBar definition
#
SCALEBAR
 INTERVALS 4
 SIZE 200 3
 UNITS kilometers
 COLOR 250 250 250
 OUTLINECOLOR 0 0 0
 BACKGROUNDCOLOR 100 100 100
 STYLE 0
 POSTLABELCACHE true
 LABEL
   COLOR 255 255 255
   OUTLINECOLOR 0 0 0
   SIZE small
 END  # Label
END  # Reference
# SYMBOLS USED IN PMAPPER
# - 'circle' always necessary (used e.g. for highlight)
# - 'square' used in currecnt map file
# Symbols can also be defined via tag SYMBOLSET (see above)
Symbol
 Name 'circle'
 Type ELLIPSE
 Filled TRUE
 Points
   1 1
 END
END 
Symbol
 Name 'square'
 Type VECTOR
 Filled TRUE
 Points
   0 1
   0 0
   1 0
   1 1
   0 1
 END
END
#================== START OF LAYER SECTION =====================#
#LAYER
#  NAME "jpl_wms_global_mosaic"
#  TYPE RASTER
#  STATUS ON
#  GROUP '__base__'
#  CONNECTION "http://wms.jpl.nasa.gov/wms.cgi?"
#  CONNECTIONTYPE WMS
#  PROJECTION
#    "init=epsg:4326"
#  END
#  METADATA
#    "DESCRIPTION"         "JPL Global Mosaic (WMS)"
#    "wms_name"            "global_mosaic_base"
#    "wms_style"           "visual"
#    "wms_server_version"  "1.1.1"
#    "wms_format"          "image/jpeg"
#  END
#END

#
# LAYER DGM
#
LAYER
 NAME "dem"
 TYPE Raster
 STATUS ON
 DATA 'europa_dem.jpg'
 MINSCALE 3000000
 PROJECTION
   "init=epsg:4326"
 END
 METADATA
	imageformat "jpeg" 
   "DESCRIPTION"   "NGDC Shaded relief"
   "LEGENDICON"    "images/legend/dem.png"
 END
END
#
# Start of Layer Countries.shp
#
LAYER
	STATUS ON #questi vanno messi per ka-map
 NAME "countries"
 GROUP "Country"
 TYPE polygon
 DATA "countries"
 #TRANSPARENCY 30# Ka-map,non necesario visto che elimino il Color
 PROJECTION
   "init=epsg:4326"
 END
 METADATA 
   "DESCRIPTION" "Countries"
   "RESULT_FIELDS" "NAME,AREA"
   "RESULT_HEADERS" "Name,Area"
 END  # Metadata 
 CLASS
   Name 'Countries'
  # COLOR 200 254 199#Ka-map, non necessario
   OUTLINECOLOR 0 0 0
    TEMPLATE void
  END  # Class
END  # Layer

#
# Start of Layer Cities.shp
#
LAYER
  NAME "cities" 
	GROUP 'Cities' #ka-map, nuovo livello
  TYPE point
  DATA "cities"
  TOLERANCE 10
  TOLERANCEUNITS pixels
  LABELITEM "CITY_NAME"
  LABELMAXSCALE 15000000
  PROJECTION
    "init=epsg:4326"
  END
  METADATA 
	imageformat "PNG" #ka-Map
	"QUERYABLE" "true" #ka-Map: per attivare l'identify 
    "DESCRIPTION" "Cities"
    "RESULT_FIELDS" "CITY_NAME,ADMIN_NAME,CNTRY_NAME,STATUS,POP_CLASS"
    "RESULT_HEADERS" "Name,Administrative Entity,Country,Status,Inhabitants"
    "RESULT_HYPERLINK" "CITY_NAME, CNTRY_NAME||Link on detail"
    "LAYER_ENCODING" "UTF-8"
  END  # Metadata 
  CLASS
    NAME "> 5'000'000"
    EXPRESSION ([POP_RANK] = 1)
    COLOR 255 0 0 
    SYMBOL 'square' 
    SIZE 9
    LABEL
      POSITION Auto
      COLOR 0 0 150 
      BACKGROUNDCOLOR 255 255 128
      BACKGROUNDSHADOWCOLOR 150 150 150
      BACKGROUNDSHADOWSIZE 2 2
      BUFFER 2
      #TYPE truetype
      #FONT verdana
      #SIZE 8
      #MAXSIZE 9
      SIZE small
    END #Label  
    TEMPLATE void
  END  # Class
  CLASS
    NAME "1'000'000 - 5'000'000"
    EXPRESSION ([POP_RANK] = 2)
    COLOR 255 0 0
    SYMBOL 'square' 
    SIZE 7
    LABEL
      POSITION Auto
      COLOR 0 0 150 
      BACKGROUNDCOLOR 255 255 128
      BACKGROUNDSHADOWCOLOR 150 150 150
      BACKGROUNDSHADOWSIZE 2 2
      BUFFER 2
      #TYPE truetype
      #FONT verdana
      #SIZE 8
      #MAXSIZE 9
      SIZE small
    END #Label  
    TEMPLATE void
  END  # Class
  CLASS
    NAME "500'000 - 1'000'000"
    EXPRESSION ([POP_RANK] = 3)
    COLOR 255 0 0
    SYMBOL 'circle' 
    SIZE 6
    TEMPLATE void
  END  # Class
  CLASS
    NAME "< 500'000 Inhabitants"
    EXPRESSION ([POP_RANK] = 4)
    COLOR 0 0 0
    SYMBOL 'circle' 
    SIZE 5
    TEMPLATE void
  END  # Class
END  # Layer

#
# Start of Layer Rivers.shp
#
LAYER
  NAME "rivers"
  STATUS ON
  TYPE line
  DATA "rivers"
  TOLERANCE 3
  TOLERANCEUNITS pixels
  PROJECTION
    "init=epsg:4326"
  END
  METADATA
    "DESCRIPTION" "Rivers"
    "RESULT_FIELDS" "NAME,LENGTH"
    "RESULT_HEADERS" "Name,Length"
  END  # Metadata 
  CLASS
    Name 'Rivers'
    COLOR 0 0 255
    TEMPLATE void
  END  # Class
END  # Layer

END  #Map
Personal tools