我从墨卡托投影页面上的这张 Wikipedia图片中获得启发,并用传单散布。想法是交互式地使您的光标移动到一个大陆上,并且将根据投影对其进行校正。
有关状态描述者,请参见以下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
好主意 !这似乎是正确的。使用墨卡托时,无论您身在何处,子午线之间的间距都将保留,因此在移动多边形时,相对的纵向范围不应改变。
—
radouxju 2014年
DRTL。弗兰克的兄弟?
—
Willy 2014年
太好了,我可以在课堂上使用它。
—
如果您不知道,那就是GIS
koaning.com现在有最新的博客文章。很高兴听到人们喜欢它。
—
文森特·沃默丹
“校正投影”到底是什么意思?另外,代码的目的是什么?它似乎没有添加任何问题。
—
马丁F