SlideShare a Scribd company logo
A Practical Introduction to
GeoJSON
Valeri Karpov
@code_barbarian
github.com/vkarpov15
What’s This Talk About?
● GeoJSON, or, fun with maps
● What you need to know for building apps
● Using the Mapbox API
● Visualizations using geojson.us
About Me
● Building Node.js apps since 2012
● Lead developer on Mongoose, Node.js+MongoDB ODM
● Blogger, thecodebarbarian.com & masteringjs.io
● Early employee at:
○ LevelUp - Bought by Grubhub for $380M in 2018
○ MongoDB - IPO in 2017
○ Booster Fuels - $88M in funding since 2015
Geospatial Data: What is It?
● Points and shapes on a map (latitude and longitude)
Brief Overview of JSON
● Pronounced “jay-son”: JavaScript Object Notation
● Object = string properties (keys), arbitrary values
● Human readable format
● Almost a subset of JavaScript
GeoJSON Data Types
● Points: where did an Uber customer request pickup?
● Lines: how do you drive from point A to point B?
● Polygons: what are the borders of Colorado?
Point Data Structure
● Type and coords
● [lng, lat]
● Longitude first
Geocoding: A Use Case for Points
● Convert text “429 lenox ave miami” ⇒ GeoJSON point
● Usually via API, like Google Maps or Mapbox
Line Data Structure
● Type and coords
● Coords is array
of arrays
● Longitude first
Lines for Driving Directions
● How to drive from WeWork to MIA Airport?
Polygon Data Structure
● Type and coords
● Coords is a
triple nested
array
Multi Polygons
● Polygon coords are triple nested because you can have
multiple polygons in 1!
Polygons and Geofencing
● Polygons help apps be relevant for locations
● Push notifications, special pricing
● How does Uber know you’re in an airport?
Checking if a Point is in a Polygon
● Common polygon use case: check if user is in a polygon
Using Turf.js
● Turf.js provides numerous geospatial helpers
Geospatial Queries with MongoDB
● MongoDB has excellent support for GeoJSON built in
● `$geoIntersects` finds polygons that contain a point
My Current Work
● Booster does gas delivery
● Trucks with certain fueling capacity
● Customers with projected demand
● What’s the most efficient route?
Routing System Components
● Routing between 2 customers: how long does it take to
get from Santa Monica to Dana Point?
● Customers are represented by GeoJSON polygons, so
our driver app provides location-aware information
● Vehicle Routing Problem solver that optimizes routes
● Forecasting demand based on historical data
Moving On
● GeoJSON is a huge part of modern apps
● Points, LineStrings, Polygons get you most of the way
● Points represent individual locations
● Lines represent routes
● Polygons represent areas (states, airports, etc.)
Further Reading
● GeoJSON intro on my blog: bit.ly/geojson-node
● MongoDB geo queries: bit.ly/mongodb-geo
● Mongoose GeoJSON docs: bit.ly/mongoose-geo
Ad

More Related Content

Similar to A Practical Introduction to GeoJSON (20)

Services, Data and Architectures for Building a Geo App
Services, Data and Architectures for Building a Geo AppServices, Data and Architectures for Building a Geo App
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMSDIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
Chamalee Wickrama Arachchi
 
ExactTarget - Node On The Road
ExactTarget - Node On The RoadExactTarget - Node On The Road
ExactTarget - Node On The Road
Alex Vernacchia
 
What I’ve learned from building an app with OSM technologies
What I’ve learned from building an app with OSM technologiesWhat I’ve learned from building an app with OSM technologies
What I’ve learned from building an app with OSM technologies
Buganini Chiu
 
Node.js at Uber
Node.js at UberNode.js at Uber
Node.js at Uber
Nikolay Stoitsev
 
The State of Mobile 2017
The State of Mobile 2017The State of Mobile 2017
The State of Mobile 2017
Hanapin Marketing
 
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
MongoDB
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Rackspace
 
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
 
