banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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
END

Ensuite 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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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
    END

Si 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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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) wink

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
END

Je te remercie sincèrement tu viens de me débloquer 2 semaine smile !

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

 

Pied de page des forums

Powered by FluxBB