Pages: 1
- Sujet précédent - [Mapserver] Layer non affiché a cause d'unité differente ? - Sujet suivant
#1 Tue 03 June 2008 19:04
- nicolasa
- Juste Inscrit !
- Date d'inscription: 3 Jun 2008
- Messages: 4
[Mapserver] Layer non affiché a cause d'unité differente ?
Bonjour à tous.
Je suis un newbie en Mapserver et j'espere que ma question est pertinente.
Mon fichier .map reference 3 layers Mapinfo (.tab)
Les 2 premiers layers sont visibles sans probleme. Le 3 eme lui ne l'est pas.
Voici le fichier Map
Code:
MAP DEBUG on NAME securelev SIZE 600 518 STATUS ON EXTENT 152.96586 -27.43460 153.00325 -27.40216 UNITS KILOMETERS IMAGECOLOR 255 255 255 TEMPLATEPATTERN "securelev" IMAGETYPE PNG #FONTSET "..\etc\fonts.txt" #SYMBOLSET "..\etc\shade.sym" # # Start of web interface definition # SYMBOL NAME 'circle' TYPE ELLIPSE POINTS 1 1 END FILLED TRUE END WEB LOG "C:\Program Files\ms4w\Apache\htdocs\secureleve\logs\logs.txt" HEADER "templates/header.html" TEMPLATE "main.html" FOOTER "templates/footer.html" #IMAGEPATH "c:/tmp/ms_tmp/" #IMAGEURL "/ms_tmp/" #MAXSCALE 10000 #MINSCALE 0 END # WEB Section REFERENCE IMAGE images/img_overview_securelev.gif EXTENT 1 1 2 2 #EXTENT 495000 6970200 502400 6963800 STATUS ON COLOR -1 -1 -1 OUTLINECOLOR 255 0 0 SIZE 120 90 END QUERYMAP STYLE HILITE COLOR 255 0 0 END # # Start of Layer definition # LAYER NAME "arrondissements" TYPE POLYGON MINSCALE 0 MAXSCALE 1000000 STATUS DEFAULT CONNECTIONTYPE OGR CONNECTION "C:\projets\sig\demos\securelev\arrondissements.TAB" CLASS NAME "arrondissements" COLOR -1 -1 -1 OUTLINECOLOR 0 255 0 END # Class section END # LAYER Section LAYER NAME "Roads" TYPE LINE MINSCALE 0 MAXSCALE 1000000 STATUS DEFAULT CONNECTIONTYPE OGR CONNECTION "C:\projets\sig\demos\securelev\Roads.TAB" CLASS NAME "Roads" COLOR 208 208 208 END # Class section END # LAYER Section LAYER NAME "ecoles" TYPE POINT #MINSCALE 0 #MAXSCALE 1000000 STATUS DEFAULT CONNECTIONTYPE OGR CONNECTION "C:\projets\sig\demos\securelev\ecoles.TAB" CLASS NAME "ecoles" COLOR 0 0 0 SYMBOL 'circle' SIZE 1000000 END # Class section END # LAYER Section END # MapFile
Le layer "ecoles" n'est pas visible.
Comme conseillé par ObiWan Kenobi "Use the source, Luke". Le probleme lors du dessin est que je me fais clipper par l'extent visiblement parce que un extent en kilometres est comparé avec des degrées(OGRLayer::FilterGeometry ligne 783 de ogrlayer.cpp)
voilà la callstack.
Code:
gdal15.dll!OGRLayer::FilterGeometry(OGRGeometry * poGeometry=0x026a1e40) Line 782 C++ gdal15.dll!IMapInfoFile::GetNextFeature() Line 258 + 0x26 bytes C++ libmap.dll!msOGRFileNextShape(layer_obj * layer=0x0259f958, shapeObj * shape=0x0012f4c4, ms_ogr_file_info_t * psInfo=0x026a1550) Line 1181 + 0x15 bytes C++ libmap.dll!msOGRLayerNextShape(layer_obj * layer=0x0259f958, shapeObj * shape=0x0012f4c4) Line 1850 + 0x11 bytes C++ libmap.dll!msLayerNextShape(layer_obj * layer=0x0259f958, shapeObj * shape=0x0012f4c4) Line 144 + 0x16 bytes C libmap.dll!msDrawVectorLayer(map_obj * map=0x02596df8, layer_obj * layer=0x0259f958, imageObj * image=0x0264fc68) Line 860 + 0xd bytes C libmap.dll!msDrawLayer(map_obj * map=0x02596df8, layer_obj * layer=0x0259f958, imageObj * image=0x0264fc68) Line 722 + 0x11 bytes C libmap.dll!msDrawMap(map_obj * map=0x02596df8, int querymap=0x00000000) Line 432 + 0x11 bytes C libmap.dll!msGenerateImages(mapservObj * msObj=0x02595d20, char * szQuery=0x00000000, int bReturnOnError=0x00000001) Line 3409 + 0xe bytes C mapserv.exe!main(int argc=0x00000002, char * * argv=0x025942b0) Line 1253 + 0x14 bytes C
En utilisant ogrinfo sur le arrondissements.tab et sur ecoles.tab j'obtiens les resultats suivants :
Code:
Had to open data source read-only. INFO: Open of `C:\projets\sig\demos\securelev\arrondissements.tab' using driver `MapInfo File' successful. Layer name: arrondissements Geometry: Unknown (any) Feature Count: 7 Extent: (152.947878, -27.456762) - (153.024043, -27.386528) Layer SRS WKT: GEOGCS["unnamed", DATUM["Australian_Geodetic_Datum_84", SPHEROID["Australian",6378160,298.25], TOWGS84[-134,-48,149,-0,-0,-0,0]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433]] SUBURB: String (30.0) Population: Real (0.0) OGRFeature(arrondissements):1 SUBURB (String) = SOMMERTON Population (Real) = 4513 Style = BRUSH(fc:#000000,bc:#ffffff,id:"mapinfo-brush-1.ogr-brush-1");PEN(w:3px,c:#00ff00,id:"mapinfo-pen-2.ogr-pen-0") POLYGON ((152.947878 -27.431833,152.94841400000001 -27.434335,152.94939299999999 -27.435585,152.95097899999999 -27.440992999999999,152.95665099999999 -27.441835,152.959901 -27.442312,152.961151 -27.442495,152.96217999999999 -27.442637999999999,152.970213 -27.443709999999999,152.97023100000001 -27.443535,152.97099600000001 -27.442312,152.971416 -27.441996,152.97169500000001 -27.441590999999999,152.972309 -27.441481,152.97264200000001 -27.441582,152.97304199999999 -27.441793,152.973454 -27.441859999999998,152.97381200000001 -27.442039,152.97454099999999 -27.442509,152.975076 -27.438583,152.979266 -27.439245,152.979849 -27.439308,152.980648 -27.439429,152.981326 -27.43953,152.98174 -27.439592999999999,152.98188999999999 -27.43793,152.98279700000001 -27.4329,152.982844 -27.432569,152.98603900000001 -27.433022,152.986075 -27.432753000000002,152.98662999999999 -27.432836000000002,152.98715899999999 -27.432905000000002,152.98747499999999 -27.432848,152.98783800000001 -27.432658,152.98809299999999 -27.432555,152.987968 -27.433183,152.98907199999999 -27.433295,152.98958500000001 -27.433368000000002,152.99071599999999 -27.43353,152.99092200000001 -27.432645,152.991412 -27.429957000000002,152.991556 -27.429172999999999,152.99171799999999 -27.428280999999998,152.991883 -27.427382,152.992344 -27.427447999999998,152.99247700000001 -27.426717,152.99261300000001 -27.425937,152.995159 -27.426275,152.99532099999999 -27.425374,152.99489800000001 -27.425332999999998,152.995294 -27.423292,152.995341 -27.423079,152.997533 -27.423428,152.997962 -27.423514,152.99826899999999 -27.423608000000002,152.99852799999999 -27.423707,152.99856 -27.423715999999999,152.99858900000001 -27.423196,152.99853400000001 -27.422511,152.99831399999999 -27.421828999999999,152.998334 -27.421821,152.99834799999999 -27.421813,152.99836199999999 -27.421803,152.99837299999999 -27.421793,152.99838399999999 -27.421779,152.99839299999999 -27.421765,152.998403 -27.421745999999999,152.99841000000001 -27.421727,152.998412 -27.421714,152.998414 -27.421696,152.99841499999999 -27.421685,152.99841499999999 -27.421672,152.998414 -27.421657,152.998411 -27.421645000000002,152.99840699999999 -27.421631999999999,152.998402 -27.421619,152.99839499999999 -27.421606,152.99838700000001 -27.421593999999999,152.998379 -27.421582999999998,152.99836300000001 -27.421568,152.998434 -27.421492,152.99844899999999 -27.421465999999999,152.99846500000001 -27.421420999999999,152.99847600000001 -27.421379999999999,152.99849 -27.42132,152.998796 -27.419975,152.99697399999999 -27.419695,152.996824 -27.419657999999998,152.996847 -27.419547,152.996994 -27.418762,152.997512 -27.418811000000002,152.99811299999999 -27.418731,152.998186 -27.418704999999999,152.99823699999999 -27.418662999999999,152.99826999999999 -27.41861,152.99828199999999 -27.418572,152.998279 -27.418507000000002,152.99825200000001 -27.418451,152.997635 -27.417698,152.99759399999999 -27.417659,152.99752699999999 -27.417628,152.997209 -27.417581999999999,152.99733900000001 -27.416851,152.997501 -27.415962,152.99755500000001 -27.415354,152.99794399999999 -27.415192,152.997703 -27.414539,152.997646 -27.414422999999999,152.99747099999999 -27.414089,152.99701300000001 -27.413792,152.99673100000001 -27.413671,152.99650399999999 -27.413533,152.995991 -27.413219000000002,152.99573899999999 -27.413073,152.995251 -27.412887999999999,152.99495300000001 -27.412921999999998,152.99487300000001 -27.412851,152.994789 -27.412749999999999,152.99474699999999 -27.412628000000002,152.99435 -27.412592,152.994045 -27.412663999999999,152.993607 -27.412873999999999,152.99345400000001 -27.412887999999999,152.99331699999999 -27.412860999999999,152.993065 -27.412655,152.992771 -27.412758,152.992165 -27.413215999999998,152.99148600000001 -27.413891,152.99109999999999 -27.414532,152.99056200000001 -27.415018,152.99034900000001 -27.415368999999998,152.989925 -27.415929999999999,152.989655 -27.416134,152.98939100000001 -27.416107,152.989273 -27.415908999999999,152.98897600000001 -27.415673999999999,152.98871199999999 -27.415379,152.988529 -27.41523,152.988529 -27.41506,152.988461 -27.414764000000002,152.98842999999999 -27.414708999999998,152.988178 -27.414684,152.98790399999999 -27.414460999999999,152.98757599999999 -27.413916,152.98751799999999 -27.413719,152.98740000000001 -27.413532,152.98736600000001 -27.413212,152.98709500000001 -27.412766,152.986885 -27.412562999999999,152.986729 -27.412355000000002,152.98656099999999 -27.412251,152.98650699999999 -27.412237,152.98584399999999 -27.412209,152.98556099999999 -27.412146,152.98468399999999 -27.412133999999998,152.984531 -27.411999000000002,152.984554 -27.411873,152.98468399999999 -27.411724,152.98450099999999 -27.411698999999999,152.984238 -27.411698999999999,152.98397399999999 -27.411724,152.983799 -27.411626999999999,152.98361199999999 -27.411503,152.98341400000001 -27.411503,152.98325 -27.411698999999999,152.98308599999999 -27.411836999999998,152.98301799999999 -27.411823999999999,152.98288700000001 -27.411798,152.982471 -27.411798,152.982517 -27.411439999999999,152.982517 -27.411242,152.98241400000001 -27.411090999999999,152.982124 -27.410982,152.98193699999999 -27.410858,152.981773 -27.410622,152.980682 -27.410049,152.98056 -27.410513000000002,152.98055600000001 -27.410527999999999,152.98055400000001 -27.410544000000002,152.98055400000001 -27.410565999999999,152.980557 -27.410585999999999,152.98056099999999 -27.410602,152.98056700000001 -27.410616999999998,152.98057600000001 -27.410634999999999,152.980591 -27.410653,152.980605 -27.410665999999999,152.98062100000001 -27.410677,152.980638 -27.410685,152.980512 -27.411061,152.979974 -27.413782,152.97965500000001 -27.415427,152.97959900000001 -27.415652,152.97946300000001 -27.416353999999998,152.979331 -27.417086,152.97924399999999 -27.417531,152.97915800000001 -27.418037000000002,152.978714 -27.418752999999999,152.978272 -27.419477,152.97809699999999 -27.419682000000002,152.97752299999999 -27.420093,152.97607099999999 -27.421019999999999,152.97551300000001 -27.421381,152.974898 -27.421769,152.974198 -27.422208999999999,152.973353 -27.422702999999998,152.97317699999999 -27.423241999999998,152.972084 -27.423815,152.97199499999999 -27.42398,152.971924 -27.424467,152.968504 -27.423888000000002,152.966409 -27.423573,152.965844 -27.425449,152.95955900000001 -27.424458999999999,152.951437 -27.423179,152.95146299999999 -27.424655,152.952607 -27.426183000000002,152.95297500000001 -27.427039,152.95348300000001 -27.427287,152.95448500000001 -27.427648,152.955626 -27.429013999999999,152.95749699999999 -27.42999,152.951188 -27.432438,152.947878 -27.431833)) OGRFeature(arrondissements):2 SUBURB (String) = EASTGROVE Population (Real) = 2972 Style = BRUSH(fc:#000000,bc:#ffffff,id:"mapinfo-brush-1.ogr-brush-1");PEN(w:3px,c:#00ff00,id:"mapinfo-pen-2.ogr-pen-0") ...
pour ecoles :
Code:
Had to open data source read-only. INFO: Open of `C:\projets\sig\demos\securelev\ecoles3.TAB' using driver `MapInfo File' successful. Layer name: ecoles3 Geometry: Point Feature Count: 8 Extent: (497388.737729, 6966549.662291) - (499641.527103, 6968160.630128) Layer SRS WKT: PROJCS["unnamed", GEOGCS["unnamed", DATUM["Australian_Geodetic_Datum_84", SPHEROID["Australian",6378160,298.25], TOWGS84[-134,-48,149,-0,-0,-0,0]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",153], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",10000000], UNIT["Meter",1.0]] Name: String (40.0) Suburb: String (15.0) Number_of_Students: Integer (0.0) OGRFeature(ecoles3):1 Name (String) = Somner Park Primary School Suburb (String) = SOMNER PARK Number_of_Students (Integer) = 412 Style = SYMBOL(a:45,c:#000000,s:18pt,id:"mapinfo-sym-39.ogr-sym-5") POINT (499641.52710286394 6968160.6301281704) OGRFeature(ecoles3):2 Name (String) = Main State High Suburb (String) = SOMMERTON Number_of_Students (Integer) = 1256 Style = SYMBOL(a:45,c:#000000,s:18pt,id:"mapinfo-sym-39.ogr-sym-5") POINT (499014.23870077991 6967363.6495091151) ...
La difference principale est selon moi l'unité utilisée. Pour l'un en degrés pour l'autre en metres.
Mes questions:
- Mon analyse vous semble elle correcte ?
- Comment puis je modifier le fihcier ecoles.tab afin que l'unité utilisée soit degrés.
J'ai fais de nombreux essais dans Mapinfo sans y parvenir.
J'ai tenté de changer l'unité du fichier .map en dd et le probleme existe encore
Pouvez vous m'aider ?
Nicolas
Hors ligne
#2 Tue 03 June 2008 21:30
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: [Mapserver] Layer non affiché a cause d'unité differente ?
ton analyse est bonne, il te faut reprojeter le layer qui ne s'affiche
pas dans la projection des deux autres :
ajoute un bloc PROJECTION au bloc MAP qui définira la projection de la carte
ajoute un bloc PROJECTION dans tous les blocs LAYER qui ne sont pas dans
la projection de la carte, en y spécifiant la projection de ce LAYER.
par exemple :
PROJECTION
"init=epsg:27572"
END
pour du Lambert II étendu
concernant les unités du bloc MAP, il faut indiquer celles de la
projection utilisée : DD si c du non-projeté (WGS, EPSG:4326) ou METERS
pour du lambert
Bonne chance !
Guillaume
Hors ligne
#3 Wed 04 June 2008 01:33
- nicolasa
- Juste Inscrit !
- Date d'inscription: 3 Jun 2008
- Messages: 4
Re: [Mapserver] Layer non affiché a cause d'unité differente ?
GENIAL !!!! ça fonctionne maintenant.
Comme indiqué par Guillaume
dans la section MAP j'ai ajouté :
PROJECTION
"init=epsg:4203"
END
UNITS DD
dans la section Layer du layer qui ne s'affichait pas j'ai ajouté :
PROJECTION
"init=epsg:20356"
END
MERCI encore Guillaume. :-)
Hors ligne
Pages: 1
- Sujet précédent - [Mapserver] Layer non affiché a cause d'unité differente ? - Sujet suivant