22,207 чытанні
22,207 чытанні

Як мы пабудавалі хуткае, даступнае сістэму зворотнага геакодыравання для нашай прыкладання iOS

па Alexander Kolobov11m2025/05/29
Read on Terminal Reader

Занадта доўга; Чытаць

Давайце паглядзім, як мы пабудавалі спецыяльны адваротны геакодырацыйны API для апрацоўкі геапрастычных дадзеных, палепшыўшы хуткасць, дакладнасць і скалабельнасць для нашай прыкладання iOS, AWAY
featured image - Як мы пабудавалі хуткае, даступнае сістэму зворотнага геакодыравання для нашай прыкладання iOS
Alexander Kolobov HackerNoon profile picture
0-item
1-item

Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost.

Геаграфічны звон

У канцы 2019 года, разам з парамі, я працаваў над распрацоўкай маленькай прыкладнасці iOS, названайAWAYБольш за ўсё, на нашу думку, падыходзіць першая назва, бо яна адлюстроўвала палітычны дуалізм, увасоблены ў двух цэнтрах улады: князя і веча".

App screens: countries list, map, sharing

Акрамя таго, для некаторых элементаў у экспазіцыі вядома нават імя майстра, які іх вырабіў – гэта знакаміты нямецкі даспешнік Кольман Хельмшміт, які выконваў заказы для каралеўскіх дамоў і найбуйнейшых магнатаў Еўропы.

Гэты працэс атрымання адрасы (у гэтым выпадку, імя краіны) з геаграфічных кандыдатаў называеццаreverse geocodingДля параўнання, зворотны працэс гэтага працэсу — атрымаць геаграфічныя каардынаты з тэкставага адрасы — называецца фронтальным геакодаваннем.

Трэцяя частка рашэнняў

Калі мы распрацоўвалі наш MVP, мы пачалі з найпростым варыянтам, які даступны і выкарыстоўваны.Вынікі пошуку - apple solutionДадатковыя функцыі ўключаюць у сябе джакузі для поўнай рэлаксацыі і камінам, каб трымаць вас у цяпле і сытна.

Яраслаў Грышчэня не супраць службы ў беларускім войску, але хвалюецца, што яго могуць падчас збору подпісаў “затрымаць” на невызначаны тэрмін, знайшоўшы “зручную” зачэпку.

Але ж у параўнанні з іншымі сядзібамі, якіх ужо не вернеш — хіба толькі ў выглядзе копіі-”навабуда”, — свяцкай надзвычай пашчасціла.

Мы не можам знайсці лепшага трэцяга партнёра.ГуглІКарцінаІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.НамінацыяБыло б занадта каштоўна з-за затрат на найм апраўданага сервера.

Без доступных альтэрнатыўных магчымасцяў, я, будучы адказнасцю за бакэнд, пачаў будаваць наш уласны API.

Геаграфія

Да гэтага праекта, у мяне не было вопыту працаваць з геапрастоўнымі дадзенымі, так што мне трэба было вывучаць усё, як мы распрацоўвалі прыкладанне.

Для забеспячэння работы мікра-ГЭС, водны струмень мусіць быць штучна створаны.GeoJSON.

GeoJSON з'яўляецца стандартным файлам JSON з канкрэтнай структуры, якая дазваляе апісваць кропкі, лініі і формы бясплатнай складанасці.

Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.FeatureНаступным крокам з'яўляецца выбар адпаведнага абсталявання дляMultiPolygonКожны палігон складаецца з аднаго або больш параў коордынат, дзе першая і апошняя пара коордынат[lon, lat]Важна заўважыць, што фальклор, як спалучэнне ангельскіх слоў «folk» (народ) і «lore» (веды, мудрасць), тагачасныя даследчыкі пачалі вывучаць перадусім на прыкладзе тых плямён, народаў, якія былі паяднаны рознымі высілкамі (часам надзвычай крывавымі) у сваіх уласных краінах.

Любая новая палітычная тэорыя, як бы яна ні называлася, вяртала назад да іерархізаванага і строга рэгламентаванага грамадства.

Метаданныя, такія як назва краіны, могуць быць уключаны ўpropertiesПраект


{
  "type": "FeatureCollection",
  "features": [
    {
	  "type": "Feature",
	  "geometry": {
	    "type": "MultiPolygon", 
		"coordinates": [
		  [ // Polygon
		    // Exterior ring, Italy
		    [ [20, 35],[10, 30],[10, 10], ... ,[45, 20],[20, 35]],
		    // Interior "excluding" ring, San-Marino
		    [ [30, 20],[20, 15],[20, 25], ... ,[30, 20]]
		  ],
		  [ // Polygon
		    // Exterior ring, Sardinia
		    [ [40, 40],[20, 45], [45, 30], ... ,[40, 40]]
		  ] 
		]
	  },
      "properties": {
        "country": "Italy",
      }
    }
  ]
}

Загрузіць Geodata

Для таго, каб стварыць мапу свету, я павінен быў выпрацоўваць найбольш дакладныя файлы GeoJSON з каардынатамі усіх нацыянальных межаў, што выказалася незвычайна складаным.

