2012-07-06 62 views
1

有沒有人想過如何將雄蕊磚與Gmaps4rails整合?這有點令人困惑,因爲google.maps沒有在Gmaps4Rails gem中顯式調用。會喜歡關於如何掛鉤所需信息的任何建議。Gmaps4Rails與雄蕊地圖的整合

回答

1

我發現了一種(粗糙的)方法來創建一個使用gmaps4rails的OSM瓷磚的滑動地圖。通過它的外觀,它應該更容易與雄蕊地圖。您可能會發現一些提示如何讓寶石看着我的解決方案:Slippy maps for gmaps4rails

我之前沒有遇到過雄蕊地圖。他們看起來很棒。令人遺憾的是地形圖在歐洲不可用。我明天會玩,看看能不能找出更多。

編輯:

gmaps4rails.base.js.coffee添加這個方法:

#creates a Stamen Map layer with the mapTypeId "toner" 
createStamenMap : -> 
    StamenMapTypeOptions = new google.maps.ImageMapType(
    getTileUrl: (coord, zoom) -> 
     "http://tile.stamen.com/toner/" + zoom + "/" + coord.x + "/" + coord.y + ".png" 
    tileSize: new google.maps.Size(256, 256) 
    name: "toner" 
    maxZoom: 18 
) 
    @serviceObject.mapTypes.set("toner", StamenMapTypeOptions) 
    @serviceObject.setMapTypeId("toner") 

如果你想水彩或需要交換的地形無論它說toner你喜歡什麼(包括在TileUrl!)。

js_builder.rb呼叫添加到您的方法,這樣

@js << "#{gmap_id}.createStamenMap();"

只是 @js << "#{gmap_id}.initialize();"

如果你使用RVM像我js_builder.rb不會在你的應用程序目錄,對我來說這是在/Users/<username>/.rvm/gems/ruby-1.9.3-p194/gems/gmaps4rails-1.5.2

最後,更改您的視圖代碼:

<%= gmaps("markers" => {"data" => @json}, 
       "map_options" => {"type" => "TERRAIN", :raw => '{mapTypeControlOptions: {mapTypeIds: ["toner", google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN], style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}}'}) %> 

我肯定是有更漂亮的做法,但它似乎工作。

+0

感謝您的回答。我實際上已經結束了刪除gmaps4rails,只是用手寫出js,這看起來更簡單一些。你認爲這個寶石是值得的嗎?我沒有看到使用它的任何好處.. – hankang 2012-07-13 04:33:44