Gis-laborator a început cu Mapserver

Toate menționate în fișierele text (HTML-șabloane, harta-fișier, SHP-fișiere, etc) sunt disponibile pentru descărcare. Pentru a avea exemple lucrate, pentru a înțelege acest articol, aveți nevoie pentru a dezarhiva exemplu dosarul în directorul / ms4w / apps / exemplu.







O mare parte a lucrărilor privind crearea web-resursă constă tocmai de scriere hartă fișier. Se înțelege că MapServer este deja instalat și rulează (pentru detalii despre instalarea MapServer pentru Windows).

Instrucțiuni suplimentare pentru pașii demonstra modul de utilizare a datelor vectoriale gata făcute, de la simplu la complex pentru a crea propria harta interactivă și puneți-l pe internet folosind MapServer.

1. Harta unui singur strat

Pentru a crea o carte, avem nevoie de cel puțin un strat. MapServer suportă o varietate de formate pentru straturi raster și vector (lista de formate vectoriale). Interesant, printre formatele acceptate sunt, de exemplu, fișiere MapInfo, și că MapServer vă permite să utilizați informațiile stocate în bazele de date (de exemplu, MS SQL Server, PostgreSQL, Oracle, și altele.). Cu toate acestea, accesul la date în aceste formate este furnizat un pachet special (OGR), „format nativ“ pentru MapServer - SHP. Pentru pachetul MS4W OGR (pre-compilate și configurat) este deja inclusă în livrare, cu toate acestea, acest articol discută despre lucrul numai cu SHP-fișiere. Astfel, pentru munca în continuare avem nevoie de niște SHP-fișiere (de orice), care va copia directorul „\ ms4w \ APPS \ example \ SHP“. Puteți utiliza SHP-fișierele deja menționate.

Acum începem să înțelegem formatul de fișier-mapare. Creați un director "\ ms4w \ apps \ exemplu" fișier polt.map. Ne derivă la ceva de genul următoarele:

Pentru a vedea rezultatul, tastați în fereastra browser-ului:

Dacă nu rulează pe mașina locală în loc de localhost trebuie să specificați numele serverului. Ar trebui să vedeți următoarea imagine:

Parametrii „LAYER“ obiect:

NAME "nume" - numele stratului.

DATE „nume de fișier“ - numele SHP-un fișier de potrivire a stratului dat.

TIP [punct | linie | poligon | cerc | adnotare | raster | interogare | diagramă] - strat de tip. Este tot mai mult sau mai puțin clare, deși are particularitățile sale proprii. Expresiile Semnificație punct | linie | poligon evident - stratul va fi un punct, o linie sau un poligon. Cu toate acestea, dacă aveți SHP-fișier cu poligoane, aveți posibilitatea să atribuiți un tip de linie. Atunci când stratul este afișat ca o temă liniară. Nu numai poate același SHP-fișier este împărțit în două straturi. rezultatul este același ca mai sus, dar a făcut un mod diferit.

Harta fișier folosit în această secțiune: polt.map.

2. Utilizarea de mai multe clase

Cu fișier Poltava10_Vegetation_region.shp legat tabel de atribute ca DBF-fișier. Printre domeniile DBF-fișier este domeniul „CodeTopo“, în care este stocat codul obiect. De exemplu, codul 71100000 corespunde woody vegetației, cod 71314000 - ierboase, cod 72310000 - mlăștinoase. Deoarece obiecte cu diferite coduri ar trebui să apară pe hartă în moduri diferite, avem nevoie de un instrument care vă permite să definiți simboluri diferite pentru același strat, în funcție de valorile atributelor obiectului (de exemplu, clasificare). În acest scop, în harta-fișier este permis să introduceți un număr de clase care corespund unui strat. Creați un conținut de sledushchego fișier polt1.map:

Harta fișier folosit în această secțiune: polt1.map.

3. Creați propriile simboluri

Probabil, nu toată lumea va place, că mlaștină este marcat pe harta umplere, astfel de prelucrare a creditului: în conformitate cu documentația pentru fiecare clasă, puteți utiliza propriul stil de legenda, pentru acest lucru în propunerea trebuie să specificați parametrul STYLE SIMBOL. În plus față de setul de caractere încorporat definit de implicit, MapServer sprijină, de asemenea conexiunea de fișiere individuale, care conține descrierea simbolurilor (de exemplu, un fișier cu un set de caractere suplimentare).

