Geocoder (Ruby) es una biblioteca de geocodificación para Ruby . La geocodificación ayuda a mejorar las páginas web al presentar información relevante sobre la ubicación al usuario. Cuando se usa con Rails , Geocoder agrega funcionalidad de geocodificación, como encontrar coordenadas con direcciones postales o viceversa, además de cálculos de distancia para objetos ActiveRecord . [ 1 ] Dado que la funcionalidad no depende de funciones de base de datos propietarias, encontrar diferentes objetos geocodificados en un área funciona directamente para bases de datos como MySQL , PostgreSQL y SQLite . [ 1 ]
Compatibilidad
Geocoder ha sido probado exhaustivamente con Ruby 1.8.7, 1.9.2 y JRuby 1.5.3. [ 1 ]
Geocoder es compatible con Rails 3, pero su funcionalidad es limitada con Rails 2. [ 1 ]
Instalación
Los requisitos previos para instalar Geocoder son Ruby y RubyGems .
La gema Geocoder se puede instalar con el siguiente comando:
gem install geocoder
O bien, si estás usando Bundler para Rails, puedes agregar esto a tu Gemfile : [ 1 ]
gema 'geocodificador'
y ejecutar en el símbolo del sistema : [ 2 ]
instalación del paquete
También se puede usar como un complemento con Rails: [ 1 ]
Instalación del plugin de Rails git://github.com/alexreisner/geocoder.git
Configuración
Para utilizar Geocoder con objetos, el proyecto debe configurarse de la siguiente manera:
Atributos requeridos
Registro activo
Para utilizar la geocodificación con objetos ActiveRecord , estos deben tener dos atributos adicionales: coordenadas de latitud y longitud . [ 1 ] Al almacenarse en la tabla, deben llamarse latitud y longitud, pero pueden modificarse como se explica a continuación. Al utilizar la geocodificación inversa (traducir las coordenadas de ubicación de un usuario a una dirección física), el modelo debe implementar un método que devuelva una dirección. [ 3 ] La dirección puede ser un único atributo; sin embargo, también puede ser un método que devuelva una cadena compuesta a partir de diferentes atributos, como ciudad, estado y país. [ 1 ]
Mongoide
Al usar Mongoid , el modelo solo necesita agregar la dirección, la latitud y la longitud como campos. El modelo también debe incluir Geocoder::Model::Mongoid antes de realizar cualquier llamada al método geocoded_by :. [ 1 ]
Comportamiento del modelo
En el modelo de Rails , se debe indicar a Geocoder qué método devuelve la dirección completa del objeto: [ 1 ]
geocoded_by :full_street_address # también puede ser una dirección IP after_validation :geocode # obtención automática de coordenadasPara la geocodificación inversa, Geocoder debe saber qué método devuelve las coordenadas de latitud y longitud. Si no se proporciona la opción :address, obtiene la dirección automáticamente en el atributo address. De lo contrario, obtiene la dirección en el atributo location como en el ejemplo que se muestra a continuación. [ 1 ]
reverse_geocoded_by :latitude , :longitude , :address => :location after_validation : reverse_geocode # obtención automática de la direcciónEs posible realizar geocodificación directa e inversa en el mismo modelo. [ 1 ]
geocodificado_por :dirección geocodificado_inverso_por :latitud , :longitud después_de_la_validación :geocodificar , :geocodificar_inversoPara utilizar nombres diferentes para latitud y longitud en el modelo, se puede realizar el siguiente cambio al implementar geocoded_by: [ 1 ]
geocodificado_por :dirección , :latitud => :lat , :longitud => :lonAdemás, el método address puede devolver cualquier cadena que se usaría para buscar en Google Maps . [ 1 ] Cualquiera de los siguientes ejemplos funcionará:
- "123 Sample St, Nueva York, NY"
- " Torre Eiffel , París, Francia"
- " Raleigh , Carolina del Norte, EE. UU."
Servicios
Por defecto, Geocoder utiliza la API de geocodificación de Google para obtener direcciones y coordenadas. Actualmente, se admiten los siguientes servicios de geocodificación de direcciones:
Ejemplos
Aquí hay algunos ejemplos [ 5 ] para demostrar la funcionalidad del geocodificador:
Hotel cerca de Raleigh, Carolina del Norte .Encuentra hoteles cerca de Raleigh.
@restaurant . distancia_a ( "Empire State Building" )Calcula la distancia desde @restaurant hasta el Empire State Building.
Aplicaciones
- Los desarrolladores también pueden usar Geocoder para convertir la dirección IP de un usuario a su ubicación geográfica. Al realizar dicha conversión, es posible ofrecer al usuario contenido relevante para su ubicación actual sin necesidad de solicitarla previamente. [ 6 ]
- Puede utilizarse para análisis geoespaciales con el fin de reconocer patrones en la información. Esto resulta muy útil en aplicaciones de minería de datos.
- Las herramientas SIG basadas en la web, como Google Maps, Yahoo Maps, etc., incluyen funcionalidad de geocodificación.
Referencias
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 "Archivo: README — Documentación para rails-geocoder (0.9.11)" . www.rubydoc.info . Consultado el 31-01-2016 .
- ↑ "alexreisner/geocoder: Solución completa de geocodificación en Ruby" . www.github.com .
- 1 2 "La API de geocodificación de Google Maps" . Google Developers . Consultado el 13 de febrero de 2016 .
- ↑ "Yahoo BOSS Geo Services" . developer.yahoo.com . Consultado el 13 de febrero de 2016 .
- ↑ "Ruby Geocoder" . www.rubygeocoder.com . Consultado el 31 de enero de 2016 .
- ↑ "Buscar por ubicación con Geocoder" . synbioz.com . Consultado el 7 de febrero de 2016 .
Enlaces externos
- Sitio web oficial
- Geocodificador en GitHub
- Programación informática
- Software libre programado en Ruby
- Software que utiliza la licencia MIT.