Ett Skånskt lapptäcke

De flesta API som har stöd för geolokaliserad övervakning använder sig av cirklar för övervakning. Detta är ganska logiskt om man tänker på hur man ofta är intresserad av saker i en radie i förhållande till sin egen position. Vi använder samma tanke och matematiska utgångspunkt i vår egen deals lösning GeoKlubb. Där triggar vi kuponger baserat på checkin men kan även erbjuda andra erbjudande inom en viss radie.

Oavsett vilket så lämpar sig denna övervakning egentligen inte om man vill mattbombsövervaka en större yta. Säg t.ex. att jag vill övervaka alla händelser i Skåne via ett radie baserat API. Då kan jag sätt en punkt mitt i Skåne och sedan sätta en radie på ca. 100 km för övervakningen. Problemet är att man då får med stora delar av Köpenhamn.

Lösningen är att man övervakar många små cirklar. Men då måste man säkerställa att man överlappar så att man inte missar något. Genom att räkna fram den största fyrkant som får plats i en cirkel kan man eliminera överlappning och säkerställa att man inte missar något.
Screen Shot 2012-12-21 at 09.12.11Detta är ganska basala geometriska saker men det var länge sedan jag var inne på detta senast så fick läsa in mig på en del saker igen. Den största fyrkanten får man genom det faktum att hypotenusan i en rätvinklig triangel är samma som diametern på den cirkel den skall få plats i. Två rätvinklig triangel tillsammans ger mig fyrkanten jag är ute efter.

Screen Shot 2012-12-21 at 09.20.02

Vi har nu säkerställt att vi överlappar, men inte mer än nödvändigt, och därmed missar vi inte något. Man får fortfarande sätta övervakning på samma sätt. Man måste klart säkerställa att man inte triggas fler gånger i de delar som överlappar.

Screen Shot 2012-12-21 at 09.15.45Nu kan vi stega oss fram och bygga de områden vi vill övervaka. Då Skåne inte är en rektangel måste vi klart lägga in undantag i vårt övervakning för att justera för bukter och halvöar. På bilden under har jag använt mig av 5 km som radie för att bygga lapptäcket.

Screen Shot 2012-12-22 at 08.01.00

Notera gärna förskjutningen längst öster ut på ca. en pixel per vertikalt steg. Jorden är ju rund och skärmen är platt så vi får en avdrift när vi stegar norrut. Flyttar vi ner samma lapptäcke till ekvatorn ser vi inte samma “fel”.

Nu skall jag implementera min lösning i något API för att se om jag kan övervaka något spännande.

 

 

One Reply to “Ett Skånskt lapptäcke”

Comments are closed.