SASGIS

Веб-картография и навигация

MTFD

Обсуждение различной информации связанной с картографией в САСе, а также сторонние программные продукты для связки с САСом

Модератор: Tolik

MTFD

Сообщение elf » 12 июл 2008, 23:12

http://www.sky-map.org/
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();
Аватара пользователя
elf
Новичок
 
Сообщения: 37
Зарегистрирован: 12 июл 2008, 19:31
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.

Вернуться в Другие программы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20