Я был вдохновлен этим изображением википедии со страницы проекций Меркатора, чтобы взломать листовки. Идея состояла в том, чтобы в интерактивном режиме ваш курсор перемещал континент и что он будет исправлен для проекции.
См. Следующий 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