有没有人想出了如何将Stamen tiles与Gmaps4rails集成在一起?这有点令人困惑,因为在Gmaps4Rails gem中没有显式地调用google.maps。我希望有任何关于如何挂钩所需信息的建议。
发布于 2012-07-12 06:55:43
我已经找到了一种(粗略的)方法来使用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")如果你想要水彩或者地形,你需要根据你的喜好(包括在TileUrl中!)来替换上面写着toner的地方。
在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}}'}) %>我相信有一种更好的方法可以做到这一点,但它似乎是有效的。
https://stackoverflow.com/questions/11356128
复制相似问题