Suite

Corriger les coordonnées de Mercator qui sont en dehors du cadre de délimitation du monde ?


J'utilise des superpositions projetées par Mercator à partir d'un site Web participatif où des bénévoles géorectifient des images de cartes à la main. Malheureusement, la carte glissante qui sert d'interface au site s'enroule et permet aux utilisateurs de placer des points en dehors de [-180, 180]/[90,-90].

J'ai un tas de fonctionnalités avec de mauvaises coordonnées, comme les suivantes :

var feature = {"geometry": {"type": "Polygon", "coordinates": [[[-231.304241727798, 1682.74422719708], [825.474710540096, 1682.74422719708], [825.474710540096, -272.6456886681], [-231.30424172779881], -272.645688681] , [-231.304241727798, 1682.74422719708]]]}, "type": "Fonctionnalité", "propriétés": {"id": "7014"}}

Voici quelques données pertinentes du fichier WMS :

EPSG : 4269 EPSG : 4326 EPSG : 900913   image EPSG : 4326 EPSG : 4269 EPSG : 900913  

J'ai essayé de regrouper les coordonnées dans quelque chose qu'une bibliothèque de cartes peut lire, mais en vain, en utilisant d'abord ceci:

lng = ((x + 180) % 360) - 180), lat = ((y + 90) % 180) - 90)

puis après avoir résolu les problèmes avec le mod en Javascript :

lng = ((((x + 180) % 360) + 360) % 360) - 180 lat = ((((y + 90) % 180) + 180) % 180) - 90

mais j'obtiens toujours des coordonnées incorrectes. Comment puis-je reconvertir ces coordonnées mercator hors limites en quelque chose que je peux mettre sur une carte ?


Il semble que la géométrie de l'entité soit corrompue, car les coordonnées ne sont que le cadre de délimitation min/max du SRID tel que défini par le WMS. (Plus ou moins quelques chiffres significatifs)

Le problème semble provenir du fait que EPSG:900913 est défini de manière incorrecte. 900913 n'est plus utilisé, il a depuis été changé en 3857. La zone de délimitation doit être de +/- 20 millions X et +/- 10 millions Y. Notez que l'étendue Mercator XY est différente de l'étendue lat/long.


Voir la vidéo: Les projections cartographiques (Octobre 2021).