GEOLOCALIZACIÓN
           CON SOFTWARE LIBRE




              Luis Antonio Burbano
                      tonny@coplec.org

@tonny
@tonnyec
         21/10/2011
Acerca de ...
Breve presentación



 ●
  Presidente de ASLE                 www.asle.ec
 ●
  Fundador de COPLEC.org             www.coplec.org
 ●
  OSM Contributor
 ●
  Desarrollador de software
 ●
  Usuario de software libre
AGENDA


    Geolocalización


    Como usarla


    Herramientas


    Cartografía
GEOLOCALIZACIÓN

    Termino nuevo


    Conjunto de tecnologías que utilizan la
    georeferenciación de elementos y tecnologías
    de internet.


    Capacidad de determinar la ubicación de un
    dispositivo automáticamente.


    Ventajas, desventajas o riesgos
¿Como usarla, que necesito?


    Dispositivo de hardware


    Software de tratamiento


    Conexión a Internet (opcional)
Tecnologías


    GPS (1m y 15m)


    Redes WI-FI (30m y 100m)


    Redes de telefonía móvil (50m y 500m urbano)


    Direcciones IP
¿Donde lo usan?


    Redes Sociales y Sitios Web
    Google Maps, Google Latitude, Facebook,
    Street View

    Navegadores GPS
    Waze, Navit, OVI Maps

    Trazado de Rutas (trackers)

    Localización de vehículos

    Estadísticas con datos de Redes Sociales
¿Como usarla?


    Geolocalización por IP
    http://www.maxmind.com/
    PHP Example
    $query = "http://geoip3.maxmind.com/a?l=" . $license_key . "&i=" . $ipaddress;
    $url = parse_url($query);
    $host = $url["host"];
    $path = $url["path"] . "?" . $url["query"];
    $timeout = 1;
    $fp = fsockopen ($host, 80, $errno, $errstr, $timeout);
    if ($fp) {
      fputs ($fp, "GET $path HTTP/1.0nHost: " . $host . "nn");
      while (!feof($fp)) {
        $buf .= fgets($fp, 128);
      }
      $lines = explode("n", $buf);
      $country = $lines[count($lines)-1];
      fclose($fp);
    } else {
      # enter error handing code here
    }
    echo $country;
Geolocalización por IP
http://www.maxmind.com/
http://software77.net/geo-ip/
   PHP Example
   $query = "http://geoip3.maxmind.com/a?l=" . $license_key . "&i=" . $ipaddress;
   $url = parse_url($query);
   $host = $url["host"];
   $path = $url["path"] . "?" . $url["query"];
   $timeout = 1;
   $fp = fsockopen ($host, 80, $errno, $errstr, $timeout);
   if ($fp) {
     fputs ($fp, "GET $path HTTP/1.0nHost: " . $host . "nn");
     while (!feof($fp)) {
       $buf .= fgets($fp, 128);
     }
     $lines = explode("n", $buf);
     $country = $lines[count($lines)-1];
     fclose($fp);
   } else {
     # enter error handing code here
   }
   echo $country;
Flagfox
AWstats


    Herramienta de informes de análisis web
Geolocalización por WI-FI


    http://samy.pl/mapxss/

    HTML5
Geolocalización por REDES de
           telefonía móvil

     OpenCellID

     http://opencellid.org/

     http://opencellid.org/cell/map



    API
    http://www.opencellid.org/cell/get?
    key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0
Geolocalización con GPS


    Smartphones, tablets, camaras, etc.
      private void comenzarLocalizacion()
      {
        locManager =
          (LocationManager)getSystemService(Context.LOCATION_SERVICE);

          //Obtenemos la última posición conocida
          Location loc =
            locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

          //Mostramos la última posición conocida
          mostrarPosicion(loc);

          //Nos registramos para recibir actualizaciones de la posición
          locListener = new LocationListener() {
             public void onLocationChanged(Location location) {
               mostrarPosicion(location);
             }
          };

          locManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 30000, 0, locListener);
      }
Visualizar


    OpenLayers


    Mapfish


    GeoDjango


    MapServer
OpenLayers

    Libreria Javascript para visualizar mapas

     Web Map Service

     Web Feature Service

     Google Maps

     OpenStreetMap

     Virtual Earth

    Yahoo! Maps

     UMN MapServer

     MapGuide Open Source

     GeoServer

     ArcGIS Server
Mapfish


    Framework Web Mapping, usa OpenLayers,
    ExtJS, GeoExt, escrito en python. (geoportales)
Cartografía


    Google Maps

    Yahoo Maps

    Bing Maps

    OpenStreetMaps OSM

    Cartografía propia
