Leaflet'te Mercator önyargı grafiği


9

Broşür projeksiyon sayfasından bu wikipedia görüntüsünden ilham aldım . Fikir etkileşimli olarak imlecinizin bir kıtayı hareket ettirmesini ve projeksiyon için düzeltilmesini sağlamaktı.

Durum durumu için aşağıdaki JSFiddle'a bakın;

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

Projeksiyon dünyasında biraz yeniyim ve demo enlem için yeterince iyi çalışmasına rağmen. Ben karşılaştırdığımızda Equirectangular ve merkator projeksiyon ben bu iki projeksiyonları karşılaştırdığımızda projeksiyon önyargı sadece 'y ekseninde' üzerinde olduğu izlenimini almak wikipedia üzerinde.

İlk wikipedia resmi nedeniyle boylamı düzeltmediğim izlenimini edindim. Bunu desteklemek istiyorum ama bunu yapmanın en iyi yolunun ne olduğunu bilmiyorum.

Şu anda, mercator projeksiyonunun sapmasını gösterebilmemin yolu, fare her hareket ettiğinde koordinatları fare imlecine kaydırmaktır;

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

});

Bu interaktif broşür çizimine sahip olmanın en iyi yolu , wikipedia'da gösterildiği gibi etkiyi de gösterir .

-- Düzenle!

Daha fazla örnek için bloguma bakın; http://koaning.com


1
İyi fikir ! Doğru gibi görünüyor. Mercator ile, nerede olursanız olun, meridyen arasındaki boşluk korunur, bu nedenle çokgeninizi hareket ettirdiğinizde göreli uzunlamasına kapsamınız değişmemelidir.
radouxju

DRTL. Frank kardeşim?
Willy

harika, bunu sınıfta kullanabilirim.
Eğer bilmiyorsanız

koaning.com en yeni blog yayınına sahip. böyle insanları duyduğuma sevindim.
Vincent Warmerdam

“Projeksiyon için düzeltilmiş” ile tam olarak ne demek istiyorsun? Ayrıca, kodun amacı nedir? Soruya hiçbir şey katmıyor gibi görünüyor.
Martin F

Yanıtlar:


1

Hareketli bölgenin hem göreli enlemini hem de göreceli boylamını değiştirmek istediğinizi düşünüyorum, böylece her göreceli koordinat aynı yeni enlemdeki diğer bölgeler için olduğu kadar çarpıtılmış gibi görünüyor mu? Eğer öyleyse, @radouxju yanlış ve şu anda orada sadece yarı yoldasın. Mercator gibi uygun projeksiyonların belirleyici özelliklerinden biri, dünya / harita üzerindeki herhangi bir noktada doğrusal ölçek faktörünün her yönde sabit olmasıdır. Bu nedenle, hareket ettikçe Y ölçeğinde yaptığınız her türlü değişiklik X ölçeğine de yapılmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.