GeoNode intro and demo
GeoNode intro and demoGeoNode intro and demo
GeoNode intro and demo
Paolo Corti
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
Chris Schalk
 
Haystack- Learning to rank in an hourly job market
Haystack- Learning to rank in an hourly job market Haystack- Learning to rank in an hourly job market
Haystack- Learning to rank in an hourly job market
Xun Wang
 
Offline maps for mobile developers (Android/iOS)
Offline maps for mobile developers (Android/iOS)Offline maps for mobile developers (Android/iOS)
Offline maps for mobile developers (Android/iOS)
Vadim Nikolaev
 
The essentials for life at cogs
The essentials for life at cogsThe essentials for life at cogs
The essentials for life at cogs
COGS Presentations
 
Recent Market Trends in software development
Recent Market Trends in software developmentRecent Market Trends in software development
Recent Market Trends in software development
Shahid Ahmad
 
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific ConferenceApps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
International Map Industry Association
 
A brief description about Angular
A brief description about AngularA brief description about Angular
A brief description about Angular
PAYALJHA8
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB
 
A novel approach to big data veracity using crowd-sourcing techniques
A novel approach to big data veracity using crowd-sourcing techniques A novel approach to big data veracity using crowd-sourcing techniques
A novel approach to big data veracity using crowd-sourcing techniques
Abhiram Ravikumar
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
Gail Frederick
 
Services, Data and Architectures for Building a Geo App
Services, Data and Architectures for Building a Geo AppServices, Data and Architectures for Building a Geo App
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMSDIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
DIGITAL ADDRESSING CODES FOR LOCATION BASED SYSTEMS
Chamalee Wickrama Arachchi
 
ExactTarget - Node On The Road
ExactTarget - Node On The RoadExactTarget - Node On The Road
ExactTarget - Node On The Road
Alex Vernacchia
 
What I’ve learned from building an app with OSM technologies
What I’ve learned from building an app with OSM technologiesWhat I’ve learned from building an app with OSM technologies
What I’ve learned from building an app with OSM technologies
Buganini Chiu
 
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
Business Track: Building a Personalized Mobile App Experience Using MongoDB a...
MongoDB
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Rackspace
 
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
 
GeoNode intro and demo
GeoNode intro and demoGeoNode intro and demo
GeoNode intro and demo
Paolo Corti
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
Chris Schalk
 
Haystack- Learning to rank in an hourly job market
Haystack- Learning to rank in an hourly job market Haystack- Learning to rank in an hourly job market
Haystack- Learning to rank in an hourly job market
Xun Wang
 
Offline maps for mobile developers (Android/iOS)
Offline maps for mobile developers (Android/iOS)Offline maps for mobile developers (Android/iOS)
Offline maps for mobile developers (Android/iOS)
Vadim Nikolaev
 
The essentials for life at cogs
The essentials for life at cogsThe essentials for life at cogs
The essentials for life at cogs
COGS Presentations
 
Recent Market Trends in software development
Recent Market Trends in software developmentRecent Market Trends in software development
Recent Market Trends in software development
Shahid Ahmad
 
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific ConferenceApps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
Apps & web solutions with OpenSource - Mani Singh - IMIA Asia Pacific Conference
International Map Industry Association
 
A brief description about Angular
A brief description about AngularA brief description about Angular
A brief description about Angular
PAYALJHA8
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB
 
A novel approach to big data veracity using crowd-sourcing techniques
A novel approach to big data veracity using crowd-sourcing techniques A novel approach to big data veracity using crowd-sourcing techniques
A novel approach to big data veracity using crowd-sourcing techniques
Abhiram Ravikumar
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
Gail Frederick
 

More from Valeri Karpov (20)

A Practical Introduction to Functions-as-a-Service
A Practical Introduction to Functions-as-a-ServiceA Practical Introduction to Functions-as-a-Service
A Practical Introduction to Functions-as-a-Service
Valeri Karpov
 
A Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-ServiceA Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-Service
Valeri Karpov
 
