Клуб API Карт

Найдено на тему «координаты тайла»:
Получить географические координаты углов тайла
sergeantklin
15 мая 2012, 15:28

Здравствуйте.

Использую TileDataSource. В функции getTileUrl(tile, zoom) получаю географические координаты привязки (левого нижнего угла) тайла:

var worldSize = Math.pow(2.0, zoom);

var equatorLength = 40075016.685578488;

var Rn = 6378137.0;

var a = worldSize / equatorLength;

var b = equatorLength / 2.0;

var MercatorX = tile.x / a - b;

var MercatorY = b - tile.y / a;

var ab = 0.00335655146887969400;

var bb = 0.00000657187271079536;

var cb = 0.00000001764564338702;

var db = 0.00000000005328478445;

var xphi = Math.PI / 2 - 2 * Math.atan(1 / Math.exp(MercatorY / Rn)) ;

var latitude = xphi + ab * Math.sin(2 * xphi) + bb * Math.sin(4 * xphi) + cb * Math.sin(6 * xphi) + db * Math.sin(8 * xphi);

latitude = latitude * 180 / Math.PI;

var longitude = MercatorX * 180 / Math.PI / Rn;

Это работает верно. Но мне нужно еще получить географические координаты правого верхнего угла (или длину тайла по широте и долготе).

Я пробовал следующее:

// получить точку в пикселях, соответствующую правому верхнему углу (при размере тайла 256х256 пикселей)

var mapPixels = map.tileCoordinates.toPixels(tile, new YMaps.Point(256,256), zoom, 256);

// преобразовать полученную точку из пикселей в координаты:

var mapCoords = map.converter.localPixelsToCoordinates(mapPixels);

Широта и долгота получаются неверными (широта всегда равна -90). Наверное, размеры тайла нужно считать в глобальных пикселях, но как это сделать я не знаю. 

Подскажите, куда копать?

 

13 комментариев
координаты тайла
Координаты Тайла в широту и долготу
vit-program
29 июля 2010, 16:14

Подскажите пожалуйста как вручную, без помощи JS (например через PHP) перевести координаты тайла, полученные по средству кода:

var tiliCoord = map.tileCoordinates.fromPixels(
    map.coordSystem.fromCoordPoint(geoPoint),
    map.getZoom()
);

в широту и долготу?

2 комментария
координаты,API 1.x,координаты тайла
Координаты тайла
maps777
10 июня 2010, 10:01

Как определить левый верхний угол выбранного x y тайла?

3 комментария
координаты,API 1.x,координаты тайла
как определить кординаты угла тайла?
Кирилл Яковлев
23 ноября 2009, 10:10

Готовим карту, ее надо правильно растянуть. Как узнать _географические_ координаты левого верхнего угла тайла (или вообще какого-нибудь угла..)?

5 комментариев
тайлы,API 1.x,координаты тайла
Обновление карты
Константин
10 ноября 2009, 12:40

Есть собственный слой на я-карте с собственным источником тайлов. В ответе сервера с тайлами выставлены Expired и max-age. Все замечательно работает.

 

Теперь вопрос: как из js заставить карту обновиться, перечитав все тайлы? map.update(); не работает (map - объект карты, естественно). Сейчас приходится делать так:

 

z=map.getZoom();

map.setZoom(z-1);

map.setZoom(z);

11 комментариев
координаты,API 1.x,координаты тайла