Инженерски журнал

Инженерски Maplight: От координати на снимки към покритие на територия

Зад гълъбовия свет е детерминистичен поток за квантизиране на доказателства, сливане на офлайн устройства, измерване на земята веднъж и запазване на приватната история на източника отвъд сервера.

От 6 минути за четене
Maplight осветява частите от света, представени от приватна Mapsake история на пътуване

Въпросът за продукта зад Maplight

Картата с Посетени места отговаря на полезен двоичен въпрос: дали място е част от историята ви? Maplight задава нещо различно. С използване на снимки, направени в различни години и други доказателства за пътуване, кои от близките части на земята са достигнали тези моменти?

Това звучи като чертане на прозрачни кръгове около точки. Производствена функция трябва да решава по-трудни проблеми: точки се пресичат, кръговете пресичат границите и границите, Земята е криволинейна, изходната информация достига от няколко системи, старите устройства може да са офлайн, и библиотеката за цял живот трябва да остава достатъчно бърза за интерактивно изследване.

Тълкуването на Maplight разделя тези заботи в малък преносим изходен модел, детерминистичен двигател за покритие и слой за рендеринг. Същите входни данни трябва да произвеждат същото покритие, независимо дали историята е била създадена на едно устройство или съединена през iCloud през няколко.

Обобщете входа преди да го запазите

Първоначалният вход може да започне като координати от снимка, импортована пътешествие, печатен отпечатък или ръчно записано място. Преди да се запази изходна точка на Maplight, Mapsake я квантува към шестичарна геохеш клетка. Запазената изходна точка съдържа този геохеш, бит маска, описваща типовете на източници и най-ранния известен ден.

Това предлага три полезни свойства.

Първо, повтарящите се доказателства в една малка географска клетка могат да се съединят в една изходна точка. Второ, портативната записка е компактна и детерминирана. Трето, моделът Maplight не изисква да се запази всяка оригинална координата на снимката, за да се възпроизведе осветлението.

Най-ранният ден върхува прегледа по история. Извори без дати все още се броят към резултатите за всички времена, но не се притесняват да принадлежат на година, която приложението не може да определи.

Картографски историята на годината 2021 с осветени земи, държави и общности

Създайте сливане като добавяне

Синхронизацията с iCloud не е една единствена уредена струя. Два устройства могат да работят офлайн, да записват свързани записи и по-късно да получат дубли в различен ред. Плътна записана записка от последния писал ще направи легитимната история да изчезне.

Вместо това, изходите се съединяват чрез геохеш. Источници се комбинират и най-ранният валиден ден печели. Изходите са кодирани в подреден ред в компактни късчета. Логично късче се идентифицира чрез профил, генерация и географски тайл, докато съгласуването на късчета дублира съдържанието на късчетата.

Идентификаторът на генерацията е важен при възстановяване. Нов изход може да бъде подготвен без да се приемат като актуални неактивните части от предишната генерация. Това предотвратява частична синхронизация или прекъсната изчисление да произвеждат смес от стара и нова покритие.

Правилото за съединяване е намерено монотонно: съединете доказателствата. Монотонни, детерминирани правила са стойност, когато същата частна история трябва да се съвпада между iPhone, iPad и Mac.

Като покривател се измерва на равна клетка

Широтата и дължината в градуси не представят равни разстояния навсякъде. Един градус дължина намалява към полюсите, така че броят на обикновените картови пиксели или клетки с размер на градус ще въздейства върху резултата в зависимост от местоположението.

Maplight оценява покритието на терена в приблизително два километра равни по площ клетки. Всяка ред представлява съparable физическа площ, и осветените участъци се съхраняват като интервали по този ред. Источникът на радиус става диапазон от кандидат клетки; тези клетки се тестват и се натрупват.

Интервали правят пресичането евтино. Ако няколко близки снимки осветяват същите клетки, двигателят ги съединява вместо да брои земята повтарящо се. Краен брой представлява обединението на осветената земя, а не сбора от всяка окръжност.

Това е също защо числото на покритието може да не съвпада с площта на математическите кръгове, умножена по броя на източниците. Морските клетки се премахват, пресичанията се свалят и присвоените гранични права могат да разделят резултата между държавите.

Запазете океана извън общият общ

Снимка от полет или посещение на брега може да постави радиус върху водата. Maplight е описан като осветена земя, така че водата не може тихо да увеличи броя.

