SlideShare una empresa de Scribd logo
1 de 50
Geo On Rails
Um guia para manter o seu cabelo.


          por @guivinicius
whoami

Guilherme || Harry


Desenvolvedor na
Novakoasin


Um dos fundadores do
GURU Sorocaba
whoami

Guilherme || Harry


Desenvolvedor na
Novakoasin


Um dos fundadores do
GURU Sorocaba
Motivo
Motivo
Motivo
Motivo
Motivo
Motivo
Objetivo



Dar uma visão e as ferramentas para um estudo
                  detalhado.
Metas

- Explicar os termos

- Mostrar ferramentas para Ruby / Rails

- Um pouco código.
Programação Espacial
Programação Espacial
Programação Espacial
Programação Espacial


Tratar espaços e objetos físicos no contexto de
                programação.


    Interação e relacionamento entre esses
                 objetos físicos.
Programação Espacial

Me ache as linhas de ônibus que coincidam o
trajeto em uma percentagem maior que 60%.


Me retorne todos os veículos que passaram num
raio de 10km da usina nuclear XYZ no dia
10/11/2012.
Termos Importantes
GIS: Geographical Information System

Layers: Camadas

WMS: Web Mapping Service.

Projeção: Representação plana do globo.

Geometria: Tipo de dados em um GIS.
GIS
Sistemas que representam dados geográficos.
GIS
Sistemas que representam dados geográficos.
Layers


Camadas que podem
  agrupar dados.


     RASTER


     VECTOR
Layers
WMS

http://openstreetmap.org
WMS

http://worldwind.arc.nasa.gov/java/
WMS

http://maps.yahoo.com/
WMS

http://br.bing.com/maps/
WMS

http://www.mapmatters.org/

            ou

         Mapserver
   http://mapserver.org/

            ou
 $$ Soluções Privadas $$
Projeções

Meio de representar uma superfície esférica (Terra) em
               uma superfície plana.
Projeções
Projeções

SRID: Como a projeção é identificada dentro de um
banco espacial. (System Reference ID)



      EPSG: 4326 / EPSG: 900913 (Google)



           http://spatialreference.org/
Geometrias

Point       Line        Polygon


 •



          Multiline   Multipolygon
Geometrias

Geometry Collection

          •
      •
Geometrias

Formato de dados mais utilizados.


 ESRI Shapefile                      Mapinfo

 .shp .shx .dbf                      .tab



Contém geometrias e muitas outras informações,
como índices e etc.
Ferramentas

Bancos da Dados

- PostgreSQL + PostGIS
- MongoDB
- MySQL
- Oracle Spatial
Ferramentas

Bancos da Dados          the best

- PostgreSQL + PostGIS
- MongoDB
- MySQL
- Oracle Spatial
Ferramentas

Bancos da Dados                   the best

- PostgreSQL + PostGIS
- MongoDB
- MySQL
- Oracle Spatial


  *PostGIS é uma extensão para o PostgreSQL que adiciona
                   habilidades espaciais.
Ferramentas

         O que eles fazem de diferente ?

• Habilidade de armazenar geometrias nas tabelas.


• Disponibiliza funções espaciais como distance() ou
intersection()


• Implementa índices espaciais.
Ferramentas

                     Ruby Gems


- RGeo                           - Ruby geocoder
- RGeo-geojson                   - Squeel
- RGeo-shapefile
- ffi-geos

- GeoRuby
- SpatialAdapter
Ferramentas

     Client-side

http://openlayers.org/
Ferramentas
           Client-side Heatmaps



https://github.com/pa7/heatmap.js

https://github.com/dazuma/thermo.js

https://github.com/sunng87/heatcanvas
Ferramentas
Ferramentas
http://www.qgis.org/
Ferramentas

              http://mapserver.org/
    Publicar dados espaciais na web, criar seu
                 próprio WMS.



            http://www.pgrouting.org/
Estende o PostgreSQL + PostGIS para algoritmos de
                  roteamento.
Meu ‘stack’ atual




          OpenLayers


    GeoRuby + SpatialAdapter
           Mapserver

PostgreSQL + PostGIS + PgRouting
Código !!




gemfile
Código !!


database.yml




* Documentado na gem activerecord-postgis-adapter
Código !!


                                              tipo point!




<RGeo::Geographic::SphericalPointImpl:0x806532d8 "POINT
(-47.45590989999999 -23.5062288)">
Código !!




p1.latlon.distance(p2.latlon)
=> 3802.0170205027907 (miles)
Pra onde ir daqui.




• Instale alguns bancos espaciais (PostgreSQL)

• gem install nas gems mencionadas.

• Crie uma app Rails e com objetos espaciais

