Comprendre les propriétés de création de tuiles de carte

10

J'essaie de créer une carte de base de tuiles. J'ai une image à partir de laquelle je veux créer la tuile et j'utilise GDAL.

J'ai réussi à créer les tuiles mais quand je vois le résultat, il semble que la carte tuilée soit:

  1. Il est retourné
  2. Les proportions ne sont pas correctes

Voici l'image de superposition de carte: image de la carte

C'est le résultat du carrelage:

résultat de tuile

J'ai vérifié à plusieurs reprises que les coordonnées sont bonnes en comparant les coins de l'image sur une orthophoto.

Une autre chose est que dans Google Earth avec les mêmes coordonnées, l'image de la carte correspond précisément à Google Map.

superposition de Google Earth

ÉDITÉ

gdalinfo map_overlay.png

avec cette sortie:

Pilote: PNG / Portable Network Graphics Files: map_overlay.png La taille est 3527, 2494 Le système de coordonnées est `` Métadonnées de structure d'image:
INTERLEAVE = PIXEL Coordonnées d'angle: en haut à gauche (0,0, 0,0) en bas à gauche (0,0, 2494.0) en haut à droite (3527.0 , 0.0) En bas à droite (3527.0, 2494.0) Centre (1763.5, 1247.0) Bloc de bande 1 = 3527x1 Type = octet, ColorInterp = drapeaux de masque rouge: PER_DATASET ALPHA Bloc de bande 2 = 3527x1 Type = octet, ColorInterp = drapeaux de masque vert: PER_DATASET ALPHA Bloc de bande 3 = 3527x1 Type = octet, ColorInterp =
drapeaux de masque bleu : PER_DATASET ALPHA Bloc de bande 4 = 3527x1 Type = octet, ColorInterp = Alpha

Traduisez ensuite:

gdal_translate -of VRT -a_srs EPSG: 4326 -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643 -gcp 0 2494 31.743166

avec cette sortie:

La taille du fichier d'entrée est 3527, 2494

et enfin:

gdal2tiles.py -z 14-21 map_overlay.vrt

La superposition est une simple image .png sans aucune donnée spéciale.

J'apprécierai toute aide.

Shani

Shannoga
la source
2
Il semble y avoir une incohérence dans les gdal_translateparamètres que vous avez publiés ici: vous associez (lat, lon) = (31.7431761644, 35.1680410195) avec deux points distincts à (0,0) et (0,2494). Est-ce vraiment la commande que vous avez lancée ou s'agit-il d'une erreur de copier-coller?
whuber

Réponses:

5

Essayez d'utiliser une image coordonnée métrique avant de la paver comme suit:

   gdalwarp -of GTiff -t_srs EPSG:3857 input.tif output.tif 

MISE À JOUR

Remarque: même si nous spécifions les gcp, gdal_translatene spécifierait pas les coordonnées des coins du tiff.

En plus de cela, vous n'avez pas besoin de créer un ensemble de données virtuel (.vrt) car vous n'avez qu'un seul fichier ...

utilisez le code suivant:

  gdal_translate -of  GTiff  -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 
       31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643
      -gcp 0 2494 31.7431761644 35.1680410195 map_overlay.png map_overlay.tif

puis

  gdalwarp -s_srs epsg:4326 -t_srs epsg:4326  map_overlay.tif warped_map_overlay.tif

et maintenant essayez d'utiliser gdalinfo ... si vous ne voyez aucun problème, exécutez cette commande:

  gdal2tiles.py -z 14-21 warped_map_overlay.tif

si vos tuiles ne correspondent pas, exécutez le code avant la mise à jour, je l'ai donné.

Vous pouvez obtenir plus d'informations ici

J'espère que ça t'aide....

Aragon
la source
Merci. Quand dois-je faire ça? pour l'instant je fais 1.gdalinfo map.png 2.gdal_translate -of VRT -a_srs EPSG: 4326 -gcp .... 3. gdal2tiles.py -z 10-16 map.vrt. Dois-je le faire après la traduction? dois-je changer l'EPSG dans la méthode de traduction?
shannoga
si votre carte n'est pas coordonnée, essayer de prendre des informations avec gdalinfo est vain.
Aragon
Je dois donc utiliser gdalwarp à la place?
shannoga
votre carte est-elle coordonnée avec une projection ou non? si oui, essayez d'utiliser gdalwarp pour le reprojeter, sinon faites-le coordonner avec gdal_transform ...
Aragon
Hé merci pour votre patient. Si vous comprenez bien, ce n'est pas le cas. il s'agit d'une simple image carrée dessinée sur la base d'une carte sans données spéciales. J'ai mis à jour la question avec mes commandes utilisées. Merci encore pour vos efforts.
shannoga