SlideShare a Scribd company logo
1 of 24
Download to read offline
geo
search   the
basics
LBS is ubiquitous
but remains somehow a mystery




  let’s visit some of the basics
query in geo-search: geotags
geotag basics
each location on earth is presented as lat/long pair relative to
     180° along the Equator and 90° along the Meridian



                                                     Examples

                                                     22.278146,114.185259
                                                     +22° 16′ N, 114° 11′ E
                                                     +22° 16' 41.33", +114° 11' 6.93"

                                                     - S/W
                                                     + N/E
geotagging photos
gps trackers embed lat/long coordinates in the EXIF section of a photo
geotagging the web
     as LBS takes off, movement to geotag the web and media follows suite




flickr: ICBM, Geo Tag




                geoRSS: great for monitoring
                   and scientific research
geocoding        as we don’t speak in coordinates




                                               22.278146,114.185259




202.92.185.47

01558-6-3031

                finds lat/long of a point of interest, given partial data
                   such as an address, an IP or a phone number
how address geocoding works




  step a: parse or rewrite the address
how address geocoding works




step b: locate corresponding map segment
how address geocoding works



                              99
                             96     81 22.278146,114.185259



                                                 28     21




            step c: interpolate address
use other data like zip code, intersecting streets.etc. to improve accuracy
reverse-geocoding          does the opposite




                                              22.278146,114.185259




sometimes we need to find non-geotagged points-of-interests
                     near a location
reverse-geocoding
geocoding hong kong addresses


                             lands department geo db




                                                       google maps API


       commercial packages
geo-searching



                                  most common use-cases:
                            finding useful data about a location or
                           finding points-of-interests near a location




need a way to calculate distances between points-of-interests
geo-searching: the algorithm

 challenge: calculation of distances between places is
less straight forward as the world is not a flat surface
geo-searching: the algorithm

visualizing earth as a sphere, mathematicians derive the
great circle between two points and then calculate the
distance between them, using the radius of the sphere




 this has been used to help sea navigation routes planning for centuries
geo-searching: the algorithm

                The haversine formula, given two locations
            (lat1,long1), (lat2,long2) and radius of the sphere:


                             Δlat = lat2− lat1
                           Δlong = long2− long1
            a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
                         c = 2.atan2(√a, √(1−a))
                                 d = R.c