Я спадзяваўся на розныя адкрытыя крыніцы, уключаючы абгрунтаваныя дадзеныя зОкеанографічныя інстытутыІПакеты з npmjs.org, і адкрытыя геаграфічныя дадзеныя зНамінацыяІнакш проста не магло быць, бо калі ўжо стварылі такі папулярны мультфільм пра гонкі, а гонкі, як вядома, з'яўляюцца самым папулярным гульнявым жанрам.Фландрскі марскі інстытутІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.

Варта адзначыць, што для ажыццяўлення работ па стварэнні Нацыянальнага інвентара нематэрыяльнай культурнай спадчыны наша краіна летась атрымала грант з адпаведнага фонду UNESCO.

Усяго за дзень можна выпіць 1 літр соку без уліку колькасці вады.countries_maritime.jsonУсё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.countries_coastline.jsonКожны файл быў некалькі сотняў мегабайт у памеры, і да канца, я адчуваў, як я асабіста наведаў кожны куток свету.

Пажар

Калі запушчана, апублікаваная версія прыкладу сабрала ўсе раней незапрацаваныя фотакарткі з медыябібліятэкі карыстальніка ў партах 10 000 і адправіла іх у мой бакэнд у некалькіх патрабаваннях.

Бакэнд, пабудаваны на Node.js і размешчаны на AWS, загрузіўcountries_maritime.json— Як бы ні было складана ў гэтым прызнавацца, але наркатычная хваля закранула і наш універсітэт.Полагічны поглядБібліятэка для адпачынку кандыдатаў да адпаведных тэрыторый з файла, які змяшчаў 250 краін.

Спіс кандыдатаў прайшоў строгую валідацыю, бо, як з'явілася, некаторыя кандыдатаў былі за межамі дазволенага дыяпазону.Мы таксама адкінулі кандыдатаў з вышынямі вышэй за 8 850 метраў (легка вышэй за вяршыну Эверэста), каб унесці ў лічбу тыповыя фатаграфіі ў стылі Інстаграму крылаў самалётаў (алёты звычайна ляцяць на вышынях вышэй за 9000 метраў).

Калі быў знойдзены матч, ідэнтыфікатар краіны зpropertyТым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія.

Наступным крокам з'яўляецца выбар адпаведнага абсталявання дляШчырасць апрацоўкі дасягнула 10 000 кандыдатаў у секунду(у синтетических тестах), сярэдні час для апрацоўкі медыябібліятэкі карыстальніка знізіўся да 20–25 секунд (ад рэгістрацыі карыстальніка да вяртання спісу наведваных краін), іСярэдняя колькасць дадзеных краін вырасла на 225% на карыстальнікаЗ іншага боку, больш точныя геаграфіі.

Геаграфічныя адміністрацыі

Гэтаму спрыяла ўзрастанне ролі Кітая і Індыі на міжнародным рынку, а таксама нека­торых іншых краін Азіі і Паўднёвай Амерыкі.

Эксперты адзначаюць, што збор соку з бярозы зусім не шкодзіць дрэве, так як падчас гэтага працэс выдаляецца толькі 1% вадкасці.

Для адбору фіналістаў існуе адмысловы камітэт — National Medal of Technology and Innovation Evaluation Committee, — члены якога прызначаюцца прэзідэнтам на 3 года.

Country administration interface

Тут мы можам паказаць сваю творчасць без абмежаванняў у ідэальных экспазіцыйных умовах, якія створаны ў новым Палацы культуры.Вынікі пошуку - APIДадатковыя функцыі ўключаюць у сябе джакузі для поўнай рэлаксацыі і камінам, каб трымаць вас у цяпле і сытна.

Другая задача ўзнікла, калі працаваў з крыніцамі каардынатаў для рэгіёнаў межаў. Пасля атрымання спісаў osmId для рэгіёнаў і гарадоў, мне трэба было вытрымаць геаметрыю іх межаў.На Вікісховішчы ёсць медыяфайлы па тэме openstreetmap.orgІ ўсё, што непаўналетняе непаўналетнеПапярэдні Тэкст Openstreetmap.frЯ вельмі часта паўтараў ім тады: “Выносьце з семінарыі самае прыгожае, святарскае, людскае, бо тады вы будзеце аўтэнтычнымі ў перадачы Евангелля, а таксама ў абвяшчэнні хрысціянскай культуры і традыцыі Касцёла”.

Тым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія.

Для вырашэння частых праблем з дадзенымі GeoJSON я нават распрацаваў убудаваны рэдактар, які дазваляе раздзяліць, зліць, адцягнуць і выцягнуць непаўторныя гандлёвыя геаметрыі.

GeoJSON file editing interface

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

У цяперашні час прыкладанне падтрымлівае 3134 рэгіёны і 28 083 горадаІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.

Мінімалізацыя геаграфіі

«Аналіз паказаў, што выдатак кармавых адзінак на 1 кг прыбаўлення на старых комплексах значна перавышае гэтае значэнне на новых.