OpenStreetMaps


    OpenStreetMap (también conocido como
    OSM) es un proyecto colaborativo para crear
    mapas libres y editables.

    Los mapas se crean utilizando información
    geográfica capturada con dispositivos GPS
    móviles, ortofotografías y otras fuentes libres.

    Esta cartografía, tanto las imágenes creadas
    como los datos vectoriales almacenados en su
    base de datos, se distribuye bajo licencia
    Creative Commons Attribution-ShareAlike 2.0
                                          Fuente:wikipedia
¿Y por qué no utilizo Google Maps
         para mis datos?

    Debido a que los datos están protegidos bajo
    derechos de autor y de propiedad de
    instituciones como el Instituto Geográfico
    Nacional u otras. Google/cualquiera posee su
    licencia. Si nosotros lo utilizamos deberemos
    pagar por ello.
Y el resto ?


    Yahoo

    Bing


      Tanto Yahoo como Bing han llegado a un
     acuerdo con OpenStreetMap para permitir
            usar sus fotografías aéreas.
     Pero igualmente tienen restricciones de uso
Mas sobre OSM


    En febrero de 2011 el proyecto alcanzaba los
    350.000 usuarios registrados, de los cuales en
    torno a 12.000 realizan alguna edición en la
    base de datos cada mes.

    El número de usuarios suele doblarse cada
    cinco meses.

    Los usuarios registrados pueden subir sus
    trazas desde el GPS y crear y corregir datos
    vectoriales mediante herramientas de edición
    creadas por la comunidad OpenStreetMap.
Aplicaciones de OSM


    Mapas en Línea


    Cálculo de Rutas y Navegación


    Software Cartográfico          (planet.osm)




    http://wiki.openstreetmap.org/wiki/Software/Desktop
Herramientas de Edición


    Potlach (Flash)


    JOSM (Java)


    Merkaartor (QT)
Navit


    Sistema de navegación vehicular

    Soporte GPS

    Vista 3D

    Touch Screen

    Plugins

    Datos Vectoriales de varias fuentes

    Multiplataforma: GNU/Linux, Windows,
    Windows CE, Android, WebOS
Navit
Navit
Comunidades de Software Libre
        en Ecuador

    Asociación de Software Libre del Ecuador
    www.asle.ec
   GNU/Linux y Software Libre
      www.ecualug.org
      www.openecuador.org
      www.nuevared.org/equinux
   Desarrollo de Software Libre
      www.coplec.org
Presentación hecha 100% con Software Libre