Introducing Async/Await
Introducing Async/AwaitIntroducing Async/Await
Introducing Async/Await
Valeri Karpov
 
TAO and the Essence of Modern JavaScript
TAO and the Essence of Modern JavaScriptTAO and the Essence of Modern JavaScript
TAO and the Essence of Modern JavaScript
Valeri Karpov
 
Mastering Async/Await in JavaScript
Mastering Async/Await in JavaScriptMastering Async/Await in JavaScript
Mastering Async/Await in JavaScript
Valeri Karpov
 
React, Redux, and Archetype
React, Redux, and ArchetypeReact, Redux, and Archetype
React, Redux, and Archetype
Valeri Karpov
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDB
Valeri Karpov
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
Valeri Karpov
 
MongoDB MEAN Stack Webinar October 7, 2015
MongoDB MEAN Stack Webinar October 7, 2015MongoDB MEAN Stack Webinar October 7, 2015
MongoDB MEAN Stack Webinar October 7, 2015
Valeri Karpov
 
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
Valeri Karpov
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODM
Valeri Karpov
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Valeri Karpov
 
MongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
MongoDB Miami Meetup 1/26/15: Introduction to WiredTigerMongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
MongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
Valeri Karpov
 
MongoDB API Talk @ HackPrinceton
MongoDB API Talk @ HackPrincetonMongoDB API Talk @ HackPrinceton
MongoDB API Talk @ HackPrinceton
Valeri Karpov
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 
MongoDB Israel June Meetup
MongoDB Israel June MeetupMongoDB Israel June Meetup
MongoDB Israel June Meetup
Valeri Karpov
 
JS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 HourJS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 Hour
Valeri Karpov
 
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and BeyondJS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
Valeri Karpov
 
MEAN Stack Workshop at Node Philly, 4/9/14
MEAN Stack Workshop at Node Philly, 4/9/14MEAN Stack Workshop at Node Philly, 4/9/14
MEAN Stack Workshop at Node Philly, 4/9/14
Valeri Karpov
 
MongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game DataMongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game Data
Valeri Karpov
 
A Practical Introduction to Functions-as-a-Service
A Practical Introduction to Functions-as-a-ServiceA Practical Introduction to Functions-as-a-Service
A Practical Introduction to Functions-as-a-Service
Valeri Karpov
 
A Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-ServiceA Gentle Introduction to Functions-as-a-Service
A Gentle Introduction to Functions-as-a-Service
Valeri Karpov
 
Introducing Async/Await
Introducing Async/AwaitIntroducing Async/Await
Introducing Async/Await
Valeri Karpov
 
TAO and the Essence of Modern JavaScript
TAO and the Essence of Modern JavaScriptTAO and the Essence of Modern JavaScript
TAO and the Essence of Modern JavaScript
Valeri Karpov
 
Mastering Async/Await in JavaScript
Mastering Async/Await in JavaScriptMastering Async/Await in JavaScript
Mastering Async/Await in JavaScript
Valeri Karpov
 
React, Redux, and Archetype
React, Redux, and ArchetypeReact, Redux, and Archetype
React, Redux, and Archetype
Valeri Karpov
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDB
Valeri Karpov
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
Valeri Karpov
 
MongoDB MEAN Stack Webinar October 7, 2015
MongoDB MEAN Stack Webinar October 7, 2015MongoDB MEAN Stack Webinar October 7, 2015
MongoDB MEAN Stack Webinar October 7, 2015
Valeri Karpov
 
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
MEAN Stack NYC Meetup 20150717: TDD Your AngularJS + Ionic Directives With jQ...
Valeri Karpov
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODM
Valeri Karpov
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Valeri Karpov
 
MongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
MongoDB Miami Meetup 1/26/15: Introduction to WiredTigerMongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
MongoDB Miami Meetup 1/26/15: Introduction to WiredTiger
Valeri Karpov
 
