#1 Mon 10 August 2009 16:36
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
[mapserv]
Bonjour,
Je désir crée un serveur de carte qui réagit de la même manière que Google Map, pour pouvoir le coupler avec une apli Java utilisant l'API JXMapViewer.
Je part d'une carte sous le forme d'une image .tif avec le .tfw corespondant.
après avoir effectuer gdal_translate et gdaltindex. J'écris le code suivant :
Code:
MAP
    NAME                 "sample"
    IMAGETYPE PNG24
    STATUS ON
    EXTENT -180 -90 180 90 # Geographic
    SIZE 2048 1024
    IMAGECOLOR 128 128 255
    SHAPEPATH  "../data/test2/"
    SYMBOLSET "../etc/symbols.txt"
    #
    # Start of web interface definition
    #
    WEB
        IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
        IMAGEURL "/ms_tmp/"
    END
    
    PROJECTION
        "init=epsg:4326"
    END
    
    OUTPUTFORMAT
      NAME jpegfull
      DRIVER "GD/JPEG"
      MIMETYPE "image/jpeg"
      IMAGEMODE RGB
      EXTENSION "jpg"
      FORMATOPTION "QUALITY=100"
    END
    
    #
    # Start of layer definitions
    #
    
    LAYER
        NAME tileMonde
        TYPE RASTER
        STATUS ON
        #DATA "mondeTiled.tif"
        TILEINDEX "tindex.shp"
        TILEITEM "LOCATION"
        METADATA
                     "ows_srs" "EPSG:4326"
                     "ows_extent" "-180 -90 180 90"
                END
        PROJECTION
            "init=epsg:4326"
        END
    END