Geolocalización con Software Libre

  • 1.
    GEOLOCALIZACIÓN CON SOFTWARE LIBRE Luis Antonio Burbano tonny@coplec.org @tonny @tonnyec 21/10/2011
  • 2.
    Acerca de ... Brevepresentación ● Presidente de ASLE www.asle.ec ● Fundador de COPLEC.org www.coplec.org ● OSM Contributor ● Desarrollador de software ● Usuario de software libre
  • 3.
    AGENDA  Geolocalización  Como usarla  Herramientas  Cartografía
  • 4.
    GEOLOCALIZACIÓN  Termino nuevo  Conjunto de tecnologías que utilizan la georeferenciación de elementos y tecnologías de internet.  Capacidad de determinar la ubicación de un dispositivo automáticamente.  Ventajas, desventajas o riesgos
  • 5.
    ¿Como usarla, quenecesito?  Dispositivo de hardware  Software de tratamiento  Conexión a Internet (opcional)
  • 6.
    Tecnologías  GPS (1m y 15m)  Redes WI-FI (30m y 100m)  Redes de telefonía móvil (50m y 500m urbano)  Direcciones IP
  • 7.
    ¿Donde lo usan?  Redes Sociales y Sitios Web Google Maps, Google Latitude, Facebook, Street View  Navegadores GPS Waze, Navit, OVI Maps  Trazado de Rutas (trackers)  Localización de vehículos  Estadísticas con datos de Redes Sociales
  • 8.
    ¿Como usarla?  Geolocalización por IP http://www.maxmind.com/ PHP Example $query = "http://geoip3.maxmind.com/a?l=" . $license_key . "&i=" . $ipaddress; $url = parse_url($query); $host = $url["host"]; $path = $url["path"] . "?" . $url["query"]; $timeout = 1; $fp = fsockopen ($host, 80, $errno, $errstr, $timeout); if ($fp) { fputs ($fp, "GET $path HTTP/1.0nHost: " . $host . "nn"); while (!feof($fp)) { $buf .= fgets($fp, 128); } $lines = explode("n", $buf); $country = $lines[count($lines)-1]; fclose($fp); } else { # enter error handing code here } echo $country;
  • 9.
    Geolocalización por IP http://www.maxmind.com/ http://software77.net/geo-ip/ PHP Example $query = "http://geoip3.maxmind.com/a?l=" . $license_key . "&i=" . $ipaddress; $url = parse_url($query); $host = $url["host"]; $path = $url["path"] . "?" . $url["query"]; $timeout = 1; $fp = fsockopen ($host, 80, $errno, $errstr, $timeout); if ($fp) { fputs ($fp, "GET $path HTTP/1.0nHost: " . $host . "nn"); while (!feof($fp)) { $buf .= fgets($fp, 128); } $lines = explode("n", $buf); $country = $lines[count($lines)-1]; fclose($fp); } else { # enter error handing code here } echo $country;
  • 10.
  • 11.
    AWstats  Herramienta de informes de análisis web
  • 12.
    Geolocalización por WI-FI  http://samy.pl/mapxss/  HTML5
  • 13.
    Geolocalización por REDESde telefonía móvil  OpenCellID  http://opencellid.org/  http://opencellid.org/cell/map API http://www.opencellid.org/cell/get? key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0
  • 14.
    Geolocalización con GPS  Smartphones, tablets, camaras, etc. private void comenzarLocalizacion() { locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //Obtenemos la última posición conocida Location loc = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); //Mostramos la última posición conocida mostrarPosicion(loc); //Nos registramos para recibir actualizaciones de la posición locListener = new LocationListener() { public void onLocationChanged(Location location) { mostrarPosicion(location); } }; locManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 30000, 0, locListener); }
  • 15.
    Visualizar  OpenLayers  Mapfish  GeoDjango  MapServer
  • 16.
    OpenLayers  Libreria Javascript para visualizar mapas  Web Map Service  Web Feature Service  Google Maps  OpenStreetMap  Virtual Earth  Yahoo! Maps  UMN MapServer  MapGuide Open Source  GeoServer  ArcGIS Server
  • 17.
    Mapfish  Framework Web Mapping, usa OpenLayers, ExtJS, GeoExt, escrito en python. (geoportales)
  • 18.
    Cartografía  Google Maps  Yahoo Maps  Bing Maps  OpenStreetMaps OSM  Cartografía propia
  • 19.
    OpenStreetMaps  OpenStreetMap (también conocido como OSM) es un proyecto colaborativo para crear mapas libres y editables.  Los mapas se crean utilizando información geográfica capturada con dispositivos GPS móviles, ortofotografías y otras fuentes libres.  Esta cartografía, tanto las imágenes creadas como los datos vectoriales almacenados en su base de datos, se distribuye bajo licencia Creative Commons Attribution-ShareAlike 2.0 Fuente:wikipedia
  • 20.
    ¿Y por quéno utilizo Google Maps para mis datos?  Debido a que los datos están protegidos bajo derechos de autor y de propiedad de instituciones como el Instituto Geográfico Nacional u otras. Google/cualquiera posee su licencia. Si nosotros lo utilizamos deberemos pagar por ello.
  • 21.
    Y el resto?  Yahoo  Bing Tanto Yahoo como Bing han llegado a un acuerdo con OpenStreetMap para permitir usar sus fotografías aéreas. Pero igualmente tienen restricciones de uso
  • 22.
    Mas sobre OSM  En febrero de 2011 el proyecto alcanzaba los 350.000 usuarios registrados, de los cuales en torno a 12.000 realizan alguna edición en la base de datos cada mes.  El número de usuarios suele doblarse cada cinco meses.  Los usuarios registrados pueden subir sus trazas desde el GPS y crear y corregir datos vectoriales mediante herramientas de edición creadas por la comunidad OpenStreetMap.
  • 23.
    Aplicaciones de OSM  Mapas en Línea  Cálculo de Rutas y Navegación  Software Cartográfico (planet.osm) http://wiki.openstreetmap.org/wiki/Software/Desktop
  • 24.
    Herramientas de Edición  Potlach (Flash)  JOSM (Java)  Merkaartor (QT)
  • 25.
    Navit  Sistema de navegación vehicular  Soporte GPS  Vista 3D  Touch Screen  Plugins  Datos Vectoriales de varias fuentes  Multiplataforma: GNU/Linux, Windows, Windows CE, Android, WebOS
  • 26.
  • 27.
  • 28.
    Comunidades de SoftwareLibre en Ecuador  Asociación de Software Libre del Ecuador www.asle.ec  GNU/Linux y Software Libre www.ecualug.org www.openecuador.org www.nuevared.org/equinux  Desarrollo de Software Libre www.coplec.org
  • 29.
    Presentación hecha 100%con Software Libre