Системата за покритие използва геометрията на вградените граници, за да определи дали кандидатите са на сушата и коя страна ги съдържа. Същата широка семейство от източници, което поддържа офлайн картата и газетиерската работа на Mapsake, прави изчислението достъпно без да изпраща безкрайна съвкупност от координати към веб мапинг API.

Ръбът е природно по-сложен от вътрешните точки. Островите, тесните полуострови, енклавите и споредни конвенции на границите създават краен случай. Следователно двигателят се пресмята като полезна оценка на неговата решетка, а не като кадастрово измерване.

Атрибуција на покритост без двойно броене

Общите статистики на страните се основават на същите клетки, както и глобалната статистика. Клетка може да бъде определена чрез включване в граница, докато глобалното съединение продължава да я брои само веднъж. Това поддържа разбиването на страните обяснено и предотвратява източник, със съседство на граница, да създаде повече територия в света, отколкото картата в действителност покрива.

Источници са отделни от дистрибуцията на територията. Геохеш изход може да се спомни, че и снимките и ръчно избрана местност са внос, но светлинните клетки около този сливен изход все още принадлежат на една общност. Това разграничение позволява интерфейса да обясни откъде произхожда доказателството, без да превръща пресичащите доказателства в дублирани територии.

Създайте времевия ред от обръснати снимки

Историята трябва да отговори

Моделът записва годишни снимки, свързани с текущата генерация и радиус. Всяка снимка представлява произходи, чиито най-ранни дни са на или преди нейната граница. Неподписани произходи остават достъпни за глобалното изглед без да се въвеждат във фиктивна историческа година.

Интерфейсът може да премине през подготвени общности и геометрия, докато картата остава бърза. Възстановяването все още се случва, когато основното множество, избран радиус или генерация се промени, но обикновеното изпълнение чете стабилна последователност.

Рендерира се мъгла вместо хиляди кръгове

Потребителят вижда светлината, а не клетките на мрежата. Слойът за рисуване превръща изчисленото покритие в слой, който може да се движи и да се зума с атласа. Разглеждането на цялата световна като една гигантска висока резолюция текст ще използва прекалено много памет; рисуването на всяка изходна точка като независим жив формула ще повтаря работа за пресичане на всеки кадър.

Maplight затова запазва скъпата географска унищожение вън от цикъла и извършва подготвени покрития в управляеми части. Слойът може да се фокусира върху представянето – цвят, прозрачност, zoom и преминаване – докато покритието на двигателя отговаря на географското решение.

Това граница също помага при тестването. Снимка на покритието може да се провери без SwiftUI-вид, и рендерирането може да се настрои без промяна в семантиката на мерж.

Приватността определи архитектурата

Това би било по-лесно да се изпратят координатите на снимките към сървър и да се изчисли покритието там. Mapsake умишлено не изисква тази архитектура. Квантизацията се случва преди Maplight-пERSISTЕНСА, покритието може да се построи на устройството с пакетирана геометрия на земята, а публичното споделяне извежда обобщен резултат, а не частната оригинална колекция.

Това избор премества работата към хардуер на потребителя и прави синхронизирането по-тежко. Това означава също така, че системата може да остане полезна без интернет, уебсайтът не става склад за лични снимки, и премахването или извеждането на данни остава свързано с записа на потребителя в Mapsake.

Картографски настройки, показващи радиуса на разкриване, община на приватни приятели, възстановяване и изтриване

Какво научихме

Основното правило е, че всяка слой отговаря на едно точно въпрос:

  • Оригиналите отговарят какво обобщено доказателство съществува и кога първо се появява.
  • Правилата за събиране показват как няколко устройства се събират без да загубят допълненията.
  • Като покривател отговаря на това, кои равни клетки на земята са осветени.
  • Снимките показват как тази комбинация се променя с течение на времето.
  • Рендерирането обяснява, как резултатът да изглежда жив.

Maplight изглежда игриво, защото механиката под него е намерено ограничена. Компактни входове, събиране на синхронизиране, равни по площ измервания, обединени интервали, паковани граници и готови снимки оставят интерфейса свободен да направи емоционалната част: да позволи някому да наблюдава живота в снимки да освети картата.

Иконата на приложението Mapsake

Самостоятелен разработчик на Mapsake, писан от продукта, картата, приватността и работата по Apple-платформата зад приложението.

Създайте вашия атлас

Начнете със историята си от пътуванията, която вече имате

Mapsake е безплатна, изисква без Mapsake акаунт за основна употреба и запазва поддържаните съпоставки на снимки на устройството.

Получете Mapsake безплатно