http://mapbuilder.by.ru/gm.htm
http://depositfiles.com/files/4273821
ciberhunter
Alexanderserv wrote:
Знать бы как получаются ссылки, например такие http://base02.maps.yandex.net/tiles/700 ... 2&scale=10. И формулу приведения от нормальных x,y, то легко добавил бы.
Я тут на досуге решил выяснить формулу запроса на yandex'e
Вот какая формула у меня получилась.
Параметры:
scale, x, y
scale я думаю равно scale=24-level И 1<=Scale<=21
C Координатами обстоит дело так.
X, Y Это координата пиксела в квадрате со стороной 2^31 (Левый верхний угол)
Введем индексы i, j.
i номер скачиваемого квадрата по x, j номер скачиваемого квадрата по y
Растояние между соседними квадратами
step=2^(scale+8)=256*2^scale
i=0,1, ...i_max
j=0,1, ...j_max
i_max=j_max=2^(31-scale-8)
X=i*step
Y=j*step - здесь я думаю нужно умножить на константу -1
Правильность формулы я не проверял. Но думаю я не далек от истины. Возможно есть ошибки в константах
Garl
типа вот этого сляпал тоже на скорую руку
если поковыряться в яндексовом ява скрипте то там можно вычислить методику рассчёта ...
для ЮФО 4194304 - это константа
index.htm
===========
<html>
<body>
<input><br>
<script language="JavaScript" src="mymap.js"></script>
</body>
</html>
mymap.js
=====================
function massiv()
{
// Step,Count,StartPos
dx=new Array(4194304,8,1291845632);
dy=new Array(4194304,8,754974720);
zoom=new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,4194304);
y=dy[2];
for (j = 0; j < dy[1]; j++)
{
x=dx[2];
for (i = 0; i < dx[1]; i++)
{
document.write('<img ');
document.write('width=');
document.write(100/dx[1]);
document.write('% heght=');
document.write(100/dy[1]);
document.write('%');
document.write(' src="http://base01.maps.yandex.net/tiles/400/?layer=1&x=');
document.write(x);
document.write('&y=');
document.write(y);
document.write('&scale=14">');
x=x+dx[0];
}
document.write('<br>');
y=y+dy[0];
}
}
massiv();