Diagramme de biais de Mercator dans Leaflet

9

J'ai été inspiré par cette image wikipedia de la page des projections de mercator pour pirater avec un dépliant. L'idée était d'avoir votre curseur de façon interactive pour déplacer un continent et qu'il serait corrigé pour la projection.

Voir le JSFiddle suivant pour le statut sofar;

http://jsfiddle.net/cantdutchthis/NrAEL/1/

Je suis un peu nouveau dans le monde des projections et bien que la démo fonctionne assez bien pour la latitude. Lorsque je compare la projection équirectangulaire et la projection de Mercator sur Wikipédia, j'ai l'impression que le biais de la projection est uniquement sur l'axe des Y lorsque vous comparez ces deux projections.

J'ai l'impression que je ne corrige pas la longitude en raison de la première image wikipedia. Je voudrais soutenir cela, mais je ne sais pas quelle est la meilleure façon de le faire.

Actuellement, la façon dont je suis en mesure de montrer le biais de la projection de mercator consiste à décaler les coordonnées vers le curseur de la souris à chaque fois que la souris se déplace;

map.on("mousemove", function(d){ 
    Object.keys(myLayer._layers).map(function(d){ myLayer.removeLayer( myLayer._layers[d] ) })

    var plotCoords = [];

    // green is the coordinate array for the landmass 
    var green = [ [-46.76373672, 82.62796021],... ]


    for ( i in green ) {
       // shift the landmass to where the cursor is
       var x = d.latlng.lng + green[i][0] + 40
       var y = d.latlng.lat + green[i][1] - 80
       circleCoords.push( [ x,y ] );
    }

    window.coords = plotCoords

    window.geojsonFeature = {
      "type": "Feature",
      "properties": {},
      "geometry": {
          "type": "Polygon",
          "coordinates": [coords]
      }
    };

    myLayer.addData(geojsonFeature);

});

Quelle serait la meilleure façon d'avoir ce dépliant interactif montrant également l'effet comme indiqué sur wikipedia .

-- Éditer!

Pour plus d'exemples, consultez mon blog; http://koaning.com

Vincent Warmerdam
la source
1
Bonne idée ! Cela semble être correct. Avec Mercator, l'espacement entre les méridiens est conservé où que vous soyez, de sorte que votre étendue longitudinale relative ne devrait pas changer lorsque vous déplacez votre polygone.
radouxju
DRTL. Le frère de Frank?
Willy
génial, je peux l'utiliser en classe.
Si vous ne savez pas - juste SIG
koaning.com a le plus récent article de blog maintenant. heureux d'entendre les gens comme ça.
Vincent Warmerdam
Qu'entendez-vous exactement par «corrigé pour la projection»? Aussi, quel est le but du code? Cela ne semble rien ajouter à la question.
Martin F

Réponses:

1

Je pense que vous souhaitez modifier à la fois la latitude relative et la longitude relative de la région mobile de sorte que chaque coordonnée relative semble désormais être déformée autant que c'est le cas pour d'autres régions qui sont à la même nouvelle latitude? Si oui, alors @radouxju est incorrect et vous n'êtes actuellement qu'à mi-chemin. Une caractéristique déterminante des projections conformes, telles que Mercator, est qu'en tout point du globe / de la carte, le facteur d'échelle linéaire est constant dans toutes les directions. Ainsi, toutes les modifications que vous apportez à l'échelle Y au fur et à mesure que vous vous déplacez doivent également être apportées à l'échelle X.

Martin F
la source