Сюжет упередженості Меркатора в 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.