MongoDB API Talk @ HackPrinceton
MongoDB API Talk @ HackPrincetonMongoDB API Talk @ HackPrinceton
MongoDB API Talk @ HackPrinceton
Valeri Karpov
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 
MongoDB Israel June Meetup
MongoDB Israel June MeetupMongoDB Israel June Meetup
MongoDB Israel June Meetup
Valeri Karpov
 
JS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 HourJS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 Hour
Valeri Karpov
 
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and BeyondJS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
JS-IL Keynote: MongoDB 2.6, Mongoose 4.0, and Beyond
Valeri Karpov
 
MEAN Stack Workshop at Node Philly, 4/9/14
MEAN Stack Workshop at Node Philly, 4/9/14MEAN Stack Workshop at Node Philly, 4/9/14
MEAN Stack Workshop at Node Philly, 4/9/14
Valeri Karpov
 
MongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game DataMongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game Data
Valeri Karpov
 
Ad

Recently uploaded (20)

Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Ad

A Practical Introduction to GeoJSON

  • 1. A Practical Introduction to GeoJSON Valeri Karpov @code_barbarian github.com/vkarpov15
  • 2. What’s This Talk About? ● GeoJSON, or, fun with maps ● What you need to know for building apps ● Using the Mapbox API ● Visualizations using geojson.us
  • 3. About Me ● Building Node.js apps since 2012 ● Lead developer on Mongoose, Node.js+MongoDB ODM ● Blogger, thecodebarbarian.com & masteringjs.io ● Early employee at: ○ LevelUp - Bought by Grubhub for $380M in 2018 ○ MongoDB - IPO in 2017 ○ Booster Fuels - $88M in funding since 2015
  • 4. Geospatial Data: What is It? ● Points and shapes on a map (latitude and longitude)
  • 5. Brief Overview of JSON ● Pronounced “jay-son”: JavaScript Object Notation ● Object = string properties (keys), arbitrary values ● Human readable format ● Almost a subset of JavaScript
  • 6. GeoJSON Data Types ● Points: where did an Uber customer request pickup? ● Lines: how do you drive from point A to point B? ● Polygons: what are the borders of Colorado?
  • 7. Point Data Structure ● Type and coords ● [lng, lat] ● Longitude first
  • 8. Geocoding: A Use Case for Points ● Convert text “429 lenox ave miami” ⇒ GeoJSON point ● Usually via API, like Google Maps or Mapbox
  • 9. Line Data Structure ● Type and coords ● Coords is array of arrays ● Longitude first
  • 10. Lines for Driving Directions ● How to drive from WeWork to MIA Airport?
  • 11. Polygon Data Structure ● Type and coords ● Coords is a triple nested array
  • 12. Multi Polygons ● Polygon coords are triple nested because you can have multiple polygons in 1!
  • 13. Polygons and Geofencing ● Polygons help apps be relevant for locations ● Push notifications, special pricing ● How does Uber know you’re in an airport?
  • 14. Checking if a Point is in a Polygon ● Common polygon use case: check if user is in a polygon
  • 15. Using Turf.js ● Turf.js provides numerous geospatial helpers
  • 16. Geospatial Queries with MongoDB ● MongoDB has excellent support for GeoJSON built in ● `$geoIntersects` finds polygons that contain a point
  • 17. My Current Work ● Booster does gas delivery ● Trucks with certain fueling capacity ● Customers with projected demand ● What’s the most efficient route?
  • 18. Routing System Components ● Routing between 2 customers: how long does it take to get from Santa Monica to Dana Point? ● Customers are represented by GeoJSON polygons, so our driver app provides location-aware information ● Vehicle Routing Problem solver that optimizes routes ● Forecasting demand based on historical data
  • 19. Moving On ● GeoJSON is a huge part of modern apps ● Points, LineStrings, Polygons get you most of the way ● Points represent individual locations ● Lines represent routes ● Polygons represent areas (states, airports, etc.)
  • 20. Further Reading ● GeoJSON intro on my blog: bit.ly/geojson-node ● MongoDB geo queries: bit.ly/mongodb-geo ● Mongoose GeoJSON docs: bit.ly/mongoose-geo