Текстурирование сферы по проекции Меркатора
Сразу перейду к коду
получение значения широты в радианах по меркатору, эта функция работает отлично
getMerc=function(lat){
var mercN=Math.PI/2-lat*Math.PI;
var lonRad = -2*Math.atan(Math.exp(2*mercN))+Math.PI;
return lonRad;
}
получение значений для UV маппинга дляOpenGL/WebGL
function MercUvs(row){
var lon=Earth.Math.getMerc((y+1-row/(verticesRow.length-1))/z);
return (lon-ystart)/(yend-ystart);
}
Все это применяется для частей сферы на quadtree начиная со слоя 2, текстуры берутся из гугл карты, таким образом 2 слой дает 16 разделенных частей сферы
С первого взгляда все работает нормально, но если разместить рядом части с разных слоев, то заметны неточности.
Источник: Stack Overflow на русском