พล็อตแบบอคติของ Mercator ในแผ่นพับ


9

ฉันได้รับแรงบันดาลใจจากภาพวิกิพีเดียนี้จากหน้าโปรเจคเตอเรเตอร์เพื่อแฮกใบปลิว แนวคิดก็คือให้เคอร์เซอร์ของคุณเคลื่อนที่ไปตามทวีปและจะได้รับการแก้ไขสำหรับการฉายภาพ

ดู JSFiddle ต่อไปนี้สำหรับสถานะ sofar;

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

ฉันเป็นคนใหม่ในโลกฉายและถึงแม้ว่าตัวอย่างจะใช้ได้ดีพอสำหรับละติจูด เมื่อฉันเปรียบเทียบequirectangularและMercator เงื้อมมือบนวิกิพีเดียฉันได้รับความประทับใจว่าอคติของเส้นโครงนั้นอยู่ที่ 'แกน y' เมื่อคุณเปรียบเทียบการฉายสองภาพนี้

ฉันได้รับความประทับใจว่าฉันไม่ได้แก้ไขลองจิจูดเนื่องจากรูปภาพแรกของวิกิพีเดีย ฉันต้องการสนับสนุนสิ่งนี้ แต่ไม่รู้ว่าจะทำอย่างไรดีที่สุด

ในปัจจุบันวิธีที่ฉันสามารถแสดงอคติของการฉายภาพของ Mercator คือการเปลี่ยนพิกัดไปที่ผู้ชี้ขาดทุกครั้งที่เมาส์เคลื่อนที่

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

});

สิ่งที่จะเป็นวิธีที่ดีที่สุดที่จะมีพล็อตใบนี้แบบโต้ตอบยังแสดงให้เห็นผลกระทบที่ตามที่ปรากฏในวิกิพีเดีย

- แก้ไข!

สำหรับตัวอย่างเพิ่มเติมดูบล็อกของฉัน http://koaning.com


1
ความคิดดี ! ดูเหมือนว่าจะถูกต้อง ด้วย Mercator ระยะห่างระหว่างเมริเดียนจะถูกรักษาไว้ไม่ว่าคุณจะอยู่ที่ใดดังนั้นระยะทางสัมพัทธ์ของคุณจะไม่เปลี่ยนแปลงเมื่อคุณย้ายรูปหลายเหลี่ยม
radouxju

DRTL พี่ชายของแฟรงค์
Willy

ยอดเยี่ยมฉันอาจใช้มันในชั้นเรียน
หากคุณไม่ทราบ - เพียงแค่ GIS

koaning.comมีโพสต์บล็อกใหม่ล่าสุดในขณะนี้ ดีใจที่ได้ยินคนชอบ
Vincent Warmerdam

คุณหมายถึงอะไรโดย“ แก้ไขให้ถูกต้องสำหรับการฉายภาพ”? นอกจากนี้จุดประสงค์ของรหัสคืออะไร? ดูเหมือนว่าจะไม่เพิ่มอะไรให้กับคำถาม
Martin F

คำตอบ:


1

ฉันคิดว่าคุณต้องการเปลี่ยนทั้งละติจูดและลองจิจูดของลองจิจูดของภูมิภาคที่เคลื่อนย้ายได้ซึ่งพิกัดร่วมแต่ละอันนั้นจะบิดเบี้ยวมากเท่ากับกรณีของภูมิภาคอื่นที่อยู่ในละติจูดใหม่เดียวกันหรือไม่ ถ้าเป็นเช่นนั้น @radouxju ไม่ถูกต้องและคุณอยู่ที่นั่นเพียงครึ่งเดียว หนึ่งในการกำหนดลักษณะของการคาดการณ์ที่สอดคล้องกันเช่น Mercator คือ ณ จุดใด ๆ บนโลก / แผนที่ตัวคูณสเกลเชิงเส้นคงที่ในทุกทิศทาง ดังนั้นการเปลี่ยนแปลงใด ๆ ก็ตามที่คุณทำกับสเกล Y ในขณะที่คุณเคลื่อนไหวควรทำกับสเกล X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.