Участок смещения Меркатора в 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);

});

Что было бы лучшим способом, чтобы этот интерактивный листок-сюжет также показал эффект, показанный в Википедии .

-- Редактировать!

Дополнительные примеры смотрите в моем блоге; http://koaning.com

Винсент Вармердам
источник
1
Хорошая идея ! Кажется, это правильно. В Mercator расстояние между меридианами сохраняется, где бы вы ни находились, поэтому ваш относительный продольный экстент не должен изменяться при перемещении полигона.
Радучжу
DRTL. Брат Фрэнка?
Вилли
Круто, я могу использовать это в классе.
Если вы не знаете - просто ГИС
На koaning.com появилось самое новое сообщение в блоге. рад слышать, что людям это нравится.
Винсент Уормердам
Что именно вы подразумеваете под «с поправкой на проекцию»? Кроме того, какова цель кода? Кажется, это ничего не добавляет к вопросу.
Мартин Ф

Ответы:

1

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

Мартин Ф
источник