Acum câteva exemple de modul de a crea personajele lor. Vom crea patru noi stil - cei doi vor fi utilizate pentru obiecte de puncte, una pentru temele poligonale ale gurii de magazie și o alta - pentru a crea linia punctată. Exemple de caractere sunt prezentate în tabelul următor.

Următoarele sunt descrieri corespunzătoare fiecăreia dintre aceste semne:

In puncte de comandă coordonatele nodului specificat (x y). Acesta poate fi oarecum neașteptat faptul că axa Y este îndreptată în jos, mai degrabă decât în ​​sus ca de obicei. Coordonatele punctelor sunt date în sistemul de coordonate convențional. „Triunghiul“:

Simbolul "Cross". Particularitatea constă în faptul că cruce, spre deosebire de triunghiul nu este posibil să se tragă o singură cursă a pen-ului, fără a ridica-l din hârtie. Coordonatele negative indică locul în care „este ridicat pen.“







„Umplere diagonală“ pentru obiecte poligonale. Puteți utiliza TRANSPARENT: 0 - nu sunt transparente obiect 100 - complet transparent.

„Linia punctată.“ Predolzhenie „STIL 10 5 5 10 END“ înseamnă că linia se întinde de 10 pixeli, 5 pixeli apoi un decalaj, atunci linia apare din nou (5 pixeli), și din nou diferența la 10 pixeli.

După cum sa menționat mai sus, descrierea simbolurilor nou create în mod convenabil stocate într-un fișier separat și se referă la ea după cum este necesar. Pentru a atașa un fișier care conține descrierea simbolurilor, trebuie să adăugați un obiect parametru MAP SYMBOLSET „filepath / nume de fișier“. Iar în clauza clasă este necesar să se facă referire la caracterul corect oferă simbolul „imya_simvola“.

Rezultatul folosirii doar a crea un simbol pentru a afișa clasa „Swamp“ este prezentată în următoarea imagine:

Cu MapServer este posibil de a crea personaje mai complexe.

Harta fișier folosit în această secțiune: polt2.map.

4. Crearea de semnături pentru obiecte

Pentru a specifica modul de a semna obiecte, utilizați LABELITEM „field_name“, care indică numele câmpului care stochează semnăturile. Propunerea LABEL specifică un set de parametri, dar numirea celor mai importanți parametri (culoare, SHADOWCOLOR, dimensiune, tip) este evidentă.

Pentru a mapa obiect, înainte de descrierea straturilor, trebuie să adăugați un parametru fontset „./fonts/fonts.list“. fișier fonts.list (fișierul poate fi numit într-un mod diferit) stochează informații despre MapServer disponibile fonturi. Exemplu fișier fonts.list conținut:

Astfel, parametrul "Arial-italic", la propunerea LABEL se referă la ariali.ttf font. Pentru definiții, a se vedea conținutul directorului de fonturi:

fișierele de fonturi arial.ttf ariali.ttf și pot fi luate dintr-un director Windows standard.

Harta fișier folosit în această secțiune: polt2.map.

5. Utilizați straturi raster

În plus față de seturi de date vectoriale, MapServer suportă de asemenea utilizarea straturilor raster. Descrierea detaliată a raster viewable.END_BOLD aici. și în această secțiune, un rezumat al principalelor puncte va fi dat.

De obicei, MapServer utilizează biblioteca GDAL pentru lucrul cu imagini raster (desigur, cu condiția ca MapServer a fost compilat cu suport GDAL). De exemplu, o astfel de operațiune ca reproiectare raster „on the fly“, este posibilă numai prin utilizarea acestei biblioteci.

Printre formatele raster suportate toate tipurile majore de fișiere imagine: TIFF / GeoTiff (utilizat pentru a lega sau fișier mondial sau încorporate în GeoTIFF coordonate.), GIF, PNG, JPEG. Erdas .LAN / .GIS (pentru a lega aceste formate folosite lumi-fișier).

În cel mai simplu caz, conexiunea este un strat raster se adaugă la STRATUL oferă harta fișier:

De asemenea, ca un pat convențional, y parametri strat raster PROIECȚIE, METADATELE, PROCESAREA, MinScale și MAXSCALE poate fi determinată. Dar strat raster nu poate avea o etichetă (LABEL) și parametrii de conexiune, CONNECTIONTYPE sau FEATURE.

