2

プロジェクトでgmaps4railsを動作させていますが、情報ウィンドウのアスペクトをカスタマイズするのに苦労しています。私はwikiにあるチュートリアルに従いましたが、経験の浅いJSプログラマーである私にとって少し混乱しているInfoBoxのコールバック部分を除いてほとんど理解しています。マーカーをクリックすると、「x」(閉じる)ボタンしか表示されませんが、テキストが表示されず、期待どおりの色になりません。これが私のコードです:

post.rb:

def gmaps4rails_infowindow
  # add here whatever html content you desire, it will be displayed when users clicks on the marker
  "<h4>#{self.title}</h4>"
end

post.js.coffee:

Gmaps.map.infobox = (boxText) ->
  content: boxText
  disableAutoPan: false
  maxWidth: 0
  pixelOffset: new google.maps.Size(-140, 0)
  zIndex: null
  boxStyle:
    background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat"
    opacity: 0.75
    width: "280px"

  closeBoxMargin: "10px 2px 2px 2px"
  closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
  infoBoxClearance: new google.maps.Size(1, 1)
  isHidden: false
  pane: "floatPane"
  enableEventPropagation: false

gmaps4rails.cssで

.yellow { border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px; }

私からしてみれば:

= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "yellow" } })

地図を扱うのは初めてなので、誰かが私を正しい方向に向けてくれると本当にありがたいです。前もって感謝します!

編集:

私の結果:

http://postimage.org/image/45feoz3kl/

編集2:

私はあなたを虐待したくありませんが、何が起こっているのかを理解したら、私は自分で良くなるでしょう、今のところそれは最悪です。今ではレンダリングすらできず、たくさんのエラーが発生しています。これは私のコードです:

= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "yellow" } })
- content_for :scripts
  :javascript
    Gmaps.map.infobox = function(boxText) {
      return {
        content: boxText
        ,disableAutoPan: false
        ,maxWidth: 0
        ,pixelOffset: new google.maps.Size(-140, 0)
        ,zIndex: null
        ,boxStyle: {
          background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat"
          ,opacity: 0.75
          ,width: "280px"
          }
        ,closeBoxMargin: "10px 2px 2px 2px"
        ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
        ,infoBoxClearance: new google.maps.Size(1, 1)
        ,isHidden: false
        ,pane: "floatPane"
        ,enableEventPropagation: false
    }};

エラー:

returnステートメントの行に「予期しないkeyword_ensure、$endが必要です」。

4

1 に答える 1

4

いくつかのコメントの後、私はついに理解しました(結局それは明白でしたが...):

Gmaps.mapページが読み込まれるときにオンザフライで作成されます。したがって、このオブジェクトにプロパティを追加する場合は常に、呼び出しで、に追加する必要があります。gmapscontent_for :scripts

あなたのコードで:

= gmaps()

- content_for :scripts do
  :javascript
    Gmaps.map.infobox = function(....
于 2012-05-29T19:40:18.533 に答える