other algorithms such as the spherical law of cosines and the Vincenty formulas are widely used as well
geo-searching: the algorithm

        implementations of the haversine formula, in sql:


        SELECT id, ( 3959 * acos( cos( radians(inputLat) ) * cos( radians( lat ) ) *
            cos( radians( lng ) - radians(inputLong) ) + sin( radians(inputLat) ) *
        sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 10
                                      ORDER BY distance;




* expanded to perform a search for points of interests given a lat/long co-ordinates pair
haversine in action



                     server-side

                     a. haversine sql lookup
                     b. draw map with co-
                     ordinates of points-of-
                     interests

                     friendsNearByMap.php




upload location                                response
that was just the beginning



   growing usages: location based search marketing

more capable devices: iphone, smartphones, gps cameras
references


http://en.wikipedia.org/wiki/Geotagging
http://www.uncorneredmarket.com/2008/02/geotagging-your-photos-importing-embedding/
http://www.codeproject.com/KB/scrapbook/ask_GoogleMap_Geocoder.aspx
http://computer.howstuffworks.com/mapquest2.htm
http://en.wikipedia.org/wiki/Great-circle_distance
http://www.phpbites.com/2008/05/30/getting-to-the-point#more37
http://www.movable-type.co.uk/scripts/gis-faq-5.1.html
http://en.wikipedia.org/wiki/Haversine_formula
http://www.movable-type.co.uk/scripts/latlong.html
http://code.google.com/apis/maps/articles/phpsqlsearch.html#findnearsql
http://www.developer.com/lang/jscript/article.php/3615681

http://mathworld.wolfram.com/GreatCircle.html
http://www.scribd.com/doc/2669666/Geo-Distance-Search-with-MySQL-Presentation
friendsNearByMap.php
<?php

$mapHTML = <<<END_HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
   <script src="http://maps.google.com/maps?
file=api&amp;v=2&amp;key=ABQIAAAAIyNua8PP_PzqZ7hTFF3NThR_fjc6V75Vk4buUDX2vYNSgRJ_LxQdsrhokMtHy8yClRqUkWyUUQy
Ajg"
     type="text/javascript"></script>
   <script type="text/javascript">
   function load() {
     if (GBrowserIsCompatible()) {

     var map = new GMap2(document.getElementById("map"));
     map.setCenter(new GLatLng($where), 16);

    map.addControl(new GSmallMapControl());


   var tinyIcon = new GIcon();

   tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
...

   map.addOverlay(marker);
END_HTML;
friendsNearByMap.php (2)

<?php

// Get parameters from URL
$centerLong = $_REQUEST['long'];
$centerLat = $_REQUEST['lat'];
// 10 miles
$radius = 10;

$query = sprintf("SELECT user_name, now, latitude, longitude, ( 3959 * acos( cos( radians('%s') ) *
cos( radians( latitude ) ) * cos( radians( longitude ) - radians('%s') ) + sin( radians('%s') ) *
sin( radians( latitude ) ) ) ) AS distance FROM plan HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($centerLat), mysql_real_escape_string($centerLong),
mysql_real_escape_string($centerLat), mysql_real_escape_string($radius));

$result = mysql_query($query);
friendsNearByMap.php (3)
// Iterate through the rows, print out details$i = 0;
while ($row = @mysql_fetch_assoc($result)){

      $nearbyUserName = $row['user_name'];

      $nearbyNow = $row['now'];

      $nearbyLatitude = $row['latitude'];

      $nearbyLongitude = $row['longitude'];

      $mapHTML = $mapHTML."n var latlng$i = new GLatLng($nearbyLatitude,$nearbyLongitude);";

      $mapHTML = $mapHTML."n var marker$i = createMarker(latlng$i, '$nearbyUserName', '$nearbyNow');";

      $mapHTML = $mapHTML."n map.addOverlay(marker$i);";

      $i++;
}
?>

      function createMarker(point, name, now) {

        var marker = new GMarker(point);

        var html = '<b>' + name + '</b> is now:<br/>' + now;

        GEvent.addListener(marker, 'click', function() {

          marker.openInfoWindowHtml(html);

        });

        return marker;

      } </script></head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 300px; height: 390px"></div>
  </body>
</html>

More Related Content

Similar to Geo search introduction

Geolocation on Rails
Geolocation on RailsGeolocation on Rails
Geolocation on Railsnebirhos
 
OSCON july 2011
OSCON july 2011OSCON july 2011
OSCON july 2011chelm
 
Geographical Data Management for Web Applications
Geographical Data Management for Web ApplicationsGeographical Data Management for Web Applications
Geographical Data Management for Web ApplicationsSymeon Papadopoulos
 
Introduction and Application of GIS
Introduction and Application of GISIntroduction and Application of GIS
Introduction and Application of GISSatish Taji
 
Geo distance search with my sql presentation
Geo distance search with my sql presentationGeo distance search with my sql presentation
Geo distance search with my sql presentationGSMboy
 
Geopy Module in Python
Geopy Module in PythonGeopy Module in Python
Geopy Module in PythonRabinaTwayana
 
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 WorldGIS in the Rockies
 
[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mappingIvano Malavolta
 
Geographic Information System unit 1
Geographic Information System   unit 1Geographic Information System   unit 1
Geographic Information System unit 1sridevi5983
 
Geo referencing by Mashhood Arif
Geo referencing by Mashhood ArifGeo referencing by Mashhood Arif
Geo referencing by Mashhood ArifKU Leuven
 
Differentiation between Global and Local Datum from Different aspect
Differentiation between Global and Local Datum from Different aspect Differentiation between Global and Local Datum from Different aspect
Differentiation between Global and Local Datum from Different aspect Nzar Braim
 

Similar to Geo search introduction (20)

Geolocation on Rails
Geolocation on RailsGeolocation on Rails
Geolocation on Rails
 
OSCON july 2011
OSCON july 2011OSCON july 2011
OSCON july 2011
 
Day 6 - PostGIS
Day 6 - PostGISDay 6 - PostGIS
Day 6 - PostGIS
 
Geographical Data Management for Web Applications
Geographical Data Management for Web ApplicationsGeographical Data Management for Web Applications
Geographical Data Management for Web Applications
 
Gis Concepts 3/5
Gis Concepts 3/5Gis Concepts 3/5
Gis Concepts 3/5
 
Introduction and Application of GIS
Introduction and Application of GISIntroduction and Application of GIS
Introduction and Application of GIS
 
Sample document
Sample documentSample document
Sample document
 
Geo distance search with my sql presentation
Geo distance search with my sql presentationGeo distance search with my sql presentation
Geo distance search with my sql presentation
 
Geopy Module in Python
Geopy Module in PythonGeopy Module in Python
Geopy Module in Python
 
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
 
Data collection
Data collectionData collection
Data collection
 
Geolocation and Mapping
Geolocation and MappingGeolocation and Mapping
Geolocation and Mapping
 
[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping
 
GIS
GISGIS
GIS
 
HOW TO CARRY OUT ROUTE SURVEY FOR FIBER PROJECT IMPLEMENTATION
HOW TO CARRY OUT  ROUTE SURVEY FOR FIBER PROJECT IMPLEMENTATIONHOW TO CARRY OUT  ROUTE SURVEY FOR FIBER PROJECT IMPLEMENTATION
HOW TO CARRY OUT ROUTE SURVEY FOR FIBER PROJECT IMPLEMENTATION
 
Assignment arc gis
Assignment arc gisAssignment arc gis
Assignment arc gis
 
Geographic Information System unit 1
Geographic Information System   unit 1Geographic Information System   unit 1
Geographic Information System unit 1
 
Fundamentals of GIS
Fundamentals of GISFundamentals of GIS
Fundamentals of GIS
 
Geo referencing by Mashhood Arif
Geo referencing by Mashhood ArifGeo referencing by Mashhood Arif
Geo referencing by Mashhood Arif
 
Differentiation between Global and Local Datum from Different aspect
Differentiation between Global and Local Datum from Different aspect Differentiation between Global and Local Datum from Different aspect
Differentiation between Global and Local Datum from Different aspect
 

More from kenshin03

Apple inc and Steve Jobs - a bit of history
Apple inc and Steve Jobs - a bit of historyApple inc and Steve Jobs - a bit of history
Apple inc and Steve Jobs - a bit of historykenshin03
 
Visualizing the Search Tail
Visualizing the Search TailVisualizing the Search Tail
Visualizing the Search Tailkenshin03
 
Good presentation styles
Good presentation stylesGood presentation styles
Good presentation styleskenshin03
 
Iphone os dev sharing with new examples
Iphone os dev sharing with new examplesIphone os dev sharing with new examples
Iphone os dev sharing with new exampleskenshin03
 
Css Primer - basic stuff
Css Primer - basic stuffCss Primer - basic stuff
Css Primer - basic stuffkenshin03
 
Search Monkey Overview
Search Monkey OverviewSearch Monkey Overview
Search Monkey Overviewkenshin03
 
Yahoo! Search Monkey in 3 slides
Yahoo! Search Monkey in 3 slidesYahoo! Search Monkey in 3 slides
Yahoo! Search Monkey in 3 slideskenshin03
 
iPhone SDK dev sharing - the very basics
iPhone SDK dev sharing - the very basicsiPhone SDK dev sharing - the very basics
iPhone SDK dev sharing - the very basicskenshin03
 

More from kenshin03 (8)

Apple inc and Steve Jobs - a bit of history
Apple inc and Steve Jobs - a bit of historyApple inc and Steve Jobs - a bit of history
Apple inc and Steve Jobs - a bit of history
 
Visualizing the Search Tail
Visualizing the Search TailVisualizing the Search Tail
Visualizing the Search Tail
 
Good presentation styles
Good presentation stylesGood presentation styles
Good presentation styles
 
Iphone os dev sharing with new examples
Iphone os dev sharing with new examplesIphone os dev sharing with new examples
Iphone os dev sharing with new examples
 
Css Primer - basic stuff
Css Primer - basic stuffCss Primer - basic stuff
Css Primer - basic stuff
 
Search Monkey Overview
Search Monkey OverviewSearch Monkey Overview
Search Monkey Overview
 
Yahoo! Search Monkey in 3 slides
Yahoo! Search Monkey in 3 slidesYahoo! Search Monkey in 3 slides
Yahoo! Search Monkey in 3 slides
 
iPhone SDK dev sharing - the very basics
iPhone SDK dev sharing - the very basicsiPhone SDK dev sharing - the very basics
iPhone SDK dev sharing - the very basics
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Geo search introduction