Jquery 渲染样式的谷歌地图

Jquery 渲染样式的谷歌地图,jquery,google-maps,Jquery,Google Maps,我不知道如何创建一个样式化的地图,以便使用我的样式数组。我正在使用高级自定义字段插件,以便用户可以输入自己的位置,因此我使用文档中的jQuery来渲染地图。代码如下: // My Styles! var styles = [ { featureType: "administrative", elementType: "all", stylers: [ { saturation: -100, } ] }]; function render_map( $el ) { // var var

我不知道如何创建一个样式化的地图,以便使用我的样式数组。我正在使用高级自定义字段插件,以便用户可以输入自己的位置,因此我使用文档中的jQuery来渲染地图。代码如下:

// My Styles!

var styles = [
{
featureType: "administrative",
elementType: "all",
stylers: [
  { saturation: -100, }
]
}];

function render_map( $el ) {

// var
var $markers = $el.find('.marker');

// vars
var args = {
    zoom        : 10,
    center      : new google.maps.LatLng(0, 0),
    mapTypeId   : google.maps.MapTypeId.ROADMAP,
    scrollwheel: false
};

// create map               
var map = new google.maps.Map( $el[0], args);

// add a markers reference
map.markers = [];

// add markers
$markers.each(function(){

    add_marker( $(this), map );

});

// center map
center_map( map );

}
我通常使用它来创建一个样式化的映射,但我无法让它与上面的代码一起工作:

var styledMap = new google.maps.StyledMapType(styles,
{name: "Styled Map"});
我意识到这可能很简单!尽管我喜欢了解为什么事情能工作,为什么不能工作。

如果您查看(创建StyledMapType)部分,您似乎忘记了代码的一部分:

  // Associate the styled map with the MapTypeId and set it to display.
  map.mapTypes.set('map_style', styledMap);
  map.setMapTypeId('map_style');
您声明了一个新的
StyledMap
,但从未告诉您当前的谷歌地图实例它必须使用它

如果不想在许多不同的StyledMap之间切换,还可以使用以下设置样式:

map.setOptions({styles: styles}); // map is your current map object
使用第二种方法,这段代码将过时:

var styledMap = new google.maps.StyledMapType(styles,
{name: "Styled Map"});

我从未在谷歌地图中使用过
StyledMap
,我的答案基于我对谷歌地图API和文档的其他知识。所以它可能是不正确的。

干杯,伙计<代码>map.setOptions({styles:styles})是我需要的。