Screencast: Geocoder

Geocoder ist ein Ruby-Gem mit welchem man geografischen Daten nutzen, Koordination finden, Abstände zwischen Orten und mehr in Ruby und Rails einsetzen kann. Ryan zeigt diese Woche wie es installiert und in einer Rails-App verwendet wird.

 

Downloads in verschiedenen Formaten:

source code
mp4
m4v
webm
ogv

 

Resourcen:

bash

[bash]
rails g nifty:scaffold location address:string latitude:float longitude:float
rake db:migrate
bundle
[/bash]

Gemfile

[ruby]
gem ‚geocoder‘
[/ruby]

models/location.rb

[ruby]
geocoded_by :address
after_validation :geocode, :if => :address_changed?
[/ruby]

locations_controller.rb

[ruby]
def index
if params[:search].present?
@locations = Location.near(params[:search], 50, :order => :distance)
else
@locations = Location.all
end
end
[/ruby]

locations/show.html.erb

[html]
<%= image_tag "http://maps.google.com/maps/api/staticmap?size=450×300&sensor=false&zoom=16&markers=#{@location.latitude}%2C#{@location.longitude}" %>

<h3>Nearby locations</h3>
<ul>
<% for location in @location.nearbys(10) %>
<li><%= link_to location.address, location %> (<%= location.distance.round(2) %> miles)</li>
<% end %>
</ul>
[/html]

locations/index.html.erb

[html]
<%= form_tag locations_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Near", :name => nil %>
</p>
<% end %>
[/html]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.