2012-03-10 2 views
0

DB에서 가져온 Dispensers 용 마커가있는지도를 만들려고합니다. 필자는이 작업을 성공적으로 수행 할 수 있지만, 마커를 클릭 할 때마다 정보 상자가 항상 동일한 마커 위에 나타납니다. CORRECT 디스펜서의 정보 상자가 맵에서 나타나지만 잘못 표시된 곳을지나갑니다! 이 문제를 겪는 사람이 있습니까? 내 컨트롤러에서지도 작성자가 올바른 정보 상자를 표시하지만 잘못된 마커를 통해

:

def find_map 

    @location = Location.new 
    @location.address = params[:location][:address] 
    @latlon = @location.geocode 
    @dispensers = Dispenser.near(@latlon) 
    @numrecords = 0 
    @lat = [] 
    @long = [] 
    @user_id = [] 
    @dispensers.each do |x| 
     @lat[@numrecords] = x.latitude 
     @long[@numrecords] = x.longitude 
     @user_id[@numrecords] = x.user_id 
     @numrecords += 1 
    end 

    @map = Cartographer::Gmap.new('map') 
    @map.zoom = :bound 
    @icon = Cartographer::Gicon.new() 
    @map.icons << @icon 

    @count = 0 
    @numrecords.times do 
     markername = "marker#{@count}" 
     markername = Cartographer::Gmarker.new(:name=> "Business", :marker_type => "Building", 
          :position => [@lat[@count], @long[@count]], 
          :info_window_url => "/bio/#{@user_id[@count]}", :icon => @icon) 

     @map.markers << markername 
     @count += 1 
    end 

내 show.html.erb

<%= raw Cartographer::Header.new.to_s %> 
    <%= raw @map.to_html %> 

    <div style="width:350px;height:250px;" id="map" > [Map]</div> 

답변

0

좋은 소식에, 나는 그것을 알아 냈다. 아래 코드에서 # {@ count} 을 비즈니스 이름에 추가해야했습니다 ... 마커 위치가 위치로 설정되어 있고 정보 상자 위치가 마커로 설정되어 있다고 가정합니다 same : name 속성, 루프에 의해 이라는 마지막 마커가 생성 된 것으로 추정됩니다.

감사합니다.

markername = Cartographer::Gmarker.new(:name=> "Business#{@count}", :marker_type => "Building", 
          :position => [@lat[@count], @long[@count]], 
          :info_window_url => "/bio/#{@user_id[@count]}", :icon => @icon)