Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GISとして活用するElasticsearch

Takashi Funato
November 18, 2014

 GISとして活用するElasticsearch

Takashi Funato

November 18, 2014
Tweet

More Decks by Takashi Funato

Other Decks in Technology

Transcript

  1. Who am I ? • @tfunato ધށɹོ • ࢓ࣄɿJava԰ͰWeb԰ɻ࠷ۙ͸Hadoopͱ͔ •

    ϨίϝϯυΤϯδϯΆ͍ͷ࡞ͬͨΓ • جຊԿͰ΋԰ • ઃܭɺ։ൃɺηοτΞοϓɺӡ༻ • Java-ja͔Βདྷ·ͨ͠
  2. ElasticsearchͱҐஔ৘ใ • Ϛοϐϯά • geo point type • Ң౓ܦ౓ͷΠϯσΫγϯά •

    geohash • geo shape type • ଟ֯ܗͳͲͷܗΛΠϯσΫγϯά
  3. IngressͷͤͭΊ͍ Ingress(ΠϯάϨε)͸Googleͷࣾ಺ελʔτΞοϓʮφΠΞϯςΟοΫϥϘʯʢNiantic Labsʣ͕։ൃɾӡӦ͢ΔɺεϚʔτϑΥϯʹରԠͨ͠ɺ֦ுݱ࣮ٕज़Λར༻ͨ͠ΦϯϥΠϯήʔϜɾҐஔ৘ใήʔϜɻ2012೥11݄ʹট଴੍Ͱϕʔλ൛ͷӡ༻͕։࢝͞Εɺ2013೥10݄ʹͩΕͰ΋ࢀՃՄೳͷ ΦʔϓϯϕʔλʹҠߦ͠ɺ2013೥12݄15೔ʹਖ਼ࣜӡ༻͕։࢝͞Εͨɻ౰ॳ͸Androidઐ༻Ͱ͕͋ͬͨɺ2014೥7݄23೔ΑΓiOSʹ΋ରԠͨ͠ɻϓϨΠ͢ΔͨΊͷΞϓϦέʔγϣϯ͸Google Play͓ΑͼApp StoreͰແྉͰఏڙ͞Ε͓ͯΓɺΞΠςϜ՝ۚ͸ଘࡏ͠ͳ͍ɻGoogleͷαʔϏεͰ͋Δͨ ΊɺϓϨΠʹ͸GmailΞΧ΢ϯτ͕ඞཁɻ·ͨGoogle+΁ͷࢀՃ͕ਪ঑͞Ε͍ͯΔɻΩϟονίϐʔ͸The world around you

    is not what it seems.ʢ͋ͳͨͷपΓͷੈք͸ɺݟͨ··ͷ΋ͷͱ͸ݶΒͳ͍ʣͰ͋ΔɻήʔϜͷίϯηϓτ͸ਞऔΓήʔϜͰ͋ΔɻϓϨΠϠʔ͸2ͭͷ੎ྗͷ͏ͪͷͲͪ Β͔ʹଐ͢Δɻੈք֤஍ʹଘࡏ͢ΔʮϙʔλϧʯΛࣗ੎ྗͷॴ༗ͱ͠ɺϙʔλϧಉ࢜ΛʮϦϯΫʯͯ͠ࡾ֯ܗΛඳ͘ͱɺͦͷ಺ଆ͕ʮίϯτϩʔϧϑΟʔϧυʯͱݺ͹ΕΔࣗਞʹͳΔɻͦͷ໘ੵͷେ͖͞Λڝ͏ɻ࠷େͷಛ௃͸ɺήʔϜϑΟʔϧυ͕ੈքͦͷ΋ͷɺݱ࣮ͷGoogle ϚοϓʹΑΔ஍ਤ ͦͷ΋ͷͩͱ͍͏͜ͱͰ͋Δɻϙʔλϧ͸શͯݱ࣮ੈքʹଘࡏ͢Δݐ଄෺ͳͲʹׂΓ౰ͯΒΕ͓ͯΓɺήʔϜதͰϙʔλϧΛ֬อ͢ΔͨΊʹ͸ɺ࣮ࡍʹͦͷ৔ॴ·Ͱߦ͔ͳ͚Ε͹͍͚ͳ͍ɻͦͷͨΊεϚʔτϑΥϯ্ͰGPSػೳΛ༗ޮʹ͢Δ͜ͱ͕ϓϨΠͷલఏͱͳ͍ͬͯΔɻεϚʔτϑΥϯͰΠ ϯλʔωοτ઀ଓͱGPSड৴͕Ͱ͖Ε͹ੈքதͲ͜Ͱ΋͜ͷήʔϜΛϓϨΠ͢Δ͜ͱ͕Ͱ͖ΔɻήʔϜͷഎܠͱͳΔετʔϦʔ͕ઃఆ͞Ε͓ͯΓɺಈըͳͲͷܗࣜͰগͣͭ͠ެ։͞Ε͍ͯΔɻ͜ͷετʔϦʔʹج͍ͮͨେن໛Πϕϯτ͕ൃੜ͢Δ͜ͱ΋͋ΓɺΠϕϯτͰͷ྆ਞӦͷ݁Ռ͸ετʔ Ϧʔʹ΋ӨڹΛٴ΅͢ɻݱ࣮ੈքͰల։͞ΕΔͱ͍͏ήʔϜͷಛੑ্ɺಛఆͷ஍ҬͷϓϨΠϠʔ͕ίϛϡχςΟΛ࡞੒ͨ͠ΓɺΦϑϥΠϯϛʔςΟϯάΛߦͬͨΓ͢Δػձ͕ଟ͍ɻ·ͨɺؠखݝͷΑ͏ʹIngressΛ؍ޫৼڵʹ׆༻͢Δ࣏ࣗମ΋ग़ݱͨ͠ɻήʔϜ಺՝ۚΞΠςϜ͸ଘࡏ͠ͳ͍΋ͷ ͷɺεϚʔτϑΥϯ༻ϞόΠϧόοςϦʔ΍ҠಈඅͳͲͷIngressʹؔ܎͢Δग़අ͸ϢʔβͷؒͰ௨শʮϦΞϧ՝ۚʯͱݺ͹ΕΔɻΤʔδΣϯτ[ฤू] ϓϨΠϠʔ͸ʮΤϯϥΠςϯυʯ͔ʮϨδελϯεʯɺͲͪΒͷ੎ྗʢFactionʣͷΤʔδΣϯτʹͳΔ͔ΛબΜͰήʔϜΛ։࢝͢Δɻ ίʔυωʔϜʢϓϨΠϠʔ໊ʣ͓Αͼॴଐ੎ྗ͸ݪଇͱͯ͠ม͑Δ͜ͱ͸Ͱ͖ͳ͍ɻ·ͨɺҐஔ৘ใ͔Βੜ׆ൣғ͕෼͔Δ৔߹΋͋ΔͨΊɺίʔυωʔϜ͸ଞͷ׆ಈͱ͸ؔ܎ͳ͍ಗ໊ੑͷߴ͍΋ͷ͕ਪ঑͞Ε͍ͯΔ[7]ɻ ίʔυωʔϜ͸ޡͬͯຊ໊Λೖྗͯ͠͠·ͬͨ৔߹ͳͲͷΈมߋՄೳͰ͋Δ͕ɺGoogleͷ৹ࠪΛܦΔඞཁ͕͋Δ[8]ɻ ੎ྗΛมߋ͢Δ৔߹΋ਃ੥͕ඞཁͰ͋ΔɻڐՄ͞ΕΔͷ͸1ϓϨʔϠʔʹ͖ͭ1ճͰɺมߋޙ͸ΞΠςϜɾܦݧ஋ͳͲ͕શͯॳظԽ͞ΕΔ[8]ɻ ήʔϜதͰΤϯϥΠςϯυ͸྘ɺϨδελϯε͸੨ɺதཱ͸നͰද͞ΕΔɻ ϙʔλϧɾϨκωʔλʔ จԽతɾܳज़తɾफڭతʹॏཁͳ৔ॴ͕ϙʔλϧͱͳ͍ͬͯΔɻ ۩ମతʹ͸࢙੻ɺه೦ൾɺூ૾ɺύϒϦοΫΞʔτɺਤॻؗɺ༣ศہɺӺɺڭձɺਆࣾͳͲ[9][10]ɻ ͨͩ͠ɺେֶΛআֶ͘ߍ΍ɺফ๷ॺ΍පӃɺܯ࡯ॺͷΑ͏ͳڌ఺ɺݸਓͷ୐஍ɺةݥͳ৔ॴɺܠ؍ɺӬٱతͰͳ͍΋ͷʹ͍ͭͯ͸ঝೝ͞Εͳ͍Մೳੑ͕ߴ͍ͱ͞ΕΔɻ ͦͷ஍ҬͰϙʔλϧʹద͢ΔͱࢥΘΕΔ৔ॴ͕͋Ε͹ɺήʔϜ্͔Β৽نϙʔλϧͷީิͱͯ͠ਃ੥͢Δ͜ͱ͕Ͱ͖ΔɻӡӦʹͯ৹ࠪ͠ೝΊΒΕΕ͹৽ͨʹϙʔλϧ͕૿͑Δɻ ϙʔλϧͷ৹ࠪʹཁ͢Δظؒ͸3ʙ4िؒͱ͞Ε͍ͯΔɻ ϙʔλϧ͔Β40ϝʔτϧҎ಺ʹ͖ۙͮɺϙʔλϧΛʮϋοΫʯ͢Δͱ֤छΞΠςϜ͕खʹೖΔɻ ग़ݱ͢ΔΞΠςϜͷϨϕϧ͸ϙʔλϧ͓ΑͼϓϨΠϠʔͷϨϕϧʹґଘ͢Δɻ ఢ੎ྗͷϙʔλϧΛϋοΫ͢ΔͱΞΠςϜʹՃ͑ͯAPʢܦݧ஋ʣ͕खʹೖΔ͕ɺϙʔλϧ͔Βͷ൓ܸͰࣗΒͷXM͕ݮগ͢Δɻ ϙʔλϧʹʮϨκωʔλʯ(Resonator)Λઃஔ͢Δͱͦͷϙʔλϧ͕ࣗ੎ྗͷ΋ͷͱͳΔɻ ఢ੎ྗͷϙʔλϧʹରͯ͠͸ɺʮXMPόʔελʔʯʢXMP Bursterʣͱ͍͏ΞΠςϜͰશͯͷϨκωʔλΛഁյ͠ɺ͍ͬͨΜதཱʹ໭͔ͯ͠ΒϨκωʔλΛઃஔ͢Δͱࣗ੎ྗͷ΋ͷͱͳΔɻ ϙʔλϧʹ͸MODͱΑ͹ΕΔΞΠςϜΛઃஔ͢Δ͜ͱ͕ՄೳɻΞΠςϜʹΑͬͯޙड़ͷϦϯΫՄೳͳڑ཭͕৳ͼͨΓɺ߈ܸ΁ͷ଱ੑ͕޲্ͨ͠Γ͢Δɻ ϦϯΫͱίϯτϩʔϧϑΟʔϧυ ϙʔλϧʹϨκωʔλΛ8ຊઃஔ͢Δͱͦͷϙʔλϧ͔Βଞͷࣗ੎ྗͷϙʔλϧΛʮϦϯΫʯ͢Δ͜ͱ͕Ͱ͖Δɻ ϙʔλϧಉ࢜ΛϦϯΫ͢Δʹ͸ɺϦϯΫઌϙʔλϧͷʮϙʔλϧΩʔʯ͕ඞཁʹͳΔɻϙʔλϧΩʔ͸ϋοΫͰಘΔ͜ͱ͕Ͱ͖ΔΞΠςϜͷҰछͰ͋Δɻ ϙʔλϧͷϨϕϧʹΑͬͯϦϯΫՄೳͳڑ཭͸มԽ͢Δ[12]ɻ࠷ߴϨϕϧʢϨϕϧ8ʣͷϙʔλϧͰ655kmɺߋʹMOD(Very Rare Link Amp)Λซ༻͢Ε͹࠷௕6877kmͷڑ཭ͰϦϯΫ͕ՄೳͱͳΔɻ 3ͭͷϙʔλϧΛࡾ֯ܗΛඳ͘Α͏ʹϦϯΫ͢Δͱɺ஍ਤ্ͷͦͷ෦෼͕ࣗ੎ྗͷʮίϯτϩʔϧϑΟʔϧυʯ(Control Field, CF)ͱͳΔɻίϯτϩʔϧϑΟʔϧυΛ࡞੒͢Δͱɺͦͷ໘ੵͱਓޱີ౓ʹԠͨ͡ʮϚΠϯυϢχοτʯ(MU)ͱݺ͹ΕΔಘ఺͕खʹೖΔɻ ਓޱີ౓͕Өڹ͢ΔͨΊɺಉ͡໘ੵͷίϯτϩʔϧϑΟʔϧυͳΒ͹஍ํΑΓ΋౎ࢢ෦ͷํ͕MUͷ஋͕େ͖͘ͳΔ[12]ɻ ٯʹɺఢ੎ྗͷίϯτϩʔϧϑΟʔϧυΛߏ੒͍ͯ͠ΔϙʔλϧͷϨκωʔλΛഁյ͠தཱʹ໭͢ͱɺϦϯΫ͓ΑͼίϯτϩʔϧϑΟʔϧυ΋ഁյ͞Εɺͦͷ෼ͷMUΛݮগͤ͞Δ͜ͱ͕Ͱ͖Δɻ ྆੎ྗͰMUͷ஋͕ଟ͍΄͏͕༏੎ͱͳΔɻ ஍ٿද໘Λ24,576෼ׂ֤ͨ͠ηϧʢ஍ҬʣͰɺ175࣌ؒαΠΫϧ͝ͱʹ࢒ଘ͍ͯ͠ΔίϯτϩʔϧϑΟʔϧυͷMU஋͕ूܭ͞Εͯউഊ͕ܾ·Γɺ͞Βʹશ஍ҬͷMU஋͕߹ࢉ͞ΕੈքϨϕϧͰͷউഊ͕ܾ·Δɻ Ϩϕϧ ΤʔδΣϯτɺϙʔλϧɺΞΠςϜʢϨκωʔλ΍XMPόʔελʔʣʹ͸͢΂ͯʮϨϕϧʯ͕͋ΔɻΞΠςϜͷϨϕϧ͸1͔Β8·ͰͰ͋Δ͕ɺΤʔδΣϯτͷϨϕϧ͸9Ҏ্΋ઃఆ͞Ε͍ͯΔɻ ΤʔδΣϯτͷϨϕϧ͸APʢAccess Pointsʣͱݺ͹ΕΔܦݧ஋ΛੵΉ͜ͱͰ্͕͍ͬͯ͘ɻϨϕϧ8·Ͱ͸APͷΈͰୡ੒Ͱ͖Δ͕ɺϨϕϧ9Ҏ্͸APʹՃ͑ͯϝμϧͱݺ͹ΕΔ࣮੷΋Ұఆ਺֫ಘ͢Δඞཁ͕͋Δɻ ࢖༻Ͱ͖ΔΞΠςϜ͸ΤʔδΣϯτͷϨϕϧʹґଘ͢Δɻྫ͑͹ɺϨϕϧ1ͷΤʔδΣϯτ͸Ϩϕϧ2Ҏ্ͷΞΠςϜΛ࢖༻Ͱ͖ͳ͍ɻ લड़ͷͱ͓ΓɺΞΠςϜͷϨϕϧ͸8·ͰͰ͋ΔͨΊɺΤʔδΣϯτͷϨϕϧ͕8ʹͳΕ͹ଘࡏ͢ΔΞΠςϜ͕શͯ࢖༻Ͱ͖Δɻ ϙʔλϧͷϨϕϧ͸ΞΠςϜͷ1ͭͰ͋ΔϨκωʔλʹґଘ͢ΔͨΊɺߴϨϕϧͷϙʔλϧΛ࡞Δʹ͸ߴϨϕϧͷΤʔδΣϯτ͕ඞཁͱͳΔɻϨκωʔλͷഁյ΋ಉ༷Ͱ͋Δɻ 7JB8JLJQFEJB