【问题标题】:How do I turn off the map POI data using googlemaps in gmaps4rails?如何在 gmaps4rails 中使用 googlemaps 关闭地图 POI 数据?
【发布时间】:2023-03-10 17:13:01
【问题描述】:

我一直在将谷歌地图用于一个网络应用程序,我们在其中输入我们自己的自定义位置数据作为标记,并注意到在更高的缩放设置下,谷歌地图数据闪耀,从字面上消除了拥有自定义的全部意义地图数据。

我正在使用 gmaps4rails,并且拥有来自 Google Maps API v3 Styled Maps JSON 编辑器的 gmaps JSON 代码,但无法为此获取正确的回调区域。

任何想法我应该把它放在哪里?回调不允许这个工作。 (我很讨厌 JS)

谢谢!

【问题讨论】:

  • 我需要更多详细信息来了解您的问题。
  • 尝试实现自定义 Google Maps API v3 Styled Maps JSON 选项以使每张地图的皮肤都相同,从而制作“自定义颜色”地图。现在,通过回调插入和传递选项不起作用,我想知道这是否是指定这些更改的最佳方法-gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/…-将此 JSON 用于地图皮肤

标签: javascript ruby-on-rails ruby-on-rails-3 json gmaps4rails


【解决方案1】:

好的,我从here 中举了一个例子。做吧:

<script type="text/javascript" charset="utf-8">
Gmaps.map.callback = function() {
var pinkParksStyles = [
  {
    featureType: "all",
    stylers: [
      { saturation: -80 }
    ]
  },
  {
    featureType: "poi.park",
    stylers: [
      { hue: "#ff0023" },
      { saturation: 40 }
    ]
   }
  ];

  Gmaps.map.map.setOptions({styles: pinkParksStyles});
}
</script>

不使用回调的另一种解决方案:

<script type="text/javascript" charset="utf-8">
var pinkParksStyles = [
  {
    featureType: "all",
    stylers: [
      { saturation: -80 }
    ]
  },
  {
    featureType: "poi.park",
    stylers: [
      { hue: "#ff0023" },
      { saturation: 40 }
    ]
  }
];
</script>

<%= gmaps(:map_options => { :raw => "{styles: pinkParksStyles}" },
          #... whatever you need
    )
%>

【讨论】:

  • 是的,我错过了 'Gmaps.map.map.setOptions({styles: pinkParkStyles});感谢您提醒我的菜鸟!
  • 我绝对讨厌我愚蠢的语法:Gmaps.map.map 但我不知道如何顺利​​弃用
  • 这不应该在回调之外完成吗?现在我从 wiki 阅读了回调的功能,它似乎是在创建地图和项目之后加载的。要给地图蒙皮,有人会认为代码需要处于“创建”阶段?
  • 另外,按照上面的设置,它根本没有蒙皮
  • 我忘记使用这个有用的配置选项编辑 wiki,现在它已正确记录在那里。