Facebook розповідає про те, як створив API розташування

  • Aug 28, 2023

Facebook пояснив, як вісім інженерів протягом півтора років працювали над розробкою нових функцій визначення місцезнаходження, які роблять теги місцезнаходження універсальними в соціальній мережі.

facebooklocationapi.jpg

Раніше цього тижня Facebookпередав функції оновлення статусу в програми. Тепер у розробників є можливість дозволити користувачам додавати друзів, місцезнаходження та ділитися фотографіями безпосередньо з програм. Гігант соціальних мереж сьогодні окреслив деталі розширення API розташування. Компанія стверджує, що витратила останні півтора року на те, щоб теги місцезнаходження були універсальними, щоб ваші реєстрації можуть відображатися на шкалі часу, а ваші програми можуть взаємодіяти з тим, де ви були та де хочете йти далі. Вісім інженерів Facebook розробили нові функції визначення місцезнаходження та карту часової шкали, працюючи з командами з часової шкали, місць, мобільних пристроїв, пошуку та тегування.

У серпні 2011 року Facebook знищила свій продукт Місця, але також розгорнула нові функції визначення місцезнаходження

. Компанія каже, що зосередилася на тому, щоб якомога легше ділитися своїм місцезнаходженням, незалежно від того, які оновлення ви публікуєте. Для цього Facebook змінив концепцію місцезнаходження з певного типу інформації, яку ви транслюєте через свій смартфон, на метадані, які ви можете додати до будь-якого елемента Facebook з будь-якого пристрою. Це включає можливість пошуку місць неподалік від вашого поточного місцезнаходження.

По-перше, Facebook попросив дозволу використовувати API GPS для отримання вашого поточного місцезнаходження. У разі дозволу Facebook розділив земну кулю на велику кількість маленьких багатокутників, і всі «місця» у світі зберігалися в пам’яті та індексувалися відповідно до відповідних багатокутників. На жаль, ця інфраструктура заборонила вам включати дані про місцезнаходження у свій профіль Facebook. Після того, як Facebook почав дозволяти вам додавати місцезнаходження до будь-якого вмісту, який публікується на сайті, шукати місця стало багато важче обробити, оскільки потенційно ви можете шукати будь-яке місце у світі, незалежно від вашого поточного стану Місцезнаходження.

Щоб впоратися з цим величезним набором даних, Facebook призначив кожному місцю чотири різні полігони зі збільшенням розміру. Таким чином, усі «місця» у світі були проіндексовані кожним із цих багатокутників, а також першими трьома літерами кожного слова в назві місця. Розробка універсальної пошукової інфраструктури дозволила Facebook надати користувачам можливість шукати місця на будь-якому пристрої (не лише на смартфоні), покращуючи якість пошуку за допомогою визначення місцезнаходження, якщо воно є доступний.

За запитом місця, які відповідають першим трьом буквам, вибираються та перетинаються зі списком місць у всіх чотирьох полігонах, що містять ваше поточне місцезнаходження. Залежно від варіанту використання результати можуть бути зміщені в бік ближчих до вас місць або забезпечувати повністю глобальний пошук. Оскільки в цій новій системі набір кандидатів значно збільшується, Facebook зберігає великий набір функцій для покращення рейтингу, включаючи реєстрації та оцінки «Подобається», отримані місцем, а також оцінку компанії щодо часу відкриття/закриття для місце. Нарешті, Facebook запускає моделі для вибору найбільш відповідних місць на основі цих характеристик.

Коли Facebook створив Timeline, карта часової шкали (малюнок вище) була невід’ємною: вона дозволяє бачити кожне місце, де ви зареєструвалися, а також фотографії та статуси, які ви завантажили в ці місця. На відміну від більшості сторінок Facebook, карта часової шкали вимагає отримання кожного фрагмента вмісту, який користувач створив із зазначенням місця розташування, а не лише перших x хронологічних елементів. Щоб керувати цим навантаженням даних, Facebook створив інфраструктуру для отримання даних на кількох серверах. Під час кожного завантаження сторінки окремий сервер отримує ідентифікатори всіх частин вмісту, які можуть бути відображені для поточного користувача, а потім переривається поділяє ці дані на менші фрагменти, і кожен фрагмент надсилається у вигляді запиту на інший сервер, щоб фактично отримати дані та забезпечити конфіденційність чеки. Результати з цих серверів об’єднуються для створення відображення карти часової шкали.

Ось що Facebook сказав про алгоритми агрегації для маркерів місцезнаходження, що мені здається найбільш захоплюючим:

Побудова логіки для агрегування маркерів на карті була ще одним цікавим завданням, тому що ми цього хотіли вибрати оптимальний алгоритм для агрегації, гарантуючи, що ми показуємо якомога більше різних пінів. Одним із наших перших, більш оптимістичних варіантів було об’єднати будь-які дві точки, які перетиналися, але це спотворило б порядок шпильок. Інший варіант, який ми досліджували, полягав у тому, щоб завжди об’єднувати контакти, які найближче один до одного, щоб зробити рішення детермінованим, але це виявилося надто повільним. Натомість інженер із нашої команди Джон МакКорд написав алгоритм детермінованого малювання цих шпильок. У будь-який момент часу два штирі об’єднувалися, лише якщо вони були найближчими сусідами один одного. Це було порівняно з усіма іншими пінами, щоб знайти інший пін, який задовольняв цю властивість. Якщо виявлено, два штирі були об’єднані в один штифт. Цей процес виконувався до тих пір, поки не залишилося шпильок, що перекриваються.

І останнє, але не менш важливе, Facebook розповів про пропозиції щодо розташування. Компанія створила системи, які переглядають усі альбоми, завантажені користувачем, і здійснюють пошук поля заголовка та розташування для тексту, який міг би означати місце, де міг бути альбом взято. Команда також створила спеціальний потік, який дозволяє легко позначати існуючі фотографії тегами з місцем розташування та негайно додавати їх на карту.

Тепер розробникам додатків належить скористатися перевагами того, що пропонує Facebook. Незабаром соціальна мережа автоматично порекомендує вам нові місця, які варто відвідати, на основі того, де були ваші друзі.

Дивись також:

  • Facebook пропонує функції оновлення статусу для програм
  • Тепер у Facebook можна створювати підписи та знаходити фотографії під час їх завантаження
  • Gowalla підтверджує: Facebook купує соціальну мережу, що базується на геоданих
  • Facebook придбав Gowalla за 3 мільйони доларів акцій (чутки)
  • Який найпопулярніший аеропорт Facebook?
  • Фейсбук-конкурс: Навколо світу за 80 кліків