有没有人想出如何将Stamen瓷砖与Gmaps4rails集成?由于未在Gmaps4Rails gem中显式调用google.maps,因此有点令人困惑。会喜欢任何关于如何挂钩所需信息的建议。
答案 0 :(得分:1)
我找到了一种(粗略的)方法,使用gmaps4rails创建一个带有OSM图块的滑动贴图。从它的外观来看,雄蕊地图应该更容易。您可以在这里找到一些提示如何使用gem来查看我的解决方案: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}}'}) %>
我确信有一种更漂亮的方法可以做到这一点,但似乎有效。