Проекция

Чтобы сделать карту бесшовной и обеспечить правильное наложение данных из разных источников, нужно использовать одну проекцию для всей планеты. Мы используем проекцию Меркатора на сфере для упрощения расчетов, поскольку в этом случае нужно только отображение карты, а не определение координат.

Общий вид проекции

Так как проекция Меркатора на полюсах стремится к бесконечности, то в действительности она покрывает не всю планету, а ограничивает широтой +/-85.051129 градусов.

Так же эту проекцию называют веб-Меркатор. Она используется основными поставщиками веб-карт, включая Google Maps, Bing Maps, OpenStreetMap, Esri, Mapbox и многими другими.

Проекция имеет идентификатор EPSG:3857.

Размер карты и масштаб

Для отрисовки карты необходимо знать ее размер или масштаб. На самом низком уровне детализации (уровень 0) карта имеет размер 256 х 256 пикселей, на каждом последующем уровне ширина и высота карты увеличивается в 2 раза: уровень 1 составляет 512 х 512 пикселей, уровень 2 — 1024 х 1024 пикселя, и так далее. В общем случае размеры рассчитываются так:

map_w = map_h = 256 * 2 ^ z

где z в нашей системе может иметь значения от 0 до 19.

Радиус сферы в проекции Меркатора принимается 6378137 метров. Тогда, зная размеры карты, можно получить разрешение в метрах на пиксель и далее — масштаб карты.

В приведенной ниже таблице показаны соотношения между этими величинами на экваторе.

УровеньШирина и высота (пикс.)Разрешение (м/пикс.)Масштаб
0256156543,03391:591658710,91
151278271,51701:295829355,45
2102439135,75851:147914677,73
3204819567,87921:73957338,86
440969783,93961:36978669,43
581924891,96981:18489334,72
6163842445,98491:9244667,36
7327681222,99251:4622333,68
865536611,49621:2311166,84
9131072305,74811:1155583,42
10262144152,87411:577791,71
1152428876,43701:288895,85
12104857638,21851:144447,93
13209715219,10931:72223,96
1441943049,55461:36111,98
1583886084,77731:18055,99
16167772162,38871:9028,00
17335544321,19431:4514,00
18671088640,59721:2257,00
191342177280,29861:1128,50