Сергей Константинов "Координаты, слои и тайлы в api...

Post on 15-Jun-2015

1.864 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

APIшник Яндекс.Карт, Москва, 26.04.2012 Рассказ, Сергея Константинова (руководителя группы разработки алгоритмов API Яндекс.Карт) о геокоординатах, тайлах, слоях и о том, как использовать API 2.0 для отображения собственной карты.

TRANSCRIPT

Координаты, слои и тайлыв API 2.0

Сергей Константинов,руководитель группы разработки алгоритмов API Яндекс.Карт

APIшник Яндекс.Карт, Москва, 26 апреля 2012

Координаты на сфере

1

В геодезии принято использовать

сферическую систему координат:

— φ (широта)

— λ (долгота)

Земля — не шар, а более сложное тело,

больше всего похожее на эллипсоид

вращения.

Мы используем

стандарт WGS84:

— a = 6 378 137 м

— b = 6 356 752 м

Координаты на геоиде

2

— Сферу нельзя развернуть на плоскость

— с сохранением геометрии объектов

— Все проекции

— искажают карту

Координаты на плоскости

3

— Географические координаты проецируются

— на декартову плоскость

— Декартовы координаты переводятся

— в пиксельные

Координаты в пиксельном мире

4

— Карта режется на тайлы

— Нулевым считается масштаб,

— при котором весь мир

— попадает в 1 тайл

Тайлы

5

— Бесконечная пиксельная плоскость

— Размеры «мира» на нулевом масштабе —

— 256×256 пикселей

— Лента миров может быть склеена по любой

— из осей, или по обеим сразу

— Преобразование геодезических координат

— в пиксельные через специальный объект

Пиксельный мир API 2.0

6

IProjection

7

fromGlobalPixels(point, zoom)toGlobalPixels(coords, zoom)isCycled()

Можно пользоваться:

ymaps.projection.wgs84Mercatorymaps.projection.sphericalMercator

Можно инстанцировать:

new ymaps.projection.Cartesian()

Как это может пригодиться?

8

Как это может пригодиться?

9

Как это может пригодиться?

10

11

Каким объектам можно задатьсобственную проекцию?

— Карте— Геообъектам— Слоям

map.layers.add(new ymaps.Layer( function (tile, zoom) { return 'http://a.tile.openstreetmap.org/' + [zoom, tile[0], tile[1]].join('/') + '.png'; }, { projection: ymaps.projection.sphericalMercator });

Итого

12

1. Выбираем геодезическую систему

2. Проецируем на плоскость

3. Режем на тайлы3

— YMapTiler

— http://clck.ru/1-olX

— GMapUploader

— http://gmapuploader.com

— И другие

А если я не умею резать тайлы?

13

Вопросы?

Сергей Константинов

twirl@yandex-team.ru

top related