Daugiau

„PostgreSQL“ / „PostGIS“ duomenų bazės pagrindinė „MapServer“ užklausa


Ką tik įdiegiau „MapServer“ į „Linux“ serverį ir bandau suprasti, kaip rodyti pagrindinį žemėlapį naudojant „PostGIS“ duomenų bazę. Naršyklėje pateikiau shapefile, todėl žinau, kad žemėlapių serverio sąranka veikia. Mano žemėlapio failas yra toks:

ŽEMĖLAPIO PAVADINIMAS "pavyzdys" EXTENT -180 -90 180 90 # Geografinis DYDIS 800 400 LAYER CONNECTIONTYPE postgis NAME "keliai" CONNECTION "vartotojas = vartotojo vardas slaptažodis = **** dbname = duomenų bazės vardas host = hostdb.com portas = 5432" DATA "geom iš viešo. "MLSOA" "TIPO EILUTĖS KLASĖS STILIUS SPALVA 0 0 0 PABAIGA PABAIGA PABAIGA PABAIGA # žemėlapio failo pabaiga

Tada tai vadinu naudodamas URL eilutę:

http://mysite.com/mapserv.cgi?map=/home/user/webapps/htdocs/mapfile_pg.map&layer=roads&mode=map

Tačiau gaunu klaidą:

loadLayer (): Nežinomas identifikatorius. Analizės klaida šalia (MLSOA_London) :( 11 eilutė)

Aš taip pat bandžiau tiesiog vadinti savo duomenų bazęMLSOAir„MLSOA“. Jei naudosiu linijąDUOMENYS „geom iš MLSOA“Gaunu šią klaidą:

msDrawMap (): vaizdo apdorojimo klaida. Nepavyko nupiešti sluoksnio pavadinimu „keliai“. msPostGISLayerWhichShapes (): Užklausos klaida. Klaida (KLAIDA: nėra ryšio „mlsoa“) vykdant užklausą: pasirinkite kodą (ST_AsBinary (ST_Force_2D („geom“), 'NDR'), 'hex') kaip geomą, „gid“ iš MLSOA, kur geom && GeomFromText (' POLYGON ((- 180.225563909774 -90, -180.225563909774 90,180.225563909774 90,180,225563909774 -90, -180,225563909774 -90)) ', find_srid (",' MLSOA ',' geom '))

Manau, kad problema yra lentelės pavadinime, bet nesu tikras, kaip jį reikėtų pavadinti. Naudodamas pgAdminIII, jei noriu paleisti užklausą šioje lentelėje, naudoju šią sintaksę:

pasirinkite viešą „getrid“ (the_geom). „MLSOA“ riba 10

Kokia yra teisinga mano žemėlapio failo sintaksė?


„Postgres“ pavadinimai yra didžiosios ir mažosios raidės (tai vienintelis db, kurį aš žinau, kad turi šią funkciją), todėl jūs turite naudoti dvigubas kabutes savo užklausoje „pgAdmin“.

.Map faile turėtų veikti Unix stiliaus pabėgimas:

DATA "geom from public. " MLSOA  ""

Geometrijos stulpelio (-ių) rankinį registravimą galima atlikti taip, kaip dokumentuota čia:

http://postgis.refractions.net/docs/ch04.html#Manual_Register_Spatial_Column