SlideShare a Scribd company logo
GeoHash
encode(lat/long) --> 'string'
What's the plan today?
What is geohash?
Why do we need it?
geohash.org
How does it work?
Grouping and Zooming
Nearby (proximity) searches
The Edge case
Limitations
Demo (Let's see it working)
Who am I?
Co-Founded Ideophone with @oligoglot & @anenth
helped building @pyka, @suruk, @onetouchsos,
@kopa_app
product architecture, platform development
x-SunTec, x-TAT, mtech from IIIT-B
What is geohash?
Simple way to encode lat/long into a string
Compact string encoding of geographic coordinate with
arbitrary precision
    Bangalore - TDR1, Domlur - TDR1WX




Invented by Gustavo Niemeyer for geohash.org
Available in public domain http://en.wikipedia.org/wiki/geohash/
Why do we need it when we have LL?
Big address of this venue
Complicated Lat/Long {12.963787,77.637789}




      The Mail from Cartonama could've said Venue:
                    "tdr1wxyp5dn7v"
● Subdivides space into "buckets" of grid shape
● Doesn't really represent a point, rather a bounding
   area in which the point is present
● Hierarchical spatial structure with gradual degradation
● Longer the geohash
   -> Smaller the area


Demo
How does it work?




11001 01100 10111 00001 11100 11101 11110 10101 00101 01100 10100 00111 11011
  t     d     r    1     w     x    y     p       5     d     n      7    v !
geohash.org
              Short URL uniquely
              identifying points on
              earth




              Referencing them on
              emails, website etc
              becomes far more
              convenient




              Bangalore:
              http://geohash.org/tdr1
              Domlur:
              http://geohash.
              org/tdr1wx
Grouping and Zooming
Easy grouping
   ○ tdr1wxyp5dn7v -> {12.9637069, 77.6377931}
         ●   4th Main Rd, Domlur II Stage, Domlur, Bengaluru, Karnataka

   ○ tdr1wxyp5dn7v -> {12.9637, 77.6378}
         ●   Domlur, Bengaluru, Karnataka

   ○ tdr1wxyp5dn7v -> {12.96, 77.64}
         ●   Bengaluru, Karnataka

   ○ tdr1wxyp5dn7v -> {13, 78}
         ●   Malur-Bangarapettu Rd
Nearby (Proximity) Search

● Nearby locations usually share similar prefixes.
● Long common prefixes indicate two places are near,
   however two nearby places do not always have
   common prefixes
There is an Edge Case:
E.g. Two nearby places in Boston
DRT..
DRM..
Nearby Search
tdr1wxyp5dn7v (TERI)
tdr1wxyqekmg (Bangalore I'ntl Chapter)
tdr1y8jbvrmc (Domlur Club)
tdr1y8jykh6w (CIS)
tdr1ybmhdj4p (Ideophone)
tdr1v4e3mecx (Majestic Station)
tf346wn2t49t (Chennai Central)
9q8vzpgn7we0 (SFO Airport)
Finding Nearby Places
Python, Perl, PHP, Java etc
python-geohash
    ○   Encode/Decode
    ○   BoundingBox
           {'s': 12.919921875,

           'e': 77.6513671875,

           'w': 77.607421875,

           'n': 12.9638671875}

    ○   Neighbours
           ['ezefx','ezefr','ezefp','ezs40',

           'ezs41','ezs43','ezs49','ezs48']
Finding Nearby Places
● Proximity Search
   ○ Bottoms-Up




                        ● Bounding Box Search
                           ○ Hops to neighbors
                             until POI is found
Finding Nearby Places

● Compute geohash
  values for all Lat/Long
● Have index on
  geohash for quicker
  retrievals
Finding Nearby Places
● Prefix Match:
   SELECT * FROM table WHERE place_geohash LIKE hashcode%

● Expand/Neighbors Match
   SELECT * FROM table WHERE place_geohash IN (geohash.expand('tzxy1'))
Limitations

● Locality Anomalies
   ○ Complicates Proximity Searches
   ○ Need to use bounding box extensively making
      search an expensive operation



● Projection based model
   ○ A geohash of given length will denote different
      region size in poles than in equator region
Demo
http://openlocation.org/geohash/geohash-js/
http://geohash.gofreerange.com/
Conclusions

● Simple and effective system to map complex lat-long
   coordinates into simple string representations



● Useful in applications where "nearness" of POIs is
   more relevant than accurate distance computation



● Enables quick db access using LIKE using grouping of
   prefixes of geohashes
Thank you!
@sandeepbhaskar
https://github.com/sandeepbhaskar/geohash-demo

More Related Content

What's hot

暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
MITSUNARI Shigeo
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
KinebuchiTomo
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
paulowniaceae
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
choi kyumin
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
Takuya Ueda
 
グレブナー基底を食べよう
グレブナー基底を食べようグレブナー基底を食べよう
グレブナー基底を食べよう
大好きbot グレブナー基底
 
Schönhage Strassen Algorithm
Schönhage Strassen AlgorithmSchönhage Strassen Algorithm
Schönhage Strassen Algorithm
cookies 146
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
 
ホモトピー型理論入門
ホモトピー型理論入門ホモトピー型理論入門
ホモトピー型理論入門
k h
 
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
Suhyun Park
 
猫でもわかる! モデル検査器 SPIN 入門
猫でもわかる! モデル検査器 SPIN 入門猫でもわかる! モデル検査器 SPIN 入門
猫でもわかる! モデル検査器 SPIN 入門
y_taka_23
 
Alasql JavaScript SQL Database Library: User Manual
Alasql JavaScript SQL Database Library: User ManualAlasql JavaScript SQL Database Library: User Manual
Alasql JavaScript SQL Database Library: User Manual
Andrey Gershun
 
Groongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてGroongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてNaoya Murakami
 
入門Transducers
入門Transducers入門Transducers
入門Transducers
sohta
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
Fixstars Corporation
 
暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advanced
MITSUNARI Shigeo
 
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
Google Cloud Platform - Japan
 

What's hot (20)

暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
 
グレブナー基底を食べよう
グレブナー基底を食べようグレブナー基底を食べよう
グレブナー基底を食べよう
 
Schönhage Strassen Algorithm
Schönhage Strassen AlgorithmSchönhage Strassen Algorithm
Schönhage Strassen Algorithm
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
 
ホモトピー型理論入門
ホモトピー型理論入門ホモトピー型理論入門
ホモトピー型理論入門
 
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
게임 필승법과 Sprague–Grundy 정리 - Sogang ICPC Team, 2020 Winter
 
猫でもわかる! モデル検査器 SPIN 入門
猫でもわかる! モデル検査器 SPIN 入門猫でもわかる! モデル検査器 SPIN 入門
猫でもわかる! モデル検査器 SPIN 入門
 
Alasql JavaScript SQL Database Library: User Manual
Alasql JavaScript SQL Database Library: User ManualAlasql JavaScript SQL Database Library: User Manual
Alasql JavaScript SQL Database Library: User Manual
 
Groongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてGroongaの可変型Ngramトークナイザーについて
Groongaの可変型Ngramトークナイザーについて
 
入門Transducers
入門Transducers入門Transducers
入門Transducers
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advanced
 
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
 

Viewers also liked

Spatial search with geohashes
Spatial search with geohashesSpatial search with geohashes
Spatial search with geohashes
Lucidworks (Archived)
 
Scaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data StoresScaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data Stores
Mike Malone
 
Architecture at SimpleGeo: Staying Agile at Scale
Architecture at SimpleGeo: Staying Agile at ScaleArchitecture at SimpleGeo: Staying Agile at Scale
Architecture at SimpleGeo: Staying Agile at Scale
Mike Malone
 
GeoPackage, Context and POI (and a sprinkle of GeoJSON)
GeoPackage, Context and POI (and a sprinkle of GeoJSON)GeoPackage, Context and POI (and a sprinkle of GeoJSON)
GeoPackage, Context and POI (and a sprinkle of GeoJSON)
Raj Singh
 
Geohash in mapping applications
Geohash in mapping applicationsGeohash in mapping applications
Geohash in mapping applications
Alex Tumanoff
 
投影法
投影法投影法
投影法
Kohei Otsuka
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
Amazon Web Services
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
Seiichiro Ishida
 
How To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and HadoopHow To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and Hadoop
Hortonworks
 
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo..."Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
Lucidworks
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
强 王
 
Spark: Interactive To Production
Spark: Interactive To ProductionSpark: Interactive To Production
Spark: Interactive To Production
Jen Aman
 
LuceneRDD for (Geospatial) Search and Entity Linkage
LuceneRDD for (Geospatial) Search and Entity LinkageLuceneRDD for (Geospatial) Search and Entity Linkage
LuceneRDD for (Geospatial) Search and Entity Linkage
zouzias
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
Paul Withers
 
GIS presentation
GIS presentationGIS presentation
GIS presentation
arniontech
 
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Spark Summit
 

Viewers also liked (16)

Spatial search with geohashes
Spatial search with geohashesSpatial search with geohashes
Spatial search with geohashes
 
Scaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data StoresScaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data Stores
 
Architecture at SimpleGeo: Staying Agile at Scale
Architecture at SimpleGeo: Staying Agile at ScaleArchitecture at SimpleGeo: Staying Agile at Scale
Architecture at SimpleGeo: Staying Agile at Scale
 
GeoPackage, Context and POI (and a sprinkle of GeoJSON)
GeoPackage, Context and POI (and a sprinkle of GeoJSON)GeoPackage, Context and POI (and a sprinkle of GeoJSON)
GeoPackage, Context and POI (and a sprinkle of GeoJSON)
 
Geohash in mapping applications
Geohash in mapping applicationsGeohash in mapping applications
Geohash in mapping applications
 
投影法
投影法投影法
投影法
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
How To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and HadoopHow To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and Hadoop
 
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo..."Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
 
Spark: Interactive To Production
Spark: Interactive To ProductionSpark: Interactive To Production
Spark: Interactive To Production
 
LuceneRDD for (Geospatial) Search and Entity Linkage
LuceneRDD for (Geospatial) Search and Entity LinkageLuceneRDD for (Geospatial) Search and Entity Linkage
LuceneRDD for (Geospatial) Search and Entity Linkage
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
GIS presentation
GIS presentationGIS presentation
GIS presentation
 
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
 

Similar to Geohash

Locality Sensitive Hashing By Spark
Locality Sensitive Hashing By SparkLocality Sensitive Hashing By Spark
Locality Sensitive Hashing By Spark
Spark Summit
 
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
Redis Labs
 
Geo data analytics
Geo data analyticsGeo data analytics
Geo data analytics
Daniel Marcous
 
VenmoPlus demo week6
VenmoPlus demo week6VenmoPlus demo week6
VenmoPlus demo week6
Qingpeng "Q.P." Zhang
 
Shortest route finding using an object oriented database approach
Shortest route finding using an object oriented database approachShortest route finding using an object oriented database approach
Shortest route finding using an object oriented database approach
Alexander Decker
 
Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017
Ram Sriharsha
 
2017 RM-URISA Track: Spatial SQL - The Best Kept Secret in the Geospatial World
2017 RM-URISA Track:  Spatial SQL - The Best Kept Secret in the Geospatial World2017 RM-URISA Track:  Spatial SQL - The Best Kept Secret in the Geospatial World
2017 RM-URISA Track: Spatial SQL - The Best Kept Secret in the Geospatial World
GIS in the Rockies
 
Approximate shortest distance computing
Approximate shortest distance computingApproximate shortest distance computing
Approximate shortest distance computing
LeMeniz Infotech
 
Bandwidth distributed denial of service attacks and defenses
Bandwidth distributed denial of service attacks and defensesBandwidth distributed denial of service attacks and defenses
Bandwidth distributed denial of service attacks and defenses
LeMeniz Infotech
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
Guido Schmutz
 
mini project_shortest path visualizer.pptx
mini project_shortest path visualizer.pptxmini project_shortest path visualizer.pptx
mini project_shortest path visualizer.pptx
tusharpawar803067
 
Node Path Visualizer Using Shortest Path Algorithms
Node Path Visualizer Using Shortest Path AlgorithmsNode Path Visualizer Using Shortest Path Algorithms
Node Path Visualizer Using Shortest Path Algorithms
IRJET Journal
 
Introduction To Geocoding: Linda Achieng
Introduction To Geocoding: Linda AchiengIntroduction To Geocoding: Linda Achieng
Introduction To Geocoding: Linda Achieng
Redis Labs
 
Postgres Vision 2018: PostGIS and Spatial Extensions
Postgres Vision 2018: PostGIS and Spatial ExtensionsPostgres Vision 2018: PostGIS and Spatial Extensions
Postgres Vision 2018: PostGIS and Spatial Extensions
EDB
 
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjangoCorinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
Don Sheu
 
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdfHow to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
CARTO
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Jeongkyu Shin
 
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Anna Shymchenko
 
distance_matrix_ch
distance_matrix_chdistance_matrix_ch
distance_matrix_ch
vikasveshishth
 
Lecture 8: IoT System Models and Applications
Lecture 8: IoT System Models and ApplicationsLecture 8: IoT System Models and Applications
Lecture 8: IoT System Models and Applications
PayamBarnaghi
 

Similar to Geohash (20)

Locality Sensitive Hashing By Spark
Locality Sensitive Hashing By SparkLocality Sensitive Hashing By Spark
Locality Sensitive Hashing By Spark
 
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
Real-time GeoSearching at Scale with RediSearch by Apoorva Gaurav and Ronil M...
 
Geo data analytics
Geo data analyticsGeo data analytics
Geo data analytics
 
VenmoPlus demo week6
VenmoPlus demo week6VenmoPlus demo week6
VenmoPlus demo week6
 
Shortest route finding using an object oriented database approach
Shortest route finding using an object oriented database approachShortest route finding using an object oriented database approach
Shortest route finding using an object oriented database approach
 
Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017
 
2017 RM-URISA Track: Spatial SQL - The Best Kept Secret in the Geospatial World
2017 RM-URISA Track:  Spatial SQL - The Best Kept Secret in the Geospatial World2017 RM-URISA Track:  Spatial SQL - The Best Kept Secret in the Geospatial World
2017 RM-URISA Track: Spatial SQL - The Best Kept Secret in the Geospatial World
 
Approximate shortest distance computing
Approximate shortest distance computingApproximate shortest distance computing
Approximate shortest distance computing
 
Bandwidth distributed denial of service attacks and defenses
Bandwidth distributed denial of service attacks and defensesBandwidth distributed denial of service attacks and defenses
Bandwidth distributed denial of service attacks and defenses
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
 
mini project_shortest path visualizer.pptx
mini project_shortest path visualizer.pptxmini project_shortest path visualizer.pptx
mini project_shortest path visualizer.pptx
 
Node Path Visualizer Using Shortest Path Algorithms
Node Path Visualizer Using Shortest Path AlgorithmsNode Path Visualizer Using Shortest Path Algorithms
Node Path Visualizer Using Shortest Path Algorithms
 
Introduction To Geocoding: Linda Achieng
Introduction To Geocoding: Linda AchiengIntroduction To Geocoding: Linda Achieng
Introduction To Geocoding: Linda Achieng
 
Postgres Vision 2018: PostGIS and Spatial Extensions
Postgres Vision 2018: PostGIS and Spatial ExtensionsPostgres Vision 2018: PostGIS and Spatial Extensions
Postgres Vision 2018: PostGIS and Spatial Extensions
 
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjangoCorinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
Corinne Hutchinson's 7/8/2015 PuPPy Presentation on GeoDjango
 
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdfHow to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
How to Analyze & Optimize Mobility with Geospatial Data (Snowflake).pdf
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
 
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
 
distance_matrix_ch
distance_matrix_chdistance_matrix_ch
distance_matrix_ch
 
Lecture 8: IoT System Models and Applications
Lecture 8: IoT System Models and ApplicationsLecture 8: IoT System Models and Applications
Lecture 8: IoT System Models and Applications
 

Recently uploaded

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

Geohash

  • 2. What's the plan today? What is geohash? Why do we need it? geohash.org How does it work? Grouping and Zooming Nearby (proximity) searches The Edge case Limitations Demo (Let's see it working)
  • 3. Who am I? Co-Founded Ideophone with @oligoglot & @anenth helped building @pyka, @suruk, @onetouchsos, @kopa_app product architecture, platform development x-SunTec, x-TAT, mtech from IIIT-B
  • 4. What is geohash? Simple way to encode lat/long into a string Compact string encoding of geographic coordinate with arbitrary precision Bangalore - TDR1, Domlur - TDR1WX Invented by Gustavo Niemeyer for geohash.org Available in public domain http://en.wikipedia.org/wiki/geohash/
  • 5. Why do we need it when we have LL? Big address of this venue Complicated Lat/Long {12.963787,77.637789} The Mail from Cartonama could've said Venue: "tdr1wxyp5dn7v"
  • 6. ● Subdivides space into "buckets" of grid shape ● Doesn't really represent a point, rather a bounding area in which the point is present ● Hierarchical spatial structure with gradual degradation ● Longer the geohash -> Smaller the area Demo
  • 7. How does it work? 11001 01100 10111 00001 11100 11101 11110 10101 00101 01100 10100 00111 11011 t d r 1 w x y p 5 d n 7 v !
  • 8. geohash.org Short URL uniquely identifying points on earth Referencing them on emails, website etc becomes far more convenient Bangalore: http://geohash.org/tdr1 Domlur: http://geohash. org/tdr1wx
  • 9. Grouping and Zooming Easy grouping ○ tdr1wxyp5dn7v -> {12.9637069, 77.6377931} ● 4th Main Rd, Domlur II Stage, Domlur, Bengaluru, Karnataka ○ tdr1wxyp5dn7v -> {12.9637, 77.6378} ● Domlur, Bengaluru, Karnataka ○ tdr1wxyp5dn7v -> {12.96, 77.64} ● Bengaluru, Karnataka ○ tdr1wxyp5dn7v -> {13, 78} ● Malur-Bangarapettu Rd
  • 10. Nearby (Proximity) Search ● Nearby locations usually share similar prefixes. ● Long common prefixes indicate two places are near, however two nearby places do not always have common prefixes There is an Edge Case: E.g. Two nearby places in Boston DRT.. DRM..
  • 11. Nearby Search tdr1wxyp5dn7v (TERI) tdr1wxyqekmg (Bangalore I'ntl Chapter) tdr1y8jbvrmc (Domlur Club) tdr1y8jykh6w (CIS) tdr1ybmhdj4p (Ideophone) tdr1v4e3mecx (Majestic Station) tf346wn2t49t (Chennai Central) 9q8vzpgn7we0 (SFO Airport)
  • 12. Finding Nearby Places Python, Perl, PHP, Java etc python-geohash ○ Encode/Decode ○ BoundingBox {'s': 12.919921875, 'e': 77.6513671875, 'w': 77.607421875, 'n': 12.9638671875} ○ Neighbours ['ezefx','ezefr','ezefp','ezs40', 'ezs41','ezs43','ezs49','ezs48']
  • 13. Finding Nearby Places ● Proximity Search ○ Bottoms-Up ● Bounding Box Search ○ Hops to neighbors until POI is found
  • 14. Finding Nearby Places ● Compute geohash values for all Lat/Long ● Have index on geohash for quicker retrievals
  • 15. Finding Nearby Places ● Prefix Match: SELECT * FROM table WHERE place_geohash LIKE hashcode% ● Expand/Neighbors Match SELECT * FROM table WHERE place_geohash IN (geohash.expand('tzxy1'))
  • 16. Limitations ● Locality Anomalies ○ Complicates Proximity Searches ○ Need to use bounding box extensively making search an expensive operation ● Projection based model ○ A geohash of given length will denote different region size in poles than in equator region
  • 18. Conclusions ● Simple and effective system to map complex lat-long coordinates into simple string representations ● Useful in applications where "nearness" of POIs is more relevant than accurate distance computation ● Enables quick db access using LIKE using grouping of prefixes of geohashes