Ca strat vector atunci când se lucrează cu rastere poate împărți un singur strat (unul raster) în mai multe clase, care apar în mod diferit în funcție de valorile de culoare:

Atunci când se lucrează cu ecrane de dimensiuni mai mari, pot fi probleme asociate cu un card de afișare lent. Pentru a îmbunătăți performanța, puteți reduce bitmap original, în mai multe bucăți mai mici și, astfel, se obține un model de „mozaic“. Apoi, afișarea hărții nu va avea nevoie de a manipula o singură imagine raster mare, și va trebui să colecteze partea necesară a hărții din piesele individuale. Cu toate acestea, pentru acest mozaic MapServer va continua să se uite cu un singur strat.

Acest lucru se face după cum urmează: a crea SHP-fișier de stocare poligoane - linii de frontieră pentru care raster a fost tăiat în bucăți. În acest caz, atributele fiecărui nume de fișier poligon memorat care conține piesa corespunzătoare a rastrului.

În general, operația de creare a indicelui SHP-fișier se poate face în mod automat de către programul gdaltindex (parte din pachetul GDAL). Utilizați parametri:

În acest caz, dacă fișierul wm_index.shp nu exista, el este creat. În cazul în care -tileindex nu a fost specificat, va fi folosit de numele câmpului implicit - Locație (traducere integrală a capului despre rastrului de lucru de la descrierea Mapserver).

6. proiecţiile

Pentru a lucra cu proiecțiile din harta-fișierul furnizat o secțiune întreagă. care este numit PROIECŽIA. Pentru a lucra cu proiecțiile nevoie pentru a crea o descriere a proiecției pentru harta ca întreg (obiect MAP) trebuie să specifice, de asemenea, descrierea straturilor de proiecție, care sunt inițial diferite de proiecția proiectiei de ieșire. PROIECȚIE conține parametrii proiecțiilor și ar trebui să fie amplasate în afara descrierile straturilor. PROIECȚIE În cazul în care propunerea se găsește într-o propoziție Stratului de, atunci înseamnă că acest strat este stocat pe disc în această proiecție.

Pentru a afișa harta într-un sistem de coordonate geografice (WGS84):

Pentru a afișa harta într-un sistem de coordonate proiectat (UTM, zona 36, ​​WGS84):

Două puncte importante: adăugarea la propunerea proiectiei-obiect nu înseamnă că întregul card este schimbat imediat de proiecție - în mod implicit se consideră că harta straturi sunt stocate în aceeași proiecție, care este listată în proeminenței. Prin urmare, este necesar să se adauge o PROIECTIE propoziție și straturi ale hărții (STRATUL în propoziție). În al doilea rând, după adăugarea proeminenței oferă în harta-fișier va trebui să modificați parametrul MĂSURA, astfel încât punctele de colț ale cardurilor au fost prezentate în noile coordonate. Pentru a defini parametrii programului pot utiliza proj pentru a converti coordonatele din zone geografice pentru a proiectat sistemul (\ ms4w \ proj \ bin \) coordonează, sau pentru a obține coordonatele în orice GIS: ArcView, MapInfo, etc.

Vom obține următorul rezultat:

Harta fișier folosit în această secțiune: polt3.map.

7. Creați harta interactivă

Șabloanele crea un dosar și a pus fișierul acolo template.html conținut sledushchego:

După aceea, creați o hartă fișier într-o altă partiție:

Harta fișier folosit în această secțiune: polt4.map. Html-șablon: template.html

8. Instrumente zoom Card

În exemplul anterior, când faceți clic pe mouse-ul pe hartă, MapServer mută imaginea, astfel încât punctul în care a lovit-clic, prevăzut în centrul hărții. Mai mult decât atât schimburi, MapServer pot efectua alte sarcini, cum ar fi hartă la scară. Pentru a face acest lucru, trebuie să modificați șablonul.

Iată conținutul fișierului template1.html:

Cel mai interesant lucru se întâmplă în secțiunea „ZOOM / PAN CONTROLS“: există un exemplu de modul de utilizare a variabilei „zoom“. În cazul în care valoarea sa este 1, scara hărții, făcând clic pe butonul „Refresh“ nu se schimbă, dacă zoom-ul variabil este pozitiv, scara de creșteri ori cu zoom. Dacă zoom

Dacă găsiți o greșeală pe site-ul, selectați o bucată de text și apăsați pe Ctrl + Enter