• Utilize o OpenLayers e mostre alguns dados.
Fontes de dados.



http://www.naturalearthdata.com/downloads/

http://geocommons.com/

http://dados.gov.br/

http://www.ibge.gov.br/mapas_ibge/bases.php
Obrigado!



Perguntas ?

 @guivinicius
@gurusorocaba

Más contenido relacionado

Similar a Geo On Rails: Um guia para manter o seu cabelo

As geotecnologias mais populares do mercado
As geotecnologias mais populares do mercadoAs geotecnologias mais populares do mercado
As geotecnologias mais populares do mercadoGeoLivre Conference
 
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...Narcélio de Sá
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Operações com dados espaciais (Vetor) em R
Operações com dados espaciais (Vetor) em ROperações com dados espaciais (Vetor) em R
Operações com dados espaciais (Vetor) em RVitor Vieira Vasconcelos
 
Atividade prática - Introdução ao QGis, parte 1
Atividade prática - Introdução ao QGis, parte 1Atividade prática - Introdução ao QGis, parte 1
Atividade prática - Introdução ao QGis, parte 1Vitor Vieira Vasconcelos
 
Garinpando no MongoDB sem picareta e com elegância
Garinpando no MongoDB sem picareta e com elegânciaGarinpando no MongoDB sem picareta e com elegância
Garinpando no MongoDB sem picareta e com elegânciaCaliel Costa
 
Regionalização - Método Skater - TerraView
Regionalização - Método Skater - TerraViewRegionalização - Método Skater - TerraView
Regionalização - Método Skater - TerraViewVitor Vieira Vasconcelos
 
OpenStreetMap : como usar e contribuir num mapa Wiki mundial
OpenStreetMap : como usar e contribuir num mapa Wiki mundialOpenStreetMap : como usar e contribuir num mapa Wiki mundial
OpenStreetMap : como usar e contribuir num mapa Wiki mundialSeverin Menard
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...Carlos A. Junior Spohr Poletto
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopBig Data Week São Paulo
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 
Sql4 devs geodatabases
Sql4 devs geodatabasesSql4 devs geodatabases
Sql4 devs geodatabasesResource IT
 
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentação
Utilizando GeoTools para Manipulação de Dados Geográficos - ApresentaçãoUtilizando GeoTools para Manipulação de Dados Geográficos - Apresentação
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentaçãopcollares
 
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...Filipe Aguilar Santana
 
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#Dextra Sistemas / Etec Itu
 
CouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsCouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsJuan Maiz
 
CouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsCouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsJohalf Farina
 

Similar a Geo On Rails: Um guia para manter o seu cabelo (20)

As geotecnologias mais populares do mercado
As geotecnologias mais populares do mercadoAs geotecnologias mais populares do mercado
As geotecnologias mais populares do mercado
 
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...
 
Rss
RssRss
Rss
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Operações com dados espaciais (Vetor) em R
Operações com dados espaciais (Vetor) em ROperações com dados espaciais (Vetor) em R
Operações com dados espaciais (Vetor) em R
 
Atividade prática - Introdução ao QGis, parte 1
Atividade prática - Introdução ao QGis, parte 1Atividade prática - Introdução ao QGis, parte 1
Atividade prática - Introdução ao QGis, parte 1
 
Garinpando no MongoDB sem picareta e com elegância
Garinpando no MongoDB sem picareta e com elegânciaGarinpando no MongoDB sem picareta e com elegância
Garinpando no MongoDB sem picareta e com elegância
 
Regionalização - Método Skater - TerraView
Regionalização - Método Skater - TerraViewRegionalização - Método Skater - TerraView
Regionalização - Método Skater - TerraView
 
OpenStreetMap : como usar e contribuir num mapa Wiki mundial
OpenStreetMap : como usar e contribuir num mapa Wiki mundialOpenStreetMap : como usar e contribuir num mapa Wiki mundial
OpenStreetMap : como usar e contribuir num mapa Wiki mundial
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no Hadoop
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 
Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0
 
Sql4 devs geodatabases
Sql4 devs geodatabasesSql4 devs geodatabases
Sql4 devs geodatabases
 
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentação
Utilizando GeoTools para Manipulação de Dados Geográficos - ApresentaçãoUtilizando GeoTools para Manipulação de Dados Geográficos - Apresentação
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentação
 
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
 
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#
Tdc - Criando uma Minimal API para serviços de Geolocalização com SQL + C#
 
CouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsCouchDB vs Postgres em Rails
CouchDB vs Postgres em Rails
 
CouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsCouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no Rails
 

Geo On Rails: Um guia para manter o seu cabelo

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n