2012-04-20 2 views
0

gmaps4 레일을 사용하여 사이트를 구축했으며 보석은 내 프로젝트에 추가되었습니다. 그러나 중첩 된 모델과 다각형을 사용하면 문제가 발생합니다.Gmaps4Rails 및 Custom/Nested Points 모델

나도 같은 것을 할 싶습니다 : Gmaps4rails custom info window with javascript content

모델 :

class Zone < ActiveRecord::Base 
    acts_as_gmappable 

    has_many :points, :as => :pointable 
    accepts_nested_attributes_for :points 

    def self.create_with_points(name, points) 
     zone = Zone.create(:name => name) 
     points.map { |point| zone.points.create(:latitude => point[0], 
               :longitude => point[1]) } 
     zone 
    end 

    def as_polygon_data 
     points.collect { |point| { "lat" => point.latitude.to_f, 
           "lng" => point.longitude.to_f, 
           "strokeColor" => "#EBAC2A", 
           "strokeOpacity" => 0.65, 
           "strokeWeight" => 2, 
           "fillColor" => "#606F81", 
           "fillOpacity" => 0.4 
           } } 
    end 

    def self.all_as_polygon_data 
     Zone.all.collect { |zone| zone.as_polygon_data } 
    end 
    end 

    class Point < ActiveRecord::Base 
    belongs_to :pointable, :polymorphic => :true 
    acts_as_gmappable 
    end 

컨트롤러의 영역을 호출하려면 내가 대신 to_gmaps4rails의 to_json로 전화를해야 :

@polygon_json = Zone.all_as_polygon_data.to_json 

지도에서 다각형이 완벽하게 렌더링되지만 정보 창을 추가 할 수 없습니다. 위에서 언급 한 게시물에서 클릭 이벤트 콜백을 시도했지만 나에게 적합하지 않았습니다.

확인란을 사용하여 숨길 수 있도록이 폴리곤을 어떻게 처리 할 수 ​​있는지 알고 싶습니다.

감사합니다. 잘만되면 나는 충분한 정보를 제공했다.

답변

2

but it did not work for me은별로 유용하지 않습니다.

문제점이 무엇인지 알 수 없습니다. js 오류가 있습니까?

Google js API 전체를 사용할 수 있습니다. 보석은 제동 장치가 아니며 단지 래퍼입니다.

  • 당신이보기에 전달하는 데이터 객체의 배열에 저장됩니다 :

    당신이 다각형과 상호 작용하려면

    Gmaps.map.polygons

  • 페이지로드는, 구글의 폴리곤이 생성되고, 내가 serviceObject이라고 부르는 대상에 저장됩니다.

요약하면 Gmaps.map.polygons[0].serviceObject은 자유롭게 상호 작용할 수있는 Google 폴리곤 개체입니다.

Google의 개체가 만들어 졌는지 확인하려면 gmaps4rails js 콜백에 사용자 지정 메서드를 삽입하십시오.

+0

나는 그 질문에 대해 충분한 정보를 제공하지 못했다는 것을 알았지 만, 며칠 동안 떨어져서 돌아갈 수 없었다. (나는 당신이 대답하는데 걸린 시간에 감사한다). 내가 원래의 질문을 썼을 때 나는 클릭 가능한 폴리곤을 구현하려고 시도하고 있었지만 더 많은 정보를 발견했다. 파이어 폭스의 폴리곤 요소를 검사 할 때 클릭 할 수 없다는 것을 보여 주지만 이상한 것은 내가 실행할 때이다. 로컬에서는 작동하지 않지만 배포하면 작동합니다! (나는이 동작을 Firefox와 Safari에서 모두 관찰했다.) –

+0

또한 gmaps4rails.base.js를 편집하여 클릭 가능한 속성을 다각형에 추가했습니다. –

+0

Passenger를 설치하고 Apache를 로컬에서 설정하면 (Mac의 경우) 다각형과 정보창이 작동합니다. –