Сюжет упередженості Меркатора в Leaflet


9

Мене надихнуло це зображення вікіпедії зі сторінки проектів меркатора, щоб зламати листівку. Ідея полягала в тому, щоб ваш курсор переміщав континент і це було б виправлено для проекції.

Дивіться наступний JSFiddle для зменшення стану;

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

Я трохи новий у світі проекцій, і хоча демонстрація працює досить добре для широти. Коли я порівнюю прямокутну і меркаторну проекцію у вікіпедії, у мене виникає враження, що зміщення проекції є лише на осі "y", коли ви порівнюєте ці два проекції.

У мене складається враження, що я не виправляю довготу завдяки першій картині вікіпедії. Я хотів би підтримати це, але не знаю, який найкращий спосіб зробити це.

В даний час я можу показати зміщення проекції Меркатора шляхом переміщення координат на курсор миші кожного разу, коли миша рухається;

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

});

Який найкращий спосіб створити цей інтерактивний сюжет із листівками, також покаже ефект, як показано на wikipedia .

- Редагувати!

Більше прикладів див. У моєму блозі; http://koaning.com


1
Хороша ідея ! Здається, це правильно. З Меркатором відстань між меридіаном зберігається де б ви не були, тому ваша відносна поздовжня міра не повинна змінюватися при переміщенні вашого багатокутника.
radouxju

DRTL. Франк-брато?
Віллі

дивним, я можу використовувати це на уроці.
Якщо ви не знаєте - просто ГІС

koaning.com має найновіший блог зараз. рада почути, як люблять це.
Вінсент Вармердам

Що саме ви маєте на увазі під «виправленим на проекцію»? Також, яка мета коду? Схоже, це нічого не додає до питання.
Мартін Ф

Відповіді:


1

Я думаю, ви хочете змінити як відносну широту, так і відносну довготу рухомого регіону таким чином, щоб кожна відносна координата тепер виявилася лише спотвореною настільки, наскільки це стосується інших регіонів, що знаходяться на тій же новій широті? Якщо так, то @radouxju невірний, і ви зараз лише на півдорозі. Однією з визначальних характеристик конформних проекцій, таких як Меркатор, є те, що в будь-якій точці земної кулі / карти коефіцієнт лінійної шкали є постійним у всіх напрямках. Таким чином, будь-які зміни, які ви вносите до шкали Y під час руху, також повинні бути внесені до шкали X.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.