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

15
Координаты, слои и тайлы в API 2.0 Сергей Константинов, руководитель группы разработки алгоритмов API Яндекс.Карт APIшник Яндекс.Карт , Москва, 26 апреля 2012

Upload: yandex

Post on 15-Jun-2015

1.862 views

Category:

Documents


6 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

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

Page 2: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

1

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

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

— φ (широта)

— λ (долгота)

Page 3: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

вращения.

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

стандарт WGS84:

— a = 6 378 137 м

— b = 6 356 752 м

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

2

Page 4: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

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

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

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

3

Page 5: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

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

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

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

4

Page 6: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

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

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

Тайлы

5

Page 7: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

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

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

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

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

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

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

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

6

Page 8: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

IProjection

7

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

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

ymaps.projection.wgs84Mercatorymaps.projection.sphericalMercator

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

new ymaps.projection.Cartesian()

Page 9: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

8

Page 10: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

9

Page 11: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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

10

Page 12: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

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 });

Page 13: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

Итого

12

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

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

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

Page 14: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

— YMapTiler

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

— GMapUploader

— http://gmapuploader.com

— И другие

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

13

Page 15: Сергей Константинов "Координаты, слои и тайлы в API 2.0"

Вопросы?

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

[email protected]