ENDEnsuite lorsque j'appelle mon serveur comme ceci en mode map :
Code:
http://localhost/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apps\test\mapfiles\testtile2.map&mode=map&layer=tileMonde
Je n'ai aucun problème et tout s'affiche correctement.
Mais quand je demande le mode tile ainsi : 
Code:
http://localhost/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apps\test\mapfiles\testtile2.map&tilemode=gmap&mode=tile&layer=all&tile=0+0+0
Je n'ai qu'un carré de 256 par 256 (jusque là tout vas bien) mais ils et monochrome :
Code:
IMAGECOLOR 128 128 255
Pourriez vous me dire ce que je doit faire pour que les tuiles affiche bien la partie de la carte dont j'ai besoin.
si vous désirez plus ample détail je suis a votre disposition
Merci de votre attention.
Hors ligne
#2 Tue 11 August 2009 09:36
Re: [mapserv]
Bonjour,
Un problème de projection ?
The output CRS will be set to “spherical mercator” (EPSG:900913)
[Source : http://mapserver.org/development/rfc/ms-rfc-43.html]
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Tue 11 August 2009 10:21
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [mapserv]
Bonjours,
Merci pour ta réponse.
En effet sa semble être le problème.
Malheureusement avec cette projection : 900913 j'ai cette erreur qui s'affiche : 
Code:
msProcessProjection(): Projection library error. no options found in 'init' file
Auriez vous une idée pour m'aider à aller plus loin ?
Merci de votre attention.
EDIT : 
J'ai fait différent test avec plusieurs projection et soit j'ai cette erreur soit j'ai toujours le même problème.
Dernière modification par Sanby (Tue 11 August 2009 10:48)
Hors ligne
#4 Tue 11 August 2009 10:33
Re: [mapserv]
bonjour,
Rajoute ceci dans ton fichier proj4/epsg :
<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs
Pour information le code EPSG officiel pour la projection de Google Maps est le n°3785. Le code 900913 est un code officieux (chaque chiffre correspond à une lettre du mot Google) qui reste encore largement utilisé !
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Tue 11 August 2009 11:05
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [mapserv]
Bonjour,
Merci pour cette précision.
Toutefois même si je n'ai plus l'erreur j'ai toujours mon problème ...
Mon image de test est une .tif en 2048x1024 qui représente une vue satellite du globe. J'ai vue que sur Google l'image de zoom 0 est en 512x512. Cela joue t'il ?
Merci de votre attention et de votre patience.
EDIT :
Voici les opérations effectuées sur mon image :
Code:
gdal_translate -of GTiff -srcwin 0 0 2048 1024 monde.tif mondeTiled.tif gdaltindex tindex.shp mondeTiled.tif
EDIT2 : 
J'ai le cruelle impression qu'en mode tile mapserv ne passe pas dans le Layer.
Appel : 
Code:
http://localhost/cgi-bin/mapserv.exe?map=C:\OSGeo4W\apps\test\mapfiles\testtile3.map&tilemode=gmap&mode=tile&layer=tileMonde&tile=0+0+0
Peut-être un problème dans mon layer :
Code:
    LAYER
        NAME tileMonde
        TYPE RASTER
        STATUS ON
        #DATA "mondecarreTiled.tif"
        TILEINDEX "carretindex.shp"
        TILEITEM "LOCATION"
        EXTENT -180 -90 180 90
        METADATA
           "ows_srs" "EPSG:900913"
           "ows_extent" "-180 -90 180 90"
        END
        PROJECTION
            "init=epsg:900913"
        END
    ENDSi vous trouver quelque chose de louche je vous remercie de me le signaler.
Dernière modification par Sanby (Tue 11 August 2009 13:07)
Hors ligne
#6 Tue 11 August 2009 14:24
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [mapserv]
Bonjour,
Après une petit batteries de test (en mettant une erreur dans mon layer). Il m'est apparue que lorsque je demande le mode tile (&mode=tile) mapserv ne passe pas mon layer qui m'affiche correctement ma carte en mode map (&mode=map).
Cela reste un mystère.
Merci de votre attention.
Sanby
Hors ligne
#7 Tue 11 August 2009 14:41
Re: [mapserv]
Sanby,
Il y a un soucis avec l'extend et la projection. Le code 900913 doit être rajouté au niveau de l'objet MAP pour permettre à mapserver de reprojeter la carte dans cette projection.
Tu dois cependant définir la projection de ta couche en fonction de sa projection (4326 ?).
Autre chose, peut etre peux tu tenter de supprimer la majuscule (je ne pense pas que cela soit la cause, mais ca ne coute rien d'essayer) 
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#8 Tue 11 August 2009 14:58
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [mapserv]
Bonjour,
Ca marche !
En effet c'était bien ce que tu disais.
Avec ce code ci :
Code:
MAP
    NAME                 "test"
    IMAGETYPE PNG24
    STATUS ON
    EXTENT -180 -90 180 90 # Geographic
    SIZE 800 400
    IMAGECOLOR 128 128 255
    SHAPEPATH  "../data/test3/"
    SYMBOLSET "../etc/symbols.txt"
    #
    # Start of web interface definition
    #
    WEB
        IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
        IMAGEURL "/ms_tmp/"
    END
    
    PROJECTION
        "init=epsg:900913"
        #"init=epsg:27582"
    END
    
    OUTPUTFORMAT
      NAME jpegfull
      DRIVER "GD/JPEG"
      MIMETYPE "image/jpeg"
      IMAGEMODE RGB
      EXTENSION "jpg"
      FORMATOPTION "QUALITY=100"
    END
    
    #
    # Start of layer definitions
    #
    
    LAYER
        NAME tileMonde
        TYPE RASTER
        STATUS ON
        TILEINDEX "carretindex.shp"
        TILEITEM "LOCATION"
        EXTENT -180 -90 180 90
        METADATA
           "ows_srs" "EPSG:4326"
           "ows_extent" "-180 -90 180 90"
        END
        PROJECTION
            "init=epsg:4326"
        END
    END
ENDJe te remercie sincèrement tu viens de me débloquer 2 semaine  !
 !
Je te souhaite une bonne journée et bonne continuation.
Encore merci de votre attention et à une prochaine fois.
Sanby
Dernière modification par Sanby (Tue 11 August 2009 18:17)
Hors ligne