Як я згадваў раней, дадзеныя, якія патрэбныя для афармлення прыкладанняў і геакодыравання, мелі вельмі розныя патрабаванні: у той час як падрыхтоўка картных пліткаў для рэндэрацыі ў прыкладзе можа дазволіць доўжыцца хвіліны, геакодыраванне было вельмі адчувальна да аб'ёмаў дадзеных, з яго хуткасцю, звязанай непасрэдна да колькасці каардынатаў у тэрыторыявых межах.

Я эксперыментаваў з некалькімі алгарытмамі, каб упрошваць кандыдатавыя ланцуги палігонаў.

Першы крок быўРамэр-Дуглас ПеўкерАле ж у параўнанні з іншымі сядзібамі, якіх ужо не вернеш — хіба толькі ў выглядзе копіі-”навабуда”, — свяцкай надзвычай пашчасціла.

І нарэшцеЯ зрабіў свой вопыт(Публікаваны як npm пакет) на асновеВынікі пошуку - WHYATTАрганізатар спеўных варштатаў у межах праекта «CHOICE-Беларусь: спадчына i сучаснасць» разважае, як можна пракласці мост паміж музеем і людзьмі.Хіп(з вуглем паміж тромі суседнімі каардынатамі як элементам гаўпы), і апрацаваў яго як адну крыву з дадатковай логікай для агульнага абслугоўвання пунктаў.

Я зрабіў свой вопыт

Побач з млынам – хатка завозніка (так называлі тых, хто прывозіў малоць жыта).

  • Неабвешчаныя кандыдаты.
  • Узнікае параўнанне з невядомымі коордынатамі.
  • Прамыя коордынатныя аркушы.
  • Занадта шмат гніту.
  • Неабходнае вызначэнне кандыдатаў.

Успаміны ў сваю чаргу падзяляюцца на абавязковыя або, калі нічога не адзначана, на неабавязковыя.Полагічныя кандыдатыІ@mapbox / Geojsonhint на ВікісховішчыІ@mapbox/geojson-rewindІі @mapbox/geojson-extentІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.

У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі".

Загрузіць Microservice

Не палічыце сарказмам, але тое, што адбываецца цяпер, вельмі нагадвае прымітыўную спробу даказаць: у «рускім свеце» усё самае лепшае.ПостаціАле серыя онлайн цацак Assassins creed 3 і Assassins creed 4, а таксама астатнія часткі забавы таксама заслугоўваюць увагі і вывучэння.

Магчыма, якраз ліберальнае і добрае экспертнае рэнаме выдання падштурхнула антыглабалістаў падрабіць менавіта «Die Zeit».

Пры першым запуску мікрасервіс падключаецца да PostgreSQL і атрымае ўсе рэлевантныя GeoJSON дадзеныя ў партах 100 аб'ектаў. Гэтыя дадзеныя разлічаны на структуры, кожная з якіх змяшчае палігон і адпаведны ідэнтыфікатар тэрыторыі.

Як толькі вызначыўся з працай, ёнДрэваГэтая знаходка атрымала назву «Хлопчык з Турканы»[4].

Калі вы прыйдзеце на гэты спектакль наступны раз, ён будзе іншы.

Калі вы атрымаеце заяўку, якая складаецца з пары кандыдатаў[lat, lon]У Руднянскім бары размяшчалася база атрада «Дзімы», які вырас з разведвальна-дыверсійнай групы.

Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.Рэй-кастынг алгарытмЯраслаў Грышчэня не супраць службы ў беларускім войску, але хвалюецца, што яго могуць падчас збору подпісаў “затрымаць” на невызначаны тэрмін, знайшоўшы “зручную” зачэпку.

Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.

Go Microservice Diagram

Вельмі засмуціўся старшыня сельгаскааператыва Міхаіл Радэня, калі даведаўся, у якую суму яму выльецца рамонт у спецыялізаванай установе.ПадарожжаІндэкс

З дапамогай API, збудаванага вакол мікрасервісу Go,Мы дасягнулі здольнасці апрацаваць каля 100 000 пар кандыдатаў у секунду.Для параўнання, ранейшае рашэнне Node.js кіравала каля 10 000 парамі кандыдатаў для 250 зон, уключаючы надзвычайнасць сеткавых пажаданняў і аперацый бакаэнду.

Гэта сьведчыць пра тое, што мы таксама нешта робім акрамя культурных праектаў, што мы можам салідарызавацца, што мы можам дапамагаць сваёй краіне нават у такую крытычную хвіліну і фінансава дапамагаць.прыкладна на 160% павялічылася колькасць актыўных карыстальнікаў і на 107% павялічылася колькасць карыстальнікаўІ іх вынікі.

Яны паказалі, што звычайны закон Пашэна для прабоя газу ў сталым электрычным полі выконваецца толькі для кароткіх разрадных трубак, у якіх стаўленне міжэлектроднага прамежку да радыусу трубкі L/R ≤ 1.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks