quinta-feira, 22 de janeiro de 2009

Como pegar o Geocode no YM4R?

Esses dias estive testando algumas funcionalidades do YM4R e dentre elas eu precisava fazer algo que me retornasse a posição global (latitude e longitude) de um determinado local, além de quando reposicionado o marcador o mesmo me retornasse o novo geocode.

Bem, para isso depois de fuçar alguns blogs e sites e juntar algumas coisas que eu já tinha visto cheguei ao exemplo abaixo.

1) Coloque isso no controller:




def index
@map = GMap.new("map_div")
@map.control_init(:large_map => true, :map_type => true, :local_search => true)

results = Geocoding::get("Paulo Afonso - BA, BRA")
if results.status == Geocoding::GEO_SUCCESS
@coord = results[0].latlon
@marker = GMarker.new(@coord,:info_window => "Cidade Paulo Afonso", :draggable => true)
@map.declare_init(@marker, "marker_var_name")
@map.event_init(@marker, :dragend,"function(){var x = document.getElementById('novalatlong'); x.innerHTML = marker_var_name.getPoint();}")
@map.overlay_init(@marker)
end

@map.center_zoom_init(@coord,10)

end




2) Coloque isso na View





# Isso na head

<%= GMap.header(:local_search => true) %>
<%= @map.to_html %>

# Isso no body

<%= @coord %>
<%= @map.div(:width => 600, :height => 400) %>

# coloque também uma DIV com o id="novalatlong"




É isso, acho que com esse exemplo já dá pra desenrolar o restante! ;)

Ahhh... e pra quem ainda não fez nada com o YM4R o amigo Luiz Carvalho fez um ótimo tutorial ensinando os primeiros passos.

[]'s

2 comentários:

leandro disse...

Opa,Jackson tem como enviar o arquivo do exemplo utilizando o ym4r e o geocode, para mim fazer alguns testes, aqui? Adorei o seu tutorial!!! ate

.::JACK::. disse...

Olá Leandro,

Eu estou viajando. Só chego na minha cidade dia 31/07.

Me manda um email nessa época que envio pra vc. jackson.pires 0 gmail ponto com.

vlw!