Pokemon GO построена поверх S2-клеток. Эта статья объясняет, как работают S2-клетки, кто это вообще такое и как эти клетки работают в контексте Игры.
S2-клетки — это математический механизм, который помогает компьютерам переводить сферическую трехмерную форму Земли (3D) в двухмерную геометрию (2D). Вы можете их представить себе как маленькие географические частицы, которые могут понять компьютеры и любят использовать разработчики.
S2-клетки были впервые представлены в 2005 году разработчиком по имени Eric Veach, инженером Google, который использовал “кривые заполнения пространства” Дэвида Хилберта, чтобы перевести форму Земли в двухмерную модель. Мы не будем углубляться в эти материи, но, в двух словах, эти кривые позволяют заполнить любое двухмерное пространство с помощью одной непрерывной линии. Джефф Дин, один из топов Google, рассказал следующее:
“Внутри Google мы используем умную библиотеку, разработанную Эриком, чтобы идентифицировать регионы на поверхности Земли. Она использует 64-битные числа для уникальной идентификации клеток, с размерами от миллиметров до сотен километров по каждой стороне, используя проекции сфер на поверхность кубов, квадродеревьев (wtf) и прочих умных слов на кривые заполнения пространства Хилберта. Это одна из моих любимых библиотек в Google. “
S2-клетки имеют несколько весьма полезных свойств:
- Они имеют несколько размеров, так называемых “уровней” (выше уровень = меньший размер).
- Они иерархичны, другими словами, большая клетка может быть разбита на несколько меньших.
Они индексируются, и каждая клетка имеет уникальный номер, что очень удобно для разработчиков ПО.
Для примера рассмотрим, как клетки L12 организованы на примере города Сплит, Хорватия:
Как S2-клетки влияют на Pokémon GO
На сегодняшний день, исследователи в сообществе Pokemon GO смогли установить несколько сценариев использования Ниантиками системы S2-клеток для разработки и улучшения игры. Как вы увидите ниже, S2-клетки являются тайной основой всего, с чем вы взаимодействуете в Pokemon GO.
Канал Trainer Tips предлагает вам отличное видео по этой теме:
Вот как S2-клетки работают в Pokemon GO:
- Только один Покестоп или Арена в клетке L17. Может быть много Ingress-порталов в клетке L17, но только одна достопримечательность (далее ДП)в Pokemon GO.
Арены располагаются в клетках L14. Каждая клетка L14 содержит 64 клетки L17, таким образом в ней может быть 64 ДП в Pokemon GO:
PokeStops (Pols) / Покестопы | Gyms / Залы |
1 | 0 |
2-5 | 1 |
6-19 | 2 |
20-34 | 3 |
35-64 | 4 |
- Экс-рейды находятся в клетках L13. Только одна арена в каждой клетке L13 может получить EX-рейд в произвольный период времени.
- Клетки L20 используются для определения, может ли арена, находящаяся на границе парковой зоны, получить EX-рейд.
Список подтвержденных S2-клеток и их роль в Pokemon GO:
- Клетки L10 используются для определения места поимки покемона
- Клетки L10 и L11 используются для определения текущих погодных условий
- Клетки L13 используются в системе распределения EX-рейдов, об этом подробнее можно прочитать в подробном гайде “Как призвать EX-рейд”
- Клетки L14 используются для определения числа арен в клетке (см. выше). Как только вы достигнете определенного порога Покестопов в клетке L14, игра автоматически превратит его в арену.
- Клетки L15 используются для блокировки военных зон в игре
- Клетки L16 используются для отрисовки карты мира, отрисовки Арен и Покестопов в радиусе 500м от вашего местоположения.
- Клетки L17 используются для определения возможности переноса Ingress-портала в Pokemon GO
- Клетки L20 используются для генерации спавна покемонов. Покемон всегда спавнится в центре клетки L20.
Существует множество потенциальных вариантов использования S2-клеток, которые еще не подтверждены, но вполне реальны: определение границ спавна региональных покемонов, гео-блокировка некоторых стран (например, Китай), разграничение биомов и т.д.
Внеклассное чтение
Для тех, кто хочет поглубже изучить данный материал, мы рекомендуем следующие статьи:
- Geometry on the Sphere: Google’s S2 Library presentation — отличный технический и математический разбор системы и библиотеки S2
- S2 Region coverer — возможно, лучший инструмент для визуализации S2-клеток любого уровня по всему миру
- “S2 cells and space-filling curves: Keys to building better digital map tools for cities” by Sidewalk Labs
- “Google’s S2, geometry on the sphere, cells and Hilbert curve” by Christian S. Perone
- s2-geometry-library source code by yjwong
- Hilbert’s curve article on Wikipedia
Исходный материал — A Comprehensive Guide to S2 Cells and Pokémon GO
Поддержать переводчика можно здесь.
За предоставленную статью особо благодарим ilyuxa.
Поправка! В клетке L13 может быть не одна арена для Ex-рейдов.
У нас в городе, например, есть две в одной L13
Максим, Вы не правильно прочитали. В 1й клетке L13 может быть только 1 Экс-рейд, а не 1 Ex-Зал.